diff options
author | Jack Humbert <jack.humb@gmail.com> | 2016-06-21 22:39:54 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-06-21 22:39:54 -0400 |
commit | 649b33d7783cf3021928534b7ae127e0a89e8807 (patch) | |
tree | c2b5e0cf8ff4aa2918e3b88ab75dbdb071cc0a1d /keyboards/ergodox_ez | |
parent | 464c8e274f993d3571fe5ea5e836fe55a3912ffe (diff) | |
download | qmk_firmware-649b33d7783cf3021928534b7ae127e0a89e8807.tar.gz |
Renames keyboard folder to keyboards, adds couple of tmk's fixes (#432)
* fixes from tmk's repo
* rename keyboard to keyboards
Diffstat (limited to 'keyboards/ergodox_ez')
220 files changed, 79367 insertions, 0 deletions
diff --git a/keyboards/ergodox_ez/190hotfix.sh b/keyboards/ergodox_ez/190hotfix.sh new file mode 100755 index 000000000..bdc3adce2 --- /dev/null +++ b/keyboards/ergodox_ez/190hotfix.sh @@ -0,0 +1,19 @@ +#!/bin/bash +#a tool to fix broken keymaps as a result of pull request #190 +#changing the declaration of matrix_scan_user() and matrix_init_user() +# +#This script will save a copy of the specified keymap as keymap.c.bak +#and then create a new keymap.c with the definion corrected. +#this script must be run from the ergodox_ez directory +if [ $# -ne 1 ]; then + echo $0: usage: ./190hotfix keymap_name + exit 1 +fi + +echo Saving backup as ./keymaps/$1/keymap.c.bak ... +mv ./keymaps/$1/keymap.c ./keymaps/$1/keymap.c.bak + +echo Modifying ./keymaps/$1/keymap.c ... +cat ./keymaps/$1/keymap.c.bak | sed -r 's/^void \* matrix_/void matrix_/'>./keymaps/$1/keymap.c + +echo Complete! diff --git a/keyboards/ergodox_ez/Makefile b/keyboards/ergodox_ez/Makefile new file mode 100644 index 000000000..54edaed6d --- /dev/null +++ b/keyboards/ergodox_ez/Makefile @@ -0,0 +1,86 @@ +#---------------------------------------------------------------------------- +# 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). +# +#---------------------------------------------------------------------------- + +# # project specific files +SRC = twimaster.c \ + matrix.c + +# 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 +# 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 + +ifndef QUANTUM_DIR + include ../../Makefile +endif diff --git a/keyboards/ergodox_ez/config.h b/keyboards/ergodox_ez/config.h new file mode 100644 index 000000000..6a391ffb5 --- /dev/null +++ b/keyboards/ergodox_ez/config.h @@ -0,0 +1,90 @@ +/* +Copyright 2012 Jun Wako <wakojun@gmail.com> +Copyright 2013 Oleg Kostyuk <cub.uanic@gmail.com> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x1307 +#define DEVICE_VER 0x0001 +#define MANUFACTURER ErgoDox EZ +#define PRODUCT ErgoDox EZ +#define DESCRIPTION t.m.k. keyboard firmware for Ergodox + +/* key matrix size */ +#define MATRIX_ROWS 14 +#define MATRIX_COLS 6 + +#define MOUSEKEY_DELAY 100 +#define MOUSEKEY_INTERVAL 20 +#define MOUSEKEY_MAX_SPEED 3 +#define MOUSEKEY_TIME_TO_MAX 10 + +#define TAPPING_TOGGLE 1 + +#define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } +#define ROWS (int []){ D0, D5, B5, B6 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 2 +#define TAPPING_TERM 200 +#define IGNORE_MOD_TAP_INTERRUPT // this makes it possible to do rolling combos (zx) with keys that convert to other keys on hold (z becomes ctrl when you hold it, and when this option isn't enabled, z rapidly followed by x actually sends Ctrl-x. That's bad.) + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || \ + keyboard_report->mods == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) \ +) + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION +//#define DEBUG_MATRIX_SCAN_RATE + +#endif diff --git a/keyboards/ergodox_ez/ergodox_ez.c b/keyboards/ergodox_ez/ergodox_ez.c new file mode 100644 index 000000000..97e6de1ee --- /dev/null +++ b/keyboards/ergodox_ez/ergodox_ez.c @@ -0,0 +1,100 @@ +#include "ergodox_ez.h" +#include "i2cmaster.h" + +bool i2c_initialized = 0; +uint8_t mcp23018_status = 0x20; + +__attribute__ ((weak)) +void matrix_init_user(void) { + +} + +__attribute__ ((weak)) +void matrix_scan_user(void) { + +} + +void matrix_init_kb(void) { + // keyboard LEDs (see "PWM on ports OC1(A|B|C)" in "teensy-2-0.md") + TCCR1A = 0b10101001; // set and configure fast PWM + TCCR1B = 0b00001001; // set and configure fast PWM + + // (tied to Vcc for hardware convenience) + DDRB &= ~(1<<4); // set B(4) as input + PORTB &= ~(1<<4); // set B(4) internal pull-up disabled + + // 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); + DDRE &= ~(1<<6); + PORTC |= (1<<7); + PORTD |= (1<<7 | 1<<5 | 1<<4); + PORTE |= (1<<6); + + ergodox_blink_all_leds(); + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + matrix_scan_user(); +} + + +void ergodox_blink_all_leds(void) +{ + ergodox_led_all_off(); + ergodox_led_all_set(LED_BRIGHTNESS_HI); + ergodox_right_led_1_on(); + _delay_ms(50); + ergodox_right_led_2_on(); + _delay_ms(50); + ergodox_right_led_3_on(); + _delay_ms(50); + ergodox_right_led_1_off(); + _delay_ms(50); + ergodox_right_led_2_off(); + _delay_ms(50); + ergodox_right_led_3_off(); + //ergodox_led_all_on(); + //_delay_ms(333); + ergodox_led_all_off(); +} + +uint8_t init_mcp23018(void) { + mcp23018_status = 0x20; + + // I2C subsystem + if (i2c_initialized == 0) { + i2c_init(); // on pins D(1,0) + i2c_initialized++; + _delay_ms(1000); + } + + // set pin direction + // - unused : input : 1 + // - input : input : 1 + // - driving : output : 0 + mcp23018_status = i2c_start(I2C_ADDR_WRITE); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(IODIRA); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(0b00000000); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(0b00111111); if (mcp23018_status) goto out; + i2c_stop(); + + // set pull-up + // - unused : on : 1 + // - input : on : 1 + // - driving : off : 0 + mcp23018_status = i2c_start(I2C_ADDR_WRITE); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(GPPUA); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(0b00000000); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(0b00111111); if (mcp23018_status) goto out; + +out: + i2c_stop(); + + return mcp23018_status; +} + + diff --git a/keyboards/ergodox_ez/ergodox_ez.h b/keyboards/ergodox_ez/ergodox_ez.h new file mode 100644 index 000000000..402abc167 --- /dev/null +++ b/keyboards/ergodox_ez/ergodox_ez.h @@ -0,0 +1,127 @@ +#ifndef ERGODOX_EZ_H +#define ERGODOX_EZ_H + +#include "quantum.h" +#include <stdint.h> +#include <stdbool.h> +#include "i2cmaster.h" +#include <util/delay.h> + +#define CPU_PRESCALE(n) (CLKPR = 0x80, CLKPR = (n)) +#define CPU_16MHz 0x00 + +// I2C aliases and register addresses (see "mcp23018.md") +#define I2C_ADDR 0b0100000 +#define I2C_ADDR_WRITE ( (I2C_ADDR<<1) | I2C_WRITE ) +#define I2C_ADDR_READ ( (I2C_ADDR<<1) | I2C_READ ) +#define IODIRA 0x00 // i/o direction register +#define IODIRB 0x01 +#define GPPUA 0x0C // GPIO pull-up resistor register +#define GPPUB 0x0D +#define GPIOA 0x12 // general purpose i/o port register (write modifies OLAT) +#define GPIOB 0x13 +#define OLATA 0x14 // output latch register +#define OLATB 0x15 + +extern uint8_t mcp23018_status; + +void init_ergodox(void); +void ergodox_blink_all_leds(void); +uint8_t init_mcp23018(void); +uint8_t ergodox_left_leds_update(void); + +#define LED_BRIGHTNESS_LO 15 +#define LED_BRIGHTNESS_HI 255 + + +inline void ergodox_board_led_on(void) { DDRD |= (1<<6); PORTD |= (1<<6); } +inline void ergodox_right_led_1_on(void) { DDRB |= (1<<5); PORTB |= (1<<5); } +inline void ergodox_right_led_2_on(void) { DDRB |= (1<<6); PORTB |= (1<<6); } +inline void ergodox_right_led_3_on(void) { DDRB |= (1<<7); PORTB |= (1<<7); } +inline void ergodox_right_led_on(uint8_t led) { DDRB |= (1<<(led+4)); PORTB |= (1<<(led+4)); } + +inline void ergodox_board_led_off(void) { DDRD &= ~(1<<6); PORTD &= ~(1<<6); } +inline void ergodox_right_led_1_off(void) { DDRB &= ~(1<<5); PORTB &= ~(1<<5); } +inline void ergodox_right_led_2_off(void) { DDRB &= ~(1<<6); PORTB &= ~(1<<6); } +inline void ergodox_right_led_3_off(void) { DDRB &= ~(1<<7); PORTB &= ~(1<<7); } +inline void ergodox_right_led_off(uint8_t led) { DDRB &= ~(1<<(led+4)); PORTB &= ~(1<<(led+4)); } + +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) { OCR1A = n; } +inline void ergodox_right_led_2_set(uint8_t n) { OCR1B = n; } +inline void ergodox_right_led_3_set(uint8_t n) { OCR1C = n; } +inline void ergodox_right_led_set(uint8_t led, uint8_t n) { + (led == 1) ? (OCR1A = n) : + (led == 2) ? (OCR1B = n) : + (OCR1C = n); +} + +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( \ + \ + /* 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, \ + 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, \ + 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, KC_NO, k55 }, \ + { k06, k16, KC_NO, k36, KC_NO, k56 }, \ + \ + { k07, k17, KC_NO, k37,KC_NO, k57 }, \ + { k08, k18, k28, k38,KC_NO, 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 } \ + } + +void matrix_init_user(void); +void matrix_scan_user(void); + + + +#endif diff --git a/keyboards/ergodox_ez/i2cmaster.h b/keyboards/ergodox_ez/i2cmaster.h new file mode 100644 index 000000000..3917b9e6c --- /dev/null +++ b/keyboards/ergodox_ez/i2cmaster.h @@ -0,0 +1,178 @@ +#ifndef _I2CMASTER_H +#define _I2CMASTER_H 1 +/************************************************************************* +* Title: C include file for the I2C master interface +* (i2cmaster.S or twimaster.c) +* Author: Peter Fleury <pfleury@gmx.ch> http://jump.to/fleury +* File: $Id: i2cmaster.h,v 1.10 2005/03/06 22:39:57 Peter Exp $ +* Software: AVR-GCC 3.4.3 / avr-libc 1.2.3 +* Target: any AVR device +* Usage: see Doxygen manual +**************************************************************************/ + +#ifdef DOXYGEN +/** + @defgroup pfleury_ic2master I2C Master library + @code #include <i2cmaster.h> @endcode + + @brief I2C (TWI) Master Software Library + + Basic routines for communicating with I2C slave devices. This single master + implementation is limited to one bus master on the I2C bus. + + This I2c library is implemented as a compact assembler software implementation of the I2C protocol + which runs on any AVR (i2cmaster.S) and as a TWI hardware interface for all AVR with built-in TWI hardware (twimaster.c). + Since the API for these two implementations is exactly the same, an application can be linked either against the + software I2C implementation or the hardware I2C implementation. + + Use 4.7k pull-up resistor on the SDA and SCL pin. + + Adapt the SCL and SDA port and pin definitions and eventually the delay routine in the module + i2cmaster.S to your target when using the software I2C implementation ! + + Adjust the CPU clock frequence F_CPU in twimaster.c or in the Makfile when using the TWI hardware implementaion. + + @note + The module i2cmaster.S is based on the Atmel Application Note AVR300, corrected and adapted + to GNU assembler and AVR-GCC C call interface. + Replaced the incorrect quarter period delays found in AVR300 with + half period delays. + + @author Peter Fleury pfleury@gmx.ch http://jump.to/fleury + + @par API Usage Example + The following code shows typical usage of this library, see example test_i2cmaster.c + + @code + + #include <i2cmaster.h> + + + #define Dev24C02 0xA2 // device address of EEPROM 24C02, see datasheet + + int main(void) + { + unsigned char ret; + + i2c_init(); // initialize I2C library + + // write 0x75 to EEPROM address 5 (Byte Write) + i2c_start_wait(Dev24C02+I2C_WRITE); // set device address and write mode + i2c_write(0x05); // write address = 5 + i2c_write(0x75); // write value 0x75 to EEPROM + i2c_stop(); // set stop conditon = release bus + + + // read previously written value back from EEPROM address 5 + i2c_start_wait(Dev24C02+I2C_WRITE); // set device address and write mode + + i2c_write(0x05); // write address = 5 + i2c_rep_start(Dev24C02+I2C_READ); // set device address and read mode + + ret = i2c_readNak(); // read one byte from EEPROM + i2c_stop(); + + for(;;); + } + @endcode + +*/ +#endif /* DOXYGEN */ + +/**@{*/ + +#if (__GNUC__ * 100 + __GNUC_MINOR__) < 304 +#error "This library requires AVR-GCC 3.4 or later, update to newer AVR-GCC compiler !" +#endif + +#include <avr/io.h> + +/** defines the data direction (reading from I2C device) in i2c_start(),i2c_rep_start() */ +#define I2C_READ 1 + +/** defines the data direction (writing to I2C device) in i2c_start(),i2c_rep_start() */ +#define I2C_WRITE 0 + + +/** + @brief initialize the I2C master interace. Need to be called only once + @param void + @return none + */ +extern void i2c_init(void); + + +/** + @brief Terminates the data transfer and releases the I2C bus + @param void + @return none + */ +extern void i2c_stop(void); + + +/** + @brief Issues a start condition and sends address and transfer direction + + @param addr address and transfer direction of I2C device + @retval 0 device accessible + @retval 1 failed to access device + */ +extern unsigned char i2c_start(unsigned char addr); + + +/** + @brief Issues a repeated start condition and sends address and transfer direction + + @param addr address and transfer direction of I2C device + @retval 0 device accessible + @retval 1 failed to access device + */ +extern unsigned char i2c_rep_start(unsigned char addr); + + +/** + @brief Issues a start condition and sends address and transfer direction + + If device is busy, use ack polling to wait until device ready + @param addr address and transfer direction of I2C device + @return none + */ +extern void i2c_start_wait(unsigned char addr); + + +/** + @brief Send one byte to I2C device + @param data byte to be transfered + @retval 0 write successful + @retval 1 write failed + */ +extern unsigned char i2c_write(unsigned char data); + + +/** + @brief read one byte from the I2C device, request more data from device + @return byte read from I2C device + */ +extern unsigned char i2c_readAck(void); + +/** + @brief read one byte from the I2C device, read is followed by a stop condition + @return byte read from I2C device + */ +extern unsigned char i2c_readNak(void); + +/** + @brief read one byte from the I2C device + + Implemented as a macro, which calls either i2c_readAck or i2c_readNak + + @param ack 1 send ack, request more data from device<br> + 0 send nak, read is followed by a stop condition + @return byte read from I2C device + */ +extern unsigned char i2c_read(unsigned char ack); +#define i2c_read(ack) (ack) ? i2c_readAck() : i2c_readNak(); + + +/**@}*/ +#endif diff --git a/keyboards/ergodox_ez/keymaps/ab/compiled.hex b/keyboards/ergodox_ez/keymaps/ab/compiled.hex new file mode 100644 index 000000000..9b4434b86 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/ab/compiled.hex @@ -0,0 +1,1147 @@ +:100000000C9424020C9468020C9468020C9468020C
+:100010000C9468020C9468020C9468020C946802B8
+:100020000C9468020C9468020C940C0D0C94DE0D78
+:100030000C9468020C9468020C9468020C94680298
+:100040000C9468020C94E8210C9468020C946802E9
+:100050000C9468020C947B1B0C9468020C9468024C
+:100060000C9468020C9468020C9468020C94680268
+:100070000C9468020C9468020C9468020C94680258
+:100080000C9468020C9468020C9468020C94680248
+:100090000C9468020C9468020C9468020C94680238
+:1000A0000C9468020C9468020C9468024B0E6D0E5E
+:1000B0005B0F6D0E5B0FB20ED50E5B0F2A0F3D0F5F
+:1000C0000C120C123B123B1271129112C213C2138A
+:1000D0009C12C2134C134C13B313C213C213BC13A0
+:1000E00059135913591359135913591359135913B0
+:1000F00059135913591359135913591359135913A0
+:100100006B1378137F138613901335002B0039710E
+:10011000E100E00000001E00140004001D002900A2
+:100120002F001F001A0016001B00E3004C002000E7
+:10013000080007000600E2002C002100150009005D
+:100140001900E2002602220017000A000500000044
+:1001500006012300B60000004B0000002F0224001F
+:10016000B70000004E000000300225001C000B000C
+:10017000110000001901260018000D0010005200A7
+:10018000270227000C000E00360050002A002D0028
+:1001900012000F0037004F0028002E00130033001C
+:1001A0003800510030002A0031002800340001548A
+:1001B00000002900010001000100010000003A00D8
+:1001C000010001000100010001003B000100F200FC
+:1001D0000100010001003C00F000F1000100F4000A
+:1001E00000503D000100F3000100F50001003E0059
+:1001F000010001000100000001003F0001000000BB
+:1002000001000000010040000100000001000000AA
+:100210000100410001000100010000000100420056
+:100220000100010001000100010043000100010084
+:100230000100AA0001004400010001000100A90022
+:1002400001004500010001000100A80001002A0092
+:100250000100AE000100010000001603450072001D
+:1002600067006F0044006F007800200045005A00CE
+:10027000000016034500720067006F0044006F0025
+:100280007800200045005A00000004030904090218
+:100290006D00040100A0FA0904000001030101003F
+:1002A000092111010001223F000705810308000A0E
+:1002B00009040100010301020009211101000122CA
+:1002C0004D000705820308000A090402000103002B
+:1002D00000000921110100012236000705830308EF
+:1002E000000A0904030001030000000921110100B4
+:1002F00001223900070584031000011201100100DA
+:10030000000008EDFE0713010001020001050109CC
+:1003100006A101050719E029E715002501950875D3
+:1003200001810205081901290595057501910295BC
+:10033000017503910105071900297715002501951D
+:100340007875018102C005010980A10185021601AD
+:100350000026B7001A01002AB70075109501810028
+:10036000C0050C0901A1018503160100269C021A93
+:1003700001002A9C02751095018100C00501090247
+:10038000A1010901A100050919012905150025018F
+:1003900095057501810295017503810105010930FB
+:1003A00009311581257F9502750881060938158167
+:1003B000257F950175088106050C0A3802158125EF
+:1003C0007F950175088106C0C005010906A10105D8
+:1003D0000719E029E71500250195087501810295A7
+:1003E0000175088101050819012905950575019117
+:1003F000029501750391010507190029FF150025D4
+:10040000FF950675088100C0000000000000000094
+:10041000000000010204060A0F17202C3A4A5D7101
+:10042000879DB3C7DAE9F5FCFFFCF5E9DAC7B39DB0
+:1004300087715D4A3A2C20170F0A0604020100005A
+:10044000000000000000000011241FBECFEFDAE022
+:10045000DEBFCDBF04B603FE24C08091FB019091A6
+:10046000FC01A091FD01B091FE018730904BA740A7
+:10047000B04BB9F41092FB011092FC011092FD01F7
+:100480001092FE0114BE84B7877F84BF88E10FB647
+:10049000F89480936000109260000FBEE0E0FFE3EC
+:1004A000099511E0A0E0B1E0EEE5F7E402C00590A7
+:1004B0000D92A433B107D9F711E0A4E3B1E001C074
+:1004C0001D92AB3FB107E1F70E94500A0C94AD2397
+:1004D0000C9400001092B9008AE08093B80008954F
+:1004E00094EA9093BC009091BC0097FFFCCF909150
+:1004F000B900987F983021F0903111F081E0089593
+:100500008093BB0084E88093BC008091BC0087FF8F
+:10051000FCCF8091B900887F883111F0803471F769
+:1005200080E0089584E98093BC008091BC0084FD44
+:10053000FCCF08958093BB0084E88093BC00809139
+:10054000BC0087FFFCCF9091B900987F81E0983282
+:1005500009F480E0089584E88093BC008091BC0099
+:1005600087FFFCCF8091BB0008958091010181112C
+:1005700015C080E40E9470028093010181110CC0BB
+:1005800082E10E949A0280930101811105C08FEFE0
+:100590000E949A02809301010E94920284B1807F9E
+:1005A00084B985B1807F85B98AB1837F8AB98BB1DF
+:1005B000837F8BB93E98469808950E94700480937B
+:1005C00001010E94B50280B38C7080BB81B3836F40
+:1005D00081BBA5E3B1E0E3E4F1E08EE08E0F119280
+:1005E0001D928E13FCCF0C945A04BF92CF92DF92CF
+:1005F000EF92FF920F931F93CF93DF9380910101AE
+:10060000882379F0809134018F5F809334018111C8
+:1006100008C00E94700480930101811102C00E94F1
+:10062000020405E311E0C0E0D0E0DD24D39482E0D1
+:10063000C82EEE24E394F12CC730D10500F580914B
+:100640000101811164C080E40E9470028093010165
+:10065000811112C082E10E949A02809301018111EE
+:100660000BC0C7010C2E01C0880F0A94EAF78095D1
+:100670000E949A02809301010E94920248C0CA30EF
+:10068000A1F028F4C83059F0C93061F005C0CC3071
+:1006900089F070F0CD3089F0209A289810C0219A06
+:1006A00029980DC0229A2A980AC0239A2B9807C02D
+:1006B000529A01C0539A5B9802C03E9A469890EABB
+:1006C0009A95F1F79FB1799902C082E001C080E06C
+:1006D00091709D25982B7C9902C084E001C080E038
+:1006E000892B7D9902C038E001C030E0832B7E99D0
+:1006F00002C020E101C020E0822B9FB19095991F9C
+:100700009927991F9295990F907E892B0FC0809100
+:100710000101811149C080E40E94700280930101AF
+:10072000882379F1B12C0E9492028B2DF8019081DF
+:10073000981719F08083C09200010E94B50221969B
+:100740000F5F1F4FCE30D10509F076CF80910001A9
+:10075000882361F1815080930001882339F08FE96B
+:100760009FE00197F1F700C0000020C0A3E4B1E0D2
+:10077000E5E3F1E0CF01825F91919D938E13FCCF71
+:1007800015C083E10E949A02809301018111CACFB2
+:1007900081E40E947002809301018111C3CF0E9405
+:1007A000AB02B82EB094BFCF80E0C0CF0E9400044F
+:1007B00081E0DF91CF911F910F91FF90EF90DF903B
+:1007C000CF90BF900895E82FF0E0ED5BFE4F808161
+:1007D000089508950F931F93CF93DF93C3E4D1E05F
+:1007E00010E00C2F025F899190E00E94A11A180F6F
+:1007F0000C13F9CF812FDF91CF911F910F910895A5
+:100800000C94D00456985E9825982D9826982E988A
+:1008100027982F988FEF90E090938900809388001D
+:1008200090938B0080938A0090938D0080938C002E
+:10083000259A2D9A2FEF80E792E02150804090403A
+:10084000E1F700C00000269A2E9A2FEF80E792E091
+:10085000215080409040E1F700C00000279A2F9A75
+:100860002FEF80E792E0215080409040E1F700C0F8
+:10087000000025982D982FEF80E792E021508040CE
+:100880009040E1F700C0000026982E982FEF80E7F7
+:1008900092E0215080409040E1F700C0000027988E
+:1008A0002F9856985E9825982D9826982E982798D8
+:1008B0002F98089589EA8093800089E080938100D1
+:1008C00024982C983F988AB18F748AB96E98479A69
+:1008D0008BB1806B8BB9769A0E9402040C94CF0482
+:1008E00080E2809301018091510181110EC00E942C
+:1008F0006A0281E0809351012FEF83ED90E3215054
+:1009000080409040E1F700C0000080E40E94700247
+:100910008093010181112EC00E949A0280930101EF
+:10092000811128C00E949A0280930101811122C086
+:100930008FE30E949A028093010181111BC00E94E3
+:10094000920280E40E94700280930101811112C022
+:100950008CE00E949A028093010181110BC00E94D9
+:100960009A0280930101811105C08FE30E949A02CF
+:10097000809301010E94920280910101089561110A
+:100980000BC0FC018281882321F085EE0E94B0100B
+:1009900003C085EE0E94781180E090E008950895EC
+:1009A0006091BD017091BE018091BF019091C00125
+:1009B0000E94AD1A56985E9825982D9826982E98E4
+:1009C00027982F98813019F0823021F00895259AC8
+:1009D0002D9A0895269A2E9A089581E0089581E02F
+:1009E00008950C94EF0408950F931F93CF93DF9312
+:1009F0008C01FC01C081D181CE010E942619BE016B
+:100A00000E949D05EC01B8010E94F104882309F4BD
+:100A10008DC0F8018281882309F44AC080915D016C
+:100A200081111FC0C431F0E5DF0709F051C00E94F9
+:100A3000F30481E080935D010E94451B90935C016B
+:100A400080935B011092540110925601109255014F
+:100A5000109258011092570110925A0110925901A8
+:100A600065C080915B0190915C010E94511B883CA4
+:100A7000910570F480915401E82FF0E0EE0FFF1F14
+:100A8000EB5AFE4FD183C0838F5F809354014EC0D9
+:100A9000C43880E5D80721F0C538D04501F13AC007
+:100AA000F8018281882341F01092520182E01EC039
+:100AB000C438E0E5DE0759F580915201811106C086
+:100AC00086E20E94B01086E20E94781182E01CC08B
+:100AD000C438F0E5DF0741F3C538D045D9F4F80153
+:100AE0008281882331F01092530180E20E94C71165
+:100AF0001DC080915301811106C087E20E94B01091
+:100B000087E20E94781180E20E94CE110FC0C538A2
+:100B1000D04529F381E08093520180935301C801AD
+:100B2000DF91CF911F910F910C94ED0480E0DF9144
+:100B3000CF911F910F910895089596E0799FF0014C
+:100B4000112494E5899FE00DF11D1124E60FF11D9C
+:100B5000EE0FFF1FE65FFE4F859194910895880F79
+:100B6000991FFC01E657F040859194910895880FF4
+:100B7000991FFC01E65FFE4F8591949108950F93B4
+:100B80001F93CF93DF93EC01811520E3920750F57B
+:100B9000C11580E2D80708F0C3C0CB3BD10590F463
+:100BA000C83AD10508F06AC0C53AD10508F05BC063
+:100BB000C430D10508F0D0C1219709F0CAC101E0C5
+:100BC00010E00AC2CF3FD10511F008F0C5C1C03F07
+:100BD000D10508F0A2C0CE01805E9109089708F403
+:100BE000BBC1B7C1C13090E5D90709F4A2C020F557
+:100BF000C0318FE4D80770F4C11590E4D90708F02C
+:100C000094C0C11521E3D20708F0A3C1DD278E01EE
+:100C1000106CE2C1C115D04509F09BC10E942D1492
+:100C20008FEF94E32CE0815090402040E1F700C02A
+:100C300000000E94A01BD0C1C11597E5D90758F448
+:100C4000C03121E5D20708F01CC1C43180E5D807C6
+:100C500008F475C07EC1CE0190578115904108F00F
+:100C600078C1DF7073C1C53AD10509F477C1C63ABE
+:100C7000D10509F076C102E810E4AEC1C83AD10549
+:100C800009F472C1C93AD10509F471C1CA3AD10552
+:100C900009F470C1CB3AD10509F46FC1CC3AD10542
+:100CA00009F46EC1CD3AD10509F46DC1C03BD1053F
+:100CB00009F46CC1CE3AD10509F46BC1CF3AD10524
+:100CC00009F46AC1C13BD10509F469C1C23BD10530
+:100CD00009F468C1C33BD10509F467C1C43BD10520
+:100CE00009F466C1C53BD10509F465C1C63BD10510
+:100CF00009F464C1C73BD10509F463C1C83BD10500
+:100D000009F462C1C93BD10509F461C1CA3BD105EF
+:100D100009F460C100E014E45FC18E0110655CC19C
+:100D2000CE019F700E94B70558C1DF708E01106A16
+:100D300053C18091DA0181608093DA014DC10E9434
+:100D4000451D811102C00E942B1D0E94621D90E072
+:100D50009093FB018093FA01C23080E5D80721F41B
+:100D60008091FA01816086C0C43090E5D90721F4F2
+:100D70008091FA0182607EC0C63020E5D20721F45E
+:100D80008091FA01846076C0C83080E5D80719F4F4
+:100D90008091FA0127C0CA3090E5D90721F48091EB
+:100DA000FA01806167C0CC3020E5D20721F4809140
+:100DB000FA0180625FC0CE3080E5D80721F48091CF
+:100DC000FA01806457C0C03190E5D90721F48091C1
+:100DD000FA0180684FC0C23120E5D20729F4809122
+:100DE000FA018460886046C0C33080E5D80721F4EA
+:100DF0008091FA018E7F3EC0C53090E5D90721F47D
+:100E00008091FA018D7F36C0C73020E5D20721F4EA
+:100E10008091FA018B7F2EC0C93080E5D80719F484
+:100E20008091FA0126C0CB3090E5D90721F480915A
+:100E3000FA018F7E1FC0CD3020E5D20721F48091CA
+:100E4000FA018F7D17C0CF3080E5D80721F480915B
+:100E5000FA018F7B0FC0C13190E5D90721F4809151
+:100E6000FA018F7707C0C331D04531F48091FA0180
+:100E70008B7F877F8093FA018091FA010E94661D23
+:100E8000ABC08D2F99278F70992781309105D9F4A8
+:100E90009E012370332702C0880F991F2A95E2F71D
+:100EA0009C688E0144E0000F111F4A95E1F700276E
+:100EB0001370802B912B53E0CC0FDD1F5A95E1F777
+:100EC000C076DD272FC08230910531F4DC2FCC278E
+:100ED0008E01016F106A80C08330910569F4CE01E4
+:100EE0008370992701E010E002C0000F111F8A955E
+:100EF000E2F7C8019C680FC084309105B9F4CE01B7
+:100F00008370992701E010E002C0000F111F8A953D
+:100F1000E2F7C8019A6823E0CC0FDD1F2A95E1F7BC
+:100F2000C07ED7708C010C2B1D2B56C085309105CF
+:100F300031F4DC2FCC278E01046F106A4DC0069768
+:100F400009F04AC0CF71DD27DC2FCC278E0110625B
+:100F500043C000E010E040C08E013EC001E810E454
+:100F60003BC003E810E438C002EE14E435C009EEDB
+:100F700014E432C00AEE14E42FC005EB14E42CC0D4
+:100F800006EB14E429C007EB14E426C00CEC14E4CF
+:100F900023C00DEC14E420C003E815E41DC00AE8EA
+:100FA00015E41AC002E915E417C004E915E414C0F9
+:100FB00001E216E411C003E216E40EC004E216E4F6
+:100FC0000BC005E216E408C006E216E405C007E21D
+:100FD00016E402C00AE216E4C801DF91CF911F9126
+:100FE0000F91089596E0799FF001112494E5899F6F
+:100FF000E00DF11D1124E60FF11DEE0FFF1FE65F5E
+:10100000FE4F85919491803E9105E0F4803C9105DE
+:1010100058F58133910509F46FC048F48932910580
+:1010200009F463C08A32910509F46DC072C0893336
+:101030009105E9F082389105D1F08533910509F4E5
+:101040004DC067C0833E910581F138F4803E910523
+:10105000B9F0823E9105D9F05CC0863E910561F100
+:10106000873E9105A1F155C00E94AF0508952091DA
+:10107000FA0120FD02C021FF4CC080EE90E049C083
+:101080008091FA0180FFF9CF89E390E042C080911E
+:10109000FA0182FF0EC08091FA0184FF03C080E054
+:1010A00090E037C083EE90E034C08091FA0182FF77
+:1010B000F2CF82EE90E02DC08091FA0183FF0BC049
+:1010C0008091FA0184FDEBCF87EE90E022C0809101
+:1010D000FA0183FFF5CF86EE90E01BC08091FA0104
+:1010E00085FF07C089E290E014C08091FA0185FF76
+:1010F000F9CF85E390E00DC08091FA0186FF07C02B
+:101100008AE290E006C08091FA0186FFF9CF81E380
+:1011100090E00E94BF05089508950C948C0880917A
+:101120006E010895CF93DF9300D01F92CDB7DEB745
+:101130009C018091F101843019F593E099833B8300
+:101140002A839093E9008FEF9091E800815095FDFC
+:1011500006C095ED9A95F1F700008111F5CF8091C9
+:10116000E80085FF0DC040E050E063E070E0CE0194
+:1011700001960E94FC0A8091E8008E778093E80037
+:101180000F900F900F90DF91CF910895CF93DF9341
+:1011900000D01F92CDB7DEB72091F101243021F5A8
+:1011A00022E029839B838A8383E08093E9008FEF89
+:1011B0009091E800815095FD06C095ED9A95F1F764
+:1011C00000008111F5CF8091E80085FF0DC040E05F
+:1011D00050E063E070E0CE0101960E94FC0A80912D
+:1011E000E8008E778093E8000F900F900F90DF91CA
+:1011F000CF9108952091F1012430F1F422E0209361
+:10120000E9002FEF3091E800215035FD06C035EDA3
+:101210003A95F1F700002111F5CF2091E80025FF64
+:101220000BC040E050E065E070E00E94FC0A809155
+:10123000E8008E778093E8000895CF93DF93EC0168
+:101240009091F101943009F046C080910C018823FF
+:10125000D9F080910D018823B9F09093E9008FEFC8
+:101260009091E800815095FD06C095E19A95F1F7BF
+:1012700000008111F5CF8091E80085FF2CC040E08F
+:1012800050E060E170E017C081E08093E9008FEFEB
+:101290009091E800815095FD06C095ED9A95F1F783
+:1012A00000008111F5CF8091E80085FF14C040E077
+:1012B00050E068E070E0CE010E94FC0A8091E800F6
+:1012C0008E778093E80080E1FE01AEE5B1E0019009
+:1012D0000D928A95E1F7DF91CF9108958091F00109
+:1012E000811109C00E94910C0E94EE0C8091E200D5
+:1012F00084608093E20008951092F00108950895AB
+:101300000C94D5210E94361B0E94DB210E94940F71
+:101310000C948D0842E061EC81E00E940B0C42E0ED
+:1013200061EC82E00E940B0C42E061EC83E00E94E1
+:101330000B0C42E161EC84E00C940B0C8091F30106
+:10134000833009F455C030F4813071F0823009F4F3
+:101350008EC008958A3009F47AC08B3009F460C0D9
+:10136000893009F09CC020C08091F201813A09F0D7
+:1013700096C08091E800877F8093E8008091F60115
+:101380009091F701892B21F460E18EE591E003C093
+:1013900060E080E090E070E00E94470B8091E80000
+:1013A0008B778093E80008958091F201813209F0F3
+:1013B00076C08091F6019091F701009719F003979C
+:1013C00009F06DC08091E800877F8093E8008091EC
+:1013D000E80082FD05C08091F1018111F8CF5FC066
+:1013E0008091F10080936E018091E8008B7753C06B
+:1013F0008091F201813A09F052C08091F6019091FA
+:10140000F701892B09F04BC08091E800877F80931A
+:10141000E8008091E80080FFFCCF80910C0136C08D
+:101420008091F2018132D9F58091F6019091F70116
+:10143000892BA9F58091E800877F8093E8000E94BE
+:10144000400C8091F40180930C010C942D14809138
+:10145000F201813221F58091E800877F8093E800D6
+:101460000E94400C8091F50180936F010895809156
+:10147000F201813AA1F48091E800877F8093E8002F
+:101480008091E80080FFFCCF80916F018093F10094
+:101490008091E8008E778093E8000C94400C0895CA
+:1014A00084B7877F84BF88E10FB6F894809360008B
+:1014B000109260000FBE90E080E80FB6F894809321
+:1014C0006100909361000FBE0E94E30F0E94910C97
+:1014D0000E94EE0C8091E20084608093E200789498
+:1014E0000E94740F0E94E50F82E091E00E948F0F2E
+:1014F0000E94C3218091F101853069F40E94FD1A98
+:101500008091EF018823B1F30E94281B882391F377
+:101510000E94E60AEFCF0E94EB0FECCF292F332772
+:1015200023303105C9F064F42130310581F02230D7
+:10153000310509F043C08DE690E02EE832E042C06C
+:1015400021323105F1F02232310541F137C082E11B
+:1015500090E02BEF32E036C099278130910541F0C1
+:101560008230910541F0892B49F5EAE8F2E005C0A7
+:10157000E2E7F2E002C0EAE5F2E0849190E09F0148
+:1015800021C06430D8F4E62FF0E0EE0FFF1FEE5DCF
+:10159000FE4F2081318189E090E014C0643070F406
+:1015A00070E0FB01EE0FFF1FE65EFE4F20813181F0
+:1015B000FB01EA5EFE4F808190E004C080E090E095
+:1015C00020E030E0FA0131832083089580E189BD75
+:1015D00082E189BD09B400FEFDCF8091D8008F7DE6
+:1015E0008093D8008091E00082608093E000809139
+:1015F000E00081FDFCCF0895CF92DF92EF92FF9241
+:101600000F931F93CF93DF93EC018B016A010E942C
+:101610005F0C811133C0C114D10439F0F60180810F
+:101620009181081B190BC80FD91FE12CF12C011552
+:10163000110519F18091E80085FD16C08091E80040
+:101640008E778093E800C114D10449F0F6018081BF
+:101650009181E80EF91EF182E08285E00FC00E94C0
+:101660005F0C882321F30AC089918093F100015017
+:101670001109FFEFEF1AFF0ADACF80E0DF91CF9177
+:101680001F910F91FF90EF90DF90CF9008952091E0
+:10169000F8013091F9012617370748F061157105F7
+:1016A00039F42091E8002E772093E80001C0B901B9
+:1016B00040E061157105A9F12091F101222309F49F
+:1016C00043C0253009F442C02091E80023FD40C00A
+:1016D0002091E80022FD32C02091E80020FFE9CFF0
+:1016E0004091F3002091F20030E0342BFC01CF0157
+:1016F0006115710559F02830310540F481918093CE
+:10170000F100615071092F5F3F4FF1CF41E0283068
+:10171000310509F040E02091E8002E772093E800A1
+:10172000C8CF4111C9CF0AC08091F101882361F06F
+:10173000853061F08091E80083FD0AC08091E80067
+:1017400082FFF2CF80E0089582E0089583E008955B
+:1017500081E008952091F8013091F90126173707AB
+:1017600048F06115710539F42091E8002E77209337
+:10177000E80001C0B901FC0120E06115710591F19B
+:101780008091F101882309F440C0853009F43FC0FD
+:101790008091E80083FD3DC08091E80082FD2FC06C
+:1017A0008091E80080FFE9CF2091F3008091F20062
+:1017B00090E0922B6115710559F08830910540F445
+:1017C00024912093F1003196615071090196F2CF76
+:1017D00021E0089709F020E08091E8008E7780935F
+:1017E000E800CBCF2111CCCF0AC08091F101882332
+:1017F00061F0853061F08091E80083FD0AC080913E
+:10180000E80082FFF2CF80E0089582E0089583E04F
+:10181000089581E00895982F973058F59093E90046
+:10182000981739F07091EC002091ED005091F00084
+:1018300003C0242F762F50E021FF19C03091EB0018
+:101840003E7F3093EB003091ED003D7F3093ED0013
+:101850003091EB0031603093EB007093EC002093FB
+:10186000ED005093F0002091EE0027FF07C09F5F2E
+:10187000D3CF8F708093E90081E0089580E00895D0
+:101880008091F20187FF11C08091E80082FD05C0C0
+:101890008091F1018111F8CF11C08091E8008B7720
+:1018A0000BC08091F101882349F08091E80080FF0E
+:1018B000F8CF8091E8008E778093E800089520911A
+:1018C000E4003091E50095E64091EC00842F8170B2
+:1018D00040FF22C08091E80080FD1CC08091F10192
+:1018E000882391F0853091F08091EB0085FD10C048
+:1018F0004091E4005091E5004217530729F39A0103
+:10190000915011F784E0089582E0089583E00895EE
+:1019100081E0089580E008954091E80042FFDECF25
+:1019200008950E94FF0C0E94070DE0EEF0E0808118
+:1019300081608083E8EDF0E080818F77808319BC3F
+:10194000A7EDB0E08C918E7F8C9380818F7E808319
+:101950001092F00108950F931F93CF93DF930E948D
+:10196000FF0C0E94070DC8EDD0E088818F77888337
+:1019700088818068888388818F7D888319BC1092D4
+:10198000F1011092ED011092EF011092EE0100EEC4
+:1019900010E0F80180818B7F80838881816088835B
+:1019A00042E060E080E00E940B0CE1EEF0E080811C
+:1019B0008E7F8083E2EEF0E0808181608083808191
+:1019C00088608083F80180818E7F80838881806138
+:1019D0008883DF91CF911F910F910895E8EDF0E09A
+:1019E00080818F7E8083E7EDF0E08081816080835D
+:1019F00084E082BF81E08093F0010C94AB0CE8EDB1
+:101A0000F0E080818E7F80831092E2000895109232
+:101A1000DA001092E10008951F920F920FB60F9214
+:101A200011242F933F934F935F936F937F938F93E3
+:101A30009F93AF93BF93EF93FF938091E10082FF59
+:101A40000BC08091E20082FF07C08091E1008B7F94
+:101A50008093E1000E94730F8091DA0080FF1FC025
+:101A60008091D80080FF1BC08091DA008E7F809328
+:101A7000DA008091D90080FF0DC080E189BD82E14C
+:101A800089BD09B400FEFDCF81E08093F1010E9481
+:101A90006E0905C019BC1092F1010E947C09809169
+:101AA000E10080FF19C08091E20080FF15C08091A5
+:101AB000E2008E7F8093E2008091E200806180935B
+:101AC000E2008091D80080628093D80019BC85E044
+:101AD0008093F1010E9480098091E10084FF30C071
+:101AE0008091E20084FF2CC080E189BD82E189BD44
+:101AF00009B400FEFDCF8091D8008F7D8093D8007F
+:101B00008091E1008F7E8093E1008091E2008F7EE2
+:101B10008093E2008091E20081608093E2008091F6
+:101B2000ED01882311F084E007C08091E30087FD78
+:101B300002C081E001C083E08093F1010E9482092C
+:101B40008091E10083FF29C08091E20083FF25C0DE
+:101B50008091E100877F8093E10082E08093F10132
+:101B60001092ED018091E1008E7F8093E1008091E1
+:101B7000E2008E7F8093E2008091E200806180939A
+:101B8000E20042E060E080E00E940B0C8091F000F7
+:101B900088608093F0000E947F09FF91EF91BF91D0
+:101BA000AF919F918F917F916F915F914F913F91F5
+:101BB0002F910F900FBE0F901F9018951F920F92AC
+:101BC0000FB60F9211242F933F934F935F936F9310
+:101BD0007F938F939F93AF93BF93CF93DF93EF93B5
+:101BE000FF93C091E900CF708091EC00D82FD170A5
+:101BF00080FDD0E81092E9008091F000877F80930B
+:101C0000F00078940E94220E1092E9008091F0007A
+:101C100088608093F000CD2BCF70C093E900FF91D6
+:101C2000EF91DF91CF91BF91AF919F918F917F9174
+:101C30006F915F914F913F912F910F900FBE0F9039
+:101C40001F9018951F93CF93DF93CDB7DEB7AA9758
+:101C50000FB6F894DEBF0FBECDBFE2EFF1E088E033
+:101C60008E0F9091F10091938E13FBCF0E949E09ED
+:101C70008091E80083FF1FC18091F2019091F301F0
+:101C8000492F50E04A30510508F015C1FA01EA5ACF
+:101C9000FF4F0C945D23803881F0823809F00BC12E
+:101CA0008091F6018F708093E9008091EB0085FBB5
+:101CB000882780F91092E90006C08091EE0190918A
+:101CC000EF01911182609091E800977F9093E80076
+:101CD0008093F1001092F100C8C0282F2D7F09F0E9
+:101CE000EAC0882319F0823061F0E5C08091F401E8
+:101CF000813009F0E0C0933009F080E08093EF017B
+:101D00002BC08091F401811127C08091F6018F7062
+:101D100009F4D1C08093E9002091EB0020FF1CC0A2
+:101D2000933021F48091EB00806214C09091EB001D
+:101D300090619093EB0021E030E0A90102C0440FD4
+:101D4000551F8A95E2F74093EA001092EA008091CD
+:101D5000EB0088608093EB001092E9008091E8002E
+:101D6000877F86C08111A7C01091F4011F778091F1
+:101D7000E3008078812B8093E3008091E800877FE7
+:101D80008093E8000E94400C8091E80080FFFCCF27
+:101D90008091E30080688093E300111102C082E02B
+:101DA00001C083E08093F10186C08058823008F042
+:101DB00082C08091F4019091F5018C3D53E095072C
+:101DC00079F583E08A838AE289834FB7F894DE014C
+:101DD000139620E03EE051E2E32FF0E050935700ED
+:101DE000E49120FF03C0E295EF703F5FEF708E2F0C
+:101DF00090E0EA3010F0C79601C0C0968D939D9395
+:101E00002F5F243149F74FBF8091E800877F80938F
+:101E1000E8006AE270E0CE0101960E94470B14C010
+:101E2000AE014F5F5F4F6091F6010E948E0ABC01C8
+:101E3000009709F440C09091E800977F9093E800E4
+:101E400089819A810E94AA0B8091E8008B77809308
+:101E5000E80031C0803879F58091E800877F809371
+:101E6000E8008091ED018093F1008091E8008E7789
+:101E70008093E8000E94400C1EC081111CC090910C
+:101E8000F4019230C0F48091E800877F8093E800ED
+:101E90009093ED010E94400C8091ED01811106C0EC
+:101EA0008091E30087FD02C081E001C084E080935F
+:101EB000F1010E948A098091E80083FF0AC08091A5
+:101EC000E800877F8093E8008091EB008062809338
+:101ED000EB00AA960FB6F894DEBF0FBECDBFDF9120
+:101EE000CF911F9108950895CF938091F101882398
+:101EF000A1F0C091E900CF709091EC00892F817022
+:101F000090FD80E8C82B1092E9008091E80083FDE5
+:101F10000E94220ECF70C093E900CF910895909354
+:101F20007501809374010895E0917401F091750139
+:101F3000309721F00190F081E02D099480E0089520
+:101F4000E0917401F0917501309721F00280F381E6
+:101F5000E02D09940895E0917401F0917501309796
+:101F600021F00480F581E02D0994089520917201FB
+:101F7000309173018217930771F0909373018093EE
+:101F80007201E0917401F0917501309721F00680A3
+:101F9000F781E02D0994089520917001309171012D
+:101FA0008217930771F09093710180937001E09113
+:101FB0007401F0917501309721F00084F185E02DD6
+:101FC0000994089508950C94E20F0E943C1B0E940E
+:101FD000DD020C94FE1B9F92AF92BF92CF92DF92D4
+:101FE000EF92FF920F931F93CF93DF9300D000D017
+:101FF00000D0CDB7DEB70E94F5020DE010E0AA24B4
+:10200000A394B12C902E802F0E94E30398012958AD
+:102010003E4F6901F901F080F826A1F40150110941
+:1020200088F78FEF89838A831B820E94451B81601A
+:10203000782F9D838C8349815A816B818D810E9489
+:1020400082102FC09091DA0191FF04C08E830E940C
+:10205000E9038E8125E030E0A501022E01C0440F86
+:102060000A94EAF7E42E4F21C1F029839A828E2147
+:1020700091E009F490E09B830E94451B8160782FDA
+:102080009D838C8349815A816B818D810E9482104E
+:10209000F6018081E826E08204C021503109E0F693
+:1020A000BDCF0E94E51E109176010E94940F181773
+:1020B000B9F00E94940F8093760126960FB6F8949B
+:1020C000DEBF0FBECDBFDF91CF911F910F91FF906B
+:1020D000EF90DF90CF90BF90AF909F900C948D08C1
+:1020E00026960FB6F894DEBF0FBECDBFDF91CF911D
+:1020F0001F910F91FF90EF90DF90CF90BF90AF9026
+:102100009F900895CF93DF93CDB7DEB72B970FB68F
+:10211000F894DEBF0FBECDBF4F83588769877A879B
+:102120008B87DE01119686E0FD0111928A95E9F711
+:1021300085E0FE01379601900D928A95E1F749817D
+:102140005A816B817C818D819E810E94CB162B965A
+:102150000FB6F894DEBF0FBECDBFDF91CF910895CB
+:10216000CF93882309F4C2C0C82F823859F40E9443
+:10217000940F81FDBBC089E30E94A5190E94721AC9
+:1021800089E30CC0833879F40E94940F80FDAEC0BF
+:1021900083E50E94A5190E94721A83E50E94E7193F
+:1021A000CF910C94721A843859F40E94940F82FDD6
+:1021B0009DC087E40E94A5190E94721A87E4EECFA1
+:1021C0008CEF8C0F813A48F48C2F0E9428218111CA
+:1021D0008DC08C2F0E94A519E3CF80E28C0F883030
+:1021E00048F4C77081E001C0880FCA95EAF70E94E1
+:1021F0002B1AD6CF8BE58C0F833078F4C53A29F0B3
+:10220000C63A31F083E890E005C081E890E002C072
+:1022100082E890E0CF910C94B60F88E58C0F833163
+:1022200008F064C0C83A39F1C93A41F1CA3A49F1F3
+:10223000CB3A51F1CC3A59F1CD3A61F1C03B69F159
+:10224000CE3A71F1CF3A79F1C13B81F1C23B89F1CC
+:10225000C33B91F1C43B99F1C53BA1F1C63BA9F148
+:10226000C73BB1F1C83BB9F1C93BC1F1CA3BC9F1A8
+:1022700080E090E038C082EE90E035C089EE90E0DA
+:1022800032C08AEE90E02FC085EB90E02CC086EB48
+:1022900090E029C087EB90E026C08CEC90E023C052
+:1022A0008DEC90E020C083E891E01DC08AE891E0C9
+:1022B0001AC082E991E017C084E991E014C081E27C
+:1022C00092E011C083E292E00EC084E292E00BC083
+:1022D00085E292E008C086E292E005C087E292E0E3
+:1022E00002C08AE292E0CF910C94CC0FCF91089576
+:1022F000882309F44BC0823859F40E94940F81FF5F
+:1023000045C089E30E94A5190E94721A89E30CC096
+:10231000833871F40E94940F80FF38C083E50E94D7
+:10232000A5190E94721A83E50E94E7190C94721A8B
+:10233000843859F40E94940F82FF28C087E40E94D9
+:10234000A5190E94721A87E4EFCF9CEF980F913A7B
+:1023500058F390E2980F983050F4877091E001C0E4
+:10236000990F8A95EAF7892F0E94311ADFCF9BE5F2
+:10237000980F933020F480E090E00C94B60F885AC8
+:10238000833120F480E090E00C94CC0F08958823F2
+:1023900021F00E942B1A0C94721A0895882321F0C0
+:1023A0000E94311A0C94721A08957F928F929F9214
+:1023B000AF92BF92CF92DF92EF92FF920F931F9353
+:1023C000CF93DF931F92CDB7DEB77C01C62E772E59
+:1023D000FC01058102950F70128111110E94481AAB
+:1023E0000E949E19882379F0112369F080E28C0DF8
+:1023F000883048F082E00E9487190E949E1991E07F
+:10240000D82ED92601C0D12CE72DE295EF70F0E04F
+:10241000E05AFF4F0C945D23872D807F072D0F70AE
+:10242000882311F00295007F112389F0002309F41D
+:1024300090C180E28C0D883020F4802F0E942B1AEE
+:1024400003C0802F0E943B1A0E94721A82C18C2DF9
+:102450000E947811002309F495C180E28C0D883028
+:1024600020F4802F0E94311A03C0802F0E94411A4D
+:102470000E94721A87C1972D907F872D8F7090329E
+:1024800011F08295807FCC2021F0F1E0CF16B1F0E1
+:102490001EC0112349F0002309F414C1013009F0D2
+:1024A00011C10E945B1A6EC1002319F0013009F4BA
+:1024B00069C189830E945E1A89810AC1112321F0B2
+:1024C000023008F05FC1FEC001115CC101C11123DF
+:1024D00021F0002309F4F6C03CC1002309F4F8C040
+:1024E0003EC1872D86958695837090E0009719F000
+:1024F000019761F047C1112321F08C2D972D937026
+:1025000002C080E090E00E94B60F3CC1112321F090
+:102510008C2D972D937002C080E090E00E94CC0F2C
+:1025200031C18C2D112319F00E94ED1D02C00E94B3
+:10253000551E0E94DA1E26C1872D837009F052C0F5
+:10254000111120C18C2D829586958770880F880F78
+:102550009C2D9F70892E912CA12CB12C082E04C08B
+:10256000880C991CAA1CBB1C0A94D2F7C4FE14C088
+:102570000FE010E020E030E0B901A80104C0440FF2
+:10258000551F661F771F8A95D2F7CB01BA01609558
+:1025900070958095909503C060E070E0CB01272D89
+:1025A00026952695237030E02230310569F02330DE
+:1025B000310589F0682979298A299B29213031053B
+:1025C00071F00E941318DEC0682979298A299B2995
+:1025D0000E942F18D7C00E941318C501B4010E9491
+:1025E000F717D0C0112319F0872D817001C086958F
+:1025F000882309F4C7C08C2D829586958770880F33
+:10260000880F9C2D9F70892E912CA12CB12C082E07
+:1026100004C0880C991CAA1CBB1C0A94D2F7C4FEE7
+:1026200014C00FE010E020E030E0B901A80104C0C0
+:10263000440F551F661F771F8A95D2F7CB01BA0149
+:10264000609570958095909503C060E070E0CB0137
+:10265000272D269526952370422F50E042305105B4
+:1026600069F04330510589F0682979298A299B2925
+:102670004130510571F00E94ED1884C06829792914
+:102680008A299B290E9409197DC00E94ED18C50165
+:10269000B4010E94D11876C08C2D90E0FC01E05E60
+:1026A000F109E531F10508F050C0E059FF4F0C94F5
+:1026B0005D230C2D0F70872D8F71112331F00E9437
+:1026C0006A18802F0E94C7115DC00E948B18802F4E
+:1026D0000E94CE1157C0112339F0011153C0872D2C
+:1026E0008F710E94B0184EC0023008F04BC0F7CF77
+:1026F000112339F0872D8F710E946A1843C011236E
+:10270000C9F3872D8F710E948B183CC0112329F0CB
+:10271000872D8F710E94551835C00E944B1832C00A
+:10272000112351F0172D1F71812F0E946A1863E049
+:10273000812F0E947E1926C081E00E9487190230F5
+:1027400008F182E00E9487191DC0112331F0002397
+:1027500089F28C2D0E94B01015C0002391F28C2DAF
+:102760000E9478110FC0472D4F706C2DC7010E9439
+:10277000BF040E946F1706C0472D4F706C2DC70114
+:102780000E949C05DD20F9F00E947A1980FD1BC093
+:10279000F70112820E9474190E946A18C7010E94F0
+:1027A000F2130E9474190F90DF91CF911F910F9136
+:1027B000FF90EF90DF90CF90BF90AF909F908F9061
+:1027C0007F900C948B180F90DF91CF911F910F91F8
+:1027D000FF90EF90DF90CF90BF90AF909F908F9041
+:1027E0007F9008950F931F93CF93DF93EC0188811F
+:1027F00099812B813C81232BB9F09F3F11F48F3FAE
+:1028000099F0CE010E94F404882371F068817981E7
+:102810008A810E9470198C010E9425190E94EC1770
+:10282000B801CE010E94D511DF91CF911F910F9178
+:1028300008950E94481A0E94581A0E941D1A0E9468
+:10284000721A0E948B1F0E94DA1E80E090E00E94A4
+:10285000B60F80E090E00C94CC0F0E94381A0C94D4
+:1028600019140E946519292F22952F7030E02C3001
+:1028700031054CF42A3031056CF4225031092230F4
+:102880003105A8F407C02C30310569F02F3031052F
+:1028900051F00DC0803F69F018F4803E40F409C04B
+:1028A000843F29F406C093FB882780F9089580E0CF
+:1028B000089581E00895CF93DF9300D000D01F9258
+:1028C000CDB7DEB70F900F900F900F900F90DF9164
+:1028D000CF910895CF93DF9300D000D000D0CDB733
+:1028E000DEB726960FB6F894DEBF0FBECDBFDF91E0
+:1028F000CF9108951F93CF93DF93C091850116E088
+:1029000080918601C81799F0D0E01C9FF0011D9FAF
+:10291000F00D1124E957FE4F40815181628173818E
+:10292000848195810E946A142196C770E9CFDF9156
+:10293000CF911F9108954091B7015091B8016091D6
+:10294000B9017091BA018091BB019091BC010C94C6
+:102950006A148091BC0182958F7009F054C08091F7
+:10296000B901882309F44FC080918501A0918601A7
+:102970006091B7017091B8014091BA015091BB01CB
+:10298000B6E08A1709F43FC090E041155105C1F146
+:102990007F3F11F46F3FA1F1B89FF001B99FF00D97
+:1029A0001124E957FE4F218172132AC0208162133E
+:1029B00027C02281211124C02381348124173507A7
+:1029C00010F421503109241B350B283C3105C0F48B
+:1029D0002091BC012F7020612093BC0126E0289F2C
+:1029E000F001299FF00D1124E457FE4F80818F7074
+:1029F0008061808387EB91E00E94F2130C947A143B
+:102A000001968770BECF0895CF92DF92EF92FF922A
+:102A10000F931F93CF93DF93CDB7DEB762970FB6B7
+:102A2000F894DEBF0FBECDBF8C0185E0F801DE015A
+:102A30001D9601900D928A95E1F7D8014C9111965F
+:102A40005C91119712966C9112971396CD90DC9031
+:102A500014973091B7017091B8018091BA019091AB
+:102A6000BB01009709F46BC17F3F19F43F3F09F4A4
+:102A700066C1E090B901EE2009F4C0C02091BC010C
+:102A8000C816D90628F0F601E81BF90BCF0104C0DF
+:102A9000809590958C0D9D1DFF24F394883C9105A5
+:102AA00078F0F12C207F09F0C6C07C2DD98AC88A25
+:102AB00089890E945B1487EB91E00E94F213B1C0F8
+:102AC000822F807F09F046C0751314C0341312C0E2
+:102AD000611110C02F7020612093BC010E949B14D3
+:102AE00087EB91E00E94F2138091BC01D80115960A
+:102AF0008C932EC0CD2819F15F3F11F44F3FF9F0B0
+:102B0000F62E61111CC0809185012091860136E06E
+:102B1000821709F45AC090E0389FF001399FF00DF8
+:102B20001124E957FE4F7181571306C07081471376
+:102B300003C07281711103C001968770E9CFF62E30
+:102B4000662309F418C18091BC0181608093BC01A7
+:102B5000F12C11C1751308C0341306C0611104C0F3
+:102B60008091BC01D801C3C04D875E878D859E854D
+:102B70006A8B0E9431146A898823E1F16623D1F1BE
+:102B80002091BC01822F82958F7090E0029774F0A3
+:102B90008091B7019091B80198878F831986DB8661
+:102BA000CA862C87CE0107960E94F21386E0F801B0
+:102BB000A7EBB1E001900D928A95E1F70E94A9146C
+:102BC0000E949B14FF24F394D6C04D875E878D85A9
+:102BD0009E850E946519292F22952F7030E02230A2
+:102BE00031050CF0BCC09F7009F0B6C0805E883023
+:102BF00008F4C1C0C8010E94F213E4CFC816D90678
+:102C000008F453C0F601E81BF90BCF01883C91058D
+:102C100008F450C0F12C7C2DD98AC88A89890E9479
+:102C20005B14E7EBF1E086E0DF011D928A95E9F79E
+:102C30000E949B14A0C0751314C0341312C06111FC
+:102C400010C08091BC01F8018583C8010E94F21375
+:102C500086E0E7EBF1E0DF011D928A95E9F7FE2CB3
+:102C60008AC04D875E878D859E856A8B0E94311450
+:102C70006A89882309F4BECF662309F4BBCF20916B
+:102C8000BC01822F82958F7090E002970CF48ECF5A
+:102C90008091B7019091B8019A8389831B82DD826C
+:102CA000CC822E83CE0101967FCF809590958C0D9E
+:102CB0009D1DACCFF62E662309F49CCF75132EC054
+:102CC00034132CC02091BC0120FD1FC0822F82959F
+:102CD0008F70D9F0D80115962C9315978F3049F045
+:102CE0008F5F982F9295907F822F8F70892B1596EA
+:102CF0008C93C8010E94F21386E0F801A7EBB1E0C3
+:102D000001900D928A95E1F793CF86E0F801A7EB49
+:102D1000B1E001900D928A95E1F72DC04D875E8755
+:102D20008D859E850E943114811140CF8091BC0118
+:102D300081608093BC01C8010E94F2131CC066230D
+:102D400009F458CF4D875E878D859E850E9431148A
+:102D5000882309F44FCF2ACF811148CF0CC02430EB
+:102D600031050CF047CF9F7009F440CFF8019581F1
+:102D7000907F09F03BCF8F2D62960FB6F894DEBF9F
+:102D80000FBECDBFDF91CF911F910F91FF90EF90BC
+:102D9000DF90CF9008951F93CF93DF93CDB7DEB729
+:102DA0002C970FB6F894DEBF0FBECDBF4F83588768
+:102DB00069877A878B879C87CE0107960E940415C6
+:102DC000882369F08F8198852A853B85232BF1F133
+:102DD0009F3F09F063C08F3F09F060C037C086E0B5
+:102DE000FE013796DE01119601900D928A95E1F76A
+:102DF0006F817885EA85FB85309741F17F3F11F43B
+:102E00006F3F21F12091860130E0C9010196877062
+:102E100099274091850150E08417950709F447C030
+:102E200069837A83FD83EC8396E0929FD001939F20
+:102E3000B00D1124A957BE4FFE01319601900D929D
+:102E40009A95E1F7809386010E947A1416E08091AA
+:102E50008501909186018917C1F1189FC001112445
+:102E600089579E4F0E940415882379F1E0918501CE
+:102E70001E9FF0011124E957FE4F4081518162816C
+:102E80007381848195810E946A148091850190E00C
+:102E900001968770992780938501D9CF4F815885F6
+:102EA00069857A858B859C850E946A14CFCF0E94A4
+:102EB0002D141092860110928501E7EBF1E086E077
+:102EC000DF011D928A95E9F7C1CF2C960FB6F894D1
+:102ED000DEBF0FBECDBFDF91CF911F910895EF925E
+:102EE000FF920F931F93CF93DF938C01009709F408
+:102EF0006CC0F12CEE24E394E8012196F801849152
+:102F0000843740F4843008F051C0813081F0823041
+:102F100019F15BC0853709F444C0A8F19CE7980F0C
+:102F2000903708F052C08F770E94781141C00E5F31
+:102F30001F4FFE01C49180E28C0F883048F4C770A7
+:102F40008E2D01C0880FCA95EAF70E944B1A14C053
+:102F50008C2F0E94B0102DC00E5F1F4FFE01C49138
+:102F600080E28C0F883058F4C7708E2D01C0880F16
+:102F7000CA95EAF70E94511A0E94721A1AC08C2F41
+:102F80000E94781116C00E5F1F4FFE01C491CC2322
+:102F900081F08FE99FE00197F1F700C00000C15078
+:102FA000F6CF0E5F1F4FFE01F49003C00E94B010D9
+:102FB0008E018F2D882309F49FCFEFE9FFE0319731
+:102FC000F1F700C000008150F5CFDF91CF911F9144
+:102FD0000F91FF90EF90089508956093C101709351
+:102FE000C2018093C3019093C4010C9419140F93F0
+:102FF0001F930091C1011091C2012091C301309132
+:10300000C401DC01CB01802B912BA22BB32B80932D
+:10301000C1019093C201A093C301B093C4011F9159
+:103020000F910C9419140F931F930091C1011091EB
+:10303000C2012091C3013091C401DC01CB01802386
+:103040009123A223B3238093C1019093C201A09343
+:10305000C301B093C4011F910F910C9419140F93E5
+:103060001F930091C1011091C2012091C3013091C1
+:10307000C401DC01CB0180279127A227B3278093CD
+:10308000C1019093C201A093C301B093C4011F91E9
+:103090000F910C9419141092BD011092BE01109260
+:1030A000BF011092C0010C94191441E050E060E09F
+:1030B00070E004C0440F551F661F771F8A95D2F732
+:1030C0004093BD015093BE016093BF017093C00156
+:1030D0000C94191441E050E060E070E004C0440F2B
+:1030E000551F661F771F8A95D2F78091BD01909179
+:1030F000BE01A091BF01B091C001482B592B6A2B92
+:103100007B2B4093BD015093BE016093BF01709330
+:10311000C0010C94191441E050E060E070E004C07C
+:10312000440F551F661F771F8A95D2F7409550951B
+:10313000609570958091BD019091BE01A091BF01F5
+:10314000B091C001482359236A237B234093BD01DA
+:103150005093BE016093BF017093C0010C94191489
+:1031600041E050E060E070E004C0440F551F661F6E
+:10317000771F8A95D2F78091BD019091BE01A091F1
+:10318000BF01B091C001482759276A277B27409388
+:10319000BD015093BE016093BF017093C0010C94B8
+:1031A00019140F931F930091BD011091BE0120913E
+:1031B000BF013091C001DC01CB01802B912BA22BF0
+:1031C000B32B8093BD019093BE01A093BF01B09338
+:1031D000C0011F910F910C9419140F931F9300912C
+:1031E000BD011091BE012091BF013091C001DC01F1
+:1031F000CB0180239123A223B3238093BD0190931D
+:10320000BE01A093BF01B093C0011F910F910C9418
+:1032100019140F931F930091BD011091BE012091CD
+:10322000BF013091C001DC01CB0180279127A2278B
+:10323000B3278093BD019093BE01A093BF01B093CB
+:10324000C0011F910F910C9419140895CF92DF9231
+:10325000EF92FF920F931F93CF93DF938C01C09057
+:10326000C101D090C201E090C301F090C4018091EF
+:10327000BD019091BE01A091BF01B091C001C82ACB
+:10328000D92AEA2AFB2ACFE1D0E0D701C6010C2EC9
+:1032900004C0B695A795979587950A94D2F780FFB5
+:1032A00006C0B8018C2F0E94F207019721F42197E4
+:1032B00060F780E001C08C2FDF91CF911F910F91BB
+:1032C000FF90EF90DF90CF900895CF93DF93EC01C4
+:1032D0000E942619BE010E94F207DF91CF91089546
+:1032E000CB010E94651908958091C501859585954A
+:1032F000859508958091C5018770089598E0899F0C
+:1033000090011124262B2093C5010C946A1820915A
+:10331000C501809582238093C501982F977069F429
+:1033200030E0482F552747FD50952417350729F0E1
+:103330008595859585950C948B1808959091C50178
+:10334000977081E009F480E0089590910C01992331
+:1033500021F090910D01911109C020910E01309141
+:103360000F01F90132969FEF40E01FC0982F96950C
+:10337000969596959F3050F5E0910E01F0910F01D2
+:10338000E90FF11D877021E030E0A90102C0440F70
+:10339000551F8A95E2F7CA019181892B818308958F
+:1033A0009F3F39F04F5F4E3041F051915813F8CFA5
+:1033B0000DC05111F7CF942FF5CF9F3F39F0F90190
+:1033C000E90FF11D97FDFA95828308950895909174
+:1033D0000C01992321F090910D01911109C02091C8
+:1033E0000E0130910F01F9013296205F3F4F1FC04F
+:1033F000982F9695969596959F30F0F4E0910E0152
+:10340000F0910F01E90FF11D877021E030E0A90173
+:1034100002C0440F551F8A95E2F7CA018095918139
+:103420008923818308953196E217F30729F090816B
+:103430009813F9CF1082F7CF089581E090E0E091E2
+:103440000E01F0910F01E80FF91F108201968031F3
+:103450009105A9F708959091D901892B8093D901FD
+:10346000089580959091D90189238093D901089579
+:103470001092D90108959091D801892B8093D80199
+:10348000089580959091D80189238093D80108955B
+:103490001092D80108959091D701892B8093D7017C
+:1034A000089580959091D70189238093D70108953D
+:1034B0001092D70108958093C60108951092C60115
+:1034C000089580910E0190910F01FC0131969C01AD
+:1034D000205F3F4F80E0919191118F5FE217F307DA
+:1034E000D1F70895E0910E01F0910F018091D9017B
+:1034F0008083E0910E01F0910F0190818091D801BD
+:10350000892B8083E0910E01F0910F0190818091D1
+:10351000D701892B80838091C601882361F0E091D7
+:103520000E01F0910F019081892B80830E94611A16
+:1035300081111092C60180910E0190910F010C949F
+:10354000A00F20E0009739F0AC01415051098423CD
+:1035500095232F5FF7CF822F0895CF92DF92EF92BE
+:10356000FF926C01EE24FF24C114D104E104F104A4
+:1035700021F0C701B60120E101C020E0C72ED82EFE
+:10358000E92EFF24C114D104E104F10419F0285FED
+:10359000C701B6016B017C0154E0F694E794D7941F
+:1035A000C7945A95D1F7C114D104E104F10419F07C
+:1035B0002C5FC701B6016B017C0142E0F694E794F1
+:1035C000D794C7944A95D1F7C114D104E104F1040A
+:1035D00019F02E5FC701B601DC01CB01B695A795A6
+:1035E00097958795892B8A2B8B2B09F02F5F822F3C
+:1035F000FF90EF90DF90CF9008958091F10184309B
+:1036000021F11092DB0120E488E190E00FB6F894FC
+:10361000A895809360000FBE2093600080E00E9418
+:103620008D0883B7817F846083BF83B7816083BF48
+:103630007894889583B78E7F83BF88E10FB6F8941E
+:1036400080936000109260000FBE08950895089561
+:103650000E94261B0E94F5020E94271B0E94EA037B
+:1036600091E0811101C090E0892F08950E942D14EE
+:103670000E94940F0C948D0882E084BD93E095BD68
+:103680009AEF97BD80936E0008952FB7F8948091BC
+:10369000DC019091DD01A091DE01B091DF012FBF2F
+:1036A0000895CF92DF92EF92FF920F931F932FB75F
+:1036B000F8944091DC015091DD016091DE01709140
+:1036C000DF012FBF6A017B01EE24FF248C0120E083
+:1036D00030E0C016D106E206F30610F4415051095D
+:1036E0009A01281B390BC9011F910F91FF90EF9090
+:1036F000DF90CF9008951F920F920FB60F92112472
+:103700008F939F93AF93BF938091DC019091DD01E4
+:10371000A091DE01B091DF010196A11DB11D809342
+:10372000DC019093DD01A093DE01B093DF01BF9136
+:10373000AF919F918F910F900FBE0F901F90189592
+:103740000E94910CF8942FEF87EA91E62150804077
+:103750009040E1F700C0000087E090EBDC0180932F
+:10376000FB019093FC01A093FD01B093FE019CE04E
+:1037700088E10FB6F894A895809360000FBE9093EF
+:103780006000FFCFEF92FF920F931F93CF93DF93D1
+:10379000D82FCDE08C2F0E94E30305E010E0E82E47
+:1037A000F12CC701002E02C0959587950A94E2F787
+:1037B00080FF09C0602F7C2F80E00E949D05D813F8
+:1037C00002C081E006C00150110958F7C15010F73E
+:1037D00080E0DF91CF911F910F91FF90EF900895BE
+:1037E000CF93C82F8CE20E94C21B882321F08C2F1C
+:1037F000CF910C94C21B80E0CF910895CF930E948B
+:10380000451D811102C00E942B1DC5E6C15049F023
+:103810000E94F5028FE39CE90197F1F700C00000D8
+:10382000F5CF89E20E94F01B811113C18AE20E9448
+:10383000F01B81110E942B1D85E00E94F01B81115D
+:103840000E94A01B0E94501D8093DA0187E00E9415
+:10385000F01B8823A9F18BE10E94F01B882351F013
+:103860008091DA0181FB222720F991E0922790FBD9
+:1038700081F90EC08EE00E94F01B882361F08091D8
+:10388000DA0182FB222720F991E0922790FB82F94E
+:103890008093DA0115C080E10E94F01B9091DA015B
+:1038A000882341F093FB222720F981E0822780FBC7
+:1038B00093F904C0892F809580FB90F99093DA01E9
+:1038C0008091DA010E94541D0E94621D8093FA01CA
+:1038D00080EE0E94F01B882341F08091FA01982F1E
+:1038E000909590FB80F98093FA0189E30E94F01B88
+:1038F000882359F08091FA0181FB222720F991E079
+:10390000922790FB81F98093FA0182EE0E94F01BCE
+:10391000882359F08091FA0182FB222720F991E057
+:10392000922790FB82F98093FA0186EE0E94F01BA9
+:10393000882359F08091FA0183FB222720F991E036
+:10394000922790FB83F98093FA0183EE0E94F01B8B
+:10395000882359F08091FA0184FB222720F991E015
+:10396000922790FB84F98093FA0185E30E94F01B73
+:10397000882359F08091FA0185FB222720F991E0F4
+:10398000922790FB85F98093FA0181E30E94F01B56
+:10399000882359F08091FA0186FB222720F991E0D3
+:1039A000922790FB86F98093FA0181E10E94F01B37
+:1039B000882359F08091FA0187FB222720F991E0B2
+:1039C000922790FB87F98093FA018091FA010E9477
+:1039D000661D8091FA0187FB882780F980930D018D
+:1039E00087E20E94F01BC82F8EE10E94F01B81111C
+:1039F000C2608FE10E94F01B8111C46080E20E94CE
+:103A0000F01B8111C86081E20E94F01B8111C0612E
+:103A100082E20E94F01B8111C06283E20E94F01BCF
+:103A20008111C06484E20E94F01B882311F0C068F9
+:103A300002C0CC2329F08C2F0E945D1D6C2F03C087
+:103A40000E94591D682F70E080E090E0CF910C94A7
+:103A5000ED17CF9108956DEE7EEF80E090E00E942B
+:103A6000972360E082E090E00E94852360E083E09D
+:103A700090E00E94852360E084E090E00E9485232E
+:103A800060E085E090E00C94852380E090E00E9467
+:103A90007F2321E08D3E9E4F09F020E0822F089584
+:103AA00082E090E00C947723682F82E090E00C9401
+:103AB000852383E090E00C947723682F83E090E0E7
+:103AC0000C94852384E090E00C947723682F84E0A5
+:103AD00090E00C9485238091E20180FF0BC06091FF
+:103AE000130185E0689FB001112475956795759560
+:103AF00067952BC081FF09C06091130185E0689F25
+:103B0000B00111247595679520C082FF07C06091B0
+:103B1000130185E0689FB001112417C09091E30163
+:103B20009923D1F060911201961788F72091130123
+:103B300085E0289F90011124929FA001939F500D32
+:103B4000112470E0CA010E9449236038710540F4D5
+:103B50006115710539F002C065E070E0862F0895A7
+:103B60008FE7089581E008958091E20180FF08C009
+:103B70006091110170E0759567957595679521C005
+:103B800081FF06C06091110170E07595679519C0BD
+:103B900082FF04C06091110170E010C09091E301B8
+:103BA0009923C1F0609110019617A0F7809111013F
+:103BB000899FC001112470E00E944923603871057B
+:103BC00028F46115710521F0862F08958FE7089577
+:103BD00081E0089561E070E0F4CF803F21F40E941D
+:103BE0006B1D819504C0813F29F40E946B1D809359
+:103BF000E6010895823F21F40E946B1D819504C067
+:103C0000833F29F40E946B1D8093E5010895893F4D
+:103C100019F40E94B41D05C08A3F31F40E94B41DFE
+:103C200081958093E70108958B3F21F40E94B41D94
+:103C3000819504C08C3F29F40E94B41D8093E80153
+:103C40000895843F21F48091E401816017C0853F8D
+:103C500021F48091E401826011C0863F21F48091BB
+:103C6000E40184600BC0873F21F48091E401886007
+:103C700005C0883F31F48091E40180618093E401C4
+:103C800008958D3F21F48091E20181600BC08E3F49
+:103C900021F48091E201826005C08F3F29F4809178
+:103CA000E20184608093E2010895803F39F48091BD
+:103CB000E60187FF6CC01092E60169C0813F29F4DC
+:103CC0008091E6011816BCF362C09091E501823F35
+:103CD00029F497FF5CC01092E50159C0833F19F4A5
+:103CE0001916CCF354C0893F41F48091E7011816AE
+:103CF0000CF04DC01092E7014AC08A3F29F4809130
+:103D0000E70187FF44C0F6CF8B3F39F48091E8018B
+:103D100087FF3DC01092E8013AC08C3F29F48091A2
+:103D2000E8011816BCF333C0843F21F48091E4010C
+:103D30008E7F17C0853F21F48091E4018D7F11C0F3
+:103D4000863F21F48091E4018B7F0BC0873F21F4F3
+:103D50008091E401877F05C0883F31F48091E401C0
+:103D60008F7E8093E40113C08D3F21F48091E201A6
+:103D70008E7F0BC08E3F21F48091E2018D7F05C0C4
+:103D80008F3F29F48091E2018B7F8093E201809143
+:103D9000E50181110EC08091E60181110AC0809178
+:103DA000E701811106C08091E801811102C01092E3
+:103DB000E301089584EE91E00E94AB0F0E94451B41
+:103DC0009093E1018093E00108951F93CF93DF93D7
+:103DD0008091E0019091E1010E94511BAC01909112
+:103DE000E301992321F02091140130E006C02091D5
+:103DF00015018AE0289F900111244217530708F407
+:103E000086C08091E501C091E601D091E701109153
+:103E1000E801811107C0C11176C0D11174C0111120
+:103E200072C075C09F3F19F09F5F9093E301181611
+:103E300024F40E946B1D8093E5018091E50187FFCA
+:103E400005C00E946B1D81958093E5011C1624F42A
+:103E50000E946B1D8093E6018091E60187FF05C0FB
+:103E60000E946B1D81958093E6016091E5016623B8
+:103E700039F1C091E601CC2319F1772767FD7095E0
+:103E8000872F972F0E945A2223E333E343E35FE314
+:103E90000E94BE220E9427226093E5016C2F7727A3
+:103EA00067FD7095872F972F0E945A2223E333E3F3
+:103EB00043E35FE30E94BE220E9427226093E60153
+:103EC0001D1624F40E94B41D8093E7018091E70140
+:103ED00087FF05C00E94B41D81958093E7011116EC
+:103EE00024F40E94B41D8093E8018091E80187FFCB
+:103EF00005C00E94B41D81958093E801DF91CF91A8
+:103F00001F910C94DA1E9F3F09F08ECF96CFDF9160
+:103F1000CF911F910895E4EEF1E085E0DF011D925D
+:103F20008A95E9F71092E3011092E2010895833037
+:103F300081F128F4813059F08230D1F00895853034
+:103F400009F449C0B8F1863009F456C0089580914B
+:103F50001501262F30E0280F311D2F3F310524F4A5
+:103F6000680F6093150108958FEF809315010895F0
+:103F700080911401262F30E0280F311D2F3F31058D
+:103F800024F4680F6093140108958FEF8093140157
+:103F9000089580911301262F30E0280F311D2F3F07
+:103FA000310524F4680F6093130108958FEF809317
+:103FB0001301089580911201262F30E0280F311D42
+:103FC0002F3F310524F4680F6093120108958FEF9D
+:103FD00080931201089580911101262F30E0280F5F
+:103FE000311D2F3F310524F4680F609311010895AE
+:103FF0008FEF80931101089580911001262F30E0FA
+:10400000280F311D2F3F310524F4680F60931001F4
+:1040100008958FEF809310010895833011F128F4F3
+:10402000813049F0823091F00895853081F120F19E
+:104030008630C1F1089580911501681720F4861B20
+:10404000809315010895109215010895809114012F
+:10405000681720F4861B80931401089510921401B0
+:10406000089580911301681720F4861B8093130133
+:10407000089510921301089580911201681720F499
+:10408000861B809312010895109212010895809169
+:104090001101681720F4861B809311010895109276
+:1040A0001101089580911001681720F4861B8093F8
+:1040B000100108951092100108950F931F938D31F0
+:1040C00009F46BC008F03FC08E3009F47FC0C0F423
+:1040D000873009F469C068F4863009F0B1C0809176
+:1040E000DA01817F8E7F8093DA0181E08093EA019B
+:1040F000A8C0883009F4A2C08B3009F49FC0A0C0CA
+:10410000863109F49BC078F4803109F472C08131A2
+:1041100009F096C00E942D1490910D0181E089272D
+:1041200080930D018BC0893109F488C08B3109F06F
+:1041300087C08091DA0181FB222720F991E0922744
+:1041400090FB81F94CC0853309F470C048F4873284
+:1041500009F46CC008F459C0893209F467C070C012
+:10416000833438F48A3308F04EC0883309F466C0CB
+:1041700067C0833409F45AC0883409F061C00E94D2
+:104180002D140FEF13ED20E3015010402040E1F714
+:1041900000C000000E94A01B51C00E94E1210E94AB
+:1041A000940F0E948D084AC09091DA01892F809562
+:1041B000817080FB90F929F0966098609093DA0105
+:1041C00040C0997F977F9093DA0138C08091DA01DF
+:1041D00082FB222720F991E0922790FB82F98093BD
+:1041E000DA01992359F18091DA0181608093DA0133
+:1041F00025C08091DA0183FB222720F991E09227E4
+:1042000090FB83F9ECCF895301C08D5141E050E020
+:1042100060E070E08A019B0104C0000F111F221FA3
+:10422000331F8A95D2F7C901B80104C061E070E07C
+:1042300080E090E00E94ED170E942D1481E001C003
+:1042400080E01F910F91089580E0089580E0089527
+:10425000CF93C82F8091EA01813079F018F0823035
+:10426000E9F187C0E0910E01F0910F018081813169
+:1042700069F0823209F07FC009C0E0910E01F0912F
+:104280000F018081813111F0823261F48C2F0E9404
+:104290002421811104C08C2F0E945D201DC081E06B
+:1042A00090E01AC08C2F0E942621811114C0C431C5
+:1042B00079F048F4CB3079F0C03109F060C082E089
+:1042C0008093EA0108C0C93219F0C83321F057C001
+:1042D0001092EA0154C081E0817053C0C93289F163
+:1042E00018F5C43171F1A8F4C73009F046C08AE06E
+:1042F0008093150194E19093140193E0909313013E
+:104300008093120188E08093110188E2809310016C
+:1043100034C0CE51C63088F5EC2FF0E0E65DFE4F9C
+:1043200080818093E90129C0CE34E9F020F4CB34B8
+:1043300021F56AE013C0C13579F0C235F1F461E0CE
+:104340000DC08091E901882319F01092E90115C090
+:1043500081E08093EA0115C061E006C08091E90127
+:104360000E94971F0AC06AE08091E9010E940D2017
+:1043700004C01092EA0180E004C081E002C080E045
+:10438000ABCFCF910895E1E8F0E080818860808331
+:104390008081816080838FB7F89493E09093890047
+:1043A00090ED909388008FBF0895EFE6F0E0808154
+:1043B000826080830895EFE6F0E080818D7F8083C6
+:1043C0000895EFE6F0E0908182E0892780830895E8
+:1043D0001F920F920FB60F9211242F933F934F937A
+:1043E0005F936F937F938F939F93AF93BF93EF935D
+:1043F000FF938091EB019091EC0101969093EC0179
+:104400008093EB01811103C082E00E948D08E0914E
+:10441000EC01E695E695F0E0E85FFB4FE4918091D2
+:10442000EB018E1303C080E00E948D08FF91EF9195
+:10443000BF91AF919F918F917F916F915F914F91BC
+:104440003F912F910F900FBE0F901F90189504D0A1
+:104450006894B1118DC0089570D088F09F5790F086
+:10446000B92F9927B751A0F0D1F0660F771F881F99
+:10447000991F1AF0BA95C9F712C0B13081F077D000
+:10448000B1E0089574C0672F782F8827B85F39F09E
+:10449000B93FCCF3869577956795B395D9F73EF4F8
+:1044A00090958095709561957F4F8F4F9F4F0895A0
+:1044B000E89409C097FB3EF49095809570956195BE
+:1044C0007F4F8F4F9F4F9923A9F0F92F96E9BB2774
+:1044D0009395F695879577956795B795F111F8CFF0
+:1044E000FAF4BB0F11F460FF1BC06F5F7F4F8F4F5B
+:1044F0009F4F16C0882311F096E911C0772321F051
+:104500009EE8872F762F05C0662371F096E8862FE8
+:1045100070E060E02AF09A95660F771F881FDAF73F
+:10452000880F9695879597F9089557FD9058440FF1
+:10453000551F59F05F3F71F04795880F97FB991F02
+:1045400061F09F3F79F087950895121613061406BF
+:10455000551FF2CF4695F1DF08C01616170618064C
+:10456000991FF1CF86957105610508940895E89427
+:10457000BB2766277727CB0197F908950BD078C022
+:1045800069D028F06ED018F0952309F05AC05FC0AA
+:104590001124EECFCADFA0F3959FD1F3950F50E021
+:1045A000551F629FF001729FBB27F00DB11D639FE5
+:1045B000AA27F00DB11DAA1F649F6627B00DA11D8B
+:1045C000661F829F2227B00DA11D621F739FB00D31
+:1045D000A11D621F839FA00D611D221F749F3327A1
+:1045E000A00D611D231F849F600D211D822F762F3A
+:1045F0006A2F11249F5750408AF0E1F088234AF037
+:10460000EE0FFF1FBB1F661F771F881F9150504082
+:10461000A9F79E3F510570F014C0AACF5F3FECF39D
+:10462000983EDCF3869577956795B795F795E7956E
+:104630009F5FC1F7FE2B880F911D9695879597F97F
+:10464000089597F99F6780E870E060E008959FEF14
+:1046500080EC089500240A94161617061806090619
+:10466000089500240A9412161306140605060895E8
+:10467000092E0394000C11F4882352F0BB0F40F470
+:10468000BF2B11F460FF04C06F5F7F4F8F4F9F4FB0
+:10469000089597FB072E16F4009407D077FD09D0F4
+:1046A0000E94632307FC05D03EF4909581959F4FAF
+:1046B0000895709561957F4F0895EE0FFF1F059047
+:1046C000F491E02D0994AA1BBB1B51E107C0AA1F5E
+:1046D000BB1FA617B70710F0A61BB70B881F991FA3
+:1046E0005A95A9F780959095BC01CD010895F99947
+:1046F000FECF92BD81BDF89A992780B50895A8E1B3
+:10470000B0E042E050E00C949F23262FF999FECFB1
+:1047100092BD81BDF89A019700B4021639F01FBA14
+:1047200020BD0FB6F894FA9AF99A0FBE0895019633
+:10473000272F0E9486230C948523DC01CB01FC01EA
+:10474000F999FECF06C0F2BDE1BDF89A319600B4EA
+:0E4750000D9241505040B8F70895F894FFCFF5
+:10475E0002208F081D09FA08C60892080101C70138
+:10476E0028080A03140A3F4D3639C9037C03460351
+:10477E000D03A002B902D202EB02010203040506E8
+:04478E00070809000F
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.json b/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.json new file mode 100644 index 000000000..4ade74873 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.json @@ -0,0 +1,385 @@ +[ + { + "name": "Beginner's Keymap for Ergodox-EZ", + "author": "Anand Babu Periasamy" + }, + [ + { + "x": 3.5 + }, + "#\n3\n\n\nF3", + { + "x": 10.5 + }, + ")\n0\n\n\nF10" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "@\n2\n\n\nF2", + { + "x": 1 + }, + "$\n4\n\n\nF4", + { + "x": 8.5 + }, + "(\n9\n\n\nF9", + { + "x": 1 + }, + "_\n-\n\n\nF11" + ], + [ + { + "y": -0.875, + "x": 5.5 + }, + "%\n5\n\n\nF5", + "^\n6\n\n\nF6", + { + "x": 4.5 + }, + "&\n7\n\n\nF7", + "*\n8\n\n\nF8" + ], + [ + { + "y": -0.875, + "w": 1.5 + }, + "~\n`\n\n\nEsc", + "!\n1\n\n\nF1", + { + "x": 14.5 + }, + "+\n=\n\n\nF12", + { + "a": 7, + "w": 1.5 + }, + "Backspace\n\n\n\nBackspace" + ], + [ + { + "y": -0.375, + "x": 3.5 + }, + "E\n\n\n\n<i class=\"fa fa-caret-up\" aria-hidden=\"true\"></i>", + { + "x": 10.5 + }, + "I" + ], + [ + { + "y": -0.8799999999999999, + "x": 2.5 + }, + "W" + ], + [ + { + "y": -0.9950000000000001, + "x": 4.5, + "a": 4 + }, + "R", + { + "x": 8.5, + "a": 7 + }, + "U", + { + "x": 1 + }, + "O" + ], + [ + { + "y": -0.875, + "x": 5.5 + }, + "T", + { + "h": 1.5 + }, + "<i class=\"fa fa-chevron-circle-left\" aria-hidden=\"true\"></i>", + { + "x": 4.5, + "h": 1.5 + }, + "<i class=\"fa fa-chevron-circle-right\" aria-hidden=\"true\"></i>", + "Y" + ], + [ + { + "y": -0.875, + "a": 6, + "w": 1.5 + }, + "Tab", + { + "a": 7 + }, + "Q", + { + "x": 14.5 + }, + "P", + { + "a": 4, + "w": 1.5 + }, + "|\n\\" + ], + [ + { + "y": -0.375, + "x": 3.5, + "a": 7 + }, + "D\n\n\n\n<i class=\"fa fa-caret-down\" aria-hidden=\"true\"></i>", + { + "x": 10.5 + }, + "K" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "S\n\n\n\n<i class=\"fa fa-caret-left\" aria-hidden=\"true\"></i>", + { + "x": 1 + }, + "F\n\n\n\n<i class=\"fa fa-caret-right\" aria-hidden=\"true\"></i>", + { + "x": 8.5 + }, + "J", + { + "x": 1 + }, + "L" + ], + [ + { + "y": -0.875, + "x": 5.5 + }, + "G", + { + "x": 6.5 + }, + "H" + ], + [ + { + "y": -0.875, + "a": 4, + "fa": [ + 0, + 0, + 0, + 2 + ], + "w": 1.5 + }, + "\n\n\nCtrl\n\n\nCaps", + { + "a": 7 + }, + "A", + { + "x": 14.5, + "a": 4 + }, + ":\n;", + { + "a": 7, + "w": 1.5 + }, + "Enter" + ], + [ + { + "y": -0.625, + "x": 6.5, + "h": 1.5 + }, + "PgUp", + { + "x": 4.5, + "h": 1.5 + }, + "PgDn" + ], + [ + { + "y": -0.75, + "x": 3.5 + }, + "C", + { + "x": 10.5, + "a": 4 + }, + "<\n," + ], + [ + { + "y": -0.875, + "x": 2.5, + "a": 7 + }, + "X", + { + "x": 1 + }, + "V", + { + "x": 8.5 + }, + "M", + { + "x": 1, + "a": 4 + }, + ">\n." + ], + [ + { + "y": -0.875, + "x": 5.5, + "a": 7 + }, + "B", + { + "x": 6.5 + }, + "N" + ], + [ + { + "y": -0.875, + "w": 1.5 + }, + "Shift", + "Z", + { + "x": 14.5, + "a": 4 + }, + "?\n/", + { + "w": 1.5 + }, + "\"\n'" + ], + [ + { + "y": -0.375, + "x": 3.5, + "a": 7 + }, + "Alt\n\n\n\n<i class=\"fa fa-hand-o-left\" aria-hidden=\"true\"></i>", + { + "x": 10.5 + }, + "<i class=\"fa fa-long-arrow-down\" aria-hidden=\"true\"></i>\n\n\n\n<i class='fa fa-volume-down'></i>" + ], + [ + { + "y": -0.875, + "x": 2.5 + }, + "<i class='fa fa-linux'></i>", + { + "x": 1 + }, + "Alt\n\n\n\n<i class=\"fa fa-hand-o-right\" aria-hidden=\"true\"></i>", + { + "x": 8.5 + }, + "<i class=\"fa fa-long-arrow-left\" aria-hidden=\"true\"></i>", + { + "x": 1 + }, + "<i class=\"fa fa-long-arrow-up\" aria-hidden=\"true\"></i>\n\n\n\n<i class='fa fa-volume-up'></i>" + ], + [ + { + "y": -0.75, + "x": 0.5 + }, + "Ctrl\n\n\n\n<i class='fa fa-download'></i>", + "Esc", + { + "x": 14.5 + }, + "<i class=\"fa fa-long-arrow-right\" aria-hidden=\"true\"></i>\n\n\n\n<i class='fa fa-volume-off'></i>", + "Fn" + ], + [ + { + "r": 30, + "rx": 6.5, + "ry": 4.25, + "y": -1, + "x": 1 + }, + "<i class=\"fa fa-clone\" aria-hidden=\"true\"></i>", + "(" + ], + [ + { + "h": 2 + }, + "Space", + { + "h": 2 + }, + "Del", + "[" + ], + [ + { + "x": 2 + }, + "{" + ], + [ + { + "r": -30, + "rx": 13, + "y": -1, + "x": -3 + }, + ")", + "<i class=\"fa fa-paste\" aria-hidden=\"true\"></i>" + ], + [ + { + "x": -3 + }, + "]", + { + "h": 2 + }, + "Enter", + { + "h": 2 + }, + "<i class=\"fa fa-chevron-left\" aria-hidden=\"true\"></i>" + ], + [ + { + "x": -3 + }, + "}" + ] +]
\ No newline at end of file diff --git a/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.png b/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.png Binary files differnew file mode 100644 index 000000000..9a6546e35 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/ab/keyboard-layout.png diff --git a/keyboards/ergodox_ez/keymaps/ab/keymap.c b/keyboards/ergodox_ez/keymaps/ab/keymap.c new file mode 100644 index 000000000..9b5c93c1e --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/ab/keymap.c @@ -0,0 +1,140 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define FN1 1 // media layer + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | - | = | BSpace | + * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | Fwd | | Back | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * |Caps/Ctl| A | S | D | F | G |------| |------| H | J | K | L | ; | Enter | + * |--------+------+------+------+------+------| PgUp | | PgDn |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | ' | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Ctrl | Esc | LGui | Alt | Alt | | Left | Up | Dn | Right| Fn | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Copy | ( | | ) | Paste| + * ,------|------+------| |------+------+------. + * | | | [ | | ] | | | + * |Space | Del |------| |------| Enter|BSpace| + * | | | { | | } | | | + * `--------------------' `--------------------' + */ +// 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, KC_WBAK, + CTL_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_PGUP, + KC_LCTL, KC_ESC, KC_LGUI, KC_LALT, KC_LALT, + LCTL(KC_C), KC_LCBR, + KC_LPRN, + KC_SPC, KC_DEL, KC_LBRC, + // right hand + KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_WFWD, 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_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT, + KC_UP, KC_LEFT, KC_RIGHT,KC_DOWN, TG(FN1), + KC_RCBR, LCTL(KC_V), + KC_RPRN, + KC_RBRC, KC_ENT, KC_BSPC + ), +/* Keymap 1: Fn Keys, media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | BSpace | + * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Teensy| | | Lclk | Rclk | | |VolUp |VolDn | Mute | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------+------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// FN1 Layer + [FN1] = KEYMAP( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + 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, + RESET, KC_TRNS, KC_TRNS, + // right hand + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, + KC_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, 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; +}; + +// 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/ab/readme.md b/keyboards/ergodox_ez/keymaps/ab/readme.md new file mode 100644 index 000000000..6b1ac2be3 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/ab/readme.md @@ -0,0 +1,21 @@ +# Beginner's keymap for Ergodox-EZ +Beginner's keymap emulates standard QWERTY keyboard for beginners. Once you get comfortable with the Ergodox-EZ, you may fork this keymap and customize it for your own needs or find a suitable one from the community contributed keymaps. + +![Beginner's Keymap](keyboard-layout.png) + +#### Pros +* Easier to switch between regular keyboards and Ergodox-EZ. +* 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) +* While multiple layers are possible, beginner's keymap only uses one additional layer for mouse, function and volume keys. + +#### Notes +* Ideally number key [6] should have started from the right-hand side of the keyboard. Doing so breaks the familiar QWERTY layout. +* Quote key ['] should have been placed between [:] and [Enter]. Due to lack of key space, it is placed below [Enter]. +* Double [Alt] keys are placed adjacent to each other for convenience. +* [CapsLock] also acts as [Ctrl] key when you press and hold. It is convenient for GNU Emacs users. +* Additional bracket keys are placed in the center of the keyboard for programmer's convenience. + + diff --git a/keyboards/ergodox_ez/keymaps/adnw_k_o_y/compiled.hex b/keyboards/ergodox_ez/keymaps/adnw_k_o_y/compiled.hex new file mode 100644 index 000000000..aee94c583 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/adnw_k_o_y/compiled.hex @@ -0,0 +1,1133 @@ +:100000000C947B020C94BF020C94BF020C94BF02B0
+:100010000C94BF020C94BF020C94BF020C94BF025C
+:100020000C94BF020C94BF020C94E90D0C94BB0E0F
+:100030000C94BF020C94BF020C94BF020C94BF023C
+:100040000C94BF020C9475210C94BF020C94BF0257
+:100050000C94BF020C94571C0C94BF020C94BF026A
+:100060000C94BF020C94BF020C94BF020C94BF020C
+:100070000C94BF020C94BF020C94BF020C94BF02FC
+:100080000C94BF020C94BF020C94BF020C94BF02EC
+:100090000C94BF020C94BF020C94BF020C94BF02DC
+:1000A0000C94BF020C94BF020C94BF02280F4A0F9D
+:1000B00038104A0F38108F0FB20F381007101A106F
+:1000C000E912E912181318134E136E139F149F149C
+:1000D00079139F142914291490149F149F149914B0
+:1000E00036143614361436143614361436143614C0
+:1000F00036143614361436143614361436143614B0
+:10010000481455145C1463146D140000F0A12E0003
+:100110004C002A00E100354100001E000E000B00DB
+:100120001B6134004D001F00370004001400E1047F
+:100130002800200012000800340050002C0021008C
+:1001400036000C002F004F004A0022001D0018004E
+:10015000330000006564500001530000006F000090
+:10016000E3004F000153000000670000E20023009D
+:100170001900070005000000296124000A0017008B
+:10018000130052004B002500060015001A00510014
+:10019000E50026000F00110010002F002B002700A3
+:1001A0002D0016420D6130004E002D001C00096824
+:1001B000E500C10000000100010001000100010094
+:1001C00000003A001E0220022202010001003B0052
+:1001D0001F0221022302010001003C002F0226021F
+:1001E0002F00010001003D00300227023000010015
+:1001F00001003E003102350035020000010001001F
+:1002000001000000010000000100010001000000E9
+:100210000100000001003F005200510024020000D4
+:1002200001004000240021001E00010001004100E7
+:10023000250022001F003700010042002600230095
+:10024000200027000100430025022E0231002E006D
+:100250000100440045000100010001000000010010
+:100260000100010001000100000001000100010087
+:1002700001000100010001000100F2000100010085
+:1002800001000100F000F1000100F4000100010094
+:100290000100F3000100F500010001000100010070
+:1002A0000100000001000100010000000100000049
+:1002B0000100010001000000010000000100010038
+:1002C0000100010001000000010001000100010027
+:1002D0000100A9000100010001000100AC00AA001A
+:1002E000B600010001000100AB00A8000100010000
+:1002F0000100010001000100010001000100AE0049
+:1003000001000100000016034500720067006F0045
+:1003100044006F007800200045005A0000001603DA
+:100320004500720067006F0044006F0078002000F5
+:1003300045005A0000000403090409026D0004018D
+:1003400000A0FA09040000010301010009211101C4
+:1003500000012240000705810308000A090401008A
+:100360000103010200092111010001224D000705CE
+:10037000820308000A0904020001030000000921A9
+:10038000110100012236000705830308000A090451
+:1003900003000103000000092111010001223900BE
+:1003A000070584031000011201100100000008ED90
+:1003B000FE071301000102000105010906A1010564
+:1003C0000719E029E7150025019508750181020547
+:1003D000081901290595057501910295017503918B
+:1003E0000105071900297715002501957875018108
+:1003F00002C005010980A101850216010026B7008F
+:100400001A01002AB700751095018100C0050C097A
+:1004100001A1018503160100269C021A01002A9CF5
+:1004200002751095018100C005010902A1010901B1
+:10043000A10005091901290515002501950575017A
+:10044000810295017503810105010930093115818A
+:10045000257F95027508810609381581257F95014C
+:1004600075088106050C0A38021581257F950175EE
+:10047000088106C0C005010906A101050719E02988
+:10048000E715002501950875018102950175088120
+:100490000105081901290595057501910295017558
+:1004A0000391010507190029FF150026FF00950695
+:1004B00075088100C000000000000000000000007E
+:1004C000010204060A0F17202C3A4A5D71879DB37A
+:1004D000C7DAE9F5FCFFFCF5E9DAC7B39D87715D82
+:1004E0004A3A2C20170F0A060402010000000000FF
+:1004F00000000000000011241FBECFEFDAE0DEBFD5
+:10050000CDBF04B603FE24C08091FD019091FE0191
+:10051000A091FF01B09100028730904BA740B04BF3
+:10052000B9F41092FD011092FE011092FF01109299
+:10053000000214BE84B7877F84BF88E10FB6F894A9
+:1005400080936000109260000FBEE0E0FFE3099529
+:1005500011E0A0E0B1E0E8E7F6E402C005900D92FA
+:10056000A433B107D9F711E0A4E3B1E001C01D92B3
+:10057000AD3FB107E1F70E94310B0C943A230C9484
+:1005800000001092B9008AE08093B800089594EAC0
+:100590009093BC009091BC0097FFFCCF9091B90064
+:1005A000987F983021F0903111F081E00895809388
+:1005B000BB0084E88093BC008091BC0087FFFCCF27
+:1005C0008091B900887F883111F0803471F780E024
+:1005D000089584E98093BC008091BC0084FDFCCF29
+:1005E00008958093BB0084E88093BC008091BC0098
+:1005F00087FFFCCF9091B900987F81E0983209F491
+:1006000080E0089584E88093BC008091BC0087FF5F
+:10061000FCCF8091BB00089580B38C7080BB81B308
+:10062000836F81BB089580910101811115C080E421
+:100630000E94C7028093010181110CC082E10E94D7
+:10064000F10280930101811105C08FEF0E94F10238
+:10065000809301010E94E90284B1807F84B985B151
+:10066000807F85B98AB1837F8AB98BB1837F8BB94B
+:100670003E98469808950E94DD04809301010E94EF
+:1006800013030E940C03A5E3B1E0E3E4F1E08EE084
+:100690008E0F11921D928E13FCCF0C94C7040E94F2
+:1006A000DD04809301010E9413030E940C03A5E363
+:1006B000B1E0E3E4F1E08EE08E0F11921D928E1313
+:1006C000FCCF0895BF92CF92DF92EF92FF920F93EB
+:1006D0001F93CF93DF9380910101882379F080915C
+:1006E00034018F5F80933401811108C00E94DD04C2
+:1006F00080930101811102C00E946F0405E311E0A3
+:10070000C0E0D0E0DD24D39482E0C82EEE24E39450
+:10071000F12CC730D10500F580910101811164C031
+:1007200080E40E94C70280930101811112C082E11E
+:100730000E94F1028093010181110BC0C7010C2EB0
+:1007400001C0880F0A94EAF780950E94F102809315
+:1007500001010E94E90248C0CA30A1F028F4C83063
+:1007600059F0C93061F005C0CC3089F070F0CD305F
+:1007700089F0209A289810C0219A29980DC0229AB1
+:100780002A980AC0239A2B9807C0529A01C0539AFC
+:100790005B9802C03E9A469890EA9A95F1F79FB10D
+:1007A000799902C082E001C080E091709D25982B6C
+:1007B0007C9902C084E001C080E0892B7D9902C051
+:1007C00038E001C030E0832B7E9902C020E101C0F7
+:1007D00020E0822B9FB19095991F9927991F9295A0
+:1007E000990F907E892B0FC080910101811149C022
+:1007F00080E40E94C70280930101882379F1B12C23
+:100800000E94E9028B2DF8019081981719F08083DE
+:10081000C09200010E94130321960F5F1F4FCE303C
+:10082000D10509F076CF80910001882361F18150D4
+:1008300080930001882339F08FE99FE00197F1F759
+:1008400000C0000020C0A3E4B1E0E5E3F1E0CF0187
+:10085000825F91919D938E13FCCF15C083E10E941E
+:10086000F102809301018111CACF81E40E94C70285
+:10087000809301018111C3CF0E940203B82EB0946E
+:10088000BFCF80E0C0CF0E946D0481E0DF91CF91A7
+:100890001F910F91FF90EF90DF90CF90BF90089540
+:1008A000E82FF0E0ED5BFE4F8081089508950F93EF
+:1008B0001F93CF93DF93C3E4D1E010E00C2F025FCE
+:1008C000899190E00E947E1B180F0C13F9CF812FA5
+:1008D000DF91CF911F910F9108950C943D0556988B
+:1008E0005E9825982D9826982E9827982F988FEF08
+:1008F00090E0909389008093880090938B00809380
+:100900008A0090938D0080938C00259A2D9A2FEF6A
+:1009100080E792E0215080409040E1F700C0000065
+:10092000269A2E9A2FEF80E792E021508040904047
+:10093000E1F700C00000279A2F9A2FEF80E792E09E
+:10094000215080409040E1F700C0000025982D988C
+:100950002FEF80E792E0215080409040E1F700C007
+:10096000000026982E982FEF80E792E021508040DB
+:100970009040E1F700C0000027982F9856985E98A5
+:1009800025982D9826982E9827982F98089589EACB
+:100990008093800089E08093810024982C983F9870
+:1009A0008AB18F748AB96E98479A8BB1806B8BB974
+:1009B000769A0E946F040C943C0580E280930101BA
+:1009C0008091510181110EC00E94C10281E080938B
+:1009D00051012FEF83ED90E3215080409040E1F7EB
+:1009E00000C0000080E40E94C702809301018111D1
+:1009F0002EC00E94F10280930101811128C00E9443
+:100A0000F10280930101811122C08FE30E94F10263
+:100A10008093010181111BC00E94E90280E40E94C1
+:100A2000C70280930101811112C08CE00E94F10283
+:100A30008093010181110BC00E94F102809301019A
+:100A4000811105C08FE30E94F102809301010E9491
+:100A5000E90280910101089561110BC0FC018281BE
+:100A6000882321F085EE0E948D1103C085EE0E943F
+:100A7000551280E090E0089508956091BE01709154
+:100A8000BF018091C0019091C1010E948A1B5698BC
+:100A90005E9825982D9826982E9827982F98813023
+:100AA00019F0823021F00895259A2D9A0895269AFA
+:100AB0002E9A089581E0089581E008950C945C05D4
+:100AC0000895282F882339F090E02A3010F44D96AD
+:100AD00008950697089587E290E00895AF92BF9237
+:100AE000DF92EF92FF920F931F93CF93DF938C01CE
+:100AF000FC01C081D181CE010E94031ABE010E9477
+:100B0000DE08EC01B8010E945E05882309F4C9C122
+:100B1000F8018281882309F4BEC080915E018111B1
+:100B20001FC0C431F0E7DF0709F0B5C10E946005BE
+:100B300081E080935E010E94211C90935D0180936F
+:100B40005C011092550110925701109256011092BB
+:100B500059011092580110925B0110925A01A1C1E3
+:100B600080915C0190915D010E942D1C883C910553
+:100B700070F480915501E82FF0E0EE0FFF1FEA5A64
+:100B8000FE4FD183C0838F5F809355018AC1C130EE
+:100B900020E8D20708F451C0F8018281882309F4C3
+:100BA0007EC05E01E894B7F880915401813079F0FD
+:100BB00050F08230C1F482EE0E948D1187E50E94D0
+:100BC0008D1187E50EC082EE0E948D110CC080EE63
+:100BD0000E948D1181EE0E948D1188E10E948D117D
+:100BE00088E10E9455128CE0E82EF12CC5010E2CF4
+:100BF00002C0969587950A94E2F78F700E9461056E
+:100C0000D82E0E948D118D2D0E945512F4E0EF1AFE
+:100C1000F1082CEFE2162FEFF20641F78091540114
+:100C2000813029F010F0823041F482EE04C080EE71
+:100C30000E94551281EE0E945512C43180E7D807F8
+:100C400068F4C23090E7D90708F046C0C115E0E764
+:100C5000DE0771F0C130D047A1F10CC1C33320E7EA
+:100C6000D20709F4D8C0C433D04709F4EBC002C19D
+:100C7000F8018281882309F402C10E940A15FFEF5E
+:100C800024E38CE0F15020408040E1F700C00000F8
+:100C90000E947C1C06C1C13080E8D80770F2C431C4
+:100CA00020E7D20708F0B3C0C23080E7D807A0F42D
+:100CB000C11590E7D90709F4E2C0C130D04709F067
+:100CC000D9C0F8018281882309F4D9C08091DB0161
+:100CD00081608093DB01E5C0F8018281882309F4FB
+:100CE000CEC00E94D61C811102C00E94BC1C0E9472
+:100CF000E91C90E09093EF018093EE01C230F0E7A1
+:100D0000DF0721F48091EE0181607AC0C33020E7D3
+:100D1000D20721F48091EE01826072C0C43080E776
+:100D2000D80721F48091EE0184606AC0C53090E755
+:100D3000D90719F48091EE0127C0C630E0E7DE073D
+:100D400021F48091EE0180615BC0C730F0E7DF07DE
+:100D500021F48091EE01806253C0C83020E7D207B1
+:100D600021F48091EE0180644BC0C93080E7D80740
+:100D700021F48091EE01806843C0CA3090E7D90722
+:100D800029F48091EE01846088603AC0CB30E0E7BE
+:100D9000DE0721F48091EE018E7F32C0CC30F0E787
+:100DA000DF0721F48091EE018D7F2AC0CD3020E74E
+:100DB000D20721F48091EE018B7F22C0CE3080E7F4
+:100DC000D80719F48091EE011AC08091EE01CF305E
+:100DD00090E7D90711F48F7E13C0C031E0E7DE073A
+:100DE00011F48F7D0DC0C131F0E7DF0711F48F7B67
+:100DF00007C0C231D04711F48F7702C08B7F877F45
+:100E00008093EE018091EE010E94ED1C4AC0C33335
+:100E1000F0E7DF07A1F4F8018281882321F0109226
+:100E2000520182E016C080915201811106C086E213
+:100E30000E948D1186E20E94551282E018C0C433D0
+:100E4000D047C1F4F8018281882331F01092530118
+:100E500080E20E94A41225C080915301811106C036
+:100E600087E20E948D1187E20E94551280E20E9463
+:100E7000AB1217C081E08093520180935301C801E7
+:100E8000DF91CF911F910F91FF90EF90DF90BF9076
+:100E9000AF900C945A05C130F0E8DF0708F081CE1E
+:100EA000CCCE80E0DF91CF911F910F91FF90EF901A
+:100EB000DF90BF90AF90089526E0729FF00111245B
+:100EC00044E5849FE00DF11D1124E60FF11DEE0FA6
+:100ED000FF1FE25FFE4F859194910E94F0088115FB
+:100EE00060E49607B0F5811570E3970708F0DEC05F
+:100EF000803E9105D8F4803C910508F06CC0883A9A
+:100F0000910578F4853A910508F06BC08130910520
+:100F100009F452C108F40FC18430910508F04CC1A6
+:100F20000AC18B3B910508F467C005C18F3F91054D
+:100F300009F048F4803F910508F0ADC0883E910566
+:100F400008F43AC1F8C0811520E2920708F0A5C064
+:100F50000895811543E5940790F4811562E596079D
+:100F600008F0C8C0811571E5970708F0BEC081156B
+:100F700020E5920708F09DC09F70906A0895811542
+:100F800045E59407D8F4811564E5960708F0C8C0D4
+:100F9000482F4695469570E2479FA0011124837023
+:100FA000992721E030E0B90102C0660F771F8A95CA
+:100FB000E2F7CB01842B952B9A680895811576E58D
+:100FC000970708F4B2C09C0130562115304108F053
+:100FD000B2C09F70AEC0FC01EE0FFF1FE657F0409D
+:100FE00062C0853A910509F4A9C0863A910509F0D5
+:100FF000A8C082E890E40895883A910509F4A4C055
+:10100000893A910509F4A3C08A3A910509F4A2C06E
+:101010008B3A910509F4A1C08C3A910509F4A0C05E
+:101020008D3A910509F49FC0803B910509F49EC05B
+:101030008E3A910509F49DC08F3A910509F49CC040
+:10104000813B910509F49BC0823B910509F49AC04C
+:10105000833B910509F499C0843B910509F498C03C
+:10106000853B910509F497C0863B910509F496C02C
+:10107000873B910509F495C0883B910509F494C01C
+:10108000893B910509F493C08A3B910509F492C00C
+:1010900080E094E4089590650895FC01FF70EE0FE0
+:1010A000FF1FE65FFE4F8591949108959927906CFC
+:1010B0000895482F437021E030E002C0220F331F13
+:1010C0004A95E2F73C68AC0164E0569547956A950D
+:1010D000E1F74370342B8F708695869560E2869F8A
+:1010E000C0011124822B932B0895982F8827816F9C
+:1010F000906A0895482F4695469570E2479FA00153
+:1011000011248370992721E030E0B90102C0660FF5
+:10111000771F8A95E2F7CB01842B952B9C68089565
+:10112000982F8827846F906A08958F719927982F38
+:1011300088279062089580E090E0089581E890E427
+:10114000089583E890E4089582EE94E4089589EE8A
+:1011500094E408958AEE94E4089585EB94E4089568
+:1011600086EB94E4089587EB94E408958CEC94E482
+:1011700008958DEC94E4089583E895E408958AE851
+:1011800095E4089582E995E4089584E995E4089545
+:1011900081E296E4089583E296E4089584E296E479
+:1011A000089585E296E4089586E296E4089587E23C
+:1011B00096E408958AE296E40895089596E0799F6A
+:1011C000F001112494E5899FE00DF11D1124E60F33
+:1011D000F11DEE0FFF1FE25FFE4F85919491089580
+:1011E0008238910549F1B0F48133910509F458C072
+:1011F00048F48932910509F44EC08A32910509F408
+:1012000054C008958533910509F440C08933910590
+:1012100099F00895833E910529F138F4803E9105B7
+:1012200091F0823E9105A1F00895863E9105F9F076
+:10123000873E910531F108952091EE0120FD3AC0DD
+:1012400021FD38C008958091EE0180FD35C032C087
+:101250008091EE0182FF32C08091EE0184FD30C0AA
+:1012600083EE39C08091EE0182FD28C0F5CF8091D8
+:10127000EE0183FF27C08091EE0184FD21C087EE3F
+:101280002AC08091EE0183FD1DC0F5CF8091EE0153
+:1012900085FD1AC01BC08091EE0185FD17C014C0EA
+:1012A0008091EE0186FD14C015C08091EE0186FD8F
+:1012B00011C00EC080EE0FC089E30DC082EE0BC0DE
+:1012C00080E009C086EE07C089E205C085E303C05F
+:1012D0008AE201C081E390E0089508950C946D09BD
+:1012E00080916F010895CF93DF9300D01F92CDB707
+:1012F000DEB79C018091F401843019F593E0998365
+:101300003B832A839093E9008FEF9091E80081500E
+:1013100095FD06C095ED9A95F1F700008111F5CF86
+:101320008091E80085FF0DC040E050E063E070E090
+:10133000CE0101960E94D90B8091E8008E778093B0
+:10134000E8000F900F900F90DF91CF910895CF9309
+:10135000DF9300D01F92CDB7DEB72091F401243087
+:1013600021F522E029839B838A8383E08093E9002F
+:101370008FEF9091E800815095FD06C095ED9A950C
+:10138000F1F700008111F5CF8091E80085FF0DC0D5
+:1013900040E050E063E070E0CE0101960E94D90B7E
+:1013A0008091E8008E778093E8000F900F900F9067
+:1013B000DF91CF9108952091F4012430F1F422E0DF
+:1013C0002093E9002FEF3091E800215035FD06C051
+:1013D00035ED3A95F1F700002111F5CF2091E800A5
+:1013E00025FF0BC040E050E065E070E00E94D90BA3
+:1013F0008091E8008E778093E8000895CF93DF9383
+:10140000EC019091F401943009F046C080910C01F8
+:101410008823D9F080910D018823B9F09093E900D9
+:101420008FEF9091E800815095FD06C095E19A9567
+:10143000F1F700008111F5CF8091E80085FF2CC005
+:1014400040E050E060E170E017C081E08093E90087
+:101450008FEF9091E800815095FD06C095ED9A952B
+:10146000F1F700008111F5CF8091E80085FF14C0ED
+:1014700040E050E068E070E0CE010E94D90B80911E
+:10148000E8008E778093E80080E1FE01AFE5B1E0EF
+:1014900001900D928A95E1F7DF91CF9108958091A7
+:1014A000F301811109C00E946E0D0E94CB0D809145
+:1014B000E20084608093E20008951092F3010895A1
+:1014C00008950C9462210E94121C0E9468210E94BF
+:1014D00071100C946E0942E061EC81E00E94E80C0E
+:1014E00042E061EC82E00E94E80C42E061EC83E0C3
+:1014F0000E94E80C42E161EC84E00C94E80C8091DD
+:10150000F601833009F455C030F4813071F0823037
+:1015100009F48EC008958A3009F47AC08B3009F43A
+:1015200060C0893009F09CC020C08091F501813AEB
+:1015300009F096C08091E800877F8093E800809151
+:10154000F9019091FA01892B21F460E18FE591E096
+:1015500003C060E080E090E070E00E94240C809185
+:10156000E8008B778093E80008958091F50181323F
+:1015700009F076C08091F9019091FA01009719F075
+:10158000039709F06DC08091E800877F8093E800A1
+:101590008091E80082FD05C08091F4018111F8CFAF
+:1015A0005FC08091F10080936F018091E8008B779C
+:1015B00053C08091F501813A09F052C08091F90140
+:1015C0009091FA01892B09F04BC08091E800877F48
+:1015D0008093E8008091E80080FFFCCF80910C01AF
+:1015E00036C08091F5018132D9F58091F901909151
+:1015F000FA01892BA9F58091E800877F8093E800A4
+:101600000E941D0D8091F70180930C010C940A1526
+:101610008091F501813221F58091E800877F8093E8
+:10162000E8000E941D0D8091F801809370010895DB
+:101630008091F501813AA1F48091E800877F809341
+:10164000E8008091E80080FFFCCF809170018093DA
+:10165000F1008091E8008E778093E8000C941D0DD6
+:10166000089584B7877F84BF88E10FB6F89480938C
+:101670006000109260000FBE80E8809361001092BD
+:1016800061000E94C0100E946E0D0E94CB0D8091DF
+:10169000E20084608093E20078940E9451100E94DE
+:1016A000C21082E091E00E946C100E945021809153
+:1016B000F401853069F40E94DA1B8091F2018823DD
+:1016C000B1F30E94041C882391F30E94C30BEFCF57
+:1016D0000E94C810ECCF292F332723303105C9F0E1
+:1016E00064F42130310581F02230310509F043C026
+:1016F0008DE690E02AE333E042C021323105F1F07B
+:101700002232310541F137C082E190E027EA33E02F
+:1017100036C099278130910541F08230910541F022
+:10172000892B49F5E6E3F3E005C0EEE1F3E002C002
+:10173000E6E0F3E0849190E09F0121C06430D8F4AA
+:10174000E62FF0E0EE0FFF1FEE5DFE4F20813181AE
+:1017500089E090E014C0643070F470E0FB01EE0F9B
+:10176000FF1FE65EFE4F20813181FB01EA5EFE4FE6
+:10177000808190E004C080E090E020E030E0FA0159
+:1017800031832083089580E189BD82E189BD09B458
+:1017900000FEFDCF8091D8008F7D8093D80080918E
+:1017A000E00082608093E0008091E00081FDFCCF4A
+:1017B0000895CF92DF92EF92FF920F931F93CF93F2
+:1017C000DF93EC018B016A010E943C0D811133C053
+:1017D000C114D10439F0F60180819181081B190BE5
+:1017E000C80FD91FE12CF12C0115110519F18091B9
+:1017F000E80085FD16C08091E8008E778093E800B0
+:10180000C114D10449F0F60180819181E80EF91EDE
+:10181000F182E08285E00FC00E943C0D882321F315
+:101820000AC089918093F10001501109FFEFEF1A6E
+:10183000FF0ADACF80E0DF91CF911F910F91FF90E7
+:10184000EF90DF90CF9008952091FB013091FC0143
+:101850002617370748F06115710539F42091E80023
+:101860002E772093E80001C0B90140E061157105B1
+:10187000A9F12091F401222309F443C0253009F491
+:1018800042C02091E80023FD40C02091E80022FDE5
+:1018900032C02091E80020FFE9CF4091F300209171
+:1018A000F20030E0342BFC01CF016115710559F0D5
+:1018B0002830310540F481918093F1006150710925
+:1018C0002F5F3F4FF1CF41E02830310509F040E074
+:1018D0002091E8002E772093E800C8CF4111C9CFAE
+:1018E0000AC08091F401882361F0853061F0809115
+:1018F000E80083FD0AC08091E80082FFF2CF80E01B
+:10190000089582E0089583E0089581E0089520918C
+:10191000FB013091FC012617370748F0611571056E
+:1019200039F42091E8002E772093E80001C0B90136
+:10193000FC0120E06115710591F18091F40188238B
+:1019400009F440C0853009F43FC08091E80083FD70
+:101950003DC08091E80082FD2FC08091E80080FFAB
+:10196000E9CF2091F3008091F20090E0922B611575
+:10197000710559F08830910540F424912093F100CD
+:101980003196615071090196F2CF21E0089709F074
+:1019900020E08091E8008E778093E800CBCF211182
+:1019A000CCCF0AC08091F401882361F0853061F0CA
+:1019B0008091E80083FD0AC08091E80082FFF2CFA9
+:1019C00080E0089582E0089583E0089581E008951D
+:1019D000982F973058F59093E900981739F0709147
+:1019E000EC002091ED005091F00003C0242F762FE1
+:1019F00050E021FF19C03091EB003E7F3093EB00A7
+:101A00003091ED003D7F3093ED003091EB0031607F
+:101A10003093EB007093EC002093ED005093F000B6
+:101A20002091EE0027FF07C09F5FD3CF8F70809378
+:101A3000E90081E0089580E008958091F50187FF35
+:101A400011C08091E80082FD05C08091F4018111F0
+:101A5000F8CF11C08091E8008B770BC08091F40122
+:101A6000882349F08091E80080FFF8CF8091E8005A
+:101A70008E778093E80008952091E4003091E5008E
+:101A800095E64091EC00842F817040FF22C0809148
+:101A9000E80080FD1CC08091F401882391F085301E
+:101AA00091F08091EB0085FD10C04091E4005091D1
+:101AB000E5004217530729F39A01915011F784E08A
+:101AC000089582E0089583E0089581E0089580E01C
+:101AD00008954091E80042FFDECF08950E94DC0D9A
+:101AE0000E94E40DE0EEF0E0808181608083E8ED0B
+:101AF000F0E080818F77808319BCA7EDB0E08C91F6
+:101B00008E7F8C9380818F7E80831092F301089565
+:101B10000F931F93CF93DF930E94DC0D0E94E40D7F
+:101B2000C8EDD0E088818F7788838881806888833A
+:101B300088818F7D888319BC1092F4011092F00186
+:101B40001092F2011092F10100EE10E0F801808194
+:101B50008B7F808388818160888342E060E080E0C1
+:101B60000E94E80CE1EEF0E080818E7F8083E2EE5F
+:101B7000F0E0808181608083808188608083F801CB
+:101B800080818E7F8083888180618883DF91CF917F
+:101B90001F910F910895E8EDF0E080818F7E8083A2
+:101BA000E7EDF0E080818160808384E082BF81E0A6
+:101BB0008093F3010C94880DE8EDF0E080818E7F36
+:101BC00080831092E20008951092DA001092E100F2
+:101BD00008951F920F920FB60F9211242F933F93E7
+:101BE0004F935F936F937F938F939F93AF93BF9325
+:101BF000EF93FF938091E10082FF0BC08091E200A0
+:101C000082FF07C08091E1008B7F8093E1000E94FA
+:101C100050108091DA0080FF1FC08091D80080FFB3
+:101C20001BC08091DA008E7F8093DA008091D9000A
+:101C300080FF0DC080E189BD82E189BD09B400FE4D
+:101C4000FDCF81E08093F4010E944F0A05C019BCCA
+:101C50001092F4010E945D0A8091E10080FF19C09A
+:101C60008091E20080FF15C08091E2008E7F80931A
+:101C7000E2008091E20080618093E2008091D800D0
+:101C800080628093D80019BC85E08093F4010E94A3
+:101C9000610A8091E10084FF30C08091E20084FFFE
+:101CA0002CC080E189BD82E189BD09B400FEFDCF71
+:101CB0008091D8008F7D8093D8008091E1008F7E45
+:101CC0008093E1008091E2008F7E8093E20080911A
+:101CD000E20081608093E2008091F001882311F09E
+:101CE00084E007C08091E30087FD02C081E001C06D
+:101CF00083E08093F4010E94630A8091E10083FFF6
+:101D000029C08091E20083FF25C08091E100877F98
+:101D10008093E10082E08093F4011092F0018091C1
+:101D2000E1008E7F8093E1008091E2008E7F8093BE
+:101D3000E2008091E20080618093E20042E060E096
+:101D400080E00E94E80C8091F00088608093F000B1
+:101D50000E94600AFF91EF91BF91AF919F918F9187
+:101D60007F916F915F914F913F912F910F900FBE97
+:101D70000F901F9018951F920F920FB60F9211247B
+:101D80002F933F934F935F936F937F938F939F9383
+:101D9000AF93BF93CF93DF93EF93FF93C091E9008D
+:101DA000CF708091EC00D82FD17080FDD0E81092D8
+:101DB000E9008091F000877F8093F00078940E9482
+:101DC000FF0E1092E9008091F00088608093F0008F
+:101DD000CD2BCF70C093E900FF91EF91DF91CF91B0
+:101DE000BF91AF919F918F917F916F915F914F9133
+:101DF0003F912F910F900FBE0F901F9018951F933A
+:101E0000CF93DF93CDB7DEB7AA970FB6F894DEBFB6
+:101E10000FBECDBFE5EFF1E088E08E0F9091F100AD
+:101E200091938E13FBCF0E947F0A8091E80083FF7D
+:101E30001FC18091F5019091F601492F50E04A3081
+:101E4000510508F015C1FA01EA5AFF4F0C94EA2235
+:101E5000803881F0823809F00BC18091F9018F70D0
+:101E60008093E9008091EB0085FB882780F9109230
+:101E7000E90006C08091F1019091F2019111826018
+:101E80009091E800977F9093E8008093F100109282
+:101E9000F100C8C0282F2D7F09F0EAC0882319F06F
+:101EA000823061F0E5C08091F701813009F0E0C037
+:101EB000933009F080E08093F2012BC08091F7010C
+:101EC000811127C08091F9018F7009F4D1C08093EE
+:101ED000E9002091EB0020FF1CC0933021F4809199
+:101EE000EB00806214C09091EB0090619093EB0046
+:101EF00021E030E0A90102C0440F551F8A95E2F7A6
+:101F00004093EA001092EA008091EB008860809391
+:101F1000EB001092E9008091E800877F86C0811174
+:101F2000A7C01091F7011F778091E3008078812B83
+:101F30008093E3008091E800877F8093E8000E940F
+:101F40001D0D8091E80080FFFCCF8091E300806848
+:101F50008093E300111102C082E001C083E080930E
+:101F6000F40186C08058823008F082C08091F70169
+:101F70009091F8018C3D53E0950779F583E08A83D1
+:101F80008AE289834FB7F894DE01139620E03EE0A1
+:101F900051E2E32FF0E050935700E49120FF03C09B
+:101FA000E295EF703F5FEF708E2F90E0EA3010F017
+:101FB000C79601C0C0968D939D932F5F243149F73A
+:101FC0004FBF8091E800877F8093E8006AE270E06D
+:101FD000CE0101960E94240C14C0AE014F5F5F4FEA
+:101FE0006091F9010E946B0BBC01009709F440C09D
+:101FF0009091E800977F9093E80089819A810E94F0
+:10200000870C8091E8008B778093E80031C080389E
+:1020100079F58091E800877F8093E8008091F00156
+:102020008093F1008091E8008E778093E8000E9411
+:102030001D0D1EC081111CC09091F7019230C0F49B
+:102040008091E800877F8093E8009093F0010E94E0
+:102050001D0D8091F001811106C08091E30087FD84
+:1020600002C081E001C084E08093F4010E946B0A09
+:102070008091E80083FF0AC08091E800877F809309
+:10208000E8008091EB0080628093EB00AA960FB687
+:10209000F894DEBF0FBECDBFDF91CF911F910895A1
+:1020A0000895CF938091F4018823A1F0C091E900B5
+:1020B000CF709091EC00892F817090FD80E8C82B43
+:1020C0001092E9008091E80083FD0E94FF0ECF701E
+:1020D000C093E900CF9108959093760180937501A4
+:1020E0000895E0917501F0917601309721F001900B
+:1020F000F081E02D099480E00895E0917501F09160
+:102100007601309721F00280F381E02D0994089543
+:10211000E0917501F0917601309721F00480F5810E
+:10212000E02D099408952091730130917401821774
+:10213000930771F09093740180937301E09175019E
+:10214000F0917601309721F00680F781E02D099417
+:10215000089520917101309172018217930771F0F7
+:102160009093720180937101E0917501F091760175
+:10217000309721F00084F185E02D099408950895A9
+:102180000C94BF100E94181C0E943B030C949E1CD0
+:102190009F92AF92BF92CF92DF92EF92FF920F93F6
+:1021A0001F93CF93DF9300D000D000D0CDB7DEB720
+:1021B0000E9462030DE010E0AA24A394B12C902E9B
+:1021C000802F0E945004980128583E4F6901F90160
+:1021D000F080F826A1F40150110988F78FEF898368
+:1021E0008A831B820E94211C8160782F9D838C83AF
+:1021F00049815A816B818D810E945F112FC090911E
+:10220000DB0191FF04C08E830E9456048E8125E07D
+:1022100030E0A501022E01C0440F0A94EAF7E42E33
+:102220004F21C1F029839A828E2191E009F490E038
+:102230009B830E94211C8160782F9D838C83498120
+:102240005A816B818D810E945F11F6018081E826A1
+:10225000E08204C021503109E0F6BDCF0E946C1E1F
+:10226000109177010E9471101817B9F00E94711037
+:102270008093770126960FB6F894DEBF0FBECDBFD0
+:10228000DF91CF911F910F91FF90EF90DF90CF9052
+:10229000BF90AF909F900C946E0926960FB6F8945D
+:1022A000DEBF0FBECDBFDF91CF911F910F91FF9089
+:1022B000EF90DF90CF90BF90AF909F900895CF9315
+:1022C000DF93CDB7DEB72B970FB6F894DEBF0FBE06
+:1022D000CDBF4F83588769877A878B87DE01119638
+:1022E00086E0FD0111928A95E9F785E0FE013796B7
+:1022F00001900D928A95E1F749815A816B817C8129
+:102300008D819E810E94A8172B960FB6F894DEBF90
+:102310000FBECDBFDF91CF910895CF93882309F4ED
+:10232000C2C0C82F823859F40E94711081FDBBC011
+:1023300089E30E94821A0E944F1B89E30CC08338F4
+:1023400079F40E94711080FDAEC083E50E94821A6C
+:102350000E944F1B83E50E94C41ACF910C944F1B1F
+:10236000843859F40E94711082FD9DC087E40E9458
+:10237000821A0E944F1B87E4EECF8CEF8C0F813ABC
+:1023800048F48C2F0E94B62081118DC08C2F0E94A2
+:10239000821AE3CF80E28C0F883048F4C77081E066
+:1023A00001C0880FCA95EAF70E94081BD6CF8BE5BB
+:1023B0008C0F833078F4C53A29F0C63A31F083E8BF
+:1023C00090E005C081E890E002C082E890E0CF9103
+:1023D0000C94931088E58C0F833108F064C0C83AE0
+:1023E00039F1C93A41F1CA3A49F1CB3A51F1CC3A03
+:1023F00059F1CD3A61F1C03B69F1CE3A71F1CF3A72
+:1024000079F1C13B81F1C23B89F1C33B91F1C43BFE
+:1024100099F1C53BA1F1C63BA9F1C73BB1F1C83B5E
+:10242000B9F1C93BC1F1CA3BC9F180E090E038C0C5
+:1024300082EE90E035C089EE90E032C08AEE90E006
+:102440002FC085EB90E02CC086EB90E029C087EB95
+:1024500090E026C08CEC90E023C08DEC90E020C092
+:1024600083E891E01DC08AE891E01AC082E991E01A
+:1024700017C084E991E014C081E292E011C083E2C8
+:1024800092E00EC084E292E00BC085E292E008C0C8
+:1024900086E292E005C087E292E002C08AE292E022
+:1024A000CF910C94A910CF910895882309F44BC0C3
+:1024B000823859F40E94711081FF45C089E30E945F
+:1024C000821A0E944F1B89E30CC0833871F40E946A
+:1024D000711080FF38C083E50E94821A0E944F1B52
+:1024E00083E50E94C41A0C944F1B843859F40E944F
+:1024F000711082FF28C087E40E94821A0E944F1B3D
+:1025000087E4EFCF9CEF980F913A58F390E2980F41
+:10251000983050F4877091E001C0990F8A95EAF7DE
+:10252000892F0E940E1BDFCF9BE5980F933020F47C
+:1025300080E090E00C949310885A833120F480E07E
+:1025400090E00C94A9100895882321F00E94081BA4
+:102550000C944F1B0895882321F00E940E1B0C94AD
+:102560004F1B08957F928F929F92AF92BF92CF920E
+:10257000DF92EF92FF920F931F93CF93DF931F92FF
+:10258000CDB7DEB77C01C62E772EFC010581029502
+:102590000F70128111110E94251B0E947B1A882343
+:1025A00079F0112369F080E28C0D883048F082E0E8
+:1025B0000E94641A0E947B1A91E0D82ED92601C08D
+:1025C000D12CE72DE295EF70F0E0E05AFF4F0C942C
+:1025D000EA22872D807F072D0F70882311F0029546
+:1025E000007F112389F0002309F490C180E28C0D53
+:1025F000883020F4802F0E94081B03C0802F0E9487
+:10260000181B0E944F1B82C18C2D0E945512002363
+:1026100009F495C180E28C0D883020F4802F0E944F
+:102620000E1B03C0802F0E941E1B0E944F1B87C1E0
+:10263000972D907F872D8F70903211F08295807F3B
+:10264000CC2021F0F1E0CF16B1F01EC0112349F0EB
+:10265000002309F414C1013009F011C10E94381B94
+:102660006EC1002319F0013009F469C189830E9409
+:102670003B1B89810AC1112321F0023008F05FC1A0
+:10268000FEC001115CC101C1112321F0002309F436
+:10269000F6C03CC1002309F4F8C03EC1872D8695E1
+:1026A0008695837090E0009719F0019761F047C11B
+:1026B000112321F08C2D972D937002C080E090E0C3
+:1026C0000E9493103CC1112321F08C2D972D937003
+:1026D00002C080E090E00E94A91031C18C2D11232E
+:1026E00019F00E94741D02C00E94DC1D0E94611E30
+:1026F00026C1872D837009F052C0111120C18C2D85
+:10270000829586958770880F880F9C2D9F70892EE3
+:10271000912CA12CB12C082E04C0880C991CAA1C49
+:10272000BB1C0A94D2F7C4FE14C00FE010E020E0F6
+:1027300030E0B901A80104C0440F551F661F771F80
+:102740008A95D2F7CB01BA016095709580959095E6
+:1027500003C060E070E0CB01272D269526952370FD
+:1027600030E02230310569F02330310589F06829E5
+:1027700079298A299B292130310571F00E94F018AE
+:10278000DEC0682979298A299B290E940C19D7C0A3
+:102790000E94F018C501B4010E94D418D0C01123C2
+:1027A00019F0872D817001C08695882309F4C7C070
+:1027B0008C2D829586958770880F880F9C2D9F7031
+:1027C000892E912CA12CB12C082E04C0880C991CA8
+:1027D000AA1CBB1C0A94D2F7C4FE14C00FE010E080
+:1027E00020E030E0B901A80104C0440F551F661F66
+:1027F000771F8A95D2F7CB01BA01609570958095C5
+:10280000909503C060E070E0CB01272D26952695BA
+:102810002370422F50E04230510569F0433051059A
+:1028200089F0682979298A299B294130510571F05D
+:102830000E94CA1984C0682979298A299B290E9483
+:10284000E6197DC00E94CA19C501B4010E94AE19E3
+:1028500076C08C2D90E0FC01E05EF109E531F105D8
+:1028600008F050C0E059FF4F0C94EA220C2D0F7075
+:10287000872D8F71112331F00E944719802F0E94FC
+:10288000A4125DC00E946819802F0E94AB1257C02D
+:10289000112339F0011153C0872D8F710E948D19BA
+:1028A0004EC0023008F04BC0F7CF112339F0872D0E
+:1028B0008F710E94471943C01123C9F3872D8F716F
+:1028C0000E9468193CC0112329F0872D8F710E9446
+:1028D000321935C00E94281932C0112351F0172D2A
+:1028E0001F71812F0E94471963E0812F0E945B1A9C
+:1028F00026C081E00E94641A023008F182E00E9442
+:10290000641A1DC0112331F0002389F28C2D0E941E
+:102910008D1115C0002391F28C2D0E9455120FC00D
+:10292000472D4F706C2DC7010E942C050E944C183A
+:1029300006C0472D4F706C2DC7010E94DD08DD20B9
+:10294000F9F00E94571A80FD1BC0F70112820E9405
+:10295000511A0E944719C7010E94CF140E94511AB0
+:102960000F90DF91CF911F910F91FF90EF90DF902B
+:10297000CF90BF90AF909F908F907F900C946819EC
+:102980000F90DF91CF911F910F91FF90EF90DF900B
+:10299000CF90BF90AF909F908F907F9008950F93AE
+:1029A0001F93CF93DF93EC01888199812B813C8128
+:1029B000232BB9F09F3F11F48F3F99F0CE010E9475
+:1029C0006E05882371F0688179818A810E944D1A91
+:1029D0008C010E94021A0E94C918B801CE010E94FF
+:1029E000B212DF91CF911F910F9108950E94251B84
+:1029F0000E94351B0E94FA1A0E944F1B0E94121F50
+:102A00000E94611E80E090E00E94931080E090E0C0
+:102A10000C94A9100E94151B0C94F6140E94421AE3
+:102A2000292F22952F7030E02C3031054CF42A30BC
+:102A300031056CF42250310922303105A8F407C069
+:102A40002C30310569F02F30310551F00DC0803F39
+:102A500069F018F4803E40F409C0843F29F406C0B0
+:102A600093FB882780F9089580E0089581E0089518
+:102A7000CF93DF9300D000D01F92CDB7DEB70F9079
+:102A80000F900F900F900F90DF91CF910895CF93FB
+:102A9000DF9300D000D000D0CDB7DEB726960FB6BA
+:102AA000F894DEBF0FBECDBFDF91CF9108951F9385
+:102AB000CF93DF93C091860116E080918701C817FC
+:102AC00099F0D0E01C9FF0011D9FF00D1124E857F4
+:102AD000FE4F4081518162817381848195810E9482
+:102AE00047152196C770E9CFDF91CF911F910895C7
+:102AF0004091B8015091B9016091BA017091BB0148
+:102B00008091BC019091BD010C9447158091BD014D
+:102B100082958F7009F054C08091BA01882309F41E
+:102B20004FC080918601A09187016091B80170919A
+:102B3000B9014091BB015091BC01B6E08A1709F47C
+:102B40003FC090E041155105C1F17F3F11F46F3F47
+:102B5000A1F1B89FF001B99FF00D1124E857FE4F85
+:102B6000218172132AC02081621327C02281211182
+:102B700024C0238134812417350710F421503109F2
+:102B8000241B350B283C3105C0F42091BD012F706A
+:102B900020612093BD0126E0289FF001299FF00DC0
+:102BA0001124E357FE4F80818F708061808388EB12
+:102BB00091E00E94CF140C94571501968770BECFF8
+:102BC0000895CF92DF92EF92FF920F931F93CF93CE
+:102BD000DF93CDB7DEB762970FB6F894DEBF0FBEB6
+:102BE000CDBF8C0185E0F801DE011D9601900D92AC
+:102BF0008A95E1F7D8014C9111965C911197129644
+:102C00006C9112971396CD90DC9014973091B80187
+:102C10007091B9018091BB019091BC01009709F4BA
+:102C20006BC17F3F19F43F3F09F466C1E090BA01E0
+:102C3000EE2009F4C0C02091BD01C816D90628F0C5
+:102C4000F601E81BF90BCF0104C0809590958C0D1F
+:102C50009D1DFF24F394883C910578F0F12C207F92
+:102C600009F0C6C07C2DD98AC88A89890E94381586
+:102C700088EB91E00E94CF14B1C0822F807F09F0D1
+:102C800046C0751314C0341312C0611110C02F70E8
+:102C900020612093BD010E94781588EB91E00E948D
+:102CA000CF148091BD01D80115968C932EC0CD28EC
+:102CB00019F15F3F11F44F3FF9F0F62E61111CC07E
+:102CC000809186012091870136E0821709F45AC06D
+:102CD00090E0389FF001399FF00D1124E857FE4F26
+:102CE0007181571306C07081471303C0728171113F
+:102CF00003C001968770E9CFF62E662309F418C148
+:102D00008091BD0181608093BD01F12C11C17513CB
+:102D100008C0341306C0611104C08091BD01D80100
+:102D2000C3C04D875E878D859E856A8B0E940E1578
+:102D30006A898823E1F16623D1F12091BD01822FB8
+:102D400082958F7090E0029774F08091B801909115
+:102D5000B90198878F831986DB86CA862C87CE01B6
+:102D600007960E94CF1486E0F801A8EBB1E001902D
+:102D70000D928A95E1F70E9486150E947815FF242E
+:102D8000F394D6C04D875E878D859E850E94421A3A
+:102D9000292F22952F7030E0223031050CF0BCC075
+:102DA0009F7009F0B6C0805E883008F4C1C0C801C9
+:102DB0000E94CF14E4CFC816D90608F453C0F60118
+:102DC000E81BF90BCF01883C910508F450C0F12CA9
+:102DD0007C2DD98AC88A89890E943815E8EBF1E0F0
+:102DE00086E0DF011D928A95E9F70E947815A0C060
+:102DF000751314C0341312C0611110C08091BD014D
+:102E0000F8018583C8010E94CF1486E0E8EBF1E069
+:102E1000DF011D928A95E9F7FE2C8AC04D875E87F7
+:102E20008D859E856A8B0E940E156A89882309F418
+:102E3000BECF662309F4BBCF2091BD01822F8295BE
+:102E40008F7090E002970CF48ECF8091B801909132
+:102E5000B9019A8389831B82DD82CC822E83CE01C5
+:102E600001967FCF809590958C0D9D1DACCFF62E51
+:102E7000662309F49CCF75132EC034132CC0209107
+:102E8000BD0120FD1FC0822F82958F70D9F0D8011F
+:102E900015962C9315978F3049F08F5F982F929548
+:102EA000907F822F8F70892B15968C93C8010E947A
+:102EB000CF1486E0F801A8EBB1E001900D928A955D
+:102EC000E1F793CF86E0F801A8EBB1E001900D9215
+:102ED0008A95E1F72DC04D875E878D859E850E947E
+:102EE0000E15811140CF8091BD0181608093BD019D
+:102EF000C8010E94CF141CC0662309F458CF4D8727
+:102F00005E878D859E850E940E15882309F44FCF1C
+:102F10002ACF811148CF0CC0243031050CF047CFA7
+:102F20009F7009F440CFF8019581907F09F03BCF65
+:102F30008F2D62960FB6F894DEBF0FBECDBFDF9126
+:102F4000CF911F910F91FF90EF90DF90CF90089558
+:102F50001F93CF93DF93CDB7DEB72C970FB6F894BE
+:102F6000DEBF0FBECDBF4F83588769877A878B87B7
+:102F70009C87CE0107960E94E115882369F08F8116
+:102F800098852A853B85232BF1F19F3F09F063C08B
+:102F90008F3F09F060C037C086E0FE013796DE0142
+:102FA000119601900D928A95E1F76F817885EA85F7
+:102FB000FB85309741F17F3F11F46F3F21F1209164
+:102FC000870130E0C90101968770992740918601F9
+:102FD00050E08417950709F447C069837A83FD831D
+:102FE000EC8396E0929FD001939FB00D1124A857D7
+:102FF000BE4FFE01319601900D929A95E1F78093B4
+:1030000087010E94571516E08091860190918701F3
+:103010008917C1F1189FC001112488579E4F0E9443
+:10302000E115882379F1E09186011E9FF0011124BA
+:10303000E857FE4F4081518162817381848195817F
+:103040000E9447158091860190E00196877099272C
+:1030500080938601D9CF4F81588569857A858B8584
+:103060009C850E944715CFCF0E940A1510928701B8
+:1030700010928601E8EBF1E086E0DF011D928A956F
+:10308000E9F7C1CF2C960FB6F894DEBF0FBECDBFC7
+:10309000DF91CF911F910895EF92FF920F931F93AD
+:1030A000CF93DF938C01009709F46CC0F12CEE24D0
+:1030B000E394E8012196F8018491843740F4843048
+:1030C00008F051C0813081F0823019F15BC0853742
+:1030D00009F444C0A8F19CE7980F903708F052C05B
+:1030E0008F770E94551241C00E5F1F4FFE01C491A1
+:1030F00080E28C0F883048F4C7708E2D01C0880F95
+:10310000CA95EAF70E94281B14C08C2F0E948D11CB
+:103110002DC00E5F1F4FFE01C49180E28C0F8830DE
+:1031200058F4C7708E2D01C0880FCA95EAF70E9427
+:103130002E1B0E944F1B1AC08C2F0E94551216C0C6
+:103140000E5F1F4FFE01C491CC2381F08FE99FE0F9
+:103150000197F1F700C00000C150F6CF0E5F1F4F7E
+:10316000FE01F49003C00E948D118E018F2D8823E3
+:1031700009F49FCFEFE9FFE03197F1F700C00000BD
+:103180008150F5CFDF91CF911F910F91FF90EF907C
+:10319000089508956093C2017093C3018093C401A0
+:1031A0009093C5010C94F6140F931F930091C201E4
+:1031B0001091C3012091C4013091C501DC01CB0104
+:1031C000802B912BA22BB32B8093C2019093C30130
+:1031D000A093C401B093C5011F910F910C94F614F4
+:1031E0000F931F930091C2011091C3012091C4015C
+:1031F0003091C501DC01CB0180239123A223B323AD
+:103200008093C2019093C301A093C401B093C50100
+:103210001F910F910C94F6140F931F930091C2010C
+:103220001091C3012091C4013091C501DC01CB0193
+:1032300080279127A227B3278093C2019093C301CF
+:10324000A093C401B093C5011F910F910C94F61483
+:103250001092BE011092BF011092C0011092C101E4
+:103260000C94F61441E050E060E070E004C0440FBC
+:10327000551F661F771F8A95D2F74093BE01509362
+:10328000BF016093C0017093C1010C94F61441E03A
+:1032900050E060E070E004C0440F551F661F771FC8
+:1032A0008A95D2F78091BE019091BF01A091C00193
+:1032B000B091C101482B592B6A2B7B2B4093BE0147
+:1032C0005093BF016093C0017093C1010C94F61438
+:1032D00041E050E060E070E004C0440F551F661FFD
+:1032E000771F8A95D2F7409550956095709580919B
+:1032F000BE019091BF01A091C001B091C1014823CE
+:1033000059236A237B234093BE015093BF016093EE
+:10331000C0017093C1010C94F61441E050E060E0EC
+:1033200070E004C0440F551F661F771F8A95D2F7BF
+:103330008091BE019091BF01A091C001B091C101E7
+:10334000482759276A277B274093BE015093BF0126
+:103350006093C0017093C1010C94F6140F931F93F6
+:103360000091BE011091BF012091C0013091C101B7
+:10337000DC01CB01802B912BA22BB32B8093BE01C0
+:103380009093BF01A093C001B093C1011F910F9111
+:103390000C94F6140F931F930091BE011091BF017E
+:1033A0002091C0013091C101DC01CB018023912328
+:1033B000A223B3238093BE019093BF01A093C001C9
+:1033C000B093C1011F910F910C94F6140F931F93AA
+:1033D0000091BE011091BF012091C0013091C10147
+:1033E000DC01CB0180279127A227B3278093BE0160
+:1033F0009093BF01A093C001B093C1011F910F91A1
+:103400000C94F6140895CF92DF92EF92FF920F93EF
+:103410001F93CF93DF938C01C090C201D090C30162
+:10342000E090C401F090C5018091BE019091BF0170
+:10343000A091C001B091C101C82AD92AEA2AFB2A69
+:10344000CFE1D0E0D701C6010C2E04C0B695A795F8
+:10345000979587950A94D2F780FF06C0B8018C2F04
+:103460000E945C07019721F4219760F780E001C07A
+:103470008C2FDF91CF911F910F91FF90EF90DF90F4
+:10348000CF900895CF93DF93EC010E94031ABE0101
+:103490000E945C07DF91CF910895CB010E94421AF0
+:1034A00008958091C60185958595859508958091AB
+:1034B000C6018770089598E0899F90011124262BFA
+:1034C0002093C6010C9447192091C6018095822350
+:1034D0008093C601982F977069F430E0482F5527E4
+:1034E00047FD50952417350729F0859585958595D5
+:1034F0000C94681908959091C601977081E009F4C1
+:1035000080E0089590910C01992321F090910D0194
+:10351000911109C020910E0130910F01F9013296ED
+:103520009FEF40E01FC0982F9695969596959F30F7
+:1035300050F5E0910E01F0910F01E90FF11D877038
+:1035400021E030E0A90102C0440F551F8A95E2F73F
+:10355000CA019181892B818308959F3F39F04F5F84
+:103560004E3041F051915813F8CF0DC05111F7CFA3
+:10357000942FF5CF9F3F39F0F901E90FF11D97FD29
+:10358000FA9582830895089590910C01992321F072
+:1035900090910D01911109C020910E0130910F0100
+:1035A000F9013296205F3F4F1FC0982F9695969550
+:1035B00096959F30F0F4E0910E01F0910F01E90F24
+:1035C000F11D877021E030E0A90102C0440F551FB2
+:1035D0008A95E2F7CA0180959181892381830895B4
+:1035E0003196E217F30729F090819813F9CF1082F2
+:1035F000F7CF089581E090E0E0910E01F0910F0186
+:10360000E80FF91F1082019680319105A9F70895FE
+:103610009091DA01892B8093DA0108958095909139
+:10362000DA0189238093DA0108951092DA0108956E
+:103630009091D901892B8093D9010895809590911B
+:10364000D90189238093D90108951092D901089551
+:103650009091D801892B8093D801089580959091FD
+:10366000D80189238093D80108951092D801089534
+:103670008093C70108951092C701089580910E01AB
+:1036800090910F01FC0131969C01205F3F4F80E03B
+:10369000919191118F5FE217F307D1F70895E091AF
+:1036A0000E01F0910F018091DA018083E0910E010B
+:1036B000F0910F0190818091D901892B8083E09155
+:1036C0000E01F0910F0190818091D801892B8083A8
+:1036D0008091C701882361F0E0910E01F0910F0104
+:1036E0009081892B80830E943E1B81111092C7011B
+:1036F00080910E0190910F010C947D1020E00097B5
+:1037000039F0AC0141505109842395232F5FF7CF45
+:10371000822F0895CF92DF92EF92FF926C01EE24F8
+:10372000FF24C114D104E104F10421F0C701B60162
+:1037300020E101C020E0C72ED82EE92EFF24C114BD
+:10374000D104E104F10419F0285FC701B6016B014F
+:103750007C0154E0F694E794D794C7945A95D1F736
+:10376000C114D104E104F10419F02C5FC701B601C2
+:103770006B017C0142E0F694E794D794C7944A9594
+:10378000D1F7C114D104E104F10419F02E5FC7018F
+:10379000B601DC01CB01B695A79597958795892B46
+:1037A0008A2B8B2B09F02F5F822FFF90EF90DF90F9
+:1037B000CF9008958091F401843021F11092DC01C2
+:1037C00020E488E190E00FB6F894A895809360001B
+:1037D0000FBE2093600080E00E946E0983B7817F56
+:1037E000846083BF83B7816083BF7894889583B7F3
+:1037F0008E7F83BF88E10FB6F894809360001092AB
+:1038000060000FBE089508950E944F030E94620356
+:103810000E94031C0E94570491E0811101C090E0B6
+:10382000892F08950E940A150E9471100C946E0948
+:1038300082E084BD93E095BD9AEF97BD80936E00C2
+:1038400008952FB7F8948091DD019091DE01A09149
+:10385000DF01B091E0012FBF0895CF92DF92EF9288
+:10386000FF920F931F932FB7F8944091DD01509171
+:10387000DE016091DF017091E0012FBF6A017B01E1
+:10388000EE24FF248C0120E030E0C016D106E206D1
+:10389000F30610F4415051099A01281B390BC90154
+:1038A0001F910F91FF90EF90DF90CF9008951F929E
+:1038B0000F920FB60F9211248F939F93AF93BF93E4
+:1038C0008091DD019091DE01A091DF01B091E001D6
+:1038D0000196A11DB11D8093DD019093DE01A0939F
+:1038E000DF01B093E001BF91AF919F918F910F9055
+:1038F0000FBE0F901F9018950E946E0DF8942FEF39
+:1039000087EA91E6215080409040E1F700C0000036
+:1039100087E090EBDC018093FD019093FE01A09382
+:10392000FF01B09300029CE088E10FB6F894A895DF
+:10393000809360000FBE90936000FFCF0E94D61C62
+:10394000811102C00E94BC1C0E94E11C8093DB011B
+:103950000E94E91C90E09093EF018093EE0187FBB9
+:10396000882780F980930D010E94E51C682F70E084
+:1039700080E090E00C94CA186DEE7EEF80E090E05D
+:103980000E94242360E082E090E00E94122360E025
+:1039900083E090E00E94122360E084E090E00E94C7
+:1039A000122360E085E090E00C94122380E090E028
+:1039B0000E940C2321E08D3E9E4F09F020E0822FD3
+:1039C000089582E090E00C94042383E090E00C944E
+:1039D000042384E090E00C940423682F84E090E0BA
+:1039E0000C9412238091E30180FF0BC060911301BE
+:1039F00085E0689FB0011124759567957595679569
+:103A00002BC081FF09C06091130185E0689FB00160
+:103A100011247595679520C082FF07C0609113013E
+:103A200085E0689FB001112417C09091E4019923AB
+:103A3000D1F060911201961788F72091130185E06B
+:103A4000289F90011124929FA001939F500D112453
+:103A500070E0CA010E94D6226038710540F46115F9
+:103A6000710539F002C065E070E0862F08958FE798
+:103A7000089581E008958091E30180FF08C060917E
+:103A8000110170E0759567957595679521C081FF67
+:103A900006C06091110170E07595679519C082FFAD
+:103AA00004C06091110170E010C09091E40199236D
+:103AB000C1F0609110019617A0F780911101899FC4
+:103AC000C001112470E00E94D6226038710528F4EC
+:103AD0006115710521F0862F08958FE7089581E023
+:103AE000089561E070E0F4CF803F21F40E94F21C61
+:103AF000819504C0813F29F40E94F21C8093E70164
+:103B00000895823F21F40E94F21C819504C0833FF6
+:103B100029F40E94F21C8093E6010895893F19F46C
+:103B20000E943B1D05C08A3F31F40E943B1D8195D8
+:103B30008093E80108958B3F21F40E943B1D8195FD
+:103B400004C08C3F29F40E943B1D8093E901089535
+:103B5000843F21F48091E501816017C0853F21F405
+:103B60008091E501826011C0863F21F48091E501DA
+:103B700084600BC0873F21F48091E501886005C017
+:103B8000883F31F48091E50180618093E5010895DB
+:103B90008D3F21F48091E30181600BC08E3F21F4C1
+:103BA0008091E301826005C08F3F29F48091E30199
+:103BB00084608093E3010895803F39F48091E701A8
+:103BC00087FF6CC01092E70169C0813F29F48091A2
+:103BD000E7011816BCF362C09091E601823F29F418
+:103BE00097FF5CC01092E60159C0833F19F4191683
+:103BF000CCF354C0893F41F48091E80118160CF0D1
+:103C00004DC01092E8014AC08A3F29F48091E80132
+:103C100087FF44C0F6CF8B3F39F48091E90187FFDD
+:103C20003DC01092E9013AC08C3F29F48091E9012E
+:103C30001816BCF333C0843F21F48091E5018E7FD8
+:103C400017C0853F21F48091E5018D7F11C0863F2B
+:103C500021F48091E5018B7F0BC0873F21F4809197
+:103C6000E501877F05C0883F31F48091E5018F7EB3
+:103C70008093E50113C08D3F21F48091E3018E7F95
+:103C80000BC08E3F21F48091E3018D7F05C08F3FF3
+:103C900029F48091E3018B7F8093E3018091E60119
+:103CA00081110EC08091E70181110AC08091E80165
+:103CB000811106C08091E901811102C01092E401D6
+:103CC000089585EE91E00E9488100E94211C909337
+:103CD000E2018093E10108951F93CF93DF938091D8
+:103CE000E1019091E2010E942D1CAC019091E40150
+:103CF000992321F02091140130E006C02091150194
+:103D00008AE0289F900111244217530708F486C0C7
+:103D10008091E601C091E701D091E8011091E9019D
+:103D2000811107C0C11176C0D11174C0111172C0C8
+:103D300075C09F3F19F09F5F9093E401181624F41B
+:103D40000E94F21C8093E6018091E60187FF05C086
+:103D50000E94F21C81958093E6011C1624F40E94B7
+:103D6000F21C8093E7018091E70187FF05C00E9464
+:103D7000F21C81958093E7016091E601662339F199
+:103D8000C091E701CC2319F1772767FD7095872F44
+:103D9000972F0E94E72123E333E343E35FE30E948D
+:103DA0004B220E94B4216093E6016C2F772767FDB8
+:103DB0007095872F972F0E94E72123E333E343E396
+:103DC0005FE30E944B220E94B4216093E7011D161D
+:103DD00024F40E943B1D8093E8018091E80187FF55
+:103DE00005C00E943B1D81958093E801111624F4C3
+:103DF0000E943B1D8093E9018091E90187FF05C086
+:103E00000E943B1D81958093E901DF91CF911F9125
+:103E10000C94611E9F3F09F08ECF96CFDF91CF911A
+:103E20001F910895E5EEF1E085E0DF011D928A958E
+:103E3000E9F71092E4011092E3010895833081F1D3
+:103E400028F4813059F08230D1F00895853009F49A
+:103E500049C0B8F1863009F456C008958091150123
+:103E6000262F30E0280F311D2F3F310524F4680F35
+:103E70006093150108958FEF809315010895809147
+:103E80001401262F30E0280F311D2F3F310524F477
+:103E9000680F6093140108958FEF809314010895C3
+:103EA00080911301262F30E0280F311D2F3F31055F
+:103EB00024F4680F6093130108958FEF809313012A
+:103EC000089580911201262F30E0280F311D2F3FD9
+:103ED000310524F4680F6093120108958FEF8093E9
+:103EE0001201089580911101262F30E0280F311D15
+:103EF0002F3F310524F4680F6093110108958FEF6F
+:103F000080931101089580911001262F30E0280F31
+:103F1000311D2F3F310524F4680F6093100108957F
+:103F20008FEF809310010895833011F128F48130D0
+:103F300049F0823091F00895853081F120F186308A
+:103F4000C1F1089580911501681720F4861B8093B4
+:103F500015010895109215010895809114016817B4
+:103F600020F4861B80931401089510921401089583
+:103F700080911301681720F4861B80931301089524
+:103F800010921301089580911201681720F4861B86
+:103F900080931201089510921201089580911101E9
+:103FA000681720F4861B8093110108951092110167
+:103FB000089580911001681720F4861B80931001EA
+:103FC00008951092100108950F931F938D3109F4F5
+:103FD00071C008F045C0803109F485C008F587300C
+:103FE00009F46FC068F4863009F0ADC08091DB0140
+:103FF000817F8E7F8093DB0181E08093EB01A4C001
+:104000008B3009F49EC08E3009F09DC08091DB0199
+:1040100082FB222720F991E0922790FB82F96CC065
+:10402000863109F48EC060F4813109F08CC00E94A1
+:104030000A1590910D0181E0892780930D0181C0BF
+:10404000893109F47EC08B3109F07DC08091DB019C
+:1040500081FB222720F991E0922790FB81F94CC047
+:10406000853309F466C048F4873209F462C008F465
+:104070004FC0893209F45DC066C0833438F48A3396
+:1040800008F044C0883309F45CC05DC0833409F48F
+:1040900050C0883409F057C00E940A150FEF13ED85
+:1040A00020E3015010402040E1F700C000000E94D2
+:1040B0007C1C47C00E946E210E9471100E946E09F4
+:1040C00040C09091DB01892F8095817080FB90F931
+:1040D00029F0966098609093DB0136C0997F977FB6
+:1040E0009093DB012EC08091DB0183FB222720F916
+:1040F00091E0922790FB83F98093DB01992309F1EA
+:104100008091DB0181608093DB011BC0895301C07A
+:104110008D5141E050E060E070E08A019B0104C0F5
+:10412000000F111F221F331F8A95D2F7C901B80152
+:1041300004C061E070E080E090E00E94CA180E9434
+:104140000A1581E001C080E01F910F91089580E081
+:10415000089580E008958E518A3030F4E82FF0E021
+:10416000E65DFE4F8081089580E00895CF93C82FCB
+:104170008091EB01813079F018F08230E9F186C04E
+:10418000E0910E01F0910F018081813169F082325E
+:1041900009F07EC009C0E0910E01F0910F0180810D
+:1041A000813111F0823261F48C2F0E94A72081119D
+:1041B00004C08C2F0E94E41F1DC081E090E01AC053
+:1041C0008C2F0E94A920811114C0C43179F048F4C9
+:1041D000CB3079F0C03109F05FC082E08093EB0111
+:1041E00008C0C93219F0C83321F056C01092EB0153
+:1041F00053C081E0817052C0C93281F110F5C431E1
+:1042000069F1A8F4C73009F045C08AE08093150130
+:1042100094E19093140193E0909313018093120121
+:1042200088E08093110188E28093100133C082EE10
+:104230008C0F863078F58C2F0E94AB208093EA019A
+:1042400029C0CE34E9F020F4CB3421F56AE013C064
+:10425000C13579F0C235F1F461E00DC08091EA0119
+:10426000882319F01092EA0115C081E08093EB01D8
+:1042700015C061E006C08091EA010E941E1F0AC0BD
+:104280006AE08091EA010E94941F04C01092EB0141
+:1042900080E004C081E002C080E0ACCFCF910895FF
+:1042A000E1E8F0E0808188608083808181608083A4
+:1042B0008FB7F89493E09093890090ED90938800E5
+:1042C0008FBF0895EFE6F0E08081826080830895DB
+:1042D000EFE6F0E080818D7F80830895EFE6F0E0E7
+:1042E000908182E08927808308951F920F920FB6F4
+:1042F0000F9211242F933F934F935F936F937F936C
+:104300008F939F93AF93BF93EF93FF938091EC01B3
+:104310009091ED0101969093ED018093EC01811154
+:1043200003C082E00E946E09E091ED01E695E695FA
+:10433000F0E0EB54FB4FE4918091EC018E1303C04D
+:1043400080E00E946E09FF91EF91BF91AF919F9124
+:104350008F917F916F915F914F913F912F910F902E
+:104360000FBE0F901F90189504D06894B1118DC0A6
+:10437000089570D088F09F5790F0B92F9927B751C2
+:10438000A0F0D1F0660F771F881F991F1AF0BA9519
+:10439000C9F712C0B13081F077D0B1E0089574C090
+:1043A000672F782F8827B85F39F0B93FCCF386950F
+:1043B00077956795B395D9F73EF49095809570956C
+:1043C00061957F4F8F4F9F4F0895E89409C097FBE9
+:1043D0003EF490958095709561957F4F8F4F9F4FDC
+:1043E0009923A9F0F92F96E9BB279395F695879520
+:1043F00077956795B795F111F8CFFAF4BB0F11F4E3
+:1044000060FF1BC06F5F7F4F8F4F9F4F16C0882389
+:1044100011F096E911C0772321F09EE8872F762FBF
+:1044200005C0662371F096E8862F70E060E02AF000
+:104430009A95660F771F881FDAF7880F96958795EC
+:1044400097F9089557FD9058440F551F59F05F3F55
+:1044500071F04795880F97FB991F61F09F3F79F0A6
+:1044600087950895121613061406551FF2CF469528
+:10447000F1DF08C0161617061806991FF1CF8695AA
+:104480007105610508940895E894BB27662777278E
+:10449000CB0197F908950BD078C069D028F06ED081
+:1044A00018F0952309F05AC05FC01124EECFCADF7F
+:1044B000A0F3959FD1F3950F50E0551F629FF00137
+:1044C000729FBB27F00DB11D639FAA27F00DB11D90
+:1044D000AA1F649F6627B00DA11D661F829F222719
+:1044E000B00DA11D621F739FB00DA11D621F839FA0
+:1044F000A00D611D221F749F3327A00D611D231F76
+:10450000849F600D211D822F762F6A2F11249F57C3
+:1045100050408AF0E1F088234AF0EE0FFF1FBB1FE6
+:10452000661F771F881F91505040A9F79E3F510585
+:1045300070F014C0AACF5F3FECF3983EDCF3869591
+:1045400077956795B795F795E7959F5FC1F7FE2B30
+:10455000880F911D9695879597F9089597F99F670C
+:1045600080E870E060E008959FEF80EC08950024FB
+:104570000A941616170618060906089500240A94C8
+:1045800012161306140605060895092E0394000C4E
+:1045900011F4882352F0BB0F40F4BF2B11F460FFDD
+:1045A00004C06F5F7F4F8F4F9F4F089597FB072E7B
+:1045B00016F4009407D077FD09D00E94F02207FC82
+:1045C00005D03EF4909581959F4F08957095619523
+:1045D0007F4F0895EE0FFF1F0590F491E02D099491
+:1045E000AA1BBB1B51E107C0AA1FBB1FA617B70719
+:1045F00010F0A61BB70B881F991F5A95A9F7809535
+:104600009095BC01CD010895F999FECF92BD81BD71
+:10461000F89A992780B50895A8E1B0E042E050E00B
+:104620000C942C23262FF999FECF92BD81BDF89AC8
+:10463000019700B4021639F01FBA20BD0FB6F894E6
+:10464000FA9AF99A0FBE08950196272F0E94132314
+:104650000C941223DC01CB01FC01F999FECF06C0BA
+:10466000F2BDE1BDF89A319600B40D924150504030
+:08467000B8F70895F894FFCF9C
+:1046780002207009FE09DB09A70973090101C801B5
+:1046880028080A03140A404D363975042804F20331
+:10469800B9034C0365037E0397030102030405066F
+:0446A80007080900F6
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/adnw_k_o_y/keymap.c b/keyboards/ergodox_ez/keymaps/adnw_k_o_y/keymap.c new file mode 100644 index 000000000..052517d70 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/adnw_k_o_y/keymap.c @@ -0,0 +1,185 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_german.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 | K | . | O | , | Y | L1 | | L1 | V | G | C | L | ß | Z | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | H | A | E | I | U |------| |------| D | T | R | N | S | F | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |X/Ctrl| Q | Ä | Ü | Ö | | | | B | P | W | M | J | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | LGui | | Alt |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space|Enter |------| |------| Tab |RShift| + * | | | 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, DE_K, DE_DOT, DE_O, DE_COMM,DE_Y, TG(SYMB), + KC_BSPC, DE_H, DE_A, DE_E, DE_I, DE_U, + KC_LSFT, CTL_T(DE_X), DE_Q, DE_AE, DE_UE, DE_OE, 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_ENT ,KC_END, + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(SYMB), DE_V, DE_G, DE_C, DE_L, DE_SS, DE_Z, + DE_D, DE_T, DE_R, DE_N, LT(MDIA, DE_S), GUI_T(KC_F), + MEH_T(KC_NO),KC_B, KC_P, KC_W, KC_M, CTL_T(KC_J), 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_RSFT + ), +/* 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| |------| |------| | | | | | 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) { + 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/adnw_k_o_y/readme.md b/keyboards/ergodox_ez/keymaps/adnw_k_o_y/readme.md new file mode 100644 index 000000000..f0dd3815c --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/adnw_k_o_y/readme.md @@ -0,0 +1,7 @@ +# Basic implementation for k.o,y variant of the adnw layout + +adnw is a layout optimised for usage with german and english language +k.o,y is a variant of this layout +http://www.adnw.de/index.php?n=Main.SeitlicheNachbaranschl%C3%A4ge + +The os must use the de_DE layout diff --git a/keyboards/ergodox_ez/keymaps/alexjj/compiled.hex b/keyboards/ergodox_ez/keymaps/alexjj/compiled.hex new file mode 100644 index 000000000..58fecdd21 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/alexjj/compiled.hex @@ -0,0 +1,1172 @@ +:100000000C94DA020C941E030C941E030C941E0331
+:100010000C941E030C941E030C941E030C941E03DC
+:100020000C941E030C941E030C94D30D0C94A50E7B
+:100030000C941E030C941E030C941E030C941E03BC
+:100040000C941E030C94AF220C941E030C941E03FC
+:100050000C941E030C94421C0C941E030C941E035F
+:100060000C941E030C941E030C941E030C941E038C
+:100070000C941E030C941E030C941E030C941E037C
+:100080000C941E030C941E030C941E030C941E036C
+:100090000C941E030C941E030C941E030C941E035C
+:1000A0000C941E030C941E030C941E03120F340FA9
+:1000B0002210340F2210790F9C0F2210F10F041020
+:1000C000D312D3120213021338135813891489144C
+:1000D00063138914131413147A1489148914831460
+:1000E0002014201420142014201420142014201470
+:1000F0002014201420142014201420142014201460
+:1001000032143F1446144D14571475FF01E201597F
+:100110000259015D025D015E025E02E2000000F034
+:10012000A1F0A2F0A329002B00E300E100E0000011
+:10013000001E00140004001D7406014E001F001A6A
+:100140000016001B0019012A002000080007000605
+:10015000005000280021001500090019004F004B35
+:1001600000220017000A0005000000C30023002F32
+:100170000000004A0000003E002400300000004D56
+:100180000000003B0025001C000B0011000000C215
+:1001900000260018000D0010005100490027000C37
+:1001A000000E00360052002C002D0012000F003708
+:1001B00000007FC1002E0013003300380035004CD2
+:1001C000002A0031003400E500E4000000010001D5
+:1001D0000001000100010000003A001E022002227E
+:1001E00002033001003B001F022102230201000133
+:1001F000003C002F0226022F00010001003D0030CC
+:100200000227023000010001003E003102350035B6
+:1002100002000001003F0001000000010000000199
+:1002200000400001000000010000000100410052F8
+:100230000051002402000001004200240021001EA1
+:1002400000010001004300250022001F00370001CB
+:10025000004400260023002000270001004500255F
+:10026000022E0231002E004C054600010001000163
+:10027000003D0400000050010001000100010000E9
+:100280000001000100010001000100010001000166
+:1002900000F2000100010001000100F000F1000186
+:1002A00000F400010001000100F3000100F500016D
+:1002B0000001000100010001000000010001000137
+:1002C0000000000100000001000100010000000129
+:1002D0000000000100010001000100010000000118
+:1002E000000100010001000100AA0001000100015D
+:1002F000000100AC00A900B600010001000100AB44
+:1003000000A800010001000100010001000100013E
+:100310000001000100AE00010001000000E200E267
+:1003200000E200E200E200000059000100040001C8
+:1003300000E20001005A00010001000100E200E2B9
+:10034000005B000800070006000100E2005C0001FD
+:100350000009000100010001005D0001000100052D
+:1003600000000001005E000100000001000000012B
+:10037000005F0001000000010000000100600001BA
+:1003800000010001000000010061005F005C0059F5
+:100390000062000100620060005D005A006200E23D
+:1003A00000570061005E005B006200E200570057EA
+:1003B0000057005700570001000100010001000133
+:1003C000000100000016034500720067006F004442
+:1003D000006F007800200045005A00000016034519
+:1003E00000720067006F0044006F00780020004535
+:1003F000005A0000000403090409026D0004010012
+:10040000A0FA090400000103010100092111010003
+:1004100001223F000705810308000A0904010001C9
+:1004200003010200092111010001224D000705828C
+:100430000308000A09040200010300000009211159
+:100440000100012236000705830308000A0904039E
+:1004500000010300000009211101000122390007F9
+:100460000584031000011201100100000008EDFED8
+:10047000071301000102000105010906A10105079A
+:1004800019E029E715002501950875018102050885
+:1004900019012905950575019102950175039101D1
+:1004A0000507190029771500250195787501810246
+:1004B000C005010980A101850216010026B7001AB6
+:1004C00001002AB700751095018100C0050C0901D3
+:1004D000A1018503160100269C021A01002A9C0234
+:1004E000751095018100C005010902A1010901A152
+:1004F00000050919012905150025019505750181DA
+:100500000295017503810105010930093115812525
+:100510007F95027508810609381581257F9501753B
+:10052000088106050C0A38021581257F950175089A
+:100530008106C0C005010906A101050719E029E7E8
+:100540001500250195087501810295017508810145
+:100550000508190129059505750191029501750395
+:1005600091010507190029FF150025FF950675085B
+:100570008100C00000000000000000000000010237
+:1005800004060A0F17202C3A4A5D71879DB3C7DA1B
+:10059000E9F5FCFFFCF5E9DAC7B39D87715D4A3ADE
+:1005A0002C20170F0A0604020100000000000000C2
+:1005B0000000000011241FBECFEFDAE0DEBFCDBF88
+:1005C00004B603FE24C08091FB019091FC01A09130
+:1005D000FD01B091FE018730904BA740B04BB9F4BC
+:1005E0001092FB011092FC011092FD011092FE018D
+:1005F00014BE84B7877F84BF88E10FB6F8948093D8
+:100600006000109260000FBEE0E0FFE3099511E08A
+:10061000A0E0B1E0ECEEF8E402C005900D92A43346
+:10062000B107D9F711E0A4E3B1E001C01D92AB3FDF
+:10063000B107E1F70E94170B0C9474240C9400008E
+:100640001092B9008AE08093B800089594EA9093DC
+:10065000BC009091BC0097FFFCCF9091B900987FAF
+:10066000983021F0903111F081E008958093BB0023
+:1006700084E88093BC008091BC0087FFFCCF809110
+:10068000B900887F883111F0803471F780E00895D7
+:1006900084E98093BC008091BC0084FDFCCF089568
+:1006A0008093BB0084E88093BC008091BC0087FFEE
+:1006B000FCCF9091B900987F81E0983209F480E0F6
+:1006C000089584E88093BC008091BC0087FFFCCF34
+:1006D0008091BB00089580910101811115C080E4D3
+:1006E0000E9426038093010181110CC082E10E94C7
+:1006F000500380930101811105C08FEF0E945003C8
+:10070000809301010E94480384B1807F84B985B140
+:10071000807F85B98AB1837F8AB98BB1837F8BB99A
+:100720003E98469808950E942605809301010E94F4
+:100730006B0380B38C7080BB81B3836F81BBA5E3F7
+:10074000B1E0E3E4F1E08EE08E0F11921D928E1382
+:10075000FCCF0C941005BF92CF92DF92EF92FF92E4
+:100760000F931F93CF93DF9380910101882379F03A
+:10077000809134018F5F80933401811108C00E9401
+:10078000260580930101811102C00E94B80405E38F
+:1007900011E0C0E0D0E0DD24D39482E0C82EEE2446
+:1007A000E394F12CC730D10500F58091010181114E
+:1007B00064C080E40E94260380930101811112C06D
+:1007C00082E10E9450038093010181110BC0C70197
+:1007D0000C2E01C0880F0A94EAF780950E945003FE
+:1007E000809301010E94480348C0CA30A1F028F458
+:1007F000C83059F0C93061F005C0CC3089F070F0D4
+:10080000CD3089F0209A289810C0219A29980DC0DF
+:10081000229A2A980AC0239A2B9807C0529A01C09C
+:10082000539A5B9802C03E9A469890EA9A95F1F7DF
+:100830009FB1799902C082E001C080E091709D254E
+:10084000982B7C9902C084E001C080E0892B7D99BF
+:1008500002C038E001C030E0832B7E9902C020E165
+:1008600001C020E0822B9FB19095991F9927991F75
+:100870009295990F907E892B0FC080910101811173
+:1008800049C080E40E94260380930101882379F106
+:10089000B12C0E9448038B2DF8019081981719F014
+:1008A0008083C09200010E946B0321960F5F1F4F4F
+:1008B000CE30D10509F076CF80910001882361F117
+:1008C000815080930001882339F08FE99FE00197E0
+:1008D000F1F700C0000020C0A3E4B1E0E5E3F1E0DF
+:1008E000CF01825F91919D938E13FCCF15C083E160
+:1008F0000E945003809301018111CACF81E40E94BC
+:100900002603809301018111C3CF0E946103B82E99
+:10091000B094BFCF80E0C0CF0E94B60481E0DF91E9
+:10092000CF911F910F91FF90EF90DF90CF90BF90EC
+:100930000895E82FF0E0ED5BFE4F80810895089563
+:100940000F931F93CF93DF93C3E4D1E010E00C2FFC
+:10095000025F899190E00E94681B180F0C13F9CF79
+:10096000812FDF91CF911F910F9108950C949305E2
+:1009700056985E9825982D9826982E9827982F9807
+:100980008FEF90E0909389008093880090938B0084
+:1009900080938A0090938D0080938C00259A2D9AE5
+:1009A0002FEF80E792E0215080409040E1F700C0B7
+:1009B0000000269A2E9A2FEF80E792E02150804087
+:1009C0009040E1F700C00000279A2F9A2FEF80E7B0
+:1009D00092E0215080409040E1F700C0000025984F
+:1009E0002D982FEF80E792E0215080409040E1F772
+:1009F00000C0000026982E982FEF80E792E021504B
+:100A000080409040E1F700C0000027982F9856984A
+:100A10005E9825982D9826982E9827982F980895B7
+:100A200089EA8093800089E08093810024982C9843
+:100A30003F988AB18F748AB96E98479A8BB1806B50
+:100A40008BB9769A0E94B8040C94920580E2809348
+:100A500001018091510181110EC00E94200381E0AB
+:100A6000809351012FEF83ED90E32150804090401F
+:100A7000E1F700C0000080E40E942603809301019A
+:100A800081112EC00E94500380930101811128C062
+:100A90000E94500380930101811122C08FE30E94C4
+:100AA00050038093010181111BC00E94480380E420
+:100AB0000E94260380930101811112C08CE00E94E4
+:100AC00050038093010181110BC00E945003809359
+:100AD0000101811105C08FE30E9450038093010141
+:100AE0000E944803809101010895CF93DF93EC01A8
+:100AF000662319F0633059F00DC08A81882321F0F4
+:100B000085EE0E94771103C085EE0E943F128A8114
+:100B1000811103C080E090E002C08AE091E0DF91A3
+:100B2000CF91089508956091BD017091BE018091AB
+:100B3000BF019091C0010E94741B56985E98259841
+:100B40002D9826982E9827982F98823039F0833048
+:100B500041F0813041F4259A2D9A0895269A2E9AD3
+:100B60000895279A2F9A089581E0089581E00895C5
+:100B70000C94B60508950F931F93CF93DF938C01C8
+:100B8000FC01C081D181CE010E94ED19BE010E94FD
+:100B90006406EC01B8010E94B805882309F48DC0F1
+:100BA000F8018281882309F44AC080915D01811196
+:100BB0001FC0C431F0E5DF0709F051C00E94BA053B
+:100BC00081E080935D010E940C1C90935C018093F6
+:100BD0005B0110925401109256011092550110922F
+:100BE00058011092570110925A011092590165C094
+:100BF00080915B0190915C010E94181C883C9105DA
+:100C000070F480915401E82FF0E0EE0FFF1FEB5AD3
+:100C1000FE4FD183C0838F5F809354014EC0C43890
+:100C200080E5D80721F0C538D04501F13AC0F80178
+:100C30008281882341F01092520182E01EC0C438A4
+:100C4000E0E5DE0759F580915201811106C086E288
+:100C50000E94771186E20E943F1282E01CC0C438D5
+:100C6000F0E5DF0741F3C538D045D9F4F8018281BA
+:100C7000882331F01092530180E20E948E121DC031
+:100C800080915301811106C087E20E94771187E2AB
+:100C90000E943F1280E20E9495120FC0C538D045D5
+:100CA00029F381E08093520180935301C801DF91C1
+:100CB000CF911F910F910C94B40580E0DF91CF91FB
+:100CC0001F910F910895089596E0799FF0011124E6
+:100CD00094E5899FE00DF11D1124E60FF11DEE0F43
+:100CE000FF1FEB5DFE4F859194910895880F991F2A
+:100CF000FC01E356F040859194910895880F991F67
+:100D0000FC01E35EFE4F8591949108950F931F932C
+:100D1000CF93DF93EC01811520E3920750F5C115C5
+:100D200080E2D80708F0C3C0CB3BD10590F4C83AA5
+:100D3000D10508F06AC0C53AD10508F05BC0C430DF
+:100D4000D10508F0D0C1219709F0CAC101E010E037
+:100D50000AC2CF3FD10511F008F0C5C1C03FD1058F
+:100D600008F0A2C0CE01805E9109089708F4BBC1CB
+:100D7000B7C1C13090E5D90709F4A2C020F5C03150
+:100D80008FE4D80770F4C11590E4D90708F094C037
+:100D9000C11521E3D20708F0A3C1DD278E01106C35
+:100DA000E2C1C115D04509F09BC10E94F4148FEF38
+:100DB00094E32CE0815090402040E1F700C0000017
+:100DC0000E94671CD0C1C11597E5D90758F4C031FE
+:100DD00021E5D20708F01CC1C43180E5D80708F42A
+:100DE00075C07EC1CE0190578115904108F078C141
+:100DF000DF7073C1C53AD10509F477C1C63AD10590
+:100E000009F076C102E810E4AEC1C83AD10509F490
+:100E100072C1C93AD10509F471C1CA3AD10509F4C0
+:100E200070C1CB3AD10509F46FC1CC3AD10509F4B0
+:100E30006EC1CD3AD10509F46DC1C03BD10509F4AD
+:100E40006CC1CE3AD10509F46BC1CF3AD10509F492
+:100E50006AC1C13BD10509F469C1C23BD10509F49E
+:100E600068C1C33BD10509F467C1C43BD10509F48E
+:100E700066C1C53BD10509F465C1C63BD10509F47E
+:100E800064C1C73BD10509F463C1C83BD10509F46E
+:100E900062C1C93BD10509F461C1CA3BD10509F45E
+:100EA00060C100E014E45FC18E0110655CC1CE0139
+:100EB0009F700E947E0658C1DF708E01106A53C178
+:100EC0008091DA0181608093DA014DC10E940C1E8D
+:100ED000811102C00E94F21D0E94291E90E0909391
+:100EE000FB018093FA01C23080E5D80721F480919C
+:100EF000FA01816086C0C43090E5D90721F4809161
+:100F0000FA0182607EC0C63020E5D20721F48091CC
+:100F1000FA01846076C0C83080E5D80719F4809162
+:100F2000FA0127C0CA3090E5D90721F48091FA016F
+:100F3000806167C0CC3020E5D20721F48091FA01AE
+:100F400080625FC0CE3080E5D80721F48091FA013D
+:100F5000806457C0C03190E5D90721F48091FA012F
+:100F600080684FC0C23120E5D20729F48091FA0190
+:100F70008460886046C0C33080E5D80721F4809142
+:100F8000FA018E7F3EC0C53090E5D90721F48091EB
+:100F9000FA018D7F36C0C73020E5D20721F4809159
+:100FA000FA018B7F2EC0C93080E5D80719F48091F3
+:100FB000FA0126C0CB3090E5D90721F48091FA01DF
+:100FC0008F7E1FC0CD3020E5D20721F48091FA0139
+:100FD0008F7D17C0CF3080E5D80721F48091FA01CA
+:100FE0008F7B0FC0C13190E5D90721F48091FA01C0
+:100FF0008F7707C0C331D04531F48091FA018B7FE0
+:10100000877F8093FA018091FA010E942D1EABC068
+:101010008D2F99278F70992781309105D9F49E01E2
+:101020002370332702C0880F991F2A95E2F79C6826
+:101030008E0144E0000F111F4A95E1F7002713705D
+:10104000802B912B53E0CC0FDD1F5A95E1F7C07632
+:10105000DD272FC08230910531F4DC2FCC278E01A3
+:10106000016F106A80C08330910569F4CE018370EE
+:10107000992701E010E002C0000F111F8A95E2F7E6
+:10108000C8019C680FC084309105B9F4CE0183700B
+:10109000992701E010E002C0000F111F8A95E2F7C6
+:1010A000C8019A6823E0CC0FDD1F2A95E1F7C07EC6
+:1010B000D7708C010C2B1D2B56C08530910531F457
+:1010C000DC2FCC278E01046F106A4DC0069709F003
+:1010D0004AC0CF71DD27DC2FCC278E01106243C0C0
+:1010E00000E010E040C08E013EC001E810E43BC0CB
+:1010F00003E810E438C002EE14E435C009EE14E44D
+:1011000032C00AEE14E42FC005EB14E42CC006EB49
+:1011100014E429C007EB14E426C00CEC14E423C04B
+:101120000DEC14E420C003E815E41DC00AE815E442
+:101130001AC002E915E417C004E915E414C001E27D
+:1011400016E411C003E216E40EC004E216E40BC07C
+:1011500005E216E408C006E216E405C007E216E45C
+:1011600002C00AE216E4C801DF91CF911F910F91EE
+:10117000089596E0799FF001112494E5899FE00D90
+:10118000F11D1124E60FF11DEE0FFF1FEB5DFE4F69
+:1011900085919491803E9105E0F4803C910558F54D
+:1011A0008133910509F46FC048F48932910509F43F
+:1011B00063C08A32910509F46DC072C0893391050C
+:1011C000E9F082389105D1F08533910509F44DC0DD
+:1011D00067C0833E910581F138F4803E9105B9F0F6
+:1011E000823E9105D9F05CC0863E910561F1873E53
+:1011F0009105A1F155C00E94760608952091FA014B
+:1012000020FD02C021FF4CC080EE90E049C08091DB
+:10121000FA0180FFF9CF89E390E042C08091FA01A2
+:1012200082FF0EC08091FA0184FF03C080E090E04D
+:1012300037C083EE90E034C08091FA0182FFF2CF94
+:1012400082EE90E02DC08091FA0183FF0BC0809167
+:10125000FA0184FDEBCF87EE90E022C08091FA0185
+:1012600083FFF5CF86EE90E01BC08091FA0185FFE9
+:1012700007C089E290E014C08091FA0185FFF9CFA0
+:1012800085E390E00DC08091FA0186FF07C08AE2F5
+:1012900090E006C08091FA0186FFF9CF81E390E0EB
+:1012A0000E948606089508950C94530980916E015A
+:1012B0000895CF93DF9300D01F92CDB7DEB79C0186
+:1012C0008091F101843019F593E099833B832A835F
+:1012D0009093E9008FEF9091E800815095FD06C052
+:1012E00095ED9A95F1F700008111F5CF8091E80016
+:1012F00085FF0DC040E050E063E070E0CE01019654
+:101300000E94C30B8091E8008E778093E8000F90D5
+:101310000F900F90DF91CF910895CF93DF9300D07E
+:101320001F92CDB7DEB72091F101243021F522E0E4
+:1013300029839B838A8383E08093E9008FEF9091D8
+:10134000E800815095FD06C095ED9A95F1F70000F3
+:101350008111F5CF8091E80085FF0DC040E050E09D
+:1013600063E070E0CE0101960E94C30B8091E8001B
+:101370008E778093E8000F900F900F90DF91CF91C0
+:1013800008952091F1012430F1F422E02093E90046
+:101390002FEF3091E800215035FD06C035ED3A952C
+:1013A000F1F700002111F5CF2091E80025FF0BC0D7
+:1013B00040E050E065E070E00E94C30B8091E800DF
+:1013C0008E778093E8000895CF93DF93EC0190919E
+:1013D000F101943009F046C080910C018823D9F0C6
+:1013E00080910D018823B9F09093E9008FEF9091DF
+:1013F000E800815095FD06C095E19A95F1F700004F
+:101400008111F5CF8091E80085FF2CC040E050E0CD
+:1014100060E170E017C081E08093E9008FEF909168
+:10142000E800815095FD06C095ED9A95F1F7000012
+:101430008111F5CF8091E80085FF14C040E050E0B5
+:1014400068E070E0CE010E94C30B8091E8008E77C7
+:101450008093E80080E1FE01AEE5B1E001900D92DD
+:101460008A95E1F7DF91CF9108958091F001811184
+:1014700009C00E94580D0E94B50D8091E200846061
+:101480008093E20008951092F001089508950C945D
+:101490009C220E94FD1B0E94A2220E945B100C94C1
+:1014A000540942E061EC81E00E94D20C42E061EC20
+:1014B00082E00E94D20C42E061EC83E00E94D20CF8
+:1014C00042E161EC84E00C94D20C8091F301833012
+:1014D00009F455C030F4813071F0823009F48EC0C7
+:1014E00008958A3009F47AC08B3009F460C08930DD
+:1014F00009F09CC020C08091F201813A09F096C0A9
+:101500008091E800877F8093E8008091F6019091B8
+:10151000F701892B21F460E18EE591E003C060E0E2
+:1015200080E090E070E00E940E0C8091E8008B77E4
+:101530008093E80008958091F201813209F076C02D
+:101540008091F6019091F701009719F0039709F047
+:101550006DC08091E800877F8093E8008091E8006B
+:1015600082FD05C08091F1018111F8CF5FC08091AB
+:10157000F10080936E018091E8008B7753C08091D9
+:10158000F201813A09F052C08091F6019091F70181
+:10159000892B09F04BC08091E800877F8093E80099
+:1015A0008091E80080FFFCCF80910C0136C08091D3
+:1015B000F2018132D9F58091F6019091F701892BE2
+:1015C000A9F58091E800877F8093E8000E94070DCD
+:1015D0008091F40180930C010C94F4148091F20139
+:1015E000813221F58091E800877F8093E8000E9496
+:1015F000070D8091F50180936F0108958091F201AC
+:10160000813AA1F48091E800877F8093E80080917F
+:10161000E80080FFFCCF80916F018093F100809102
+:10162000E8008E778093E8000C94070D089584B746
+:10163000877F84BF88E10FB6F89480936000109292
+:1016400060000FBE90E080E80FB6F89480936100D0
+:10165000909361000FBE0E94AA100E94580D0E9434
+:10166000B50D8091E20084608093E20078940E943E
+:101670003B100E94AC1082E091E00E9456100E9444
+:101680008A228091F101853069F40E94C41B809107
+:10169000EF018823B1F30E94EF1B882391F30E948E
+:1016A000AD0BEFCF0E94B210ECCF292F33272330A0
+:1016B0003105C9F064F42130310581F02230310563
+:1016C00009F043C08DE690E029EF33E042C02132BB
+:1016D0003105F1F02232310541F137C082E190E06D
+:1016E00026E634E036C099278130910541F08230FA
+:1016F000910541F0892B49F5E5EFF3E005C0EDEDEB
+:10170000F3E002C0E5ECF3E0849190E09F0121C09A
+:101710006430D8F4E62FF0E0EE0FFF1FEE5DFE4FD1
+:101720002081318189E090E014C0643070F470E071
+:10173000FB01EE0FFF1FE65EFE4F20813181FB01B2
+:10174000EA5EFE4F808190E004C080E090E020E0FF
+:1017500030E0FA0131832083089580E189BD82E180
+:1017600089BD09B400FEFDCF8091D8008F7D8093A4
+:10177000D8008091E00082608093E0008091E000DA
+:1017800081FDFCCF0895CF92DF92EF92FF920F93ED
+:101790001F93CF93DF93EC018B016A010E94260D0A
+:1017A000811133C0C114D10439F0F60180819181D7
+:1017B000081B190BC80FD91FE12CF12C01151105BD
+:1017C00019F18091E80085FD16C08091E8008E77C0
+:1017D0008093E800C114D10449F0F6018081918121
+:1017E000E80EF91EF182E08285E00FC00E94260D0E
+:1017F000882321F30AC089918093F10001501109D7
+:10180000FFEFEF1AFF0ADACF80E0DF91CF911F914F
+:101810000F91FF90EF90DF90CF9008952091F80105
+:101820003091F9012617370748F06115710539F431
+:101830002091E8002E772093E80001C0B90140E034
+:1018400061157105A9F12091F101222309F443C02A
+:10185000253009F442C02091E80023FD40C02091CA
+:10186000E80022FD32C02091E80020FFE9CF40913E
+:10187000F3002091F20030E0342BFC01CF01611520
+:10188000710559F02830310540F481918093F100C1
+:10189000615071092F5F3F4FF1CF41E02830310592
+:1018A00009F040E02091E8002E772093E800C8CFAF
+:1018B0004111C9CF0AC08091F101882361F08530C0
+:1018C00061F08091E80083FD0AC08091E80082FF0A
+:1018D000F2CF80E0089582E0089583E0089581E0EA
+:1018E00008952091F8013091F9012617370748F043
+:1018F0006115710539F42091E8002E772093E800F6
+:1019000001C0B901FC0120E06115710591F18091E0
+:10191000F101882309F440C0853009F43FC080916B
+:10192000E80083FD3DC08091E80082FD2FC08091DA
+:10193000E80080FFE9CF2091F3008091F20090E071
+:10194000922B6115710559F08830910540F424916E
+:101950002093F1003196615071090196F2CF21E098
+:10196000089709F020E08091E8008E778093E800E6
+:10197000CBCF2111CCCF0AC08091F101882361F037
+:10198000853061F08091E80083FD0AC08091E80015
+:1019900082FFF2CF80E0089582E0089583E0089509
+:1019A00081E00895982F973058F59093E9009817A3
+:1019B00039F07091EC002091ED005091F00003C0DF
+:1019C000242F762F50E021FF19C03091EB003E7F8D
+:1019D0003093EB003091ED003D7F3093ED0030917E
+:1019E000EB0031603093EB007093EC002093ED003E
+:1019F0005093F0002091EE0027FF07C09F5FD3CFE8
+:101A00008F708093E90081E0089580E008958091CF
+:101A1000F20187FF11C08091E80082FD05C080912E
+:101A2000F1018111F8CF11C08091E8008B770BC0D4
+:101A30008091F101882349F08091E80080FFF8CF80
+:101A40008091E8008E778093E80008952091E4006B
+:101A50003091E50095E64091EC00842F817040FFC5
+:101A600022C08091E80080FD1CC08091F101882394
+:101A700091F0853091F08091EB0085FD10C0409190
+:101A8000E4005091E5004217530729F39A01915061
+:101A900011F784E0089582E0089583E0089581E0DD
+:101AA000089580E008954091E80042FFDECF089558
+:101AB0000E94C60D0E94CE0DE0EEF0E080818160B4
+:101AC0008083E8EDF0E080818F77808319BCA7EDFB
+:101AD000B0E08C918E7F8C9380818F7E808310927A
+:101AE000F00108950F931F93CF93DF930E94C60DCB
+:101AF0000E94CE0DC8EDD0E088818F7788838881E1
+:101B00008068888388818F7D888319BC1092F10159
+:101B10001092ED011092EF011092EE0100EE10E034
+:101B2000F80180818B7F808388818160888342E097
+:101B300060E080E00E94D20CE1EEF0E080818E7FD8
+:101B40008083E2EEF0E08081816080838081886024
+:101B50008083F80180818E7F808388818061888383
+:101B6000DF91CF911F910F910895E8EDF0E0808112
+:101B70008F7E8083E7EDF0E080818160808384E068
+:101B800082BF81E08093F0010C94720DE8EDF0E0EB
+:101B900080818E7F80831092E20008951092DA0097
+:101BA0001092E10008951F920F920FB60F92112428
+:101BB0002F933F934F935F936F937F938F939F9355
+:101BC000AF93BF93EF93FF938091E10082FF0BC02F
+:101BD0008091E20082FF07C08091E1008B7F8093BB
+:101BE000E1000E943A108091DA0080FF1FC08091CE
+:101BF000D80080FF1BC08091DA008E7F8093DA00CE
+:101C00008091D90080FF0DC080E189BD82E189BD4E
+:101C100009B400FEFDCF81E08093F1010E94350AF6
+:101C200005C019BC1092F1010E94430A8091E100A5
+:101C300080FF19C08091E20080FF15C08091E20012
+:101C40008E7F8093E2008091E20080618093E200C9
+:101C50008091D80080628093D80019BC85E0809381
+:101C6000F1010E94470A8091E10084FF30C0809119
+:101C7000E20084FF2CC080E189BD82E189BD09B406
+:101C800000FEFDCF8091D8008F7D8093D800809199
+:101C9000E1008F7E8093E1008091E2008F7E80934F
+:101CA000E2008091E20081608093E2008091ED018A
+:101CB000882311F084E007C08091E30087FD02C013
+:101CC00081E001C083E08093F1010E94490A809184
+:101CD000E10083FF29C08091E20083FF25C080914D
+:101CE000E100877F8093E10082E08093F101109210
+:101CF000ED018091E1008E7F8093E1008091E20010
+:101D00008E7F8093E2008091E20080618093E20008
+:101D100042E060E080E00E94D20C8091F000886098
+:101D20008093F0000E94460AFF91EF91BF91AF911E
+:101D30009F918F917F916F915F914F913F912F91E3
+:101D40000F900FBE0F901F9018951F920F920FB615
+:101D50000F9211242F933F934F935F936F937F9331
+:101D60008F939F93AF93BF93CF93DF93EF93FF93A3
+:101D7000C091E900CF708091EC00D82FD17080FD28
+:101D8000D0E81092E9008091F000877F8093F00006
+:101D900078940E94E90E1092E9008091F00088602A
+:101DA0008093F000CD2BCF70C093E900FF91EF91AD
+:101DB000DF91CF91BF91AF919F918F917F916F9163
+:101DC0005F914F913F912F910F900FBE0F901F90F9
+:101DD00018951F93CF93DF93CDB7DEB7AA970FB6B1
+:101DE000F894DEBF0FBECDBFE2EFF1E088E08E0FCA
+:101DF0009091F10091938E13FBCF0E94650A809120
+:101E0000E80083FF1FC18091F2019091F301492FF7
+:101E100050E04A30510508F015C1FA01EA5AFF4F67
+:101E20000C942424803881F0823809F00BC1809111
+:101E3000F6018F708093E9008091EB0085FB882785
+:101E400080F91092E90006C08091EE019091EF01B7
+:101E5000911182609091E800977F9093E8008093C1
+:101E6000F1001092F100C8C0282F2D7F09F0EAC0C0
+:101E7000882319F0823061F0E5C08091F40181304F
+:101E800009F0E0C0933009F080E08093EF012BC0AF
+:101E90008091F401811127C08091F6018F7009F4BF
+:101EA000D1C08093E9002091EB0020FF1CC093304B
+:101EB00021F48091EB00806214C09091EB0090615E
+:101EC0009093EB0021E030E0A90102C0440F551FC0
+:101ED0008A95E2F74093EA001092EA008091EB00C5
+:101EE00088608093EB001092E9008091E800877F82
+:101EF00086C08111A7C01091F4011F778091E30083
+:101F00008078812B8093E3008091E800877F809325
+:101F1000E8000E94070D8091E80080FFFCCF8091CF
+:101F2000E30080688093E300111102C082E001C0E9
+:101F300083E08093F10186C08058823008F082C02F
+:101F40008091F4019091F5018C3D53E0950779F56E
+:101F500083E08A838AE289834FB7F894DE0113967F
+:101F600020E03EE051E2E32FF0E050935700E4918F
+:101F700020FF03C0E295EF703F5FEF708E2F90E07F
+:101F8000EA3010F0C79601C0C0968D939D932F5FE5
+:101F9000243149F74FBF8091E800877F8093E800A4
+:101FA0006AE270E0CE0101960E940E0C14C0AE01F0
+:101FB0004F5F5F4F6091F6010E94550BBC01009787
+:101FC00009F440C09091E800977F9093E8008981E0
+:101FD0009A810E94710C8091E8008B778093E800D1
+:101FE00031C0803879F58091E800877F8093E800E0
+:101FF0008091ED018093F1008091E8008E778093CD
+:10200000E8000E94070D1EC081111CC09091F401D0
+:102010009230C0F48091E800877F8093E80090932D
+:10202000ED010E94070D8091ED01811106C08091A4
+:10203000E30087FD02C081E001C084E08093F101EC
+:102040000E94510A8091E80083FF0AC08091E80055
+:10205000877F8093E8008091EB0080628093EB00A3
+:10206000AA960FB6F894DEBF0FBECDBFDF91CF9119
+:102070001F9108950895CF938091F1018823A1F0D5
+:10208000C091E900CF709091EC00892F817090FD94
+:1020900080E8C82B1092E9008091E80083FD0E943F
+:1020A000E90ECF70C093E900CF9108959093750128
+:1020B000809374010895E0917401F0917501309757
+:1020C00021F00190F081E02D099480E00895E091E5
+:1020D0007401F0917501309721F00280F381E02DB9
+:1020E00009940895E0917401F0917501309721F001
+:1020F0000480F581E02D09940895209172013091BA
+:1021000073018217930771F09093730180937201AA
+:10211000E0917401F0917501309721F00680F7810C
+:10212000E02D09940895209170013091710182177A
+:10213000930771F09093710180937001E0917401A5
+:10214000F0917501309721F00084F185E02D09941C
+:10215000089508950C94A9100E94031C0E949303F3
+:102160000C94C51C9F92AF92BF92CF92DF92EF92D8
+:10217000FF920F931F93CF93DF9300D000D000D036
+:10218000CDB7DEB70E94AB030DE010E0AA24A39404
+:10219000B12C902E802F0E949904980129583E4F0F
+:1021A0006901F901F080F826A1F40150110988F7BE
+:1021B0008FEF89838A831B820E940C1C8160782F99
+:1021C0009D838C8349815A816B818D810E94491145
+:1021D0002FC09091DA0191FF04C08E830E949F046A
+:1021E0008E8125E030E0A501022E01C0440F0A9443
+:1021F000EAF7E42E4F21C1F029839A828E2191E0E3
+:1022000009F490E09B830E940C1C8160782F9D83D1
+:102210008C8349815A816B818D810E944911F6011D
+:102220008081E826E08204C021503109E0F6BDCF6C
+:102230000E94AC1F109176010E945B101817B9F034
+:102240000E945B108093760126960FB6F894DEBF4D
+:102250000FBECDBFDF91CF911F910F91FF90EF90F7
+:10226000DF90CF90BF90AF909F900C94540926962A
+:102270000FB6F894DEBF0FBECDBFDF91CF911F9197
+:102280000F91FF90EF90DF90CF90BF90AF909F9015
+:102290000895CF93DF93CDB7DEB72B970FB6F894A1
+:1022A000DEBF0FBECDBF4F83588769877A878B8784
+:1022B000DE01119686E0FD0111928A95E9F785E02D
+:1022C000FE01379601900D928A95E1F749815A8176
+:1022D0006B817C818D819E810E9492172B960FB617
+:1022E000F894DEBF0FBECDBFDF91CF910895CF939D
+:1022F000882309F4C2C0C82F823859F40E945B10A9
+:1023000081FDBBC089E30E946C1A0E94391B89E3DE
+:102310000CC0833879F40E945B1080FDAEC083E569
+:102320000E946C1A0E94391B83E50E94AE1ACF915D
+:102330000C94391B843859F40E945B1082FD9DC0B7
+:1023400087E40E946C1A0E94391B87E4EECF8CEF61
+:102350008C0F813A48F48C2F0E94EF2181118DC09F
+:102360008C2F0E946C1AE3CF80E28C0F883048F4E7
+:10237000C77081E001C0880FCA95EAF70E94F21A7F
+:10238000D6CF8BE58C0F833078F4C53A29F0C63A66
+:1023900031F083E890E005C081E890E002C082E877
+:1023A00090E0CF910C947D1088E58C0F833108F07C
+:1023B00064C0C83A39F1C93A41F1CA3A49F1CB3A55
+:1023C00051F1CC3A59F1CD3A61F1C03B69F1CE3AC5
+:1023D00071F1CF3A79F1C13B81F1C23B89F1C33B45
+:1023E00091F1C43B99F1C53BA1F1C63BA9F1C73BB3
+:1023F000B1F1C83BB9F1C93BC1F1CA3BC9F180E0B9
+:1024000090E038C082EE90E035C089EE90E032C0B6
+:102410008AEE90E02FC085EB90E02CC086EB90E038
+:1024200029C087EB90E026C08CEC90E023C08DECB7
+:1024300090E020C083E891E01DC08AE891E01AC0D6
+:1024400082E991E017C084E991E014C081E292E052
+:1024500011C083E292E00EC084E292E00BC085E2FC
+:1024600092E008C086E292E005C087E292E002C0F6
+:102470008AE292E0CF910C949310CF910895882333
+:1024800009F44BC0823859F40E945B1081FF45C0AB
+:1024900089E30E946C1A0E94391B89E30CC08338BF
+:1024A00071F40E945B1080FF38C083E50E946C1AB3
+:1024B0000E94391B83E50E94AE1A0C94391B8438A4
+:1024C00059F40E945B1082FF28C087E40E946C1AB6
+:1024D0000E94391B87E4EFCF9CEF980F913A58F395
+:1024E00090E2980F983050F4877091E001C0990FF6
+:1024F0008A95EAF7892F0E94F81ADFCF9BE5980F9B
+:10250000933020F480E090E00C947D10885A833161
+:1025100020F480E090E00C9493100895882321F03B
+:102520000E94F21A0C94391B0895882321F00E940E
+:10253000F81A0C94391B08957F928F929F92AF9254
+:10254000BF92CF92DF92EF92FF920F931F93CF93A0
+:10255000DF931F92CDB7DEB77C01C62E772EFC012C
+:10256000058102950F70128111110E940F1B0E94AC
+:10257000651A882379F0112369F080E28C0D883088
+:1025800048F082E00E944E1A0E94651A91E0D82E0F
+:10259000D92601C0D12CE72DE295EF70F0E0E05A8A
+:1025A000FF4F0C942424872D807F072D0F708823E4
+:1025B00011F00295007F112389F0002309F490C1E6
+:1025C00080E28C0D883020F4802F0E94F21A03C024
+:1025D000802F0E94021B0E94391B82C18C2D0E94F9
+:1025E0003F12002309F495C180E28C0D883020F45D
+:1025F000802F0E94F81A03C0802F0E94081B0E949F
+:10260000391B87C1972D907F872D8F70903211F0E5
+:102610008295807FCC2021F0F1E0CF16B1F01EC072
+:10262000112349F0002309F414C1013009F011C14C
+:102630000E94221B6EC1002319F0013009F469C108
+:1026400089830E94251B89810AC1112321F0023050
+:1026500008F05FC1FEC001115CC101C1112321F06E
+:10266000002309F4F6C03CC1002309F4F8C03EC1C0
+:10267000872D86958695837090E0009719F00197D5
+:1026800061F047C1112321F08C2D972D937002C06A
+:1026900080E090E00E947D103CC1112321F08C2D40
+:1026A000972D937002C080E090E00E94931031C19A
+:1026B0008C2D112319F00E94B41E02C00E941C1F11
+:1026C0000E94A11F26C1872D837009F052C01111ED
+:1026D00020C18C2D829586958770880F880F9C2D40
+:1026E0009F70892E912CA12CB12C082E04C0880C2F
+:1026F000991CAA1CBB1C0A94D2F7C4FE14C00FE09C
+:1027000010E020E030E0B901A80104C0440F551FDB
+:10271000661F771F8A95D2F7CB01BA016095709535
+:102720008095909503C060E070E0CB01272D269541
+:102730002695237030E02230310569F023303105D1
+:1027400089F0682979298A299B292130310571F07E
+:102750000E94DA18DEC0682979298A299B290E94FB
+:10276000F618D7C00E94DA18C501B4010E94BE183D
+:10277000D0C0112319F0872D817001C08695882360
+:1027800009F4C7C08C2D829586958770880F880FB5
+:102790009C2D9F70892E912CA12CB12C082E04C049
+:1027A000880C991CAA1CBB1C0A94D2F7C4FE14C046
+:1027B0000FE010E020E030E0B901A80104C0440FB0
+:1027C000551F661F771F8A95D2F7CB01BA01609516
+:1027D00070958095909503C060E070E0CB01272D47
+:1027E000269526952370422F50E04230510569F01E
+:1027F0004330510589F0682979298A299B2941307C
+:10280000510571F00E94B41984C0682979298A2978
+:102810009B290E94D0197DC00E94B419C501B40142
+:102820000E94981976C08C2D90E0FC01E05EF109C1
+:10283000E531F10508F050C0E059FF4F0C94242415
+:102840000C2D0F70872D8F71112331F00E943119DB
+:10285000802F0E948E125DC00E945219802F0E940C
+:10286000951257C0112339F0011153C0872D8F7174
+:102870000E9477194EC0023008F04BC0F7CF1123E9
+:1028800039F0872D8F710E94311943C01123C9F38C
+:10289000872D8F710E9452193CC0112329F0872D7A
+:1028A0008F710E941C1935C00E94121932C0112369
+:1028B00051F0172D1F71812F0E94311963E0812F74
+:1028C0000E94451A26C081E00E944E1A023008F18B
+:1028D00082E00E944E1A1DC0112331F0002389F2BC
+:1028E0008C2D0E94771115C0002391F28C2D0E942F
+:1028F0003F120FC0472D4F706C2DC7010E94750508
+:102900000E94361806C0472D4F706C2DC7010E94DB
+:102910006306DD20F9F00E94411A80FD1BC0F7011B
+:1029200012820E943B1A0E943119C7010E94B914F9
+:102930000E943B1A0F90DF91CF911F910F91FF9052
+:10294000EF90DF90CF90BF90AF909F908F907F904F
+:102950000C9452190F90DF91CF911F910F91FF901E
+:10296000EF90DF90CF90BF90AF909F908F907F902F
+:1029700008950F931F93CF93DF93EC018881998182
+:102980002B813C81232BB9F09F3F11F48F3F99F0AD
+:10299000CE010E94BB05882371F0688179818A810C
+:1029A0000E94371A8C010E94EC190E94B318B801DA
+:1029B000CE010E949C12DF91CF911F910F9108953B
+:1029C0000E940F1B0E941F1B0E94E41A0E94391BC9
+:1029D0000E9452200E94A11F80E090E00E947D1082
+:1029E00080E090E00C9493100E94FF1A0C94E01485
+:1029F0000E942C1A292F22952F7030E02C3031059F
+:102A00004CF42A3031056CF4225031092230310562
+:102A1000A8F407C02C30310569F02F30310551F092
+:102A20000DC0803F69F018F4803E40F409C0843F37
+:102A300029F406C093FB882780F9089580E0089563
+:102A400081E00895CF93DF9300D000D01F92CDB7DF
+:102A5000DEB70F900F900F900F900F90DF91CF91F6
+:102A60000895CF93DF9300D000D000D0CDB7DEB76C
+:102A700026960FB6F894DEBF0FBECDBFDF91CF9183
+:102A800008951F93CF93DF93C091850116E0809145
+:102A90008601C81799F0D0E01C9FF0011D9FF00D32
+:102AA0001124E957FE4F40815181628173818481F5
+:102AB00095810E9431152196C770E9CFDF91CF91A2
+:102AC0001F9108954091B7015091B8016091B901EB
+:102AD0007091BA018091BB019091BC010C943115A9
+:102AE0008091BC0182958F7009F054C08091B9012A
+:102AF000882309F44FC080918501A09186016091DF
+:102B0000B7017091B8014091BA015091BB01B6E094
+:102B10008A1709F43FC090E041155105C1F17F3F8C
+:102B200011F46F3FA1F1B89FF001B99FF00D11248E
+:102B3000E957FE4F218172132AC02081621327C0FA
+:102B40002281211124C0238134812417350710F4F8
+:102B500021503109241B350B283C3105C0F420914C
+:102B6000BC012F7020612093BC0126E0289FF0015A
+:102B7000299FF00D1124E457FE4F80818F708061F2
+:102B8000808387EB91E00E94B9140C944115019663
+:102B90008770BECF0895CF92DF92EF92FF920F938E
+:102BA0001F93CF93DF93CDB7DEB762970FB6F8943C
+:102BB000DEBF0FBECDBF8C0185E0F801DE011D96A2
+:102BC00001900D928A95E1F7D8014C9111965C9194
+:102BD000119712966C9112971396CD90DC901497E2
+:102BE0003091B7017091B8018091BA019091BB0109
+:102BF000009709F46BC17F3F19F43F3F09F466C1A8
+:102C0000E090B901EE2009F4C0C02091BC01C816C3
+:102C1000D90628F0F601E81BF90BCF0104C0809516
+:102C200090958C0D9D1DFF24F394883C910578F0C0
+:102C3000F12C207F09F0C6C07C2DD98AC88A8989E9
+:102C40000E94221587EB91E00E94B914B1C0822F37
+:102C5000807F09F046C0751314C0341312C061118F
+:102C600010C02F7020612093BC010E94621587EB79
+:102C700091E00E94B9148091BC01D80115968C9303
+:102C80002EC0CD2819F15F3F11F44F3FF9F0F62E19
+:102C900061111CC0809185012091860136E0821768
+:102CA00009F45AC090E0389FF001399FF00D1124CB
+:102CB000E957FE4F7181571306C07081471303C057
+:102CC0007281711103C001968770E9CFF62E6623D9
+:102CD00009F418C18091BC0181608093BC01F12C82
+:102CE00011C1751308C0341306C0611104C080916E
+:102CF000BC01D801C3C04D875E878D859E856A8BD8
+:102D00000E94F8146A898823E1F16623D1F12091A9
+:102D1000BC01822F82958F7090E0029774F08091B1
+:102D2000B7019091B80198878F831986DB86CA8690
+:102D30002C87CE0107960E94B91486E0F801A7EB14
+:102D4000B1E001900D928A95E1F70E9470150E9402
+:102D50006215FF24F394D6C04D875E878D859E85CE
+:102D60000E942C1A292F22952F7030E02230310535
+:102D70000CF0BCC09F7009F0B6C0805E883008F4CB
+:102D8000C1C0C8010E94B914E4CFC816D90608F41E
+:102D900053C0F601E81BF90BCF01883C910508F4FC
+:102DA00050C0F12C7C2DD98AC88A89890E942215AD
+:102DB000E7EBF1E086E0DF011D928A95E9F70E94DA
+:102DC0006215A0C0751314C0341312C0611110C075
+:102DD0008091BC01F8018583C8010E94B91486E086
+:102DE000E7EBF1E0DF011D928A95E9F7FE2C8AC03E
+:102DF0004D875E878D859E856A8B0E94F8146A894F
+:102E0000882309F4BECF662309F4BBCF2091BC010F
+:102E1000822F82958F7090E002970CF48ECF809174
+:102E2000B7019091B8019A8389831B82DD82CC829D
+:102E30002E83CE0101967FCF809590958C0D9D1DA0
+:102E4000ACCFF62E662309F49CCF75132EC0341335
+:102E50002CC02091BC0120FD1FC0822F82958F7055
+:102E6000D9F0D80115962C9315978F3049F08F5FC4
+:102E7000982F9295907F822F8F70892B15968C9327
+:102E8000C8010E94B91486E0F801A7EBB1E00190F7
+:102E90000D928A95E1F793CF86E0F801A7EBB1E0B8
+:102EA00001900D928A95E1F72DC04D875E878D8543
+:102EB0009E850E94F814811140CF8091BC018160F1
+:102EC0008093BC01C8010E94B9141CC0662309F498
+:102ED00058CF4D875E878D859E850E94F814882384
+:102EE00009F44FCF2ACF811148CF0CC024303105CF
+:102EF0000CF047CF9F7009F440CFF8019581907F87
+:102F000009F03BCF8F2D62960FB6F894DEBF0FBE4F
+:102F1000CDBFDF91CF911F910F91FF90EF90DF9088
+:102F2000CF9008951F93CF93DF93CDB7DEB72C9743
+:102F30000FB6F894DEBF0FBECDBF4F8358876987A9
+:102F40007A878B879C87CE0107960E94CB158823B2
+:102F500069F08F8198852A853B85232BF1F19F3F6E
+:102F600009F063C08F3F09F060C037C086E0FE0102
+:102F70003796DE01119601900D928A95E1F76F81E7
+:102F80007885EA85FB85309741F17F3F11F46F3FEB
+:102F900021F12091860130E0C901019687709927BF
+:102FA0004091850150E08417950709F447C0698373
+:102FB0007A83FD83EC8396E0929FD001939FB00DBE
+:102FC0001124A957BE4FFE01319601900D929A959A
+:102FD000E1F7809386010E94411516E080918501FA
+:102FE000909186018917C1F1189FC001112489575A
+:102FF0009E4F0E94CB15882379F1E09185011E9F99
+:10300000F0011124E957FE4F4081518162817381A3
+:10301000848195810E9431158091850190E001960F
+:103020008770992780938501D9CF4F81588569850D
+:103030007A858B859C850E943115CFCF0E94F41430
+:103040001092860110928501E7EBF1E086E0DF0146
+:103050001D928A95E9F7C1CF2C960FB6F894DEBF82
+:103060000FBECDBFDF91CF911F910895EF92FF92D8
+:103070000F931F93CF93DF938C01009709F46CC0DB
+:10308000F12CEE24E394E8012196F8018491843731
+:1030900040F4843008F051C0813081F0823019F161
+:1030A0005BC0853709F444C0A8F19CE7980F9037BE
+:1030B00008F052C08F770E943F1241C00E5F1F4F31
+:1030C000FE01C49180E28C0F883048F4C7708E2DC9
+:1030D00001C0880FCA95EAF70E94121B14C08C2FFA
+:1030E0000E9477112DC00E5F1F4FFE01C49180E238
+:1030F0008C0F883058F4C7708E2D01C0880FCA9588
+:10310000EAF70E94181B0E94391B1AC08C2F0E94DC
+:103110003F1216C00E5F1F4FFE01C491CC2381F0F9
+:103120008FE99FE00197F1F700C00000C150F6CF92
+:103130000E5F1F4FFE01F49003C00E9477118E01B5
+:103140008F2D882309F49FCFEFE9FFE03197F1F746
+:1031500000C000008150F5CFDF91CF911F910F91FA
+:10316000FF90EF90089508956093C1017093C2019C
+:103170008093C3019093C4010C94E0140F931F93A8
+:103180000091C1011091C2012091C3013091C4018D
+:10319000DC01CB01802B912BA22BB32B8093C1019F
+:1031A0009093C201A093C301B093C4011F910F91EA
+:1031B0000C94E0140F931F930091C1011091C20170
+:1031C0002091C3013091C401DC01CB018023912304
+:1031D000A223B3238093C1019093C201A093C301A2
+:1031E000B093C4011F910F910C94E0140F931F939F
+:1031F0000091C1011091C2012091C3013091C4011D
+:10320000DC01CB0180279127A227B3278093C1013E
+:103210009093C201A093C301B093C4011F910F9179
+:103220000C94E0141092BD011092BE011092BF01E7
+:103230001092C0010C94E01441E050E060E070E0B6
+:1032400004C0440F551F661F771F8A95D2F740931D
+:10325000BD015093BE016093BF017093C0010C94F7
+:10326000E01441E050E060E070E004C0440F551FFE
+:10327000661F771F8A95D2F78091BD019091BE019C
+:10328000A091BF01B091C001482B592B6A2B7B2B19
+:103290004093BD015093BE016093BF017093C00184
+:1032A0000C94E01441E050E060E070E004C0440F92
+:1032B000551F661F771F8A95D2F7409550956095E8
+:1032C00070958091BD019091BE01A091BF01B09118
+:1032D000C001482359236A237B234093BD015093A7
+:1032E000BE016093BF017093C0010C94E01441E0F3
+:1032F00050E060E070E004C0440F551F661F771F68
+:103300008A95D2F78091BD019091BE01A091BF0135
+:10331000B091C001482759276A277B274093BD01F8
+:103320005093BE016093BF017093C0010C94E014F0
+:103330000F931F930091BD011091BE012091BF0119
+:103340003091C001DC01CB01802B912BA22BB32B40
+:103350008093BD019093BE01A093BF01B093C001C3
+:103360001F910F910C94E0140F931F930091BD01D6
+:103370001091BE012091BF013091C001DC01CB0151
+:1033800080239123A223B3238093BD019093BE0198
+:10339000A093BF01B093C0011F910F910C94E01452
+:1033A0000F931F930091BD011091BE012091BF01A9
+:1033B0003091C001DC01CB0180279127A227B327E0
+:1033C0008093BD019093BE01A093BF01B093C00153
+:1033D0001F910F910C94E0140895CF92DF92EF9219
+:1033E000FF920F931F93CF93DF938C01C090C10185
+:1033F000D090C201E090C301F090C4018091BD0162
+:103400009091BE01A091BF01B091C001C82AD92AF4
+:10341000EA2AFB2ACFE1D0E0D701C6010C2E04C076
+:10342000B695A795979587950A94D2F780FF06C021
+:10343000B8018C2F0E94B908019721F4219760F7F9
+:1034400080E001C08C2FDF91CF911F910F91FF90F1
+:10345000EF90DF90CF900895CF93DF93EC010E941F
+:10346000ED19BE010E94B908DF91CF910895CB01FB
+:103470000E942C1A08958091C501859585958595A2
+:1034800008958091C5018770089598E0899F900103
+:103490001124262B2093C5010C9431192091C501CC
+:1034A000809582238093C501982F977069F430E04E
+:1034B000482F552747FD50952417350729F0859546
+:1034C000859585950C94521908959091C501977032
+:1034D00081E009F480E0089590910C01992321F096
+:1034E00090910D01911109C020910E0130910F01B1
+:1034F000F90132969FEF40E01FC0982F9695969560
+:1035000096959F3050F5E0910E01F0910F01E90F73
+:10351000F11D877021E030E0A90102C0440F551F62
+:103520008A95E2F7CA019181892B818308959F3F93
+:1035300039F04F5F4E3041F051915813F8CF0DC024
+:103540005111F7CF942FF5CF9F3F39F0F901E90FD3
+:10355000F11D97FDFA9582830895089590910C01CD
+:10356000992321F090910D01911109C020910E0134
+:1035700030910F01F9013296205F3F4F1FC0982F05
+:103580009695969596959F30F0F4E0910E01F09106
+:103590000F01E90FF11D877021E030E0A90102C0A1
+:1035A000440F551F8A95E2F7CA01809591818923BE
+:1035B000818308953196E217F30729F090819813DB
+:1035C000F9CF1082F7CF089581E090E0E0910E01ED
+:1035D000F0910F01E80FF91F1082019680319105DB
+:1035E000A9F708959091D901892B8093D901089565
+:1035F00080959091D90189238093D90108951092E3
+:10360000D90108959091D801892B8093D80108950C
+:1036100080959091D80189238093D80108951092C4
+:10362000D80108959091D701892B8093D7010895EF
+:1036300080959091D70189238093D70108951092A6
+:10364000D70108958093C60108951092C601089588
+:1036500080910E0190910F01FC0131969C01205F39
+:103660003F4F80E0919191118F5FE217F307D1F7FF
+:103670000895E0910E01F0910F018091D9018083AE
+:10368000E0910E01F0910F0190818091D801892B7A
+:103690008083E0910E01F0910F0190818091D7011C
+:1036A000892B80838091C601882361F0E0910E010F
+:1036B000F0910F019081892B80830E94281B81113A
+:1036C0001092C60180910E0190910F010C94671029
+:1036D00020E0009739F0AC01415051098423952333
+:1036E0002F5FF7CF822F0895CF92DF92EF92FF9254
+:1036F0006C01EE24FF24C114D104E104F10421F093
+:10370000C701B60120E101C020E0C72ED82EE92E66
+:10371000FF24C114D104E104F10419F0285FC701AA
+:10372000B6016B017C0154E0F694E794D794C794FA
+:103730005A95D1F7C114D104E104F10419F02C5FBA
+:10374000C701B6016B017C0142E0F694E794D7947F
+:10375000C7944A95D1F7C114D104E104F10419F0DA
+:103760002E5FC701B601DC01CB01B695A7959795F1
+:103770008795892B8A2B8B2B09F02F5F822FFF9047
+:10378000EF90DF90CF9008958091F101843021F186
+:103790001092DB0120E488E190E00FB6F894A89540
+:1037A000809360000FBE2093600080E00E94540967
+:1037B00083B7817F846083BF83B7816083BF789440
+:1037C000889583B78E7F83BF88E10FB6F894809386
+:1037D0006000109260000FBE0895089508950E9441
+:1037E000ED1B0E94AB030E94EE1B0E94A00491E01F
+:1037F000811101C090E0892F08950E94F4140E9465
+:103800005B100C94540982E084BD93E095BD9AEF5F
+:1038100097BD80936E0008952FB7F8948091DC01D6
+:103820009091DD01A091DE01B091DF012FBF0895DD
+:10383000CF92DF92EF92FF920F931F932FB7F894DE
+:103840004091DC015091DD016091DE017091DF015A
+:103850002FBF6A017B01EE24FF248C0120E030E0C1
+:10386000C016D106E206F30610F4415051099A0140
+:10387000281B390BC9011F910F91FF90EF90DF902A
+:10388000CF9008951F920F920FB60F9211248F932D
+:103890009F93AF93BF938091DC019091DD01A09144
+:1038A000DE01B091DF010196A11DB11D8093DC0105
+:1038B0009093DD01A093DE01B093DF01BF91AF9142
+:1038C0009F918F910F900FBE0F901F9018950E949F
+:1038D000580DF8942FEF87EA91E6215080409040F0
+:1038E000E1F700C0000087E090EBDC018093FB0172
+:1038F0009093FC01A093FD01B093FE019CE088E150
+:103900000FB6F894A895809360000FBE9093600066
+:10391000FFCFEF92FF920F931F93CF93DF93D82F98
+:10392000CDE08C2F0E94990405E010E0E82EF12CE8
+:10393000C701002E02C0959587950A94E2F780FF93
+:1039400009C0602F7C2F80E00E946406D81302C05B
+:1039500081E006C00150110958F7C15010F780E00E
+:10396000DF91CF911F910F91FF90EF900895CF932A
+:10397000C82F8CE20E94891C882321F08C2FCF91C4
+:103980000C94891C80E0CF910895CF930E940C1E67
+:10399000811102C00E94F21DC5E6C15049F00E948B
+:1039A000AB038FE39CE90197F1F700C00000F5CF6E
+:1039B00089E20E94B71C811113C18AE20E94B71CE0
+:1039C00081110E94F21D85E00E94B71C81110E94A6
+:1039D000671C0E94171E8093DA0187E00E94B71CC3
+:1039E0008823A9F18BE10E94B71C882351F08091B4
+:1039F000DA0181FB222720F991E0922790FB81F9DF
+:103A00000EC08EE00E94B71C882361F08091DA011D
+:103A100082FB222720F991E0922790FB82F9809384
+:103A2000DA0115C080E10E94B71C9091DA01882369
+:103A300041F093FB222720F981E0822780FB93F954
+:103A400004C0892F809580FB90F99093DA018091D2
+:103A5000DA010E941B1E0E94291E8093FA0180EE4B
+:103A60000E94B71C882341F08091FA01982F90950D
+:103A700090FB80F98093FA0189E30E94B71C8823A8
+:103A800059F08091FA0181FB222720F991E09227D9
+:103A900090FB81F98093FA0182EE0E94B71C882383
+:103AA00059F08091FA0182FB222720F991E09227B8
+:103AB00090FB82F98093FA0186EE0E94B71C88235E
+:103AC00059F08091FA0183FB222720F991E0922797
+:103AD00090FB83F98093FA0183EE0E94B71C882340
+:103AE00059F08091FA0184FB222720F991E0922776
+:103AF00090FB84F98093FA0185E30E94B71C882328
+:103B000059F08091FA0185FB222720F991E0922754
+:103B100090FB85F98093FA0181E30E94B71C88230A
+:103B200059F08091FA0186FB222720F991E0922733
+:103B300090FB86F98093FA0181E10E94B71C8823EB
+:103B400059F08091FA0187FB222720F991E0922712
+:103B500090FB87F98093FA018091FA010E942D1E53
+:103B60008091FA0187FB882780F980930D0187E215
+:103B70000E94B71CC82F8EE10E94B71C8111C26041
+:103B80008FE10E94B71C8111C46080E20E94B71CC3
+:103B90008111C86081E20E94B71C8111C06182E27C
+:103BA0000E94B71C8111C06283E20E94B71C811180
+:103BB000C06484E20E94B71C882311F0C06802C070
+:103BC000CC2329F08C2F0E94241E6C2F03C00E944E
+:103BD000201E682F70E080E090E0CF910C94B41824
+:103BE000CF9108956DEE7EEF80E090E00E945E241C
+:103BF00060E082E090E00E944C2460E083E090E08E
+:103C00000E944C2460E084E090E00E944C2460E03C
+:103C100085E090E00C944C2480E090E00E944624E3
+:103C200021E08D3E9E4F09F020E0822F089582E032
+:103C300090E00C943E24682F82E090E00C944C2499
+:103C400083E090E00C943E24682F83E090E00C9495
+:103C50004C2484E090E00C943E24682F84E090E0B3
+:103C60000C944C248091E20180FF0BC06091130101
+:103C700085E0689FB00111247595679575956795E6
+:103C80002BC081FF09C06091130185E0689FB001DE
+:103C900011247595679520C082FF07C060911301BC
+:103CA00085E0689FB001112417C09091E30199232A
+:103CB000D1F060911201961788F72091130185E0E9
+:103CC000289F90011124929FA001939F500D1124D1
+:103CD00070E0CA010E9410246038710540F461153B
+:103CE000710539F002C065E070E0862F08958FE716
+:103CF000089581E008958091E20180FF08C06091FD
+:103D0000110170E0759567957595679521C081FFE4
+:103D100006C06091110170E07595679519C082FF2A
+:103D200004C06091110170E010C09091E3019923EB
+:103D3000C1F0609110019617A0F780911101899F41
+:103D4000C001112470E00E9410246038710528F42D
+:103D50006115710521F0862F08958FE7089581E0A0
+:103D6000089561E070E0F4CF803F21F40E94321E9C
+:103D7000819504C0813F29F40E94321E8093E601A0
+:103D80000895823F21F40E94321E819504C0833F32
+:103D900029F40E94321E8093E5010895893F19F4A9
+:103DA0000E947B1E05C08A3F31F40E947B1E8195D4
+:103DB0008093E70108958B3F21F40E947B1E81953B
+:103DC00004C08C3F29F40E947B1E8093E801089573
+:103DD000843F21F48091E401816017C0853F21F484
+:103DE0008091E401826011C0863F21F48091E4015A
+:103DF00084600BC0873F21F48091E401886005C096
+:103E0000883F31F48091E40180618093E40108955A
+:103E10008D3F21F48091E20181600BC08E3F21F43F
+:103E20008091E201826005C08F3F29F48091E20118
+:103E300084608093E2010895803F39F48091E60127
+:103E400087FF6CC01092E60169C0813F29F4809120
+:103E5000E6011816BCF362C09091E501823F29F497
+:103E600097FF5CC01092E50159C0833F19F4191601
+:103E7000CCF354C0893F41F48091E70118160CF04F
+:103E80004DC01092E7014AC08A3F29F48091E701B2
+:103E900087FF44C0F6CF8B3F39F48091E80187FF5C
+:103EA0003DC01092E8013AC08C3F29F48091E801AE
+:103EB0001816BCF333C0843F21F48091E4018E7F57
+:103EC00017C0853F21F48091E4018D7F11C0863FAA
+:103ED00021F48091E4018B7F0BC0873F21F4809116
+:103EE000E401877F05C0883F31F48091E4018F7E33
+:103EF0008093E40113C08D3F21F48091E2018E7F15
+:103F00000BC08E3F21F48091E2018D7F05C08F3F71
+:103F100029F48091E2018B7F8093E2018091E50199
+:103F200081110EC08091E60181110AC08091E701E4
+:103F3000811106C08091E801811102C01092E30155
+:103F4000089584EE91E00E9472100E940C1C9093E0
+:103F5000E1018093E00108951F93CF93DF93809157
+:103F6000E0019091E1010E94181CAC019091E301E5
+:103F7000992321F02091140130E006C02091150111
+:103F80008AE0289F900111244217530708F486C045
+:103F90008091E501C091E601D091E7011091E8011F
+:103FA000811107C0C11176C0D11174C0111172C046
+:103FB00075C09F3F19F09F5F9093E301181624F49A
+:103FC0000E94321E8093E5018091E50187FF05C0C4
+:103FD0000E94321E81958093E5011C1624F40E94F4
+:103FE000321E8093E6018091E60187FF05C00E94A2
+:103FF000321E81958093E6016091E501662339F1D7
+:10400000C091E601CC2319F1772767FD7095872FC2
+:10401000972F0E94212323E333E343E35FE30E94CE
+:1040200085230E94EE226093E5016C2F772767FDC0
+:104030007095872F972F0E94212323E333E343E3D7
+:104040005FE30E9485230E94EE226093E6011D1625
+:1040500024F40E947B1E8093E7018091E70187FF93
+:1040600005C00E947B1E81958093E701111624F400
+:104070000E947B1E8093E8018091E80187FF05C0C4
+:104080000E947B1E81958093E801DF91CF911F9163
+:104090000C94A11F9F3F09F08ECF96CFDF91CF9157
+:1040A0001F910895E4EEF1E085E0DF011D928A950D
+:1040B000E9F71092E3011092E2010895833081F153
+:1040C00028F4813059F08230D1F00895853009F418
+:1040D00049C0B8F1863009F456C0089580911501A1
+:1040E000262F30E0280F311D2F3F310524F4680FB3
+:1040F0006093150108958FEF8093150108958091C5
+:104100001401262F30E0280F311D2F3F310524F4F4
+:10411000680F6093140108958FEF80931401089540
+:1041200080911301262F30E0280F311D2F3F3105DC
+:1041300024F4680F6093130108958FEF80931301A7
+:10414000089580911201262F30E0280F311D2F3F56
+:10415000310524F4680F6093120108958FEF809366
+:104160001201089580911101262F30E0280F311D92
+:104170002F3F310524F4680F6093110108958FEFEC
+:1041800080931101089580911001262F30E0280FAF
+:10419000311D2F3F310524F4680F609310010895FD
+:1041A0008FEF809310010895833011F128F481304E
+:1041B00049F0823091F00895853081F120F1863008
+:1041C000C1F1089580911501681720F4861B809332
+:1041D0001501089510921501089580911401681732
+:1041E00020F4861B80931401089510921401089501
+:1041F00080911301681720F4861B809313010895A2
+:1042000010921301089580911201681720F4861B03
+:104210008093120108951092120108958091110166
+:10422000681720F4861B80931101089510921101E4
+:10423000089580911001681720F4861B8093100167
+:1042400008951092100108950F931F938D3109F472
+:104250006BC008F03FC08E3009F47FC0C0F48730D7
+:1042600009F469C068F4863009F0B1C08091DA01C0
+:10427000817F8E7F8093DA0181E08093EA01A8C07C
+:10428000883009F4A2C08B3009F49FC0A0C08631E9
+:1042900009F49BC078F4803109F472C0813109F0CF
+:1042A00096C00E94F41490910D0181E089278093BB
+:1042B0000D018BC0893109F488C08B3109F087C0AA
+:1042C0008091DA0181FB222720F991E0922790FB6F
+:1042D00081F94CC0853309F470C048F4873209F481
+:1042E0006CC008F459C0893209F467C070C08334C7
+:1042F00038F48A3308F04EC0883309F466C067C0CA
+:10430000833409F45AC0883409F061C00E94F4145F
+:104310000FEF13ED20E3015010402040E1F700C003
+:1043200000000E94671C51C00E94A8220E945B10DE
+:104330000E9454094AC09091DA01892F80958170BA
+:1043400080FB90F929F0966098609093DA0140C064
+:10435000997F977F9093DA0138C08091DA0182FBD0
+:10436000222720F991E0922790FB82F98093DA01CD
+:10437000992359F18091DA0181608093DA0125C097
+:104380008091DA0183FB222720F991E0922790FBAC
+:1043900083F9ECCF895301C08D5141E050E060E0DA
+:1043A00070E08A019B0104C0000F111F221F331F00
+:1043B0008A95D2F7C901B80104C061E070E080E0DD
+:1043C00090E00E94B4180E94F41481E001C080E0E3
+:1043D0001F910F91089580E0089580E00895CF9394
+:1043E000C82F8091EA01813079F018F08230E9F12C
+:1043F00087C0E0910E01F0910F018081813169F059
+:10440000823209F07FC009C0E0910E01F0910F01E6
+:104410008081813111F0823261F48C2F0E94EB2176
+:10442000811104C08C2F0E9424211DC081E090E0E6
+:104430001AC08C2F0E94ED21811114C0C43179F073
+:1044400048F4CB3079F0C03109F060C082E080934D
+:10445000EA0108C0C93219F0C83321F057C01092E0
+:10446000EA0154C081E0817053C0C93289F118F566
+:10447000C43171F1A8F4C73009F046C08AE08093D6
+:10448000150194E19093140193E0909313018093AC
+:10449000120188E08093110188E28093100134C0FA
+:1044A000CE51C63088F5EC2FF0E0E65DFE4F8081FE
+:1044B0008093E90129C0CE34E9F020F4CB3421F512
+:1044C0006AE013C0C13579F0C235F1F461E00DC086
+:1044D0008091E901882319F01092E90115C081E06B
+:1044E0008093EA0115C061E006C08091E9010E9455
+:1044F0005E200AC06AE08091E9010E94D42004C0D5
+:104500001092EA0180E004C081E002C080E0ABCFFD
+:10451000CF910895E1E8F0E0808188608083808118
+:10452000816080838FB7F89493E09093890090ED39
+:10453000909388008FBF0895EFE6F0E0808182605D
+:1045400080830895EFE6F0E080818D7F8083089579
+:10455000EFE6F0E0908182E08927808308951F9242
+:104560000F920FB60F9211242F933F934F935F93A7
+:104570006F937F938F939F93AF93BF93EF93FF932B
+:104580008091EB019091EC0101969093EC01809366
+:10459000EB01811103C082E00E945409E091EC011B
+:1045A000E695E695F0E0ED58FA4FE4918091EB0145
+:1045B0008E1303C080E00E945409FF91EF91BF91D8
+:1045C000AF919F918F917F916F915F914F913F91AB
+:1045D0002F910F900FBE0F901F90189504D06894E4
+:1045E000B1118DC0089570D088F09F5790F0B92F09
+:1045F0009927B751A0F0D1F0660F771F881F991F38
+:104600001AF0BA95C9F712C0B13081F077D0B1E095
+:10461000089574C0672F782F8827B85F39F0B93FA5
+:10462000CCF3869577956795B395D9F73EF4909539
+:104630008095709561957F4F8F4F9F4F0895E894B7
+:1046400009C097FB3EF490958095709561957F4FDA
+:104650008F4F9F4F9923A9F0F92F96E9BB27939588
+:10466000F695879577956795B795F111F8CFFAF498
+:10467000BB0F11F460FF1BC06F5F7F4F8F4F9F4FC9
+:1046800016C0882311F096E911C0772321F09EE827
+:10469000872F762F05C0662371F096E8862F70E08D
+:1046A00060E02AF09A95660F771F881FDAF7880F67
+:1046B0009695879597F9089557FD9058440F551F83
+:1046C00059F05F3F71F04795880F97FB991F61F094
+:1046D0009F3F79F087950895121613061406551F0B
+:1046E000F2CF4695F1DF08C0161617061806991F77
+:1046F000F1CF86957105610508940895E894BB276C
+:1047000066277727CB0197F908950BD078C069D039
+:1047100028F06ED018F0952309F05AC05FC011241C
+:10472000EECFCADFA0F3959FD1F3950F50E0551F50
+:10473000629FF001729FBB27F00DB11D639FAA27F6
+:10474000F00DB11DAA1F649F6627B00DA11D661F45
+:10475000829F2227B00DA11D621F739FB00DA11D66
+:10476000621F839FA00D611D221F749F3327A00D20
+:10477000611D231F849F600D211D822F762F6A2FBC
+:1047800011249F5750408AF0E1F088234AF0EE0F41
+:10479000FF1FBB1F661F771F881F91505040A9F74E
+:1047A0009E3F510570F014C0AACF5F3FECF3983ED6
+:1047B000DCF3869577956795B795F795E7959F5FB5
+:1047C000C1F7FE2B880F911D9695879597F908954F
+:1047D00097F99F6780E870E060E008959FEF80ECB4
+:1047E000089500240A941616170618060906089557
+:1047F00000240A9412161306140605060895092EBD
+:104800000394000C11F4882352F0BB0F40F4BF2B2B
+:1048100011F460FF04C06F5F7F4F8F4F9F4F08956B
+:1048200097FB072E16F4009407D077FD09D00E945D
+:104830002A2407FC05D03EF4909581959F4F08955A
+:10484000709561957F4F0895EE0FFF1F0590F491CD
+:10485000E02D0994AA1BBB1B51E107C0AA1FBB1F77
+:10486000A617B70710F0A61BB70B881F991F5A95FC
+:10487000A9F780959095BC01CD010895F999FECFD7
+:1048800092BD81BDF89A992780B50895A8E1B0E05E
+:1048900042E050E00C946624262FF999FECF92BD99
+:1048A00081BDF89A019700B4021639F01FBA20BDF5
+:1048B0000FB6F894FA9AF99A0FBE08950196272F29
+:1048C0000E944D240C944C24DC01CB01FC01F9998D
+:1048D000FECF06C0F2BDE1BDF89A319600B40D924C
+:0C48E00041505040B8F70895F894FFCF05
+:1048EC0002205609E409C1098D0959090101C701C2
+:1048FC0028080A03140A3F4D36393405E704B1047D
+:10490C0078040B0424043D04560401020304050638
+:04491C00070809007F
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/alexjj/keymap.c b/keyboards/ergodox_ez/keymaps/alexjj/keymap.c new file mode 100644 index 000000000..448f62da0 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/alexjj/keymap.c @@ -0,0 +1,238 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys +#define UNIC 3 // unicode entry layer + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ESC | 1! | 2@ | 3# | 4$ | 5% | 6^ | | 7& | 8* | 9( | 0) | -_ | += | BkSp | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | { | | } | Y | U | I | O | P | |\ | + * |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------| + * | Win | A | S | D | F | G |------| |------| H | J | K | L | :; | '" | + * |--------+------+------+------+------+------| Home | | End |------+------+------+------+------+--------| + * | LShift |Z/Alt | X | C | V | B | | | | N | M | , | . | Alt | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |LCtrl | COPY | PASTE| Left | Right| | Down | Up |Hyper | `~ | RCtrl | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * Hyper = Ctrl+Super+Alt+Shift | ~L3 | F5 | | F2 | ~L2 | + * ,------|------|------| |------+------+------. + * | | | PgUp | | Ins | | | + * | Enter| BkSp |------| |------| ~L1 |Space | + * | | | PgDn | | 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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, + KC_LGUI, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, ALT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_HOME, + KC_LCTRL, LCTL(KC_C), LCTL(KC_V), KC_LEFT,KC_RGHT, + KC_FN3, KC_F5, + KC_PGUP, + KC_ENT,KC_BSPC,KC_PGDN, + // right hand + KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + 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_QUOT, + KC_END, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, + KC_DOWN,KC_UP, ALL_T(KC_NO),KC_GRV, KC_RCTRL, + KC_F2, KC_FN2, + KC_INS, + KC_DELT,KC_FN1, KC_SPC + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |PrintScr| + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | £ | | | | | | . | 0 | = |Alt+F4| + * `----------------------------------' `----------------------------------' + * ↑ ,-------------. ,-------------. + * THERE! | | | | | | + * ,------|------|------| |------+------+------. + * CAD = Ctrl + Alt + Delete | | | | | | | | + * | | |------| |------| | | + * | | | | | CAD | | | + * `--------------------' `--------------------' + */ +// 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,M(3),KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, + 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, LALT(KC_F4), + KC_TRNS, KC_TRNS, + KC_TRNS, + LCTL(LALT(KC_DEL)), KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | TEENSY | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolDn |VolUp | 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_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK +), +/* Keymap 3: Unicode Entry + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Alt | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | + | + | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Alt | | | E | | | | | | | 7 | 8 | 9 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Alt | A | | D | F | |------| |------| | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Alt | | | C | | B | | | | | 1 | 2 | 3 | + | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Alt | Alt | Alt | | | | 0 | 0 | 0 | + | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * WINDOWS ONLY SETUP!! | ~L3 | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | Alt | Alt |------| |------| Alt | Alt | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[UNIC] = KEYMAP( // layer 3 : Unicode Entry + // left hand + KC_LALT, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, KC_P6, + KC_LALT, KC_TRNS, KC_TRNS, KC_E, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LALT, KC_A, KC_TRNS, KC_D, KC_F, KC_TRNS, + KC_LALT, KC_TRNS, KC_TRNS, KC_C, KC_TRNS, KC_B, KC_TRNS, + KC_LALT, KC_LALT, KC_LALT, KC_TRNS,KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_LALT,KC_LALT, KC_TRNS, + // right hand + KC_P7, KC_P8, KC_P9, KC_P0, KC_PPLS,KC_PPLS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_TRNS, + KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_TRNS, + KC_P0, KC_P0, KC_P0, KC_PPLS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS,KC_LALT, KC_LALT + ), +}; + + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Layer 1 (Symbols) + [2] = ACTION_LAYER_TAP_TOGGLE(MDIA), // FN2 - Momentary Layer 2 (Media) + [3] = ACTION_LAYER_TAP_TOGGLE(UNIC) // FN3 - Momentary Layer 3 (Unicode entry) +}; + +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); + } + case 3: // this would trigger when you hit a key mapped as M(3) + if (record->event.pressed) { + return MACRO( I(255), D(LALT), T(P1), T(P5), T(P6), 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) { + + 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_ez/keymaps/alexjj/readme.md b/keyboards/ergodox_ez/keymaps/alexjj/readme.md new file mode 100644 index 000000000..239e32d39 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/alexjj/readme.md @@ -0,0 +1,179 @@ +Englishman in New York +=========================== + +:microphone: :tea: + +About +------ + +After using the massdrop configurator to get the basics, I wanted to add a +little extra to my ergodox. Notably the Hyper hotkey, the press and hold, +and a way to have my beloved £ :pound: symbol available<sup>[1](#unicode)</sup>. Why not switch to a GB +layout? Well the computers I use are US keymap'd and I can't always change +that. Plus I've got used to 2/@ and 3/# and moving to the ergodox was hard +enough. :sweat_smile: + +I started from the default and edited from there as I needed. It's somewhat +similar to a regular layout, particularly R1 and shift/controls. I ended up +with a few keys that were blank, so I'm testing out some shortcuts. Alt+F4 for +quitting things in Windows, is one example, but I felt it was better placed on +the 1st layer - in case of fat fingers. + +Layout +------- + +![Layout](rl-layout.jpg "Isn't it lovely") + +### Base Layer + +``` +,--------------------------------------------------. ,--------------------------------------------------. +| ESC | 1! | 2@ | 3# | 4$ | 5% | 6^ | | 7& | 8* | 9( | 0) | -_ | += | BkSp | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| Tab | Q | W | E | R | T | { | | } | Y | U | I | O | P | |\ | +|--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------| +| Win | A | S | D | F | G |------| |------| H | J | K | L | :; | '" | +|--------+------+------+------+------+------| Home | | End |------+------+------+------+------+--------| +| LShift |Z/Alt | X | C | V | B | | | | N | M | , | . | Alt | RShift | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + |LCtrl | COPY | PASTE| Left | Right| | Down | Up |Hyper | `~ | RCtrl | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + Hyper = Ctrl+Super+Alt+Shift | ~L3 | F5 | | F2 | ~L2 | + ,------|------|------| |------+------+------. + | | | PgUp | | Ins | | | + | Enter| BkSp |------| |------| ~L1 |Space | + | | | PgDn | | Del | | | + `--------------------' `--------------------' +``` + +### Symbol Layer + +``` +,--------------------------------------------------. ,--------------------------------------------------. +| | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |PrintScr| +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | £ | | | | | | . | 0 | = |Alt+F4| + `----------------------------------' `----------------------------------' + ↑ ,-------------. ,-------------. + THERE! | | | | | | + ,------|------|------| |------+------+------. + CAD = Ctrl + Alt + Delete | | | | | | | | + | | |------| |------| | | + | | | | | CAD | | | + `--------------------' `--------------------' +``` +### Media Layer + +Not touched this, not used either. + +``` +,--------------------------------------------------. ,--------------------------------------------------. +| TEENSY | | | | | | | | | | | | | | | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| | | | MsUp | | | | | | | | | | | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | | | | | | | | | | | Prev | Next | | | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | | | Lclk | Rclk | |VolDn |VolUp | Mute | | | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + | | | | | | + ,------|------|------| |------+------+------. + | | | | | | |Brwser| + | | |------| |------| |Back | + | | | | | | | | + `--------------------' `--------------------' +``` +### Unicode Layer + +Used to enter/test unicode input on Windows. All numbers are numpad keys. + +``` +,--------------------------------------------------. ,--------------------------------------------------. +| Alt | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | + | + | | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| Alt | | | E | | | | | | | 7 | 8 | 9 | + | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| Alt | A | | D | F | |------| |------| | 4 | 5 | 6 | + | | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| Alt | | | C | | B | | | | | 1 | 2 | 3 | + | | +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | Alt | Alt | Alt | | | | 0 | 0 | 0 | + | | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + WINDOWS ONLY SETUP!! | ~L3 | | | | | + ,------|------|------| |------+------+------. + | | | | | | | | + | Alt | Alt |------| |------| Alt | Alt | + | | | | | | | | + `--------------------' `--------------------' +``` + + +Usage +------ + +~L1 / L2 / L3 will momentarily switch to a layer if held and another key is pressed. +If pressed and released will remain on layer until pressed again. + +### Unicode + +This layout is for Windows only. To enter a character Press and Hold Alt, type + and hex code then release Alt. + +Changelog +----------- + +### [0.2.1] - 2016-04-05 + +* Changed £ to alt code in Windows. Windows sucks at unicode. + +### [0.2.0] - 2016-03-27 + +* Added unicode layer +* Moved Copy/Paste to left hand side +* Switched Enter and Space (again) +* Added L3 (unicode layer) toggle +* Removed Press and Hold for Alt on right hand size (/) +* Swapped Volume Up/Down to match arrows +* Tried fixing £ macro +* Removed * in the matrix function things (upstream change) + +### [0.1.1] - 2016-03-23 + +* Changed £ input to a macro + + +### [0.1.0] - 2016-03-22 + +After actually using the keyboard, I've made some changes: + +* Swapped Enter and Space +* Moved backspace to thumb keys (top right still remains) +* Added Ctrl+Alt+Delete +* Added Teensy Reset on 2nd layer +* Switched Up and Down +* Changed copy/paste to be Ctrl+c and Ctrl+v as KC_COPY/PASTE didn't work (in Windows) +* Moved ~L2 to replace +L1 after learning how the function works (notes above) +* Hopefully fixed GBP symbol (unicode enabled in MakeFile) + +### [0.0.1] - 2016-03-21 + +First version + + +Issues +------- + +Space for feedback and notes for future improvements + +---- +<sup><a name="unicode">1</a></sup>: For Windows only, and you have to edit the [registry](https://en.wikipedia.org/wiki/Unicode_input#Hexadecimal_code_input). diff --git a/keyboards/ergodox_ez/keymaps/alexjj/rl-layout.jpg b/keyboards/ergodox_ez/keymaps/alexjj/rl-layout.jpg Binary files differnew file mode 100644 index 000000000..e4e92bf46 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/alexjj/rl-layout.jpg diff --git a/keyboards/ergodox_ez/keymaps/algernon/.gitignore b/keyboards/ergodox_ez/keymaps/algernon/.gitignore new file mode 100644 index 000000000..a075e32bf --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/algernon/.gitignore @@ -0,0 +1 @@ +/compiled.hex diff --git a/keyboards/ergodox_ez/keymaps/algernon/COPYING b/keyboards/ergodox_ez/keymaps/algernon/COPYING new file mode 100644 index 000000000..94a9ed024 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/algernon/COPYING @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + 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/>. + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + <program> Copyright (C) <year> <name of author> + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +<http://www.gnu.org/licenses/>. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +<http://www.gnu.org/philosophy/why-not-lgpl.html>. diff --git a/keyboards/ergodox_ez/keymaps/algernon/Makefile b/keyboards/ergodox_ez/keymaps/algernon/Makefile new file mode 100644 index 000000000..3db507c8f --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/algernon/Makefile @@ -0,0 +1,8 @@ +BOOTMAGIC_ENABLE=no +COMMAND_ENABLE=no +SLEEP_LED_ENABLE=no +UNICODE_ENABLE=no + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/ergodox_ez/keymaps/algernon/config.h b/keyboards/ergodox_ez/keymaps/algernon/config.h new file mode 100644 index 000000000..4cb878ebc --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/algernon/config.h @@ -0,0 +1,29 @@ +#ifndef CONFIG_ALGERNON_H +#define CONFIG_ALGERNON_H + +#include "../../config.h" + +#undef MOUSEKEY_TIME_TO_MAX +#undef MOUSEKEY_MAX_SPEED + +#define MOUSEKEY_TIME_TO_MAX 1 +#define MOUSEKEY_MAX_SPEED 2 + +#undef MOUSEKEY_DELAY +#define MOUSEKEY_DELAY 0 + +#undef MOUSEKEY_WHEEL_DELAY +#define MOUSEKEY_WHEEL_DELAY 0 + +#define ONESHOT_TAP_TOGGLE 2 +#define ONESHOT_TIMEOUT 3000 + +#undef LOCKING_SUPPORT_ENABLE +#undef LOCKING_RESYNC_ENABLE + +#undef LEADER_TIMEOUT +#define LEADER_TIMEOUT 1000 + +#define FORCE_NKRO + +#endif diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/base-layer.png b/keyboards/ergodox_ez/keymaps/algernon/images/base-layer.png Binary files differnew file mode 100644 index 000000000..1a7c0f480 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/algernon/images/base-layer.png diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/emacs-layer.png b/keyboards/ergodox_ez/keymaps/algernon/images/emacs-layer.png Binary files differnew file mode 100644 index 000000000..1aa23cc00 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/algernon/images/emacs-layer.png diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/experimental-layer.png b/keyboards/ergodox_ez/keymaps/algernon/images/experimental-layer.png Binary files differnew file mode 100644 index 000000000..c5e695b8c --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/algernon/images/experimental-layer.png diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/hun-layer.png b/keyboards/ergodox_ez/keymaps/algernon/images/hun-layer.png Binary files differnew file mode 100644 index 000000000..f1e5f9ec0 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/algernon/images/hun-layer.png diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/one-handed-layer.png b/keyboards/ergodox_ez/keymaps/algernon/images/one-handed-layer.png Binary files differnew file mode 100644 index 000000000..283559b3a --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/algernon/images/one-handed-layer.png diff --git a/keyboards/ergodox_ez/keymaps/algernon/images/steno-layer.png b/keyboards/ergodox_ez/keymaps/algernon/images/steno-layer.png Binary files differnew file mode 100644 index 000000000..e747bfb41 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/algernon/images/steno-layer.png diff --git a/keyboards/ergodox_ez/keymaps/algernon/keymap.c b/keyboards/ergodox_ez/keymaps/algernon/keymap.c new file mode 100644 index 000000000..4eea6874c --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/algernon/keymap.c @@ -0,0 +1,1172 @@ +/* + * algernon's ErgoDox EZ layout, please see the README.md file! + */ + +#include "ergodox_ez.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" + +/* Layers */ + +enum { + BASE = 0, + APPSEL, + HUN, + EMACS, + OHLFT, + OHRGT, + PLVR, + EXPRM +}; + +/* Macros */ + +enum { + NONE = 0, + // Buttons that do extra stuff + A_GUI, + A_PLVR, + A_ESC, + A_MPN, + A_COLN, + + // Function / number keys + KF_1, // 1, F1 + KF_2, // 2, F2 + KF_3, // ... + KF_4, + KF_5, + KF_6, + KF_7, + KF_8, + KF_9, + KF_10, + KF_11, // =, F11 + + // Application select keys + APP_SLK, // Slack + APP_EMCS, // Emacs + APP_TERM, // Terminal + APP_CHRM, // Chrome + APP_MSIC, // Music + + // Diagonal mouse movement + A_MUL, + A_MUR, + A_MDL, + A_MDR, + + // Emacs layer keys + AE_VIS, // Visual mode + AE_PSTDEL, // Paste/Delete + AE_CPYC, // Copy/Cut + AE_EMACS, // Emacs copy & paste mode + AE_TERM, // Terminal copy & paste mode + AE_OTHER, // Other copy & paste mode + AE_INS, // Insert mode + AE_OVR, // Overwrite mode + AE_APPND, // Append + + // Hungarian layer keys + HU_AA, // Á + HU_OO, // Ó + HU_EE, // É + HU_UU, // Ú + HU_II, // Í + HU_OE, // Ö + HU_UE, // Ü + HU_OEE, // Ő + HU_UEE, // Ű + + // One-handed layout specials + OH_BSSPC, + OH_ENTSFT, + OH_BASE, + OH_LEFT, + OH_RIGHT, +}; + +/* Fn keys */ + +enum { + F_BSE = 0, + F_HUN, + F_GUI, + F_SFT, + F_ALT, + F_CTRL +}; + +/* States & timers */ + +uint8_t m_visual_state = 0; +static uint16_t m_cutdel_timer; +static uint16_t m_copypaste_timer; + +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 + +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; + +enum { + CP_EMACS = 0, + CP_TERM = 1, + CP_OTHER = 2, +}; + +uint8_t cp_mode = CP_EMACS; + +/* The Keymap */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Keymap 0: Base Layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | `~ | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 | Plvr | | Apps | 6 F6 | 7 F7 | 8 F8 | 9 F9 | 0 F10| F11 | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | 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 | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | Home | End | Down | Up | : | | - | Left | Right| PgUp | PgDn | + * `-----------------------------------' `-----------------------------------' + * ,-------------. ,-------------. + * | LAlt | GUI | |EMACS | 1HND | + * ,------|------|------| |------+------+------. + * | | | Ctrl | | LEAD | | | + * |Backsp|LShift|------| |------| Enter| Space| + * | | | ESC | | HUN | | | + * `--------------------' `--------------------' + */ +[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_HOME ,KC_END ,KC_DOWN ,KC_UP ,M(A_COLN) + + ,F(F_ALT),F(F_GUI) + ,F(F_CTRL) + ,KC_BSPC,F(F_SFT),M(A_ESC) + + // right hand + ,KC_APP ,M(KF_6),M(KF_7),M(KF_8),M(KF_9) ,M(KF_10) ,KC_F11 + ,KC_RBRC ,KC_F ,KC_G ,KC_C ,KC_R ,KC_L ,KC_EQL + ,KC_D ,KC_H ,KC_T ,KC_N ,KC_S ,KC_BSLS + ,KC_RPRN ,KC_B ,KC_M ,KC_W ,KC_V ,KC_Z ,KC_MSTP + ,KC_MINS,KC_LEFT,KC_RGHT ,KC_PGUP ,KC_PGDN + + ,OSL(EMACS),M(OH_LEFT) + ,KC_LEAD + ,F(F_HUN),KC_ENT ,KC_SPC + ), + +/* Keymap 1: Application select layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | |Music |Slack |Emacs |Term |Chrome| | | | | | | | | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | | | | | | | | | | | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | |------| |------| | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | | | | | | | | | | | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ + +[APPSEL] = KEYMAP( +// left hand + KC_TRNS ,M(APP_MSIC),M(APP_SLK),M(APP_EMCS),M(APP_TERM),M(APP_CHRM),KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS + + // right hand + ,KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS + ), + + +/* Keymap 2: Hungarian Layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | | | Ő | | Ű | | | | | | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | Á | Ó | É | Ú | Í |------| |------| | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | Ö | | Ü | | | | | | | | | | | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | BASE | | | + * `--------------------' `--------------------' + */ + +[HUN] = KEYMAP( +// left hand + KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_TRNS +,KC_NO ,KC_NO ,M(HU_OEE),KC_NO ,M(HU_UEE),KC_NO ,KC_NO +,KC_NO ,M(HU_AA),M(HU_OO) ,M(HU_EE),M(HU_UU) ,M(HU_II) +,KC_TRNS ,KC_NO ,M(HU_OE) ,KC_NO ,M(HU_UE) ,KC_NO ,KC_NO +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_NO + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS + + // right hand + ,KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_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_TRNS + + ,KC_NO ,KC_NO + ,KC_NO + ,F(F_BSE),KC_TRNS ,KC_TRNS + ), + +/* Keymap 3: Spacemacs layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | MS Slow | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 |ScrLCK| |ScrLCK| 6 F6 | 7 F7 | 8 F8 | 9 F9 | 0 F10| F11 | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | MS Normal | | Home | Up | PgUp | |Visual| |Scroll| $ |MsUpL | MsUp |MsUpR | R |PrintScreen| + * |-----------+------+------+------+------+------| Mode | | Up |------+------+------+------+------+-----------| + * | MS Fast |APPEND| Left | Down | Right| INS |------| |------| D |MsLeft| MsDn |MsRght| | | + * |-----------+------+------+------+------+------| Cut | |Scroll|------+------+------+------+------+-----------| + * | Play/Pause| | End | Down | PgDn | X | Copy | | Down | |MsDnL | W |MsDnR | | Stop | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * |EmacsM|TermM |OtherM| | | |Vol Up|Vol Dn| Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Alt | GUI | | BASE | MClk | + * ,------|------|------| |------+------+------. + * |Delete| | Ctrl | | Prev |Left |Right | + * | |LShift|------| |------| Click| Click| + * |Paste | | ESC | | Next | | | + * `--------------------' `--------------------' + */ +[EMACS] = KEYMAP( +// left hand + KC_ACL0 ,M(KF_1) ,M(KF_2) ,M(KF_3) ,M(KF_4) ,M(KF_5) ,LGUI(KC_L) +,KC_ACL1 ,KC_NO ,KC_HOME ,KC_UP ,KC_PGUP ,KC_NO ,M(AE_VIS) +,KC_ACL2 ,M(AE_APPND) ,KC_LEFT ,KC_DOWN ,KC_RIGHT,M(AE_INS) +,KC_MPLY ,KC_NO ,KC_END ,KC_DOWN ,KC_PGDN ,KC_X ,M(AE_CPYC) +,M(AE_EMACS),M(AE_TERM) ,M(AE_OTHER),KC_NO ,KC_NO + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,M(AE_PSTDEL),KC_TRNS ,KC_TRNS + + // right hand + ,LGUI(KC_L),M(KF_6) ,M(KF_7) ,M(KF_8) ,M(KF_9) ,M(KF_10) ,M(KF_11) + ,KC_WH_U ,KC_DLR ,M(A_MUL),KC_MS_U ,M(A_MUR),M(AE_OVR),KC_PSCR + ,KC_D ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_NO ,KC_NO + ,KC_WH_D ,KC_NO ,M(A_MDL),KC_W ,M(A_MDR),KC_NO ,KC_MSTP + ,KC_VOLU ,KC_VOLD ,KC_MUTE ,KC_NO ,KC_NO + + ,KC_TRNS ,KC_MS_BTN3 + ,KC_MPRV + ,KC_MNXT ,KC_BTN1 ,KC_BTN2 + ), + +/* Keymap 5: 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 + ), + +/* Keymap 6: 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 7: Steno for Plover + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | BASE | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | # | # | # | # | # | | | | # | # | # | # | # | # | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | T | P | H | |------| |------| | F | P | L | T | D | + * |--------+ S +------+------+------+ * | | | | * +------+------+------+------+--------| + * | | | K | W | R | | | | | | R | B | G | S | Z | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | A | O |------| |------| E | U | + * | | | | | | | | + * `--------------------' `--------------------' + */ + +[PLVR] = KEYMAP( +// left hand +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, M(A_PLVR), +KC_NO, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, KC_NO, +KC_NO, PV_LS, PV_LT, PV_LP, PV_LH, PV_STAR, +KC_NO, PV_LS, PV_LK, PV_LW, PV_LR, PV_STAR, KC_NO, +KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, + KC_NO, + PV_A, PV_O, KC_NO, + + // right hand + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, + PV_STAR, PV_RF, PV_RP, PV_RL, PV_RT, PV_RD, + KC_NO, PV_STAR, PV_RR, PV_RB, PV_RG, PV_RS, PV_RZ, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, + KC_NO, + KC_NO,PV_E, PV_U + ), + +/* Keymap 8: Experimental layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | `~ | 1 F1 | 2 F2 | 3 F3 | 4 F4 | 5 F5 | Plvr | | Apps | 6 F6 | 7 F7 | 8 F8 | 9 F9 | 0 F10| F11 | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | Next/Prev | ' | , | . | P | Y | [ | | ] | Q | F | C | R | J | = | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | Tab | A | O | E | U | I |------| |------| D | H | T | N | S | \ | + * |-----------+------+------+------+------+------| ( | | ) |------+------+------+------+------+-----------| + * | Play/Pause| Z | K | V | G | X | | | | L | M | W | B | / | Stop | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | Home | End | Down | Up | : | | - | Left | Right| PgUp | PgDn | + * `-----------------------------------' `-----------------------------------' + * ,-------------. ,-------------. + * | LAlt | GUI | |EMACS | 1HND | + * ,------|------|------| |------+------+------. + * | | | Ctrl | | LEAD | | | + * |Backsp|LShift|------| |------| Enter| Space| + * | | | ESC | | HUN | | | + * `--------------------' `--------------------' + */ +[EXPRM] = 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_K ,KC_V ,KC_G ,KC_X ,KC_LPRN +,KC_HOME ,KC_END ,KC_DOWN ,KC_UP ,M(A_COLN) + + ,F(F_ALT),F(F_GUI) + ,F(F_CTRL) + ,KC_BSPC,F(F_SFT),M(A_ESC) + + // right hand + ,KC_APP ,M(KF_6),M(KF_7),M(KF_8),M(KF_9) ,M(KF_10) ,KC_F11 + ,KC_RBRC ,KC_Q ,KC_F ,KC_C ,KC_R ,KC_J ,KC_EQL + ,KC_D ,KC_H ,KC_T ,KC_N ,KC_S ,KC_BSLS + ,KC_RPRN ,KC_L ,KC_M ,KC_W ,KC_B ,KC_SLSH ,KC_MSTP + ,KC_MINS,KC_LEFT,KC_RGHT ,KC_PGUP ,KC_PGDN + + ,OSL(EMACS),M(OH_LEFT) + ,KC_LEAD + ,F(F_HUN),KC_ENT ,KC_SPC + ), + + +}; + +const uint16_t PROGMEM fn_actions[] = { + [F_BSE] = ACTION_LAYER_CLEAR(ON_PRESS) + ,[F_HUN] = ACTION_LAYER_INVERT(HUN, ON_PRESS) + ,[F_GUI] = ACTION_MACRO_TAP(A_GUI) + ,[F_SFT] = ACTION_MODS_ONESHOT (MOD_LSFT) + ,[F_ALT] = ACTION_MODS_ONESHOT (MOD_LALT) + ,[F_CTRL] = ACTION_MODS_ONESHOT (MOD_LCTL) +}; + +void toggle_steno(int pressed) +{ + uint8_t layer = biton32(layer_state); + + if (pressed) { + if (layer != PLVR) layer_on(PLVR); else layer_off(PLVR); + + register_code(PV_LP); + register_code(PV_LH); + register_code(PV_LR); + register_code(PV_O); + register_code(PV_RL); + register_code(PV_RG); + } else { + unregister_code(PV_LP); + unregister_code(PV_LH); + unregister_code(PV_LR); + unregister_code(PV_O); + unregister_code(PV_RL); + unregister_code(PV_RG); + } +} + +macro_t *ang_do_hun (keyrecord_t *record, uint16_t accent, uint16_t hun_char) +{ + uint8_t need_shift = 0; + uint8_t hold_shift = 0; + + if (!record->event.pressed) + return MACRO_NONE; + + layer_off (HUN); + + if (keyboard_report->mods & MOD_BIT (KC_LSFT)) { + hold_shift = 1; + need_shift = 1; + unregister_code (KC_LSFT); + } + if ((get_oneshot_mods () & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out ()) { + need_shift = 1; + hold_shift = 0; + unregister_code (KC_LSFT); + } + + clear_oneshot_mods (); + + register_code (KC_RALT); + unregister_code (KC_RALT); + if (accent == (KC_DQT)) { + register_code (KC_RSFT); + } + register_code (accent); + unregister_code (accent); + if (need_shift && accent != (KC_DQT)) { + register_code (KC_RSFT); + } else if (accent == (KC_DQT) && !need_shift) { + unregister_code (KC_RSFT); + } + register_code (hun_char); + unregister_code (hun_char); + if (need_shift || accent == (KC_DQT)) + unregister_code (KC_RSFT); + if (hold_shift) + register_code (KC_LSFT); + + return MACRO_NONE; +} + +void ang_handle_kf (keyrecord_t *record, uint8_t id) +{ + uint8_t code = id - KF_1; + + if (record->event.pressed) { + kf_timers[code] = timer_read (); + } else { + uint8_t kc; + + if (timer_elapsed (kf_timers[code]) > TAPPING_TERM) { + // Long press + kc = KC_F1 + code; + } else { + if (id == KF_11) + kc = KC_EQL; + else + kc = KC_1 + code; + } + + register_code (kc); + unregister_code (kc); + } +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case A_ESC: + if (record->event.pressed) { + if ((get_oneshot_mods ()) && !has_oneshot_mods_timed_out ()) { + clear_oneshot_mods (); + } else { + register_code (KC_ESC); + } + layer_off (HUN); + } else { + unregister_code (KC_ESC); + } + break; + + case A_COLN: + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || + ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out())) { + int oneshot = ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out()); + + if (record->event.pressed) { + if (oneshot) + clear_oneshot_mods (); + unregister_code (KC_LSFT); + + register_code (KC_SCLN); + unregister_code (KC_SCLN); + if (!oneshot) + register_code (KC_LSFT); + } + } else { + return MACRODOWN (D(RSFT), T(SCLN), U(RSFT), END); + } + break; + + case A_MPN: + if (record->event.pressed) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || + ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out())) { + int oneshot = ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out()); + + if (oneshot) + clear_oneshot_mods (); + unregister_code (KC_LSFT); + + register_code (KC_MPRV); + unregister_code (KC_MPRV); + + if (!oneshot) + register_code (KC_LSFT); + } else { + return MACRO (T(MNXT), END); + } + } + break; + + /* Hungarian layer */ + case HU_AA: + return ang_do_hun (record, KC_QUOT, KC_A); + case HU_OO: + return ang_do_hun (record, KC_QUOT, KC_O); + case HU_EE: + return ang_do_hun (record, KC_QUOT, KC_E); + case HU_UU: + return ang_do_hun (record, KC_QUOT, KC_U); + case HU_II: + return ang_do_hun (record, KC_QUOT, KC_I); + case HU_OE: + return ang_do_hun (record, KC_DQT, KC_O); + case HU_UE: + return ang_do_hun (record, KC_DQT, KC_U); + case HU_OEE: + return ang_do_hun (record, KC_EQL, KC_O); + case HU_UEE: + return ang_do_hun (record, KC_EQL, KC_U); + + /* Mouse movement */ + case A_MUL: + if (record->event.pressed) { + mousekey_on(KC_MS_UP); + mousekey_on(KC_MS_LEFT); + } else { + mousekey_off(KC_MS_UP); + mousekey_off(KC_MS_LEFT); + } + mousekey_send(); + break; + + case A_MUR: + if (record->event.pressed) { + mousekey_on(KC_MS_UP); + mousekey_on(KC_MS_RIGHT); + } else { + mousekey_off(KC_MS_UP); + mousekey_off(KC_MS_RIGHT); + } + mousekey_send(); + break; + + case A_MDL: + if (record->event.pressed) { + mousekey_on(KC_MS_DOWN); + mousekey_on(KC_MS_LEFT); + } else { + mousekey_off(KC_MS_DOWN); + mousekey_off(KC_MS_LEFT); + } + mousekey_send(); + break; + + case A_MDR: + if (record->event.pressed) { + mousekey_on(KC_MS_DOWN); + mousekey_on(KC_MS_RIGHT); + } else { + mousekey_off(KC_MS_DOWN); + mousekey_off(KC_MS_RIGHT); + } + mousekey_send(); + break; + + /* EMACS layer stuff */ + case AE_EMACS: + if (record->event.pressed) { + cp_mode = CP_EMACS; + } + break; + + case AE_TERM: + if (record->event.pressed) { + cp_mode = CP_TERM; + } + break; + + case AE_OTHER: + if (record->event.pressed) { + cp_mode = CP_OTHER; + } + break; + + case AE_VIS: + if (cp_mode == CP_EMACS && record->event.pressed) { + return MACRO(T(V), END); + } + break; + + case AE_CPYC: + if (record->event.pressed) { + m_copypaste_timer = timer_read (); + } else { + if (timer_elapsed (m_copypaste_timer) > TAPPING_TERM) { + // Long press: Cut + switch (cp_mode) { + case CP_EMACS: + return MACRO(T(X), END); + break; + case CP_TERM: + return MACRO(D(RCTRL), D(RSFT), T(X), U(RSFT), U(RCTRL), END); + break; + case CP_OTHER: + return MACRO(D(RCTRL), T(X), U(RCTRL), END); + break; + } + } else { + // Short press: Copy + switch (cp_mode) { + case CP_EMACS: + return MACRO(T(Y), END); + break; + case CP_TERM: + return MACRO(D(RCTRL), D(RSFT), T(C), U(RSFT), U(RCTRL), END); + break; + case CP_OTHER: + return MACRO(D(RCTRL), T(C), U(RCTRL), END); + break; + } + } + } + break; + + case AE_PSTDEL: + if (record->event.pressed) { + m_cutdel_timer = timer_read (); + } else { + if (timer_elapsed (m_cutdel_timer) > TAPPING_TERM) { + // Long press: Delete + switch (cp_mode) { + case CP_EMACS: + return MACRO(T(D), END); + break; + case CP_TERM: + case CP_OTHER: + return MACRO(T(DEL), END); + break; + } + } else { + // Short press: Paste + switch (cp_mode) { + case CP_EMACS: + if (keyboard_report->mods & MOD_BIT(KC_RSFT)) { + unregister_code (KC_RSFT); + return MACRO(U(RSFT), T(RBRC), T(P), D(RSFT), END); + } + else + return MACRO(T(P), END); + break; + case CP_TERM: + return MACRO(D(RCTRL), D(RSFT), T(V), U(RSFT), U(RCTRL), END); + break; + case CP_OTHER: + return MACRO(D(RCTRL), T(V), U(RCTRL), END); + break; + } + } + } + break; + + case AE_INS: + if (record->event.pressed) { + return MACRO(T(I), END); + } else { + layer_clear(); + } + break; + + case AE_OVR: + if (record->event.pressed) { + return MACRO(T(R), END); + } else { + layer_clear(); + } + break; + + case AE_APPND: + if (record->event.pressed) { + return MACRO(T(A), END); + } else { + layer_clear(); + } + break; + + /* Plover base */ + case A_PLVR: + toggle_steno(record->event.pressed); + break; + + /* GUI & AppSel */ + case A_GUI: + if (record->event.pressed) { + register_code (KC_LGUI); + if (record->tap.count && !record->tap.interrupted) { + if (record->tap.count >= 2) { + register_code (KC_W); + layer_on (APPSEL); + set_oneshot_layer (APPSEL, ONESHOT_START); + } + } else { + record->tap.count = 0; + } + gui_timer = 0; + } else { + if (record->tap.count >= 2) + { + unregister_code (KC_W); + clear_oneshot_layer_state (ONESHOT_PRESSED); + } + gui_timer = timer_read (); + } + break; + + case APP_SLK: + return MACRODOWN(T(S), T(C), T(U), T(D), T(C), T(L), T(O), T(U), T(D), T(ENT), END); + + case APP_EMCS: + return MACRODOWN(T(E), T(M), T(A), T(C), T(S), T(ENT), END); + + case APP_TERM: + return MACRODOWN(T(T), T(E), T(R), T(M), T(ENT), END); + + case APP_CHRM: + return MACRODOWN(T(C), T(H), T(R), T(O), T(M), T(ENT), END); + + case APP_MSIC: + return MACRODOWN(T(R), T(H), T(Y), T(T), T(H), T(M), T(B), T(O), T(X), T(ENT), END); + + /* Function keys */ + case KF_1 ... KF_11: + ang_handle_kf (record, id); + break; + + /* 1HAND layout */ + case OH_BASE: + if (record->event.pressed) { + oh_base_timer = timer_read (); + } else { + if (timer_elapsed (oh_base_timer) > TAPPING_TERM) { + layer_clear (); + } else { + return MACRO (T(APP), END); + } + } + break; + + case OH_BSSPC: + if (record->event.pressed) { + oh_bsspc_timer = timer_read (); + } else { + if (timer_elapsed (oh_bsspc_timer) > TAPPING_TERM) { + return MACRO (T(BSPC), END); + } else { + return MACRO (T(SPC), END); + } + } + break; + + case OH_ENTSFT: + if (record->event.pressed) { + oh_entsft_timer = timer_read (); + } else { + if (timer_elapsed (oh_entsft_timer) > TAPPING_TERM) { + if (keyboard_report->mods & MOD_BIT(KC_LSFT)) + unregister_code (KC_LSFT); + else + register_code (KC_LSFT); + } else { + return MACRO (T(ENT), END); + } + } + break; + + case OH_LEFT: + if (record->event.pressed) { + layer_move (OHLFT); + oh_left_blink = 1; + oh_left_blink_timer = timer_read (); + ergodox_right_led_1_on (); + } + break; + + case OH_RIGHT: + if (record->event.pressed) { + layer_move (OHRGT); + oh_right_blink = 1; + oh_right_blink_timer = timer_read (); + ergodox_right_led_3_on (); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + ergodox_led_all_on(); + for (int i = LED_BRIGHTNESS_HI; i > LED_BRIGHTNESS_LO; i--) { + ergodox_led_all_set (i); + _delay_ms (5); + } + _delay_ms(1000); + for (int i = LED_BRIGHTNESS_LO; i > 0; i--) { + ergodox_led_all_set (i); + _delay_ms (10); + } + ergodox_led_all_off(); +}; + +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); +} + +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); + } +} + +#define TAP_ONCE(code) \ + register_code (code); \ + unregister_code (code) + +uint8_t is_exp = 0; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + uint8_t layer = biton32(layer_state); + + if (gui_timer && timer_elapsed (gui_timer) > TAPPING_TERM) + unregister_code (KC_LGUI); + + if (layer != OHLFT) + oh_left_blink = 0; + if (layer != OHRGT) + oh_right_blink = 0; + + if (layer == HUN) { + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); + } else if (layer == EMACS) { + 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 == EXPRM) { + ergodox_right_led_1_on (); + ergodox_right_led_2_on (); + ergodox_right_led_3_on (); + + ergodox_right_led_2_set (LED_BRIGHTNESS_HI); + } + + if (layer == OHLFT || layer == OHRGT) { + ergodox_right_led_2_on(); + + if (oh_left_blink) { + if (timer_elapsed (oh_left_blink_timer) > OH_BLINK_INTERVAL) { + if ((keyboard_report->mods & MOD_BIT(KC_LSFT)) == 0) + ergodox_right_led_1_off (); + } + if (timer_elapsed (oh_left_blink_timer) > OH_BLINK_INTERVAL * 2) { + ergodox_right_led_1_on (); + oh_left_blink_timer = timer_read (); + } + } + + if (oh_right_blink) { + if (timer_elapsed (oh_right_blink_timer) > OH_BLINK_INTERVAL) { + if ((keyboard_report->mods & MOD_BIT(KC_LCTRL)) == 0) + ergodox_right_led_3_off (); + } + if (timer_elapsed (oh_right_blink_timer) > OH_BLINK_INTERVAL * 2) { + ergodox_right_led_3_on (); + oh_right_blink_timer = timer_read (); + } + } + } + + if (keyboard_report->mods & MOD_BIT(KC_LSFT) || + ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) && !has_oneshot_mods_timed_out())) { + ergodox_right_led_1_set (LED_BRIGHTNESS_HI); + ergodox_right_led_1_on (); + } else { + ergodox_right_led_1_set (LED_BRIGHTNESS_LO); + if (layer != OHLFT && layer != EMACS && layer != PLVR && layer != EXPRM) + ergodox_right_led_1_off (); + } + + if (keyboard_report->mods & MOD_BIT(KC_LALT) || + ((get_oneshot_mods() & MOD_BIT(KC_LALT)) && !has_oneshot_mods_timed_out())) { + ergodox_right_led_2_set (LED_BRIGHTNESS_HI); + ergodox_right_led_2_on (); + } else { + ergodox_right_led_2_set (LED_BRIGHTNESS_LO); + if (layer != OHRGT && layer != HUN && layer != OHLFT && layer != EMACS && layer != PLVR && layer != EXPRM) + ergodox_right_led_2_off (); + } + + if (keyboard_report->mods & MOD_BIT(KC_LCTRL) || + ((get_oneshot_mods() & MOD_BIT(KC_LCTRL)) && !has_oneshot_mods_timed_out())) { + ergodox_right_led_3_set (LED_BRIGHTNESS_HI); + ergodox_right_led_3_on (); + } else { + ergodox_right_led_3_set (LED_BRIGHTNESS_LO); + if (layer != OHRGT && layer != HUN && layer != PLVR && layer != EXPRM) + ergodox_right_led_3_off (); + } + + LEADER_DICTIONARY() { + leading = false; + leader_end (); + + SEQ_ONE_KEY (KC_U) { + ang_do_unicode (); + } + +#ifdef QMK_VERSION + SEQ_ONE_KEY (KC_V) { + SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + } +#endif + + SEQ_ONE_KEY (KC_L) { + /* λ */ + ang_do_unicode (); + + uint16_t codes[] = {KC_0, KC_3, KC_B, KC_B, KC_ENT, 0}; + ang_tap (codes); + } + + SEQ_ONE_KEY (KC_Y) { + uint16_t codes[] = {KC_BSLS, KC_O, KC_SLSH, 0}; + ang_tap (codes); + } + + SEQ_ONE_KEY (KC_S) { + ang_do_unicode (); TAP_ONCE (KC_A); TAP_ONCE (KC_F); TAP_ONCE (KC_SPC); + TAP_ONCE (KC_BSLS); + register_code (KC_RSFT); TAP_ONCE (KC_MINS); TAP_ONCE (KC_9); unregister_code (KC_RSFT); + ang_do_unicode (); TAP_ONCE (KC_3); TAP_ONCE (KC_0); TAP_ONCE (KC_C); TAP_ONCE (KC_4); TAP_ONCE (KC_SPC); + register_code (KC_RSFT); TAP_ONCE (KC_0); TAP_ONCE (KC_MINS); unregister_code (KC_RSFT); + TAP_ONCE (KC_SLSH); + ang_do_unicode (); TAP_ONCE (KC_A); TAP_ONCE (KC_F); TAP_ONCE (KC_SPC); + } + + SEQ_TWO_KEYS (KC_W, KC_M) { + register_code (KC_LALT); + register_code (KC_F2); + unregister_code (KC_F2); + unregister_code (KC_LALT); + + _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); + } + + SEQ_ONE_KEY (KC_E) { + if (is_exp == 0) { + default_layer_and (0); + default_layer_or ((1 << EXPRM)); + is_exp = 1; + + ergodox_led_all_off (); + ergodox_right_led_3_on (); + _delay_ms (100); + ergodox_right_led_2_on (); + _delay_ms (100); + ergodox_right_led_3_off (); + ergodox_right_led_1_on (); + _delay_ms (100); + ergodox_right_led_2_off (); + _delay_ms (100); + ergodox_right_led_1_off (); + } else { + is_exp = 0; + default_layer_and (0); + default_layer_or (1 << BASE); + + ergodox_led_all_off (); + ergodox_right_led_1_on (); + _delay_ms (100); + ergodox_right_led_2_on (); + _delay_ms (100); + ergodox_right_led_1_off (); + ergodox_right_led_3_on (); + _delay_ms (100); + ergodox_right_led_2_off (); + _delay_ms (100); + ergodox_right_led_3_off (); + + } + } + } +} diff --git a/keyboards/ergodox_ez/keymaps/algernon/readme.md b/keyboards/ergodox_ez/keymaps/algernon/readme.md new file mode 100644 index 000000000..c66b33f3d --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/algernon/readme.md @@ -0,0 +1,158 @@ +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. + +## 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 (for example, `-` +being on the left half, and on the innermost key of the bottom row on the +right). 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. Otherwise it sends the usual keycode. +* The **Emacs** and **Hun** layer keys are one-shot, the **1Hand** and **STENO** + keys are toggles. +* 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, if + compiled with a QMK version that has these available. + +## 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. + +## Emacs layer + +[![Emacs layer](images/emacs-layer.png)](http://www.keyboard-layout-editor.com/#/gists/c59c453f9fe1a3238ba1494e7e5c6892) + +This layer is primarily for navigating text - and for some mousing and other +things, because there was space. Most of the keys should be pretty +self-explanatory, except for a few: + +* There are three keys on the bottom row of the left side, that change how some + of the other keys - explained just below - work. The keys are for *Emacs + mode* (the default), *Terminal mode*, and *Traditional mode*, respectively. +* The *Visual mode* key (the top big key on the left side) sends the `v` key in + *Emacs mode*, to enter Visual mode in Spacemacs. In all other modes, it is a + no-op. +* The *Copy/Cut* key (the bottom big key on the left side) sends the copy + command on tap, the cut one when held for longer than a normal tap. The **copy + command** is `y` in *Emacs mode*, `Ctrl-Shift-c` in *Terminal mode*, and + `Ctrl-c` in *Traditional mode*. The **cut command** is `x` in *Emacs mode*, + `Ctrl-Shift-x` in *Terminal Mode* and `Ctrl-x` in *Traditional mode*. +* The *Paste/Delete* key (the leftmost key on the left thumb cluster) sends the + paste command on tap, the delete one when held longer than a normal tap. The + **paste command** is `p` in *Emacs mode*, `Ctrl-Shift-v` in *Terminal mode*, + and `Ctrl-v` in *Traditional mode*. The **delete command** is `d` in *Emacs + mode*, and `DEL` in the other two. +* The `A`, `I` and `R` keys will - after sending themselves - clear the layer + back to the base layer. This allows a quick escape from the layer. + +## 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. + +## 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 + +# 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, or symlinked +to `keyboards/ergodox_ez/algernon`. 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/keyboards/ergodox_ez +$ git clone https://github.com/algernon/ergodox-layout.git keymaps/algernon +$ make KEYMAP=algernon +``` + +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): + +``` +$ cd keyboards/ergodox_ez +$ make KEYMAP=algernon +``` + +# 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 new file mode 100755 index 000000000..4d5220aa8 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/algernon/tools/max-focused @@ -0,0 +1,5 @@ +#! /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/andrew_osx/compiled.hex b/keyboards/ergodox_ez/keymaps/andrew_osx/compiled.hex new file mode 100644 index 000000000..14d0fbe0b --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/andrew_osx/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4
+:100010000C94BE020C94BE020C94BE020C94BE0260
+:100020000C94BE020C94BE020C94620D0C94340E1F
+:100030000C94BE020C94BE020C94BE020C94BE0240
+:100040000C94BE020C943E220C94BE020C94BE0290
+:100050000C94BE020C94D11B0C94BE020C94BE02F4
+:100060000C94BE020C94BE020C94BE020C94BE0210
+:100070000C94BE020C94BE020C94BE020C94BE0200
+:100080000C94BE020C94BE020C94BE020C94BE02F0
+:100090000C94BE020C94BE020C94BE020C94BE02E0
+:1000A0000C94BE020C94BE020C94BE02A10EC30EB0
+:1000B000B10FC30EB10F080F2B0FB10F800F930FAD
+:1000C0006212621291129112C712E71218141814D8
+:1000D000F2121814A213A2130914181418141214EB
+:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300
+:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0
+:10010000C113CE13D513DC13E6130000F0A12E00AB
+:100110002B002971E100354100001E00140004008D
+:100120001D71E20027021F001A0016001B00E104E7
+:10013000E300200008000700060050002C0021000A
+:100140001500090019004F002602220017000A00BE
+:100150000500000065743400C1000000007F00004D
+:10016000E3003400C10000000077000029002300F4
+:100170001C000B00110000002971240018000D0064
+:10018000100052002F0225000C000E003600510016
+:100190002800260012000F0037002F00E70027007C
+:1001A000130033423871300030022A002D00310034
+:1001B000E500015400000100010001000100010000
+:1001C00000003A001E0220022202010001003B0052
+:1001D0001F0221022302010001003C002F0226021F
+:1001E0002F00010001003D00300227023000010015
+:1001F00001003E003102350035020000010001001F
+:1002000001000000010000000100010001000000E9
+:100210000100000001003F005200510024020000D4
+:1002200001004000240021001E00010001004100E7
+:10023000250022001F003700010042002600230095
+:10024000200027000100430025022E0231002E006D
+:100250000100440045000100010001000000010010
+:100260000100010001000100000001000100010087
+:1002700001000100010001000100F2000100010085
+:1002800001000100F000F1000100F4000100010094
+:100290000100F3000100F500010001000100010070
+:1002A0000100000001000100010000000100000049
+:1002B0000100010001000000010000000100010038
+:1002C0000100010001000000010001000100010027
+:1002D0000100A9000100010001000100AC00AA001A
+:1002E000B600010001000100AB00A8000100010000
+:1002F0000100010001000100010001000100AE0049
+:1003000001000100000016034500720067006F0045
+:1003100044006F007800200045005A0000001603DA
+:100320004500720067006F0044006F0078002000F5
+:1003300045005A0000000403090409026D0004018D
+:1003400000A0FA09040000010301010009211101C4
+:100350000001223F000705810308000A090401008B
+:100360000103010200092111010001224D000705CE
+:10037000820308000A0904020001030000000921A9
+:10038000110100012236000705830308000A090451
+:1003900003000103000000092111010001223900BE
+:1003A000070584031000011201100100000008ED90
+:1003B000FE071301000102000105010906A1010564
+:1003C0000719E029E7150025019508750181020547
+:1003D000081901290595057501910295017503918B
+:1003E0000105071900297715002501957875018108
+:1003F00002C005010980A101850216010026B7008F
+:100400001A01002AB700751095018100C0050C097A
+:1004100001A1018503160100269C021A01002A9CF5
+:1004200002751095018100C005010902A1010901B1
+:10043000A10005091901290515002501950575017A
+:10044000810295017503810105010930093115818A
+:10045000257F95027508810609381581257F95014C
+:1004600075088106050C0A38021581257F950175EE
+:10047000088106C0C005010906A101050719E02988
+:10048000E715002501950875018102950175088120
+:100490000105081901290595057501910295017558
+:1004A0000391010507190029FF150025FF95067521
+:1004B000088100C0000000000000000000000001F2
+:1004C0000204060A0F17202C3A4A5D71879DB3C7B4
+:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF
+:1004E0003A2C20170F0A0604020100000000000049
+:1004F0000000000011241FBECFEFDAE0DEBFCDBF49
+:1005000004B603FE24C08091FB019091FC01A091F0
+:10051000FD01B091FE018730904BA740B04BB9F47C
+:100520001092FB011092FC011092FD011092FE014D
+:1005300014BE84B7877F84BF88E10FB6F894809398
+:100540006000109260000FBEE0E0FFE3099511E04B
+:10055000A0E0B1E0EAE0F8E402C005900D92A43317
+:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0
+:10057000B107E1F70E94A60A0C9403240C94000032
+:100580001092B9008AE08093B800089594EA90939D
+:10059000BC009091BC0097FFFCCF9091B900987F70
+:1005A000983021F0903111F081E008958093BB00E4
+:1005B00084E88093BC008091BC0087FFFCCF8091D1
+:1005C000B900887F883111F0803471F780E0089598
+:1005D00084E98093BC008091BC0084FDFCCF089529
+:1005E0008093BB0084E88093BC008091BC0087FFAF
+:1005F000FCCF9091B900987F81E0983209F480E0B7
+:10060000089584E88093BC008091BC0087FFFCCFF4
+:100610008091BB00089580910101811115C080E493
+:100620000E94C6028093010181110CC082E10E94E8
+:10063000F00280930101811105C08FEF0E94F0024A
+:10064000809301010E94E80284B1807F84B985B162
+:10065000807F85B98AB1837F8AB98BB1837F8BB95B
+:100660003E98469808950E94C604809301010E9416
+:100670000B0380B38C7080BB81B3836F81BBA5E318
+:10068000B1E0E3E4F1E08EE08E0F11921D928E1343
+:10069000FCCF0C94B004BF92CF92DF92EF92FF9206
+:1006A0000F931F93CF93DF9380910101882379F0FB
+:1006B000809134018F5F80933401811108C00E94C2
+:1006C000C60480930101811102C00E94580405E311
+:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407
+:1006E000E394F12CC730D10500F58091010181110F
+:1006F00064C080E40E94C60280930101811112C08F
+:1007000082E10E94F0028093010181110BC0C701B8
+:100710000C2E01C0880F0A94EAF780950E94F0021F
+:10072000809301010E94E80248C0CA30A1F028F479
+:10073000C83059F0C93061F005C0CC3089F070F094
+:10074000CD3089F0209A289810C0219A29980DC0A0
+:10075000229A2A980AC0239A2B9807C0529A01C05D
+:10076000539A5B9802C03E9A469890EA9A95F1F7A0
+:100770009FB1799902C082E001C080E091709D250F
+:10078000982B7C9902C084E001C080E0892B7D9980
+:1007900002C038E001C030E0832B7E9902C020E126
+:1007A00001C020E0822B9FB19095991F9927991F36
+:1007B0009295990F907E892B0FC080910101811134
+:1007C00049C080E40E94C60280930101882379F128
+:1007D000B12C0E94E8028B2DF8019081981719F036
+:1007E0008083C09200010E940B0321960F5F1F4F70
+:1007F000CE30D10509F076CF80910001882361F1D8
+:10080000815080930001882339F08FE99FE00197A0
+:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F
+:10082000CF01825F91919D938E13FCCF15C083E120
+:100830000E94F002809301018111CACF81E40E94DD
+:10084000C602809301018111C3CF0E940103B82E1B
+:10085000B094BFCF80E0C0CF0E94560481E0DF910A
+:10086000CF911F910F91FF90EF90DF90CF90BF90AD
+:100870000895E82FF0E0ED5BFE4F80810895089524
+:100880000F931F93CF93DF93C3E4D1E010E00C2FBD
+:10089000025F899190E00E94F71A180F0C13F9CFAC
+:1008A000812FDF91CF911F910F9108950C94260510
+:1008B00056985E9825982D9826982E9827982F98C8
+:1008C0008FEF90E0909389008093880090938B0045
+:1008D00080938A0090938D0080938C00259A2D9AA6
+:1008E0002FEF80E792E0215080409040E1F700C078
+:1008F0000000269A2E9A2FEF80E792E02150804048
+:100900009040E1F700C00000279A2F9A2FEF80E770
+:1009100092E0215080409040E1F700C0000025980F
+:100920002D982FEF80E792E0215080409040E1F732
+:1009300000C0000026982E982FEF80E792E021500B
+:1009400080409040E1F700C0000027982F9856980B
+:100950005E9825982D9826982E9827982F98089578
+:1009600089EA8093800089E08093810024982C9804
+:100970003F988AB18F748AB96E98479A8BB1806B11
+:100980008BB9769A0E9458040C94250580E28093D6
+:1009900001018091510181110EC00E94C00281E0CD
+:1009A000809351012FEF83ED90E3215080409040E0
+:1009B000E1F700C0000080E40E94C60280930101BC
+:1009C00081112EC00E94F00280930101811128C084
+:1009D0000E94F00280930101811122C08FE30E94E6
+:1009E000F0028093010181111BC00E94E80280E4A3
+:1009F0000E94C60280930101811112C08CE00E9406
+:100A0000F0028093010181110BC00E94F0028093DB
+:100A10000101811105C08FE30E94F0028093010162
+:100A20000E94E80280910101089561110BC0FC0150
+:100A30008281882321F085EE0E94061103C085EE95
+:100A40000E94CE1180E090E0089508956091BD016C
+:100A50007091BE018091BF019091C0010E94031B63
+:100A600056985E9825982D9826982E9827982F9816
+:100A7000813019F0823021F00895259A2D9A089539
+:100A8000269A2E9A089581E0089581E008950C94A5
+:100A9000450508950F931F93CF93DF938C01FC01BD
+:100AA000C081D181CE010E947C19BE010E94F30554
+:100AB000EC01B8010E944705882309F48DC0F801B4
+:100AC0008281882309F44AC080915D0181111FC091
+:100AD000C431F0E5DF0709F051C00E94490581E00B
+:100AE00080935D010E949B1B90935C0180935B014E
+:100AF0001092540110925601109255011092580113
+:100B00001092570110925A011092590165C08091BC
+:100B10005B0190915C010E94A71B883C910570F4D9
+:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB
+:100B3000D183C0838F5F809354014EC0C43880E559
+:100B4000D80721F0C538D04501F13AC0F8018281BB
+:100B5000882341F01092520182E01EC0C438E0E5C3
+:100B6000DE0759F580915201811106C086E20E948C
+:100B7000061186E20E94CE1182E01CC0C438F0E566
+:100B8000DF0741F3C538D045D9F4F80182818823C5
+:100B900031F01092530180E20E941D121DC080911D
+:100BA0005301811106C087E20E94061187E20E946C
+:100BB000CE1180E20E9424120FC0C538D04529F31F
+:100BC00081E08093520180935301C801DF91CF915E
+:100BD0001F910F910C94430580E0DF91CF911F91FD
+:100BE0000F910895089596E0799FF001112494E5FE
+:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F
+:100C0000E25FFE4F859194910895880F991FFC0132
+:100C1000E657F040859194910895880F991FFC0143
+:100C2000E65FFE4F8591949108950F931F93CF93A4
+:100C3000DF93EC01811520E3920750F5C11580E2A6
+:100C4000D80708F0C3C0CB3BD10590F4C83AD10512
+:100C500008F06AC0C53AD10508F05BC0C430D105C0
+:100C600008F0D0C1219709F0CAC101E010E00AC222
+:100C7000CF3FD10511F008F0C5C1C03FD10508F044
+:100C8000A2C0CE01805E9109089708F4BBC1B7C12C
+:100C9000C13090E5D90709F4A2C020F5C0318FE436
+:100CA000D80770F4C11590E4D90708F094C0C115B5
+:100CB00021E3D20708F0A3C1DD278E01106CE2C149
+:100CC000C115D04509F09BC10E9483148FEF94E3B6
+:100CD0002CE0815090402040E1F700C000000E94CD
+:100CE000F61BD0C1C11597E5D90758F4C03121E5ED
+:100CF000D20708F01CC1C43180E5D80708F475C0DC
+:100D00007EC1CE0190578115904108F078C1DF7007
+:100D100073C1C53AD10509F477C1C63AD10509F0C6
+:100D200076C102E810E4AEC1C83AD10509F472C137
+:100D3000C93AD10509F471C1CA3AD10509F470C1A3
+:100D4000CB3AD10509F46FC1CC3AD10509F46EC193
+:100D5000CD3AD10509F46DC1C03BD10509F46CC190
+:100D6000CE3AD10509F46BC1CF3AD10509F46AC175
+:100D7000C13BD10509F469C1C23BD10509F468C181
+:100D8000C33BD10509F467C1C43BD10509F466C171
+:100D9000C53BD10509F465C1C63BD10509F464C161
+:100DA000C73BD10509F463C1C83BD10509F462C151
+:100DB000C93BD10509F461C1CA3BD10509F460C141
+:100DC00000E014E45FC18E0110655CC1CE019F702C
+:100DD0000E940D0658C1DF708E01106A53C18091C8
+:100DE000DA0181608093DA014DC10E949B1D81115F
+:100DF00002C00E94811D0E94B81D90E09093FB01EB
+:100E00008093FA01C23080E5D80721F48091FA017D
+:100E1000816086C0C43090E5D90721F48091FA0141
+:100E200082607EC0C63020E5D20721F48091FA01AD
+:100E3000846076C0C83080E5D80719F48091FA0143
+:100E400027C0CA3090E5D90721F48091FA0180616A
+:100E500067C0CC3020E5D20721F48091FA0180628E
+:100E60005FC0CE3080E5D80721F48091FA0180641C
+:100E700057C0C03190E5D90721F48091FA0180680C
+:100E80004FC0C23120E5D20729F48091FA01846075
+:100E9000886046C0C33080E5D80721F48091FA010C
+:100EA0008E7F3EC0C53090E5D90721F48091FA01CC
+:100EB0008D7F36C0C73020E5D20721F48091FA013A
+:100EC0008B7F2EC0C93080E5D80719F48091FA01D4
+:100ED00026C0CB3090E5D90721F48091FA018F7EAE
+:100EE0001FC0CD3020E5D20721F48091FA018F7D1B
+:100EF00017C0CF3080E5D80721F48091FA018F7BAD
+:100F00000FC0C13190E5D90721F48091FA018F77A4
+:100F100007C0C331D04531F48091FA018B7F877FC0
+:100F20008093FA018091FA010E94BC1DABC08D2F05
+:100F300099278F70992781309105D9F49E012370EC
+:100F4000332702C0880F991F2A95E2F79C688E010B
+:100F500044E0000F111F4A95E1F700271370802B22
+:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA
+:100F70002FC08230910531F4DC2FCC278E01016F18
+:100F8000106A80C08330910569F4CE01837099277F
+:100F900001E010E002C0000F111F8A95E2F7C801BE
+:100FA0009C680FC084309105B9F4CE0183709927F5
+:100FB00001E010E002C0000F111F8A95E2F7C8019E
+:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029
+:100FD0008C010C2B1D2B56C08530910531F4DC2F74
+:100FE000CC278E01046F106A4DC0069709F04AC0E5
+:100FF000CF71DD27DC2FCC278E01106243C000E0CB
+:1010000010E040C08E013EC001E810E43BC003E8A0
+:1010100010E438C002EE14E435C009EE14E432C026
+:101020000AEE14E42FC005EB14E42CC006EB14E424
+:1010300029C007EB14E426C00CEC14E423C00DEC2B
+:1010400014E420C003E815E41DC00AE815E41AC042
+:1010500002E915E417C004E915E414C001E216E43E
+:1010600011C003E216E40EC004E216E40BC005E270
+:1010700016E408C006E216E405C007E216E402C062
+:101080000AE216E4C801DF91CF911F910F910895F4
+:1010900096E0799FF001112494E5899FE00DF11D00
+:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149
+:1010B0009491803E9105E0F4803C910558F5813390
+:1010C000910509F46FC048F48932910509F463C0B1
+:1010D0008A32910509F46DC072C089339105E9F037
+:1010E00082389105D1F08533910509F44DC067C070
+:1010F000833E910581F138F4803E9105B9F0823E3E
+:101100009105D9F05CC0863E910561F1873E91055D
+:10111000A1F155C00E94050608952091FA0120FD15
+:1011200002C021FF4CC080EE90E049C08091FA01DE
+:1011300080FFF9CF89E390E042C08091FA0182FFFD
+:101140000EC08091FA0184FF03C080E090E037C0B8
+:1011500083EE90E034C08091FA0182FFF2CF82EEFC
+:1011600090E02DC08091FA0183FF0BC08091FA01BD
+:1011700084FDEBCF87EE90E022C08091FA0183FFDF
+:10118000F5CF86EE90E01BC08091FA0185FF07C085
+:1011900089E290E014C08091FA0185FFF9CF85E3E0
+:1011A00090E00DC08091FA0186FF07C08AE290E0CE
+:1011B00006C08091FA0186FFF9CF81E390E00E949A
+:1011C0001506089508950C94E20880916E01089523
+:1011D000CF93DF9300D01F92CDB7DEB79C018091F3
+:1011E000F101843019F593E099833B832A8390932E
+:1011F000E9008FEF9091E800815095FD06C095EDD4
+:101200009A95F1F700008111F5CF8091E80085FFF4
+:101210000DC040E050E063E070E0CE0101960E9416
+:10122000520B8091E8008E778093E8000F900F902A
+:101230000F90DF91CF910895CF93DF9300D01F924D
+:10124000CDB7DEB72091F101243021F522E02983CA
+:101250009B838A8383E08093E9008FEF9091E8007D
+:10126000815095FD06C095ED9A95F1F7000081112A
+:10127000F5CF8091E80085FF0DC040E050E063E0CD
+:1012800070E0CE0101960E94520B8091E8008E77AB
+:101290008093E8000F900F900F90DF91CF91089509
+:1012A0002091F1012430F1F422E02093E9002FEFA6
+:1012B0003091E800215035FD06C035ED3A95F1F743
+:1012C00000002111F5CF2091E80025FF0BC040E080
+:1012D00050E065E070E00E94520B8091E8008E774C
+:1012E0008093E8000895CF93DF93EC019091F10192
+:1012F000943009F046C080910C018823D9F0809188
+:101300000D018823B9F09093E9008FEF9091E800E8
+:10131000815095FD06C095E19A95F1F70000811185
+:10132000F5CF8091E80085FF2CC040E050E060E1FF
+:1013300070E017C081E08093E9008FEF9091E800A2
+:10134000815095FD06C095ED9A95F1F70000811149
+:10135000F5CF8091E80085FF14C040E050E068E0E0
+:1013600070E0CE010E94520B8091E8008E7780934E
+:10137000E80080E1FE01AEE5B1E001900D928A95B2
+:10138000E1F7DF91CF9108958091F001811109C0BB
+:101390000E94E70C0E94440D8091E20084608093DB
+:1013A000E20008951092F001089508950C942B2204
+:1013B0000E948C1B0E9431220E94EA0F0C94E308C9
+:1013C00042E061EC81E00E94610C42E061EC82E06D
+:1013D0000E94610C42E061EC83E00E94610C42E1FA
+:1013E00061EC84E00C94610C8091F301833009F48A
+:1013F00055C030F4813071F0823009F48EC0089508
+:101400008A3009F47AC08B3009F460C0893009F061
+:101410009CC020C08091F201813A09F096C0809171
+:10142000E800877F8093E8008091F6019091F701B2
+:10143000892B21F460E18EE591E003C060E080E05B
+:1014400090E070E00E949D0B8091E8008B77809384
+:10145000E80008958091F201813209F076C0809110
+:10146000F6019091F701009719F0039709F06DC00C
+:101470008091E800877F8093E8008091E80082FDFA
+:1014800005C08091F1018111F8CF5FC08091F1001A
+:1014900080936E018091E8008B7753C08091F201B8
+:1014A000813A09F052C08091F6019091F701892BA1
+:1014B00009F04BC08091E800877F8093E80080911D
+:1014C000E80080FFFCCF80910C0136C08091F201D2
+:1014D0008132D9F58091F6019091F701892BA9F518
+:1014E0008091E800877F8093E8000E94960C8091AD
+:1014F000F40180930C010C9483148091F2018132E9
+:1015000021F58091E800877F8093E8000E94960C87
+:101510008091F50180936F0108958091F201813AE5
+:10152000A1F48091E800877F8093E8008091E80033
+:1015300080FFFCCF80916F018093F1008091E800E3
+:101540008E778093E8000C94960C089584B7877F7B
+:1015500084BF88E10FB6F894809360001092600019
+:101560000FBE90E080E80FB6F894809361009093EE
+:1015700061000FBE0E9439100E94E70C0E94440DCA
+:101580008091E20084608093E20078940E94CA0F08
+:101590000E943B1082E091E00E94E50F0E94192218
+:1015A0008091F101853069F40E94531B8091EF0115
+:1015B0008823B1F30E947E1B882391F30E943C0B89
+:1015C000EFCF0E944110ECCF292F33272330310574
+:1015D000C9F064F42130310581F02230310509F081
+:1015E00043C08DE690E02AE333E042C0213231056A
+:1015F000F1F02232310541F137C082E190E027EA73
+:1016000033E036C099278130910541F08230910551
+:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4
+:1016200002C0E6E0F3E0849190E09F0121C06430C5
+:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5
+:10164000318189E090E014C0643070F470E0FB01F7
+:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47
+:10166000FE4F808190E004C080E090E020E030E018
+:10167000FA0131832083089580E189BD82E189BD2B
+:1016800009B400FEFDCF8091D8008F7D8093D800F3
+:101690008091E00082608093E0008091E00081FD15
+:1016A000FCCF0895CF92DF92EF92FF920F931F939A
+:1016B000CF93DF93EC018B016A010E94B50C81117D
+:1016C00033C0C114D10439F0F60180819181081B27
+:1016D000190BC80FD91FE12CF12C0115110519F1B7
+:1016E0008091E80085FD16C08091E8008E77809398
+:1016F000E800C114D10449F0F60180819181E80E1F
+:10170000F91EF182E08285E00FC00E94B50C8823AB
+:1017100021F30AC089918093F10001501109FFEF74
+:10172000EF1AFF0ADACF80E0DF91CF911F910F917E
+:10173000FF90EF90DF90CF9008952091F8013091C5
+:10174000F9012617370748F06115710539F4209122
+:10175000E8002E772093E80001C0B90140E0611550
+:101760007105A9F12091F101222309F443C025302C
+:1017700009F442C02091E80023FD40C02091E80018
+:1017800022FD32C02091E80020FFE9CF4091F30014
+:101790002091F20030E0342BFC01CF01611571057E
+:1017A00059F02830310540F481918093F100615067
+:1017B00071092F5F3F4FF1CF41E02830310509F02B
+:1017C00040E02091E8002E772093E800C8CF411137
+:1017D000C9CF0AC08091F101882361F0853061F0A2
+:1017E0008091E80083FD0AC08091E80082FFF2CF7B
+:1017F00080E0089582E0089583E0089581E00895EF
+:101800002091F8013091F9012617370748F061154A
+:10181000710539F42091E8002E772093E80001C08B
+:10182000B901FC0120E06115710591F18091F10190
+:10183000882309F440C0853009F43FC08091E80056
+:1018400083FD3DC08091E80082FD2FC08091E800BB
+:1018500080FFE9CF2091F3008091F20090E0922B7D
+:101860006115710559F08830910540F42491209359
+:10187000F1003196615071090196F2CF21E008978D
+:1018800009F020E08091E8008E778093E800CBCFCC
+:101890002111CCCF0AC08091F101882361F08530FD
+:1018A00061F08091E80083FD0AC08091E80082FF2A
+:1018B000F2CF80E0089582E0089583E0089581E00A
+:1018C0000895982F973058F59093E900981739F0BC
+:1018D0007091EC002091ED005091F00003C0242F96
+:1018E000762F50E021FF19C03091EB003E7F3093FE
+:1018F000EB003091ED003D7F3093ED003091EB0037
+:1019000031603093EB007093EC002093ED00509326
+:10191000F0002091EE0027FF07C09F5FD3CF8F70AC
+:101920008093E90081E0089580E008958091F201BC
+:1019300087FF11C08091E80082FD05C08091F10110
+:101940008111F8CF11C08091E8008B770BC0809196
+:10195000F101882349F08091E80080FFF8CF809161
+:10196000E8008E778093E80008952091E40030919C
+:10197000E50095E64091EC00842F817040FF22C085
+:101980008091E80080FD1CC08091F101882391F0D6
+:10199000853091F08091EB0085FD10C04091E4000E
+:1019A0005091E5004217530729F39A01915011F71E
+:1019B00084E0089582E0089583E0089581E0089529
+:1019C00080E008954091E80042FFDECF08950E9434
+:1019D000550D0E945D0DE0EEF0E080818160808316
+:1019E000E8EDF0E080818F77808319BCA7EDB0E04F
+:1019F0008C918E7F8C9380818F7E80831092F001FA
+:101A000008950F931F93CF93DF930E94550D0E946B
+:101A10005D0DC8EDD0E088818F77888388818068EC
+:101A2000888388818F7D888319BC1092F101109280
+:101A3000ED011092EF011092EE0100EE10E0F801BE
+:101A400080818B7F808388818160888342E060E031
+:101A500080E00E94610CE1EEF0E080818E7F808367
+:101A6000E2EEF0E080818160808380818860808305
+:101A7000F80180818E7F8083888180618883DF91F7
+:101A8000CF911F910F910895E8EDF0E080818F7E56
+:101A90008083E7EDF0E080818160808384E082BF15
+:101AA00081E08093F0010C94010DE8EDF0E080817D
+:101AB0008E7F80831092E20008951092DA001092D7
+:101AC000E10008951F920F920FB60F9211242F93E9
+:101AD0003F934F935F936F937F938F939F93AF93B6
+:101AE000BF93EF93FF938091E10082FF0BC0809141
+:101AF000E20082FF07C08091E1008B7F8093E100CC
+:101B00000E94C90F8091DA0080FF1FC08091D80029
+:101B100080FF1BC08091DA008E7F8093DA00809175
+:101B2000D90080FF0DC080E189BD82E189BD09B483
+:101B300000FEFDCF81E08093F1010E94C40905C041
+:101B400019BC1092F1010E94D2098091E10080FF3E
+:101B500019C08091E20080FF15C08091E2008E7F65
+:101B60008093E2008091E20080618093E2008091A6
+:101B7000D80080628093D80019BC85E08093F10181
+:101B80000E94D6098091E10084FF30C08091E2007C
+:101B900084FF2CC080E189BD82E189BD09B400FECB
+:101BA000FDCF8091D8008F7D8093D8008091E10097
+:101BB0008F7E8093E1008091E2008F7E8093E2002F
+:101BC0008091E20081608093E2008091ED018823A2
+:101BD00011F084E007C08091E30087FD02C081E03E
+:101BE00001C083E08093F1010E94D8098091E10057
+:101BF00083FF29C08091E20083FF25C08091E1002E
+:101C0000877F8093E10082E08093F1011092ED01E3
+:101C10008091E1008E7F8093E1008091E2008E7FD1
+:101C20008093E2008091E20080618093E20042E0D4
+:101C300060E080E00E94610C8091F00088608093F9
+:101C4000F0000E94D509FF91EF91BF91AF919F9154
+:101C50008F917F916F915F914F913F912F910F9055
+:101C60000FBE0F901F9018951F920F920FB60F92F4
+:101C700011242F933F934F935F936F937F938F9391
+:101C80009F93AF93BF93CF93DF93EF93FF93C09155
+:101C9000E900CF708091EC00D82FD17080FDD0E8A2
+:101CA0001092E9008091F000877F8093F000789493
+:101CB0000E94780E1092E9008091F0008860809375
+:101CC000F000CD2BCF70C093E900FF91EF91DF9131
+:101CD000CF91BF91AF919F918F917F916F915F91C4
+:101CE0004F913F912F910F900FBE0F901F9018951D
+:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3
+:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115
+:101D1000F10091938E13FBCF0E94F4098091E800AB
+:101D200083FF1FC18091F2019091F301492F50E090
+:101D30004A30510508F015C1FA01EA5AFF4F0C94D8
+:101D4000B323803881F0823809F00BC18091F6010D
+:101D50008F708093E9008091EB0085FB882780F9E4
+:101D60001092E90006C08091EE019091EF0191116F
+:101D700082609091E800977F9093E8008093F10053
+:101D80001092F100C8C0282F2D7F09F0EAC08823E7
+:101D900019F0823061F0E5C08091F401813009F0E2
+:101DA000E0C0933009F080E08093EF012BC0809178
+:101DB000F401811127C08091F6018F7009F4D1C020
+:101DC0008093E9002091EB0020FF1CC0933021F4A8
+:101DD0008091EB00806214C09091EB009061909331
+:101DE000EB0021E030E0A90102C0440F551F8A95A5
+:101DF000E2F74093EA001092EA008091EB008860DD
+:101E00008093EB001092E9008091E800877F86C004
+:101E10008111A7C01091F4011F778091E3008078B1
+:101E2000812B8093E3008091E800877F8093E80016
+:101E30000E94960C8091E80080FFFCCF8091E30027
+:101E400080688093E300111102C082E001C083E04A
+:101E50008093F10186C08058823008F082C0809162
+:101E6000F4019091F5018C3D53E0950779F583E0FD
+:101E70008A838AE289834FB7F894DE01139620E0C3
+:101E80003EE051E2E32FF0E050935700E49120FF51
+:101E900003C0E295EF703F5FEF708E2F90E0EA3065
+:101EA00010F0C79601C0C0968D939D932F5F24318B
+:101EB00049F74FBF8091E800877F8093E8006AE28E
+:101EC00070E0CE0101960E949D0B14C0AE014F5FE1
+:101ED0005F4F6091F6010E94E40ABC01009709F48B
+:101EE00040C09091E800977F9093E80089819A81A3
+:101EF0000E94000C8091E8008B778093E80031C04D
+:101F0000803879F58091E800877F8093E8008091A0
+:101F1000ED018093F1008091E8008E778093E800D6
+:101F20000E94960C1EC081111CC09091F401923049
+:101F3000C0F48091E800877F8093E8009093ED01E2
+:101F40000E94960C8091ED01811106C08091E30002
+:101F500087FD02C081E001C084E08093F1010E940E
+:101F6000E0098091E80083FF0AC08091E800877F44
+:101F70008093E8008091EB0080628093EB00AA964A
+:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A
+:101F900008950895CF938091F1018823A1F0C09115
+:101FA000E900CF709091EC00892F817090FD80E85E
+:101FB000C82B1092E9008091E80083FD0E94780E02
+:101FC000CF70C093E900CF910895909375018093ED
+:101FD00074010895E0917401F0917501309721F03A
+:101FE0000190F081E02D099480E00895E091740162
+:101FF000F0917501309721F00280F381E02D099472
+:102000000895E0917401F0917501309721F00480FA
+:10201000F581E02D099408952091720130917301AA
+:102020008217930771F09093730180937201E0918E
+:102030007401F0917501309721F00680F781E02D51
+:1020400009940895209170013091710182179307CE
+:1020500071F09093710180937001E0917401F0919F
+:102060007501309721F00084F185E02D09940895E1
+:1020700008950C9438100E94921B0E9433030C9414
+:10208000541C9F92AF92BF92CF92DF92EF92FF9239
+:102090000F931F93CF93DF9300D000D000D0CDB724
+:1020A000DEB70E944B030DE010E0AA24A394B12CEC
+:1020B000902E802F0E943904980129583E4F6901C3
+:1020C000F901F080F826A1F40150110988F78FEF8B
+:1020D00089838A831B820E949B1B8160782F9D834A
+:1020E0008C8349815A816B818D810E94D8102FC0C9
+:1020F0009091DA0191FF04C08E830E943F048E818B
+:1021000025E030E0A501022E01C0440F0A94EAF751
+:10211000E42E4F21C1F029839A828E2191E009F4A7
+:1021200090E09B830E949B1B8160782F9D838C8312
+:1021300049815A816B818D810E94D810F60180817E
+:10214000E826E08204C021503109E0F6BDCF0E94AC
+:102150003B1F109176010E94EA0F1817B9F00E94F8
+:10216000EA0F8093760126960FB6F894DEBF0FBE75
+:10217000CDBFDF91CF911F910F91FF90EF90DF9036
+:10218000CF90BF90AF909F900C94E30826960FB627
+:10219000F894DEBF0FBECDBFDF91CF911F910F919D
+:1021A000FF90EF90DF90CF90BF90AF909F900895F9
+:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82
+:1021C0000FBECDBF4F83588769877A878B87DE0123
+:1021D000119686E0FD0111928A95E9F785E0FE01EE
+:1021E000379601900D928A95E1F749815A816B816A
+:1021F0007C818D819E810E9421172B960FB6F894C9
+:10220000DEBF0FBECDBFDF91CF910895CF9388235E
+:1022100009F4C2C0C82F823859F40E94EA0F81FD28
+:10222000BBC089E30E94FB190E94C81A89E30CC055
+:10223000833879F40E94EA0F80FDAEC083E50E94E6
+:10224000FB190E94C81A83E50E943D1ACF910C9495
+:10225000C81A843859F40E94EA0F82FD9DC087E4B1
+:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6
+:10227000813A48F48C2F0E947E2181118DC08C2FD1
+:102280000E94FB19E3CF80E28C0F883048F4C770BE
+:1022900081E001C0880FCA95EAF70E94811AD6CF63
+:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB
+:1022B00083E890E005C081E890E002C082E890E009
+:1022C000CF910C940C1088E58C0F833108F064C01A
+:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118
+:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186
+:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106
+:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173
+:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB
+:1023200038C082EE90E035C089EE90E032C08AEE8F
+:1023300090E02FC085EB90E02CC086EB90E029C0A8
+:1023400087EB90E026C08CEC90E023C08DEC90E011
+:1023500020C083E891E01DC08AE891E01AC082E9BC
+:1023600091E017C084E991E014C081E292E011C0CD
+:1023700083E292E00EC084E292E00BC085E292E03C
+:1023800008C086E292E005C087E292E002C08AE2DD
+:1023900092E0CF910C942210CF910895882309F4F4
+:1023A0004BC0823859F40E94EA0F81FF45C089E38F
+:1023B0000E94FB190E94C81A89E30CC0833871F48B
+:1023C0000E94EA0F80FF38C083E50E94FB190E943B
+:1023D000C81A83E50E943D1A0C94C81A843859F42F
+:1023E0000E94EA0F82FF28C087E40E94FB190E9426
+:1023F000C81A87E4EFCF9CEF980F913A58F390E218
+:10240000980F983050F4877091E001C0990F8A9529
+:10241000EAF7892F0E94871ADFCF9BE5980F933048
+:1024200020F480E090E00C940C10885A833120F462
+:1024300080E090E00C9422100895882321F00E94FF
+:10244000811A0C94C81A0895882321F00E94871AD3
+:102450000C94C81A08957F928F929F92AF92BF9268
+:10246000CF92DF92EF92FF920F931F93CF93DF9360
+:102470001F92CDB7DEB77C01C62E772EFC010581F9
+:1024800002950F70128111110E949E1A0E94F41978
+:10249000882379F0112369F080E28C0D883048F0B0
+:1024A00082E00E94DD190E94F41991E0D82ED9260D
+:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C
+:1024C0000C94B323872D807F072D0F70882311F084
+:1024D0000295007F112389F0002309F490C180E266
+:1024E0008C0D883020F4802F0E94811A03C0802F29
+:1024F0000E94911A0E94C81A82C18C2D0E94CE118E
+:10250000002309F495C180E28C0D883020F4802FDF
+:102510000E94871A03C0802F0E94971A0E94C81A2F
+:1025200087C1972D907F872D8F70903211F0829503
+:10253000807FCC2021F0F1E0CF16B1F01EC0112336
+:1025400049F0002309F414C1013009F011C10E94BF
+:10255000B11A6EC1002319F0013009F469C18983F1
+:102560000E94B41A89810AC1112321F0023008F0B7
+:102570005FC1FEC001115CC101C1112321F0002324
+:1025800009F4F6C03CC1002309F4F8C03EC1872D10
+:1025900086958695837090E0009719F0019761F019
+:1025A00047C1112321F08C2D972D937002C080E03C
+:1025B00090E00E940C103CC1112321F08C2D972D2E
+:1025C000937002C080E090E00E94221031C18C2DF7
+:1025D000112319F00E94431E02C00E94AB1E0E94EC
+:1025E000301F26C1872D837009F052C0111120C100
+:1025F0008C2D829586958770880F880F9C2D9F70F3
+:10260000892E912CA12CB12C082E04C0880C991C69
+:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041
+:1026200020E030E0B901A80104C0440F551F661F27
+:10263000771F8A95D2F7CB01BA0160957095809586
+:10264000909503C060E070E0CB01272D269526957C
+:10265000237030E02230310569F02330310589F0F4
+:10266000682979298A299B292130310571F00E9436
+:102670006918DEC0682979298A299B290E94851852
+:10268000D7C00E946918C501B4010E944D18D0C07E
+:10269000112319F0872D817001C08695882309F4D4
+:1026A000C7C08C2D829586958770880F880F9C2DCA
+:1026B0009F70892E912CA12CB12C082E04C0880C5F
+:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC
+:1026D00010E020E030E0B901A80104C0440F551F0C
+:1026E000661F771F8A95D2F7CB01BA016095709566
+:1026F0008095909503C060E070E0CB01272D269572
+:1027000026952370422F50E04230510569F0433046
+:10271000510589F0682979298A299B294130510579
+:1027200071F00E94431984C0682979298A299B295C
+:102730000E945F197DC00E944319C501B4010E9427
+:10274000271976C08C2D90E0FC01E05EF109E5319F
+:10275000F10508F050C0E059FF4F0C94B3230C2D45
+:102760000F70872D8F71112331F00E94C018802FB8
+:102770000E941D125DC00E94E118802F0E94241249
+:1027800057C0112339F0011153C0872D8F710E945A
+:1027900006194EC0023008F04BC0F7CF112339F0B4
+:1027A000872D8F710E94C01843C01123C9F3872D54
+:1027B0008F710E94E1183CC0112329F0872D8F7181
+:1027C0000E94AB1835C00E94A11832C0112351F0ED
+:1027D000172D1F71812F0E94C01863E0812F0E9466
+:1027E000D41926C081E00E94DD19023008F182E090
+:1027F0000E94DD191DC0112331F0002389F28C2DB8
+:102800000E94061115C0002391F28C2D0E94CE115A
+:102810000FC0472D4F706C2DC7010E9415050E94F7
+:10282000C51706C0472D4F706C2DC7010E94F205D9
+:10283000DD20F9F00E94D01980FD1BC0F701128243
+:102840000E94CA190E94C018C7010E9448140E9421
+:10285000CA190F90DF91CF911F910F91FF90EF90C8
+:10286000DF90CF90BF90AF909F908F907F900C940F
+:10287000E1180F90DF91CF911F910F91FF90EF9092
+:10288000DF90CF90BF90AF909F908F907F900895F2
+:102890000F931F93CF93DF93EC01888199812B8154
+:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B
+:1028B0000E944A05882371F0688179818A810E948B
+:1028C000C6198C010E947B190E944218B801CE01E2
+:1028D0000E942B12DF91CF911F910F9108950E94BA
+:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471
+:1028F000E11F0E94301F80E090E00E940C1080E0F9
+:1029000090E00C9422100E948E1A0C946F140E9476
+:10291000BB19292F22952F7030E02C3031054CF453
+:102920002A3031056CF42250310922303105A8F4E7
+:1029300007C02C30310569F02F30310551F00DC042
+:10294000803F69F018F4803E40F409C0843F29F4C8
+:1029500006C093FB882780F9089580E0089581E000
+:102960000895CF93DF9300D000D01F92CDB7DEB78C
+:102970000F900F900F900F900F90DF91CF910895CF
+:10298000CF93DF9300D000D000D0CDB7DEB726962E
+:102990000FB6F894DEBF0FBECDBFDF91CF91089583
+:1029A0001F93CF93DF93C091850116E0809186013C
+:1029B000C81799F0D0E01C9FF0011D9FF00D112465
+:1029C000E957FE4F408151816281738184819581F5
+:1029D0000E94C0142196C770E9CFDF91CF911F915B
+:1029E00008954091B7015091B8016091B90170917B
+:1029F000BA018091BB019091BC010C94C0148091EC
+:102A0000BC0182958F7009F054C08091B901882370
+:102A100009F44FC080918501A09186016091B701B2
+:102A20007091B8014091BA015091BB01B6E08A178C
+:102A300009F43FC090E041155105C1F17F3F11F409
+:102A40006F3FA1F1B89FF001B99FF00D1124E95734
+:102A5000FE4F218172132AC02081621327C0228178
+:102A6000211124C0238134812417350710F421500B
+:102A70003109241B350B283C3105C0F42091BC01E1
+:102A80002F7020612093BC0126E0289FF001299F30
+:102A9000F00D1124E457FE4F80818F708061808398
+:102AA00087EB91E00E9448140C94D0140196877033
+:102AB000BECF0895CF92DF92EF92FF920F931F93B4
+:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32
+:102AD0000FBECDBF8C0185E0F801DE011D9601908F
+:102AE0000D928A95E1F7D8014C9111965C9111975E
+:102AF00012966C9112971396CD90DC9014973091AA
+:102B0000B7017091B8018091BA019091BB01009713
+:102B100009F46BC17F3F19F43F3F09F466C1E090AF
+:102B2000B901EE2009F4C0C02091BC01C816D90635
+:102B300028F0F601E81BF90BCF0104C080959095B1
+:102B40008C0D9D1DFF24F394883C910578F0F12CA9
+:102B5000207F09F0C6C07C2DD98AC88A89890E9445
+:102B6000B11487EB91E00E944814B1C0822F807F9E
+:102B700009F046C0751314C0341312C0611110C09F
+:102B80002F7020612093BC010E94F11487EB91E02B
+:102B90000E9448148091BC01D80115968C932EC0D8
+:102BA000CD2819F15F3F11F44F3FF9F0F62E611176
+:102BB0001CC0809185012091860136E0821709F4BE
+:102BC0005AC090E0389FF001399FF00D1124E95769
+:102BD000FE4F7181571306C07081471303C0728185
+:102BE000711103C001968770E9CFF62E662309F4B0
+:102BF00018C18091BC0181608093BC01F12C11C18E
+:102C0000751308C0341306C0611104C08091BC0163
+:102C1000D801C3C04D875E878D859E856A8B0E94D3
+:102C200087146A898823E1F16623D1F12091BC01E0
+:102C3000822F82958F7090E0029774F08091B70197
+:102C40009091B80198878F831986DB86CA862C8776
+:102C5000CE0107960E94481486E0F801A7EBB1E088
+:102C600001900D928A95E1F70E94FF140E94F114E1
+:102C7000FF24F394D6C04D875E878D859E850E9484
+:102C8000BB19292F22952F7030E0223031050CF02E
+:102C9000BCC09F7009F0B6C0805E883008F4C1C027
+:102CA000C8010E944814E4CFC816D90608F453C0DE
+:102CB000F601E81BF90BCF01883C910508F450C0E0
+:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E
+:102CD000F1E086E0DF011D928A95E9F70E94F11488
+:102CE000A0C0751314C0341312C0611110C08091BC
+:102CF000BC01F8018583C8010E94481486E0E7EB17
+:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C
+:102D10005E878D859E856A8B0E9487146A898823C9
+:102D200009F4BECF662309F4BBCF2091BC01822FEA
+:102D300082958F7090E002970CF48ECF8091B7014E
+:102D40009091B8019A8389831B82DD82CC822E8385
+:102D5000CE0101967FCF809590958C0D9D1DACCFB7
+:102D6000F62E662309F49CCF75132EC034132CC0A5
+:102D70002091BC0120FD1FC0822F82958F70D9F059
+:102D8000D80115962C9315978F3049F08F5F982FA7
+:102D90009295907F822F8F70892B15968C93C80106
+:102DA0000E94481486E0F801A7EBB1E001900D9273
+:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7
+:102DC0000D928A95E1F72DC04D875E878D859E8592
+:102DD0000E948714811140CF8091BC018160809353
+:102DE000BC01C8010E9448141CC0662309F458CFD6
+:102DF0004D875E878D859E850E948714882309F400
+:102E00004FCF2ACF811148CF0CC0243031050CF0B0
+:102E100047CF9F7009F440CFF8019581907F09F06A
+:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D
+:102E3000DF91CF911F910F91FF90EF90DF90CF9096
+:102E400008951F93CF93DF93CDB7DEB72C970FB6BE
+:102E5000F894DEBF0FBECDBF4F83588769877A874E
+:102E60008B879C87CE0107960E945A15882369F0AC
+:102E70008F8198852A853B85232BF1F19F3F09F0AF
+:102E800063C08F3F09F060C037C086E0FE0137960F
+:102E9000DE01119601900D928A95E1F76F81788598
+:102EA000EA85FB85309741F17F3F11F46F3F21F1B7
+:102EB0002091860130E0C9010196877099274091E1
+:102EC000850150E08417950709F447C069837A8328
+:102ED000FD83EC8396E0929FD001939FB00D112467
+:102EE000A957BE4FFE01319601900D929A95E1F7D8
+:102EF000809386010E94D01416E080918501909104
+:102F000086018917C1F1189FC001112489579E4F6E
+:102F10000E945A15882379F1E09185011E9FF001E6
+:102F20001124E957FE4F4081518162817381848170
+:102F300095810E94C0148091850190E00196877070
+:102F4000992780938501D9CF4F81588569857A85E6
+:102F50008B859C850E94C014CFCF0E948314109251
+:102F6000860110928501E7EBF1E086E0DF011D921A
+:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45
+:102F8000CDBFDF91CF911F910895EF92FF920F93E4
+:102F90001F93CF93DF938C01009709F46CC0F12C41
+:102FA000EE24E394E8012196F8018491843740F4FB
+:102FB000843008F051C0813081F0823019F15BC05B
+:102FC000853709F444C0A8F19CE7980F903708F0C2
+:102FD00052C08F770E94CE1141C00E5F1F4FFE017D
+:102FE000C49180E28C0F883048F4C7708E2D01C0E8
+:102FF000880FCA95EAF70E94A11A14C08C2F0E946C
+:1030000006112DC00E5F1F4FFE01C49180E28C0F90
+:10301000883058F4C7708E2D01C0880FCA95EAF722
+:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3
+:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3
+:103040009FE00197F1F700C00000C150F6CF0E5F7E
+:103050001F4FFE01F49003C00E9406118E018F2DB8
+:10306000882309F49FCFEFE9FFE03197F1F700C023
+:1030700000008150F5CFDF91CF911F910F91FF900C
+:10308000EF90089508956093C1017093C2018093F9
+:10309000C3019093C4010C946F140F931F9300917C
+:1030A000C1011091C2012091C3013091C401DC0122
+:1030B000CB01802B912BA22BB32B8093C10190933A
+:1030C000C201A093C301B093C4011F910F910C944E
+:1030D0006F140F931F930091C1011091C2012091B1
+:1030E000C3013091C401DC01CB0180239123A223D1
+:1030F000B3238093C1019093C201A093C301B09305
+:10310000C4011F910F910C946F140F931F930091A2
+:10311000C1011091C2012091C3013091C401DC01B1
+:10312000CB0180279127A227B3278093C1019093D9
+:10313000C201A093C301B093C4011F910F910C94DD
+:103140006F141092BD011092BE011092BF01109237
+:10315000C0010C946F1441E050E060E070E004C0E6
+:10316000440F551F661F771F8A95D2F74093BD0104
+:103170005093BE016093BF017093C0010C946F1413
+:1031800041E050E060E070E004C0440F551F661F4E
+:10319000771F8A95D2F78091BD019091BE01A091D1
+:1031A000BF01B091C001482B592B6A2B7B2B409358
+:1031B000BD015093BE016093BF017093C0010C9498
+:1031C0006F1441E050E060E070E004C0440F551F10
+:1031D000661F771F8A95D2F7409550956095709538
+:1031E0008091BD019091BE01A091BF01B091C0013D
+:1031F000482359236A237B234093BD015093BE018A
+:103200006093BF017093C0010C946F1441E050E0D3
+:1032100060E070E004C0440F551F661F771F8A9559
+:10322000D2F78091BD019091BE01A091BF01B091F4
+:10323000C001482759276A277B274093BD01509337
+:10324000BE016093BF017093C0010C946F140F9383
+:103250001F930091BD011091BE012091BF013091DB
+:10326000C001DC01CB01802B912BA22BB32B8093CF
+:10327000BD019093BE01A093BF01B093C0011F9107
+:103280000F910C946F140F931F930091BD01109137
+:10329000BE012091BF013091C001DC01CB01802330
+:1032A0009123A223B3238093BD019093BE01A093E9
+:1032B000BF01B093C0011F910F910C946F140F9335
+:1032C0001F930091BD011091BE012091BF0130916B
+:1032D000C001DC01CB0180279127A227B32780936F
+:1032E000BD019093BE01A093BF01B093C0011F9197
+:1032F0000F910C946F140895CF92DF92EF92FF928A
+:103300000F931F93CF93DF938C01C090C101D09096
+:10331000C201E090C301F090C4018091BD01909181
+:10332000BE01A091BF01B091C001C82AD92AEA2AE2
+:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520
+:10334000A795979587950A94D2F780FF06C0B80194
+:103350008C2F0E944808019721F4219760F780E0A4
+:1033600001C08C2FDF91CF911F910F91FF90EF90B3
+:10337000DF90CF900895CF93DF93EC010E947C19EA
+:10338000BE010E944808DF91CF910895CB010E94B1
+:10339000BB1908958091C5018595859585950895FA
+:1033A0008091C5018770089598E0899F900111244C
+:1033B000262B2093C5010C94C0182091C50180953F
+:1033C00082238093C501982F977069F430E0482FCD
+:1033D000552747FD50952417350729F08595859584
+:1033E00085950C94E11808959091C501977081E03E
+:1033F00009F480E0089590910C01992321F09091B7
+:103400000D01911109C020910E0130910F01F901B8
+:1034100032969FEF40E01FC0982F9695969596950F
+:103420009F3050F5E0910E01F0910F01E90FF11D71
+:10343000877021E030E0A90102C0440F551F8A9532
+:10344000E2F7CA019181892B818308959F3F39F06A
+:103450004F5F4E3041F051915813F8CF0DC05111CC
+:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08
+:1034700097FDFA9582830895089590910C01992300
+:1034800021F090910D01911109C020910E01309110
+:103490000F01F9013296205F3F4F1FC0982F96957C
+:1034A000969596959F30F0F4E0910E01F0910F0102
+:1034B000E90FF11D877021E030E0A90102C0440F3F
+:1034C000551F8A95E2F7CA018095918189238183EE
+:1034D00008953196E217F30729F090819813F9CFF8
+:1034E0001082F7CF089581E090E0E0910E01F09115
+:1034F0000F01E80FF91F1082019680319105A9F79D
+:1035000008959091D901892B8093D90108958095D0
+:103510009091D90189238093D90108951092D901FE
+:1035200008959091D801892B8093D80108958095B2
+:103530009091D80189238093D80108951092D801E1
+:1035400008959091D701892B8093D7010895809594
+:103550009091D70189238093D70108951092D701C4
+:1035600008958093C60108951092C6010895809130
+:103570000E0190910F01FC0131969C01205F3F4F9D
+:1035800080E0919191118F5FE217F307D1F70895D1
+:10359000E0910E01F0910F018091D9018083E091BB
+:1035A0000E01F0910F0190818091D801892B8083C9
+:1035B000E0910E01F0910F0190818091D701892B4C
+:1035C00080838091C601882361F0E0910E01F09123
+:1035D0000F019081892B80830E94B71A811110926C
+:1035E000C60180910E0190910F010C94F60F20E01E
+:1035F000009739F0AC0141505109842395232F5F86
+:10360000F7CF822F0895CF92DF92EF92FF926C0155
+:10361000EE24FF24C114D104E104F10421F0C70118
+:10362000B60120E101C020E0C72ED82EE92EFF24EC
+:10363000C114D104E104F10419F0285FC701B601F7
+:103640006B017C0154E0F694E794D794C7945A95A3
+:10365000D1F7C114D104E104F10419F02C5FC701C2
+:10366000B6016B017C0142E0F694E794D794C794CD
+:103670004A95D1F7C114D104E104F10419F02E5F89
+:10368000C701B601DC01CB01B695A7959795879543
+:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5
+:1036A000DF90CF9008958091F101843021F1109244
+:1036B000DB0120E488E190E00FB6F894A8958093B0
+:1036C00060000FBE2093600080E00E94E30883B793
+:1036D000817F846083BF83B7816083BF789488953E
+:1036E00083B78E7F83BF88E10FB6F8948093600024
+:1036F000109260000FBE0895089508950E947C1BEB
+:103700000E944B030E947D1B0E94400491E08111A6
+:1037100001C090E0892F08950E9483140E94EA0F4F
+:103720000C94E30882E084BD93E095BD9AEF97BDC9
+:1037300080936E0008952FB7F8948091DC019091EA
+:10374000DD01A091DE01B091DF012FBF0895CF927E
+:10375000DF92EF92FF920F931F932FB7F89440914F
+:10376000DC015091DD016091DE017091DF012FBF1E
+:103770006A017B01EE24FF248C0120E030E0C016BA
+:10378000D106E206F30610F4415051099A01281BB4
+:10379000390BC9011F910F91FF90EF90DF90CF90EF
+:1037A00008951F920F920FB60F9211248F939F933B
+:1037B000AF93BF938091DC019091DD01A091DE0178
+:1037C000B091DF010196A11DB11D8093DC019093A2
+:1037D000DD01A093DE01B093DF01BF91AF919F9116
+:1037E0008F910F900FBE0F901F9018950E94E70CBD
+:1037F000F8942FEF87EA91E6215080409040E1F75E
+:1038000000C0000087E090EBDC018093FB01909307
+:10381000FC01A093FD01B093FE019CE088E10FB68E
+:10382000F894A895809360000FBE90936000FFCF3E
+:10383000EF92FF920F931F93CF93DF93D82FCDE09A
+:103840008C2F0E94390405E010E0E82EF12CC7010E
+:10385000002E02C0959587950A94E2F780FF09C073
+:10386000602F7C2F80E00E94F305D81302C081E016
+:1038700006C00150110958F7C15010F780E0DF91E0
+:10388000CF911F910F91FF90EF900895CF93C82F84
+:103890008CE20E94181C882321F08C2FCF910C946D
+:1038A000181C80E0CF910895CF930E949B1D811139
+:1038B00002C00E94811DC5E6C15049F00E944B0321
+:1038C0008FE39CE90197F1F700C00000F5CF89E292
+:1038D0000E94461C811113C18AE20E94461C81117C
+:1038E0000E94811D85E00E94461C81110E94F61BEA
+:1038F0000E94A61D8093DA0187E00E94461C88235F
+:10390000A9F18BE10E94461C882351F08091DA01D5
+:1039100081FB222720F991E0922790FB81F90EC0CC
+:103920008EE00E94461C882361F08091DA0182FBC0
+:10393000222720F991E0922790FB82F98093DA0107
+:1039400015C080E10E94461C9091DA01882341F065
+:1039500093FB222720F981E0822780FB93F904C0A2
+:10396000892F809580FB90F99093DA018091DA019C
+:103970000E94AA1D0E94B81D8093FA0180EE0E9449
+:10398000461C882341F08091FA01982F909590FB76
+:1039900080F98093FA0189E30E94461C882359F03C
+:1039A0008091FA0181FB222720F991E0922790FB78
+:1039B00081F98093FA0182EE0E94461C882359F017
+:1039C0008091FA0182FB222720F991E0922790FB57
+:1039D00082F98093FA0186EE0E94461C882359F0F2
+:1039E0008091FA0183FB222720F991E0922790FB36
+:1039F00083F98093FA0183EE0E94461C882359F0D4
+:103A00008091FA0184FB222720F991E0922790FB14
+:103A100084F98093FA0185E30E94461C882359F0BB
+:103A20008091FA0185FB222720F991E0922790FBF3
+:103A300085F98093FA0181E30E94461C882359F09E
+:103A40008091FA0186FB222720F991E0922790FBD2
+:103A500086F98093FA0181E10E94461C882359F07F
+:103A60008091FA0187FB222720F991E0922790FBB1
+:103A700087F98093FA018091FA010E94BC1D809120
+:103A8000FA0187FB882780F980930D0187E20E9465
+:103A9000461CC82F8EE10E94461C8111C2608FE136
+:103AA0000E94461C8111C46080E20E94461C811164
+:103AB000C86081E20E94461C8111C06182E20E94BE
+:103AC000461C8111C06283E20E94461C8111C064C1
+:103AD00084E20E94461C882311F0C06802C0CC23F7
+:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4
+:103AF000682F70E080E090E0CF910C944318CF9154
+:103B000008956DEE7EEF80E090E00E94ED2360E08E
+:103B100082E090E00E94DB2360E083E090E00E947E
+:103B2000DB2360E084E090E00E94DB2360E085E03E
+:103B300090E00C94DB2380E090E00E94D52321E00C
+:103B40008D3E9E4F09F020E0822F089582E090E0A4
+:103B50000C94CD23682F82E090E00C94DB2383E06B
+:103B600090E00C94CD23682F83E090E00C94DB234D
+:103B700084E090E00C94CD23682F84E090E00C94D6
+:103B8000DB238091E20180FF0BC06091130185E08F
+:103B9000689FB001112475956795759567952BC041
+:103BA00081FF09C06091130185E0689FB001112475
+:103BB0007595679520C082FF07C06091130185E06D
+:103BC000689FB001112417C09091E3019923D1F0AF
+:103BD00060911201961788F72091130185E0289FC4
+:103BE00090011124929FA001939F500D112470E029
+:103BF000CA010E949F236038710540F46115710568
+:103C000039F002C065E070E0862F08958FE70895CF
+:103C100081E008958091E20180FF08C06091110168
+:103C200070E0759567957595679521C081FF06C011
+:103C30006091110170E07595679519C082FF04C00D
+:103C40006091110170E010C09091E3019923C1F0DF
+:103C5000609110019617A0F780911101899FC00112
+:103C6000112470E00E949F236038710528F46115CB
+:103C7000710521F0862F08958FE7089581E008955A
+:103C800061E070E0F4CF803F21F40E94C11D819576
+:103C900004C0813F29F40E94C11D8093E60108956C
+:103CA000823F21F40E94C11D819504C0833F29F405
+:103CB0000E94C11D8093E5010895893F19F40E9477
+:103CC0000A1E05C08A3F31F40E940A1E8195809326
+:103CD000E70108958B3F21F40E940A1E819504C0DC
+:103CE0008C3F29F40E940A1E8093E8010895843FC6
+:103CF00021F48091E401816017C0853F21F4809117
+:103D0000E401826011C0863F21F48091E401846067
+:103D10000BC0873F21F48091E401886005C0883F93
+:103D200031F48091E40180618093E40108958D3F36
+:103D300021F48091E20181600BC08E3F21F48091DB
+:103D4000E201826005C08F3F29F48091E201846026
+:103D50008093E2010895803F39F48091E60187FF66
+:103D60006CC01092E60169C0813F29F48091E601A0
+:103D70001816BCF362C09091E501823F29F497FFC9
+:103D80005CC01092E50159C0833F19F41916CCF3B9
+:103D900054C0893F41F48091E70118160CF04DC0E2
+:103DA0001092E7014AC08A3F29F48091E70187FF1A
+:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6
+:103DC0001092E8013AC08C3F29F48091E80118165E
+:103DD000BCF333C0843F21F48091E4018E7F17C08F
+:103DE000853F21F48091E4018D7F11C0863F21F44D
+:103DF0008091E4018B7F0BC0873F21F48091E40127
+:103E0000877F05C0883F31F48091E4018F7E8093E5
+:103E1000E40113C08D3F21F48091E2018E7F0BC03D
+:103E20008E3F21F48091E2018D7F05C08F3F29F400
+:103E30008091E2018B7F8093E2018091E501811105
+:103E40000EC08091E60181110AC08091E7018111C5
+:103E500006C08091E801811102C01092E30108952B
+:103E600084EE91E00E9401100E949B1B9093E1015F
+:103E70008093E00108951F93CF93DF938091E00139
+:103E80009091E1010E94A71BAC019091E30199235D
+:103E900021F02091140130E006C0209115018AE044
+:103EA000289F900111244217530708F486C080917F
+:103EB000E501C091E601D091E7011091E80181117F
+:103EC00007C0C11176C0D11174C0111172C075C084
+:103ED0009F3F19F09F5F9093E301181624F40E940E
+:103EE000C11D8093E5018091E50187FF05C00E9417
+:103EF000C11D81958093E5011C1624F40E94C11D0B
+:103F00008093E6018091E60187FF05C00E94C11DF4
+:103F100081958093E6016091E501662339F1C091B6
+:103F2000E601CC2319F1772767FD7095872F972F2E
+:103F30000E94B02223E333E343E35FE30E941423B0
+:103F40000E947D226093E5016C2F772767FD7095B5
+:103F5000872F972F0E94B02223E333E343E35FE3ED
+:103F60000E9414230E947D226093E6011D1624F412
+:103F70000E940A1E8093E7018091E70187FF05C038
+:103F80000E940A1E81958093E701111624F40E9475
+:103F90000A1E8093E8018091E80187FF05C00E9416
+:103FA0000A1E81958093E801DF91CF911F910C94B7
+:103FB000301F9F3F09F08ECF96CFDF91CF911F9199
+:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE
+:103FD0001092E3011092E2010895833081F128F4F8
+:103FE000813059F08230D1F00895853009F449C00C
+:103FF000B8F1863009F456C0089580911501262F36
+:1040000030E0280F311D2F3F310524F4680F6093F5
+:10401000150108958FEF8093150108958091140183
+:10402000262F30E0280F311D2F3F310524F4680F73
+:104030006093140108958FEF809314010895809187
+:104040001301262F30E0280F311D2F3F310524F4B6
+:10405000680F6093130108958FEF80931301089503
+:1040600080911201262F30E0280F311D2F3F31059E
+:1040700024F4680F6093120108958FEF809312016A
+:10408000089580911101262F30E0280F311D2F3F18
+:10409000310524F4680F6093110108958FEF809328
+:1040A0001101089580911001262F30E0280F311D55
+:1040B0002F3F310524F4680F6093100108958FEFAE
+:1040C000809310010895833011F128F4813049F074
+:1040D000823091F00895853081F120F18630C1F170
+:1040E000089580911501681720F4861B80931501AF
+:1040F000089510921501089580911401681720F415
+:10410000861B8093140108951092140108958091E4
+:104110001301681720F4861B8093130108951092F1
+:104120001301089580911201681720F4861B809373
+:1041300012010895109212010895809111016817DB
+:1041400020F4861B809311010895109211010895A7
+:1041500080911001681720F4861B80931001089548
+:104160001092100108950F931F938D3109F46BC0C5
+:1041700008F03FC08E3009F47FC0C0F4873009F4E6
+:1041800069C068F4863009F0B1C08091DA01817F9E
+:104190008E7F8093DA0181E08093EA01A8C08830A5
+:1041A00009F4A2C08B3009F49FC0A0C0863109F485
+:1041B0009BC078F4803109F472C0813109F096C057
+:1041C0000E94831490910D0181E0892780930D0155
+:1041D0008BC0893109F488C08B3109F087C0809188
+:1041E000DA0181FB222720F991E0922790FB81F9E7
+:1041F0004CC0853309F470C048F4873209F46CC0B0
+:1042000008F459C0893209F467C070C0833438F4A7
+:104210008A3308F04EC0883309F466C067C083341F
+:1042200009F45AC0883409F061C00E9483140FEF6A
+:1042300013ED20E3015010402040E1F700C00000E2
+:104240000E94F61B51C00E9437220E94EA0F0E9472
+:10425000E3084AC09091DA01892F8095817080FB34
+:1042600090F929F0966098609093DA0140C0997FA8
+:10427000977F9093DA0138C08091DA0182FB222780
+:1042800020F991E0922790FB82F98093DA0199233B
+:1042900059F18091DA0181608093DA0125C0809123
+:1042A000DA0183FB222720F991E0922790FB83F922
+:1042B000ECCF895301C08D5141E050E060E070E0E7
+:1042C0008A019B0104C0000F111F221F331F8A9512
+:1042D000D2F7C901B80104C061E070E080E090E06D
+:1042E0000E9443180E94831481E001C080E01F9166
+:1042F0000F91089580E0089580E00895CF93C82F2E
+:104300008091EA01813079F018F08230E9F187C0BC
+:10431000E0910E01F0910F018081813169F08232CC
+:1043200009F07FC009C0E0910E01F0910F0180817A
+:10433000813111F0823261F48C2F0E947A21811137
+:1043400004C08C2F0E94B3201DC081E090E01AC0F1
+:104350008C2F0E947C21811114C0C43179F048F463
+:10436000CB3079F0C03109F060C082E08093EA017F
+:1043700008C0C93219F0C83321F057C01092EA01C1
+:1043800054C081E0817053C0C93289F118F5C4313D
+:1043900071F1A8F4C73009F046C08AE08093150196
+:1043A00094E19093140193E0909313018093120190
+:1043B00088E08093110188E28093100134C0CE51CF
+:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB
+:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC
+:1043E00013C0C13579F0C235F1F461E00DC08091A0
+:1043F000E901882319F01092E90115C081E080934A
+:10440000EA0115C061E006C08091E9010E94ED1F3C
+:104410000AC06AE08091E9010E94632004C0109202
+:10442000EA0180E004C081E002C080E0ABCFCF9120
+:104430000895E1E8F0E08081886080838081816078
+:1044400080838FB7F89493E09093890090ED9093D8
+:1044500088008FBF0895EFE6F0E08081826080835E
+:104460000895EFE6F0E080818D7F80830895EFE688
+:10447000F0E0908182E08927808308951F920F9257
+:104480000FB60F9211242F933F934F935F936F9327
+:104490007F938F939F93AF93BF93EF93FF938091FD
+:1044A000EB019091EC0101969093EC018093EB016C
+:1044B000811103C082E00E94E308E091EC01E695DF
+:1044C000E695F0E0EC54FB4FE4918091EB018E1304
+:1044D00003C080E00E94E308FF91EF91BF91AF918C
+:1044E0009F918F917F916F915F914F913F912F910C
+:1044F0000F900FBE0F901F90189504D06894B111C3
+:104500008DC0089570D088F09F5790F0B92F9927EB
+:10451000B751A0F0D1F0660F771F881F991F1AF0CE
+:10452000BA95C9F712C0B13081F077D0B1E00895E3
+:1045300074C0672F782F8827B85F39F0B93FCCF364
+:10454000869577956795B395D9F73EF490958095C4
+:10455000709561957F4F8F4F9F4F0895E89409C0E4
+:1045600097FB3EF490958095709561957F4F8F4FA6
+:104570009F4F9923A9F0F92F96E9BB279395F695BC
+:10458000879577956795B795F111F8CFFAF4BB0F3A
+:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E
+:1045A000882311F096E911C0772321F09EE8872F28
+:1045B000762F05C0662371F096E8862F70E060E0E4
+:1045C0002AF09A95660F771F881FDAF7880F96955D
+:1045D000879597F9089557FD9058440F551F59F046
+:1045E0005F3F71F04795880F97FB991F61F09F3FE0
+:1045F00079F087950895121613061406551FF2CF09
+:104600004695F1DF08C0161617061806991FF1CF58
+:1046100086957105610508940895E894BB2766277F
+:104620007727CB0197F908950BD078C069D028F08F
+:104630006ED018F0952309F05AC05FC01124EECF58
+:10464000CADFA0F3959FD1F3950F50E0551F629FED
+:10465000F001729FBB27F00DB11D639FAA27F00DDB
+:10466000B11DAA1F649F6627B00DA11D661F829F02
+:104670002227B00DA11D621F739FB00DA11D621FE7
+:10468000839FA00D611D221F749F3327A00D611D04
+:10469000231F849F600D211D822F762F6A2F1124E6
+:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39
+:1046B000BB1F661F771F881F91505040A9F79E3F70
+:1046C000510570F014C0AACF5F3FECF3983EDCF3C5
+:1046D000869577956795B795F795E7959F5FC1F7AD
+:1046E000FE2B880F911D9695879597F9089597F958
+:1046F0009F6780E870E060E008959FEF80EC089588
+:1047000000240A94161617061806090608950024B0
+:104710000A9412161306140605060895092E03942A
+:10472000000C11F4882352F0BB0F40F4BF2B11F49E
+:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF
+:10474000072E16F4009407D077FD09D00E94B923F4
+:1047500007FC05D03EF4909581959F4F0895709584
+:1047600061957F4F0895EE0FFF1F0590F491E02DA6
+:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8
+:10478000B70710F0A61BB70B881F991F5A95A9F7FA
+:1047900080959095BC01CD010895F999FECF92BD09
+:1047A00081BDF89A992780B50895A8E1B0E042E06C
+:1047B00050E00C94F523262FF999FECF92BD81BDD0
+:1047C000F89A019700B4021639F01FBA20BD0FB64F
+:1047D000F894FA9AF99A0FBE08950196272F0E942D
+:1047E000DC230C94DB23DC01CB01FC01F999FECF27
+:1047F00006C0F2BDE1BDF89A319600B40D92415069
+:0A4800005040B8F70895F894FFCF78
+:10480A000220E508730950091C09E8080101C701DB
+:10481A0028080A03140A3F4D363975042804F2039E
+:10482A00B9034C0365037E039703010203040506DB
+:04483A000708090062
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/andrew_osx/keymap.c b/keyboards/ergodox_ez/keymaps/andrew_osx/keymap.c new file mode 100644 index 000000000..48257d23a --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/andrew_osx/keymap.c @@ -0,0 +1,187 @@ +// 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 "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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | '" | | '" | 6 | 7 | 8 | 9 | 0 | BkSp | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | ~L1 | | ~L1 | Y | U | I | O | P | - | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * |Ctrl/Esc| A | S | D | F | G |------| |------| H | J | K | L |; / L2| / | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| Alt |AltShf| Left | Right| | Up | Down | [ | ] | L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | LGui | | Esc |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | ( | | { | | | + * | Space| LGui |------| |------| RGui |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 + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_QUOT, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_FN1, + CTL_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, ALL_T(KC_NO), + LT(SYMB,KC_GRV),KC_LALT, LALT(KC_LSFT), KC_LEFT,KC_RGHT, + ALT_T(KC_APP), KC_LGUI, + KC_LPRN, + KC_SPC,KC_LGUI,KC_RPRN, + // right hand + KC_QUOT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_FN1, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, + KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_BSLS, + 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, TG(1), + KC_ESC, CTL_T(KC_ESC), + KC_LCBR, + KC_RCBR,KC_RGUI, 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| |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | | |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +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) { + 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/bepo/README.md b/keyboards/ergodox_ez/keymaps/bepo/README.md new file mode 100644 index 000000000..338909ed9 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/bepo/README.md @@ -0,0 +1,34 @@ +# BEPO keymap for the ErgoDox + +This keymap has been made for the BEPO layout (http://bepo.fr), which is an ergonomic french keyboard layout based on Dvorak rules. As it's made for french people, the following of this README will be in french. + +# Disposition BÉPO pour l'ErgoDox + +Cette keymap a été pensée pour la disposition BÉPO (http://bepo.fr), qui est une disposition de clavier francophone, ergonomique et libre, élaborée selon la méthode Dvorak. L'adaptation de cette disposition à l'ErgoDox a été réalisée en conservant les points forts du clavier TypeMatrix 2030 (très répandu dans la communauté bépo, avec un excellent rapport ergonomie / prix) voir en réglant certains de ses défauts (3 colonnes pour l'auriculaire droit et touche "Ê") et en apportant son lot de nouveautés (compatibilité avec les systèmes azerty et qwerty). + +Particularités +-------------- + +Touches de repos des pouces : "espace" à gauche et "entrée" à droite. + +Placement des touches de combinaison ("Shift", "Alt", "Ctrl"...) adapté aux pouces, et permettant de conserver chaque doigt pour les rangées de lettres auxquelles ils sont assignés sans avoir à changer la touche de combinaison de côté (exemple : "A" majuscule puis "M" majuscule avec les auriculaires et un seul appui d'une touche "Shift"). + +Les touches "Alt" et "Alt Gr" sont accessibles avec les pouces sur la rangée du bas comme sur la TypeMatrix 2030, avec une symétrie gauche / droite. + +Les touches "Ctrl" sont placées sur la même ligne que les touche "Alt" et "Alt Gr" comme sur un clavier clasique, elles sont accessibles aux pouces sur la rangée du bas (moins éloigné que le groupe de touches de pouces pour des petites mains). + +Les touches "Backspace" et "Delete" sont placées comme sur la TypeMatrix 2030, du côté gauche uniquement (pour laisser celles de la main droite servir de {caps,num,scroll}lock puisqu'elles ont des LED). + +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 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. + +TODO : couche de compatibilité pour utiliser la disposition BÉPO sur un système configuré pour un clavier AZERTY. + +> Olivier Smedts <olivier@gid0.org> diff --git a/keyboards/ergodox_ez/keymaps/bepo/bepo.png b/keyboards/ergodox_ez/keymaps/bepo/bepo.png Binary files differnew file mode 100644 index 000000000..3df7aa609 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/bepo/bepo.png diff --git a/keyboards/ergodox_ez/keymaps/bepo/compiled.hex b/keyboards/ergodox_ez/keymaps/bepo/compiled.hex new file mode 100644 index 000000000..e2ed480f0 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/bepo/compiled.hex @@ -0,0 +1,1190 @@ +:100000000C94D3030C9417040C9417040C94170449
+:100010000C9417040C9417040C9417040C941704F4
+:100020000C9417040C9417040C94B10E0C94830FC9
+:100030000C9417040C9417040C9417040C941704D4
+:100040000C9417040C943D230C9417040C9417047F
+:100050000C9417040C94D01C0C9417040C941704E3
+:100060000C9417040C9417040C9417040C941704A4
+:100070000C9417040C9417040C9417040C94170494
+:100080000C9417040C9417040C9417040C94170484
+:100090000C9417040C9417040C9417040C94170474
+:1000A0000C9417040C9417040C941704F00F1210FE
+:1000B00000111210001157107A100011CF10E21029
+:1000C000B113B113E013E013161436146715671556
+:1000D00041146715F114F11458156715671561156A
+:1000E000FE14FE14FE14FE14FE14FE14FE14FE1480
+:1000F000FE14FE14FE14FE14FE14FE14FE14FE1470
+:1001000010151D1524152B15351502E002E200010E
+:10011000E201E00002620001620262016200350059
+:100120002E0030006400015400001E001400040082
+:100130001D00000004521F001A0016001B00E300FF
+:10014000E1002000080007000600E0002C0021006C
+:10015000150009001900E2000552220017000A00EC
+:100160000500000029004C002A0000002B000000C0
+:100170000652470039000000530000000000230031
+:100180001C000B00110000004900240018000D00A5
+:100190001000E600013025000C000E003600E400DF
+:1001A0002800260012000F003700E700E5002700B6
+:1001B000130033003800460004522D002F00340095
+:1001C000310048000000210222021A00080001004C
+:1001D000000034020500040004000000045236024E
+:1001E000080018001C00E3000252370213000C0044
+:1001F0001B00E0002C002602120008003700E2007D
+:1002000005522702080036000E00000029004C00AD
+:100210002A0000002B0000000652470039000000B1
+:100220005300000000001F022302060034000000FB
+:1002300049002E02190017001400035201002D007E
+:10024000070016000A00E400280038000F0015001F
+:100250000B00E700025225020D00110009004600C4
+:1002600004522E001D00100006004800000020026D
+:1002700035001A020802010000001E0005020402F7
+:100280000402010001001F00080218021C02E30220
+:100290000100200013020C021B02E00201002100F9
+:1002A000120208023302E2020100220008023300B7
+:1002B0000E02000001000100010000002B020000FE
+:1002C0000100010001000000010000000100230006
+:1002D0001E02060238020000010024001902170263
+:1002E0001402E60201002500070216020A02E402D7
+:1002F000010026000F0215020B02E7020100270091
+:100300000D02110209020100010001001D0210028C
+:10031000060201000000210222021A00080001006A
+:1003200000003402310204003100000004523602A1
+:10033000080018002F02E3000252370224020C00CA
+:100340003002E0002D022F00120022143700E200DC
+:1003500005523000080036003502000029004C002C
+:100360002A0000002B000000065247003900000060
+:100370005300000000001F022302060034000000AA
+:1003800049002E02190017001400010001002D0081
+:10039000070016000A00E400280038000F001500CE
+:1003A0000B00E700025225020D0011000900460073
+:1003B00004522E001D00100006004800000000003E
+:1003C000000000000000000000003A0000000000F3
+:1003D0007A00000001003B00000000007B000100EB
+:1003E00001003C00000000007C00010000003D0016
+:1003F000000000007D00010000003E000000000041
+:10040000000000000000A800A9000000AA000000F1
+:1004100000000000000000000000000000003F009D
+:100420004B004E0000000000000040004A00500059
+:1004300000000100010041005200510000000100D5
+:10044000000042004D004F00000001000100430089
+:100450004400450000000000010000000000000012
+:10046000000000000000000000000000000000008C
+:10047000000000000000000000000000000000007C
+:10048000000000000000010001000000000000006A
+:10049000000001000000000000000000000001005A
+:1004A000010000000000000000000000000000004B
+:1004B000000000000000000000000000000000003C
+:1004C000000000000000000000000000000000002C
+:1004D000000057005F005C005900620000005600F9
+:1004E00060005D005A0000305800540061005E005A
+:1004F0005B008500010055000000000000000000C6
+:1005000000000000000000000000000000000000EB
+:1005100000000000000000000000000000000000DB
+:1005200000000000000000000000000000000100CA
+:1005300001000000000000000000010000000000B9
+:1005400000000000000001000000000000000000AA
+:10055000000000000000000000000000000000009B
+:10056000010000000000000000000000000000008A
+:10057000000000000000000000000000F400F20095
+:100580000000010000000000F000F1000000010088
+:1005900000000000F500F300000001000100000071
+:1005A000F900FA0000000000000000000000000058
+:1005B00000000000000016034500720067006F0095
+:1005C00044006F007800200045005A000000160328
+:1005D0004500720067006F0044006F007800200043
+:1005E00045005A0000000403090409026D000401DB
+:1005F00000A0FA0904000001030101000921110112
+:1006000000012240000705810308000A09040100D7
+:100610000103010200092111010001224D0007051B
+:10062000820308000A0904020001030000000921F6
+:10063000110100012236000705830308000A09049E
+:10064000030001030000000921110100012239000B
+:10065000070584031000011201100100000008EDDD
+:10066000FE071301000102000105010906A10105B1
+:100670000719E029E7150025019508750181020594
+:1006800008190129059505750191029501750391D8
+:100690000105071900297715002501957875018155
+:1006A00002C005010980A101850216010026B700DC
+:1006B0001A01002AB700751095018100C0050C09C8
+:1006C00001A1018503160100269C021A01002A9C43
+:1006D00002751095018100C005010902A1010901FF
+:1006E000A1000509190129051500250195057501C8
+:1006F00081029501750381010501093009311581D8
+:10070000257F95027508810609381581257F950199
+:1007100075088106050C0A38021581257F9501753B
+:10072000088106C0C005010906A101050719E029D5
+:10073000E71500250195087501810295017508816D
+:1007400001050819012905950575019102950175A5
+:100750000391010507190029FF150026FF009506E2
+:1007600075088100C00000000000000000000000CB
+:10077000010204060A0F17202C3A4A5D71879DB3C7
+:10078000C7DAE9F5FCFFFCF5E9DAC7B39D87715DCF
+:100790004A3A2C20170F0A0604020100000000004C
+:1007A00000000000000011241FBECFEFDAE0DEBF22
+:1007B000CDBF04B603FE24C08091FB019091FC01E3
+:1007C000A091FD01B091FE018730904BA740B04B46
+:1007D000B9F41092FB011092FC011092FD011092ED
+:1007E000FE0114BE84B7877F84BF88E10FB6F894FA
+:1007F00080936000109260000FBEE0E0FFE3099577
+:1008000011E0A0E0B1E0E8E0FAE402C005900D924A
+:10081000A433B107D9F711E0A4E3B1E001C01D9200
+:10082000AB3FB107E1F70E94F50B0C9402250C9445
+:1008300000001092B9008AE08093B800089594EA0D
+:100840009093BC009091BC0097FFFCCF9091B900B1
+:10085000987F983021F0903111F081E008958093D5
+:10086000BB0084E88093BC008091BC0087FFFCCF74
+:100870008091B900887F883111F0803471F780E071
+:10088000089584E98093BC008091BC0084FDFCCF76
+:1008900008958093BB0084E88093BC008091BC00E5
+:1008A00087FFFCCF9091B900987F81E0983209F4DE
+:1008B00080E0089584E88093BC008091BC0087FFAD
+:1008C000FCCF8091BB00089580910101811115C07A
+:1008D00080E40E941F048093010181110CC082E119
+:1008E0000E94490480930101811105C08FEF0E948D
+:1008F0004904809301010E94410484B1807F84B93E
+:1009000085B1807F85B98AB1837F8AB98BB1837FB6
+:100910008BB93E98469808950E941F068093010166
+:100920000E94640480B38C7080BB81B3836F81BBF1
+:10093000A5E3B1E0E3E4F1E08EE08E0F11921D92A9
+:100940008E13FCCF0C940906BF92CF92DF92EF92E8
+:10095000FF920F931F93CF93DF9380910101882320
+:1009600079F0809134018F5F80933401811108C048
+:100970000E941F0680930101811102C00E94B105EF
+:1009800005E311E0C0E0D0E0DD24D39482E0C82E7E
+:10099000EE24E394F12CC730D10500F580910101DC
+:1009A000811164C080E40E941F04809301018111C1
+:1009B00012C082E10E9449048093010181110BC0A1
+:1009C000C7010C2E01C0880F0A94EAF780950E9497
+:1009D0004904809301010E94410448C0CA30A1F03B
+:1009E00028F4C83059F0C93061F005C0CC3089F026
+:1009F00070F0CD3089F0209A289810C0219A29985B
+:100A00000DC0229A2A980AC0239A2B9807C0529A9E
+:100A100001C0539A5B9802C03E9A469890EA9A9514
+:100A2000F1F79FB1799902C082E001C080E0917036
+:100A30009D25982B7C9902C084E001C080E0892B21
+:100A40007D9902C038E001C030E0832B7E9902C05E
+:100A500020E101C020E0822B9FB19095991F99273A
+:100A6000991F9295990F907E892B0FC0809101015B
+:100A7000811149C080E40E941F04809301018823F2
+:100A800079F1B12C0E9441048B2DF80190819817C7
+:100A900019F08083C09200010E94640421960F5FC8
+:100AA0001F4FCE30D10509F076CF80910001882309
+:100AB00061F1815080930001882339F08FE99FE034
+:100AC0000197F1F700C0000020C0A3E4B1E0E5E326
+:100AD000F1E0CF01825F91919D938E13FCCF15C001
+:100AE00083E10E944904809301018111CACF81E40E
+:100AF0000E941F04809301018111C3CF0E945A04F8
+:100B0000B82EB094BFCF80E0C0CF0E94AF0581E087
+:100B1000DF91CF911F910F91FF90EF90DF90CF90D9
+:100B2000BF900895E82FF0E0ED5BFE4F80810895BF
+:100B300008950F931F93CF93DF93C3E4D1E010E0A8
+:100B40000C2F025F899190E00E94461C180F0C1335
+:100B5000F9CF812FDF91CF911F910F9108950C94C0
+:100B6000910656985E9825982D9826982E98279845
+:100B70002F988FEF90E09093890080938800909356
+:100B80008B0080938A0090938D0080938C00259A2F
+:100B90002D9A2FEF80E792E0215080409040E1F7BE
+:100BA00000C00000269A2E9A2FEF80E792E0215095
+:100BB00080409040E1F700C00000279A2F9A2FEF65
+:100BC00080E792E0215080409040E1F700C00000B3
+:100BD00025982D982FEF80E792E02150804090409B
+:100BE000E1F700C0000026982E982FEF80E792E0F2
+:100BF000215080409040E1F700C0000027982F98D6
+:100C000056985E9825982D9826982E9827982F9874
+:100C1000089589EA8093800089E080938100249878
+:100C20002C983F988AB18F748AB96E98479A8BB185
+:100C3000806B8BB9769A0E94B1050C94900680E285
+:100C4000809301018091510181110EC00E9419040D
+:100C500081E0809351012FEF83ED90E3215080409C
+:100C60009040E1F700C0000080E40E941F048093E0
+:100C7000010181112EC00E9449048093010181115C
+:100C800028C00E94490480930101811122C08FE392
+:100C90000E9449048093010181111BC00E944104FC
+:100CA00080E40E941F0480930101811112C08CE036
+:100CB0000E9449048093010181110BC00E944904E4
+:100CC00080930101811105C08FE30E944904809344
+:100CD00001010E944104809101010895662319F0E9
+:100CE000613041F017C0FC018281811116C084E19E
+:100CF00091E00895FC018281882331F084E00E9414
+:100D00000F1A8FE091E0089584E00E94301A8AE083
+:100D100091E0089580E090E0089587E191E00895E2
+:100D20000895089581E0089581E008950C94940653
+:100D300008950F931F93CF93DF938C01FC01C08123
+:100D4000D181CE010E94CB1ABE010E944207EC0164
+:100D5000B8010E949606882309F48DC0F8018281AB
+:100D6000882309F44AC080915D0181111FC0C431FC
+:100D7000F0E5DF0709F051C00E94980681E08093FA
+:100D80005D010E949A1C90935C0180935B0110921C
+:100D90005401109256011092550110925801109270
+:100DA000570110925A011092590165C080915B0160
+:100DB00090915C010E94A61C883C910570F4809182
+:100DC0005401E82FF0E0EE0FFF1FEB5AFE4FD183E6
+:100DD000C0838F5F809354014EC0C43880E5D8072C
+:100DE00021F0C538D04501F13AC0F801828188234D
+:100DF00041F01092520182E01EC0C438E0E5DE07E7
+:100E000059F580915201811106C086E20E94551267
+:100E100086E20E941D1382E01CC0C438F0E5DF07A3
+:100E200041F3C538D045D9F4F8018281882331F0E7
+:100E30001092530180E20E946C131DC080915301F7
+:100E4000811106C087E20E94551287E20E941D139D
+:100E500080E20E9473130FC0C538D04529F381E0AA
+:100E60008093520180935301C801DF91CF911F916C
+:100E70000F910C94920680E0DF91CF911F910F911A
+:100E80000895089596E0799FF001112494E5899FD3
+:100E9000E00DF11D1124E60FF11DEE0FFF1FE25EC4
+:100EA000FE4F859194910895880F991FFC01E25699
+:100EB000F040859194910895880F991FFC01E25E9E
+:100EC000FE4F8591949108950F931F93CF93DF93D5
+:100ED000EC01811520E3920750F5C11580E2D80797
+:100EE00008F0C3C0CB3BD10590F4C83AD10508F057
+:100EF0006AC0C53AD10508F05BC0C430D10508F01E
+:100F0000D0C1219709F0CAC101E010E00AC2CF3F69
+:100F1000D10511F008F0C5C1C03FD10508F0A2C04D
+:100F2000CE01805E9109089708F4BBC1B7C1C130FA
+:100F300090E5D90709F4A2C020F5C0318FE4D807A5
+:100F400070F4C11590E4D90708F094C0C11521E3ED
+:100F5000D20708F0A3C1DD278E01106CE2C1C115D4
+:100F6000D04509F09BC10E94D2158FEF94E32CE08D
+:100F7000815090402040E1F700C000000E94F51C25
+:100F8000D0C1C11597E5D90758F4C03121E5D20782
+:100F900008F01CC1C43180E5D80708F475C07EC1D3
+:100FA000CE0190578115904108F078C1DF7073C170
+:100FB000C53AD10509F477C1C63AD10509F076C121
+:100FC00002E810E4AEC1C83AD10509F472C1C93AC9
+:100FD000D10509F471C1CA3AD10509F470C1CB3AFF
+:100FE000D10509F46FC1CC3AD10509F46EC1CD3AEF
+:100FF000D10509F46DC1C03BD10509F46CC1CE3AED
+:10100000D10509F46BC1CF3AD10509F46AC1C13BDE
+:10101000D10509F469C1C23BD10509F468C1C33BDC
+:10102000D10509F467C1C43BD10509F466C1C53BCC
+:10103000D10509F465C1C63BD10509F464C1C73BBC
+:10104000D10509F463C1C83BD10509F462C1C93BAC
+:10105000D10509F461C1CA3BD10509F460C100E0C2
+:1010600014E45FC18E0110655CC1CE019F700E94C7
+:101070005C0758C1DF708E01106A53C18091DA019C
+:1010800081608093DA014DC10E949A1E811102C0D5
+:101090000E94801E0E94B71E90E09093FB018093F7
+:1010A000FA01C23080E5D80721F48091FA0181600D
+:1010B00086C0C43090E5D90721F48091FA0182609E
+:1010C0007EC0C63020E5D20721F48091FA01846009
+:1010D00076C0C83080E5D80719F48091FA0127C09E
+:1010E000CA3090E5D90721F48091FA01806167C088
+:1010F000CC3020E5D20721F48091FA0180625FC0F4
+:10110000CE3080E5D80721F48091FA01806457C081
+:10111000C03190E5D90721F48091FA0180684FC071
+:10112000C23120E5D20729F48091FA0184608860F9
+:1011300046C0C33080E5D80721F48091FA018E7F44
+:101140003EC0C53090E5D90721F48091FA018D7F2A
+:1011500036C0C73020E5D20721F48091FA018B7F99
+:101160002EC0C93080E5D80719F48091FA0126C055
+:10117000CB3090E5D90721F48091FA018F7E1FC012
+:10118000CD3020E5D20721F48091FA018F7D17C080
+:10119000CF3080E5D80721F48091FA018F7B0FC012
+:1011A000C13190E5D90721F48091FA018F7707C00A
+:1011B000C331D04531F48091FA018B7F877F8093D2
+:1011C000FA018091FA010E94BB1EABC08D2F9927B6
+:1011D0008F70992781309105D9F49E0123703327B0
+:1011E00002C0880F991F2A95E2F79C688E0144E09F
+:1011F000000F111F4A95E1F700271370802B912BE8
+:1012000053E0CC0FDD1F5A95E1F7C076DD272FC0E4
+:101210008230910531F4DC2FCC278E01016F106AEA
+:1012200080C08330910569F4CE018370992701E075
+:1012300010E002C0000F111F8A95E2F7C8019C68F8
+:101240000FC084309105B9F4CE018370992701E075
+:1012500010E002C0000F111F8A95E2F7C8019A68DA
+:1012600023E0CC0FDD1F2A95E1F7C07ED7708C01FB
+:101270000C2B1D2B56C08530910531F4DC2FCC276B
+:101280008E01046F106A4DC0069709F04AC0CF71F5
+:10129000DD27DC2FCC278E01106243C000E010E078
+:1012A00040C08E013EC001E810E43BC003E810E4FA
+:1012B00038C002EE14E435C009EE14E432C00AEE80
+:1012C00014E42FC005EB14E42CC006EB14E429C091
+:1012D00007EB14E426C00CEC14E423C00DEC14E47A
+:1012E00020C003E815E41DC00AE815E41AC002E9AD
+:1012F00015E417C004E915E414C001E216E411C0B6
+:1013000003E216E40EC004E216E40BC005E216E4A4
+:1013100008C006E216E405C007E216E402C00AE2CD
+:1013200016E4C801DF91CF911F910F91089596E0C7
+:10133000799FF001112494E5899FE00DF11D11249E
+:10134000E60FF11DEE0FFF1FE25EFE4F85919491B7
+:10135000803E9105E0F4803C910558F5813391057C
+:1013600009F46FC048F48932910509F463C08A32E8
+:10137000910509F46DC072C089339105E9F0823896
+:101380009105D1F08533910509F44DC067C0833EC6
+:10139000910581F138F4803E9105B9F0823E9105C6
+:1013A000D9F05CC0863E910561F1873E9105A1F1BF
+:1013B00055C00E94540708952091FA0120FD02C0F3
+:1013C00021FF4CC080EE90E049C08091FA0180FF7F
+:1013D000F9CF89E390E042C08091FA0182FF0EC00C
+:1013E0008091FA0184FF03C080E090E037C083EE73
+:1013F00090E034C08091FA0182FFF2CF82EE90E05B
+:101400002DC08091FA0183FF0BC08091FA0184FD09
+:10141000EBCF87EE90E022C08091FA0183FFF5CFF9
+:1014200086EE90E01BC08091FA0185FF07C089E23B
+:1014300090E014C08091FA0185FFF9CF85E390E038
+:101440000DC08091FA0186FF07C08AE290E006C0D5
+:101450008091FA0186FFF9CF81E390E00E94640752
+:10146000089508950C94310A80916E010895CF93E8
+:10147000DF9300D01F92CDB7DEB79C018091F101C0
+:10148000843019F593E099833B832A839093E90094
+:101490008FEF9091E800815095FD06C095ED9A95EB
+:1014A000F1F700008111F5CF8091E80085FF0DC0B4
+:1014B00040E050E063E070E0CE0101960E94A10C94
+:1014C0008091E8008E778093E8000F900F900F9046
+:1014D000DF91CF910895CF93DF9300D01F92CDB7C6
+:1014E000DEB72091F101243021F522E029839B838E
+:1014F0008A8383E08093E9008FEF9091E800815028
+:1015000095FD06C095ED9A95F1F700008111F5CF94
+:101510008091E80085FF0DC040E050E063E070E09E
+:10152000CE0101960E94A10C8091E8008E778093F5
+:10153000E8000F900F900F90DF91CF9108952091C8
+:10154000F1012430F1F422E02093E9002FEF3091F3
+:10155000E800215035FD06C035ED3A95F1F7000061
+:101560002111F5CF2091E80025FF0BC040E050E0AD
+:1015700065E070E00E94A10C8091E8008E77809376
+:10158000E8000895CF93DF93EC019091F10194303E
+:1015900009F046C080910C018823D9F080910D019B
+:1015A0008823B9F09093E9008FEF9091E800815083
+:1015B00095FD06C095E19A95F1F700008111F5CFF0
+:1015C0008091E80085FF2CC040E050E060E170E0D1
+:1015D00017C081E08093E9008FEF9091E80081507F
+:1015E00095FD06C095ED9A95F1F700008111F5CFB4
+:1015F0008091E80085FF14C040E050E068E070E0B2
+:10160000CE010E94A10C8091E8008E778093E800C3
+:1016100080E1FE01AEE5B1E001900D928A95E1F71F
+:10162000DF91CF9108958091F001811109C00E944E
+:10163000360E0E94930E8091E20084608093E20057
+:1016400008951092F001089508950C942A230E94A1
+:101650008B1C0E9430230E9439110C94320A42E004
+:1016600061EC81E00E94B00D42E061EC82E00E94FA
+:10167000B00D42E061EC83E00E94B00D42E161EC0C
+:1016800084E00C94B00D8091F301833009F455C0CF
+:1016900030F4813071F0823009F48EC008958A30C0
+:1016A00009F47AC08B3009F460C0893009F09CC01D
+:1016B00020C08091F201813A09F096C08091E80043
+:1016C000877F8093E8008091F6019091F701892B44
+:1016D00021F460E18EE591E003C060E080E090E0FD
+:1016E00070E00E94EC0C8091E8008B778093E8001A
+:1016F00008958091F201813209F076C08091F6015F
+:101700009091F701009719F0039709F06DC080914F
+:10171000E800877F8093E8008091E80082FD05C0A3
+:101720008091F1018111F8CF5FC08091F100809329
+:101730006E018091E8008B7753C08091F201813A6D
+:1017400009F052C08091F6019091F701892B09F0C0
+:101750004BC08091E800877F8093E8008091E8008B
+:1017600080FFFCCF80910C0136C08091F201813264
+:10177000D9F58091F6019091F701892BA9F5809117
+:10178000E800877F8093E8000E94E50D8091F401D6
+:1017900080930C010C94D2158091F201813221F5D5
+:1017A0008091E800877F8093E8000E94E50D80919A
+:1017B000F50180936F0108958091F201813AA1F4BF
+:1017C0008091E800877F8093E8008091E80080FFA7
+:1017D000FCCF80916F018093F1008091E8008E77BB
+:1017E0008093E8000C94E50D089584B7877F84BF4B
+:1017F00088E10FB6F89480936000109260000FBEED
+:1018000090E080E80FB6F8948093610090936100B7
+:101810000FBE0E9488110E94360E0E94930E809186
+:10182000E20084608093E20078940E9419110E9483
+:101830008A1182E091E00E9434110E941823809165
+:10184000F101853069F40E94521C8091EF018823D8
+:10185000B1F30E947D1C882391F30E948B0CEFCF83
+:101860000E949011ECCF292F332723303105C9F086
+:1018700064F42130310581F02230310509F043C094
+:101880008DE690E02AEE35E042C021323105F1F0DC
+:101890002232310541F137C082E190E027E536E0A0
+:1018A00036C099278130910541F08230910541F091
+:1018B000892B49F5E6EEF5E005C0EEECF5E002C057
+:1018C000E6EBF5E0849190E09F0121C06430D8F40C
+:1018D000E62FF0E0EE0FFF1FEE5DFE4F208131811D
+:1018E00089E090E014C0643070F470E0FB01EE0F0A
+:1018F000FF1FE65EFE4F20813181FB01EA5EFE4F55
+:10190000808190E004C080E090E020E030E0FA01C7
+:1019100031832083089580E189BD82E189BD09B4C6
+:1019200000FEFDCF8091D8008F7D8093D8008091FC
+:10193000E00082608093E0008091E00081FDFCCFB8
+:101940000895CF92DF92EF92FF920F931F93CF9360
+:10195000DF93EC018B016A010E94040E811133C0F8
+:10196000C114D10439F0F60180819181081B190B53
+:10197000C80FD91FE12CF12C0115110519F1809127
+:10198000E80085FD16C08091E8008E778093E8001E
+:10199000C114D10449F0F60180819181E80EF91E4D
+:1019A000F182E08285E00FC00E94040E882321F3BB
+:1019B0000AC089918093F10001501109FFEFEF1ADD
+:1019C000FF0ADACF80E0DF91CF911F910F91FF9056
+:1019D000EF90DF90CF9008952091F8013091F901B8
+:1019E0002617370748F06115710539F42091E80092
+:1019F0002E772093E80001C0B90140E06115710520
+:101A0000A9F12091F101222309F443C0253009F402
+:101A100042C02091E80023FD40C02091E80022FD53
+:101A200032C02091E80020FFE9CF4091F3002091DF
+:101A3000F20030E0342BFC01CF016115710559F043
+:101A40002830310540F481918093F1006150710993
+:101A50002F5F3F4FF1CF41E02830310509F040E0E2
+:101A60002091E8002E772093E800C8CF4111C9CF1C
+:101A70000AC08091F101882361F0853061F0809186
+:101A8000E80083FD0AC08091E80082FFF2CF80E089
+:101A9000089582E0089583E0089581E008952091FB
+:101AA000F8013091F9012617370748F061157105E3
+:101AB00039F42091E8002E772093E80001C0B901A5
+:101AC000FC0120E06115710591F18091F1018823FD
+:101AD00009F440C0853009F43FC08091E80083FDDF
+:101AE0003DC08091E80082FD2FC08091E80080FF1A
+:101AF000E9CF2091F3008091F20090E0922B6115E4
+:101B0000710559F08830910540F424912093F1003B
+:101B10003196615071090196F2CF21E0089709F0E2
+:101B200020E08091E8008E778093E800CBCF2111F0
+:101B3000CCCF0AC08091F101882361F0853061F03B
+:101B40008091E80083FD0AC08091E80082FFF2CF17
+:101B500080E0089582E0089583E0089581E008958B
+:101B6000982F973058F59093E900981739F07091B5
+:101B7000EC002091ED005091F00003C0242F762F4F
+:101B800050E021FF19C03091EB003E7F3093EB0015
+:101B90003091ED003D7F3093ED003091EB003160EE
+:101BA0003093EB007093EC002093ED005093F00025
+:101BB0002091EE0027FF07C09F5FD3CF8F708093E7
+:101BC000E90081E0089580E008958091F20187FFA7
+:101BD00011C08091E80082FD05C08091F101811162
+:101BE000F8CF11C08091E8008B770BC08091F10194
+:101BF000882349F08091E80080FFF8CF8091E800C9
+:101C00008E778093E80008952091E4003091E500FC
+:101C100095E64091EC00842F817040FF22C08091B6
+:101C2000E80080FD1CC08091F101882391F085308F
+:101C300091F08091EB0085FD10C04091E40050913F
+:101C4000E5004217530729F39A01915011F784E0F8
+:101C5000089582E0089583E0089581E0089580E08A
+:101C600008954091E80042FFDECF08950E94A40E3F
+:101C70000E94AC0EE0EEF0E0808181608083E8EDB0
+:101C8000F0E080818F77808319BCA7EDB0E08C9164
+:101C90008E7F8C9380818F7E80831092F0010895D7
+:101CA0000F931F93CF93DF930E94A40E0E94AC0E5C
+:101CB000C8EDD0E088818F778883888180688883A9
+:101CC00088818F7D888319BC1092F1011092ED01FB
+:101CD0001092EF011092EE0100EE10E0F801808109
+:101CE0008B7F808388818160888342E060E080E030
+:101CF0000E94B00DE1EEF0E080818E7F8083E2EE05
+:101D0000F0E0808181608083808188608083F80139
+:101D100080818E7F8083888180618883DF91CF91ED
+:101D20001F910F910895E8EDF0E080818F7E808310
+:101D3000E7EDF0E080818160808384E082BF81E014
+:101D40008093F0010C94500EE8EDF0E080818E7FDE
+:101D500080831092E20008951092DA001092E10060
+:101D600008951F920F920FB60F9211242F933F9355
+:101D70004F935F936F937F938F939F93AF93BF9393
+:101D8000EF93FF938091E10082FF0BC08091E2000E
+:101D900082FF07C08091E1008B7F8093E1000E9469
+:101DA00018118091DA0080FF1FC08091D80080FF59
+:101DB0001BC08091DA008E7F8093DA008091D90079
+:101DC00080FF0DC080E189BD82E189BD09B400FEBC
+:101DD000FDCF81E08093F1010E94130B05C019BC77
+:101DE0001092F1010E94210B8091E10080FF19C047
+:101DF0008091E20080FF15C08091E2008E7F809389
+:101E0000E2008091E20080618093E2008091D8003E
+:101E100080628093D80019BC85E08093F1010E9414
+:101E2000250B8091E10084FF30C08091E20084FFA7
+:101E30002CC080E189BD82E189BD09B400FEFDCFDF
+:101E40008091D8008F7D8093D8008091E1008F7EB3
+:101E50008093E1008091E2008F7E8093E200809188
+:101E6000E20081608093E2008091ED01882311F00F
+:101E700084E007C08091E30087FD02C081E001C0DB
+:101E800083E08093F1010E94270B8091E10083FFA2
+:101E900029C08091E20083FF25C08091E100877F07
+:101EA0008093E10082E08093F1011092ED01809136
+:101EB000E1008E7F8093E1008091E2008E7F80932D
+:101EC000E2008091E20080618093E20042E060E005
+:101ED00080E00E94B00D8091F00088608093F00057
+:101EE0000E94240BFF91EF91BF91AF919F918F9131
+:101EF0007F916F915F914F913F912F910F900FBE06
+:101F00000F901F9018951F920F920FB60F921124E9
+:101F10002F933F934F935F936F937F938F939F93F1
+:101F2000AF93BF93CF93DF93EF93FF93C091E900FB
+:101F3000CF708091EC00D82FD17080FDD0E8109246
+:101F4000E9008091F000877F8093F00078940E94F0
+:101F5000C70F1092E9008091F00088608093F00034
+:101F6000CD2BCF70C093E900FF91EF91DF91CF911E
+:101F7000BF91AF919F918F917F916F915F914F91A1
+:101F80003F912F910F900FBE0F901F9018951F93A8
+:101F9000CF93DF93CDB7DEB7AA970FB6F894DEBF25
+:101FA0000FBECDBFE2EFF1E088E08E0F9091F1001F
+:101FB00091938E13FBCF0E94430B8091E80083FF27
+:101FC0001FC18091F2019091F301492F50E04A30F6
+:101FD000510508F015C1FA01EA5AFF4F0C94B224DA
+:101FE000803881F0823809F00BC18091F6018F7042
+:101FF0008093E9008091EB0085FB882780F910929F
+:10200000E90006C08091EE019091EF01911182608C
+:102010009091E800977F9093E8008093F1001092F0
+:10202000F100C8C0282F2D7F09F0EAC0882319F0DD
+:10203000823061F0E5C08091F401813009F0E0C0A8
+:10204000933009F080E08093EF012BC08091F40180
+:10205000811127C08091F6018F7009F4D1C080935F
+:10206000E9002091EB0020FF1CC0933021F4809107
+:10207000EB00806214C09091EB0090619093EB00B4
+:1020800021E030E0A90102C0440F551F8A95E2F714
+:102090004093EA001092EA008091EB008860809300
+:1020A000EB001092E9008091E800877F86C08111E3
+:1020B000A7C01091F4011F778091E3008078812BF5
+:1020C0008093E3008091E800877F8093E8000E947E
+:1020D000E50D8091E80080FFFCCF8091E3008068EF
+:1020E0008093E300111102C082E001C083E080937D
+:1020F000F10186C08058823008F082C08091F401DE
+:102100009091F5018C3D53E0950779F583E08A8342
+:102110008AE289834FB7F894DE01139620E03EE00F
+:1021200051E2E32FF0E050935700E49120FF03C009
+:10213000E295EF703F5FEF708E2F90E0EA3010F085
+:10214000C79601C0C0968D939D932F5F243149F7A8
+:102150004FBF8091E800877F8093E8006AE270E0DB
+:10216000CE0101960E94EC0C14C0AE014F5F5F4F90
+:102170006091F6010E94330CBC01009709F440C045
+:102180009091E800977F9093E80089819A810E945E
+:102190004F0D8091E8008B778093E80031C0803844
+:1021A00079F58091E800877F8093E8008091ED01C8
+:1021B0008093F1008091E8008E778093E8000E9480
+:1021C000E50D1EC081111CC09091F4019230C0F445
+:1021D0008091E800877F8093E8009093ED010E9452
+:1021E000E50D8091ED01811106C08091E30087FD2E
+:1021F00002C081E001C084E08093F1010E942F0BB6
+:102200008091E80083FF0AC08091E800877F809377
+:10221000E8008091EB0080628093EB00AA960FB6F5
+:10222000F894DEBF0FBECDBFDF91CF911F9108950F
+:102230000895CF938091F1018823A1F0C091E90026
+:10224000CF709091EC00892F817090FD80E8C82BB1
+:102250001092E9008091E80083FD0E94C70FCF70C3
+:10226000C093E900CF910895909375018093740114
+:102270000895E0917401F0917501309721F001907B
+:10228000F081E02D099480E00895E0917401F091CF
+:102290007501309721F00280F381E02D09940895B3
+:1022A000E0917401F0917501309721F00480F5817F
+:1022B000E02D0994089520917201309173018217E5
+:1022C000930771F09093730180937201E091740110
+:1022D000F0917501309721F00680F781E02D099487
+:1022E000089520917001309171018217930771F068
+:1022F0009093710180937001E0917401F0917501E8
+:10230000309721F00084F185E02D09940895089517
+:102310000C9487110E94911C0E948C040C94531DF4
+:102320009F92AF92BF92CF92DF92EF92FF920F9364
+:102330001F93CF93DF9300D000D000D0CDB7DEB78E
+:102340000E94A4040DE010E0AA24A394B12C902EC6
+:10235000802F0E949205980129583E4F6901F9018A
+:10236000F080F826A1F40150110988F78FEF8983D6
+:102370008A831B820E949A1C8160782F9D838C83A4
+:1023800049815A816B818D810E9427122FC09091C3
+:10239000DA0191FF04C08E830E9498058E8125E0AA
+:1023A00030E0A501022E01C0440F0A94EAF7E42EA2
+:1023B0004F21C1F029839A828E2191E009F490E0A7
+:1023C0009B830E949A1C8160782F9D838C83498116
+:1023D0005A816B818D810E942712F6018081E82647
+:1023E000E08204C021503109E0F6BDCF0E943A20BE
+:1023F000109176010E9439111817B9F00E94391115
+:102400008093760126960FB6F894DEBF0FBECDBF3F
+:10241000DF91CF911F910F91FF90EF90DF90CF90C0
+:10242000BF90AF909F900C94320A26960FB6F89406
+:10243000DEBF0FBECDBFDF91CF911F910F91FF90F7
+:10244000EF90DF90CF90BF90AF909F900895CF9383
+:10245000DF93CDB7DEB72B970FB6F894DEBF0FBE74
+:10246000CDBF4F83588769877A878B87DE011196A6
+:1024700086E0FD0111928A95E9F785E0FE01379625
+:1024800001900D928A95E1F749815A816B817C8197
+:102490008D819E810E9470182B960FB6F894DEBF36
+:1024A0000FBECDBFDF91CF910895CF93882309F45C
+:1024B000C2C0C82F823859F40E94391181FDBBC0B7
+:1024C00089E30E944A1B0E94171C89E30CC08338D1
+:1024D00079F40E94391180FDAEC083E50E944A1B49
+:1024E0000E94171C83E50E948C1BCF910C94171C33
+:1024F000843859F40E94391182FD9DC087E40E94FE
+:102500004A1B0E94171C87E4EECF8CEF8C0F813A98
+:1025100048F48C2F0E947D2281118DC08C2F0E9447
+:102520004A1BE3CF80E28C0F883048F4C77081E00B
+:1025300001C0880FCA95EAF70E94D01BD6CF8BE561
+:102540008C0F833078F4C53A29F0C63A31F083E82D
+:1025500090E005C081E890E002C082E890E0CF9171
+:102560000C945B1188E58C0F833108F064C0C83A85
+:1025700039F1C93A41F1CA3A49F1CB3A51F1CC3A71
+:1025800059F1CD3A61F1C03B69F1CE3A71F1CF3AE0
+:1025900079F1C13B81F1C23B89F1C33B91F1C43B6D
+:1025A00099F1C53BA1F1C63BA9F1C73BB1F1C83BCD
+:1025B000B9F1C93BC1F1CA3BC9F180E090E038C034
+:1025C00082EE90E035C089EE90E032C08AEE90E075
+:1025D0002FC085EB90E02CC086EB90E029C087EB04
+:1025E00090E026C08CEC90E023C08DEC90E020C001
+:1025F00083E891E01DC08AE891E01AC082E991E089
+:1026000017C084E991E014C081E292E011C083E236
+:1026100092E00EC084E292E00BC085E292E008C036
+:1026200086E292E005C087E292E002C08AE292E090
+:10263000CF910C947111CF910895882309F44BC068
+:10264000823859F40E94391181FF45C089E30E9404
+:102650004A1B0E94171C89E30CC0833871F40E9446
+:10266000391180FF38C083E50E944A1B0E94171C65
+:1026700083E50E948C1B0C94171C843859F40E942B
+:10268000391182FF28C087E40E944A1B0E94171C50
+:1026900087E4EFCF9CEF980F913A58F390E2980FB0
+:1026A000983050F4877091E001C0990F8A95EAF74D
+:1026B000892F0E94D61BDFCF9BE5980F933020F423
+:1026C00080E090E00C945B11885A833120F480E024
+:1026D00090E00C9471110895882321F00E94D01B82
+:1026E0000C94171C0895882321F00E94D61B0C948B
+:1026F000171C08957F928F929F92AF92BF92CF92B4
+:10270000DF92EF92FF920F931F93CF93DF931F926D
+:10271000CDB7DEB77C01C62E772EFC010581029570
+:102720000F70128111110E94ED1B0E94431B882320
+:1027300079F0112369F080E28C0D883048F082E056
+:102740000E942C1B0E94431B91E0D82ED92601C069
+:10275000D12CE72DE295EF70F0E0E05AFF4F0C949A
+:10276000B224872D807F072D0F70882311F00295EA
+:10277000007F112389F0002309F490C180E28C0DC1
+:10278000883020F4802F0E94D01B03C0802F0E942D
+:10279000E01B0E94171C82C18C2D0E941D13002378
+:1027A00009F495C180E28C0D883020F4802F0E94BE
+:1027B000D61B03C0802F0E94E61B0E94171C87C1F6
+:1027C000972D907F872D8F70903211F08295807FAA
+:1027D000CC2021F0F1E0CF16B1F01EC0112349F05A
+:1027E000002309F414C1013009F011C10E94001C3A
+:1027F0006EC1002319F0013009F469C189830E9478
+:10280000031C89810AC1112321F0023008F05FC145
+:10281000FEC001115CC101C1112321F0002309F4A4
+:10282000F6C03CC1002309F4F8C03EC1872D86954F
+:102830008695837090E0009719F0019761F047C189
+:10284000112321F08C2D972D937002C080E090E031
+:102850000E945B113CC1112321F08C2D972D9370A8
+:1028600002C080E090E00E94711131C18C2D1123D3
+:1028700019F00E94421F02C00E94AA1F0E942F202E
+:1028800026C1872D837009F052C0111120C18C2DF3
+:10289000829586958770880F880F9C2D9F70892E52
+:1028A000912CA12CB12C082E04C0880C991CAA1CB8
+:1028B000BB1C0A94D2F7C4FE14C00FE010E020E065
+:1028C00030E0B901A80104C0440F551F661F771FEF
+:1028D0008A95D2F7CB01BA01609570958095909555
+:1028E00003C060E070E0CB01272D2695269523706C
+:1028F00030E02230310569F02330310589F0682954
+:1029000079298A299B292130310571F00E94B81953
+:10291000DEC0682979298A299B290E94D419D7C049
+:102920000E94B819C501B4010E949C19D0C011239E
+:1029300019F0872D817001C08695882309F4C7C0DE
+:102940008C2D829586958770880F880F9C2D9F709F
+:10295000892E912CA12CB12C082E04C0880C991C16
+:10296000AA1CBB1C0A94D2F7C4FE14C00FE010E0EE
+:1029700020E030E0B901A80104C0440F551F661FD4
+:10298000771F8A95D2F7CB01BA0160957095809533
+:10299000909503C060E070E0CB01272D2695269529
+:1029A0002370422F50E04230510569F04330510509
+:1029B00089F0682979298A299B294130510571F0CC
+:1029C0000E94921A84C0682979298A299B290E9429
+:1029D000AE1A7DC00E94921AC501B4010E94761AF7
+:1029E00076C08C2D90E0FC01E05EF109E531F10547
+:1029F00008F050C0E059FF4F0C94B2240C2D0F701A
+:102A0000872D8F71112331F00E940F1A802F0E94A1
+:102A10006C135DC00E94301A802F0E94731357C040
+:102A2000112339F0011153C0872D8F710E94551A5F
+:102A30004EC0023008F04BC0F7CF112339F0872D7C
+:102A40008F710E940F1A43C01123C9F3872D8F7114
+:102A50000E94301A3CC0112329F0872D8F710E94EB
+:102A6000FA1935C00E94F01932C0112351F0172D08
+:102A70001F71812F0E940F1A63E0812F0E94231B78
+:102A800026C081E00E942C1B023008F182E00E94E7
+:102A90002C1B1DC0112331F0002389F28C2D0E94C4
+:102AA000551215C0002391F28C2D0E941D130FC0EA
+:102AB000472D4F706C2DC7010E946E060E9414199D
+:102AC00006C0472D4F706C2DC7010E944107DD20C5
+:102AD000F9F00E941F1B80FD1BC0F70112820E94AB
+:102AE000191B0E940F1AC7010E9497150E94191BFB
+:102AF0000F90DF91CF911F910F91FF90EF90DF909A
+:102B0000CF90BF90AF909F908F907F900C94301A91
+:102B10000F90DF91CF911F910F91FF90EF90DF9079
+:102B2000CF90BF90AF909F908F907F9008950F931C
+:102B30001F93CF93DF93EC01888199812B813C8196
+:102B4000232BB9F09F3F11F48F3F99F0CE010E94E3
+:102B50009906882371F0688179818A810E94151B0A
+:102B60008C010E94CA1A0E949119B801CE010E94DC
+:102B70007A13DF91CF911F910F9108950E94ED1B61
+:102B80000E94FD1B0E94C21B0E94171C0E94E02095
+:102B90000E942F2080E090E00E945B1180E090E096
+:102BA0000C9471110E94DD1B0C94BE150E940A1B2F
+:102BB000292F22952F7030E02C3031054CF42A302B
+:102BC00031056CF42250310922303105A8F407C0D8
+:102BD0002C30310569F02F30310551F00DC0803FA8
+:102BE00069F018F4803E40F409C0843F29F406C01F
+:102BF00093FB882780F9089580E0089581E0089587
+:102C0000CF93DF9300D000D01F92CDB7DEB70F90E7
+:102C10000F900F900F900F90DF91CF910895CF9369
+:102C2000DF9300D000D000D0CDB7DEB726960FB628
+:102C3000F894DEBF0FBECDBFDF91CF9108951F93F3
+:102C4000CF93DF93C091850116E080918601C8176C
+:102C500099F0D0E01C9FF0011D9FF00D1124E95761
+:102C6000FE4F4081518162817381848195810E94F0
+:102C70000F162196C770E9CFDF91CF911F9108956C
+:102C80004091B7015091B8016091B9017091BA01BA
+:102C90008091BB019091BC010C940F168091BC01F6
+:102CA00082958F7009F054C08091B901882309F48E
+:102CB0004FC080918501A09186016091B70170910C
+:102CC000B8014091BA015091BB01B6E08A1709F4EE
+:102CD0003FC090E041155105C1F17F3F11F46F3FB6
+:102CE000A1F1B89FF001B99FF00D1124E957FE4FF3
+:102CF000218172132AC02081621327C022812111F1
+:102D000024C0238134812417350710F42150310960
+:102D1000241B350B283C3105C0F42091BC012F70D9
+:102D200020612093BC0126E0289FF001299FF00D2F
+:102D30001124E457FE4F80818F708061808387EB80
+:102D400091E00E9497150C941F1601968770BECFD4
+:102D50000895CF92DF92EF92FF920F931F93CF933C
+:102D6000DF93CDB7DEB762970FB6F894DEBF0FBE24
+:102D7000CDBF8C0185E0F801DE011D9601900D921A
+:102D80008A95E1F7D8014C9111965C9111971296B2
+:102D90006C9112971396CD90DC9014973091B701F7
+:102DA0007091B8018091BA019091BB01009709F42C
+:102DB0006BC17F3F19F43F3F09F466C1E090B90150
+:102DC000EE2009F4C0C02091BC01C816D90628F035
+:102DD000F601E81BF90BCF0104C0809590958C0D8E
+:102DE0009D1DFF24F394883C910578F0F12C207F01
+:102DF00009F0C6C07C2DD98AC88A89890E9400162C
+:102E000087EB91E00E949715B1C0822F807F09F077
+:102E100046C0751314C0341312C0611110C02F7056
+:102E200020612093BC010E94401687EB91E00E9434
+:102E300097158091BC01D80115968C932EC0CD2892
+:102E400019F15F3F11F44F3FF9F0F62E61111CC0EC
+:102E5000809185012091860136E0821709F45AC0DD
+:102E600090E0389FF001399FF00D1124E957FE4F93
+:102E70007181571306C07081471303C072817111AD
+:102E800003C001968770E9CFF62E662309F418C1B6
+:102E90008091BC0181608093BC01F12C11C175133C
+:102EA00008C0341306C0611104C08091BC01D80170
+:102EB000C3C04D875E878D859E856A8B0E94D6151F
+:102EC0006A898823E1F16623D1F12091BC01822F28
+:102ED00082958F7090E0029774F08091B701909185
+:102EE000B80198878F831986DB86CA862C87CE0126
+:102EF00007960E94971586E0F801A7EBB1E00190D4
+:102F00000D928A95E1F70E944E160E944016FF240A
+:102F1000F394D6C04D875E878D859E850E940A1BDF
+:102F2000292F22952F7030E0223031050CF0BCC0E3
+:102F30009F7009F0B6C0805E883008F4C1C0C80137
+:102F40000E949715E4CFC816D90608F453C0F601BD
+:102F5000E81BF90BCF01883C910508F450C0F12C17
+:102F60007C2DD98AC88A89890E940016E7EBF1E096
+:102F700086E0DF011D928A95E9F70E944016A0C005
+:102F8000751314C0341312C0611110C08091BC01BC
+:102F9000F8018583C8010E94971586E0E7EBF1E010
+:102FA000DF011D928A95E9F7FE2C8AC04D875E8766
+:102FB0008D859E856A8B0E94D6156A89882309F4BF
+:102FC000BECF662309F4BBCF2091BC01822F82952E
+:102FD0008F7090E002970CF48ECF8091B7019091A2
+:102FE000B8019A8389831B82DD82CC822E83CE0135
+:102FF00001967FCF809590958C0D9D1DACCFF62EC0
+:10300000662309F49CCF75132EC034132CC0209175
+:10301000BC0120FD1FC0822F82958F70D9F0D8018E
+:1030200015962C9315978F3049F08F5F982F9295B6
+:10303000907F822F8F70892B15968C93C8010E94E8
+:10304000971586E0F801A7EBB1E001900D928A9503
+:10305000E1F793CF86E0F801A7EBB1E001900D9284
+:103060008A95E1F72DC04D875E878D859E850E94EC
+:10307000D615811140CF8091BC0181608093BC0145
+:10308000C8010E9497151CC0662309F458CF4D87CC
+:103090005E878D859E850E94D615882309F44FCFC3
+:1030A0002ACF811148CF0CC0243031050CF047CF16
+:1030B0009F7009F440CFF8019581907F09F03BCFD4
+:1030C0008F2D62960FB6F894DEBF0FBECDBFDF9195
+:1030D000CF911F910F91FF90EF90DF90CF900895C7
+:1030E0001F93CF93DF93CDB7DEB72C970FB6F8942D
+:1030F000DEBF0FBECDBF4F83588769877A878B8726
+:103100009C87CE0107960E94A916882369F08F81BB
+:1031100098852A853B85232BF1F19F3F09F063C0F9
+:103120008F3F09F060C037C086E0FE013796DE01B0
+:10313000119601900D928A95E1F76F817885EA8565
+:10314000FB85309741F17F3F11F46F3F21F12091D2
+:10315000860130E0C9010196877099274091850169
+:1031600050E08417950709F447C069837A83FD838B
+:10317000EC8396E0929FD001939FB00D1124A95744
+:10318000BE4FFE01319601900D929A95E1F7809322
+:1031900086010E941F1616E080918501909186019C
+:1031A0008917C1F1189FC001112489579E4F0E94B1
+:1031B000A916882379F1E09185011E9FF001112461
+:1031C000E957FE4F408151816281738184819581ED
+:1031D0000E940F168091850190E0019687709927D3
+:1031E00080938501D9CF4F81588569857A858B85F4
+:1031F0009C850E940F16CFCF0E94D2151092860197
+:1032000010928501E7EBF1E086E0DF011D928A95DF
+:10321000E9F7C1CF2C960FB6F894DEBF0FBECDBF35
+:10322000DF91CF911F910895EF92FF920F931F931B
+:10323000CF93DF938C01009709F46CC0F12CEE243E
+:10324000E394E8012196F8018491843740F48430B6
+:1032500008F051C0813081F0823019F15BC08537B0
+:1032600009F444C0A8F19CE7980F903708F052C0C9
+:103270008F770E941D1341C00E5F1F4FFE01C49146
+:1032800080E28C0F883048F4C7708E2D01C0880F03
+:10329000CA95EAF70E94F01B14C08C2F0E945512A9
+:1032A0002DC00E5F1F4FFE01C49180E28C0F88304D
+:1032B00058F4C7708E2D01C0880FCA95EAF70E9496
+:1032C000F61B0E94171C1AC08C2F0E941D1316C0DB
+:1032D0000E5F1F4FFE01C491CC2381F08FE99FE068
+:1032E0000197F1F700C00000C150F6CF0E5F1F4FED
+:1032F000FE01F49003C00E9455128E018F2D882389
+:1033000009F49FCFEFE9FFE03197F1F700C000002B
+:103310008150F5CFDF91CF911F910F91FF90EF90EA
+:10332000089508956093C1017093C2018093C30111
+:103330009093C4010C94BE150F931F930091C1018B
+:103340001091C2012091C3013091C401DC01CB0175
+:10335000802B912BA22BB32B8093C1019093C201A0
+:10336000A093C301B093C4011F910F910C94BE159B
+:103370000F931F930091C1011091C2012091C301CD
+:103380003091C401DC01CB0180239123A223B3231C
+:103390008093C1019093C201A093C301B093C40173
+:1033A0001F910F910C94BE150F931F930091C101B3
+:1033B0001091C2012091C3013091C401DC01CB0105
+:1033C00080279127A227B3278093C1019093C20140
+:1033D000A093C301B093C4011F910F910C94BE152B
+:1033E0001092BD011092BE011092BF011092C00157
+:1033F0000C94BE1541E050E060E070E004C0440F62
+:10340000551F661F771F8A95D2F74093BD015093D1
+:10341000BE016093BF017093C0010C94BE1541E0E2
+:1034200050E060E070E004C0440F551F661F771F36
+:103430008A95D2F78091BD019091BE01A091BF0104
+:10344000B091C001482B592B6A2B7B2B4093BD01B7
+:103450005093BE016093BF017093C0010C94BE15E0
+:1034600041E050E060E070E004C0440F551F661F6B
+:10347000771F8A95D2F74095509560957095809109
+:10348000BD019091BE01A091BF01B091C001482340
+:1034900059236A237B234093BD015093BE0160935F
+:1034A000BF017093C0010C94BE1541E050E060E094
+:1034B00070E004C0440F551F661F771F8A95D2F72E
+:1034C0008091BD019091BE01A091BF01B091C0015A
+:1034D000482759276A277B274093BD015093BE0197
+:1034E0006093BF017093C0010C94BE150F931F939E
+:1034F0000091BD011091BE012091BF013091C0012A
+:10350000DC01CB01802B912BA22BB32B8093BD012F
+:103510009093BE01A093BF01B093C0011F910F9182
+:103520000C94BE150F931F930091BD011091BE0125
+:103530002091BF013091C001DC01CB018023912398
+:10354000A223B3238093BD019093BE01A093BF013A
+:10355000B093C0011F910F910C94BE150F931F9350
+:103560000091BD011091BE012091BF013091C001B9
+:10357000DC01CB0180279127A227B3278093BD01CF
+:103580009093BE01A093BF01B093C0011F910F9112
+:103590000C94BE150895CF92DF92EF92FF920F9395
+:1035A0001F93CF93DF938C01C090C101D090C201D3
+:1035B000E090C301F090C4018091BD019091BE01E3
+:1035C000A091BF01B091C001C82AD92AEA2AFB2ADA
+:1035D000CFE1D0E0D701C6010C2E04C0B695A79567
+:1035E000979587950A94D2F780FF06C0B8018C2F73
+:1035F0000E949709019721F4219760F780E001C0AC
+:103600008C2FDF91CF911F910F91FF90EF90DF9062
+:10361000CF900895CF93DF93EC010E94CB1ABE01A7
+:103620000E949709DF91CF910895CB010E940A1B58
+:1036300008958091C501859585958595089580911A
+:10364000C5018770089598E0899F90011124262B69
+:103650002093C5010C940F1A2091C50180958223F7
+:103660008093C501982F977069F430E0482F552753
+:1036700047FD50952417350729F085958595859543
+:103680000C94301A08959091C501977081E009F467
+:1036900080E0089590910C01992321F090910D0103
+:1036A000911109C020910E0130910F01F90132965C
+:1036B0009FEF40E01FC0982F9695969596959F3066
+:1036C00050F5E0910E01F0910F01E90FF11D8770A7
+:1036D00021E030E0A90102C0440F551F8A95E2F7AE
+:1036E000CA019181892B818308959F3F39F04F5FF3
+:1036F0004E3041F051915813F8CF0DC05111F7CF12
+:10370000942FF5CF9F3F39F0F901E90FF11D97FD97
+:10371000FA9582830895089590910C01992321F0E0
+:1037200090910D01911109C020910E0130910F016E
+:10373000F9013296205F3F4F1FC0982F96959695BE
+:1037400096959F30F0F4E0910E01F0910F01E90F92
+:10375000F11D877021E030E0A90102C0440F551F20
+:103760008A95E2F7CA018095918189238183089522
+:103770003196E217F30729F090819813F9CF108260
+:10378000F7CF089581E090E0E0910E01F0910F01F4
+:10379000E80FF91F1082019680319105A9F708956D
+:1037A0009091D901892B8093D901089580959091AA
+:1037B000D90189238093D90108951092D9010895E0
+:1037C0009091D801892B8093D8010895809590918C
+:1037D000D80189238093D80108951092D8010895C3
+:1037E0009091D701892B8093D7010895809590916E
+:1037F000D70189238093D70108951092D7010895A6
+:103800008093C60108951092C601089580910E011B
+:1038100090910F01FC0131969C01205F3F4F80E0A9
+:10382000919191118F5FE217F307D1F70895E0911D
+:103830000E01F0910F018091D9018083E0910E017A
+:10384000F0910F0190818091D801892B8083E091C4
+:103850000E01F0910F0190818091D701892B808317
+:103860008091C601882361F0E0910E01F0910F0173
+:103870009081892B80830E94061C81111092C601C1
+:1038800080910E0190910F010C94451120E000975A
+:1038900039F0AC0141505109842395232F5FF7CFB4
+:1038A000822F08958091F101843021F11092DB0183
+:1038B00020E488E190E00FB6F894A895809360002A
+:1038C0000FBE2093600080E00E94320A83B7817FA0
+:1038D000846083BF83B7816083BF7894889583B702
+:1038E0008E7F83BF88E10FB6F894809360001092BA
+:1038F00060000FBE0895089508950E947B1C0E94E9
+:10390000A4040E947C1C0E94990591E0811101C0D1
+:1039100090E0892F08950E94D2150E9439110C94CD
+:10392000320A82E084BD93E095BD9AEF97BD809303
+:103930006E0008952FB7F8948091DC019091DD011D
+:10394000A091DE01B091DF012FBF0895CF92DF92E9
+:10395000EF92FF920F931F932FB7F8944091DC01E1
+:103960005091DD016091DE017091DF012FBF6A018E
+:103970007B01EE24FF248C0120E030E0C016D1064C
+:10398000E206F30610F4415051099A01281B390B45
+:10399000C9011F910F91FF90EF90DF90CF90089594
+:1039A0001F920F920FB60F9211248F939F93AF9394
+:1039B000BF938091DC019091DD01A091DE01B09177
+:1039C000DF010196A11DB11D8093DC019093DD0103
+:1039D000A093DE01B093DF01BF91AF919F918F91D2
+:1039E0000F900FBE0F901F9018950E94360EF894FE
+:1039F0002FEF87EA91E6215080409040E1F700C028
+:103A0000000087E090EBDC018093FB019093FC01C8
+:103A1000A093FD01B093FE019CE088E10FB6F894FD
+:103A2000A895809360000FBE90936000FFCFEF9247
+:103A3000FF920F931F93CF93DF93D82FCDE08C2F5E
+:103A40000E94920505E010E0E82EF12CC701002E3F
+:103A500002C0959587950A94E2F780FF09C0602F10
+:103A60007C2F80E00E944207D81302C081E006C08C
+:103A70000150110958F7C15010F780E0DF91CF9144
+:103A80001F910F91FF90EF900895CF93C82F8CE274
+:103A90000E94171D882321F08C2FCF910C94171DA5
+:103AA00080E0CF910895CF930E949A1E811102C0A9
+:103AB0000E94801EC5E6C15049F00E94A4048FE315
+:103AC0009CE90197F1F700C00000F5CF89E20E9460
+:103AD000451D811113C18AE20E94451D81110E947A
+:103AE000801E85E00E94451D81110E94F51C0E94E8
+:103AF000A51E8093DA0187E00E94451D8823A9F165
+:103B00008BE10E94451D882351F08091DA0181FBF1
+:103B1000222720F991E0922790FB81F90EC08EE0D8
+:103B20000E94451D882361F08091DA0182FB2227E3
+:103B300020F991E0922790FB82F98093DA0115C079
+:103B400080E10E94451D9091DA01882341F093FBAA
+:103B5000222720F981E0822780FB93F904C0892F76
+:103B6000809580FB90F99093DA018091DA010E94B0
+:103B7000A91E0E94B71E8093FA0180EE0E94451D87
+:103B8000882341F08091FA01982F909590FB80F95D
+:103B90008093FA0189E30E94451D882359F08091A2
+:103BA000FA0181FB222720F991E0922790FB81F90D
+:103BB0008093FA0182EE0E94451D882359F080917E
+:103BC000FA0182FB222720F991E0922790FB82F9EB
+:103BD0008093FA0186EE0E94451D882359F080915A
+:103BE000FA0183FB222720F991E0922790FB83F9C9
+:103BF0008093FA0183EE0E94451D882359F080913D
+:103C0000FA0184FB222720F991E0922790FB84F9A6
+:103C10008093FA0185E30E94451D882359F0809125
+:103C2000FA0185FB222720F991E0922790FB85F984
+:103C30008093FA0181E30E94451D882359F0809109
+:103C4000FA0186FB222720F991E0922790FB86F962
+:103C50008093FA0181E10E94451D882359F08091EB
+:103C6000FA0187FB222720F991E0922790FB87F940
+:103C70008093FA018091FA010E94BB1E8091FA01A3
+:103C800087FB882780F980930D0187E20E94451DFC
+:103C9000C82F8EE10E94451D8111C2608FE10E94F4
+:103CA000451D8111C46080E20E94451D8111C860DC
+:103CB00081E20E94451D8111C06182E20E94451D82
+:103CC0008111C06283E20E94451D8111C06484E2BB
+:103CD0000E94451D882311F0C06802C0CC2329F042
+:103CE0008C2F0E94B21E6C2F03C00E94AE1E682F44
+:103CF00070E080E090E0CF910C949219CF910895FC
+:103D00006DEE7EEF80E090E00E94EC2460E082E0C7
+:103D100090E00E94DA2460E083E090E00E94DA24E0
+:103D200060E084E090E00E94DA2460E085E090E0CA
+:103D30000C94DA2480E090E00E94D42421E08D3EAF
+:103D40009E4F09F020E0822F089582E090E00C94CD
+:103D5000CC24682F82E090E00C94DA2483E090E099
+:103D60000C94CC24682F83E090E00C94DA2484E057
+:103D700090E00C94CC24682F84E090E00C94DA243A
+:103D80008091E20180FF0BC06091130185E0689F84
+:103D9000B001112475956795759567952BC081FFC6
+:103DA00009C06091130185E0689FB00111247595E9
+:103DB000679520C082FF07C06091130185E0689F6E
+:103DC000B001112417C09091E3019923D1F06091C3
+:103DD0001201961788F72091130185E0289F900122
+:103DE0001124929FA001939F500D112470E0CA01ED
+:103DF0000E949E246038710540F46115710539F008
+:103E000002C065E070E0862F08958FE7089581E095
+:103E100008958091E20180FF08C06091110170E077
+:103E2000759567957595679521C081FF06C060916E
+:103E3000110170E07595679519C082FF04C060910B
+:103E4000110170E010C09091E3019923C1F06091DD
+:103E500010019617A0F780911101899FC0011124CC
+:103E600070E00E949E246038710528F46115710588
+:103E700021F0862F08958FE7089581E0089561E08D
+:103E800070E0F4CF803F21F40E94C01E819504C0F1
+:103E9000813F29F40E94C01E8093E6010895823F6D
+:103EA00021F40E94C01E819504C0833F29F40E9422
+:103EB000C01E8093E5010895893F19F40E94091FEF
+:103EC00005C08A3F31F40E94091F81958093E70164
+:103ED00008958B3F21F40E94091F819504C08C3FF7
+:103EE00029F40E94091F8093E8010895843F21F47A
+:103EF0008091E401816017C0853F21F48091E40145
+:103F0000826011C0863F21F48091E40184600BC07F
+:103F1000873F21F48091E401886005C0883F31F437
+:103F20008091E40180618093E40108958D3F21F444
+:103F30008091E20181600BC08E3F21F48091E2010B
+:103F4000826005C08F3F29F48091E20184608093F4
+:103F5000E2010895803F39F48091E60187FF6CC04B
+:103F60001092E60169C0813F29F48091E60118169C
+:103F7000BCF362C09091E501823F29F497FF5CC0D9
+:103F80001092E50159C0833F19F41916CCF354C0BF
+:103F9000893F41F48091E70118160CF04DC0109252
+:103FA000E7014AC08A3F29F48091E70187FF44C0B6
+:103FB000F6CF8B3F39F48091E80187FF3DC0109226
+:103FC000E8013AC08C3F29F48091E8011816BCF34F
+:103FD00033C0843F21F48091E4018E7F17C0853F78
+:103FE00021F48091E4018D7F11C0863F21F48091FE
+:103FF000E4018B7F0BC0873F21F48091E401877F30
+:1040000005C0883F31F48091E4018F7E8093E40104
+:1040100013C08D3F21F48091E2018E7F0BC08E3F53
+:1040200021F48091E2018D7F05C08F3F29F48091BA
+:10403000E2018B7F8093E2018091E50181110EC046
+:104040008091E60181110AC08091E701811106C0CB
+:104050008091E801811102C01092E301089584EE7D
+:1040600091E00E9450110E949A1C9093E10180936C
+:10407000E00108951F93CF93DF938091E001909129
+:10408000E1010E94A61CAC019091E301992321F06B
+:104090002091140130E006C0209115018AE0289F8C
+:1040A000900111244217530708F486C08091E5015E
+:1040B000C091E601D091E7011091E801811107C09C
+:1040C000C11176C0D11174C0111172C075C09F3F6B
+:1040D00019F09F5F9093E301181624F40E94C01E0C
+:1040E0008093E5018091E50187FF05C00E94C01E15
+:1040F00081958093E5011C1624F40E94C01E8093D4
+:10410000E6018091E60187FF05C00E94C01E8195EF
+:104110008093E6016091E501662339F1C091E601E3
+:10412000CC2319F1772767FD7095872F972F0E9471
+:10413000AF2323E333E343E35FE30E9413240E94AE
+:104140007C236093E5016C2F772767FD7095872F9F
+:10415000972F0E94AF2323E333E343E35FE30E94FF
+:1041600013240E947C236093E6011D1624F40E9410
+:10417000091F8093E7018091E70187FF05C00E9436
+:10418000091F81958093E701111624F40E94091FED
+:104190008093E8018091E80187FF05C00E94091F14
+:1041A00081958093E801DF91CF911F910C942F208E
+:1041B0009F3F09F08ECF96CFDF91CF911F91089549
+:1041C000E4EEF1E085E0DF011D928A95E9F71092B7
+:1041D000E3011092E2010895833081F128F48130E7
+:1041E00059F08230D1F00895853009F449C0B8F112
+:1041F000863009F456C0089580911501262F30E0CD
+:10420000280F311D2F3F310524F4680F60931501ED
+:1042100008958FEF80931501089580911401262F42
+:1042200030E0280F311D2F3F310524F4680F6093D3
+:10423000140108958FEF8093140108958091130164
+:10424000262F30E0280F311D2F3F310524F4680F51
+:104250006093130108958FEF809313010895809167
+:104260001201262F30E0280F311D2F3F310524F495
+:10427000680F6093120108958FEF809312010895E3
+:1042800080911101262F30E0280F311D2F3F31057D
+:1042900024F4680F6093110108958FEF809311014A
+:1042A000089580911001262F30E0280F311D2F3FF7
+:1042B000310524F4680F6093100108958FEF809307
+:1042C00010010895833011F128F4813049F08230D3
+:1042D00091F00895853081F120F18630C1F1089583
+:1042E00080911501681720F4861B809315010895AD
+:1042F00010921501089580911401681720F4861B0F
+:10430000809314010895109214010895809113016F
+:10431000681720F4861B80931301089510921301EF
+:10432000089580911201681720F4861B8093120172
+:10433000089510921201089580911101681720F4D8
+:10434000861B8093110108951092110108958091A8
+:104350001001681720F4861B8093100108951092B5
+:10436000100108950F931F938D3109F46BC008F06D
+:104370003FC08E3009F47FC0C0F4873009F469C0B3
+:1043800068F4863009F0B1C08091DA01817F8E7FB8
+:104390008093DA0181E08093EA01A8C0883009F4B3
+:1043A000A2C08B3009F49FC0A0C0863109F49BC025
+:1043B00078F4803109F472C0813109F096C00E940E
+:1043C000D21590910D0181E0892780930D018BC05A
+:1043D000893109F488C08B3109F087C08091DA01F6
+:1043E00081FB222720F991E0922790FB81F94CC0B4
+:1043F000853309F470C048F4873209F46CC008F4BE
+:1044000059C0893209F467C070C0833438F48A33E4
+:1044100008F04EC0883309F466C067C0833409F4DD
+:104420005AC0883409F061C00E94D2150FEF13ED15
+:1044300020E3015010402040E1F700C000000E943E
+:10444000F51C51C00E9436230E9439110E94320A85
+:104450004AC09091DA01892F8095817080FB90F994
+:1044600029F0966098609093DA0140C0997F977F19
+:104470009093DA0138C08091DA0182FB222720F97B
+:1044800091E0922790FB82F98093DA01992359F108
+:104490008091DA0181608093DA0125C08091DA0190
+:1044A00083FB222720F991E0922790FB83F9ECCF40
+:1044B000895301C08D5141E050E060E070E08A0115
+:1044C0009B0104C0000F111F221F331F8A95D2F7D2
+:1044D000C901B80104C061E070E080E090E00E9492
+:1044E00092190E94D21581E001C080E01F910F91C6
+:1044F000089580E0089580E00895CF93C82F8091BB
+:10450000EA01813079F018F08230E9F187C0E0915A
+:104510000E01F0910F018081813169F0823209F042
+:104520007FC009C0E0910E01F0910F0180818131BF
+:1045300011F0823261F48C2F0E947922811104C023
+:104540008C2F0E94B2211DC081E090E01AC08C2FF8
+:104550000E947B22811114C0C43179F048F4CB3021
+:1045600079F0C03109F060C082E08093EA0108C0B0
+:10457000C93219F0C83321F057C01092EA0154C073
+:1045800081E0817053C0C93289F118F5C43171F1ED
+:10459000A8F4C73009F046C08AE08093150194E181
+:1045A0009093140193E0909313018093120188E09B
+:1045B0008093110188E28093100134C0CE51C6303F
+:1045C00088F5EC2FF0E0E65DFE4F80818093E901F5
+:1045D00029C0CE34E9F020F4CB3421F56AE013C0D1
+:1045E000C13579F0C235F1F461E00DC08091E90187
+:1045F000882319F01092E90115C081E08093EA0147
+:1046000015C061E006C08091E9010E94EC200AC05B
+:104610006AE08091E9010E94622104C01092EA01DF
+:1046200080E004C081E002C080E0ABCFCF9108956C
+:10463000E1E8F0E080818860808380818160808310
+:104640008FB7F89493E09093890090ED9093880051
+:104650008FBF0895EFE6F0E0808182608083089547
+:10466000EFE6F0E080818D7F80830895EFE6F0E053
+:10467000908182E08927808308951F920F920FB660
+:104680000F9211242F933F934F935F936F937F93D8
+:104690008F939F93AF93BF93EF93FF938091EB0121
+:1046A0009091EC0101969093EC018093EB018111C4
+:1046B00003C082E00E94320AE091EC01E695E695A3
+:1046C000F0E0EB59F84FE4918091EB018E1303C0B9
+:1046D00080E00E94320AFF91EF91BF91AF919F91CC
+:1046E0008F917F916F915F914F913F912F910F909B
+:1046F0000FBE0F901F90189504D06894B1118DC013
+:10470000089570D088F09F5790F0B92F9927B7512E
+:10471000A0F0D1F0660F771F881F991F1AF0BA9585
+:10472000C9F712C0B13081F077D0B1E0089574C0FC
+:10473000672F782F8827B85F39F0B93FCCF386957B
+:1047400077956795B395D9F73EF4909580957095D8
+:1047500061957F4F8F4F9F4F0895E89409C097FB55
+:104760003EF490958095709561957F4F8F4F9F4F48
+:104770009923A9F0F92F96E9BB279395F69587958C
+:1047800077956795B795F111F8CFFAF4BB0F11F44F
+:1047900060FF1BC06F5F7F4F8F4F9F4F16C08823F6
+:1047A00011F096E911C0772321F09EE8872F762F2C
+:1047B00005C0662371F096E8862F70E060E02AF06D
+:1047C0009A95660F771F881FDAF7880F9695879559
+:1047D00097F9089557FD9058440F551F59F05F3FC2
+:1047E00071F04795880F97FB991F61F09F3F79F013
+:1047F00087950895121613061406551FF2CF469595
+:10480000F1DF08C0161617061806991FF1CF869516
+:104810007105610508940895E894BB2766277727FA
+:10482000CB0197F908950BD078C069D028F06ED0ED
+:1048300018F0952309F05AC05FC01124EECFCADFEB
+:10484000A0F3959FD1F3950F50E0551F629FF001A3
+:10485000729FBB27F00DB11D639FAA27F00DB11DFC
+:10486000AA1F649F6627B00DA11D661F829F222785
+:10487000B00DA11D621F739FB00DA11D621F839F0C
+:10488000A00D611D221F749F3327A00D611D231FE2
+:10489000849F600D211D822F762F6A2F11249F5730
+:1048A00050408AF0E1F088234AF0EE0FFF1FBB1F53
+:1048B000661F771F881F91505040A9F79E3F5105F2
+:1048C00070F014C0AACF5F3FECF3983EDCF38695FE
+:1048D00077956795B795F795E7959F5FC1F7FE2B9D
+:1048E000880F911D9695879597F9089597F99F6779
+:1048F00080E870E060E008959FEF80EC0895002468
+:104900000A941616170618060906089500240A9434
+:1049100012161306140605060895092E0394000CBA
+:1049200011F4882352F0BB0F40F4BF2B11F460FF49
+:1049300004C06F5F7F4F8F4F9F4F089597FB072EE7
+:1049400016F4009407D077FD09D00E94B82407FC24
+:1049500005D03EF4909581959F4F0895709561958F
+:104960007F4F0895EE0FFF1F0590F491E02D0994FD
+:10497000AA1BBB1B51E107C0AA1FBB1FA617B70785
+:1049800010F0A61BB70B881F991F5A95A9F78095A1
+:104990009095BC01CD010895F999FECF92BD81BDDE
+:1049A000F89A992780B50895A8E1B0E042E050E078
+:1049B0000C94F424262FF999FECF92BD81BDF89A6C
+:1049C000019700B4021639F01FBA20BD0FB6F89453
+:1049D000FA9AF99A0FBE08950196272F0E94DB24B8
+:1049E0000C94DA24DC01CB01FC01F999FECF06C05E
+:1049F000F2BDE1BDF89A319600B40D92415050409D
+:084A0000B8F70895F894FFCF08
+:104A08000220340AC20A9F0A6B0A370A0101C70149
+:104A180028080A03140A404D36392507D806A20685
+:104A28006906FC0515062E0647060102030405065D
+:044A38000708090062
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/bepo/keymap.c b/keyboards/ergodox_ez/keymaps/bepo/keymap.c new file mode 100644 index 000000000..921a94d63 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/bepo/keymap.c @@ -0,0 +1,311 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_bepo.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 + +#define KP_00 0 +#define CA_Fx 1 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Base 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_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| + * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' + * | | | L_Num| | CA_Fx| | | + * | Space|LShift|------| |------|RShift|Enter | + * | | |L_FNav| |L_FNav| | | + * `--------------------' `--------------------' + */ +[BASE] = 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_SPC, KC_LSHIFT, MO(FNAV), +// Right hand + KC_SLCK, BP_AT, BP_PLUS, BP_MINUS, BP_SLASH, BP_ASTR, BP_EQUAL, + KC_CAPSLOCK, 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_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), +MO(FNAV), KC_RSHIFT, KC_ENTER), +/* Keymap 1: QWERTY system compatibility layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | $ | " | < | > | ( | ) |Delete| |ScroLo| @ | + | - | / | * | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | % | 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 | + * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' + * | BEPO | |LSuper| LCtrl| LAlt| |Escape| L_Mse| | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause| + * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' + * | | | L_Num| | | | | + * | Space|LShift|------| |------|RShift|Enter | + * | | |L_FNav| |L_FNav| | | + * `--------------------' `--------------------' + */ +[QWER] = 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), +// 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, +KC_TRNS, +MO(FNAV), MO(SQWER), KC_ENTER), +/* Keymap 2: QWERTY shifted system compatibility 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 | + * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' + * | BEPO | |LSuper| LCtrl| LAlt| |Escape| L_Mse| | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause| + * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' + * | | | L_Num| | | | | + * | Space|LShift|------| |------|RShift|Enter | + * | | |L_FNav| |L_FNav| | | + * `--------------------' `--------------------' + */ +[SQWER] = 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), + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, +// Right hand + KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_TRNS, KC_EXLM, S(KC_V), S(KC_D), S(KC_L), S(KC_J), S(KC_Z), + S(KC_C), S(KC_T), S(KC_S), S(KC_R), S(KC_N), S(KC_M), + KC_TRNS, S(KC_SLASH), S(KC_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 3: QWERTY alted system compatibility 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 | + * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' + * | BEPO | |LSuper| LCtrl| LAlt| |Escape| L_Mse| | |Insert| | AltGr| RCtrl|RSuper|PrntSc| Pause| + * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' + * | | | L_Num| | | | | + * | _ |LShift|------| |------|RShift|Enter | + * | | |L_FNav| |L_FNav| | | + * `--------------------' `--------------------' + */ +[AQWER] = 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), +// 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_NO, KC_INS, +KC_TRNS, +MO(FNAV), MO(SQWER), KC_ENTER), +/* Keymap 4: function / navigation layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 |VolMut| | | F6 | F7 | F8 | F9 | F10 | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | |VolDwn| | | PgUp | Home | Up | End | F11 | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------| PgDn | Left | Down | Right| F12 | | + * |--------+------+------+------+------+------| VolUp| | |------+------+------+------+------+--------| + * | | Undo | Cut | Copy | Paste| | | | | | | | | | | + * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' + * | | | | | | | | | | | | | | | | | | + * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[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_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_NO, KC_TRNS, KC_TRNS, +// Right hand + KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO, + KC_NO, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_F11, KC_NO, + 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_NO), +/* Keymap 5: numeric layer, sends keypad codes + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | + | - | / | * | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | 7 | 8 | 9 | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------| | 4 | 5 | 6 | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | 1 | 2 | 3 | | | + * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' + * | | | | | | | | | | | | | 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| | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------,-------------. ,-------------`-------------+------+------+------+------+--------' + * | | | | | | | | | | | | | | | | | | + * `----------------------------------' ,------|------|------| |------+------+------. `----------------------------------' + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[MSE] = 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, +// 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[] = { +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case KP_00: + if (record->event.pressed) { + return MACRO( T(KP_0), D(KP_0), END ); + } else { + 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/coderkun_neo2/Makefile b/keyboards/ergodox_ez/keymaps/coderkun_neo2/Makefile new file mode 100644 index 000000000..e7b2d0a65 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/coderkun_neo2/Makefile @@ -0,0 +1 @@ +UNICODE_ENABLE = yes
\ No newline at end of file diff --git a/keyboards/ergodox_ez/keymaps/coderkun_neo2/compiled.hex b/keyboards/ergodox_ez/keymaps/coderkun_neo2/compiled.hex new file mode 100644 index 000000000..5aa02ca4b --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/coderkun_neo2/compiled.hex @@ -0,0 +1,1195 @@ +:100000000C9425030C9469030C9469030C94690304
+:100010000C9469030C9469030C9469030C946903B0
+:100020000C9469030C9469030C94890E0C945B0F77
+:100030000C9469030C9469030C9469030C94690390
+:100040000C9469030C9465230C9469030C94690364
+:100050000C9469030C94F81C0C9469030C946903C8
+:100060000C9469030C9469030C9469030C94690360
+:100070000C9469030C9469030C9469030C94690350
+:100080000C9469030C9469030C9469030C94690340
+:100090000C9469030C9469030C9469030C94690330
+:1000A0000C9469030C9469030C946903C80FEA0F5C
+:1000B000D810EA0FD8102F105210D810A710BA106D
+:1000C00089138913B813B813EE130E143F153F1597
+:1000D00019143F15C914C91430153F153F153915AA
+:1000E000D614D614D614D614D614D614D614D614C0
+:1000F000D614D614D614D614D614D614D614D614B0
+:10010000E814F514FC1403150D1500F001F002F0CD
+:10011000F0A3F0A42B0034003900E100E00000005F
+:100120001E00140004001D00E200007F1F001A00E2
+:1001300016001B00035228002000080007000600DC
+:10014000E3002C00210015000900190064002D00B7
+:10015000220017000A000500000050002E004A008F
+:1001600000000154000052002E004D000000025417
+:100170000000510023001C000B00110000004F0084
+:10018000240018000D001000E6002D0025000C00D2
+:100190000E003600E7002C00260012000F0037008A
+:1001A000035228002700130033003800E6000077D0
+:1001B0002A002F003100E500E40000002B000600BB
+:1001C0003900E100E00000001E00130007003400C9
+:1001D000E200007F1F0017000B00140003522800EC
+:1001E0002000090033001500E3002C0021000E0060
+:1001F00012001A0004522D0022000F000C00110002
+:10020000000050002E004A000000010000005200D3
+:100210002E004D00000001000000510023000500E9
+:1002200018000D0000004F002400040038001000EA
+:1002300004522D00250016001C003600E7002C009B
+:1002400026000A0008003700035228002700190082
+:100250001B002D00E60000772A001D003100E5009C
+:10026000E40000002B001D000000E100E0000000A1
+:100270001E001B0018002F00E200007F1F00190065
+:100280000C0033000352280020000F00040034004B
+:10029000E3002C00210006000800130004522D008A
+:1002A00022001A0012001C00000050002E004A001C
+:1002B00000000100000052002E004D00000001006F
+:1002C0000000510023000E001600050000004F0042
+:1002D00024000B001100100004522D0025000A001C
+:1002E00015003600E7002C00260009001700370033
+:1002F000035228002700140007000D00E6000077D5
+:100300002A002D000000E500E400000001000100CB
+:1003100001000100010000000100010001000100D6
+:1003200001000100010001000100010001000100C5
+:10033000010001000100010001000100010013A7FC
+:1003400015A701000100F4000100010001000100F7
+:100350000000F20001000100000001000000F000B8
+:1003600001000100000001000000F1000100010097
+:10037000010001000000F300010042003E003A00CD
+:100380000100F500010043003F003B0001000100B7
+:100390000100440040003C00010001000100450054
+:1003A00041003D00010001000100010001000100C9
+:1003B000010000000000000000000000000000003C
+:1003C00000004B004A0029000000000000002A0045
+:1003D00050002B00010000000000520051004900B5
+:1003E0000000000000004C004F0028000100000049
+:1003F00000004E004D007A000000000000000000E8
+:1004000000000100000000000000000000000100EA
+:1004100000000000000000000000000000000000DC
+:100420000000240021001E00010000000000250043
+:1004300022001F0000000000000026002300200012
+:100440000100000000003000360000000000000045
+:1004500000003800370000000000000016034500CF
+:10046000720067006F0044006F00780020004500B4
+:100470005A00000016034500720067006F00440038
+:100480006F007800200045005A00000004030904B2
+:1004900009026D00040100A0FA0904000001030133
+:1004A0000100092111010001223F00070581030815
+:1004B000000A0904010001030102000921110100E1
+:1004C00001224D000705820308000A090402000109
+:1004D00003000000092111010001223600070583F5
+:1004E0000308000A090403000103000000092111A8
+:1004F00001000122390007058403100001120110D8
+:100500000100000008EDFE071301000102000105D3
+:10051000010906A101050719E029E7150025019544
+:1005200008750181020508190129059505750191D4
+:10053000029501750391010507190029771500251A
+:1005400001957875018102C005010980A10185022C
+:1005500016010026B7001A01002AB7007510950190
+:100560008100C0050C0901A1018503160100269C2C
+:10057000021A01002A9C02751095018100C0050134
+:100580000902A1010901A1000509190129051500A8
+:10059000250195057501810295017503810105010C
+:1005A000093009311581257F9502750881060938C2
+:1005B0001581257F950175088106050C0A380215FD
+:1005C00081257F950175088106C0C005010906A136
+:1005D00001050719E029E715002501950875018136
+:1005E0000295017508810105081901290595057510
+:1005F0000191029501750391010507190029FF1565
+:100600000025FF950675088100C00000000000006D
+:100610000000000000010204060A0F17202C3A4ACD
+:100620005D71879DB3C7DAE9F5FCFFFCF5E9DAC730
+:10063000B39D87715D4A3A2C20170F0A0604020108
+:100640000000000000000000000011241FBECFEFDA
+:10065000DAE0DEBFCDBF04B603FE24C08091FC010A
+:100660009091FD01A091FE01B091FF018730904B68
+:10067000A740B04BB9F41092FC011092FD0110920A
+:10068000FE011092FF0114BE84B7877F84BF88E10A
+:100690000FB6F89480936000109260000FBEE0E007
+:1006A000FFE3099511E0A0E0B1E0E8E5FAE402C05B
+:1006B00005900D92A433B107D9F711E0A4E3B1E09E
+:1006C00001C01D92AC3FB107E1F70E94CD0B0C9425
+:1006D0002A250C9400001092B9008AE08093B8009B
+:1006E000089594EA9093BC009091BC0097FFFCCFD2
+:1006F0009091B900987F983021F0903111F081E00D
+:1007000008958093BB0084E88093BC008091BC0076
+:1007100087FFFCCF8091B900887F883111F0803449
+:1007200071F780E0089584E98093BC008091BC005B
+:1007300084FDFCCF08958093BB0084E88093BC00C7
+:100740008091BC0087FFFCCF9091B900987F81E039
+:10075000983209F480E0089584E88093BC00809189
+:10076000BC0087FFFCCF8091BB0008958091010100
+:10077000811115C080E40E947103809301018111F1
+:100780000CC082E10E949B0380930101811105C08E
+:100790008FEF0E949B03809301010E94930384B119
+:1007A000807F84B985B1807F85B98AB1837F8AB91A
+:1007B0008BB1837F8BB93E98469808950E9471054E
+:1007C000809301010E94B60380B38C7080BB81B31B
+:1007D000836F81BBA5E3B1E0E3E4F1E08EE08E0F2F
+:1007E00011921D928E13FCCF0C945B05BF92CF9299
+:1007F000DF92EF92FF920F931F93CF93DF9380913D
+:100800000101882379F0809134018F5F8093340156
+:10081000811108C00E94710580930101811102C0FD
+:100820000E94030505E311E0C0E0D0E0DD24D3948D
+:1008300082E0C82EEE24E394F12CC730D10500F5F8
+:1008400080910101811164C080E40E947103809352
+:100850000101811112C082E10E949B03809301017A
+:1008600081110BC0C7010C2E01C0880F0A94EAF752
+:1008700080950E949B03809301010E94930348C0CE
+:10088000CA30A1F028F4C83059F0C93061F005C071
+:10089000CC3089F070F0CD3089F0209A289810C0C3
+:1008A000219A29980DC0229A2A980AC0239A2B9837
+:1008B00007C0529A01C0539A5B9802C03E9A46986C
+:1008C00090EA9A95F1F79FB1799902C082E001C050
+:1008D00080E091709D25982B7C9902C084E001C036
+:1008E00080E0892B7D9902C038E001C030E0832B85
+:1008F0007E9902C020E101C020E0822B9FB190953B
+:10090000991F9927991F9295990F907E892B0FC057
+:1009100080910101811149C080E40E94710380939C
+:100920000101882379F1B12C0E9493038B2DF801EA
+:100930009081981719F08083C09200010E94B6033D
+:1009400021960F5F1F4FCE30D10509F076CF8091F1
+:100950000001882361F1815080930001882339F0E0
+:100960008FE99FE00197F1F700C0000020C0A3E4E9
+:10097000B1E0E5E3F1E0CF01825F91919D938E13A9
+:10098000FCCF15C083E10E949B038093010181117C
+:10099000CACF81E40E947103809301018111C3CF0A
+:1009A0000E94AC03B82EB094BFCF80E0C0CF0E94AD
+:1009B000010581E0DF91CF911F910F91FF90EF90A2
+:1009C000DF90CF90BF900895E82FF0E0ED5BFE4FF1
+:1009D0008081089508950F931F93CF93DF93C3E40D
+:1009E000D1E010E00C2F025F899190E00E941E1C64
+:1009F000180F0C13F9CF812FDF91CF911F910F9119
+:100A000008950C94D10556985E9825982D982698AF
+:100A10002E9827982F988FEF90E0909389008093DD
+:100A2000880090938B0080938A0090938D00809330
+:100A30008C00259A2D9A2FEF80E792E0215080407C
+:100A40009040E1F700C00000269A2E9A2FEF80E731
+:100A500092E0215080409040E1F700C00000279ACA
+:100A60002F9A2FEF80E792E0215080409040E1F7ED
+:100A700000C0000025982D982FEF80E792E02150CC
+:100A800080409040E1F700C0000026982E982FEF9C
+:100A900080E792E0215080409040E1F700C00000E4
+:100AA00027982F9856985E9825982D9826982E98D6
+:100AB00027982F98089589EA8093800089E0809391
+:100AC000810024982C983F988AB18F748AB96E98C7
+:100AD000479A8BB1806B8BB9769A0E9403050C9470
+:100AE000D00580E2809301018091510181110EC0F7
+:100AF0000E946B0381E0809351012FEF83ED90E31F
+:100B0000215080409040E1F700C0000080E40E9446
+:100B100071038093010181112EC00E949B03809379
+:100B20000101811128C00E949B0380930101811162
+:100B300022C08FE30E949B038093010181111BC09F
+:100B40000E94930380E40E9471038093010181114C
+:100B500012C08CE00E949B038093010181110BC0A5
+:100B60000E949B0380930101811105C08FE30E94C5
+:100B70009B03809301010E949303809101010895DA
+:100B800061110BC0FC018281882321F085EE0E9457
+:100B90002D1203C085EE0E94F51280E090E00895CA
+:100BA00008956091BE017091BF018091C001909144
+:100BB000C1010E942A1C56985E9825982D98269867
+:100BC0002E9827982F98823051F0833029F0813069
+:100BD00049F4269A2E9A0895259A2D9A0895279ACF
+:100BE0002F9A089556985E98089581E0089581E0BF
+:100BF00008950C94F7050895282F882339F090E084
+:100C00002A3010F44D9608950697089587E290E0F3
+:100C10000895AF92BF92DF92EF92FF920F931F93CE
+:100C2000CF93DF938C01FC01C081D181CE010E9462
+:100C3000A31ABE010E941A07EC01B8010E94F9052F
+:100C4000882309F4EBC0F8018281882309F4A0C04D
+:100C500080915E0181111FC0C431F0E5DF0709F00A
+:100C6000D7C00E94FB0581E080935E010E94C21CF8
+:100C700090935D0180935C01109255011092570191
+:100C800010925601109259011092580110925B0176
+:100C900010925A01C3C080915C0190915D010E9445
+:100CA000CE1C883C910570F480915501E82FF0E04E
+:100CB000EE0FFF1FEA5AFE4FD183C0838F5F8093F0
+:100CC0005501ACC0C13080E8D80708F451C0F80124
+:100CD0008281882309F460C05E01E894B7F88091AE
+:100CE0005401813079F050F08230C1F482EE0E94DC
+:100CF0002D1287E50E942D1287E50EC082EE0E941C
+:100D00002D120CC080EE0E942D1281EE0E942D1239
+:100D100088E10E942D1288E10E94F5128CE0E82EF5
+:100D2000F12CC5010E2C02C0969587950A94E2F726
+:100D30008F700E94FC05D82E0E942D128D2D0E94CE
+:100D4000F512F4E0EF1AF1088CEFE8168FEFF806D1
+:100D500041F780915401813029F010F0823041F444
+:100D600082EE04C080EE0E94F51281EE0E94F51220
+:100D7000C438E0E5DE0721F0C538D04501F137C0C1
+:100D8000F8018281882361F01092520182E01EC036
+:100D9000C130F0E8DF0760F3C43880E5D80761F4BC
+:100DA00080915201811106C086E20E942D1286E2D6
+:100DB0000E94F51282E018C0C538D045C1F4F80190
+:100DC0008281882331F01092530180E20E94441303
+:100DD00025C080915301811106C087E20E942D1227
+:100DE00087E20E94F51280E20E944B1317C081E057
+:100DF0008093520180935301C801DF91CF911F91DD
+:100E00000F91FF90EF90DF90BF90AF900C94F5059D
+:100E1000C130F0E8DF0708F05FCFAACF80E0DF91B4
+:100E2000CF911F910F91FF90EF90DF90BF90AF9007
+:100E30000895089596E0799FF001112494E5899F23
+:100E4000E00DF11D1124E60FF11DEE0FFF1FEC5E0A
+:100E5000FE4F859194910895880F991FFC01E657E4
+:100E6000F040859194910895880F991FFC01E65FE9
+:100E7000FE4F8591949108950F931F93CF93DF9325
+:100E8000EC01811520E3920750F5C11580E2D807E7
+:100E900008F0C3C0CB3BD10590F4C83AD10508F0A7
+:100EA0006AC0C53AD10508F05BC0C430D10508F06E
+:100EB000D0C1219709F0CAC101E010E00AC2CF3FBA
+:100EC000D10511F008F0C5C1C03FD10508F0A2C09E
+:100ED000CE01805E9109089708F4BBC1B7C1C1304B
+:100EE00090E5D90709F4A2C020F5C0318FE4D807F6
+:100EF00070F4C11590E4D90708F094C0C11521E33E
+:100F0000D20708F0A3C1DD278E01106CE2C1C11524
+:100F1000D04509F09BC10E94AA158FEF94E32CE005
+:100F2000815090402040E1F700C000000E941D1D4C
+:100F3000D0C1C11597E5D90758F4C03121E5D207D2
+:100F400008F01CC1C43180E5D80708F475C07EC123
+:100F5000CE0190578115904108F078C1DF7073C1C0
+:100F6000C53AD10509F477C1C63AD10509F076C171
+:100F700002E810E4AEC1C83AD10509F472C1C93A19
+:100F8000D10509F471C1CA3AD10509F470C1CB3A4F
+:100F9000D10509F46FC1CC3AD10509F46EC1CD3A3F
+:100FA000D10509F46DC1C03BD10509F46CC1CE3A3D
+:100FB000D10509F46BC1CF3AD10509F46AC1C13B2F
+:100FC000D10509F469C1C23BD10509F468C1C33B2D
+:100FD000D10509F467C1C43BD10509F466C1C53B1D
+:100FE000D10509F465C1C63BD10509F464C1C73B0D
+:100FF000D10509F463C1C83BD10509F462C1C93BFD
+:10100000D10509F461C1CA3BD10509F460C100E012
+:1010100014E45FC18E0110655CC1CE019F700E9417
+:10102000340758C1DF708E01106A53C18091DB0113
+:1010300081608093DB014DC10E94C21E811102C0FC
+:101040000E94A81E0E94DF1E90E09093FC018093F6
+:10105000FB01C23080E5D80721F48091FB0181605B
+:1010600086C0C43090E5D90721F48091FB018260ED
+:101070007EC0C63020E5D20721F48091FB01846058
+:1010800076C0C83080E5D80719F48091FB0127C0ED
+:10109000CA3090E5D90721F48091FB01806167C0D7
+:1010A000CC3020E5D20721F48091FB0180625FC043
+:1010B000CE3080E5D80721F48091FB01806457C0D1
+:1010C000C03190E5D90721F48091FB0180684FC0C1
+:1010D000C23120E5D20729F48091FB018460886049
+:1010E00046C0C33080E5D80721F48091FB018E7F94
+:1010F0003EC0C53090E5D90721F48091FB018D7F7A
+:1011000036C0C73020E5D20721F48091FB018B7FE8
+:101110002EC0C93080E5D80719F48091FB0126C0A4
+:10112000CB3090E5D90721F48091FB018F7E1FC061
+:10113000CD3020E5D20721F48091FB018F7D17C0CF
+:10114000CF3080E5D80721F48091FB018F7B0FC061
+:10115000C13190E5D90721F48091FB018F7707C059
+:10116000C331D04531F48091FB018B7F877F809321
+:10117000FB018091FB010E94E31EABC08D2F9927DC
+:101180008F70992781309105D9F49E012370332700
+:1011900002C0880F991F2A95E2F79C688E0144E0EF
+:1011A000000F111F4A95E1F700271370802B912B38
+:1011B00053E0CC0FDD1F5A95E1F7C076DD272FC035
+:1011C0008230910531F4DC2FCC278E01016F106A3B
+:1011D00080C08330910569F4CE018370992701E0C6
+:1011E00010E002C0000F111F8A95E2F7C8019C6849
+:1011F0000FC084309105B9F4CE018370992701E0C6
+:1012000010E002C0000F111F8A95E2F7C8019A682A
+:1012100023E0CC0FDD1F2A95E1F7C07ED7708C014B
+:101220000C2B1D2B56C08530910531F4DC2FCC27BB
+:101230008E01046F106A4DC0069709F04AC0CF7145
+:10124000DD27DC2FCC278E01106243C000E010E0C8
+:1012500040C08E013EC001E810E43BC003E810E44A
+:1012600038C002EE14E435C009EE14E432C00AEED0
+:1012700014E42FC005EB14E42CC006EB14E429C0E1
+:1012800007EB14E426C00CEC14E423C00DEC14E4CA
+:1012900020C003E815E41DC00AE815E41AC002E9FD
+:1012A00015E417C004E915E414C001E216E411C006
+:1012B00003E216E40EC004E216E40BC005E216E4F5
+:1012C00008C006E216E405C007E216E402C00AE21E
+:1012D00016E4C801DF91CF911F910F91089596E018
+:1012E000799FF001112494E5899FE00DF11D1124EF
+:1012F000E60FF11DEE0FFF1FEC5EFE4F85919491FE
+:10130000803E9105E0F4803C910558F581339105CC
+:1013100009F46FC048F48932910509F463C08A3238
+:10132000910509F46DC072C089339105E9F08238E6
+:101330009105D1F08533910509F44DC067C0833E16
+:10134000910581F138F4803E9105B9F0823E910516
+:10135000D9F05CC0863E910561F1873E9105A1F10F
+:1013600055C00E942C0708952091FB0120FD02C06A
+:1013700021FF4CC080EE90E049C08091FB0180FFCE
+:10138000F9CF89E390E042C08091FB0182FF0EC05B
+:101390008091FB0184FF03C080E090E037C083EEC2
+:1013A00090E034C08091FB0182FFF2CF82EE90E0AA
+:1013B0002DC08091FB0183FF0BC08091FB0184FD58
+:1013C000EBCF87EE90E022C08091FB0183FFF5CF49
+:1013D00086EE90E01BC08091FB0185FF07C089E28B
+:1013E00090E014C08091FB0185FFF9CF85E390E088
+:1013F0000DC08091FB0186FF07C08AE290E006C025
+:101400008091FB0186FFF9CF81E390E00E943C07C9
+:10141000089508950C94090A80916F010895CF935F
+:10142000DF9300D01F92CDB7DEB79C018091F2010F
+:10143000843019F593E099833B832A839093E900E4
+:101440008FEF9091E800815095FD06C095ED9A953B
+:10145000F1F700008111F5CF8091E80085FF0DC004
+:1014600040E050E063E070E0CE0101960E94790C0C
+:101470008091E8008E778093E8000F900F900F9096
+:10148000DF91CF910895CF93DF9300D01F92CDB716
+:10149000DEB72091F201243021F522E029839B83DD
+:1014A0008A8383E08093E9008FEF9091E800815078
+:1014B00095FD06C095ED9A95F1F700008111F5CFE5
+:1014C0008091E80085FF0DC040E050E063E070E0EF
+:1014D000CE0101960E94790C8091E8008E7780936E
+:1014E000E8000F900F900F90DF91CF910895209119
+:1014F000F2012430F1F422E02093E9002FEF309143
+:10150000E800215035FD06C035ED3A95F1F70000B1
+:101510002111F5CF2091E80025FF0BC040E050E0FD
+:1015200065E070E00E94790C8091E8008E778093EE
+:10153000E8000895CF93DF93EC019091F20194308D
+:1015400009F046C080910C018823D9F080910D01EB
+:101550008823B9F09093E9008FEF9091E8008150D3
+:1015600095FD06C095E19A95F1F700008111F5CF40
+:101570008091E80085FF2CC040E050E060E170E021
+:1015800017C081E08093E9008FEF9091E8008150CF
+:1015900095FD06C095ED9A95F1F700008111F5CF04
+:1015A0008091E80085FF14C040E050E068E070E002
+:1015B000CE010E94790C8091E8008E778093E8003C
+:1015C00080E1FE01AFE5B1E001900D928A95E1F76F
+:1015D000DF91CF9108958091F101811109C00E949E
+:1015E0000E0E0E946B0E8091E20084608093E200F8
+:1015F00008951092F101089508950C9452230E94C9
+:10160000B31C0E9458230E9411110C940A0A42E054
+:1016100061EC81E00E94880D42E061EC82E00E9472
+:10162000880D42E061EC83E00E94880D42E161ECAC
+:1016300084E00C94880D8091F401833009F455C046
+:1016400030F4813071F0823009F48EC008958A3010
+:1016500009F47AC08B3009F460C0893009F09CC06D
+:1016600020C08091F301813A09F096C08091E80092
+:10167000877F8093E8008091F7019091F801892B92
+:1016800021F460E18FE591E003C060E080E090E04C
+:1016900070E00E94C40C8091E8008B778093E80092
+:1016A00008958091F301813209F076C08091F701AD
+:1016B0009091F801009719F0039709F06DC080919F
+:1016C000E800877F8093E8008091E80082FD05C0F4
+:1016D0008091F2018111F8CF5FC08091F100809379
+:1016E0006F018091E8008B7753C08091F301813ABC
+:1016F00009F052C08091F7019091F801892B09F00F
+:101700004BC08091E800877F8093E8008091E800DB
+:1017100080FFFCCF80910C0136C08091F3018132B3
+:10172000D9F58091F7019091F801892BA9F5809165
+:10173000E800877F8093E8000E94BD0D8091F5014D
+:1017400080930C010C94AA158091F301813221F54C
+:101750008091E800877F8093E8000E94BD0D809112
+:10176000F6018093700108958091F301813AA1F40C
+:101770008091E800877F8093E8008091E80080FFF7
+:10178000FCCF809170018093F1008091E8008E770A
+:101790008093E8000C94BD0D089584B7877F84BFC3
+:1017A00088E10FB6F89480936000109260000FBE3D
+:1017B00090E080E80FB6F894809361009093610008
+:1017C0000FBE0E9460110E940E0E0E946B0E80914F
+:1017D000E20084608093E20078940E94F1100E94FD
+:1017E000621182E091E00E940C110E9440238091DE
+:1017F000F201853069F40E947A1C8091F0018823FF
+:10180000B1F30E94A51C882391F30E94630CEFCFD3
+:101810000E946811ECCF292F332723303105C9F0FE
+:1018200064F42130310581F02230310509F043C0E4
+:101830008DE690E020E934E042C021323105F1F03C
+:101840002232310541F137C082E190E02DEF34E0E2
+:1018500036C099278130910541F08230910541F0E1
+:10186000892B49F5ECE8F4E005C0E4E7F4E002C0B8
+:10187000ECE5F4E0849190E09F0121C06430D8F45D
+:10188000E62FF0E0EE0FFF1FEE5DFE4F208131816D
+:1018900089E090E014C0643070F470E0FB01EE0F5A
+:1018A000FF1FE65EFE4F20813181FB01EA5EFE4FA5
+:1018B000808190E004C080E090E020E030E0FA0118
+:1018C00031832083089580E189BD82E189BD09B417
+:1018D00000FEFDCF8091D8008F7D8093D80080914D
+:1018E000E00082608093E0008091E00081FDFCCF09
+:1018F0000895CF92DF92EF92FF920F931F93CF93B1
+:10190000DF93EC018B016A010E94DC0D811133C071
+:10191000C114D10439F0F60180819181081B190BA3
+:10192000C80FD91FE12CF12C0115110519F1809177
+:10193000E80085FD16C08091E8008E778093E8006E
+:10194000C114D10449F0F60180819181E80EF91E9D
+:10195000F182E08285E00FC00E94DC0D882321F334
+:101960000AC089918093F10001501109FFEFEF1A2D
+:10197000FF0ADACF80E0DF91CF911F910F91FF90A6
+:10198000EF90DF90CF9008952091F9013091FA0106
+:101990002617370748F06115710539F42091E800E2
+:1019A0002E772093E80001C0B90140E06115710570
+:1019B000A9F12091F201222309F443C0253009F452
+:1019C00042C02091E80023FD40C02091E80022FDA4
+:1019D00032C02091E80020FFE9CF4091F300209130
+:1019E000F20030E0342BFC01CF016115710559F094
+:1019F0002830310540F481918093F10061507109E4
+:101A00002F5F3F4FF1CF41E02830310509F040E032
+:101A10002091E8002E772093E800C8CF4111C9CF6C
+:101A20000AC08091F201882361F0853061F08091D5
+:101A3000E80083FD0AC08091E80082FFF2CF80E0D9
+:101A4000089582E0089583E0089581E0089520914B
+:101A5000F9013091FA012617370748F06115710531
+:101A600039F42091E8002E772093E80001C0B901F5
+:101A7000FC0120E06115710591F18091F20188234C
+:101A800009F440C0853009F43FC08091E80083FD2F
+:101A90003DC08091E80082FD2FC08091E80080FF6A
+:101AA000E9CF2091F3008091F20090E0922B611534
+:101AB000710559F08830910540F424912093F1008C
+:101AC0003196615071090196F2CF21E0089709F033
+:101AD00020E08091E8008E778093E800CBCF211141
+:101AE000CCCF0AC08091F201882361F0853061F08B
+:101AF0008091E80083FD0AC08091E80082FFF2CF68
+:101B000080E0089582E0089583E0089581E00895DB
+:101B1000982F973058F59093E900981739F0709105
+:101B2000EC002091ED005091F00003C0242F762F9F
+:101B300050E021FF19C03091EB003E7F3093EB0065
+:101B40003091ED003D7F3093ED003091EB0031603E
+:101B50003093EB007093EC002093ED005093F00075
+:101B60002091EE0027FF07C09F5FD3CF8F70809337
+:101B7000E90081E0089580E008958091F30187FFF6
+:101B800011C08091E80082FD05C08091F2018111B1
+:101B9000F8CF11C08091E8008B770BC08091F201E3
+:101BA000882349F08091E80080FFF8CF8091E80019
+:101BB0008E778093E80008952091E4003091E5004D
+:101BC00095E64091EC00842F817040FF22C0809107
+:101BD000E80080FD1CC08091F201882391F08530DF
+:101BE00091F08091EB0085FD10C04091E400509190
+:101BF000E5004217530729F39A01915011F784E049
+:101C0000089582E0089583E0089581E0089580E0DA
+:101C100008954091E80042FFDECF08950E947C0EB7
+:101C20000E94840EE0EEF0E0808181608083E8ED28
+:101C3000F0E080818F77808319BCA7EDB0E08C91B4
+:101C40008E7F8C9380818F7E80831092F101089526
+:101C50000F931F93CF93DF930E947C0E0E94840EFC
+:101C6000C8EDD0E088818F778883888180688883F9
+:101C700088818F7D888319BC1092F2011092EE0149
+:101C80001092F0011092EF0100EE10E0F801808157
+:101C90008B7F808388818160888342E060E080E080
+:101CA0000E94880DE1EEF0E080818E7F8083E2EE7D
+:101CB000F0E0808181608083808188608083F8018A
+:101CC00080818E7F8083888180618883DF91CF913E
+:101CD0001F910F910895E8EDF0E080818F7E808361
+:101CE000E7EDF0E080818160808384E082BF81E065
+:101CF0008093F1010C94280EE8EDF0E080818E7F56
+:101D000080831092E20008951092DA001092E100B0
+:101D100008951F920F920FB60F9211242F933F93A5
+:101D20004F935F936F937F938F939F93AF93BF93E3
+:101D3000EF93FF938091E10082FF0BC08091E2005E
+:101D400082FF07C08091E1008B7F8093E1000E94B9
+:101D5000F0108091DA0080FF1FC08091D80080FFD2
+:101D60001BC08091DA008E7F8093DA008091D900C9
+:101D700080FF0DC080E189BD82E189BD09B400FE0C
+:101D8000FDCF81E08093F2010E94EB0A05C019BCEF
+:101D90001092F2010E94F90A8091E10080FF19C0BF
+:101DA0008091E20080FF15C08091E2008E7F8093D9
+:101DB000E2008091E20080618093E2008091D8008F
+:101DC00080628093D80019BC85E08093F2010E9464
+:101DD000FD0A8091E10084FF30C08091E20084FF21
+:101DE0002CC080E189BD82E189BD09B400FEFDCF30
+:101DF0008091D8008F7D8093D8008091E1008F7E04
+:101E00008093E1008091E2008F7E8093E2008091D8
+:101E1000E20081608093E2008091EE01882311F05E
+:101E200084E007C08091E30087FD02C081E001C02B
+:101E300083E08093F2010E94FF0A8091E10083FF1A
+:101E400029C08091E20083FF25C08091E100877F57
+:101E50008093E10082E08093F2011092EE01809184
+:101E6000E1008E7F8093E1008091E2008E7F80937D
+:101E7000E2008091E20080618093E20042E060E055
+:101E800080E00E94880D8091F00088608093F000CF
+:101E90000E94FC0AFF91EF91BF91AF919F918F91AA
+:101EA0007F916F915F914F913F912F910F900FBE56
+:101EB0000F901F9018951F920F920FB60F9211243A
+:101EC0002F933F934F935F936F937F938F939F9342
+:101ED000AF93BF93CF93DF93EF93FF93C091E9004C
+:101EE000CF708091EC00D82FD17080FDD0E8109297
+:101EF000E9008091F000877F8093F00078940E9441
+:101F00009F0F1092E9008091F00088608093F000AC
+:101F1000CD2BCF70C093E900FF91EF91DF91CF916E
+:101F2000BF91AF919F918F917F916F915F914F91F1
+:101F30003F912F910F900FBE0F901F9018951F93F8
+:101F4000CF93DF93CDB7DEB7AA970FB6F894DEBF75
+:101F50000FBECDBFE3EFF1E088E08E0F9091F1006E
+:101F600091938E13FBCF0E941B0B8091E80083FF9F
+:101F70001FC18091F3019091F401492F50E04A3044
+:101F8000510508F015C1FA01EA5AFF4F0C94DA2402
+:101F9000803881F0823809F00BC18091F7018F7091
+:101FA0008093E9008091EB0085FB882780F91092EF
+:101FB000E90006C08091EF019091F00191118260DB
+:101FC0009091E800977F9093E8008093F100109241
+:101FD000F100C8C0282F2D7F09F0EAC0882319F02E
+:101FE000823061F0E5C08091F501813009F0E0C0F8
+:101FF000933009F080E08093F0012BC08091F501CF
+:10200000811127C08091F7018F7009F4D1C08093AE
+:10201000E9002091EB0020FF1CC0933021F4809157
+:10202000EB00806214C09091EB0090619093EB0004
+:1020300021E030E0A90102C0440F551F8A95E2F764
+:102040004093EA001092EA008091EB008860809350
+:10205000EB001092E9008091E800877F86C0811133
+:10206000A7C01091F5011F778091E3008078812B44
+:102070008093E3008091E800877F8093E8000E94CE
+:10208000BD0D8091E80080FFFCCF8091E300806867
+:102090008093E300111102C082E001C083E08093CD
+:1020A000F20186C08058823008F082C08091F5012C
+:1020B0009091F6018C3D53E0950779F583E08A8392
+:1020C0008AE289834FB7F894DE01139620E03EE060
+:1020D00051E2E32FF0E050935700E49120FF03C05A
+:1020E000E295EF703F5FEF708E2F90E0EA3010F0D6
+:1020F000C79601C0C0968D939D932F5F243149F7F9
+:102100004FBF8091E800877F8093E8006AE270E02B
+:10211000CE0101960E94C40C14C0AE014F5F5F4F08
+:102120006091F7010E940B0CBC01009709F440C0BC
+:102130009091E800977F9093E80089819A810E94AE
+:10214000270D8091E8008B778093E80031C08038BC
+:1021500079F58091E800877F8093E8008091EE0117
+:102160008093F1008091E8008E778093E8000E94D0
+:10217000BD0D1EC081111CC09091F5019230C0F4BC
+:102180008091E800877F8093E8009093EE010E94A1
+:10219000BD0D8091EE01811106C08091E30087FDA5
+:1021A00002C081E001C084E08093F2010E94070B2D
+:1021B0008091E80083FF0AC08091E800877F8093C8
+:1021C000E8008091EB0080628093EB00AA960FB646
+:1021D000F894DEBF0FBECDBFDF91CF911F91089560
+:1021E0000895CF938091F2018823A1F0C091E90076
+:1021F000CF709091EC00892F817090FD80E8C82B02
+:102200001092E9008091E80083FD0E949F0FCF703B
+:10221000C093E900CF910895909376018093750162
+:102220000895E0917501F0917601309721F00190C9
+:10223000F081E02D099480E00895E0917501F0911E
+:102240007601309721F00280F381E02D0994089502
+:10225000E0917501F0917601309721F00480F581CD
+:10226000E02D099408952091730130917401821733
+:10227000930771F09093740180937301E09175015D
+:10228000F0917601309721F00680F781E02D0994D6
+:10229000089520917101309172018217930771F0B6
+:1022A0009093720180937101E0917501F091760134
+:1022B000309721F00084F185E02D09940895089568
+:1022C0000C945F110E94B91C0E94DE030C947B1DCC
+:1022D0009F92AF92BF92CF92DF92EF92FF920F93B5
+:1022E0001F93CF93DF9300D000D000D0CDB7DEB7DF
+:1022F0000E94F6030DE010E0AA24A394B12C902EC6
+:10230000802F0E94E404980128583E4F6901F9018A
+:10231000F080F826A1F40150110988F78FEF898326
+:102320008A831B820E94C21C8160782F9D838C83CC
+:1023300049815A816B818D810E94FF112FC090913C
+:10234000DB0191FF04C08E830E94EA048E8125E0A8
+:1023500030E0A501022E01C0440F0A94EAF7E42EF2
+:102360004F21C1F029839A828E2191E009F490E0F7
+:102370009B830E94C21C8160782F9D838C8349813E
+:102380005A816B818D810E94FF11F6018081E826C0
+:10239000E08204C021503109E0F6BDCF0E946220E6
+:1023A000109177010E9411111817B9F00E941111B4
+:1023B0008093770126960FB6F894DEBF0FBECDBF8F
+:1023C000DF91CF911F910F91FF90EF90DF90CF9011
+:1023D000BF90AF909F900C940A0A26960FB6F8947F
+:1023E000DEBF0FBECDBFDF91CF911F910F91FF9048
+:1023F000EF90DF90CF90BF90AF909F900895CF93D4
+:10240000DF93CDB7DEB72B970FB6F894DEBF0FBEC4
+:10241000CDBF4F83588769877A878B87DE011196F6
+:1024200086E0FD0111928A95E9F785E0FE01379675
+:1024300001900D928A95E1F749815A816B817C81E7
+:102440008D819E810E9448182B960FB6F894DEBFAE
+:102450000FBECDBFDF91CF910895CF93882309F4AC
+:10246000C2C0C82F823859F40E94111181FDBBC02F
+:1024700089E30E94221B0E94EF1B89E30CC0833872
+:1024800079F40E94111180FDAEC083E50E94221BE9
+:102490000E94EF1B83E50E94641BCF910C94EF1BFD
+:1024A000843859F40E94111182FD9DC087E40E9476
+:1024B000221B0E94EF1B87E4EECF8CEF8C0F813A3A
+:1024C00048F48C2F0E94A52281118DC08C2F0E9470
+:1024D000221BE3CF80E28C0F883048F4C77081E084
+:1024E00001C0880FCA95EAF70E94A81BD6CF8BE5DA
+:1024F0008C0F833078F4C53A29F0C63A31F083E87E
+:1025000090E005C081E890E002C082E890E0CF91C1
+:102510000C94331188E58C0F833108F064C0C83AFD
+:1025200039F1C93A41F1CA3A49F1CB3A51F1CC3AC1
+:1025300059F1CD3A61F1C03B69F1CE3A71F1CF3A30
+:1025400079F1C13B81F1C23B89F1C33B91F1C43BBD
+:1025500099F1C53BA1F1C63BA9F1C73BB1F1C83B1D
+:10256000B9F1C93BC1F1CA3BC9F180E090E038C084
+:1025700082EE90E035C089EE90E032C08AEE90E0C5
+:102580002FC085EB90E02CC086EB90E029C087EB54
+:1025900090E026C08CEC90E023C08DEC90E020C051
+:1025A00083E891E01DC08AE891E01AC082E991E0D9
+:1025B00017C084E991E014C081E292E011C083E287
+:1025C00092E00EC084E292E00BC085E292E008C087
+:1025D00086E292E005C087E292E002C08AE292E0E1
+:1025E000CF910C944911CF910895882309F44BC0E1
+:1025F000823859F40E94111181FF45C089E30E947D
+:10260000221B0E94EF1B89E30CC0833871F40E94E7
+:10261000111180FF38C083E50E94221B0E94EF1B2E
+:1026200083E50E94641B0C94EF1B843859F40E94CC
+:10263000111182FF28C087E40E94221B0E94EF1B19
+:1026400087E4EFCF9CEF980F913A58F390E2980F00
+:10265000983050F4877091E001C0990F8A95EAF79D
+:10266000892F0E94AE1BDFCF9BE5980F933020F49B
+:1026700080E090E00C943311885A833120F480E09C
+:1026800090E00C9449110895882321F00E94A81B22
+:102690000C94EF1B0895882321F00E94AE1B0C942C
+:1026A000EF1B08957F928F929F92AF92BF92CF922D
+:1026B000DF92EF92FF920F931F93CF93DF931F92BE
+:1026C000CDB7DEB77C01C62E772EFC0105810295C1
+:1026D0000F70128111110E94C51B0E941B1B8823C1
+:1026E00079F0112369F080E28C0D883048F082E0A7
+:1026F0000E94041B0E941B1B91E0D82ED92601C00A
+:10270000D12CE72DE295EF70F0E0E05AFF4F0C94EA
+:10271000DA24872D807F072D0F70882311F0029512
+:10272000007F112389F0002309F490C180E28C0D11
+:10273000883020F4802F0E94A81B03C0802F0E94A5
+:10274000B81B0E94EF1B82C18C2D0E94F512002342
+:1027500009F495C180E28C0D883020F4802F0E940E
+:10276000AE1B03C0802F0E94BE1B0E94EF1B87C1BF
+:10277000972D907F872D8F70903211F08295807FFA
+:10278000CC2021F0F1E0CF16B1F01EC0112349F0AA
+:10279000002309F414C1013009F011C10E94D81BB3
+:1027A0006EC1002319F0013009F469C189830E94C8
+:1027B000DB1B89810AC1112321F0023008F05FC1BF
+:1027C000FEC001115CC101C1112321F0002309F4F5
+:1027D000F6C03CC1002309F4F8C03EC1872D8695A0
+:1027E0008695837090E0009719F0019761F047C1DA
+:1027F000112321F08C2D972D937002C080E090E082
+:102800000E9433113CC1112321F08C2D972D937020
+:1028100002C080E090E00E94491131C18C2D11234B
+:1028200019F00E946A1F02C00E94D21F0E94572006
+:1028300026C1872D837009F052C0111120C18C2D43
+:10284000829586958770880F880F9C2D9F70892EA2
+:10285000912CA12CB12C082E04C0880C991CAA1C08
+:10286000BB1C0A94D2F7C4FE14C00FE010E020E0B5
+:1028700030E0B901A80104C0440F551F661F771F3F
+:102880008A95D2F7CB01BA016095709580959095A5
+:1028900003C060E070E0CB01272D269526952370BC
+:1028A00030E02230310569F02330310589F06829A4
+:1028B00079298A299B292130310571F00E949019CC
+:1028C000DEC0682979298A299B290E94AC19D7C0C2
+:1028D0000E949019C501B4010E947419D0C011233F
+:1028E00019F0872D817001C08695882309F4C7C02F
+:1028F0008C2D829586958770880F880F9C2D9F70F0
+:10290000892E912CA12CB12C082E04C0880C991C66
+:10291000AA1CBB1C0A94D2F7C4FE14C00FE010E03E
+:1029200020E030E0B901A80104C0440F551F661F24
+:10293000771F8A95D2F7CB01BA0160957095809583
+:10294000909503C060E070E0CB01272D2695269579
+:102950002370422F50E04230510569F04330510559
+:1029600089F0682979298A299B294130510571F01C
+:102970000E946A1A84C0682979298A299B290E94A1
+:10298000861A7DC00E946A1AC501B4010E944E1ABF
+:1029900076C08C2D90E0FC01E05EF109E531F10597
+:1029A00008F050C0E059FF4F0C94DA240C2D0F7042
+:1029B000872D8F71112331F00E94E719802F0E941B
+:1029C00044135DC00E94081A802F0E944B1357C009
+:1029D000112339F0011153C0872D8F710E942D1AD8
+:1029E0004EC0023008F04BC0F7CF112339F0872DCD
+:1029F0008F710E94E71943C01123C9F3872D8F718E
+:102A00000E94081A3CC0112329F0872D8F710E9463
+:102A1000D21935C00E94C81932C0112351F0172DA8
+:102A20001F71812F0E94E71963E0812F0E94FB1A1A
+:102A300026C081E00E94041B023008F182E00E945F
+:102A4000041B1DC0112331F0002389F28C2D0E943C
+:102A50002D1215C0002391F28C2D0E94F5120FC08B
+:102A6000472D4F706C2DC7010E94C0050E94EC18C5
+:102A700006C0472D4F706C2DC7010E941907DD203D
+:102A8000F9F00E94F71A80FD1BC0F70112820E9424
+:102A9000F11A0E94E719C7010E946F150E94F11AEE
+:102AA0000F90DF91CF911F910F91FF90EF90DF90EA
+:102AB000CF90BF90AF909F908F907F900C94081A0A
+:102AC0000F90DF91CF911F910F91FF90EF90DF90CA
+:102AD000CF90BF90AF909F908F907F9008950F936D
+:102AE0001F93CF93DF93EC01888199812B813C81E7
+:102AF000232BB9F09F3F11F48F3F99F0CE010E9434
+:102B00000906882371F0688179818A810E94ED1A13
+:102B10008C010E94A21A0E946919B801CE010E947C
+:102B20005213DF91CF911F910F9108950E94C51B01
+:102B30000E94D51B0E949A1B0E94EF1B0E94082135
+:102B40000E94572080E090E00E94331180E090E0E6
+:102B50000C9449110E94B51B0C9496150E94E21A20
+:102B6000292F22952F7030E02C3031054CF42A307B
+:102B700031056CF42250310922303105A8F407C028
+:102B80002C30310569F02F30310551F00DC0803FF8
+:102B900069F018F4803E40F409C0843F29F406C06F
+:102BA00093FB882780F9089580E0089581E00895D7
+:102BB000CF93DF9300D000D01F92CDB7DEB70F9038
+:102BC0000F900F900F900F90DF91CF910895CF93BA
+:102BD000DF9300D000D000D0CDB7DEB726960FB679
+:102BE000F894DEBF0FBECDBFDF91CF9108951F9344
+:102BF000CF93DF93C091860116E080918701C817BB
+:102C000099F0D0E01C9FF0011D9FF00D1124E857B2
+:102C1000FE4F4081518162817381848195810E9440
+:102C2000E7152196C770E9CFDF91CF911F910895E5
+:102C30004091B8015091B9016091BA017091BB0106
+:102C40008091BC019091BD010C94E7158091BD016C
+:102C500082958F7009F054C08091BA01882309F4DD
+:102C60004FC080918601A09187016091B801709159
+:102C7000B9014091BB015091BC01B6E08A1709F43B
+:102C80003FC090E041155105C1F17F3F11F46F3F06
+:102C9000A1F1B89FF001B99FF00D1124E857FE4F44
+:102CA000218172132AC02081621327C02281211141
+:102CB00024C0238134812417350710F421503109B1
+:102CC000241B350B283C3105C0F42091BD012F7029
+:102CD00020612093BD0126E0289FF001299FF00D7F
+:102CE0001124E357FE4F80818F708061808388EBD1
+:102CF00091E00E946F150C94F71501968770BECF76
+:102D00000895CF92DF92EF92FF920F931F93CF938C
+:102D1000DF93CDB7DEB762970FB6F894DEBF0FBE74
+:102D2000CDBF8C0185E0F801DE011D9601900D926A
+:102D30008A95E1F7D8014C9111965C911197129602
+:102D40006C9112971396CD90DC9014973091B80146
+:102D50007091B9018091BB019091BC01009709F479
+:102D60006BC17F3F19F43F3F09F466C1E090BA019F
+:102D7000EE2009F4C0C02091BD01C816D90628F084
+:102D8000F601E81BF90BCF0104C0809590958C0DDE
+:102D90009D1DFF24F394883C910578F0F12C207F51
+:102DA00009F0C6C07C2DD98AC88A89890E94D815A5
+:102DB00088EB91E00E946F15B1C0822F807F09F0EF
+:102DC00046C0751314C0341312C0611110C02F70A7
+:102DD00020612093BD010E94181688EB91E00E94AB
+:102DE0006F158091BD01D80115968C932EC0CD280A
+:102DF00019F15F3F11F44F3FF9F0F62E61111CC03D
+:102E0000809186012091870136E0821709F45AC02B
+:102E100090E0389FF001399FF00D1124E857FE4FE4
+:102E20007181571306C07081471303C072817111FD
+:102E300003C001968770E9CFF62E662309F418C106
+:102E40008091BD0181608093BD01F12C11C175138A
+:102E500008C0341306C0611104C08091BD01D801BF
+:102E6000C3C04D875E878D859E856A8B0E94AE1597
+:102E70006A898823E1F16623D1F12091BD01822F77
+:102E800082958F7090E0029774F08091B8019091D4
+:102E9000B90198878F831986DB86CA862C87CE0175
+:102EA00007960E946F1586E0F801A8EBB1E001904B
+:102EB0000D928A95E1F70E9426160E941816FF24AB
+:102EC000F394D6C04D875E878D859E850E94E21A59
+:102ED000292F22952F7030E0223031050CF0BCC034
+:102EE0009F7009F0B6C0805E883008F4C1C0C80188
+:102EF0000E946F15E4CFC816D90608F453C0F60136
+:102F0000E81BF90BCF01883C910508F450C0F12C67
+:102F10007C2DD98AC88A89890E94D815E8EBF1E00E
+:102F200086E0DF011D928A95E9F70E941816A0C07D
+:102F3000751314C0341312C0611110C08091BD010B
+:102F4000F8018583C8010E946F1586E0E8EBF1E087
+:102F5000DF011D928A95E9F7FE2C8AC04D875E87B6
+:102F60008D859E856A8B0E94AE156A89882309F437
+:102F7000BECF662309F4BBCF2091BD01822F82957D
+:102F80008F7090E002970CF48ECF8091B8019091F1
+:102F9000B9019A8389831B82DD82CC822E83CE0184
+:102FA00001967FCF809590958C0D9D1DACCFF62E10
+:102FB000662309F49CCF75132EC034132CC02091C6
+:102FC000BD0120FD1FC0822F82958F70D9F0D801DE
+:102FD00015962C9315978F3049F08F5F982F929507
+:102FE000907F822F8F70892B15968C93C8010E9439
+:102FF0006F1586E0F801A8EBB1E001900D928A957B
+:10300000E1F793CF86E0F801A8EBB1E001900D92D3
+:103010008A95E1F72DC04D875E878D859E850E943C
+:10302000AE15811140CF8091BD0181608093BD01BB
+:10303000C8010E946F151CC0662309F458CF4D8744
+:103040005E878D859E850E94AE15882309F44FCF3B
+:103050002ACF811148CF0CC0243031050CF047CF66
+:103060009F7009F440CFF8019581907F09F03BCF24
+:103070008F2D62960FB6F894DEBF0FBECDBFDF91E5
+:10308000CF911F910F91FF90EF90DF90CF90089517
+:103090001F93CF93DF93CDB7DEB72C970FB6F8947D
+:1030A000DEBF0FBECDBF4F83588769877A878B8776
+:1030B0009C87CE0107960E948116882369F08F8134
+:1030C00098852A853B85232BF1F19F3F09F063C04A
+:1030D0008F3F09F060C037C086E0FE013796DE0101
+:1030E000119601900D928A95E1F76F817885EA85B6
+:1030F000FB85309741F17F3F11F46F3F21F1209123
+:10310000870130E0C90101968770992740918601B7
+:1031100050E08417950709F447C069837A83FD83DB
+:10312000EC8396E0929FD001939FB00D1124A85795
+:10313000BE4FFE01319601900D929A95E1F7809372
+:1031400087010E94F71516E0809186019091870112
+:103150008917C1F1189FC001112488579E4F0E9402
+:103160008116882379F1E09186011E9FF0011124D8
+:10317000E857FE4F4081518162817381848195813E
+:103180000E94E7158091860190E00196877099274B
+:1031900080938601D9CF4F81588569857A858B8543
+:1031A0009C850E94E715CFCF0E94AA151092870137
+:1031B00010928601E8EBF1E086E0DF011D928A952E
+:1031C000E9F7C1CF2C960FB6F894DEBF0FBECDBF86
+:1031D000DF91CF911F910895EF92FF920F931F936C
+:1031E000CF93DF938C01009709F46CC0F12CEE248F
+:1031F000E394E8012196F8018491843740F4843007
+:1032000008F051C0813081F0823019F15BC0853700
+:1032100009F444C0A8F19CE7980F903708F052C019
+:103220008F770E94F51241C00E5F1F4FFE01C491BF
+:1032300080E28C0F883048F4C7708E2D01C0880F53
+:10324000CA95EAF70E94C81B14C08C2F0E942D1249
+:103250002DC00E5F1F4FFE01C49180E28C0F88309D
+:1032600058F4C7708E2D01C0880FCA95EAF70E94E6
+:10327000CE1B0E94EF1B1AC08C2F0E94F51216C0A5
+:103280000E5F1F4FFE01C491CC2381F08FE99FE0B8
+:103290000197F1F700C00000C150F6CF0E5F1F4F3D
+:1032A000FE01F49003C00E942D128E018F2D882301
+:1032B00009F49FCFEFE9FFE03197F1F700C000007C
+:1032C0008150F5CFDF91CF911F910F91FF90EF903B
+:1032D000089508956093C2017093C3018093C4015F
+:1032E0009093C5010C9496150F931F930091C20102
+:1032F0001091C3012091C4013091C501DC01CB01C3
+:10330000802B912BA22BB32B8093C2019093C301EE
+:10331000A093C401B093C5011F910F910C94961511
+:103320000F931F930091C2011091C3012091C4011A
+:103330003091C501DC01CB0180239123A223B3236B
+:103340008093C2019093C301A093C401B093C501BF
+:103350001F910F910C9496150F931F930091C2012A
+:103360001091C3012091C4013091C501DC01CB0152
+:1033700080279127A227B3278093C2019093C3018E
+:10338000A093C401B093C5011F910F910C949615A1
+:103390001092BE011092BF011092C0011092C101A3
+:1033A0000C94961541E050E060E070E004C0440FDA
+:1033B000551F661F771F8A95D2F74093BE01509321
+:1033C000BF016093C0017093C1010C94961541E058
+:1033D00050E060E070E004C0440F551F661F771F87
+:1033E0008A95D2F78091BE019091BF01A091C00152
+:1033F000B091C101482B592B6A2B7B2B4093BE0106
+:103400005093BF016093C0017093C1010C94961555
+:1034100041E050E060E070E004C0440F551F661FBB
+:10342000771F8A95D2F74095509560957095809159
+:10343000BE019091BF01A091C001B091C10148238C
+:1034400059236A237B234093BE015093BF016093AD
+:10345000C0017093C1010C94961541E050E060E00A
+:1034600070E004C0440F551F661F771F8A95D2F77E
+:103470008091BE019091BF01A091C001B091C101A6
+:10348000482759276A277B274093BE015093BF01E5
+:103490006093C0017093C1010C9496150F931F9314
+:1034A0000091BE011091BF012091C0013091C10176
+:1034B000DC01CB01802B912BA22BB32B8093BE017F
+:1034C0009093BF01A093C001B093C1011F910F91D0
+:1034D0000C9496150F931F930091BE011091BF019C
+:1034E0002091C0013091C101DC01CB0180239123E7
+:1034F000A223B3238093BE019093BF01A093C00188
+:10350000B093C1011F910F910C9496150F931F93C7
+:103510000091BE011091BF012091C0013091C10105
+:10352000DC01CB0180279127A227B3278093BE011E
+:103530009093BF01A093C001B093C1011F910F915F
+:103540000C9496150895CF92DF92EF92FF920F930D
+:103550001F93CF93DF938C01C090C201D090C30121
+:10356000E090C401F090C5018091BE019091BF012F
+:10357000A091C001B091C101C82AD92AEA2AFB2A28
+:10358000CFE1D0E0D701C6010C2E04C0B695A795B7
+:10359000979587950A94D2F780FF06C0B8018C2FC3
+:1035A0000E946F09019721F4219760F780E001C024
+:1035B0008C2FDF91CF911F910F91FF90EF90DF90B3
+:1035C000CF900895CF93DF93EC010E94A31ABE0120
+:1035D0000E946F09DF91CF910895CB010E94E21AFA
+:1035E00008958091C601859585958595089580916A
+:1035F000C6018770089598E0899F90011124262BB9
+:103600002093C6010C94E7192091C601809582236E
+:103610008093C601982F977069F430E0482F5527A2
+:1036200047FD50952417350729F085958595859593
+:103630000C94081A08959091C601977081E009F4DE
+:1036400080E0089590910C01992321F090910D0153
+:10365000911109C020910E0130910F01F9013296AC
+:103660009FEF40E01FC0982F9695969596959F30B6
+:1036700050F5E0910E01F0910F01E90FF11D8770F7
+:1036800021E030E0A90102C0440F551F8A95E2F7FE
+:10369000CA019181892B818308959F3F39F04F5F43
+:1036A0004E3041F051915813F8CF0DC05111F7CF62
+:1036B000942FF5CF9F3F39F0F901E90FF11D97FDE8
+:1036C000FA9582830895089590910C01992321F031
+:1036D00090910D01911109C020910E0130910F01BF
+:1036E000F9013296205F3F4F1FC0982F969596950F
+:1036F00096959F30F0F4E0910E01F0910F01E90FE3
+:10370000F11D877021E030E0A90102C0440F551F70
+:103710008A95E2F7CA018095918189238183089572
+:103720003196E217F30729F090819813F9CF1082B0
+:10373000F7CF089581E090E0E0910E01F0910F0144
+:10374000E80FF91F1082019680319105A9F70895BD
+:103750009091DA01892B8093DA01089580959091F8
+:10376000DA0189238093DA0108951092DA0108952D
+:103770009091D901892B8093D901089580959091DA
+:10378000D90189238093D90108951092D901089510
+:103790009091D801892B8093D801089580959091BC
+:1037A000D80189238093D80108951092D8010895F3
+:1037B0008093C70108951092C701089580910E016A
+:1037C00090910F01FC0131969C01205F3F4F80E0FA
+:1037D000919191118F5FE217F307D1F70895E0916E
+:1037E0000E01F0910F018091DA018083E0910E01CA
+:1037F000F0910F0190818091D901892B8083E09114
+:103800000E01F0910F0190818091D801892B808366
+:103810008091C701882361F0E0910E01F0910F01C2
+:103820009081892B80830E94DE1B81111092C70139
+:1038300080910E0190910F010C941D1120E00097D2
+:1038400039F0AC0141505109842395232F5FF7CF04
+:10385000822F0895CF92DF92EF92FF926C01EE24B7
+:10386000FF24C114D104E104F10421F0C701B60121
+:1038700020E101C020E0C72ED82EE92EFF24C1147C
+:10388000D104E104F10419F0285FC701B6016B010E
+:103890007C0154E0F694E794D794C7945A95D1F7F5
+:1038A000C114D104E104F10419F02C5FC701B60181
+:1038B0006B017C0142E0F694E794D794C7944A9553
+:1038C000D1F7C114D104E104F10419F02E5FC7014E
+:1038D000B601DC01CB01B695A79597958795892B05
+:1038E0008A2B8B2B09F02F5F822FFF90EF90DF90B8
+:1038F000CF9008958091F201843021F11092DC0183
+:1039000020E488E190E00FB6F894A89580936000D9
+:103910000FBE2093600080E00E940A0A83B7817F77
+:10392000846083BF83B7816083BF7894889583B7B1
+:103930008E7F83BF88E10FB6F89480936000109269
+:1039400060000FBE0895089508950E94A31C0E9470
+:10395000F6030E94A41C0E94EB0491E0811101C0B7
+:1039600090E0892F08950E94AA150E9411110C94CD
+:103970000A0A82E084BD93E095BD9AEF97BD8093DB
+:103980006E0008952FB7F8948091DD019091DE01CB
+:10399000A091DF01B091E0012FBF0895CF92DF9297
+:1039A000EF92FF920F931F932FB7F8944091DD0190
+:1039B0005091DE016091DF017091E0012FBF6A013B
+:1039C0007B01EE24FF248C0120E030E0C016D106FC
+:1039D000E206F30610F4415051099A01281B390BF5
+:1039E000C9011F910F91FF90EF90DF90CF90089544
+:1039F0001F920F920FB60F9211248F939F93AF9344
+:103A0000BF938091DD019091DE01A091DF01B09123
+:103A1000E0010196A11DB11D8093DD019093DE01AF
+:103A2000A093DF01B093E001BF91AF919F918F917F
+:103A30000F900FBE0F901F9018950E940E0EF894D5
+:103A40002FEF87EA91E6215080409040E1F700C0D7
+:103A5000000087E090EBDC018093FC019093FD0176
+:103A6000A093FE01B093FF019CE088E10FB6F894AB
+:103A7000A895809360000FBE90936000FFCFEF92F7
+:103A8000FF920F931F93CF93DF93D82FCDE08C2F0E
+:103A90000E94E40405E010E0E82EF12CC701002E9E
+:103AA00002C0959587950A94E2F780FF09C0602FC0
+:103AB0007C2F80E00E941A07D81302C081E006C064
+:103AC0000150110958F7C15010F780E0DF91CF91F4
+:103AD0001F910F91FF90EF900895CF93C82F8CE224
+:103AE0000E943F1D882321F08C2FCF910C943F1D05
+:103AF00080E0CF910895CF930E94C21E811102C031
+:103B00000E94A81EC5E6C15049F00E94F6038FE34B
+:103B10009CE90197F1F700C00000F5CF89E20E940F
+:103B20006D1D811113C18AE20E946D1D81110E94D9
+:103B3000A81E85E00E946D1D81110E941D1D0E941E
+:103B4000CD1E8093DB0187E00E946D1D8823A9F1C3
+:103B50008BE10E946D1D882351F08091DB0181FB78
+:103B6000222720F991E0922790FB81F90EC08EE088
+:103B70000E946D1D882361F08091DB0182FB22276A
+:103B800020F991E0922790FB82F98093DB0115C028
+:103B900080E10E946D1D9091DB01882341F093FB31
+:103BA000222720F981E0822780FB93F904C0892F26
+:103BB000809580FB90F99093DB018091DB010E945E
+:103BC000D11E0E94DF1E8093FB0180EE0E946D1DBE
+:103BD000882341F08091FB01982F909590FB80F90C
+:103BE0008093FB0189E30E946D1D882359F0809129
+:103BF000FB0181FB222720F991E0922790FB81F9BC
+:103C00008093FB0182EE0E946D1D882359F0809104
+:103C1000FB0182FB222720F991E0922790FB82F999
+:103C20008093FB0186EE0E946D1D882359F08091E0
+:103C3000FB0183FB222720F991E0922790FB83F977
+:103C40008093FB0183EE0E946D1D882359F08091C3
+:103C5000FB0184FB222720F991E0922790FB84F955
+:103C60008093FB0185E30E946D1D882359F08091AC
+:103C7000FB0185FB222720F991E0922790FB85F933
+:103C80008093FB0181E30E946D1D882359F0809190
+:103C9000FB0186FB222720F991E0922790FB86F911
+:103CA0008093FB0181E10E946D1D882359F0809172
+:103CB000FB0187FB222720F991E0922790FB87F9EF
+:103CC0008093FB018091FB010E94E31E8091FB0128
+:103CD00087FB882780F980930D0187E20E946D1D84
+:103CE000C82F8EE10E946D1D8111C2608FE10E947C
+:103CF0006D1D8111C46080E20E946D1D8111C8603C
+:103D000081E20E946D1D8111C06182E20E946D1DE1
+:103D10008111C06283E20E946D1D8111C06484E242
+:103D20000E946D1D882311F0C06802C0CC2329F0C9
+:103D30008C2F0E94DA1E6C2F03C00E94D61E682FA3
+:103D400070E080E090E0CF910C946A19CF910895D3
+:103D50006DEE7EEF80E090E00E94142560E082E04E
+:103D600090E00E94022560E083E090E00E9402253E
+:103D700060E084E090E00E94022560E085E090E051
+:103D80000C94022580E090E00E94FC2421E08D3E0E
+:103D90009E4F09F020E0822F089582E090E00C947D
+:103DA000F424682F82E090E00C94022583E090E0F8
+:103DB0000C94F424682F83E090E00C94022584E0B6
+:103DC00090E00C94F424682F84E090E00C94022599
+:103DD0008091E30180FF0BC06091130185E0689F33
+:103DE000B001112475956795759567952BC081FF76
+:103DF00009C06091130185E0689FB0011124759599
+:103E0000679520C082FF07C06091130185E0689F1D
+:103E1000B001112417C09091E4019923D1F0609171
+:103E20001201961788F72091130185E0289F9001D1
+:103E30001124929FA001939F500D112470E0CA019C
+:103E40000E94C6246038710540F46115710539F08F
+:103E500002C065E070E0862F08958FE7089581E045
+:103E600008958091E30180FF08C06091110170E026
+:103E7000759567957595679521C081FF06C060911E
+:103E8000110170E07595679519C082FF04C06091BB
+:103E9000110170E010C09091E4019923C1F060918C
+:103EA00010019617A0F780911101899FC00111247C
+:103EB00070E00E94C6246038710528F46115710510
+:103EC00021F0862F08958FE7089581E0089561E03D
+:103ED00070E0F4CF803F21F40E94E81E819504C079
+:103EE000813F29F40E94E81E8093E7010895823FF4
+:103EF00021F40E94E81E819504C0833F29F40E94AA
+:103F0000E81E8093E6010895893F19F40E94311F4D
+:103F100005C08A3F31F40E94311F81958093E801EA
+:103F200008958B3F21F40E94311F819504C08C3F7E
+:103F300029F40E94311F8093E9010895843F21F400
+:103F40008091E501816017C0853F21F48091E501F2
+:103F5000826011C0863F21F48091E50184600BC02E
+:103F6000873F21F48091E501886005C0883F31F4E6
+:103F70008091E50180618093E50108958D3F21F4F2
+:103F80008091E30181600BC08E3F21F48091E301B9
+:103F9000826005C08F3F29F48091E30184608093A3
+:103FA000E3010895803F39F48091E70187FF6CC0F9
+:103FB0001092E70169C0813F29F48091E70118164A
+:103FC000BCF362C09091E601823F29F497FF5CC088
+:103FD0001092E60159C0833F19F41916CCF354C06E
+:103FE000893F41F48091E80118160CF04DC0109201
+:103FF000E8014AC08A3F29F48091E80187FF44C064
+:10400000F6CF8B3F39F48091E90187FF3DC01092D4
+:10401000E9013AC08C3F29F48091E9011816BCF3FC
+:1040200033C0843F21F48091E5018E7F17C0853F26
+:1040300021F48091E5018D7F11C0863F21F48091AC
+:10404000E5018B7F0BC0873F21F48091E501877FDD
+:1040500005C0883F31F48091E5018F7E8093E501B2
+:1040600013C08D3F21F48091E3018E7F0BC08E3F02
+:1040700021F48091E3018D7F05C08F3F29F4809169
+:10408000E3018B7F8093E3018091E60181110EC0F3
+:104090008091E70181110AC08091E801811106C079
+:1040A0008091E901811102C01092E401089585EE2A
+:1040B00091E00E9428110E94C21C9093E20180931B
+:1040C000E10108951F93CF93DF938091E1019091D7
+:1040D000E2010E94CE1CAC019091E401992321F0F1
+:1040E0002091140130E006C0209115018AE0289F3C
+:1040F000900111244217530708F486C08091E6010D
+:10410000C091E701D091E8011091E901811107C048
+:10411000C11176C0D11174C0111172C075C09F3F1A
+:1041200019F09F5F9093E401181624F40E94E81E92
+:104130008093E6018091E60187FF05C00E94E81E9A
+:1041400081958093E6011C1624F40E94E81E80935A
+:10415000E7018091E70187FF05C00E94E81E819575
+:104160008093E7016091E601662339F1C091E70190
+:10417000CC2319F1772767FD7095872F972F0E9421
+:10418000D72323E333E343E35FE30E943B240E940E
+:10419000A4236093E6016C2F772767FD7095872F26
+:1041A000972F0E94D72323E333E343E35FE30E9487
+:1041B0003B240E94A4236093E7011D1624F40E946F
+:1041C000311F8093E8018091E80187FF05C00E94BC
+:1041D000311F81958093E801111624F40E94311F4C
+:1041E0008093E9018091E90187FF05C00E94311F9A
+:1041F00081958093E901DF91CF911F910C94572015
+:104200009F3F09F08ECF96CFDF91CF911F910895F8
+:10421000E5EEF1E085E0DF011D928A95E9F7109265
+:10422000E4011092E3010895833081F128F4813094
+:1042300059F08230D1F00895853009F449C0B8F1C1
+:10424000863009F456C0089580911501262F30E07C
+:10425000280F311D2F3F310524F4680F609315019D
+:1042600008958FEF80931501089580911401262FF2
+:1042700030E0280F311D2F3F310524F4680F609383
+:10428000140108958FEF8093140108958091130114
+:10429000262F30E0280F311D2F3F310524F4680F01
+:1042A0006093130108958FEF809313010895809117
+:1042B0001201262F30E0280F311D2F3F310524F445
+:1042C000680F6093120108958FEF80931201089593
+:1042D00080911101262F30E0280F311D2F3F31052D
+:1042E00024F4680F6093110108958FEF80931101FA
+:1042F000089580911001262F30E0280F311D2F3FA7
+:10430000310524F4680F6093100108958FEF8093B6
+:1043100010010895833011F128F4813049F0823082
+:1043200091F00895853081F120F18630C1F1089532
+:1043300080911501681720F4861B8093150108955C
+:1043400010921501089580911401681720F4861BBE
+:10435000809314010895109214010895809113011F
+:10436000681720F4861B809313010895109213019F
+:10437000089580911201681720F4861B8093120122
+:10438000089510921201089580911101681720F488
+:10439000861B809311010895109211010895809158
+:1043A0001001681720F4861B809310010895109265
+:1043B000100108950F931F938D3109F46BC008F01D
+:1043C0003FC08E3009F47FC0C0F4873009F469C063
+:1043D00068F4863009F0B1C08091DB01817F8E7F67
+:1043E0008093DB0181E08093EB01A8C0883009F461
+:1043F000A2C08B3009F49FC0A0C0863109F49BC0D5
+:1044000078F4803109F472C0813109F096C00E94BD
+:10441000AA1590910D0181E0892780930D018BC031
+:10442000893109F488C08B3109F087C08091DB01A4
+:1044300081FB222720F991E0922790FB81F94CC063
+:10444000853309F470C048F4873209F46CC008F46D
+:1044500059C0893209F467C070C0833438F48A3394
+:1044600008F04EC0883309F466C067C0833409F48D
+:104470005AC0883409F061C00E94AA150FEF13EDED
+:1044800020E3015010402040E1F700C000000E94EE
+:104490001D1D51C00E945E230E9411110E940A0A34
+:1044A0004AC09091DB01892F8095817080FB90F943
+:1044B00029F0966098609093DB0140C0997F977FC8
+:1044C0009093DB0138C08091DB0182FB222720F929
+:1044D00091E0922790FB82F98093DB01992359F1B7
+:1044E0008091DB0181608093DB0125C08091DB013D
+:1044F00083FB222720F991E0922790FB83F9ECCFF0
+:10450000895301C08D5141E050E060E070E08A01C4
+:104510009B0104C0000F111F221F331F8A95D2F781
+:10452000C901B80104C061E070E080E090E00E9441
+:104530006A190E94AA1581E001C080E01F910F91C5
+:10454000089580E0089580E00895CF93C82F80916A
+:10455000EB01813079F018F08230E9F187C0E09109
+:104560000E01F0910F018081813169F0823209F0F2
+:104570007FC009C0E0910E01F0910F01808181316F
+:1045800011F0823261F48C2F0E94A122811104C0AB
+:104590008C2F0E94DA211DC081E090E01AC08C2F80
+:1045A0000E94A322811114C0C43179F048F4CB30A9
+:1045B00079F0C03109F060C082E08093EB0108C05F
+:1045C000C93219F0C83321F057C01092EB0154C022
+:1045D00081E0817053C0C93289F118F5C43171F19D
+:1045E000A8F4C73009F046C08AE08093150194E131
+:1045F0009093140193E0909313018093120188E04B
+:104600008093110188E28093100134C0CE51C630EE
+:1046100088F5EC2FF0E0E65DFE4F80818093EA01A3
+:1046200029C0CE34E9F020F4CB3421F56AE013C080
+:10463000C13579F0C235F1F461E00DC08091EA0135
+:10464000882319F01092EA0115C081E08093EB01F4
+:1046500015C061E006C08091EA010E9414210AC0E1
+:104660006AE08091EA010E948A2104C01092EB0165
+:1046700080E004C081E002C080E0ABCFCF9108951C
+:10468000E1E8F0E0808188608083808181608083C0
+:104690008FB7F89493E09093890090ED9093880001
+:1046A0008FBF0895EFE6F0E08081826080830895F7
+:1046B000EFE6F0E080818D7F80830895EFE6F0E003
+:1046C000908182E08927808308951F920F920FB610
+:1046D0000F9211242F933F934F935F936F937F9388
+:1046E0008F939F93AF93BF93EF93FF938091EC01D0
+:1046F0009091ED0101969093ED018093EC01811171
+:1047000003C082E00E940A0AE091ED01E695E69579
+:10471000F0E0E65FF94FE4918091EC018E1303C065
+:1047200080E00E940A0AFF91EF91BF91AF919F91A3
+:104730008F917F916F915F914F913F912F910F904A
+:104740000FBE0F901F90189504D06894B1118DC0C2
+:10475000089570D088F09F5790F0B92F9927B751DE
+:10476000A0F0D1F0660F771F881F991F1AF0BA9535
+:10477000C9F712C0B13081F077D0B1E0089574C0AC
+:10478000672F782F8827B85F39F0B93FCCF386952B
+:1047900077956795B395D9F73EF490958095709588
+:1047A00061957F4F8F4F9F4F0895E89409C097FB05
+:1047B0003EF490958095709561957F4F8F4F9F4FF8
+:1047C0009923A9F0F92F96E9BB279395F69587953C
+:1047D00077956795B795F111F8CFFAF4BB0F11F4FF
+:1047E00060FF1BC06F5F7F4F8F4F9F4F16C08823A6
+:1047F00011F096E911C0772321F09EE8872F762FDC
+:1048000005C0662371F096E8862F70E060E02AF01C
+:104810009A95660F771F881FDAF7880F9695879508
+:1048200097F9089557FD9058440F551F59F05F3F71
+:1048300071F04795880F97FB991F61F09F3F79F0C2
+:1048400087950895121613061406551FF2CF469544
+:10485000F1DF08C0161617061806991FF1CF8695C6
+:104860007105610508940895E894BB2766277727AA
+:10487000CB0197F908950BD078C069D028F06ED09D
+:1048800018F0952309F05AC05FC01124EECFCADF9B
+:10489000A0F3959FD1F3950F50E0551F629FF00153
+:1048A000729FBB27F00DB11D639FAA27F00DB11DAC
+:1048B000AA1F649F6627B00DA11D661F829F222735
+:1048C000B00DA11D621F739FB00DA11D621F839FBC
+:1048D000A00D611D221F749F3327A00D611D231F92
+:1048E000849F600D211D822F762F6A2F11249F57E0
+:1048F00050408AF0E1F088234AF0EE0FFF1FBB1F03
+:10490000661F771F881F91505040A9F79E3F5105A1
+:1049100070F014C0AACF5F3FECF3983EDCF38695AD
+:1049200077956795B795F795E7959F5FC1F7FE2B4C
+:10493000880F911D9695879597F9089597F99F6728
+:1049400080E870E060E008959FEF80EC0895002417
+:104950000A941616170618060906089500240A94E4
+:1049600012161306140605060895092E0394000C6A
+:1049700011F4882352F0BB0F40F4BF2B11F460FFF9
+:1049800004C06F5F7F4F8F4F9F4F089597FB072E97
+:1049900016F4009407D077FD09D00E94E02407FCAC
+:1049A00005D03EF4909581959F4F0895709561953F
+:1049B0007F4F0895EE0FFF1F0590F491E02D0994AD
+:1049C000AA1BBB1B51E107C0AA1FBB1FA617B70735
+:1049D00010F0A61BB70B881F991F5A95A9F7809551
+:1049E0009095BC01CD010895F999FECF92BD81BD8E
+:1049F000F89A992780B50895A8E1B0E042E050E028
+:104A00000C941C25262FF999FECF92BD81BDF89AF2
+:104A1000019700B4021639F01FBA20BD0FB6F89402
+:104A2000FA9AF99A0FBE08950196272F0E9403253E
+:104A30000C940225DC01CB01FC01F999FECF06C0E4
+:104A4000F2BDE1BDF89A319600B40D92415050404C
+:084A5000B8F70895F894FFCFB8
+:104A580002200C0A9A0A770A430A0F0A0101C801C0
+:104A680028080A03140A3F4D3639CB057E05480548
+:104A78000F05A204BB04D404ED04010203040506D7
+:044A88000708090012
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/coderkun_neo2/keymap.c b/keyboards/ergodox_ez/keymaps/coderkun_neo2/keymap.c new file mode 100644 index 000000000..d25e2b995 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/coderkun_neo2/keymap.c @@ -0,0 +1,274 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_neo2.h" + +// Layer names +#define BASE 0 // default layer +#define PMQ 1 // poor man’s QWERTZ +#define PMN 2 // poor man’s Neo +#define FMU 3 // FMU layer +#define NHL 4 // Neo’s software layer 4 rebuilt in Hardware + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Layer 0: default + * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐ + * │ TAB │ 1 │ 2 │ 3 │ 4 │ 5 │ ` │ │ ´ │ 6 │ 7 │ 8 │ 9 │ 0 │ BKSPC │ + * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤ + * │ Y │ X │ V │ L │ C │ W │ HOM │ │ END │ K │ H │ G │ F │ Q │ ß │ + * ├───────┼─────┼─────┼─────╆─────╅─────┤ E │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤ + * │ Mod3 │ U │ I │ A │ E │ O ├─────┤ ├─────┤ S │ N │ R │ T │ D │ Mod3 │ + * ├───────┼─────┼─────┼─────╄─────╃─────┤ TL2 │ │ TL3 ├─────╄─────╃─────┼─────┼─────┼───────┤ + * │ LSHFT │ Ü │ Ö │ Ä │ P │ Z │ │ │ │ B │ M │ , │ . │ J │ Shift │ + * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ + * │ CTL │ ALT │ MO1 │ Win │ Mod4│ │ Mod4│ Win │ MO1 │ Alt │ CTL │ + * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ + * │ ← │ ↑ │ │ ↓ │ → │ + * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐ + * │ │ │ ─ │ │ ─ │ │ │ + * │ SPC │ RTN ├─────┤ ├─────┤ RTN │ SPC │ + * │ │ │ HYP │ │ MEH │ │ │ + * └─────┴─────┴─────┘ └─────┴─────┴─────┘ + */ +[BASE] = KEYMAP( + // left hand + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, + 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), + KC_LCTL, KC_LALT,MO(FMU),KC_LGUI,NEO_L2_L, + KC_LEFT, KC_UP, + 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, + 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, + NEO_L2_R,KC_RGUI,MO(FMU),KC_RALT,KC_RCTL, + KC_DOWN, KC_RGHT, + KC_MINS, + MEH_T(KC_NO),KC_ENT,KC_SPC + ), + +/* Layer 1: poor man’s QWERTZ + * based on kaimi’s layout + * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐ + * │ TAB │ 1 │ 2 │ 3 │ 4 │ 5 │ ` │ │ ´ │ 6 │ 7 │ 8 │ 9 │ 0 │ BKSPC │ + * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤ + * │ C │ P │ T │ F │ K │ L │ HOM │ │ END │ B │ A │ S │ G │ V │ Y │ + * ├───────┼─────┼─────┼─────╆─────╅─────┤ E │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤ + * │ Mod3 │ D │ H │ Ö │ O │ I ├─────┤ ├─────┤ U │ - │ Z │ E │ X │ Mod3 │ + * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│ │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤ + * │ LSHFT │ Ä │ Q │ R │ W │ N │ │ │ │ J │ M │ , │ . │ ẞ │ Shift │ + * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ + * │ CTL │ ALT │ MO1 │ Win │ MO4 │ │ M04 │ Win │ MO1 │ Alt │ CTL │ + * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ + * │ ← │ ↑ │ │ ↓ │ → │ + * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐ + * │ │ │ ─ │ │ ─ │ │ │ + * │ SPC │ RTN ├─────┤ ├─────┤ RTN │ SPC │ + * │ │ │ HYP │ │ MEH │ │ │ + * └─────┴─────┴─────┘ └─────┴─────┴─────┘ + */ +[PMQ] = KEYMAP( + // left hand + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, + DE_C, DE_P, DE_T, DE_F, DE_K, DE_L, KC_HOME, + NEO_L1_L, DE_D, DE_H, DE_OE, DE_O, DE_I, + KC_LSFT, DE_AE, DE_Q, DE_R, DE_W, DE_N, KC_TRNS, + KC_LCTL, KC_LALT,MO(FMU),KC_LGUI,MO(NHL), + KC_LEFT, KC_UP, + 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, + KC_END, DE_B, DE_A, DE_S, DE_G, DE_V, DE_Y, + DE_U, DE_MINS,DE_Z, DE_E, DE_X, NEO_L1_R, + KC_TRNS, DE_J, DE_M, DE_COMM,DE_DOT, DE_SS, KC_RSFT, + MO(NHL),KC_RGUI,MO(FMU),KC_RALT,KC_RCTL, + KC_DOWN, KC_RGHT, + KC_MINS, + MEH_T(KC_NO),KC_ENT,KC_SPC + ), + +/* Layer 2: poor man’s Neo + * based on kaimi’s layout + * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐ + * │ TAB │ 1 │ 2 │ 3 │ 4 │ 5 │ ` │ │ ´ │ 6 │ 7 │ 8 │ 9 │ 0 │ BKSPC │ + * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤ + * │ Y │ X │ V │ L │ C │ W │ HOM │ │ END │ K │ H │ G │ F │ Q │ ß │ + * ├───────┼─────┼─────┼─────╆─────╅─────┤ E │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤ + * │ Mod3 │ U │ I │ A │ E │ O ├─────┤ ├─────┤ S │ N │ R │ T │ D │ Mod3 │ + * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│ │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤ + * │ LSHFT │ Ü │ Ö │ Ä │ P │ Z │ │ │ │ B │ M │ , │ . │ J │ Shift │ + * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ + * │ CTL │ ALT │ MO1 │ Win │ MO4 │ │ M04 │ Win │ MO1 │ Alt │ CTL │ + * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ + * │ ← │ ↑ │ │ ↓ │ → │ + * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐ + * │ │ │ ─ │ │ ─ │ │ │ + * │ SPC │ RTN ├─────┤ ├─────┤ RTN │ SPC │ + * │ │ │ HYP │ │ MEH │ │ │ + * └─────┴─────┴─────┘ └─────┴─────┴─────┘ + */ +[PMN] = KEYMAP( + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, + DE_Y, DE_X, DE_V, DE_L, DE_C, DE_W, KC_HOME, + KC_NO, DE_U, DE_I, DE_A, DE_E, DE_O, + KC_LSFT, DE_UE, DE_OE, DE_AE, DE_P, DE_Z, KC_TRNS, + KC_LCTL, KC_LALT,MO(FMU),KC_LGUI,MO(NHL), + KC_LEFT, KC_UP, + 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, + KC_END, DE_K, DE_H, DE_G, DE_F, DE_Q, DE_SS, + DE_S, DE_N, DE_R, DE_T, DE_D, KC_NO, + KC_TRNS, DE_B, DE_M, KC_COMM,KC_DOT, DE_J, KC_RSFT, + MO(NHL),KC_RGUI,MO(FMU),KC_RALT,KC_RCTL, + KC_DOWN, KC_RGHT, + KC_MINS, + MEH_T(KC_NO),KC_ENT,KC_SPC + ), + +/* Layer 3: F-keys, Mouse and Unicode + * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤ + * │ │ │ │ │ ✕ │ │ │ │ │ │ F9 │ F10 │ F11 │ F12 │ │ + * ├───────┼─────┼─────┼─────╆─────╅─────┤ │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤ + * │ │ │ │ │ ✓ │ ├─────┤ ├─────┤ │ F5 │ F6 │ F7 │ F8 │ │ + * ├───────┼─────┼─────┼─────╄─────╃─────┤ │ │ ├─────╄─────╃─────┼─────┼─────┼───────┤ + * │ │ │ │ │ │ │ │ │ │ │ F1 │ F2 │ F3 │ F4 │ │ + * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ + * │ │ │(MO1)│ │ │ │ │ │(MO1)│ │ │ + * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ + * │ Ms← │ Ms↑ │ │ Ms↓ │ Ms→ │ + * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐ + * │ │ │ MLC │ │ MRC │ │ │ + * │ │ ├─────┤ ├─────┤ │ │ + * │ │ │ │ │ │ │ │ + * └─────┴─────┴─────┘ └─────┴─────┴─────┘ + */ +[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, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_MS_L, KC_MS_U, + KC_BTN1, + 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_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TRNS,KC_F5, KC_F6, KC_F7, KC_F8, 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_MS_D, KC_MS_R, + KC_BTN2, + KC_TRNS, KC_TRNS,KC_TRNS + ), + +/* Layer 4: Neo’s software layer 4 rebuilt in Hardware + * based on kaimi’s layout + * ┌───────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┬─────┬───────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┼─────┼───────┤ + * │ │ PgUp│ BSpc│ ↑ │ Del │ PgDn│ │ │ │ │ 7 │ 8 │ 9 │ + │ − │ + * ├───────┼─────┼─────┼─────╆─────╅─────┤ │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤ + * │ │ Home│ ← │ ↓ │ → │ End ├─────┤ ├─────┤ │ 4 │ 5 │ 6 │ , │ . │ + * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│ │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤ + * │ │ Esc │ Tab │ Ins │ Ret │ Undo│ │ │ │ │ 1 │ 2 │ 3 │ │ │ + * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ + * │ │ │(MO1)│ │(MO4)│ │(MO4)│ │(MO1)│ │ │ + * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ + * │ │ │ │ │ │ + * ┌─────┼─────┼─────┤ ├─────┼─────┼─────┐ + * │ │ │ │ │ │ │ │ + * │ │ ├─────┤ ├─────┤ │ │ + * │ │ │ │ │ │ │ │ + * └─────┴─────┴─────┘ └─────┴─────┴─────┘ + */ +[NHL] = KEYMAP( + // left hand + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_PGUP,KC_BSPC,KC_UP, KC_DELT,KC_PGDN,KC_NO, + KC_NO, KC_HOME,KC_LEFT,KC_DOWN,KC_RGHT,KC_END, + KC_NO, KC_ESC, KC_TAB, KC_INS, KC_ENT, KC_UNDO,KC_TRNS, + KC_NO, KC_NO, KC_TRNS,KC_NO, KC_TRNS, + 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_7, KC_8, KC_9, DE_PLUS,DE_MINS, + KC_NO, KC_4, KC_5, KC_6, KC_COMM,KC_DOT, + KC_TRNS, KC_NO, KC_1, KC_2, KC_3, KC_NO, KC_NO, + KC_TRNS,KC_NO, KC_TRNS,KC_NO, KC_NO, + KC_NO, KC_NO, + KC_NO, + KC_NO, KC_NO, KC_NO + ), +}; + +const uint16_t PROGMEM fn_actions[] = { + [BASE] = ACTION_FUNCTION(BASE), + [PMQ] = ACTION_FUNCTION(PMQ), + [PMN] = ACTION_FUNCTION(PMN), + [FMU] = ACTION_LAYER_TAP_TOGGLE(FMU), + [NHL] = ACTION_LAYER_TAP_TOGGLE(NHL) +}; + + +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 FMU: + ergodox_right_led_1_on(); + break; + case PMQ: + ergodox_right_led_2_on(); + break; + case PMN: + ergodox_right_led_3_on(); + break; + default: + ergodox_board_led_off(); + break; + } + +}; diff --git a/keyboards/ergodox_ez/keymaps/coderkun_neo2/readme.md b/keyboards/ergodox_ez/keymaps/coderkun_neo2/readme.md new file mode 100644 index 000000000..2a4d3a535 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/coderkun_neo2/readme.md @@ -0,0 +1,31 @@ +# coderkun’s Neo2 layout for the ErgoDox EZ + +The idea of this layout is to use it for [Neo2](http://www.neo-layout.org) but also provide layers to use QWERTZ with activated Neo driver and to use (basic) Neo when no driver is available (standard QWERTZ driver is active) (e. g. on other computers, in virtual machines) and to make heavily use of thumb keys. + +The main goal of the default layer is to provide a complete symmetric layout with each modifier equally placed for both hands (mirror, of course). + +It also features a layer for additional keys like F-keys (F1 – F12), some mouse keys and (hopefully in the near future) some useful Unicode symbols. + + +## Layers + +0. Default layer for Neo2 +1. Poor man’s QWERTZ +2. Poor man’s Neo +3. F-keys, mouse keys und Unicode symbols +4. Neo’s software layers 4 rebuilt in hardware + + +## Build + +1. Enable Unicode in Makefile + + ``` + UNICODE_ENABLE = yes + ``` +2. Build as usual + + ``` + make clean + make KEYMAP=coderkun_neo2 + ``` diff --git a/keyboards/ergodox_ez/keymaps/colemak/compiled.hex b/keyboards/ergodox_ez/keymaps/colemak/compiled.hex new file mode 100644 index 000000000..e3ce9a68f --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/colemak/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4
+:100010000C94BE020C94BE020C94BE020C94BE0260
+:100020000C94BE020C94BE020C94620D0C94340E1F
+:100030000C94BE020C94BE020C94BE020C94BE0240
+:100040000C94BE020C943E220C94BE020C94BE0290
+:100050000C94BE020C94D11B0C94BE020C94BE02F4
+:100060000C94BE020C94BE020C94BE020C94BE0210
+:100070000C94BE020C94BE020C94BE020C94BE0200
+:100080000C94BE020C94BE020C94BE020C94BE02F0
+:100090000C94BE020C94BE020C94BE020C94BE02E0
+:1000A0000C94BE020C94BE020C94BE02A10EC30EB0
+:1000B000B10FC30EB10F080F2B0FB10F800F930FAD
+:1000C0006212621291129112C712E71218141814D8
+:1000D000F2121814A213A2130914181418141214EB
+:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300
+:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0
+:10010000C113CE13D513DC13E6130000F0A12E00AB
+:100110004C002A00E100354100001E0014000400DC
+:100120001D7134004D001F001A0015001B00E10472
+:100130002A00200009001600060050002C002100B3
+:100140001300170019004F004A0022000A000700A0
+:10015000050000006574500001540000007F00009D
+:10016000E3004F000154000000770000E20023008C
+:100170000D000B000E000000297124000F0011007B
+:10018000100052004B0025001800080036005100F6
+:10019000280026001C000C0037002F002B00270031
+:1001A00033001242387130004E002D00310034000F
+:1001B000E500C10000000100010001000100010094
+:1001C00000003A001E0220022202010001003B0052
+:1001D0001F0221022302010001003C002F0226021F
+:1001E0002F00010001003D00300227023000010015
+:1001F00001003E003102350035020000010001001F
+:1002000001000000010000000100010001000000E9
+:100210000100000001003F005200510024020000D4
+:1002200001004000240021001E00010001004100E7
+:10023000250022001F003700010042002600230095
+:10024000200027000100430025022E0231002E006D
+:100250000100440045000100010001000000010010
+:100260000100010001000100000001000100010087
+:1002700001000100010001000100F2000100010085
+:1002800001000100F000F1000100F4000100010094
+:100290000100F3000100F500010001000100010070
+:1002A0000100000001000100010000000100000049
+:1002B0000100010001000000010000000100010038
+:1002C0000100010001000000010001000100010027
+:1002D0000100A9000100010001000100AC00AA001A
+:1002E000B600010001000100AB00A8000100010000
+:1002F0000100010001000100010001000100AE0049
+:1003000001000100000016034500720067006F0045
+:1003100044006F007800200045005A0000001603DA
+:100320004500720067006F0044006F0078002000F5
+:1003300045005A0000000403090409026D0004018D
+:1003400000A0FA09040000010301010009211101C4
+:100350000001223F000705810308000A090401008B
+:100360000103010200092111010001224D000705CE
+:10037000820308000A0904020001030000000921A9
+:10038000110100012236000705830308000A090451
+:1003900003000103000000092111010001223900BE
+:1003A000070584031000011201100100000008ED90
+:1003B000FE071301000102000105010906A1010564
+:1003C0000719E029E7150025019508750181020547
+:1003D000081901290595057501910295017503918B
+:1003E0000105071900297715002501957875018108
+:1003F00002C005010980A101850216010026B7008F
+:100400001A01002AB700751095018100C0050C097A
+:1004100001A1018503160100269C021A01002A9CF5
+:1004200002751095018100C005010902A1010901B1
+:10043000A10005091901290515002501950575017A
+:10044000810295017503810105010930093115818A
+:10045000257F95027508810609381581257F95014C
+:1004600075088106050C0A38021581257F950175EE
+:10047000088106C0C005010906A101050719E02988
+:10048000E715002501950875018102950175088120
+:100490000105081901290595057501910295017558
+:1004A0000391010507190029FF150025FF95067521
+:1004B000088100C0000000000000000000000001F2
+:1004C0000204060A0F17202C3A4A5D71879DB3C7B4
+:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF
+:1004E0003A2C20170F0A0604020100000000000049
+:1004F0000000000011241FBECFEFDAE0DEBFCDBF49
+:1005000004B603FE24C08091FB019091FC01A091F0
+:10051000FD01B091FE018730904BA740B04BB9F47C
+:100520001092FB011092FC011092FD011092FE014D
+:1005300014BE84B7877F84BF88E10FB6F894809398
+:100540006000109260000FBEE0E0FFE3099511E04B
+:10055000A0E0B1E0EAE0F8E402C005900D92A43317
+:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0
+:10057000B107E1F70E94A60A0C9403240C94000032
+:100580001092B9008AE08093B800089594EA90939D
+:10059000BC009091BC0097FFFCCF9091B900987F70
+:1005A000983021F0903111F081E008958093BB00E4
+:1005B00084E88093BC008091BC0087FFFCCF8091D1
+:1005C000B900887F883111F0803471F780E0089598
+:1005D00084E98093BC008091BC0084FDFCCF089529
+:1005E0008093BB0084E88093BC008091BC0087FFAF
+:1005F000FCCF9091B900987F81E0983209F480E0B7
+:10060000089584E88093BC008091BC0087FFFCCFF4
+:100610008091BB00089580910101811115C080E493
+:100620000E94C6028093010181110CC082E10E94E8
+:10063000F00280930101811105C08FEF0E94F0024A
+:10064000809301010E94E80284B1807F84B985B162
+:10065000807F85B98AB1837F8AB98BB1837F8BB95B
+:100660003E98469808950E94C604809301010E9416
+:100670000B0380B38C7080BB81B3836F81BBA5E318
+:10068000B1E0E3E4F1E08EE08E0F11921D928E1343
+:10069000FCCF0C94B004BF92CF92DF92EF92FF9206
+:1006A0000F931F93CF93DF9380910101882379F0FB
+:1006B000809134018F5F80933401811108C00E94C2
+:1006C000C60480930101811102C00E94580405E311
+:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407
+:1006E000E394F12CC730D10500F58091010181110F
+:1006F00064C080E40E94C60280930101811112C08F
+:1007000082E10E94F0028093010181110BC0C701B8
+:100710000C2E01C0880F0A94EAF780950E94F0021F
+:10072000809301010E94E80248C0CA30A1F028F479
+:10073000C83059F0C93061F005C0CC3089F070F094
+:10074000CD3089F0209A289810C0219A29980DC0A0
+:10075000229A2A980AC0239A2B9807C0529A01C05D
+:10076000539A5B9802C03E9A469890EA9A95F1F7A0
+:100770009FB1799902C082E001C080E091709D250F
+:10078000982B7C9902C084E001C080E0892B7D9980
+:1007900002C038E001C030E0832B7E9902C020E126
+:1007A00001C020E0822B9FB19095991F9927991F36
+:1007B0009295990F907E892B0FC080910101811134
+:1007C00049C080E40E94C60280930101882379F128
+:1007D000B12C0E94E8028B2DF8019081981719F036
+:1007E0008083C09200010E940B0321960F5F1F4F70
+:1007F000CE30D10509F076CF80910001882361F1D8
+:10080000815080930001882339F08FE99FE00197A0
+:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F
+:10082000CF01825F91919D938E13FCCF15C083E120
+:100830000E94F002809301018111CACF81E40E94DD
+:10084000C602809301018111C3CF0E940103B82E1B
+:10085000B094BFCF80E0C0CF0E94560481E0DF910A
+:10086000CF911F910F91FF90EF90DF90CF90BF90AD
+:100870000895E82FF0E0ED5BFE4F80810895089524
+:100880000F931F93CF93DF93C3E4D1E010E00C2FBD
+:10089000025F899190E00E94F71A180F0C13F9CFAC
+:1008A000812FDF91CF911F910F9108950C94260510
+:1008B00056985E9825982D9826982E9827982F98C8
+:1008C0008FEF90E0909389008093880090938B0045
+:1008D00080938A0090938D0080938C00259A2D9AA6
+:1008E0002FEF80E792E0215080409040E1F700C078
+:1008F0000000269A2E9A2FEF80E792E02150804048
+:100900009040E1F700C00000279A2F9A2FEF80E770
+:1009100092E0215080409040E1F700C0000025980F
+:100920002D982FEF80E792E0215080409040E1F732
+:1009300000C0000026982E982FEF80E792E021500B
+:1009400080409040E1F700C0000027982F9856980B
+:100950005E9825982D9826982E9827982F98089578
+:1009600089EA8093800089E08093810024982C9804
+:100970003F988AB18F748AB96E98479A8BB1806B11
+:100980008BB9769A0E9458040C94250580E28093D6
+:1009900001018091510181110EC00E94C00281E0CD
+:1009A000809351012FEF83ED90E3215080409040E0
+:1009B000E1F700C0000080E40E94C60280930101BC
+:1009C00081112EC00E94F00280930101811128C084
+:1009D0000E94F00280930101811122C08FE30E94E6
+:1009E000F0028093010181111BC00E94E80280E4A3
+:1009F0000E94C60280930101811112C08CE00E9406
+:100A0000F0028093010181110BC00E94F0028093DB
+:100A10000101811105C08FE30E94F0028093010162
+:100A20000E94E80280910101089561110BC0FC0150
+:100A30008281882321F085EE0E94061103C085EE95
+:100A40000E94CE1180E090E0089508956091BD016C
+:100A50007091BE018091BF019091C0010E94031B63
+:100A600056985E9825982D9826982E9827982F9816
+:100A7000813019F0823021F00895259A2D9A089539
+:100A8000269A2E9A089581E0089581E008950C94A5
+:100A9000450508950F931F93CF93DF938C01FC01BD
+:100AA000C081D181CE010E947C19BE010E94F30554
+:100AB000EC01B8010E944705882309F48DC0F801B4
+:100AC0008281882309F44AC080915D0181111FC091
+:100AD000C431F0E5DF0709F051C00E94490581E00B
+:100AE00080935D010E949B1B90935C0180935B014E
+:100AF0001092540110925601109255011092580113
+:100B00001092570110925A011092590165C08091BC
+:100B10005B0190915C010E94A71B883C910570F4D9
+:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB
+:100B3000D183C0838F5F809354014EC0C43880E559
+:100B4000D80721F0C538D04501F13AC0F8018281BB
+:100B5000882341F01092520182E01EC0C438E0E5C3
+:100B6000DE0759F580915201811106C086E20E948C
+:100B7000061186E20E94CE1182E01CC0C438F0E566
+:100B8000DF0741F3C538D045D9F4F80182818823C5
+:100B900031F01092530180E20E941D121DC080911D
+:100BA0005301811106C087E20E94061187E20E946C
+:100BB000CE1180E20E9424120FC0C538D04529F31F
+:100BC00081E08093520180935301C801DF91CF915E
+:100BD0001F910F910C94430580E0DF91CF911F91FD
+:100BE0000F910895089596E0799FF001112494E5FE
+:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F
+:100C0000E25FFE4F859194910895880F991FFC0132
+:100C1000E657F040859194910895880F991FFC0143
+:100C2000E65FFE4F8591949108950F931F93CF93A4
+:100C3000DF93EC01811520E3920750F5C11580E2A6
+:100C4000D80708F0C3C0CB3BD10590F4C83AD10512
+:100C500008F06AC0C53AD10508F05BC0C430D105C0
+:100C600008F0D0C1219709F0CAC101E010E00AC222
+:100C7000CF3FD10511F008F0C5C1C03FD10508F044
+:100C8000A2C0CE01805E9109089708F4BBC1B7C12C
+:100C9000C13090E5D90709F4A2C020F5C0318FE436
+:100CA000D80770F4C11590E4D90708F094C0C115B5
+:100CB00021E3D20708F0A3C1DD278E01106CE2C149
+:100CC000C115D04509F09BC10E9483148FEF94E3B6
+:100CD0002CE0815090402040E1F700C000000E94CD
+:100CE000F61BD0C1C11597E5D90758F4C03121E5ED
+:100CF000D20708F01CC1C43180E5D80708F475C0DC
+:100D00007EC1CE0190578115904108F078C1DF7007
+:100D100073C1C53AD10509F477C1C63AD10509F0C6
+:100D200076C102E810E4AEC1C83AD10509F472C137
+:100D3000C93AD10509F471C1CA3AD10509F470C1A3
+:100D4000CB3AD10509F46FC1CC3AD10509F46EC193
+:100D5000CD3AD10509F46DC1C03BD10509F46CC190
+:100D6000CE3AD10509F46BC1CF3AD10509F46AC175
+:100D7000C13BD10509F469C1C23BD10509F468C181
+:100D8000C33BD10509F467C1C43BD10509F466C171
+:100D9000C53BD10509F465C1C63BD10509F464C161
+:100DA000C73BD10509F463C1C83BD10509F462C151
+:100DB000C93BD10509F461C1CA3BD10509F460C141
+:100DC00000E014E45FC18E0110655CC1CE019F702C
+:100DD0000E940D0658C1DF708E01106A53C18091C8
+:100DE000DA0181608093DA014DC10E949B1D81115F
+:100DF00002C00E94811D0E94B81D90E09093FB01EB
+:100E00008093FA01C23080E5D80721F48091FA017D
+:100E1000816086C0C43090E5D90721F48091FA0141
+:100E200082607EC0C63020E5D20721F48091FA01AD
+:100E3000846076C0C83080E5D80719F48091FA0143
+:100E400027C0CA3090E5D90721F48091FA0180616A
+:100E500067C0CC3020E5D20721F48091FA0180628E
+:100E60005FC0CE3080E5D80721F48091FA0180641C
+:100E700057C0C03190E5D90721F48091FA0180680C
+:100E80004FC0C23120E5D20729F48091FA01846075
+:100E9000886046C0C33080E5D80721F48091FA010C
+:100EA0008E7F3EC0C53090E5D90721F48091FA01CC
+:100EB0008D7F36C0C73020E5D20721F48091FA013A
+:100EC0008B7F2EC0C93080E5D80719F48091FA01D4
+:100ED00026C0CB3090E5D90721F48091FA018F7EAE
+:100EE0001FC0CD3020E5D20721F48091FA018F7D1B
+:100EF00017C0CF3080E5D80721F48091FA018F7BAD
+:100F00000FC0C13190E5D90721F48091FA018F77A4
+:100F100007C0C331D04531F48091FA018B7F877FC0
+:100F20008093FA018091FA010E94BC1DABC08D2F05
+:100F300099278F70992781309105D9F49E012370EC
+:100F4000332702C0880F991F2A95E2F79C688E010B
+:100F500044E0000F111F4A95E1F700271370802B22
+:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA
+:100F70002FC08230910531F4DC2FCC278E01016F18
+:100F8000106A80C08330910569F4CE01837099277F
+:100F900001E010E002C0000F111F8A95E2F7C801BE
+:100FA0009C680FC084309105B9F4CE0183709927F5
+:100FB00001E010E002C0000F111F8A95E2F7C8019E
+:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029
+:100FD0008C010C2B1D2B56C08530910531F4DC2F74
+:100FE000CC278E01046F106A4DC0069709F04AC0E5
+:100FF000CF71DD27DC2FCC278E01106243C000E0CB
+:1010000010E040C08E013EC001E810E43BC003E8A0
+:1010100010E438C002EE14E435C009EE14E432C026
+:101020000AEE14E42FC005EB14E42CC006EB14E424
+:1010300029C007EB14E426C00CEC14E423C00DEC2B
+:1010400014E420C003E815E41DC00AE815E41AC042
+:1010500002E915E417C004E915E414C001E216E43E
+:1010600011C003E216E40EC004E216E40BC005E270
+:1010700016E408C006E216E405C007E216E402C062
+:101080000AE216E4C801DF91CF911F910F910895F4
+:1010900096E0799FF001112494E5899FE00DF11D00
+:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149
+:1010B0009491803E9105E0F4803C910558F5813390
+:1010C000910509F46FC048F48932910509F463C0B1
+:1010D0008A32910509F46DC072C089339105E9F037
+:1010E00082389105D1F08533910509F44DC067C070
+:1010F000833E910581F138F4803E9105B9F0823E3E
+:101100009105D9F05CC0863E910561F1873E91055D
+:10111000A1F155C00E94050608952091FA0120FD15
+:1011200002C021FF4CC080EE90E049C08091FA01DE
+:1011300080FFF9CF89E390E042C08091FA0182FFFD
+:101140000EC08091FA0184FF03C080E090E037C0B8
+:1011500083EE90E034C08091FA0182FFF2CF82EEFC
+:1011600090E02DC08091FA0183FF0BC08091FA01BD
+:1011700084FDEBCF87EE90E022C08091FA0183FFDF
+:10118000F5CF86EE90E01BC08091FA0185FF07C085
+:1011900089E290E014C08091FA0185FFF9CF85E3E0
+:1011A00090E00DC08091FA0186FF07C08AE290E0CE
+:1011B00006C08091FA0186FFF9CF81E390E00E949A
+:1011C0001506089508950C94E20880916E01089523
+:1011D000CF93DF9300D01F92CDB7DEB79C018091F3
+:1011E000F101843019F593E099833B832A8390932E
+:1011F000E9008FEF9091E800815095FD06C095EDD4
+:101200009A95F1F700008111F5CF8091E80085FFF4
+:101210000DC040E050E063E070E0CE0101960E9416
+:10122000520B8091E8008E778093E8000F900F902A
+:101230000F90DF91CF910895CF93DF9300D01F924D
+:10124000CDB7DEB72091F101243021F522E02983CA
+:101250009B838A8383E08093E9008FEF9091E8007D
+:10126000815095FD06C095ED9A95F1F7000081112A
+:10127000F5CF8091E80085FF0DC040E050E063E0CD
+:1012800070E0CE0101960E94520B8091E8008E77AB
+:101290008093E8000F900F900F90DF91CF91089509
+:1012A0002091F1012430F1F422E02093E9002FEFA6
+:1012B0003091E800215035FD06C035ED3A95F1F743
+:1012C00000002111F5CF2091E80025FF0BC040E080
+:1012D00050E065E070E00E94520B8091E8008E774C
+:1012E0008093E8000895CF93DF93EC019091F10192
+:1012F000943009F046C080910C018823D9F0809188
+:101300000D018823B9F09093E9008FEF9091E800E8
+:10131000815095FD06C095E19A95F1F70000811185
+:10132000F5CF8091E80085FF2CC040E050E060E1FF
+:1013300070E017C081E08093E9008FEF9091E800A2
+:10134000815095FD06C095ED9A95F1F70000811149
+:10135000F5CF8091E80085FF14C040E050E068E0E0
+:1013600070E0CE010E94520B8091E8008E7780934E
+:10137000E80080E1FE01AEE5B1E001900D928A95B2
+:10138000E1F7DF91CF9108958091F001811109C0BB
+:101390000E94E70C0E94440D8091E20084608093DB
+:1013A000E20008951092F001089508950C942B2204
+:1013B0000E948C1B0E9431220E94EA0F0C94E308C9
+:1013C00042E061EC81E00E94610C42E061EC82E06D
+:1013D0000E94610C42E061EC83E00E94610C42E1FA
+:1013E00061EC84E00C94610C8091F301833009F48A
+:1013F00055C030F4813071F0823009F48EC0089508
+:101400008A3009F47AC08B3009F460C0893009F061
+:101410009CC020C08091F201813A09F096C0809171
+:10142000E800877F8093E8008091F6019091F701B2
+:10143000892B21F460E18EE591E003C060E080E05B
+:1014400090E070E00E949D0B8091E8008B77809384
+:10145000E80008958091F201813209F076C0809110
+:10146000F6019091F701009719F0039709F06DC00C
+:101470008091E800877F8093E8008091E80082FDFA
+:1014800005C08091F1018111F8CF5FC08091F1001A
+:1014900080936E018091E8008B7753C08091F201B8
+:1014A000813A09F052C08091F6019091F701892BA1
+:1014B00009F04BC08091E800877F8093E80080911D
+:1014C000E80080FFFCCF80910C0136C08091F201D2
+:1014D0008132D9F58091F6019091F701892BA9F518
+:1014E0008091E800877F8093E8000E94960C8091AD
+:1014F000F40180930C010C9483148091F2018132E9
+:1015000021F58091E800877F8093E8000E94960C87
+:101510008091F50180936F0108958091F201813AE5
+:10152000A1F48091E800877F8093E8008091E80033
+:1015300080FFFCCF80916F018093F1008091E800E3
+:101540008E778093E8000C94960C089584B7877F7B
+:1015500084BF88E10FB6F894809360001092600019
+:101560000FBE90E080E80FB6F894809361009093EE
+:1015700061000FBE0E9439100E94E70C0E94440DCA
+:101580008091E20084608093E20078940E94CA0F08
+:101590000E943B1082E091E00E94E50F0E94192218
+:1015A0008091F101853069F40E94531B8091EF0115
+:1015B0008823B1F30E947E1B882391F30E943C0B89
+:1015C000EFCF0E944110ECCF292F33272330310574
+:1015D000C9F064F42130310581F02230310509F081
+:1015E00043C08DE690E02AE333E042C0213231056A
+:1015F000F1F02232310541F137C082E190E027EA73
+:1016000033E036C099278130910541F08230910551
+:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4
+:1016200002C0E6E0F3E0849190E09F0121C06430C5
+:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5
+:10164000318189E090E014C0643070F470E0FB01F7
+:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47
+:10166000FE4F808190E004C080E090E020E030E018
+:10167000FA0131832083089580E189BD82E189BD2B
+:1016800009B400FEFDCF8091D8008F7D8093D800F3
+:101690008091E00082608093E0008091E00081FD15
+:1016A000FCCF0895CF92DF92EF92FF920F931F939A
+:1016B000CF93DF93EC018B016A010E94B50C81117D
+:1016C00033C0C114D10439F0F60180819181081B27
+:1016D000190BC80FD91FE12CF12C0115110519F1B7
+:1016E0008091E80085FD16C08091E8008E77809398
+:1016F000E800C114D10449F0F60180819181E80E1F
+:10170000F91EF182E08285E00FC00E94B50C8823AB
+:1017100021F30AC089918093F10001501109FFEF74
+:10172000EF1AFF0ADACF80E0DF91CF911F910F917E
+:10173000FF90EF90DF90CF9008952091F8013091C5
+:10174000F9012617370748F06115710539F4209122
+:10175000E8002E772093E80001C0B90140E0611550
+:101760007105A9F12091F101222309F443C025302C
+:1017700009F442C02091E80023FD40C02091E80018
+:1017800022FD32C02091E80020FFE9CF4091F30014
+:101790002091F20030E0342BFC01CF01611571057E
+:1017A00059F02830310540F481918093F100615067
+:1017B00071092F5F3F4FF1CF41E02830310509F02B
+:1017C00040E02091E8002E772093E800C8CF411137
+:1017D000C9CF0AC08091F101882361F0853061F0A2
+:1017E0008091E80083FD0AC08091E80082FFF2CF7B
+:1017F00080E0089582E0089583E0089581E00895EF
+:101800002091F8013091F9012617370748F061154A
+:10181000710539F42091E8002E772093E80001C08B
+:10182000B901FC0120E06115710591F18091F10190
+:10183000882309F440C0853009F43FC08091E80056
+:1018400083FD3DC08091E80082FD2FC08091E800BB
+:1018500080FFE9CF2091F3008091F20090E0922B7D
+:101860006115710559F08830910540F42491209359
+:10187000F1003196615071090196F2CF21E008978D
+:1018800009F020E08091E8008E778093E800CBCFCC
+:101890002111CCCF0AC08091F101882361F08530FD
+:1018A00061F08091E80083FD0AC08091E80082FF2A
+:1018B000F2CF80E0089582E0089583E0089581E00A
+:1018C0000895982F973058F59093E900981739F0BC
+:1018D0007091EC002091ED005091F00003C0242F96
+:1018E000762F50E021FF19C03091EB003E7F3093FE
+:1018F000EB003091ED003D7F3093ED003091EB0037
+:1019000031603093EB007093EC002093ED00509326
+:10191000F0002091EE0027FF07C09F5FD3CF8F70AC
+:101920008093E90081E0089580E008958091F201BC
+:1019300087FF11C08091E80082FD05C08091F10110
+:101940008111F8CF11C08091E8008B770BC0809196
+:10195000F101882349F08091E80080FFF8CF809161
+:10196000E8008E778093E80008952091E40030919C
+:10197000E50095E64091EC00842F817040FF22C085
+:101980008091E80080FD1CC08091F101882391F0D6
+:10199000853091F08091EB0085FD10C04091E4000E
+:1019A0005091E5004217530729F39A01915011F71E
+:1019B00084E0089582E0089583E0089581E0089529
+:1019C00080E008954091E80042FFDECF08950E9434
+:1019D000550D0E945D0DE0EEF0E080818160808316
+:1019E000E8EDF0E080818F77808319BCA7EDB0E04F
+:1019F0008C918E7F8C9380818F7E80831092F001FA
+:101A000008950F931F93CF93DF930E94550D0E946B
+:101A10005D0DC8EDD0E088818F77888388818068EC
+:101A2000888388818F7D888319BC1092F101109280
+:101A3000ED011092EF011092EE0100EE10E0F801BE
+:101A400080818B7F808388818160888342E060E031
+:101A500080E00E94610CE1EEF0E080818E7F808367
+:101A6000E2EEF0E080818160808380818860808305
+:101A7000F80180818E7F8083888180618883DF91F7
+:101A8000CF911F910F910895E8EDF0E080818F7E56
+:101A90008083E7EDF0E080818160808384E082BF15
+:101AA00081E08093F0010C94010DE8EDF0E080817D
+:101AB0008E7F80831092E20008951092DA001092D7
+:101AC000E10008951F920F920FB60F9211242F93E9
+:101AD0003F934F935F936F937F938F939F93AF93B6
+:101AE000BF93EF93FF938091E10082FF0BC0809141
+:101AF000E20082FF07C08091E1008B7F8093E100CC
+:101B00000E94C90F8091DA0080FF1FC08091D80029
+:101B100080FF1BC08091DA008E7F8093DA00809175
+:101B2000D90080FF0DC080E189BD82E189BD09B483
+:101B300000FEFDCF81E08093F1010E94C40905C041
+:101B400019BC1092F1010E94D2098091E10080FF3E
+:101B500019C08091E20080FF15C08091E2008E7F65
+:101B60008093E2008091E20080618093E2008091A6
+:101B7000D80080628093D80019BC85E08093F10181
+:101B80000E94D6098091E10084FF30C08091E2007C
+:101B900084FF2CC080E189BD82E189BD09B400FECB
+:101BA000FDCF8091D8008F7D8093D8008091E10097
+:101BB0008F7E8093E1008091E2008F7E8093E2002F
+:101BC0008091E20081608093E2008091ED018823A2
+:101BD00011F084E007C08091E30087FD02C081E03E
+:101BE00001C083E08093F1010E94D8098091E10057
+:101BF00083FF29C08091E20083FF25C08091E1002E
+:101C0000877F8093E10082E08093F1011092ED01E3
+:101C10008091E1008E7F8093E1008091E2008E7FD1
+:101C20008093E2008091E20080618093E20042E0D4
+:101C300060E080E00E94610C8091F00088608093F9
+:101C4000F0000E94D509FF91EF91BF91AF919F9154
+:101C50008F917F916F915F914F913F912F910F9055
+:101C60000FBE0F901F9018951F920F920FB60F92F4
+:101C700011242F933F934F935F936F937F938F9391
+:101C80009F93AF93BF93CF93DF93EF93FF93C09155
+:101C9000E900CF708091EC00D82FD17080FDD0E8A2
+:101CA0001092E9008091F000877F8093F000789493
+:101CB0000E94780E1092E9008091F0008860809375
+:101CC000F000CD2BCF70C093E900FF91EF91DF9131
+:101CD000CF91BF91AF919F918F917F916F915F91C4
+:101CE0004F913F912F910F900FBE0F901F9018951D
+:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3
+:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115
+:101D1000F10091938E13FBCF0E94F4098091E800AB
+:101D200083FF1FC18091F2019091F301492F50E090
+:101D30004A30510508F015C1FA01EA5AFF4F0C94D8
+:101D4000B323803881F0823809F00BC18091F6010D
+:101D50008F708093E9008091EB0085FB882780F9E4
+:101D60001092E90006C08091EE019091EF0191116F
+:101D700082609091E800977F9093E8008093F10053
+:101D80001092F100C8C0282F2D7F09F0EAC08823E7
+:101D900019F0823061F0E5C08091F401813009F0E2
+:101DA000E0C0933009F080E08093EF012BC0809178
+:101DB000F401811127C08091F6018F7009F4D1C020
+:101DC0008093E9002091EB0020FF1CC0933021F4A8
+:101DD0008091EB00806214C09091EB009061909331
+:101DE000EB0021E030E0A90102C0440F551F8A95A5
+:101DF000E2F74093EA001092EA008091EB008860DD
+:101E00008093EB001092E9008091E800877F86C004
+:101E10008111A7C01091F4011F778091E3008078B1
+:101E2000812B8093E3008091E800877F8093E80016
+:101E30000E94960C8091E80080FFFCCF8091E30027
+:101E400080688093E300111102C082E001C083E04A
+:101E50008093F10186C08058823008F082C0809162
+:101E6000F4019091F5018C3D53E0950779F583E0FD
+:101E70008A838AE289834FB7F894DE01139620E0C3
+:101E80003EE051E2E32FF0E050935700E49120FF51
+:101E900003C0E295EF703F5FEF708E2F90E0EA3065
+:101EA00010F0C79601C0C0968D939D932F5F24318B
+:101EB00049F74FBF8091E800877F8093E8006AE28E
+:101EC00070E0CE0101960E949D0B14C0AE014F5FE1
+:101ED0005F4F6091F6010E94E40ABC01009709F48B
+:101EE00040C09091E800977F9093E80089819A81A3
+:101EF0000E94000C8091E8008B778093E80031C04D
+:101F0000803879F58091E800877F8093E8008091A0
+:101F1000ED018093F1008091E8008E778093E800D6
+:101F20000E94960C1EC081111CC09091F401923049
+:101F3000C0F48091E800877F8093E8009093ED01E2
+:101F40000E94960C8091ED01811106C08091E30002
+:101F500087FD02C081E001C084E08093F1010E940E
+:101F6000E0098091E80083FF0AC08091E800877F44
+:101F70008093E8008091EB0080628093EB00AA964A
+:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A
+:101F900008950895CF938091F1018823A1F0C09115
+:101FA000E900CF709091EC00892F817090FD80E85E
+:101FB000C82B1092E9008091E80083FD0E94780E02
+:101FC000CF70C093E900CF910895909375018093ED
+:101FD00074010895E0917401F0917501309721F03A
+:101FE0000190F081E02D099480E00895E091740162
+:101FF000F0917501309721F00280F381E02D099472
+:102000000895E0917401F0917501309721F00480FA
+:10201000F581E02D099408952091720130917301AA
+:102020008217930771F09093730180937201E0918E
+:102030007401F0917501309721F00680F781E02D51
+:1020400009940895209170013091710182179307CE
+:1020500071F09093710180937001E0917401F0919F
+:102060007501309721F00084F185E02D09940895E1
+:1020700008950C9438100E94921B0E9433030C9414
+:10208000541C9F92AF92BF92CF92DF92EF92FF9239
+:102090000F931F93CF93DF9300D000D000D0CDB724
+:1020A000DEB70E944B030DE010E0AA24A394B12CEC
+:1020B000902E802F0E943904980129583E4F6901C3
+:1020C000F901F080F826A1F40150110988F78FEF8B
+:1020D00089838A831B820E949B1B8160782F9D834A
+:1020E0008C8349815A816B818D810E94D8102FC0C9
+:1020F0009091DA0191FF04C08E830E943F048E818B
+:1021000025E030E0A501022E01C0440F0A94EAF751
+:10211000E42E4F21C1F029839A828E2191E009F4A7
+:1021200090E09B830E949B1B8160782F9D838C8312
+:1021300049815A816B818D810E94D810F60180817E
+:10214000E826E08204C021503109E0F6BDCF0E94AC
+:102150003B1F109176010E94EA0F1817B9F00E94F8
+:10216000EA0F8093760126960FB6F894DEBF0FBE75
+:10217000CDBFDF91CF911F910F91FF90EF90DF9036
+:10218000CF90BF90AF909F900C94E30826960FB627
+:10219000F894DEBF0FBECDBFDF91CF911F910F919D
+:1021A000FF90EF90DF90CF90BF90AF909F900895F9
+:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82
+:1021C0000FBECDBF4F83588769877A878B87DE0123
+:1021D000119686E0FD0111928A95E9F785E0FE01EE
+:1021E000379601900D928A95E1F749815A816B816A
+:1021F0007C818D819E810E9421172B960FB6F894C9
+:10220000DEBF0FBECDBFDF91CF910895CF9388235E
+:1022100009F4C2C0C82F823859F40E94EA0F81FD28
+:10222000BBC089E30E94FB190E94C81A89E30CC055
+:10223000833879F40E94EA0F80FDAEC083E50E94E6
+:10224000FB190E94C81A83E50E943D1ACF910C9495
+:10225000C81A843859F40E94EA0F82FD9DC087E4B1
+:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6
+:10227000813A48F48C2F0E947E2181118DC08C2FD1
+:102280000E94FB19E3CF80E28C0F883048F4C770BE
+:1022900081E001C0880FCA95EAF70E94811AD6CF63
+:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB
+:1022B00083E890E005C081E890E002C082E890E009
+:1022C000CF910C940C1088E58C0F833108F064C01A
+:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118
+:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186
+:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106
+:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173
+:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB
+:1023200038C082EE90E035C089EE90E032C08AEE8F
+:1023300090E02FC085EB90E02CC086EB90E029C0A8
+:1023400087EB90E026C08CEC90E023C08DEC90E011
+:1023500020C083E891E01DC08AE891E01AC082E9BC
+:1023600091E017C084E991E014C081E292E011C0CD
+:1023700083E292E00EC084E292E00BC085E292E03C
+:1023800008C086E292E005C087E292E002C08AE2DD
+:1023900092E0CF910C942210CF910895882309F4F4
+:1023A0004BC0823859F40E94EA0F81FF45C089E38F
+:1023B0000E94FB190E94C81A89E30CC0833871F48B
+:1023C0000E94EA0F80FF38C083E50E94FB190E943B
+:1023D000C81A83E50E943D1A0C94C81A843859F42F
+:1023E0000E94EA0F82FF28C087E40E94FB190E9426
+:1023F000C81A87E4EFCF9CEF980F913A58F390E218
+:10240000980F983050F4877091E001C0990F8A9529
+:10241000EAF7892F0E94871ADFCF9BE5980F933048
+:1024200020F480E090E00C940C10885A833120F462
+:1024300080E090E00C9422100895882321F00E94FF
+:10244000811A0C94C81A0895882321F00E94871AD3
+:102450000C94C81A08957F928F929F92AF92BF9268
+:10246000CF92DF92EF92FF920F931F93CF93DF9360
+:102470001F92CDB7DEB77C01C62E772EFC010581F9
+:1024800002950F70128111110E949E1A0E94F41978
+:10249000882379F0112369F080E28C0D883048F0B0
+:1024A00082E00E94DD190E94F41991E0D82ED9260D
+:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C
+:1024C0000C94B323872D807F072D0F70882311F084
+:1024D0000295007F112389F0002309F490C180E266
+:1024E0008C0D883020F4802F0E94811A03C0802F29
+:1024F0000E94911A0E94C81A82C18C2D0E94CE118E
+:10250000002309F495C180E28C0D883020F4802FDF
+:102510000E94871A03C0802F0E94971A0E94C81A2F
+:1025200087C1972D907F872D8F70903211F0829503
+:10253000807FCC2021F0F1E0CF16B1F01EC0112336
+:1025400049F0002309F414C1013009F011C10E94BF
+:10255000B11A6EC1002319F0013009F469C18983F1
+:102560000E94B41A89810AC1112321F0023008F0B7
+:102570005FC1FEC001115CC101C1112321F0002324
+:1025800009F4F6C03CC1002309F4F8C03EC1872D10
+:1025900086958695837090E0009719F0019761F019
+:1025A00047C1112321F08C2D972D937002C080E03C
+:1025B00090E00E940C103CC1112321F08C2D972D2E
+:1025C000937002C080E090E00E94221031C18C2DF7
+:1025D000112319F00E94431E02C00E94AB1E0E94EC
+:1025E000301F26C1872D837009F052C0111120C100
+:1025F0008C2D829586958770880F880F9C2D9F70F3
+:10260000892E912CA12CB12C082E04C0880C991C69
+:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041
+:1026200020E030E0B901A80104C0440F551F661F27
+:10263000771F8A95D2F7CB01BA0160957095809586
+:10264000909503C060E070E0CB01272D269526957C
+:10265000237030E02230310569F02330310589F0F4
+:10266000682979298A299B292130310571F00E9436
+:102670006918DEC0682979298A299B290E94851852
+:10268000D7C00E946918C501B4010E944D18D0C07E
+:10269000112319F0872D817001C08695882309F4D4
+:1026A000C7C08C2D829586958770880F880F9C2DCA
+:1026B0009F70892E912CA12CB12C082E04C0880C5F
+:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC
+:1026D00010E020E030E0B901A80104C0440F551F0C
+:1026E000661F771F8A95D2F7CB01BA016095709566
+:1026F0008095909503C060E070E0CB01272D269572
+:1027000026952370422F50E04230510569F0433046
+:10271000510589F0682979298A299B294130510579
+:1027200071F00E94431984C0682979298A299B295C
+:102730000E945F197DC00E944319C501B4010E9427
+:10274000271976C08C2D90E0FC01E05EF109E5319F
+:10275000F10508F050C0E059FF4F0C94B3230C2D45
+:102760000F70872D8F71112331F00E94C018802FB8
+:102770000E941D125DC00E94E118802F0E94241249
+:1027800057C0112339F0011153C0872D8F710E945A
+:1027900006194EC0023008F04BC0F7CF112339F0B4
+:1027A000872D8F710E94C01843C01123C9F3872D54
+:1027B0008F710E94E1183CC0112329F0872D8F7181
+:1027C0000E94AB1835C00E94A11832C0112351F0ED
+:1027D000172D1F71812F0E94C01863E0812F0E9466
+:1027E000D41926C081E00E94DD19023008F182E090
+:1027F0000E94DD191DC0112331F0002389F28C2DB8
+:102800000E94061115C0002391F28C2D0E94CE115A
+:102810000FC0472D4F706C2DC7010E9415050E94F7
+:10282000C51706C0472D4F706C2DC7010E94F205D9
+:10283000DD20F9F00E94D01980FD1BC0F701128243
+:102840000E94CA190E94C018C7010E9448140E9421
+:10285000CA190F90DF91CF911F910F91FF90EF90C8
+:10286000DF90CF90BF90AF909F908F907F900C940F
+:10287000E1180F90DF91CF911F910F91FF90EF9092
+:10288000DF90CF90BF90AF909F908F907F900895F2
+:102890000F931F93CF93DF93EC01888199812B8154
+:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B
+:1028B0000E944A05882371F0688179818A810E948B
+:1028C000C6198C010E947B190E944218B801CE01E2
+:1028D0000E942B12DF91CF911F910F9108950E94BA
+:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471
+:1028F000E11F0E94301F80E090E00E940C1080E0F9
+:1029000090E00C9422100E948E1A0C946F140E9476
+:10291000BB19292F22952F7030E02C3031054CF453
+:102920002A3031056CF42250310922303105A8F4E7
+:1029300007C02C30310569F02F30310551F00DC042
+:10294000803F69F018F4803E40F409C0843F29F4C8
+:1029500006C093FB882780F9089580E0089581E000
+:102960000895CF93DF9300D000D01F92CDB7DEB78C
+:102970000F900F900F900F900F90DF91CF910895CF
+:10298000CF93DF9300D000D000D0CDB7DEB726962E
+:102990000FB6F894DEBF0FBECDBFDF91CF91089583
+:1029A0001F93CF93DF93C091850116E0809186013C
+:1029B000C81799F0D0E01C9FF0011D9FF00D112465
+:1029C000E957FE4F408151816281738184819581F5
+:1029D0000E94C0142196C770E9CFDF91CF911F915B
+:1029E00008954091B7015091B8016091B90170917B
+:1029F000BA018091BB019091BC010C94C0148091EC
+:102A0000BC0182958F7009F054C08091B901882370
+:102A100009F44FC080918501A09186016091B701B2
+:102A20007091B8014091BA015091BB01B6E08A178C
+:102A300009F43FC090E041155105C1F17F3F11F409
+:102A40006F3FA1F1B89FF001B99FF00D1124E95734
+:102A5000FE4F218172132AC02081621327C0228178
+:102A6000211124C0238134812417350710F421500B
+:102A70003109241B350B283C3105C0F42091BC01E1
+:102A80002F7020612093BC0126E0289FF001299F30
+:102A9000F00D1124E457FE4F80818F708061808398
+:102AA00087EB91E00E9448140C94D0140196877033
+:102AB000BECF0895CF92DF92EF92FF920F931F93B4
+:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32
+:102AD0000FBECDBF8C0185E0F801DE011D9601908F
+:102AE0000D928A95E1F7D8014C9111965C9111975E
+:102AF00012966C9112971396CD90DC9014973091AA
+:102B0000B7017091B8018091BA019091BB01009713
+:102B100009F46BC17F3F19F43F3F09F466C1E090AF
+:102B2000B901EE2009F4C0C02091BC01C816D90635
+:102B300028F0F601E81BF90BCF0104C080959095B1
+:102B40008C0D9D1DFF24F394883C910578F0F12CA9
+:102B5000207F09F0C6C07C2DD98AC88A89890E9445
+:102B6000B11487EB91E00E944814B1C0822F807F9E
+:102B700009F046C0751314C0341312C0611110C09F
+:102B80002F7020612093BC010E94F11487EB91E02B
+:102B90000E9448148091BC01D80115968C932EC0D8
+:102BA000CD2819F15F3F11F44F3FF9F0F62E611176
+:102BB0001CC0809185012091860136E0821709F4BE
+:102BC0005AC090E0389FF001399FF00D1124E95769
+:102BD000FE4F7181571306C07081471303C0728185
+:102BE000711103C001968770E9CFF62E662309F4B0
+:102BF00018C18091BC0181608093BC01F12C11C18E
+:102C0000751308C0341306C0611104C08091BC0163
+:102C1000D801C3C04D875E878D859E856A8B0E94D3
+:102C200087146A898823E1F16623D1F12091BC01E0
+:102C3000822F82958F7090E0029774F08091B70197
+:102C40009091B80198878F831986DB86CA862C8776
+:102C5000CE0107960E94481486E0F801A7EBB1E088
+:102C600001900D928A95E1F70E94FF140E94F114E1
+:102C7000FF24F394D6C04D875E878D859E850E9484
+:102C8000BB19292F22952F7030E0223031050CF02E
+:102C9000BCC09F7009F0B6C0805E883008F4C1C027
+:102CA000C8010E944814E4CFC816D90608F453C0DE
+:102CB000F601E81BF90BCF01883C910508F450C0E0
+:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E
+:102CD000F1E086E0DF011D928A95E9F70E94F11488
+:102CE000A0C0751314C0341312C0611110C08091BC
+:102CF000BC01F8018583C8010E94481486E0E7EB17
+:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C
+:102D10005E878D859E856A8B0E9487146A898823C9
+:102D200009F4BECF662309F4BBCF2091BC01822FEA
+:102D300082958F7090E002970CF48ECF8091B7014E
+:102D40009091B8019A8389831B82DD82CC822E8385
+:102D5000CE0101967FCF809590958C0D9D1DACCFB7
+:102D6000F62E662309F49CCF75132EC034132CC0A5
+:102D70002091BC0120FD1FC0822F82958F70D9F059
+:102D8000D80115962C9315978F3049F08F5F982FA7
+:102D90009295907F822F8F70892B15968C93C80106
+:102DA0000E94481486E0F801A7EBB1E001900D9273
+:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7
+:102DC0000D928A95E1F72DC04D875E878D859E8592
+:102DD0000E948714811140CF8091BC018160809353
+:102DE000BC01C8010E9448141CC0662309F458CFD6
+:102DF0004D875E878D859E850E948714882309F400
+:102E00004FCF2ACF811148CF0CC0243031050CF0B0
+:102E100047CF9F7009F440CFF8019581907F09F06A
+:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D
+:102E3000DF91CF911F910F91FF90EF90DF90CF9096
+:102E400008951F93CF93DF93CDB7DEB72C970FB6BE
+:102E5000F894DEBF0FBECDBF4F83588769877A874E
+:102E60008B879C87CE0107960E945A15882369F0AC
+:102E70008F8198852A853B85232BF1F19F3F09F0AF
+:102E800063C08F3F09F060C037C086E0FE0137960F
+:102E9000DE01119601900D928A95E1F76F81788598
+:102EA000EA85FB85309741F17F3F11F46F3F21F1B7
+:102EB0002091860130E0C9010196877099274091E1
+:102EC000850150E08417950709F447C069837A8328
+:102ED000FD83EC8396E0929FD001939FB00D112467
+:102EE000A957BE4FFE01319601900D929A95E1F7D8
+:102EF000809386010E94D01416E080918501909104
+:102F000086018917C1F1189FC001112489579E4F6E
+:102F10000E945A15882379F1E09185011E9FF001E6
+:102F20001124E957FE4F4081518162817381848170
+:102F300095810E94C0148091850190E00196877070
+:102F4000992780938501D9CF4F81588569857A85E6
+:102F50008B859C850E94C014CFCF0E948314109251
+:102F6000860110928501E7EBF1E086E0DF011D921A
+:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45
+:102F8000CDBFDF91CF911F910895EF92FF920F93E4
+:102F90001F93CF93DF938C01009709F46CC0F12C41
+:102FA000EE24E394E8012196F8018491843740F4FB
+:102FB000843008F051C0813081F0823019F15BC05B
+:102FC000853709F444C0A8F19CE7980F903708F0C2
+:102FD00052C08F770E94CE1141C00E5F1F4FFE017D
+:102FE000C49180E28C0F883048F4C7708E2D01C0E8
+:102FF000880FCA95EAF70E94A11A14C08C2F0E946C
+:1030000006112DC00E5F1F4FFE01C49180E28C0F90
+:10301000883058F4C7708E2D01C0880FCA95EAF722
+:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3
+:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3
+:103040009FE00197F1F700C00000C150F6CF0E5F7E
+:103050001F4FFE01F49003C00E9406118E018F2DB8
+:10306000882309F49FCFEFE9FFE03197F1F700C023
+:1030700000008150F5CFDF91CF911F910F91FF900C
+:10308000EF90089508956093C1017093C2018093F9
+:10309000C3019093C4010C946F140F931F9300917C
+:1030A000C1011091C2012091C3013091C401DC0122
+:1030B000CB01802B912BA22BB32B8093C10190933A
+:1030C000C201A093C301B093C4011F910F910C944E
+:1030D0006F140F931F930091C1011091C2012091B1
+:1030E000C3013091C401DC01CB0180239123A223D1
+:1030F000B3238093C1019093C201A093C301B09305
+:10310000C4011F910F910C946F140F931F930091A2
+:10311000C1011091C2012091C3013091C401DC01B1
+:10312000CB0180279127A227B3278093C1019093D9
+:10313000C201A093C301B093C4011F910F910C94DD
+:103140006F141092BD011092BE011092BF01109237
+:10315000C0010C946F1441E050E060E070E004C0E6
+:10316000440F551F661F771F8A95D2F74093BD0104
+:103170005093BE016093BF017093C0010C946F1413
+:1031800041E050E060E070E004C0440F551F661F4E
+:10319000771F8A95D2F78091BD019091BE01A091D1
+:1031A000BF01B091C001482B592B6A2B7B2B409358
+:1031B000BD015093BE016093BF017093C0010C9498
+:1031C0006F1441E050E060E070E004C0440F551F10
+:1031D000661F771F8A95D2F7409550956095709538
+:1031E0008091BD019091BE01A091BF01B091C0013D
+:1031F000482359236A237B234093BD015093BE018A
+:103200006093BF017093C0010C946F1441E050E0D3
+:1032100060E070E004C0440F551F661F771F8A9559
+:10322000D2F78091BD019091BE01A091BF01B091F4
+:10323000C001482759276A277B274093BD01509337
+:10324000BE016093BF017093C0010C946F140F9383
+:103250001F930091BD011091BE012091BF013091DB
+:10326000C001DC01CB01802B912BA22BB32B8093CF
+:10327000BD019093BE01A093BF01B093C0011F9107
+:103280000F910C946F140F931F930091BD01109137
+:10329000BE012091BF013091C001DC01CB01802330
+:1032A0009123A223B3238093BD019093BE01A093E9
+:1032B000BF01B093C0011F910F910C946F140F9335
+:1032C0001F930091BD011091BE012091BF0130916B
+:1032D000C001DC01CB0180279127A227B32780936F
+:1032E000BD019093BE01A093BF01B093C0011F9197
+:1032F0000F910C946F140895CF92DF92EF92FF928A
+:103300000F931F93CF93DF938C01C090C101D09096
+:10331000C201E090C301F090C4018091BD01909181
+:10332000BE01A091BF01B091C001C82AD92AEA2AE2
+:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520
+:10334000A795979587950A94D2F780FF06C0B80194
+:103350008C2F0E944808019721F4219760F780E0A4
+:1033600001C08C2FDF91CF911F910F91FF90EF90B3
+:10337000DF90CF900895CF93DF93EC010E947C19EA
+:10338000BE010E944808DF91CF910895CB010E94B1
+:10339000BB1908958091C5018595859585950895FA
+:1033A0008091C5018770089598E0899F900111244C
+:1033B000262B2093C5010C94C0182091C50180953F
+:1033C00082238093C501982F977069F430E0482FCD
+:1033D000552747FD50952417350729F08595859584
+:1033E00085950C94E11808959091C501977081E03E
+:1033F00009F480E0089590910C01992321F09091B7
+:103400000D01911109C020910E0130910F01F901B8
+:1034100032969FEF40E01FC0982F9695969596950F
+:103420009F3050F5E0910E01F0910F01E90FF11D71
+:10343000877021E030E0A90102C0440F551F8A9532
+:10344000E2F7CA019181892B818308959F3F39F06A
+:103450004F5F4E3041F051915813F8CF0DC05111CC
+:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08
+:1034700097FDFA9582830895089590910C01992300
+:1034800021F090910D01911109C020910E01309110
+:103490000F01F9013296205F3F4F1FC0982F96957C
+:1034A000969596959F30F0F4E0910E01F0910F0102
+:1034B000E90FF11D877021E030E0A90102C0440F3F
+:1034C000551F8A95E2F7CA018095918189238183EE
+:1034D00008953196E217F30729F090819813F9CFF8
+:1034E0001082F7CF089581E090E0E0910E01F09115
+:1034F0000F01E80FF91F1082019680319105A9F79D
+:1035000008959091D901892B8093D90108958095D0
+:103510009091D90189238093D90108951092D901FE
+:1035200008959091D801892B8093D80108958095B2
+:103530009091D80189238093D80108951092D801E1
+:1035400008959091D701892B8093D7010895809594
+:103550009091D70189238093D70108951092D701C4
+:1035600008958093C60108951092C6010895809130
+:103570000E0190910F01FC0131969C01205F3F4F9D
+:1035800080E0919191118F5FE217F307D1F70895D1
+:10359000E0910E01F0910F018091D9018083E091BB
+:1035A0000E01F0910F0190818091D801892B8083C9
+:1035B000E0910E01F0910F0190818091D701892B4C
+:1035C00080838091C601882361F0E0910E01F09123
+:1035D0000F019081892B80830E94B71A811110926C
+:1035E000C60180910E0190910F010C94F60F20E01E
+:1035F000009739F0AC0141505109842395232F5F86
+:10360000F7CF822F0895CF92DF92EF92FF926C0155
+:10361000EE24FF24C114D104E104F10421F0C70118
+:10362000B60120E101C020E0C72ED82EE92EFF24EC
+:10363000C114D104E104F10419F0285FC701B601F7
+:103640006B017C0154E0F694E794D794C7945A95A3
+:10365000D1F7C114D104E104F10419F02C5FC701C2
+:10366000B6016B017C0142E0F694E794D794C794CD
+:103670004A95D1F7C114D104E104F10419F02E5F89
+:10368000C701B601DC01CB01B695A7959795879543
+:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5
+:1036A000DF90CF9008958091F101843021F1109244
+:1036B000DB0120E488E190E00FB6F894A8958093B0
+:1036C00060000FBE2093600080E00E94E30883B793
+:1036D000817F846083BF83B7816083BF789488953E
+:1036E00083B78E7F83BF88E10FB6F8948093600024
+:1036F000109260000FBE0895089508950E947C1BEB
+:103700000E944B030E947D1B0E94400491E08111A6
+:1037100001C090E0892F08950E9483140E94EA0F4F
+:103720000C94E30882E084BD93E095BD9AEF97BDC9
+:1037300080936E0008952FB7F8948091DC019091EA
+:10374000DD01A091DE01B091DF012FBF0895CF927E
+:10375000DF92EF92FF920F931F932FB7F89440914F
+:10376000DC015091DD016091DE017091DF012FBF1E
+:103770006A017B01EE24FF248C0120E030E0C016BA
+:10378000D106E206F30610F4415051099A01281BB4
+:10379000390BC9011F910F91FF90EF90DF90CF90EF
+:1037A00008951F920F920FB60F9211248F939F933B
+:1037B000AF93BF938091DC019091DD01A091DE0178
+:1037C000B091DF010196A11DB11D8093DC019093A2
+:1037D000DD01A093DE01B093DF01BF91AF919F9116
+:1037E0008F910F900FBE0F901F9018950E94E70CBD
+:1037F000F8942FEF87EA91E6215080409040E1F75E
+:1038000000C0000087E090EBDC018093FB01909307
+:10381000FC01A093FD01B093FE019CE088E10FB68E
+:10382000F894A895809360000FBE90936000FFCF3E
+:10383000EF92FF920F931F93CF93DF93D82FCDE09A
+:103840008C2F0E94390405E010E0E82EF12CC7010E
+:10385000002E02C0959587950A94E2F780FF09C073
+:10386000602F7C2F80E00E94F305D81302C081E016
+:1038700006C00150110958F7C15010F780E0DF91E0
+:10388000CF911F910F91FF90EF900895CF93C82F84
+:103890008CE20E94181C882321F08C2FCF910C946D
+:1038A000181C80E0CF910895CF930E949B1D811139
+:1038B00002C00E94811DC5E6C15049F00E944B0321
+:1038C0008FE39CE90197F1F700C00000F5CF89E292
+:1038D0000E94461C811113C18AE20E94461C81117C
+:1038E0000E94811D85E00E94461C81110E94F61BEA
+:1038F0000E94A61D8093DA0187E00E94461C88235F
+:10390000A9F18BE10E94461C882351F08091DA01D5
+:1039100081FB222720F991E0922790FB81F90EC0CC
+:103920008EE00E94461C882361F08091DA0182FBC0
+:10393000222720F991E0922790FB82F98093DA0107
+:1039400015C080E10E94461C9091DA01882341F065
+:1039500093FB222720F981E0822780FB93F904C0A2
+:10396000892F809580FB90F99093DA018091DA019C
+:103970000E94AA1D0E94B81D8093FA0180EE0E9449
+:10398000461C882341F08091FA01982F909590FB76
+:1039900080F98093FA0189E30E94461C882359F03C
+:1039A0008091FA0181FB222720F991E0922790FB78
+:1039B00081F98093FA0182EE0E94461C882359F017
+:1039C0008091FA0182FB222720F991E0922790FB57
+:1039D00082F98093FA0186EE0E94461C882359F0F2
+:1039E0008091FA0183FB222720F991E0922790FB36
+:1039F00083F98093FA0183EE0E94461C882359F0D4
+:103A00008091FA0184FB222720F991E0922790FB14
+:103A100084F98093FA0185E30E94461C882359F0BB
+:103A20008091FA0185FB222720F991E0922790FBF3
+:103A300085F98093FA0181E30E94461C882359F09E
+:103A40008091FA0186FB222720F991E0922790FBD2
+:103A500086F98093FA0181E10E94461C882359F07F
+:103A60008091FA0187FB222720F991E0922790FBB1
+:103A700087F98093FA018091FA010E94BC1D809120
+:103A8000FA0187FB882780F980930D0187E20E9465
+:103A9000461CC82F8EE10E94461C8111C2608FE136
+:103AA0000E94461C8111C46080E20E94461C811164
+:103AB000C86081E20E94461C8111C06182E20E94BE
+:103AC000461C8111C06283E20E94461C8111C064C1
+:103AD00084E20E94461C882311F0C06802C0CC23F7
+:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4
+:103AF000682F70E080E090E0CF910C944318CF9154
+:103B000008956DEE7EEF80E090E00E94ED2360E08E
+:103B100082E090E00E94DB2360E083E090E00E947E
+:103B2000DB2360E084E090E00E94DB2360E085E03E
+:103B300090E00C94DB2380E090E00E94D52321E00C
+:103B40008D3E9E4F09F020E0822F089582E090E0A4
+:103B50000C94CD23682F82E090E00C94DB2383E06B
+:103B600090E00C94CD23682F83E090E00C94DB234D
+:103B700084E090E00C94CD23682F84E090E00C94D6
+:103B8000DB238091E20180FF0BC06091130185E08F
+:103B9000689FB001112475956795759567952BC041
+:103BA00081FF09C06091130185E0689FB001112475
+:103BB0007595679520C082FF07C06091130185E06D
+:103BC000689FB001112417C09091E3019923D1F0AF
+:103BD00060911201961788F72091130185E0289FC4
+:103BE00090011124929FA001939F500D112470E029
+:103BF000CA010E949F236038710540F46115710568
+:103C000039F002C065E070E0862F08958FE70895CF
+:103C100081E008958091E20180FF08C06091110168
+:103C200070E0759567957595679521C081FF06C011
+:103C30006091110170E07595679519C082FF04C00D
+:103C40006091110170E010C09091E3019923C1F0DF
+:103C5000609110019617A0F780911101899FC00112
+:103C6000112470E00E949F236038710528F46115CB
+:103C7000710521F0862F08958FE7089581E008955A
+:103C800061E070E0F4CF803F21F40E94C11D819576
+:103C900004C0813F29F40E94C11D8093E60108956C
+:103CA000823F21F40E94C11D819504C0833F29F405
+:103CB0000E94C11D8093E5010895893F19F40E9477
+:103CC0000A1E05C08A3F31F40E940A1E8195809326
+:103CD000E70108958B3F21F40E940A1E819504C0DC
+:103CE0008C3F29F40E940A1E8093E8010895843FC6
+:103CF00021F48091E401816017C0853F21F4809117
+:103D0000E401826011C0863F21F48091E401846067
+:103D10000BC0873F21F48091E401886005C0883F93
+:103D200031F48091E40180618093E40108958D3F36
+:103D300021F48091E20181600BC08E3F21F48091DB
+:103D4000E201826005C08F3F29F48091E201846026
+:103D50008093E2010895803F39F48091E60187FF66
+:103D60006CC01092E60169C0813F29F48091E601A0
+:103D70001816BCF362C09091E501823F29F497FFC9
+:103D80005CC01092E50159C0833F19F41916CCF3B9
+:103D900054C0893F41F48091E70118160CF04DC0E2
+:103DA0001092E7014AC08A3F29F48091E70187FF1A
+:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6
+:103DC0001092E8013AC08C3F29F48091E80118165E
+:103DD000BCF333C0843F21F48091E4018E7F17C08F
+:103DE000853F21F48091E4018D7F11C0863F21F44D
+:103DF0008091E4018B7F0BC0873F21F48091E40127
+:103E0000877F05C0883F31F48091E4018F7E8093E5
+:103E1000E40113C08D3F21F48091E2018E7F0BC03D
+:103E20008E3F21F48091E2018D7F05C08F3F29F400
+:103E30008091E2018B7F8093E2018091E501811105
+:103E40000EC08091E60181110AC08091E7018111C5
+:103E500006C08091E801811102C01092E30108952B
+:103E600084EE91E00E9401100E949B1B9093E1015F
+:103E70008093E00108951F93CF93DF938091E00139
+:103E80009091E1010E94A71BAC019091E30199235D
+:103E900021F02091140130E006C0209115018AE044
+:103EA000289F900111244217530708F486C080917F
+:103EB000E501C091E601D091E7011091E80181117F
+:103EC00007C0C11176C0D11174C0111172C075C084
+:103ED0009F3F19F09F5F9093E301181624F40E940E
+:103EE000C11D8093E5018091E50187FF05C00E9417
+:103EF000C11D81958093E5011C1624F40E94C11D0B
+:103F00008093E6018091E60187FF05C00E94C11DF4
+:103F100081958093E6016091E501662339F1C091B6
+:103F2000E601CC2319F1772767FD7095872F972F2E
+:103F30000E94B02223E333E343E35FE30E941423B0
+:103F40000E947D226093E5016C2F772767FD7095B5
+:103F5000872F972F0E94B02223E333E343E35FE3ED
+:103F60000E9414230E947D226093E6011D1624F412
+:103F70000E940A1E8093E7018091E70187FF05C038
+:103F80000E940A1E81958093E701111624F40E9475
+:103F90000A1E8093E8018091E80187FF05C00E9416
+:103FA0000A1E81958093E801DF91CF911F910C94B7
+:103FB000301F9F3F09F08ECF96CFDF91CF911F9199
+:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE
+:103FD0001092E3011092E2010895833081F128F4F8
+:103FE000813059F08230D1F00895853009F449C00C
+:103FF000B8F1863009F456C0089580911501262F36
+:1040000030E0280F311D2F3F310524F4680F6093F5
+:10401000150108958FEF8093150108958091140183
+:10402000262F30E0280F311D2F3F310524F4680F73
+:104030006093140108958FEF809314010895809187
+:104040001301262F30E0280F311D2F3F310524F4B6
+:10405000680F6093130108958FEF80931301089503
+:1040600080911201262F30E0280F311D2F3F31059E
+:1040700024F4680F6093120108958FEF809312016A
+:10408000089580911101262F30E0280F311D2F3F18
+:10409000310524F4680F6093110108958FEF809328
+:1040A0001101089580911001262F30E0280F311D55
+:1040B0002F3F310524F4680F6093100108958FEFAE
+:1040C000809310010895833011F128F4813049F074
+:1040D000823091F00895853081F120F18630C1F170
+:1040E000089580911501681720F4861B80931501AF
+:1040F000089510921501089580911401681720F415
+:10410000861B8093140108951092140108958091E4
+:104110001301681720F4861B8093130108951092F1
+:104120001301089580911201681720F4861B809373
+:1041300012010895109212010895809111016817DB
+:1041400020F4861B809311010895109211010895A7
+:1041500080911001681720F4861B80931001089548
+:104160001092100108950F931F938D3109F46BC0C5
+:1041700008F03FC08E3009F47FC0C0F4873009F4E6
+:1041800069C068F4863009F0B1C08091DA01817F9E
+:104190008E7F8093DA0181E08093EA01A8C08830A5
+:1041A00009F4A2C08B3009F49FC0A0C0863109F485
+:1041B0009BC078F4803109F472C0813109F096C057
+:1041C0000E94831490910D0181E0892780930D0155
+:1041D0008BC0893109F488C08B3109F087C0809188
+:1041E000DA0181FB222720F991E0922790FB81F9E7
+:1041F0004CC0853309F470C048F4873209F46CC0B0
+:1042000008F459C0893209F467C070C0833438F4A7
+:104210008A3308F04EC0883309F466C067C083341F
+:1042200009F45AC0883409F061C00E9483140FEF6A
+:1042300013ED20E3015010402040E1F700C00000E2
+:104240000E94F61B51C00E9437220E94EA0F0E9472
+:10425000E3084AC09091DA01892F8095817080FB34
+:1042600090F929F0966098609093DA0140C0997FA8
+:10427000977F9093DA0138C08091DA0182FB222780
+:1042800020F991E0922790FB82F98093DA0199233B
+:1042900059F18091DA0181608093DA0125C0809123
+:1042A000DA0183FB222720F991E0922790FB83F922
+:1042B000ECCF895301C08D5141E050E060E070E0E7
+:1042C0008A019B0104C0000F111F221F331F8A9512
+:1042D000D2F7C901B80104C061E070E080E090E06D
+:1042E0000E9443180E94831481E001C080E01F9166
+:1042F0000F91089580E0089580E00895CF93C82F2E
+:104300008091EA01813079F018F08230E9F187C0BC
+:10431000E0910E01F0910F018081813169F08232CC
+:1043200009F07FC009C0E0910E01F0910F0180817A
+:10433000813111F0823261F48C2F0E947A21811137
+:1043400004C08C2F0E94B3201DC081E090E01AC0F1
+:104350008C2F0E947C21811114C0C43179F048F463
+:10436000CB3079F0C03109F060C082E08093EA017F
+:1043700008C0C93219F0C83321F057C01092EA01C1
+:1043800054C081E0817053C0C93289F118F5C4313D
+:1043900071F1A8F4C73009F046C08AE08093150196
+:1043A00094E19093140193E0909313018093120190
+:1043B00088E08093110188E28093100134C0CE51CF
+:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB
+:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC
+:1043E00013C0C13579F0C235F1F461E00DC08091A0
+:1043F000E901882319F01092E90115C081E080934A
+:10440000EA0115C061E006C08091E9010E94ED1F3C
+:104410000AC06AE08091E9010E94632004C0109202
+:10442000EA0180E004C081E002C080E0ABCFCF9120
+:104430000895E1E8F0E08081886080838081816078
+:1044400080838FB7F89493E09093890090ED9093D8
+:1044500088008FBF0895EFE6F0E08081826080835E
+:104460000895EFE6F0E080818D7F80830895EFE688
+:10447000F0E0908182E08927808308951F920F9257
+:104480000FB60F9211242F933F934F935F936F9327
+:104490007F938F939F93AF93BF93EF93FF938091FD
+:1044A000EB019091EC0101969093EC018093EB016C
+:1044B000811103C082E00E94E308E091EC01E695DF
+:1044C000E695F0E0EC54FB4FE4918091EB018E1304
+:1044D00003C080E00E94E308FF91EF91BF91AF918C
+:1044E0009F918F917F916F915F914F913F912F910C
+:1044F0000F900FBE0F901F90189504D06894B111C3
+:104500008DC0089570D088F09F5790F0B92F9927EB
+:10451000B751A0F0D1F0660F771F881F991F1AF0CE
+:10452000BA95C9F712C0B13081F077D0B1E00895E3
+:1045300074C0672F782F8827B85F39F0B93FCCF364
+:10454000869577956795B395D9F73EF490958095C4
+:10455000709561957F4F8F4F9F4F0895E89409C0E4
+:1045600097FB3EF490958095709561957F4F8F4FA6
+:104570009F4F9923A9F0F92F96E9BB279395F695BC
+:10458000879577956795B795F111F8CFFAF4BB0F3A
+:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E
+:1045A000882311F096E911C0772321F09EE8872F28
+:1045B000762F05C0662371F096E8862F70E060E0E4
+:1045C0002AF09A95660F771F881FDAF7880F96955D
+:1045D000879597F9089557FD9058440F551F59F046
+:1045E0005F3F71F04795880F97FB991F61F09F3FE0
+:1045F00079F087950895121613061406551FF2CF09
+:104600004695F1DF08C0161617061806991FF1CF58
+:1046100086957105610508940895E894BB2766277F
+:104620007727CB0197F908950BD078C069D028F08F
+:104630006ED018F0952309F05AC05FC01124EECF58
+:10464000CADFA0F3959FD1F3950F50E0551F629FED
+:10465000F001729FBB27F00DB11D639FAA27F00DDB
+:10466000B11DAA1F649F6627B00DA11D661F829F02
+:104670002227B00DA11D621F739FB00DA11D621FE7
+:10468000839FA00D611D221F749F3327A00D611D04
+:10469000231F849F600D211D822F762F6A2F1124E6
+:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39
+:1046B000BB1F661F771F881F91505040A9F79E3F70
+:1046C000510570F014C0AACF5F3FECF3983EDCF3C5
+:1046D000869577956795B795F795E7959F5FC1F7AD
+:1046E000FE2B880F911D9695879597F9089597F958
+:1046F0009F6780E870E060E008959FEF80EC089588
+:1047000000240A94161617061806090608950024B0
+:104710000A9412161306140605060895092E03942A
+:10472000000C11F4882352F0BB0F40F4BF2B11F49E
+:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF
+:10474000072E16F4009407D077FD09D00E94B923F4
+:1047500007FC05D03EF4909581959F4F0895709584
+:1047600061957F4F0895EE0FFF1F0590F491E02DA6
+:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8
+:10478000B70710F0A61BB70B881F991F5A95A9F7FA
+:1047900080959095BC01CD010895F999FECF92BD09
+:1047A00081BDF89A992780B50895A8E1B0E042E06C
+:1047B00050E00C94F523262FF999FECF92BD81BDD0
+:1047C000F89A019700B4021639F01FBA20BD0FB64F
+:1047D000F894FA9AF99A0FBE08950196272F0E942D
+:1047E000DC230C94DB23DC01CB01FC01F999FECF27
+:1047F00006C0F2BDE1BDF89A319600B40D92415069
+:0A4800005040B8F70895F894FFCF78
+:10480A000220E508730950091C09E8080101C701DB
+:10481A0028080A03140A3F4D363975042804F2039E
+:10482A00B9034C0365037E039703010203040506DB
+:04483A000708090062
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/colemak/keymap.c b/keyboards/ergodox_ez/keymaps/colemak/keymap.c new file mode 100644 index 000000000..9601726f7 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/colemak/keymap.c @@ -0,0 +1,184 @@ +#include "ergodox_ez.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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Del | Q | W | F | P | G | L1 | | L1 | J | L | U | Y | ; | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | A | R | S | T | D |------| |------| H | N | E | I |O / L2| ' | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | K | 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_F, KC_P, KC_G, TG(SYMB), + KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, + 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_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, + KC_H, KC_N, KC_E, KC_I, LT(MDIA, KC_O), KC_QUOT, + MEH_T(KC_NO),KC_K, 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| |------| |------| | | | | | 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) { + 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/colemak/readme.md b/keyboards/ergodox_ez/keymaps/colemak/readme.md new file mode 100644 index 000000000..e28b2f085 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/colemak/readme.md @@ -0,0 +1,4 @@ +# ErgoDox EZ Colemak Configuration + +Colemak layout with same layers as default ergodox ez keymap. + diff --git a/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/compiled.hex b/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/compiled.hex new file mode 100644 index 000000000..726a776d2 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/compiled.hex @@ -0,0 +1,1179 @@ +:100000000C9461030C94A5030C94A5030C94A50314
+:100010000C94A5030C94A5030C94A5030C94A503C0
+:100020000C94A5030C94A5030C94590E0C942B0F5F
+:100030000C94A5030C94A5030C94A5030C94A503A0
+:100040000C94A5030C94E5220C94A5030C94A50331
+:100050000C94A5030C94781C0C94A5030C94A50394
+:100060000C94A5030C94A5030C94A5030C94A50370
+:100070000C94A5030C94A5030C94A5030C94A50360
+:100080000C94A5030C94A5030C94A5030C94A50350
+:100090000C94A5030C94A5030C94A5030C94A50340
+:1000A0000C94A5030C94A5030C94A5030A060F0653
+:1000B000140619061E06230628062D063206980F7A
+:1000C000BA0FA810BA0FA810FF0F2210A8107710AF
+:1000D0008A105913591388138813BE13DE130F1592
+:1000E0000F15E9130F159914991400150F150F1515
+:1000F0000915A614A614A614A614A614A614A614CC
+:10010000A614A614A614A614A614A614A614A6141F
+:10011000A614B814C514CC14D314DD14012E022E69
+:10012000012C022C0001E10135023502E10001350C
+:1001300002350001E1012E022E012C022C02E10009
+:1001400001E6012E022E02E6012C022C0001E10143
+:1001500030023002E1012C022C0001E10164026452
+:1001600002E100016402640001E60130023002E6AF
+:10017000012C022C000000002200C001C002C003BC
+:10018000C004C005C006C007C008C02E002D02373D
+:10019000021E02045200002514140004001D00F485
+:1001A00000387426141A0015001B00F5003771245E
+:1001B000140900160006002B00C1002714130017B5
+:1001C00000190036782D0031020A000700050000F2
+:1001D00000230201541F020000360200003500C552
+:1001E000003200000027020000490021140D000B1E
+:1001F000000E000000240225020F00110010005024
+:10020000004C002602180008004F0029002C00C3F3
+:10021000001C000C005100C7002800C4002F001271
+:1002200000520020022A001F14340033003802025A
+:10023000520000241601000100010001000000012D
+:1002400000010001000100010001000100010001A6
+:1002500000010001003778251601000100010001AE
+:1002600000010026160100010001003671010001A5
+:100270000001000100010000000100010001000078
+:1002800000010000002414010064000000010000CF
+:100290000001002102010001000100000001000135
+:1002A0000001000100010001000100010001000146
+:1002B00000010001000100C8000100010001002E42
+:1002C000140100C90001000100010001000100311A
+:1002D00000010001000100035200000100010001C3
+:1002E00000010001000000010001002000010001E8
+:1002F000000100010001001F0001000100010001D8
+:100300000001001E0001000100010001002202277F
+:1003100000210001000100010001000100010000B6
+:1003200000010001000100000001000000010001C7
+:1003300000010000000100000001000100010001B7
+:10034000004A00000001000100C200220026004A0D
+:100350000001000100C60023004D00010001000162
+:1003600000010024004E00010001000100010025F1
+:10037000004B00010001000100010001000100012B
+:100380000000000100010001000100010000000167
+:100390000001002000010001000100010001001F18
+:1003A00000010001000100010001001E0001000128
+:1003B00000010001002202270021000100010001CC
+:1003C0000001000100010000000100010001000027
+:1003D0000001000000010001000100000001000018
+:1003E0000001000100010001004A000000010001BD
+:1003F00000C200220026004A0001000100CA0023BA
+:10040000004D00010001000100010024004E000128
+:100410000001000100010025004B00010001000166
+:1004200000010001000100010000002200010001A4
+:1004300000010001000000010001003C000100017A
+:10044000000100010001003B00010001000100016A
+:100450000001003A0001000100010001000100015B
+:10046000003D000100010001000100010001000049
+:100470000001000100010000000100000001000176
+:100480000001000000010000000100010001000166
+:1004900000301400000100010001003E0042000194
+:1004A000000100010001003F0043000100010001C4
+:1004B0000001004000440001000100010001004172
+:1004C00000450001000100010001000100010001E0
+:1004D00000000016034500720067006F0044006FC3
+:1004E000007800200045005A000000160345007205
+:1004F0000067006F0044006F007800200045005A3C
+:100500000000000403090409026D00040100A0FAC0
+:100510000904000001030101000921110100012269
+:100520003F000705810308000A09040100010301D7
+:100530000200092111010001224D00070582030874
+:10054000000A090402000103000000092111010052
+:10055000012236000705830308000A09040300018D
+:100560000300000009211101000122390007058460
+:10057000031000011201100100000008EDFE071336
+:1005800001000102000105010906A101050719E0AA
+:1005900029E7150025019508750181020508190153
+:1005A00029059505750191029501750391010507CE
+:1005B0001900297715002501957875018102C0057C
+:1005C000010980A101850216010026B7001A010069
+:1005D0002AB700751095018100C0050C0901A10121
+:1005E0008503160100269C021A01002A9C02751040
+:1005F00095018100C005010902A1010901A10005C1
+:100600000919012905150025019505750181029536
+:1006100001750381010501093009311581257F9597
+:10062000027508810609381581257F9501750881B5
+:1006300006050C0A38021581257F9501750881068B
+:10064000C0C005010906A101050719E029E7150049
+:10065000250195087501810295017508810105083C
+:1006600019012905950575019102950175039101FF
+:100670000507190029FF150025FF9506750881005B
+:10068000C00000000000000000000000010204069D
+:100690000A0F17202C3A4A5D71879DB3C7DAE9F536
+:1006A000FCFFFCF5E9DAC7B39D87715D4A3A2C205F
+:1006B000170F0A06040201000000000000000000FD
+:1006C000000011241FBECFEFDAE0DEBFCDBF04B6BD
+:1006D00003FE24C08091FB019091FC01A091FD01DB
+:1006E000B091FE018730904BA740B04BB9F4109207
+:1006F000FB011092FC011092FD011092FE0114BE4C
+:1007000084B7877F84BF88E10FB6F8948093600038
+:10071000109260000FBEE0E0FFE3099511E0A0E059
+:10072000B1E0E8E5F9E402C005900D92A433B10709
+:10073000D9F711E0A4E3B1E001C01D92AB3FB107CE
+:10074000E1F70E949D0B0C94AA240C9400001092D7
+:10075000B9008AE08093B800089594EA9093BC00B1
+:100760009091BC0097FFFCCF9091B900987F983092
+:1007700021F0903111F081E008958093BB0084E86E
+:100780008093BC008091BC0087FFFCCF8091B900B2
+:10079000887F883111F0803471F780E0089584E912
+:1007A0008093BC008091BC0084FDFCCF08958093B1
+:1007B000BB0084E88093BC008091BC0087FFFCCF25
+:1007C0009091B900987F81E0983209F480E0089513
+:1007D00084E88093BC008091BC0087FFFCCF8091AF
+:1007E000BB00089580910101811115C080E40E9431
+:1007F000AD038093010181110CC082E10E94D703F7
+:1008000080930101811105C08FEF0E94D70380936F
+:1008100001010E94CF0384B1807F84B985B1807FBC
+:1008200085B98AB1837F8AB98BB1837F8BB93E98B2
+:10083000469808950E94AF05809301010E94F2033B
+:1008400080B38C7080BB81B3836F81BBA5E3B1E0C3
+:10085000E3E4F1E08EE08E0F11921D928E13FCCF37
+:100860000C949905BF92CF92DF92EF92FF920F9373
+:100870001F93CF93DF9380910101882379F08091BA
+:1008800034018F5F80933401811108C00E94AF054D
+:1008900080930101811102C00E94410505E311E02E
+:1008A000C0E0D0E0DD24D39482E0C82EEE24E394AF
+:1008B000F12CC730D10500F580910101811164C090
+:1008C00080E40E94AD0380930101811112C082E196
+:1008D0000E94D7038093010181110BC0C7010C2E28
+:1008E00001C0880F0A94EAF780950E94D70380938D
+:1008F00001010E94CF0348C0CA30A1F028F4C830DB
+:1009000059F0C93061F005C0CC3089F070F0CD30BD
+:1009100089F0209A289810C0219A29980DC0229A0F
+:100920002A980AC0239A2B9807C0529A01C0539A5A
+:100930005B9802C03E9A469890EA9A95F1F79FB16B
+:10094000799902C082E001C080E091709D25982BCA
+:100950007C9902C084E001C080E0892B7D9902C0AF
+:1009600038E001C030E0832B7E9902C020E101C055
+:1009700020E0822B9FB19095991F9927991F9295FE
+:10098000990F907E892B0FC080910101811149C080
+:1009900080E40E94AD0380930101882379F1B12C9A
+:1009A0000E94CF038B2DF8019081981719F0808356
+:1009B000C09200010E94F20321960F5F1F4FCE30BC
+:1009C000D10509F076CF80910001882361F1815033
+:1009D00080930001882339F08FE99FE00197F1F7B8
+:1009E00000C0000020C0A3E4B1E0E5E3F1E0CF01E6
+:1009F000825F91919D938E13FCCF15C083E10E947D
+:100A0000D703809301018111CACF81E40E94AD0315
+:100A1000809301018111C3CF0E94E803B82EB094E6
+:100A2000BFCF80E0C0CF0E943F0581E0DF91CF9132
+:100A30001F910F91FF90EF90DF90CF90BF9008959E
+:100A4000E82FF0E0ED5BFE4F8081089508950F934D
+:100A50001F93CF93DF93C3E4D1E010E00C2F025F2C
+:100A6000899190E00E94EE1B180F0C13F9CF812F93
+:100A7000DF91CF911F910F910895089508950C94DF
+:100A80003E0556985E9825982D9826982E9827987A
+:100A90002F988FEF90E09093890080938800909337
+:100AA0008B0080938A0090938D0080938C00259A10
+:100AB0002D9A2FEF80E792E0215080409040E1F79F
+:100AC00000C00000269A2E9A2FEF80E792E0215076
+:100AD00080409040E1F700C00000279A2F9A2FEF46
+:100AE00080E792E0215080409040E1F700C0000094
+:100AF00025982D982FEF80E792E02150804090407C
+:100B0000E1F700C0000026982E982FEF80E792E0D2
+:100B1000215080409040E1F700C0000027982F98B6
+:100B200056985E9825982D9826982E9827982F9855
+:100B3000089589EA8093800089E080938100249859
+:100B40002C983F988AB18F748AB96E98479A8BB166
+:100B5000806B8BB9769A0E9441050C943D0580E22A
+:100B6000809301018091510181110EC00E94A70361
+:100B700081E0809351012FEF83ED90E3215080407D
+:100B80009040E1F700C0000080E40E94AD03809334
+:100B9000010181112EC00E94D703809301018111B0
+:100BA00028C00E94D70380930101811122C08FE3E6
+:100BB0000E94D7038093010181111BC00E94CF03C3
+:100BC00080E40E94AD0380930101811112C08CE08A
+:100BD0000E94D7038093010181110BC00E94D703AB
+:100BE00080930101811105C08FE30E94D703809398
+:100BF00001010E94CF03809101010895FC018281CF
+:100C0000462F50E04930510590F5FA01EA5AFF4F5E
+:100C10000C945A24882359F188E691E0089588239A
+:100C200031F183E691E00895882309F18AE591E0A6
+:100C300008958823E1F08DE491E008958823B9F0C8
+:100C400080E491E00895882391F083E391E0089592
+:100C5000882369F08EE291E00895882341F085E2CF
+:100C600091E00895882319F08CE191E0089580E0E7
+:100C700090E0089581E0089581E008950C943C0689
+:100C800008950F931F93CF93DF938C01FC01C081D4
+:100C9000D181CE010E94731ABE010E94EA06EC01C6
+:100CA000B8010E943E06882309F48DC0F8018281B4
+:100CB000882309F44AC080915D0181111FC0C431AD
+:100CC000F0E5DF0709F051C00E94400681E0809303
+:100CD0005D010E94421C90935C0180935B01109225
+:100CE0005401109256011092550110925801109221
+:100CF000570110925A011092590165C080915B0111
+:100D000090915C010E944E1C883C910570F480918A
+:100D10005401E82FF0E0EE0FFF1FEB5AFE4FD18396
+:100D2000C0838F5F809354014EC0C43880E5D807DC
+:100D300021F0C538D04501F13AC0F80182818823FD
+:100D400041F01092520182E01EC0C438E0E5DE0797
+:100D500059F580915201811106C086E20E94FD1171
+:100D600086E20E94C51282E01CC0C438F0E5DF07AD
+:100D700041F3C538D045D9F4F8018281882331F098
+:100D80001092530180E20E9414131DC08091530100
+:100D9000811106C087E20E94FD1187E20E94C51200
+:100DA00080E20E941B130FC0C538D04529F381E0B3
+:100DB0008093520180935301C801DF91CF911F911D
+:100DC0000F910C943A0680E0DF91CF911F910F9123
+:100DD0000895089596E0799FF001112494E5899F84
+:100DE000E00DF11D1124E60FF11DEE0FFF1FE55779
+:100DF000FE4F859194910895880F991FFC01EB5047
+:100E0000F040859194910895880F991FFC01EB584B
+:100E1000FE4F8591949108950F931F93CF93DF9385
+:100E2000EC01811520E3920750F5C11580E2D80747
+:100E300008F0C3C0CB3BD10590F4C83AD10508F007
+:100E40006AC0C53AD10508F05BC0C430D10508F0CE
+:100E5000D0C1219709F0CAC101E010E00AC2CF3F1A
+:100E6000D10511F008F0C5C1C03FD10508F0A2C0FE
+:100E7000CE01805E9109089708F4BBC1B7C1C130AB
+:100E800090E5D90709F4A2C020F5C0318FE4D80756
+:100E900070F4C11590E4D90708F094C0C11521E39E
+:100EA000D20708F0A3C1DD278E01106CE2C1C11585
+:100EB000D04509F09BC10E947A158FEF94E32CE096
+:100EC000815090402040E1F700C000000E949D1C2E
+:100ED000D0C1C11597E5D90758F4C03121E5D20733
+:100EE00008F01CC1C43180E5D80708F475C07EC184
+:100EF000CE0190578115904108F078C1DF7073C121
+:100F0000C53AD10509F477C1C63AD10509F076C1D1
+:100F100002E810E4AEC1C83AD10509F472C1C93A79
+:100F2000D10509F471C1CA3AD10509F470C1CB3AAF
+:100F3000D10509F46FC1CC3AD10509F46EC1CD3A9F
+:100F4000D10509F46DC1C03BD10509F46CC1CE3A9D
+:100F5000D10509F46BC1CF3AD10509F46AC1C13B8F
+:100F6000D10509F469C1C23BD10509F468C1C33B8D
+:100F7000D10509F467C1C43BD10509F466C1C53B7D
+:100F8000D10509F465C1C63BD10509F464C1C73B6D
+:100F9000D10509F463C1C83BD10509F462C1C93B5D
+:100FA000D10509F461C1CA3BD10509F460C100E073
+:100FB00014E45FC18E0110655CC1CE019F700E9478
+:100FC000040758C1DF708E01106A53C18091DA01A5
+:100FD00081608093DA014DC10E94421E811102C0DE
+:100FE0000E94281E0E945F1E90E09093FB01809358
+:100FF000FA01C23080E5D80721F48091FA018160BE
+:1010000086C0C43090E5D90721F48091FA0182604E
+:101010007EC0C63020E5D20721F48091FA018460B9
+:1010200076C0C83080E5D80719F48091FA0127C04E
+:10103000CA3090E5D90721F48091FA01806167C038
+:10104000CC3020E5D20721F48091FA0180625FC0A4
+:10105000CE3080E5D80721F48091FA01806457C032
+:10106000C03190E5D90721F48091FA0180684FC022
+:10107000C23120E5D20729F48091FA0184608860AA
+:1010800046C0C33080E5D80721F48091FA018E7FF5
+:101090003EC0C53090E5D90721F48091FA018D7FDB
+:1010A00036C0C73020E5D20721F48091FA018B7F4A
+:1010B0002EC0C93080E5D80719F48091FA0126C006
+:1010C000CB3090E5D90721F48091FA018F7E1FC0C3
+:1010D000CD3020E5D20721F48091FA018F7D17C031
+:1010E000CF3080E5D80721F48091FA018F7B0FC0C3
+:1010F000C13190E5D90721F48091FA018F7707C0BB
+:10110000C331D04531F48091FA018B7F877F809382
+:10111000FA018091FA010E94631EABC08D2F9927BE
+:101120008F70992781309105D9F49E012370332760
+:1011300002C0880F991F2A95E2F79C688E0144E04F
+:10114000000F111F4A95E1F700271370802B912B98
+:1011500053E0CC0FDD1F5A95E1F7C076DD272FC095
+:101160008230910531F4DC2FCC278E01016F106A9B
+:1011700080C08330910569F4CE018370992701E026
+:1011800010E002C0000F111F8A95E2F7C8019C68A9
+:101190000FC084309105B9F4CE018370992701E026
+:1011A00010E002C0000F111F8A95E2F7C8019A688B
+:1011B00023E0CC0FDD1F2A95E1F7C07ED7708C01AC
+:1011C0000C2B1D2B56C08530910531F4DC2FCC271C
+:1011D0008E01046F106A4DC0069709F04AC0CF71A6
+:1011E000DD27DC2FCC278E01106243C000E010E029
+:1011F00040C08E013EC001E810E43BC003E810E4AB
+:1012000038C002EE14E435C009EE14E432C00AEE30
+:1012100014E42FC005EB14E42CC006EB14E429C041
+:1012200007EB14E426C00CEC14E423C00DEC14E42A
+:1012300020C003E815E41DC00AE815E41AC002E95D
+:1012400015E417C004E915E414C001E216E411C066
+:1012500003E216E40EC004E216E40BC005E216E455
+:1012600008C006E216E405C007E216E402C00AE27E
+:1012700016E4C801DF91CF911F910F91089596E078
+:10128000799FF001112494E5899FE00DF11D11244F
+:10129000E60FF11DEE0FFF1FE557FE4F859194916C
+:1012A000803E9105E0F4803C910558F5813391052D
+:1012B00009F46FC048F48932910509F463C08A3299
+:1012C000910509F46DC072C089339105E9F0823847
+:1012D0009105D1F08533910509F44DC067C0833E77
+:1012E000910581F138F4803E9105B9F0823E910577
+:1012F000D9F05CC0863E910561F1873E9105A1F170
+:1013000055C00E94FC0608952091FA0120FD02C0FC
+:1013100021FF4CC080EE90E049C08091FA0180FF2F
+:10132000F9CF89E390E042C08091FA0182FF0EC0BC
+:101330008091FA0184FF03C080E090E037C083EE23
+:1013400090E034C08091FA0182FFF2CF82EE90E00B
+:101350002DC08091FA0183FF0BC08091FA0184FDBA
+:10136000EBCF87EE90E022C08091FA0183FFF5CFAA
+:1013700086EE90E01BC08091FA0185FF07C089E2EC
+:1013800090E014C08091FA0185FFF9CF85E390E0E9
+:101390000DC08091FA0186FF07C08AE290E006C086
+:1013A0008091FA0186FFF9CF81E390E00E940C075B
+:1013B000089508950C94D90980916E010895CF93F2
+:1013C000DF9300D01F92CDB7DEB79C018091F10171
+:1013D000843019F593E099833B832A839093E90045
+:1013E0008FEF9091E800815095FD06C095ED9A959C
+:1013F000F1F700008111F5CF8091E80085FF0DC065
+:1014000040E050E063E070E0CE0101960E94490C9C
+:101410008091E8008E778093E8000F900F900F90F6
+:10142000DF91CF910895CF93DF9300D01F92CDB776
+:10143000DEB72091F101243021F522E029839B833E
+:101440008A8383E08093E9008FEF9091E8008150D8
+:1014500095FD06C095ED9A95F1F700008111F5CF45
+:101460008091E80085FF0DC040E050E063E070E04F
+:10147000CE0101960E94490C8091E8008E778093FE
+:10148000E8000F900F900F90DF91CF910895209179
+:10149000F1012430F1F422E02093E9002FEF3091A4
+:1014A000E800215035FD06C035ED3A95F1F7000012
+:1014B0002111F5CF2091E80025FF0BC040E050E05E
+:1014C00065E070E00E94490C8091E8008E7780937F
+:1014D000E8000895CF93DF93EC019091F1019430EF
+:1014E00009F046C080910C018823D9F080910D014C
+:1014F0008823B9F09093E9008FEF9091E800815034
+:1015000095FD06C095E19A95F1F700008111F5CFA0
+:101510008091E80085FF2CC040E050E060E170E081
+:1015200017C081E08093E9008FEF9091E80081502F
+:1015300095FD06C095ED9A95F1F700008111F5CF64
+:101540008091E80085FF14C040E050E068E070E062
+:10155000CE010E94490C8091E8008E778093E800CC
+:1015600080E1FE01AEE5B1E001900D928A95E1F7D0
+:10157000DF91CF9108958091F001811109C00E94FF
+:10158000DE0D0E943B0E8091E20084608093E200B9
+:1015900008951092F001089508950C94D2220E94AB
+:1015A000331C0E94D8220E94E1100C94DA0942E018
+:1015B00061EC81E00E94580D42E061EC82E00E9403
+:1015C000580D42E061EC83E00E94580D42E161EC6D
+:1015D00084E00C94580D8091F301833009F455C0D8
+:1015E00030F4813071F0823009F48EC008958A3071
+:1015F00009F47AC08B3009F460C0893009F09CC0CE
+:1016000020C08091F201813A09F096C08091E800F3
+:10161000877F8093E8008091F6019091F701892BF4
+:1016200021F460E18EE591E003C060E080E090E0AD
+:1016300070E00E94940C8091E8008B778093E80022
+:1016400008958091F201813209F076C08091F6010F
+:101650009091F701009719F0039709F06DC0809100
+:10166000E800877F8093E8008091E80082FD05C054
+:101670008091F1018111F8CF5FC08091F1008093DA
+:101680006E018091E8008B7753C08091F201813A1E
+:1016900009F052C08091F6019091F701892B09F071
+:1016A0004BC08091E800877F8093E8008091E8003C
+:1016B00080FFFCCF80910C0136C08091F201813215
+:1016C000D9F58091F6019091F701892BA9F58091C8
+:1016D000E800877F8093E8000E948D0D8091F401DF
+:1016E00080930C010C947A158091F201813221F5DE
+:1016F0008091E800877F8093E8000E948D0D8091A3
+:10170000F50180936F0108958091F201813AA1F46F
+:101710008091E800877F8093E8008091E80080FF57
+:10172000FCCF80916F018093F1008091E8008E776B
+:101730008093E8000C948D0D089584B7877F84BF53
+:1017400088E10FB6F89480936000109260000FBE9D
+:1017500090E080E80FB6F894809361009093610068
+:101760000FBE0E9430110E94DE0D0E943B0E809140
+:10177000E20084608093E20078940E94C1100E948D
+:10178000321182E091E00E94DC100E94C022809120
+:10179000F101853069F40E94FA1B8091EF018823E2
+:1017A000B1F30E94251C882391F30E94330CEFCFE4
+:1017B0000E943811ECCF292F332723303105C9F08F
+:1017C00064F42130310581F02230310509F043C045
+:1017D0008DE690E027E035E042C021323105F1F09E
+:1017E0002232310541F137C082E190E024E735E053
+:1017F00036C099278130910541F08230910541F042
+:10180000892B49F5E3E0F5E005C0EBEEF4E002C01A
+:10181000E3EDF4E0849190E09F0121C06430D8F4BE
+:10182000E62FF0E0EE0FFF1FEE5DFE4F20813181CD
+:1018300089E090E014C0643070F470E0FB01EE0FBA
+:10184000FF1FE65EFE4F20813181FB01EA5EFE4F05
+:10185000808190E004C080E090E020E030E0FA0178
+:1018600031832083089580E189BD82E189BD09B477
+:1018700000FEFDCF8091D8008F7D8093D8008091AD
+:10188000E00082608093E0008091E00081FDFCCF69
+:101890000895CF92DF92EF92FF920F931F93CF9311
+:1018A000DF93EC018B016A010E94AC0D811133C002
+:1018B000C114D10439F0F60180819181081B190B04
+:1018C000C80FD91FE12CF12C0115110519F18091D8
+:1018D000E80085FD16C08091E8008E778093E800CF
+:1018E000C114D10449F0F60180819181E80EF91EFE
+:1018F000F182E08285E00FC00E94AC0D882321F3C5
+:101900000AC089918093F10001501109FFEFEF1A8D
+:10191000FF0ADACF80E0DF91CF911F910F91FF9006
+:10192000EF90DF90CF9008952091F8013091F90168
+:101930002617370748F06115710539F42091E80042
+:101940002E772093E80001C0B90140E061157105D0
+:10195000A9F12091F101222309F443C0253009F4B3
+:1019600042C02091E80023FD40C02091E80022FD04
+:1019700032C02091E80020FFE9CF4091F300209190
+:10198000F20030E0342BFC01CF016115710559F0F4
+:101990002830310540F481918093F1006150710944
+:1019A0002F5F3F4FF1CF41E02830310509F040E093
+:1019B0002091E8002E772093E800C8CF4111C9CFCD
+:1019C0000AC08091F101882361F0853061F0809137
+:1019D000E80083FD0AC08091E80082FFF2CF80E03A
+:1019E000089582E0089583E0089581E008952091AC
+:1019F000F8013091F9012617370748F06115710594
+:101A000039F42091E8002E772093E80001C0B90155
+:101A1000FC0120E06115710591F18091F1018823AD
+:101A200009F440C0853009F43FC08091E80083FD8F
+:101A30003DC08091E80082FD2FC08091E80080FFCA
+:101A4000E9CF2091F3008091F20090E0922B611594
+:101A5000710559F08830910540F424912093F100EC
+:101A60003196615071090196F2CF21E0089709F093
+:101A700020E08091E8008E778093E800CBCF2111A1
+:101A8000CCCF0AC08091F101882361F0853061F0EC
+:101A90008091E80083FD0AC08091E80082FFF2CFC8
+:101AA00080E0089582E0089583E0089581E008953C
+:101AB000982F973058F59093E900981739F0709166
+:101AC000EC002091ED005091F00003C0242F762F00
+:101AD00050E021FF19C03091EB003E7F3093EB00C6
+:101AE0003091ED003D7F3093ED003091EB0031609F
+:101AF0003093EB007093EC002093ED005093F000D6
+:101B00002091EE0027FF07C09F5FD3CF8F70809397
+:101B1000E90081E0089580E008958091F20187FF57
+:101B200011C08091E80082FD05C08091F101811112
+:101B3000F8CF11C08091E8008B770BC08091F10144
+:101B4000882349F08091E80080FFF8CF8091E80079
+:101B50008E778093E80008952091E4003091E500AD
+:101B600095E64091EC00842F817040FF22C0809167
+:101B7000E80080FD1CC08091F101882391F0853040
+:101B800091F08091EB0085FD10C04091E4005091F0
+:101B9000E5004217530729F39A01915011F784E0A9
+:101BA000089582E0089583E0089581E0089580E03B
+:101BB00008954091E80042FFDECF08950E944C0E48
+:101BC0000E94540EE0EEF0E0808181608083E8EDB9
+:101BD000F0E080818F77808319BCA7EDB0E08C9115
+:101BE0008E7F8C9380818F7E80831092F001089588
+:101BF0000F931F93CF93DF930E944C0E0E94540EBD
+:101C0000C8EDD0E088818F77888388818068888359
+:101C100088818F7D888319BC1092F1011092ED01AB
+:101C20001092EF011092EE0100EE10E0F8018081B9
+:101C30008B7F808388818160888342E060E080E0E0
+:101C40000E94580DE1EEF0E080818E7F8083E2EE0D
+:101C5000F0E0808181608083808188608083F801EA
+:101C600080818E7F8083888180618883DF91CF919E
+:101C70001F910F910895E8EDF0E080818F7E8083C1
+:101C8000E7EDF0E080818160808384E082BF81E0C5
+:101C90008093F0010C94F80DE8EDF0E080818E7FE8
+:101CA00080831092E20008951092DA001092E10011
+:101CB00008951F920F920FB60F9211242F933F9306
+:101CC0004F935F936F937F938F939F93AF93BF9344
+:101CD000EF93FF938091E10082FF0BC08091E200BF
+:101CE00082FF07C08091E1008B7F8093E1000E941A
+:101CF000C0108091DA0080FF1FC08091D80080FF63
+:101D00001BC08091DA008E7F8093DA008091D90029
+:101D100080FF0DC080E189BD82E189BD09B400FE6C
+:101D2000FDCF81E08093F1010E94BB0A05C019BC80
+:101D30001092F1010E94C90A8091E10080FF19C050
+:101D40008091E20080FF15C08091E2008E7F809339
+:101D5000E2008091E20080618093E2008091D800EF
+:101D600080628093D80019BC85E08093F1010E94C5
+:101D7000CD0A8091E10084FF30C08091E20084FFB1
+:101D80002CC080E189BD82E189BD09B400FEFDCF90
+:101D90008091D8008F7D8093D8008091E1008F7E64
+:101DA0008093E1008091E2008F7E8093E200809139
+:101DB000E20081608093E2008091ED01882311F0C0
+:101DC00084E007C08091E30087FD02C081E001C08C
+:101DD00083E08093F1010E94CF0A8091E10083FFAC
+:101DE00029C08091E20083FF25C08091E100877FB8
+:101DF0008093E10082E08093F1011092ED018091E7
+:101E0000E1008E7F8093E1008091E2008E7F8093DD
+:101E1000E2008091E20080618093E20042E060E0B5
+:101E200080E00E94580D8091F00088608093F0005F
+:101E30000E94CC0AFF91EF91BF91AF919F918F913A
+:101E40007F916F915F914F913F912F910F900FBEB6
+:101E50000F901F9018951F920F920FB60F9211249A
+:101E60002F933F934F935F936F937F938F939F93A2
+:101E7000AF93BF93CF93DF93EF93FF93C091E900AC
+:101E8000CF708091EC00D82FD17080FDD0E81092F7
+:101E9000E9008091F000877F8093F00078940E94A1
+:101EA0006F0F1092E9008091F00088608093F0003D
+:101EB000CD2BCF70C093E900FF91EF91DF91CF91CF
+:101EC000BF91AF919F918F917F916F915F914F9152
+:101ED0003F912F910F900FBE0F901F9018951F9359
+:101EE000CF93DF93CDB7DEB7AA970FB6F894DEBFD6
+:101EF0000FBECDBFE2EFF1E088E08E0F9091F100D0
+:101F000091938E13FBCF0E94EB0A8091E80083FF30
+:101F10001FC18091F2019091F301492F50E04A30A6
+:101F2000510508F015C1FA01E15AFF4F0C945A24EB
+:101F3000803881F0823809F00BC18091F6018F70F2
+:101F40008093E9008091EB0085FB882780F910924F
+:101F5000E90006C08091EE019091EF01911182603D
+:101F60009091E800977F9093E8008093F1001092A1
+:101F7000F100C8C0282F2D7F09F0EAC0882319F08E
+:101F8000823061F0E5C08091F401813009F0E0C059
+:101F9000933009F080E08093EF012BC08091F40131
+:101FA000811127C08091F6018F7009F4D1C0809310
+:101FB000E9002091EB0020FF1CC0933021F48091B8
+:101FC000EB00806214C09091EB0090619093EB0065
+:101FD00021E030E0A90102C0440F551F8A95E2F7C5
+:101FE0004093EA001092EA008091EB0088608093B1
+:101FF000EB001092E9008091E800877F86C0811194
+:10200000A7C01091F4011F778091E3008078812BA5
+:102010008093E3008091E800877F8093E8000E942E
+:102020008D0D8091E80080FFFCCF8091E3008068F7
+:102030008093E300111102C082E001C083E080932D
+:10204000F10186C08058823008F082C08091F4018E
+:102050009091F5018C3D53E0950779F583E08A83F3
+:102060008AE289834FB7F894DE01139620E03EE0C0
+:1020700051E2E32FF0E050935700E49120FF03C0BA
+:10208000E295EF703F5FEF708E2F90E0EA3010F036
+:10209000C79601C0C0968D939D932F5F243149F759
+:1020A0004FBF8091E800877F8093E8006AE270E08C
+:1020B000CE0101960E94940C14C0AE014F5F5F4F99
+:1020C0006091F6010E94DB0BBC01009709F440C04F
+:1020D0009091E800977F9093E80089819A810E940F
+:1020E000F70C8091E8008B778093E80031C080384E
+:1020F00079F58091E800877F8093E8008091ED0179
+:102100008093F1008091E8008E778093E8000E9430
+:102110008D0D1EC081111CC09091F4019230C0F44D
+:102120008091E800877F8093E8009093ED010E9402
+:102130008D0D8091ED01811106C08091E30087FD36
+:1021400002C081E001C084E08093F1010E94D70ABF
+:102150008091E80083FF0AC08091E800877F809328
+:10216000E8008091EB0080628093EB00AA960FB6A6
+:10217000F894DEBF0FBECDBFDF91CF911F910895C0
+:102180000895CF938091F1018823A1F0C091E900D7
+:10219000CF709091EC00892F817090FD80E8C82B62
+:1021A0001092E9008091E80083FD0E946F0FCF70CC
+:1021B000C093E900CF9108959093750180937401C5
+:1021C0000895E0917401F0917501309721F001902C
+:1021D000F081E02D099480E00895E0917401F09180
+:1021E0007501309721F00280F381E02D0994089564
+:1021F000E0917401F0917501309721F00480F58130
+:10220000E02D099408952091720130917301821795
+:10221000930771F09093730180937201E0917401C0
+:10222000F0917501309721F00680F781E02D099437
+:10223000089520917001309171018217930771F018
+:102240009093710180937001E0917401F091750198
+:10225000309721F00084F185E02D099408950895C8
+:102260000C942F110E94391C0E941A040C94FB1C20
+:102270009F92AF92BF92CF92DF92EF92FF920F9315
+:102280001F93CF93DF9300D000D000D0CDB7DEB73F
+:102290000E9432040DE010E0AA24A394B12C902EE9
+:1022A000802F0E942005980129583E4F6901F901AD
+:1022B000F080F826A1F40150110988F78FEF898387
+:1022C0008A831B820E94421C8160782F9D838C83AD
+:1022D00049815A816B818D810E94CF112FC09091CD
+:1022E000DA0191FF04C08E830E9426058E8125E0CD
+:1022F00030E0A501022E01C0440F0A94EAF7E42E53
+:102300004F21C1F029839A828E2191E009F490E057
+:102310009B830E94421C8160782F9D838C8349811E
+:102320005A816B818D810E94CF11F6018081E82650
+:10233000E08204C021503109E0F6BDCF0E94E21FC7
+:10234000109176010E94E1101817B9F00E94E11077
+:102350008093760126960FB6F894DEBF0FBECDBFF0
+:10236000DF91CF911F910F91FF90EF90DF90CF9071
+:10237000BF90AF909F900C94DA0926960FB6F89410
+:10238000DEBF0FBECDBFDF91CF911F910F91FF90A8
+:10239000EF90DF90CF90BF90AF909F900895CF9334
+:1023A000DF93CDB7DEB72B970FB6F894DEBF0FBE25
+:1023B000CDBF4F83588769877A878B87DE01119657
+:1023C00086E0FD0111928A95E9F785E0FE013796D6
+:1023D00001900D928A95E1F749815A816B817C8148
+:1023E0008D819E810E9418182B960FB6F894DEBF3F
+:1023F0000FBECDBFDF91CF910895CF93882309F40D
+:10240000C2C0C82F823859F40E94E11081FDBBC0C0
+:1024100089E30E94F21A0E94BF1B89E30CC0833833
+:1024200079F40E94E11080FDAEC083E50E94F21AAB
+:102430000E94BF1B83E50E94341BCF910C94BF1BED
+:10244000843859F40E94E11082FD9DC087E40E9407
+:10245000F21A0E94BF1B87E4EECF8CEF8C0F813AFB
+:1024600048F48C2F0E94252281118DC08C2F0E9450
+:10247000F21AE3CF80E28C0F883048F4C77081E015
+:1024800001C0880FCA95EAF70E94781BD6CF8BE56A
+:102490008C0F833078F4C53A29F0C63A31F083E8DE
+:1024A00090E005C081E890E002C082E890E0CF9122
+:1024B0000C94031188E58C0F833108F064C0C83A8E
+:1024C00039F1C93A41F1CA3A49F1CB3A51F1CC3A22
+:1024D00059F1CD3A61F1C03B69F1CE3A71F1CF3A91
+:1024E00079F1C13B81F1C23B89F1C33B91F1C43B1E
+:1024F00099F1C53BA1F1C63BA9F1C73BB1F1C83B7E
+:10250000B9F1C93BC1F1CA3BC9F180E090E038C0E4
+:1025100082EE90E035C089EE90E032C08AEE90E025
+:102520002FC085EB90E02CC086EB90E029C087EBB4
+:1025300090E026C08CEC90E023C08DEC90E020C0B1
+:1025400083E891E01DC08AE891E01AC082E991E039
+:1025500017C084E991E014C081E292E011C083E2E7
+:1025600092E00EC084E292E00BC085E292E008C0E7
+:1025700086E292E005C087E292E002C08AE292E041
+:10258000CF910C941911CF910895882309F44BC071
+:10259000823859F40E94E11081FF45C089E30E940E
+:1025A000F21A0E94BF1B89E30CC0833871F40E94A9
+:1025B000E11080FF38C083E50E94F21A0E94BF1B21
+:1025C00083E50E94341B0C94BF1B843859F40E948D
+:1025D000E11082FF28C087E40E94F21A0E94BF1B0C
+:1025E00087E4EFCF9CEF980F913A58F390E2980F61
+:1025F000983050F4877091E001C0990F8A95EAF7FE
+:10260000892F0E947E1BDFCF9BE5980F933020F42B
+:1026100080E090E00C940311885A833120F480E02C
+:1026200090E00C9419110895882321F00E94781BE2
+:102630000C94BF1B0895882321F00E947E1B0C94EC
+:10264000BF1B08957F928F929F92AF92BF92CF92BD
+:10265000DF92EF92FF920F931F93CF93DF931F921E
+:10266000CDB7DEB77C01C62E772EFC010581029521
+:102670000F70128111110E94951B0E94EB1A882382
+:1026800079F0112369F080E28C0D883048F082E007
+:102690000E94D41A0E94EB1A91E0D82ED92601C0CC
+:1026A000D12CE72DE295EF70F0E0E759FF4F0C9445
+:1026B0005A24872D807F072D0F70882311F00295F3
+:1026C000007F112389F0002309F490C180E28C0D72
+:1026D000883020F4802F0E94781B03C0802F0E9436
+:1026E000881B0E94BF1B82C18C2D0E94C512002333
+:1026F00009F495C180E28C0D883020F4802F0E946F
+:102700007E1B03C0802F0E948E1B0E94BF1B87C1AF
+:10271000972D907F872D8F70903211F08295807F5A
+:10272000CC2021F0F1E0CF16B1F01EC0112349F00A
+:10273000002309F414C1013009F011C10E94A81B43
+:102740006EC1002319F0013009F469C189830E9428
+:10275000AB1B89810AC1112321F0023008F05FC14F
+:10276000FEC001115CC101C1112321F0002309F455
+:10277000F6C03CC1002309F4F8C03EC1872D869500
+:102780008695837090E0009719F0019761F047C13A
+:10279000112321F08C2D972D937002C080E090E0E2
+:1027A0000E9403113CC1112321F08C2D972D9370B1
+:1027B00002C080E090E00E94191131C18C2D1123DC
+:1027C00019F00E94EA1E02C00E94521F0E94D71FE9
+:1027D00026C1872D837009F052C0111120C18C2DA4
+:1027E000829586958770880F880F9C2D9F70892E03
+:1027F000912CA12CB12C082E04C0880C991CAA1C69
+:10280000BB1C0A94D2F7C4FE14C00FE010E020E015
+:1028100030E0B901A80104C0440F551F661F771F9F
+:102820008A95D2F7CB01BA01609570958095909505
+:1028300003C060E070E0CB01272D2695269523701C
+:1028400030E02230310569F02330310589F0682904
+:1028500079298A299B292130310571F00E9460195C
+:10286000DEC0682979298A299B290E947C19D7C052
+:102870000E946019C501B4010E944419D0C01123FF
+:1028800019F0872D817001C08695882309F4C7C08F
+:102890008C2D829586958770880F880F9C2D9F7050
+:1028A000892E912CA12CB12C082E04C0880C991CC7
+:1028B000AA1CBB1C0A94D2F7C4FE14C00FE010E09F
+:1028C00020E030E0B901A80104C0440F551F661F85
+:1028D000771F8A95D2F7CB01BA01609570958095E4
+:1028E000909503C060E070E0CB01272D26952695DA
+:1028F0002370422F50E04230510569F043305105BA
+:1029000089F0682979298A299B294130510571F07C
+:102910000E943A1A84C0682979298A299B290E9431
+:10292000561A7DC00E943A1AC501B4010E941E1AAF
+:1029300076C08C2D90E0FC01E05EF109E531F105F7
+:1029400008F050C0E758FF4F0C945A240C2D0F701C
+:10295000872D8F71112331F00E94B719802F0E94AB
+:1029600014135DC00E94D819802F0E941B1357C0FA
+:10297000112339F0011153C0872D8F710E94FD1969
+:102980004EC0023008F04BC0F7CF112339F0872D2D
+:102990008F710E94B71943C01123C9F3872D8F711E
+:1029A0000E94D8193CC0112329F0872D8F710E94F5
+:1029B000A21935C00E94981932C0112351F0172D69
+:1029C0001F71812F0E94B71963E0812F0E94CB1ADB
+:1029D00026C081E00E94D41A023008F182E00E94F1
+:1029E000D41A1DC0112331F0002389F28C2D0E94CE
+:1029F000FD1115C0002391F28C2D0E94C5120FC04D
+:102A0000472D4F706C2DC7010E94FE050E94BC1817
+:102A100006C0472D4F706C2DC7010E94E906DD20CE
+:102A2000F9F00E94C71A80FD1BC0F70112820E94B4
+:102A3000C11A0E94B719C7010E943F150E94C11A0E
+:102A40000F90DF91CF911F910F91FF90EF90DF904A
+:102A5000CF90BF90AF909F908F907F900C94D8199B
+:102A60000F90DF91CF911F910F91FF90EF90DF902A
+:102A7000CF90BF90AF909F908F907F9008950F93CD
+:102A80001F93CF93DF93EC01888199812B813C8147
+:102A9000232BB9F09F3F11F48F3F99F0CE010E9494
+:102AA0004106882371F0688179818A810E94BD1A6C
+:102AB0008C010E94721A0E943919B801CE010E943D
+:102AC0002213DF91CF911F910F9108950E94951BC2
+:102AD0000E94A51B0E946A1B0E94BF1B0E948820A7
+:102AE0000E94D71F80E090E00E94031180E090E0F8
+:102AF0000C9419110E94851B0C9466150E94B21A41
+:102B0000292F22952F7030E02C3031054CF42A30DB
+:102B100031056CF42250310922303105A8F407C088
+:102B20002C30310569F02F30310551F00DC0803F58
+:102B300069F018F4803E40F409C0843F29F406C0CF
+:102B400093FB882780F9089580E0089581E0089537
+:102B5000CF93DF9300D000D01F92CDB7DEB70F9098
+:102B60000F900F900F900F90DF91CF910895CF931A
+:102B7000DF9300D000D000D0CDB7DEB726960FB6D9
+:102B8000F894DEBF0FBECDBFDF91CF9108951F93A4
+:102B9000CF93DF93C091850116E080918601C8171D
+:102BA00099F0D0E01C9FF0011D9FF00D1124E95712
+:102BB000FE4F4081518162817381848195810E94A1
+:102BC000B7152196C770E9CFDF91CF911F91089576
+:102BD0004091B7015091B8016091B9017091BA016B
+:102BE0008091BB019091BC010C94B7158091BC0100
+:102BF00082958F7009F054C08091B901882309F43F
+:102C00004FC080918501A09186016091B7017091BC
+:102C1000B8014091BA015091BB01B6E08A1709F49E
+:102C20003FC090E041155105C1F17F3F11F46F3F66
+:102C3000A1F1B89FF001B99FF00D1124E957FE4FA3
+:102C4000218172132AC02081621327C022812111A1
+:102C500024C0238134812417350710F42150310911
+:102C6000241B350B283C3105C0F42091BC012F708A
+:102C700020612093BC0126E0289FF001299FF00DE0
+:102C80001124E457FE4F80818F708061808387EB31
+:102C900091E00E943F150C94C71501968770BECF36
+:102CA0000895CF92DF92EF92FF920F931F93CF93ED
+:102CB000DF93CDB7DEB762970FB6F894DEBF0FBED5
+:102CC000CDBF8C0185E0F801DE011D9601900D92CB
+:102CD0008A95E1F7D8014C9111965C911197129663
+:102CE0006C9112971396CD90DC9014973091B701A8
+:102CF0007091B8018091BA019091BB01009709F4DD
+:102D00006BC17F3F19F43F3F09F466C1E090B90100
+:102D1000EE2009F4C0C02091BC01C816D90628F0E5
+:102D2000F601E81BF90BCF0104C0809590958C0D3E
+:102D30009D1DFF24F394883C910578F0F12C207FB1
+:102D400009F0C6C07C2DD98AC88A89890E94A81535
+:102D500087EB91E00E943F15B1C0822F807F09F080
+:102D600046C0751314C0341312C0611110C02F7007
+:102D700020612093BC010E94E81587EB91E00E943E
+:102D80003F158091BC01D80115968C932EC0CD289B
+:102D900019F15F3F11F44F3FF9F0F62E61111CC09D
+:102DA000809185012091860136E0821709F45AC08E
+:102DB00090E0389FF001399FF00D1124E957FE4F44
+:102DC0007181571306C07081471303C0728171115E
+:102DD00003C001968770E9CFF62E662309F418C167
+:102DE0008091BC0181608093BC01F12C11C17513ED
+:102DF00008C0341306C0611104C08091BC01D80121
+:102E0000C3C04D875E878D859E856A8B0E947E1527
+:102E10006A898823E1F16623D1F12091BC01822FD8
+:102E200082958F7090E0029774F08091B701909135
+:102E3000B80198878F831986DB86CA862C87CE01D6
+:102E400007960E943F1586E0F801A7EBB1E00190DC
+:102E50000D928A95E1F70E94F6150E94E815FF246D
+:102E6000F394D6C04D875E878D859E850E94B21AE9
+:102E7000292F22952F7030E0223031050CF0BCC094
+:102E80009F7009F0B6C0805E883008F4C1C0C801E8
+:102E90000E943F15E4CFC816D90608F453C0F601C6
+:102EA000E81BF90BCF01883C910508F450C0F12CC8
+:102EB0007C2DD98AC88A89890E94A815E7EBF1E0A0
+:102EC00086E0DF011D928A95E9F70E94E815A0C00F
+:102ED000751314C0341312C0611110C08091BC016D
+:102EE000F8018583C8010E943F1586E0E7EBF1E019
+:102EF000DF011D928A95E9F7FE2C8AC04D875E8717
+:102F00008D859E856A8B0E947E156A89882309F4C7
+:102F1000BECF662309F4BBCF2091BC01822F8295DE
+:102F20008F7090E002970CF48ECF8091B701909152
+:102F3000B8019A8389831B82DD82CC822E83CE01E5
+:102F400001967FCF809590958C0D9D1DACCFF62E70
+:102F5000662309F49CCF75132EC034132CC0209126
+:102F6000BC0120FD1FC0822F82958F70D9F0D8013F
+:102F700015962C9315978F3049F08F5F982F929567
+:102F8000907F822F8F70892B15968C93C8010E9499
+:102F90003F1586E0F801A7EBB1E001900D928A950C
+:102FA000E1F793CF86E0F801A7EBB1E001900D9235
+:102FB0008A95E1F72DC04D875E878D859E850E949D
+:102FC0007E15811140CF8091BC0181608093BC014E
+:102FD000C8010E943F151CC0662309F458CF4D87D5
+:102FE0005E878D859E850E947E15882309F44FCFCC
+:102FF0002ACF811148CF0CC0243031050CF047CFC7
+:103000009F7009F440CFF8019581907F09F03BCF84
+:103010008F2D62960FB6F894DEBF0FBECDBFDF9145
+:10302000CF911F910F91FF90EF90DF90CF90089577
+:103030001F93CF93DF93CDB7DEB72C970FB6F894DD
+:10304000DEBF0FBECDBF4F83588769877A878B87D6
+:103050009C87CE0107960E945116882369F08F81C4
+:1030600098852A853B85232BF1F19F3F09F063C0AA
+:103070008F3F09F060C037C086E0FE013796DE0161
+:10308000119601900D928A95E1F76F817885EA8516
+:10309000FB85309741F17F3F11F46F3F21F1209183
+:1030A000860130E0C901019687709927409185011A
+:1030B00050E08417950709F447C069837A83FD833C
+:1030C000EC8396E0929FD001939FB00D1124A957F5
+:1030D000BE4FFE01319601900D929A95E1F78093D3
+:1030E00086010E94C71516E08091850190918601A6
+:1030F0008917C1F1189FC001112489579E4F0E9462
+:103100005116882379F1E09185011E9FF001112469
+:10311000E957FE4F4081518162817381848195819D
+:103120000E94B7158091850190E0019687709927DC
+:1031300080938501D9CF4F81588569857A858B85A4
+:103140009C850E94B715CFCF0E947A1510928601F8
+:1031500010928501E7EBF1E086E0DF011D928A9590
+:10316000E9F7C1CF2C960FB6F894DEBF0FBECDBFE6
+:10317000DF91CF911F910895EF92FF920F931F93CC
+:10318000CF93DF938C01009709F46CC0F12CEE24EF
+:10319000E394E8012196F8018491843740F4843067
+:1031A00008F051C0813081F0823019F15BC0853761
+:1031B00009F444C0A8F19CE7980F903708F052C07A
+:1031C0008F770E94C51241C00E5F1F4FFE01C49150
+:1031D00080E28C0F883048F4C7708E2D01C0880FB4
+:1031E000CA95EAF70E94981B14C08C2F0E94FD110B
+:1031F0002DC00E5F1F4FFE01C49180E28C0F8830FE
+:1032000058F4C7708E2D01C0880FCA95EAF70E9446
+:103210009E1B0E94BF1B1AC08C2F0E94C51216C095
+:103220000E5F1F4FFE01C491CC2381F08FE99FE018
+:103230000197F1F700C00000C150F6CF0E5F1F4F9D
+:10324000FE01F49003C00E94FD118E018F2D882392
+:1032500009F49FCFEFE9FFE03197F1F700C00000DC
+:103260008150F5CFDF91CF911F910F91FF90EF909B
+:10327000089508956093C1017093C2018093C301C2
+:103280009093C4010C9466150F931F930091C10194
+:103290001091C2012091C3013091C401DC01CB0126
+:1032A000802B912BA22BB32B8093C1019093C20151
+:1032B000A093C301B093C4011F910F910C946615A4
+:1032C0000F931F930091C1011091C2012091C3017E
+:1032D0003091C401DC01CB0180239123A223B323CD
+:1032E0008093C1019093C201A093C301B093C40124
+:1032F0001F910F910C9466150F931F930091C101BC
+:103300001091C2012091C3013091C401DC01CB01B5
+:1033100080279127A227B3278093C1019093C201F0
+:10332000A093C301B093C4011F910F910C94661533
+:103330001092BD011092BE011092BF011092C00107
+:103340000C94661541E050E060E070E004C0440F6A
+:10335000551F661F771F8A95D2F74093BD01509382
+:10336000BE016093BF017093C0010C94661541E0EB
+:1033700050E060E070E004C0440F551F661F771FE7
+:103380008A95D2F78091BD019091BE01A091BF01B5
+:10339000B091C001482B592B6A2B7B2B4093BD0168
+:1033A0005093BE016093BF017093C0010C946615E9
+:1033B00041E050E060E070E004C0440F551F661F1C
+:1033C000771F8A95D2F740955095609570958091BA
+:1033D000BD019091BE01A091BF01B091C0014823F1
+:1033E00059236A237B234093BD015093BE01609310
+:1033F000BF017093C0010C94661541E050E060E09D
+:1034000070E004C0440F551F661F771F8A95D2F7DE
+:103410008091BD019091BE01A091BF01B091C0010A
+:10342000482759276A277B274093BD015093BE0147
+:103430006093BF017093C0010C9466150F931F93A6
+:103440000091BD011091BE012091BF013091C001DA
+:10345000DC01CB01802B912BA22BB32B8093BD01E0
+:103460009093BE01A093BF01B093C0011F910F9133
+:103470000C9466150F931F930091BD011091BE012E
+:103480002091BF013091C001DC01CB018023912349
+:10349000A223B3238093BD019093BE01A093BF01EB
+:1034A000B093C0011F910F910C9466150F931F9359
+:1034B0000091BD011091BE012091BF013091C0016A
+:1034C000DC01CB0180279127A227B3278093BD0180
+:1034D0009093BE01A093BF01B093C0011F910F91C3
+:1034E0000C9466150895CF92DF92EF92FF920F939E
+:1034F0001F93CF93DF938C01C090C101D090C20184
+:10350000E090C301F090C4018091BD019091BE0193
+:10351000A091BF01B091C001C82AD92AEA2AFB2A8A
+:10352000CFE1D0E0D701C6010C2E04C0B695A79517
+:10353000979587950A94D2F780FF06C0B8018C2F23
+:103540000E943F09019721F4219760F780E001C0B4
+:103550008C2FDF91CF911F910F91FF90EF90DF9013
+:10356000CF900895CF93DF93EC010E94731ABE01B0
+:103570000E943F09DF91CF910895CB010E94B21ABA
+:1035800008958091C50185958595859508958091CB
+:10359000C5018770089598E0899F90011124262B1A
+:1035A0002093C5010C94B7192091C5018095822301
+:1035B0008093C501982F977069F430E0482F552704
+:1035C00047FD50952417350729F0859585958595F4
+:1035D0000C94D81908959091C501977081E009F471
+:1035E00080E0089590910C01992321F090910D01B4
+:1035F000911109C020910E0130910F01F90132960D
+:103600009FEF40E01FC0982F9695969596959F3016
+:1036100050F5E0910E01F0910F01E90FF11D877057
+:1036200021E030E0A90102C0440F551F8A95E2F75E
+:10363000CA019181892B818308959F3F39F04F5FA3
+:103640004E3041F051915813F8CF0DC05111F7CFC2
+:10365000942FF5CF9F3F39F0F901E90FF11D97FD48
+:10366000FA9582830895089590910C01992321F091
+:1036700090910D01911109C020910E0130910F011F
+:10368000F9013296205F3F4F1FC0982F969596956F
+:1036900096959F30F0F4E0910E01F0910F01E90F43
+:1036A000F11D877021E030E0A90102C0440F551FD1
+:1036B0008A95E2F7CA0180959181892381830895D3
+:1036C0003196E217F30729F090819813F9CF108211
+:1036D000F7CF089581E090E0E0910E01F0910F01A5
+:1036E000E80FF91F1082019680319105A9F708951E
+:1036F0009091D901892B8093D9010895809590915B
+:10370000D90189238093D90108951092D901089590
+:103710009091D801892B8093D8010895809590913C
+:10372000D80189238093D80108951092D801089573
+:103730009091D701892B8093D7010895809590911E
+:10374000D70189238093D70108951092D701089556
+:103750008093C60108951092C601089580910E01CC
+:1037600090910F01FC0131969C01205F3F4F80E05A
+:10377000919191118F5FE217F307D1F70895E091CE
+:103780000E01F0910F018091D9018083E0910E012B
+:10379000F0910F0190818091D801892B8083E09175
+:1037A0000E01F0910F0190818091D701892B8083C8
+:1037B0008091C601882361F0E0910E01F0910F0124
+:1037C0009081892B80830E94AE1B81111092C601CB
+:1037D00080910E0190910F010C94ED1020E0009764
+:1037E00039F0AC0141505109842395232F5FF7CF65
+:1037F000822F08958091F101843021F11092DB0134
+:1038000020E488E190E00FB6F894A89580936000DA
+:103810000FBE2093600080E00E94DA0983B7817FA9
+:10382000846083BF83B7816083BF7894889583B7B2
+:103830008E7F83BF88E10FB6F8948093600010926A
+:1038400060000FBE0895089508950E94231C0E94F1
+:1038500032040E94241C0E94270591E0811101C0BE
+:1038600090E0892F08950E947A150E94E1100C942F
+:10387000DA0982E084BD93E095BD9AEF97BD80930D
+:103880006E0008952FB7F8948091DC019091DD01CE
+:10389000A091DE01B091DF012FBF0895CF92DF929A
+:1038A000EF92FF920F931F932FB7F8944091DC0192
+:1038B0005091DD016091DE017091DF012FBF6A013F
+:1038C0007B01EE24FF248C0120E030E0C016D106FD
+:1038D000E206F30610F4415051099A01281B390BF6
+:1038E000C9011F910F91FF90EF90DF90CF90089545
+:1038F0001F920F920FB60F9211248F939F93AF9345
+:10390000BF938091DC019091DD01A091DE01B09127
+:10391000DF010196A11DB11D8093DC019093DD01B3
+:10392000A093DE01B093DF01BF91AF919F918F9182
+:103930000F900FBE0F901F9018950E94DE0DF89407
+:103940002FEF87EA91E6215080409040E1F700C0D8
+:10395000000087E090EBDC018093FB019093FC0179
+:10396000A093FD01B093FE019CE088E10FB6F894AE
+:10397000A895809360000FBE90936000FFCFEF92F8
+:10398000FF920F931F93CF93DF93D82FCDE08C2F0F
+:103990000E94200505E010E0E82EF12CC701002E62
+:1039A00002C0959587950A94E2F780FF09C0602FC1
+:1039B0007C2F80E00E94EA06D81302C081E006C096
+:1039C0000150110958F7C15010F780E0DF91CF91F5
+:1039D0001F910F91FF90EF900895CF93C82F8CE225
+:1039E0000E94BF1C882321F08C2FCF910C94BF1C08
+:1039F00080E0CF910895CF930E94421E811102C0B2
+:103A00000E94281EC5E6C15049F00E9432048FE38F
+:103A10009CE90197F1F700C00000F5CF89E20E9410
+:103A2000ED1C811113C18AE20E94ED1C81110E94DC
+:103A3000281E85E00E94ED1C81110E949D1C0E94A1
+:103A40004D1E8093DA0187E00E94ED1C8823A9F1C6
+:103A50008BE10E94ED1C882351F08091DA0181FBFB
+:103A6000222720F991E0922790FB81F90EC08EE089
+:103A70000E94ED1C882361F08091DA0182FB2227ED
+:103A800020F991E0922790FB82F98093DA0115C02A
+:103A900080E10E94ED1C9091DA01882341F093FBB4
+:103AA000222720F981E0822780FB93F904C0892F27
+:103AB000809580FB90F99093DA018091DA010E9461
+:103AC000511E0E945F1E8093FA0180EE0E94ED1C41
+:103AD000882341F08091FA01982F909590FB80F90E
+:103AE0008093FA0189E30E94ED1C882359F08091AC
+:103AF000FA0181FB222720F991E0922790FB81F9BE
+:103B00008093FA0182EE0E94ED1C882359F0809187
+:103B1000FA0182FB222720F991E0922790FB82F99B
+:103B20008093FA0186EE0E94ED1C882359F0809163
+:103B3000FA0183FB222720F991E0922790FB83F979
+:103B40008093FA0183EE0E94ED1C882359F0809146
+:103B5000FA0184FB222720F991E0922790FB84F957
+:103B60008093FA0185E30E94ED1C882359F080912F
+:103B7000FA0185FB222720F991E0922790FB85F935
+:103B80008093FA0181E30E94ED1C882359F0809113
+:103B9000FA0186FB222720F991E0922790FB86F913
+:103BA0008093FA0181E10E94ED1C882359F08091F5
+:103BB000FA0187FB222720F991E0922790FB87F9F1
+:103BC0008093FA018091FA010E94631E8091FA01AC
+:103BD00087FB882780F980930D0187E20E94ED1C06
+:103BE000C82F8EE10E94ED1C8111C2608FE10E94FE
+:103BF000ED1C8111C46080E20E94ED1C8111C8603F
+:103C000081E20E94ED1C8111C06182E20E94ED1CE4
+:103C10008111C06283E20E94ED1C8111C06484E2C4
+:103C20000E94ED1C882311F0C06802C0CC2329F04B
+:103C30008C2F0E945A1E6C2F03C00E94561E682FA4
+:103C400070E080E090E0CF910C943A19CF91089504
+:103C50006DEE7EEF80E090E00E94942460E082E0D0
+:103C600090E00E94822460E083E090E00E94822441
+:103C700060E084E090E00E94822460E085E090E0D3
+:103C80000C94822480E090E00E947C2421E08D3E10
+:103C90009E4F09F020E0822F089582E090E00C947E
+:103CA0007424682F82E090E00C94822483E090E0FA
+:103CB0000C947424682F83E090E00C94822484E0B8
+:103CC00090E00C947424682F84E090E00C9482249B
+:103CD0008091E20180FF0BC06091130185E0689F35
+:103CE000B001112475956795759567952BC081FF77
+:103CF00009C06091130185E0689FB001112475959A
+:103D0000679520C082FF07C06091130185E0689F1E
+:103D1000B001112417C09091E3019923D1F0609173
+:103D20001201961788F72091130185E0289F9001D2
+:103D30001124929FA001939F500D112470E0CA019D
+:103D40000E9446246038710540F46115710539F010
+:103D500002C065E070E0862F08958FE7089581E046
+:103D600008958091E20180FF08C06091110170E028
+:103D7000759567957595679521C081FF06C060911F
+:103D8000110170E07595679519C082FF04C06091BC
+:103D9000110170E010C09091E3019923C1F060918E
+:103DA00010019617A0F780911101899FC00111247D
+:103DB00070E00E9446246038710528F46115710591
+:103DC00021F0862F08958FE7089581E0089561E03E
+:103DD00070E0F4CF803F21F40E94681E819504C0FA
+:103DE000813F29F40E94681E8093E6010895823F76
+:103DF00021F40E94681E819504C0833F29F40E942B
+:103E0000681E8093E5010895893F19F40E94B11E50
+:103E100005C08A3F31F40E94B11E81958093E7016D
+:103E200008958B3F21F40E94B11E819504C08C3F00
+:103E300029F40E94B11E8093E8010895843F21F483
+:103E40008091E401816017C0853F21F48091E401F5
+:103E5000826011C0863F21F48091E40184600BC030
+:103E6000873F21F48091E401886005C0883F31F4E8
+:103E70008091E40180618093E40108958D3F21F4F5
+:103E80008091E20181600BC08E3F21F48091E201BC
+:103E9000826005C08F3F29F48091E20184608093A5
+:103EA000E2010895803F39F48091E60187FF6CC0FC
+:103EB0001092E60169C0813F29F48091E60118164D
+:103EC000BCF362C09091E501823F29F497FF5CC08A
+:103ED0001092E50159C0833F19F41916CCF354C070
+:103EE000893F41F48091E70118160CF04DC0109203
+:103EF000E7014AC08A3F29F48091E70187FF44C067
+:103F0000F6CF8B3F39F48091E80187FF3DC01092D6
+:103F1000E8013AC08C3F29F48091E8011816BCF3FF
+:103F200033C0843F21F48091E4018E7F17C0853F28
+:103F300021F48091E4018D7F11C0863F21F48091AE
+:103F4000E4018B7F0BC0873F21F48091E401877FE0
+:103F500005C0883F31F48091E4018F7E8093E401B5
+:103F600013C08D3F21F48091E2018E7F0BC08E3F04
+:103F700021F48091E2018D7F05C08F3F29F480916B
+:103F8000E2018B7F8093E2018091E50181110EC0F7
+:103F90008091E60181110AC08091E701811106C07C
+:103FA0008091E801811102C01092E301089584EE2E
+:103FB00091E00E94F8100E94421C9093E1018093CE
+:103FC000E00108951F93CF93DF938091E0019091DA
+:103FD000E1010E944E1CAC019091E301992321F074
+:103FE0002091140130E006C0209115018AE0289F3D
+:103FF000900111244217530708F486C08091E5010F
+:10400000C091E601D091E7011091E801811107C04C
+:10401000C11176C0D11174C0111172C075C09F3F1B
+:1040200019F09F5F9093E301181624F40E94681E14
+:104030008093E5018091E50187FF05C00E94681E1D
+:1040400081958093E5011C1624F40E94681E8093DC
+:10405000E6018091E60187FF05C00E94681E8195F8
+:104060008093E6016091E501662339F1C091E60194
+:10407000CC2319F1772767FD7095872F972F0E9422
+:10408000572323E333E343E35FE30E94BB230E9410
+:1040900024236093E5016C2F772767FD7095872FA8
+:1040A000972F0E94572323E333E343E35FE30E9408
+:1040B000BB230E9424236093E6011D1624F40E9472
+:1040C000B11E8093E7018091E70187FF05C00E9440
+:1040D000B11E81958093E701111624F40E94B11E50
+:1040E0008093E8018091E80187FF05C00E94B11E1E
+:1040F00081958093E801DF91CF911F910C94D71F98
+:104100009F3F09F08ECF96CFDF91CF911F910895F9
+:10411000E4EEF1E085E0DF011D928A95E9F7109267
+:10412000E3011092E2010895833081F128F4813097
+:1041300059F08230D1F00895853009F449C0B8F1C2
+:10414000863009F456C0089580911501262F30E07D
+:10415000280F311D2F3F310524F4680F609315019E
+:1041600008958FEF80931501089580911401262FF3
+:1041700030E0280F311D2F3F310524F4680F609384
+:10418000140108958FEF8093140108958091130115
+:10419000262F30E0280F311D2F3F310524F4680F02
+:1041A0006093130108958FEF809313010895809118
+:1041B0001201262F30E0280F311D2F3F310524F446
+:1041C000680F6093120108958FEF80931201089594
+:1041D00080911101262F30E0280F311D2F3F31052E
+:1041E00024F4680F6093110108958FEF80931101FB
+:1041F000089580911001262F30E0280F311D2F3FA8
+:10420000310524F4680F6093100108958FEF8093B7
+:1042100010010895833011F128F4813049F0823083
+:1042200091F00895853081F120F18630C1F1089533
+:1042300080911501681720F4861B8093150108955D
+:1042400010921501089580911401681720F4861BBF
+:104250008093140108951092140108958091130120
+:10426000681720F4861B80931301089510921301A0
+:10427000089580911201681720F4861B8093120123
+:10428000089510921201089580911101681720F489
+:10429000861B809311010895109211010895809159
+:1042A0001001681720F4861B809310010895109266
+:1042B000100108950F931F938D3109F46BC008F01E
+:1042C0003FC08E3009F47FC0C0F4873009F469C064
+:1042D00068F4863009F0B1C08091DA01817F8E7F69
+:1042E0008093DA0181E08093EA01A8C0883009F464
+:1042F000A2C08B3009F49FC0A0C0863109F49BC0D6
+:1043000078F4803109F472C0813109F096C00E94BE
+:104310007A1590910D0181E0892780930D018BC062
+:10432000893109F488C08B3109F087C08091DA01A6
+:1043300081FB222720F991E0922790FB81F94CC064
+:10434000853309F470C048F4873209F46CC008F46E
+:1043500059C0893209F467C070C0833438F48A3395
+:1043600008F04EC0883309F466C067C0833409F48E
+:104370005AC0883409F061C00E947A150FEF13ED1E
+:1043800020E3015010402040E1F700C000000E94EF
+:104390009D1C51C00E94DE220E94E1100E94DA0999
+:1043A0004AC09091DA01892F8095817080FB90F945
+:1043B00029F0966098609093DA0140C0997F977FCA
+:1043C0009093DA0138C08091DA0182FB222720F92C
+:1043D00091E0922790FB82F98093DA01992359F1B9
+:1043E0008091DA0181608093DA0125C08091DA0141
+:1043F00083FB222720F991E0922790FB83F9ECCFF1
+:10440000895301C08D5141E050E060E070E08A01C5
+:104410009B0104C0000F111F221F331F8A95D2F782
+:10442000C901B80104C061E070E080E090E00E9442
+:104430003A190E947A1581E001C080E01F910F9126
+:10444000089580E0089580E00895CF93C82F80916B
+:10445000EA01813079F018F08230E9F187C0E0910B
+:104460000E01F0910F018081813169F0823209F0F3
+:104470007FC009C0E0910E01F0910F018081813170
+:1044800011F0823261F48C2F0E942122811104C02C
+:104490008C2F0E945A211DC081E090E01AC08C2F01
+:1044A0000E942322811114C0C43179F048F4CB302A
+:1044B00079F0C03109F060C082E08093EA0108C061
+:1044C000C93219F0C83321F057C01092EA0154C024
+:1044D00081E0817053C0C93289F118F5C43171F19E
+:1044E000A8F4C73009F046C08AE08093150194E132
+:1044F0009093140193E0909313018093120188E04C
+:104500008093110188E28093100134C0CE51C630EF
+:1045100088F5EC2FF0E0E65DFE4F80818093E901A5
+:1045200029C0CE34E9F020F4CB3421F56AE013C081
+:10453000C13579F0C235F1F461E00DC08091E90137
+:10454000882319F01092E90115C081E08093EA01F7
+:1045500015C061E006C08091E9010E9494200AC064
+:104560006AE08091E9010E940A2104C01092EA01E8
+:1045700080E004C081E002C080E0ABCFCF9108951D
+:10458000E1E8F0E0808188608083808181608083C1
+:104590008FB7F89493E09093890090ED9093880002
+:1045A0008FBF0895EFE6F0E08081826080830895F8
+:1045B000EFE6F0E080818D7F80830895EFE6F0E004
+:1045C000908182E08927808308951F920F920FB611
+:1045D0000F9211242F933F934F935F936F937F9389
+:1045E0008F939F93AF93BF93EF93FF938091EB01D2
+:1045F0009091EC0101969093EC018093EB01811175
+:1046000003C082E00E94DA09E091EC01E695E695AC
+:10461000F0E0EF57F94FE4918091EB018E1303C066
+:1046200080E00E94DA09FF91EF91BF91AF919F91D5
+:104630008F917F916F915F914F913F912F910F904B
+:104640000FBE0F901F90189504D06894B1118DC0C3
+:10465000089570D088F09F5790F0B92F9927B751DF
+:10466000A0F0D1F0660F771F881F991F1AF0BA9536
+:10467000C9F712C0B13081F077D0B1E0089574C0AD
+:10468000672F782F8827B85F39F0B93FCCF386952C
+:1046900077956795B395D9F73EF490958095709589
+:1046A00061957F4F8F4F9F4F0895E89409C097FB06
+:1046B0003EF490958095709561957F4F8F4F9F4FF9
+:1046C0009923A9F0F92F96E9BB279395F69587953D
+:1046D00077956795B795F111F8CFFAF4BB0F11F400
+:1046E00060FF1BC06F5F7F4F8F4F9F4F16C08823A7
+:1046F00011F096E911C0772321F09EE8872F762FDD
+:1047000005C0662371F096E8862F70E060E02AF01D
+:104710009A95660F771F881FDAF7880F9695879509
+:1047200097F9089557FD9058440F551F59F05F3F72
+:1047300071F04795880F97FB991F61F09F3F79F0C3
+:1047400087950895121613061406551FF2CF469545
+:10475000F1DF08C0161617061806991FF1CF8695C7
+:104760007105610508940895E894BB2766277727AB
+:10477000CB0197F908950BD078C069D028F06ED09E
+:1047800018F0952309F05AC05FC01124EECFCADF9C
+:10479000A0F3959FD1F3950F50E0551F629FF00154
+:1047A000729FBB27F00DB11D639FAA27F00DB11DAD
+:1047B000AA1F649F6627B00DA11D661F829F222736
+:1047C000B00DA11D621F739FB00DA11D621F839FBD
+:1047D000A00D611D221F749F3327A00D611D231F93
+:1047E000849F600D211D822F762F6A2F11249F57E1
+:1047F00050408AF0E1F088234AF0EE0FFF1FBB1F04
+:10480000661F771F881F91505040A9F79E3F5105A2
+:1048100070F014C0AACF5F3FECF3983EDCF38695AE
+:1048200077956795B795F795E7959F5FC1F7FE2B4D
+:10483000880F911D9695879597F9089597F99F6729
+:1048400080E870E060E008959FEF80EC0895002418
+:104850000A941616170618060906089500240A94E5
+:1048600012161306140605060895092E0394000C6B
+:1048700011F4882352F0BB0F40F4BF2B11F460FFFA
+:1048800004C06F5F7F4F8F4F9F4F089597FB072E98
+:1048900016F4009407D077FD09D00E94602407FC2D
+:1048A00005D03EF4909581959F4F08957095619540
+:1048B0007F4F0895EE0FFF1F0590F491E02D0994AE
+:1048C000AA1BBB1B51E107C0AA1FBB1FA617B70736
+:1048D00010F0A61BB70B881F991F5A95A9F7809552
+:1048E0009095BC01CD010895F999FECF92BD81BD8F
+:1048F000F89A992780B50895A8E1B0E042E050E029
+:104900000C949C24262FF999FECF92BD81BDF89A74
+:10491000019700B4021639F01FBA20BD0FB6F89403
+:10492000FA9AF99A0FBE08950196272F0E948324C0
+:104930000C948224DC01CB01FC01F999FECF06C066
+:10494000F2BDE1BDF89A319600B40D92415050404D
+:08495000B8F70895F894FFCFB9
+:104958000220DC096A0A470A130ADF090101C701B4
+:1049680028080A03140A3F4D36394206F505BF05E3
+:104978008605190532054B05640501020304050681
+:044988000708090013
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keyboard-layout.png b/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keyboard-layout.png Binary files differnew file mode 100644 index 000000000..57df5a1f9 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keyboard-layout.png diff --git a/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keymap.c b/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keymap.c new file mode 100644 index 000000000..3b74d266f --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/keymap.c @@ -0,0 +1,264 @@ +#include "ergodox_ez.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_SYMB 2 // numbers and symbols +#define NUMB_SYMB_MAC 3 // numbers and symbols mac +#define FUNCTION 4 // 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 | _ | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Func | Lclk | Rclk | TAB |,/CTRL| | LEFT | Esc | ` | # | Num | + * `----------------------------------' `----------------------------------' + * ,-------------. ,--------------. + * | & | | | |Insert| / | + * ,------|------|------| |------+-------+------. + * | | | + | | Del | | | + * | Shift| ./Spc|------| |------| Enter |Space| + * | | |-/Alt | | Bspc | | | + * `--------------------' `---------------------' + */ +[BASE] = KEYMAP( + // left hand + NO_BSLS, NO_LBRC, NO_RBRC, NO_LCBR, NO_RCBR, NO_ASTR, TG(1), + NO_QUES, KC_Q, KC_W, KC_F, KC_P, KC_G, NO_QUO2, + 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_PLUS, + KC_FN1,CTL_T(KC_DOT),ALT_T(NO_MINS), + // 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_UNDS, + KC_LEFT, KC_ESC, KC_FN7, KC_HASH, MO(2), + KC_INSERT, NO_SLSH, + KC_DELT, + KC_BSPC,KC_ENT,KC_SPC + ), +/* Keymap 1: Basic layer MACS (Same as pc, except for cmd/ctrl, which are swapped) + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | \ | | | { | } | | | | | $ | | | < | > | @ | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | ' |------+------+------+------+------+--------| + * | | | | | | |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Func | | | |,/Ctrl| | | | ` | | Num | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | |./Cmd |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[BASE_MAC] = KEYMAP( + NO_BSLS_MAC, 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, CTL_T(KC_COMMA), + KC_TRNS, NO_PIPE_MAC, + KC_TRNS, + KC_TRNS,GUI_T(KC_DOT) , KC_TRNS, + // 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, KC_TRNS, + KC_TRNS, KC_TRNS, NO_GRV_MAC, KC_TRNS, MO(3), + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), + +/* Keymap 2: Number ++ layer pc + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | % | | | | | | ~ | ´ | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | 3 | 2 | 1 | 0 | |------| |------| | 5 | 6 | 7 | 8 | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | 4 | | | | | | 9 | END | PGDWN| PGUP | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | HOME | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[NUMB_SYMB] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_PERC, KC_TRNS , KC_TRNS, + KC_TRNS, KC_3 , KC_2 , KC_1 , KC_0 , KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_4, KC_TRNS, 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_FN2, KC_FN6 , KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_5, KC_6, KC_7, KC_8, KC_TRNS, + KC_TRNS, KC_HOME, KC_9, 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 +), + +/* Keymap 3: Number ++ layer mac. Some keys have to be repeated from the pc symbol layer, since transient keys inherit from the layer we jump from, not the layer above. + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | % | | | | | | ~ | ´ | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | 3 | 2 | 1 | 0 | |------| |------| | 5 | 6 | 7 | 8 | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | 4 | | | | | | 9 | END | PGDWN| PGUP | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | HOME | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[NUMB_SYMB_MAC] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_PERC, KC_TRNS , KC_TRNS, + KC_TRNS, KC_3 , KC_2 , KC_1 , KC_0 , KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_4, KC_TRNS, 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_FN2, KC_FN10, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_5, KC_6, KC_7, KC_8, KC_TRNS, + KC_TRNS, KC_HOME, KC_9, 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 +), + +/* Keymap 4: Function layer mac + pc + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | F3 | F2 | F1 | | |------| |------| | F5 | F6 | F7 | F8 | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | F4 | | | | | | F9 | F10 | F11 | F12 | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[FUNCTION] = KEYMAP( + KC_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, KC_F3 , KC_F2 , KC_F1 , KC_TRNS , KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F4, KC_TRNS, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_F5, KC_F6, KC_F7, KC_F8, KC_TRNS, + KC_TRNS, NO_TILD, 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 +) +}; + +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_ez/keymaps/colemak_osx_pc_no/readme.md b/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/readme.md new file mode 100644 index 000000000..48f095cae --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/colemak_osx_pc_no/readme.md @@ -0,0 +1,23 @@ +# 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 it 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. +- Navigation is prioritized, arrows are right below the home row. + +## PC/Mac toggle +The default setup is for Norwegian keyboard setting(not colemak variants) on a PC(Windows or Linux). 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 +Numbers and function buttons are on their own layers. The easiest way to switch layers(at least with my hands) in this setup, is to push your hand right below the little finger, on the layer switches. You will then have all your fingers free to type numbers or press function buttons. + +## Shift-key +Tap for the next character to be shifted, hold down for regular shift functionality + +## Layout + +![keyboard-layout](keyboard-layout.png) diff --git a/keyboards/ergodox_ez/keymaps/csharp_dev/compiled.hex b/keyboards/ergodox_ez/keymaps/csharp_dev/compiled.hex new file mode 100644 index 000000000..3f42f6272 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/csharp_dev/compiled.hex @@ -0,0 +1,1159 @@ +:100000000C94F5020C9439030C9439030C943903C5
+:100010000C9439030C9439030C9439030C94390370
+:100020000C9439030C9439030C94B90E0C948B0F77
+:100030000C9439030C9439030C9439030C94390350
+:100040000C9439030C9445220C9439030C94390315
+:100050000C9439030C94271D0C9439030C94390328
+:100060000C9439030C9439030C9439030C94390320
+:100070000C9439030C9439030C9439030C94390310
+:100080000C9439030C9439030C9439030C94390300
+:100090000C9439030C9439030C9439030C943903F0
+:1000A0000C9439030C9439030C943903B505BB0542
+:1000B000C105C705CD05D205D705E105E605DC0577
+:1000C000EB05F005F505FA05FF050406F80F1A1013
+:1000D00008111A1008115F1082100811D710EA10C9
+:1000E000B913B913E813E8131E143E146F156F15F6
+:1000F00049146F15F914F91460156F156F1569150A
+:100100000615061506150615061506150615061517
+:100110000615061506150615061506150615061507
+:10012000181525152C1533153D1501E1012602265C
+:100130000127022702E101330233000111021101FC
+:10014000080208011A021A012C022C000138023898
+:100150000138023801E101170217011202120107EA
+:1001600002070112021202E1012C022C0001050219
+:1001700005011502150108020801040204010E021E
+:100180000E01330233000111021101180218010F90
+:10019000020F010F020F00011502150108020801EC
+:1001A000170217011802180115021501110211009A
+:1001B00001090209010F020F0112021201040204D7
+:1001C00001170217012C022C00010C020C01110274
+:1001D0001101170217012C022C0001050205011262
+:1001E000021201120212010F020F012C022C000157
+:1001F0001602160117021701150215010C020C0157
+:10020000110211010A020A012C022C000119021923
+:100210000104020401150215012C022C000119022F
+:100220001901120212010C020C01070207012C0233
+:100230002C00010602060112021201110211011620
+:10024000021601170217012C022C000116021601DA
+:100250001702170104020401170217010C020C0116
+:10026000060206012C022C000113021301150215CF
+:10027000010C020C011902190104020401170217F2
+:1002800001080208012C022C0001130213011802BC
+:100290001801050205010F020F010C020C010602F4
+:1002A00006012C022C000000F0A1260227022F02DA
+:1002B00030022B6100001E00140004001D64360291
+:1002C00019011F001A0016001B0037022C622000C3
+:1002D0000800070006003102286821001500090007
+:1002E000190024020601220017000A000500000080
+:1002F000374134022A0000003800000036001601A1
+:100300004C000000330000004A0023001C000B00DA
+:10031000110000004D41240018000D0010002E00B7
+:10032000520025000C000E0034002E022868260022
+:1003300012000F001E022D002C62270013002D0258
+:100340003802250251002F0030001C011D0101530D
+:10035000000029002B0001000100010000003A000C
+:100360000A300B300100E30001003B000C300D307F
+:100370000100E20001003C0010300F300E3001009F
+:1003800001003D00113012301330010001003E0029
+:100390001430153016300000010035000100000057
+:1003A000310000001B01B200010000003502000016
+:1003B00001003F00173018301930000001004000E4
+:1003C0000100010001004B0001004100010001009B
+:1003D00001004E004F0042000100010001004900F1
+:1003E00050004300010001000100460001004400EC
+:1003F00045000100010001000000160345007200E5
+:1004000067006F0044006F007800200045005A002C
+:10041000000016034500720067006F0044006F0083
+:100420007800200045005A00000004030904090276
+:100430006D00040100A0FA0904000001030101009D
+:100440000921110100012240000705810308000A6B
+:100450000904010001030102000921110100012228
+:100460004D000705820308000A0904020001030089
+:10047000000009211101000122360007058303084D
+:10048000000A090403000103000000092111010012
+:100490000122390007058403100001120110010038
+:1004A000000008EDFE07130100010200010501092B
+:1004B00006A101050719E029E71500250195087532
+:1004C000018102050819012905950575019102951B
+:1004D000017503910105071900297715002501957C
+:1004E0007875018102C005010980A101850216010C
+:1004F0000026B7001A01002AB70075109501810087
+:10050000C0050C0901A1018503160100269C021AF1
+:1005100001002A9C02751095018100C005010902A5
+:10052000A1010901A10005091901290515002501ED
+:100530009505750181029501750381010501093059
+:1005400009311581257F95027508810609381581C5
+:10055000257F950175088106050C0A38021581254D
+:100560007F950175088106C0C005010906A1010536
+:100570000719E029E7150025019508750181029505
+:100580000175088101050819012905950575019175
+:10059000029501750391010507190029FF15002631
+:1005A000FF00950675088100C000000000000000F3
+:1005B00000000000010204060A0F17202C3A4A5DD1
+:1005C00071879DB3C7DAE9F5FCFFFCF5E9DAC7B33B
+:1005D0009D87715D4A3A2C20170F0A06040201001C
+:1005E0000000000000000000000011241FBECFEF3B
+:1005F000DAE0DEBFCDBF04B603FE24C08091FD016A
+:100600009091FE01A091FF01B09100028730904BC4
+:10061000A740B04BB9F41092FD011092FE01109268
+:10062000FF011092000214BE84B7877F84BF88E167
+:100630000FB6F89480936000109260000FBEE0E067
+:10064000FFE3099511E0A0E0B1E0E8E1F8E402C0C1
+:1006500005900D92A433B107D9F711E0A4E3B1E0FE
+:1006600001C01D92AD3FB107E1F70E94010C0C944F
+:100670000A240C9400001092B9008AE08093B8001C
+:10068000089594EA9093BC009091BC0097FFFCCF32
+:100690009091B900987F983021F0903111F081E06D
+:1006A00008958093BB0084E88093BC008091BC00D7
+:1006B00087FFFCCF8091B900887F883111F08034AA
+:1006C00071F780E0089584E98093BC008091BC00BC
+:1006D00084FDFCCF08958093BB0084E88093BC0028
+:1006E0008091BC0087FFFCCF9091B900987F81E09A
+:1006F000983209F480E0089584E88093BC008091EA
+:10070000BC0087FFFCCF8091BB00089580B38C7044
+:1007100080BB81B3836F81BB0895809101018111FA
+:1007200015C080E40E9441038093010181110CC037
+:1007300082E10E946B0380930101811105C08FEF5C
+:100740000E946B03809301010E94630384B1807F48
+:1007500084B985B1807F85B98AB1837F8AB98BB12D
+:10076000837F8BB93E98469808950E9457058093E1
+:1007700001010E948D030E948603A5E3B1E0E3E43A
+:10078000F1E08EE08E0F11921D928E13FCCF0C942F
+:1007900041050E945705809301010E948D030E942C
+:1007A0008603A5E3B1E0E3E4F1E08EE08E0F119261
+:1007B0001D928E13FCCF0895BF92CF92DF92EF92DD
+:1007C000FF920F931F93CF93DF93809101018823B2
+:1007D00079F0809134018F5F80933401811108C0DA
+:1007E0000E94570580930101811102C00E94E90413
+:1007F00005E311E0C0E0D0E0DD24D39482E0C82E10
+:10080000EE24E394F12CC730D10500F5809101016D
+:10081000811164C080E40E94410380930101811131
+:1008200012C082E10E946B038093010181110BC011
+:10083000C7010C2E01C0880F0A94EAF780950E9428
+:100840006B03809301010E94630348C0CA30A1F08A
+:1008500028F4C83059F0C93061F005C0CC3089F0B7
+:1008600070F0CD3089F0209A289810C0219A2998EC
+:100870000DC0229A2A980AC0239A2B9807C0529A30
+:1008800001C0539A5B9802C03E9A469890EA9A95A6
+:10089000F1F79FB1799902C082E001C080E09170C8
+:1008A0009D25982B7C9902C084E001C080E0892BB3
+:1008B0007D9902C038E001C030E0832B7E9902C0F0
+:1008C00020E101C020E0822B9FB19095991F9927CC
+:1008D000991F9295990F907E892B0FC080910101ED
+:1008E000811149C080E40E94410380930101882363
+:1008F00079F1B12C0E9463038B2DF8019081981738
+:1009000019F08083C09200010E948D0321960F5F31
+:100910001F4FCE30D10509F076CF8091000188239A
+:1009200061F1815080930001882339F08FE99FE0C5
+:100930000197F1F700C0000020C0A3E4B1E0E5E3B7
+:10094000F1E0CF01825F91919D938E13FCCF15C092
+:1009500083E10E946B03809301018111CACF81E47E
+:100960000E944103809301018111C3CF0E947C0347
+:10097000B82EB094BFCF80E0C0CF0E94E70481E0E2
+:10098000DF91CF911F910F91FF90EF90DF90CF906B
+:10099000BF900895E82FF0E0ED5BFE4F8081089551
+:1009A00008950F931F93CF93DF93C3E4D1E010E03A
+:1009B0000C2F025F899190E00E944E1C180F0C13BF
+:1009C000F9CF812FDF91CF911F910F9108950C9452
+:1009D0000D0656985E9825982D9826982E9827985B
+:1009E0002F988FEF90E090938900809388009093E8
+:1009F0008B0080938A0090938D0080938C00259AC1
+:100A00002D9A2FEF80E792E0215080409040E1F74F
+:100A100000C00000269A2E9A2FEF80E792E0215026
+:100A200080409040E1F700C00000279A2F9A2FEFF6
+:100A300080E792E0215080409040E1F700C0000044
+:100A400025982D982FEF80E792E02150804090402C
+:100A5000E1F700C0000026982E982FEF80E792E083
+:100A6000215080409040E1F700C0000027982F9867
+:100A700056985E9825982D9826982E9827982F9806
+:100A8000089589EA8093800089E08093810024980A
+:100A90002C983F988AB18F748AB96E98479A8BB117
+:100AA000806B8BB9769A0E94E9040C940C0680E264
+:100AB000809301018091510181110EC00E943B037E
+:100AC00081E0809351012FEF83ED90E3215080402E
+:100AD0009040E1F700C0000080E40E944103809351
+:100AE000010181112EC00E946B03809301018111CD
+:100AF00028C00E946B0380930101811122C08FE303
+:100B00000E946B038093010181111BC00E9463034B
+:100B100080E40E94410380930101811112C08CE0A6
+:100B20000E946B038093010181110BC00E946B0333
+:100B300080930101811105C08FE30E946B038093B4
+:100B400001010E946303809101010895462F50E046
+:100B5000FA013A97E031F10508F05BC0EA5AFF4F1D
+:100B6000DC0112968C910C94BA23882309F451C0AD
+:100B700089E892E00895882309F44BC088E692E062
+:100B80000895882309F445C08BE492E008958823F2
+:100B900009F43FC082E392E008958823D1F18DE10A
+:100BA00092E008958823A9F18CE092E008958823CB
+:100BB00081F18FEE91E00895882359F18AED91E05B
+:100BC0000895882331F189EC91E00895882309F193
+:100BD00080EB91E008958823E1F087E991E00895A2
+:100BE0008823B9F086E891E00895882391F08DE696
+:100BF00091E00895882369F08CE491E008958823BA
+:100C000041F08BE391E00895882319F08AE291E0A6
+:100C1000089580E090E0089508956091BE0170917C
+:100C2000BF018091C0019091C1010E945A1C569849
+:100C30005E9825982D9826982E9827982F98813081
+:100C400019F0823021F00895259A2D9A0895269A58
+:100C50002E9A089581E0089581E008950C942C0661
+:100C60000895282F882339F090E02A3010F44D960B
+:100C700008950697089587E290E00895AF92BF9295
+:100C8000DF92EF92FF920F931F93CF93DF938C012C
+:100C9000FC01C081D181CE010E94D31ABE010E9405
+:100CA000AE09EC01B8010E942E06882309F4C9C1DF
+:100CB000F8018281882309F4BEC080915E01811110
+:100CC0001FC0C431F0E7DF0709F0B5C10E9430064C
+:100CD00081E080935E010E94F11C90935D018093FE
+:100CE0005C0110925501109257011092560110921A
+:100CF00059011092580110925B0110925A01A1C142
+:100D000080915C0190915D010E94FD1C883C9105E1
+:100D100070F480915501E82FF0E0EE0FFF1FEA5AC2
+:100D2000FE4FD183C0838F5F809355018AC1C1304C
+:100D300020E8D20708F451C0F8018281882309F421
+:100D40007EC05E01E894B7F880915401813079F05B
+:100D500050F08230C1F482EE0E945D1287E50E945D
+:100D60005D1287E50EC082EE0E945D120CC080EE1F
+:100D70000E945D1281EE0E945D1288E10E945D1268
+:100D800088E10E9425138CE0E82EF12CC5010E2C81
+:100D900002C0969587950A94E2F78F700E943106FB
+:100DA000D82E0E945D128D2D0E942513F4E0EF1ABB
+:100DB000F1082CEFE2162FEFF20641F78091540173
+:100DC000813029F010F0823041F482EE04C080EED0
+:100DD0000E94251381EE0E942513C43180E7D807B5
+:100DE00068F4C23090E7D90708F046C0C115E0E7C3
+:100DF000DE0771F0C130D047A1F10CC1C33320E749
+:100E0000D20709F4D8C0C433D04709F4EBC002C1FB
+:100E1000F8018281882309F402C10E94DA15FFEFEC
+:100E200024E38CE0F15020408040E1F700C0000056
+:100E30000E944C1D06C1C13080E8D80770F2C43151
+:100E400020E7D20708F0B3C0C23080E7D807A0F48B
+:100E5000C11590E7D90709F4E2C0C130D04709F0C5
+:100E6000D9C0F8018281882309F4D9C08091DB01BF
+:100E700081608093DB01E5C0F8018281882309F459
+:100E8000CEC00E94A61D811102C00E948C1D0E942E
+:100E9000B91D90E09093EF018093EE01C230F0E72E
+:100EA000DF0721F48091EE0181607AC0C33020E732
+:100EB000D20721F48091EE01826072C0C43080E7D5
+:100EC000D80721F48091EE0184606AC0C53090E7B4
+:100ED000D90719F48091EE0127C0C630E0E7DE079C
+:100EE00021F48091EE0180615BC0C730F0E7DF073D
+:100EF00021F48091EE01806253C0C83020E7D20710
+:100F000021F48091EE0180644BC0C93080E7D8079E
+:100F100021F48091EE01806843C0CA3090E7D90780
+:100F200029F48091EE01846088603AC0CB30E0E71C
+:100F3000DE0721F48091EE018E7F32C0CC30F0E7E5
+:100F4000DF0721F48091EE018D7F2AC0CD3020E7AC
+:100F5000D20721F48091EE018B7F22C0CE3080E752
+:100F6000D80719F48091EE011AC08091EE01CF30BC
+:100F700090E7D90711F48F7E13C0C031E0E7DE0798
+:100F800011F48F7D0DC0C131F0E7DF0711F48F7BC5
+:100F900007C0C231D04711F48F7702C08B7F877FA3
+:100FA0008093EE018091EE010E94BD1D4AC0C333C3
+:100FB000F0E7DF07A1F4F8018281882321F0109285
+:100FC000520182E016C080915201811106C086E272
+:100FD0000E945D1286E20E94251382E018C0C4338D
+:100FE000D047C1F4F8018281882331F01092530177
+:100FF00080E20E94741325C080915301811106C0C4
+:1010000087E20E945D1287E20E94251380E20E941F
+:101010007B1317C081E08093520180935301C80174
+:10102000DF91CF911F910F91FF90EF90DF90BF90D4
+:10103000AF900C942A06C130F0E8DF0708F081CEAB
+:10104000CCCE80E0DF91CF911F910F91FF90EF9078
+:10105000DF90BF90AF90089526E0729FF0011124B9
+:1010600044E5849FE00DF11D1124E60FF11DEE0F04
+:10107000FF1FE655FD4F859194910E94C00981158F
+:1010800060E49607B0F5811570E3970708F0DEC0BD
+:10109000803E9105D8F4803C910508F06CC0883AF8
+:1010A000910578F4853A910508F06BC0813091057F
+:1010B00009F452C108F40FC18430910508F04CC105
+:1010C0000AC18B3B910508F467C005C18F3F9105AC
+:1010D00009F048F4803F910508F0ADC0883E9105C5
+:1010E00008F43AC1F8C0811520E2920708F0A5C0C3
+:1010F0000895811543E5940790F4811562E59607FC
+:1011000008F0C8C0811571E5970708F0BEC08115C9
+:1011100020E5920708F09DC09F70906A08958115A0
+:1011200045E59407D8F4811564E5960708F0C8C032
+:10113000482F4695469570E2479FA0011124837081
+:10114000992721E030E0B90102C0660F771F8A9528
+:10115000E2F7CB01842B952B9A680895811576E5EB
+:10116000970708F4B2C09C0130562115304108F0B1
+:10117000B2C09F70AEC0FC01EE0FFF1FEA5DFE4FD4
+:1011800062C0853A910509F4A9C0863A910509F033
+:10119000A8C082E890E40895883A910509F4A4C0B3
+:1011A000893A910509F4A3C08A3A910509F4A2C0CD
+:1011B0008B3A910509F4A1C08C3A910509F4A0C0BD
+:1011C0008D3A910509F49FC0803B910509F49EC0BA
+:1011D0008E3A910509F49DC08F3A910509F49CC09F
+:1011E000813B910509F49BC0823B910509F49AC0AB
+:1011F000833B910509F499C0843B910509F498C09B
+:10120000853B910509F497C0863B910509F496C08A
+:10121000873B910509F495C0883B910509F494C07A
+:10122000893B910509F493C08A3B910509F492C06A
+:1012300080E094E4089590650895FC01FF70EE0F3E
+:10124000FF1FEA55FD4F8591949108959927906C61
+:101250000895482F437021E030E002C0220F331F71
+:101260004A95E2F73C68AC0164E0569547956A956B
+:10127000E1F74370342B8F708695869560E2869FE8
+:10128000C0011124822B932B0895982F8827816FFA
+:10129000906A0895482F4695469570E2479FA001B1
+:1012A00011248370992721E030E0B90102C0660F54
+:1012B000771F8A95E2F7CB01842B952B9C680895C4
+:1012C000982F8827846F906A08958F719927982F97
+:1012D00088279062089580E090E0089581E890E486
+:1012E000089583E890E4089582EE94E4089589EEE9
+:1012F00094E408958AEE94E4089585EB94E40895C7
+:1013000086EB94E4089587EB94E408958CEC94E4E0
+:1013100008958DEC94E4089583E895E408958AE8AF
+:1013200095E4089582E995E4089584E995E40895A3
+:1013300081E296E4089583E296E4089584E296E4D7
+:10134000089585E296E4089586E296E4089587E29A
+:1013500096E408958AE296E40895089596E0799FC8
+:10136000F001112494E5899FE00DF11D1124E60F91
+:10137000F11DEE0FFF1FE655FD4F859194910895E5
+:101380008238910549F1B0F48133910509F458C0D0
+:1013900048F48932910509F44EC08A32910509F466
+:1013A00054C008958533910509F440C089339105EF
+:1013B00099F00895833E910529F138F4803E910516
+:1013C00091F0823E9105A1F00895863E9105F9F0D5
+:1013D000873E910531F108952091EE0120FD3AC03C
+:1013E00021FD38C008958091EE0180FD35C032C0E6
+:1013F0008091EE0182FF32C08091EE0184FD30C009
+:1014000083EE39C08091EE0182FD28C0F5CF809136
+:10141000EE0183FF27C08091EE0184FD21C087EE9D
+:101420002AC08091EE0183FD1DC0F5CF8091EE01B1
+:1014300085FD1AC01BC08091EE0185FD17C014C048
+:101440008091EE0186FD14C015C08091EE0186FDED
+:1014500011C00EC080EE0FC089E30DC082EE0BC03C
+:1014600080E009C086EE07C089E205C085E303C0BD
+:101470008AE201C081E390E0089508950C943D0A4A
+:1014800080916F010895CF93DF9300D01F92CDB765
+:10149000DEB79C018091F401843019F593E09983C3
+:1014A0003B832A839093E9008FEF9091E80081506D
+:1014B00095FD06C095ED9A95F1F700008111F5CFE5
+:1014C0008091E80085FF0DC040E050E063E070E0EF
+:1014D000CE0101960E94A90C8091E8008E7780933E
+:1014E000E8000F900F900F90DF91CF910895CF9368
+:1014F000DF9300D01F92CDB7DEB72091F4012430E6
+:1015000021F522E029839B838A8383E08093E9008D
+:101510008FEF9091E800815095FD06C095ED9A956A
+:10152000F1F700008111F5CF8091E80085FF0DC033
+:1015300040E050E063E070E0CE0101960E94A90C0B
+:101540008091E8008E778093E8000F900F900F90C5
+:10155000DF91CF9108952091F4012430F1F422E03D
+:101560002093E9002FEF3091E800215035FD06C0AF
+:1015700035ED3A95F1F700002111F5CF2091E80003
+:1015800025FF0BC040E050E065E070E00E94A90C30
+:101590008091E8008E778093E8000895CF93DF93E1
+:1015A000EC019091F401943009F046C080910C0157
+:1015B0008823D9F080910D018823B9F09093E90038
+:1015C0008FEF9091E800815095FD06C095E19A95C6
+:1015D000F1F700008111F5CF8091E80085FF2CC064
+:1015E00040E050E060E170E017C081E08093E900E6
+:1015F0008FEF9091E800815095FD06C095ED9A958A
+:10160000F1F700008111F5CF8091E80085FF14C04B
+:1016100040E050E068E070E0CE010E94A90C8091AB
+:10162000E8008E778093E80080E1FE01AFE5B1E04D
+:1016300001900D928A95E1F7DF91CF910895809105
+:10164000F301811109C00E943E0E0E949B0E809101
+:10165000E20084608093E20008951092F3010895FF
+:1016600008950C9432220E94E21C0E9438220E94AB
+:1016700041110C943E0A42E061EC81E00E94B80DF9
+:1016800042E061EC82E00E94B80D42E061EC83E050
+:101690000E94B80D42E161EC84E00C94B80D809199
+:1016A000F601833009F455C030F4813071F0823096
+:1016B00009F48EC008958A3009F47AC08B3009F499
+:1016C00060C0893009F09CC020C08091F501813A4A
+:1016D00009F096C08091E800877F8093E8008091B0
+:1016E000F9019091FA01892B21F460E18FE591E0F5
+:1016F00003C060E080E090E070E00E94F40C809114
+:10170000E8008B778093E80008958091F50181329D
+:1017100009F076C08091F9019091FA01009719F0D3
+:10172000039709F06DC08091E800877F8093E800FF
+:101730008091E80082FD05C08091F4018111F8CF0D
+:101740005FC08091F10080936F018091E8008B77FA
+:1017500053C08091F501813A09F052C08091F9019E
+:101760009091FA01892B09F04BC08091E800877FA6
+:101770008093E8008091E80080FFFCCF80910C010D
+:1017800036C08091F5018132D9F58091F9019091AF
+:10179000FA01892BA9F58091E800877F8093E80002
+:1017A0000E94ED0D8091F70180930C010C94DA15E5
+:1017B0008091F501813221F58091E800877F809347
+:1017C000E8000E94ED0D8091F8018093700108956A
+:1017D0008091F501813AA1F48091E800877F8093A0
+:1017E000E8008091E80080FFFCCF80917001809339
+:1017F000F1008091E8008E778093E8000C94ED0D65
+:10180000089584B7877F84BF88E10FB6F8948093EA
+:101810006000109260000FBE80E88093610010921B
+:1018200061000E9490110E943E0E0E949B0E8091CA
+:10183000E20084608093E20078940E9421110E946B
+:10184000921182E091E00E943C110E94202280913E
+:10185000F401853069F40E94AA1C8091F20188236A
+:10186000B1F30E94D41C882391F30E94930CEFCF14
+:101870000E949811ECCF292F332723303105C9F06E
+:1018800064F42130310581F02230310509F043C084
+:101890008DE690E02EE234E042C021323105F1F0D5
+:1018A0002232310541F137C082E190E02BE934E08A
+:1018B00036C099278130910541F08230910541F081
+:1018C000892B49F5EAE2F4E005C0E2E1F4E002C068
+:1018D000EAEFF3E0849190E09F0121C06430D8F4F6
+:1018E000E62FF0E0EE0FFF1FEE5DFE4F208131810D
+:1018F00089E090E014C0643070F470E0FB01EE0FFA
+:10190000FF1FE65EFE4F20813181FB01EA5EFE4F44
+:10191000808190E004C080E090E020E030E0FA01B7
+:1019200031832083089580E189BD82E189BD09B4B6
+:1019300000FEFDCF8091D8008F7D8093D8008091EC
+:10194000E00082608093E0008091E00081FDFCCFA8
+:101950000895CF92DF92EF92FF920F931F93CF9350
+:10196000DF93EC018B016A010E940C0E811133C0E0
+:10197000C114D10439F0F60180819181081B190B43
+:10198000C80FD91FE12CF12C0115110519F1809117
+:10199000E80085FD16C08091E8008E778093E8000E
+:1019A000C114D10449F0F60180819181E80EF91E3D
+:1019B000F182E08285E00FC00E940C0E882321F3A3
+:1019C0000AC089918093F10001501109FFEFEF1ACD
+:1019D000FF0ADACF80E0DF91CF911F910F91FF9046
+:1019E000EF90DF90CF9008952091FB013091FC01A2
+:1019F0002617370748F06115710539F42091E80082
+:101A00002E772093E80001C0B90140E0611571050F
+:101A1000A9F12091F401222309F443C0253009F4EF
+:101A200042C02091E80023FD40C02091E80022FD43
+:101A300032C02091E80020FFE9CF4091F3002091CF
+:101A4000F20030E0342BFC01CF016115710559F033
+:101A50002830310540F481918093F1006150710983
+:101A60002F5F3F4FF1CF41E02830310509F040E0D2
+:101A70002091E8002E772093E800C8CF4111C9CF0C
+:101A80000AC08091F401882361F0853061F0809173
+:101A9000E80083FD0AC08091E80082FFF2CF80E079
+:101AA000089582E0089583E0089581E008952091EB
+:101AB000FB013091FC012617370748F061157105CD
+:101AC00039F42091E8002E772093E80001C0B90195
+:101AD000FC0120E06115710591F18091F4018823EA
+:101AE00009F440C0853009F43FC08091E80083FDCF
+:101AF0003DC08091E80082FD2FC08091E80080FF0A
+:101B0000E9CF2091F3008091F20090E0922B6115D3
+:101B1000710559F08830910540F424912093F1002B
+:101B20003196615071090196F2CF21E0089709F0D2
+:101B300020E08091E8008E778093E800CBCF2111E0
+:101B4000CCCF0AC08091F401882361F0853061F028
+:101B50008091E80083FD0AC08091E80082FFF2CF07
+:101B600080E0089582E0089583E0089581E008957B
+:101B7000982F973058F59093E900981739F07091A5
+:101B8000EC002091ED005091F00003C0242F762F3F
+:101B900050E021FF19C03091EB003E7F3093EB0005
+:101BA0003091ED003D7F3093ED003091EB003160DE
+:101BB0003093EB007093EC002093ED005093F00015
+:101BC0002091EE0027FF07C09F5FD3CF8F708093D7
+:101BD000E90081E0089580E008958091F50187FF94
+:101BE00011C08091E80082FD05C08091F40181114F
+:101BF000F8CF11C08091E8008B770BC08091F40181
+:101C0000882349F08091E80080FFF8CF8091E800B8
+:101C10008E778093E80008952091E4003091E500EC
+:101C200095E64091EC00842F817040FF22C08091A6
+:101C3000E80080FD1CC08091F401882391F085307C
+:101C400091F08091EB0085FD10C04091E40050912F
+:101C5000E5004217530729F39A01915011F784E0E8
+:101C6000089582E0089583E0089581E0089580E07A
+:101C700008954091E80042FFDECF08950E94AC0E27
+:101C80000E94B40EE0EEF0E0808181608083E8ED98
+:101C9000F0E080818F77808319BCA7EDB0E08C9154
+:101CA0008E7F8C9380818F7E80831092F3010895C4
+:101CB0000F931F93CF93DF930E94AC0E0E94B40E3C
+:101CC000C8EDD0E088818F77888388818068888399
+:101CD00088818F7D888319BC1092F4011092F001E5
+:101CE0001092F2011092F10100EE10E0F8018081F3
+:101CF0008B7F808388818160888342E060E080E020
+:101D00000E94B80DE1EEF0E080818E7F8083E2EEEC
+:101D1000F0E0808181608083808188608083F80129
+:101D200080818E7F8083888180618883DF91CF91DD
+:101D30001F910F910895E8EDF0E080818F7E808300
+:101D4000E7EDF0E080818160808384E082BF81E004
+:101D50008093F3010C94580EE8EDF0E080818E7FC3
+:101D600080831092E20008951092DA001092E10050
+:101D700008951F920F920FB60F9211242F933F9345
+:101D80004F935F936F937F938F939F93AF93BF9383
+:101D9000EF93FF938091E10082FF0BC08091E200FE
+:101DA00082FF07C08091E1008B7F8093E1000E9459
+:101DB00020118091DA0080FF1FC08091D80080FF41
+:101DC0001BC08091DA008E7F8093DA008091D90069
+:101DD00080FF0DC080E189BD82E189BD09B400FEAC
+:101DE000FDCF81E08093F4010E941F0B05C019BC58
+:101DF0001092F4010E942D0B8091E10080FF19C028
+:101E00008091E20080FF15C08091E2008E7F809378
+:101E1000E2008091E20080618093E2008091D8002E
+:101E200080628093D80019BC85E08093F4010E9401
+:101E3000310B8091E10084FF30C08091E20084FF8B
+:101E40002CC080E189BD82E189BD09B400FEFDCFCF
+:101E50008091D8008F7D8093D8008091E1008F7EA3
+:101E60008093E1008091E2008F7E8093E200809178
+:101E7000E20081608093E2008091F001882311F0FC
+:101E800084E007C08091E30087FD02C081E001C0CB
+:101E900083E08093F4010E94330B8091E10083FF83
+:101EA00029C08091E20083FF25C08091E100877FF7
+:101EB0008093E10082E08093F4011092F001809120
+:101EC000E1008E7F8093E1008091E2008E7F80931D
+:101ED000E2008091E20080618093E20042E060E0F5
+:101EE00080E00E94B80D8091F00088608093F0003F
+:101EF0000E94300BFF91EF91BF91AF919F918F9115
+:101F00007F916F915F914F913F912F910F900FBEF5
+:101F10000F901F9018951F920F920FB60F921124D9
+:101F20002F933F934F935F936F937F938F939F93E1
+:101F3000AF93BF93CF93DF93EF93FF93C091E900EB
+:101F4000CF708091EC00D82FD17080FDD0E8109236
+:101F5000E9008091F000877F8093F00078940E94E0
+:101F6000CF0F1092E9008091F00088608093F0001C
+:101F7000CD2BCF70C093E900FF91EF91DF91CF910E
+:101F8000BF91AF919F918F917F916F915F914F9191
+:101F90003F912F910F900FBE0F901F9018951F9398
+:101FA000CF93DF93CDB7DEB7AA970FB6F894DEBF15
+:101FB0000FBECDBFE5EFF1E088E08E0F9091F1000C
+:101FC00091938E13FBCF0E944F0B8091E80083FF0B
+:101FD0001FC18091F5019091F601492F50E04A30E0
+:101FE000510508F015C1FA01EA59FF4F0C94BA23C4
+:101FF000803881F0823809F00BC18091F9018F702F
+:102000008093E9008091EB0085FB882780F910928E
+:10201000E90006C08091F1019091F2019111826076
+:102020009091E800977F9093E8008093F1001092E0
+:10203000F100C8C0282F2D7F09F0EAC0882319F0CD
+:10204000823061F0E5C08091F701813009F0E0C095
+:10205000933009F080E08093F2012BC08091F7016A
+:10206000811127C08091F9018F7009F4D1C080934C
+:10207000E9002091EB0020FF1CC0933021F48091F7
+:10208000EB00806214C09091EB0090619093EB00A4
+:1020900021E030E0A90102C0440F551F8A95E2F704
+:1020A0004093EA001092EA008091EB0088608093F0
+:1020B000EB001092E9008091E800877F86C08111D3
+:1020C000A7C01091F7011F778091E3008078812BE2
+:1020D0008093E3008091E800877F8093E8000E946E
+:1020E000ED0D8091E80080FFFCCF8091E3008068D7
+:1020F0008093E300111102C082E001C083E080936D
+:10210000F40186C08058823008F082C08091F701C7
+:102110009091F8018C3D53E0950779F583E08A832F
+:102120008AE289834FB7F894DE01139620E03EE0FF
+:1021300051E2E32FF0E050935700E49120FF03C0F9
+:10214000E295EF703F5FEF708E2F90E0EA3010F075
+:10215000C79601C0C0968D939D932F5F243149F798
+:102160004FBF8091E800877F8093E8006AE270E0CB
+:10217000CE0101960E94F40C14C0AE014F5F5F4F78
+:102180006091F9010E943B0CBC01009709F440C02A
+:102190009091E800977F9093E80089819A810E944E
+:1021A000570D8091E8008B778093E80031C080382C
+:1021B00079F58091E800877F8093E8008091F001B5
+:1021C0008093F1008091E8008E778093E8000E9470
+:1021D000ED0D1EC081111CC09091F7019230C0F42A
+:1021E0008091E800877F8093E8009093F0010E943F
+:1021F000ED0D8091F001811106C08091E30087FD13
+:1022000002C081E001C084E08093F4010E943B0B96
+:102210008091E80083FF0AC08091E800877F809367
+:10222000E8008091EB0080628093EB00AA960FB6E5
+:10223000F894DEBF0FBECDBFDF91CF911F910895FF
+:102240000895CF938091F4018823A1F0C091E90013
+:10225000CF709091EC00892F817090FD80E8C82BA1
+:102260001092E9008091E80083FD0E94CF0FCF70AB
+:10227000C093E900CF910895909376018093750102
+:102280000895E0917501F0917601309721F0019069
+:10229000F081E02D099480E00895E0917501F091BE
+:1022A0007601309721F00280F381E02D09940895A2
+:1022B000E0917501F0917601309721F00480F5816D
+:1022C000E02D0994089520917301309174018217D3
+:1022D000930771F09093740180937301E0917501FD
+:1022E000F0917601309721F00680F781E02D099476
+:1022F000089520917101309172018217930771F056
+:102300009093720180937101E0917501F0917601D3
+:10231000309721F00084F185E02D09940895089507
+:102320000C948F110E94E81C0E94B5030C946E1D42
+:102330009F92AF92BF92CF92DF92EF92FF920F9354
+:102340001F93CF93DF9300D000D000D0CDB7DEB77E
+:102350000E94DC030DE010E0AA24A394B12C902E7F
+:10236000802F0E94CA04980128583E4F6901F90144
+:10237000F080F826A1F40150110988F78FEF8983C6
+:102380008A831B820E94F11C8160782F9D838C833D
+:1023900049815A816B818D810E942F122FC09091AB
+:1023A000DB0191FF04C08E830E94D0048E8125E062
+:1023B00030E0A501022E01C0440F0A94EAF7E42E92
+:1023C0004F21C1F029839A828E2191E009F490E097
+:1023D0009B830E94F11C8160782F9D838C834981AF
+:1023E0005A816B818D810E942F12F6018081E8262F
+:1023F000E08204C021503109E0F6BDCF0E943C1FAD
+:10240000109177010E9441111817B9F00E944111F3
+:102410008093770126960FB6F894DEBF0FBECDBF2E
+:10242000DF91CF911F910F91FF90EF90DF90CF90B0
+:10243000BF90AF909F900C943E0A26960FB6F894EA
+:10244000DEBF0FBECDBFDF91CF911F910F91FF90E7
+:10245000EF90DF90CF90BF90AF909F900895CF9373
+:10246000DF93CDB7DEB72B970FB6F894DEBF0FBE64
+:10247000CDBF4F83588769877A878B87DE01119696
+:1024800086E0FD0111928A95E9F785E0FE01379615
+:1024900001900D928A95E1F749815A816B817C8187
+:1024A0008D819E810E9478182B960FB6F894DEBF1E
+:1024B0000FBECDBFDF91CF910895CF93882309F44C
+:1024C000C2C0C82F823859F40E94411181FDBBC09F
+:1024D00089E30E94521B0E941F1C89E30CC08338B1
+:1024E00079F40E94411180FDAEC083E50E94521B29
+:1024F0000E941F1C83E50E94941BCF910C941F1C0B
+:10250000843859F40E94411182FD9DC087E40E94E5
+:10251000521B0E941F1C87E4EECF8CEF8C0F813A78
+:1025200048F48C2F0E94862181118DC08C2F0E942F
+:10253000521BE3CF80E28C0F883048F4C77081E0F3
+:1025400001C0880FCA95EAF70E94D81BD6CF8BE549
+:102550008C0F833078F4C53A29F0C63A31F083E81D
+:1025600090E005C081E890E002C082E890E0CF9161
+:102570000C94631188E58C0F833108F064C0C83A6D
+:1025800039F1C93A41F1CA3A49F1CB3A51F1CC3A61
+:1025900059F1CD3A61F1C03B69F1CE3A71F1CF3AD0
+:1025A00079F1C13B81F1C23B89F1C33B91F1C43B5D
+:1025B00099F1C53BA1F1C63BA9F1C73BB1F1C83BBD
+:1025C000B9F1C93BC1F1CA3BC9F180E090E038C024
+:1025D00082EE90E035C089EE90E032C08AEE90E065
+:1025E0002FC085EB90E02CC086EB90E029C087EBF4
+:1025F00090E026C08CEC90E023C08DEC90E020C0F1
+:1026000083E891E01DC08AE891E01AC082E991E078
+:1026100017C084E991E014C081E292E011C083E226
+:1026200092E00EC084E292E00BC085E292E008C026
+:1026300086E292E005C087E292E002C08AE292E080
+:10264000CF910C947911CF910895882309F44BC050
+:10265000823859F40E94411181FF45C089E30E94EC
+:10266000521B0E941F1C89E30CC0833871F40E9426
+:10267000411180FF38C083E50E94521B0E941F1C3D
+:1026800083E50E94941B0C941F1C843859F40E940B
+:10269000411182FF28C087E40E94521B0E941F1C28
+:1026A00087E4EFCF9CEF980F913A58F390E2980FA0
+:1026B000983050F4877091E001C0990F8A95EAF73D
+:1026C000892F0E94DE1BDFCF9BE5980F933020F40B
+:1026D00080E090E00C946311885A833120F480E00C
+:1026E00090E00C9479110895882321F00E94D81B62
+:1026F0000C941F1C0895882321F00E94DE1B0C946B
+:102700001F1C08957F928F929F92AF92BF92CF929B
+:10271000DF92EF92FF920F931F93CF93DF931F925D
+:10272000CDB7DEB77C01C62E772EFC010581029560
+:102730000F70128111110E94F51B0E944B1B882300
+:1027400079F0112369F080E28C0D883048F082E046
+:102750000E94341B0E944B1B91E0D82ED92601C049
+:10276000D12CE72DE295EF70F0E0E059FF4F0C948B
+:10277000BA23872D807F072D0F70882311F00295D3
+:10278000007F112389F0002309F490C180E28C0DB1
+:10279000883020F4802F0E94D81B03C0802F0E9415
+:1027A000E81B0E941F1C82C18C2D0E942513002350
+:1027B00009F495C180E28C0D883020F4802F0E94AE
+:1027C000DE1B03C0802F0E94EE1B0E941F1C87C1CE
+:1027D000972D907F872D8F70903211F08295807F9A
+:1027E000CC2021F0F1E0CF16B1F01EC0112349F04A
+:1027F000002309F414C1013009F011C10E94081C22
+:102800006EC1002319F0013009F469C189830E9467
+:102810000B1C89810AC1112321F0023008F05FC12D
+:10282000FEC001115CC101C1112321F0002309F494
+:10283000F6C03CC1002309F4F8C03EC1872D86953F
+:102840008695837090E0009719F0019761F047C179
+:10285000112321F08C2D972D937002C080E090E021
+:102860000E9463113CC1112321F08C2D972D937090
+:1028700002C080E090E00E94791131C18C2D1123BB
+:1028800019F00E94441E02C00E94AC1E0E94311F1B
+:1028900026C1872D837009F052C0111120C18C2DE3
+:1028A000829586958770880F880F9C2D9F70892E42
+:1028B000912CA12CB12C082E04C0880C991CAA1CA8
+:1028C000BB1C0A94D2F7C4FE14C00FE010E020E055
+:1028D00030E0B901A80104C0440F551F661F771FDF
+:1028E0008A95D2F7CB01BA01609570958095909545
+:1028F00003C060E070E0CB01272D2695269523705C
+:1029000030E02230310569F02330310589F0682943
+:1029100079298A299B292130310571F00E94C0193B
+:10292000DEC0682979298A299B290E94DC19D7C031
+:102930000E94C019C501B4010E94A419D0C011237E
+:1029400019F0872D817001C08695882309F4C7C0CE
+:102950008C2D829586958770880F880F9C2D9F708F
+:10296000892E912CA12CB12C082E04C0880C991C06
+:10297000AA1CBB1C0A94D2F7C4FE14C00FE010E0DE
+:1029800020E030E0B901A80104C0440F551F661FC4
+:10299000771F8A95D2F7CB01BA0160957095809523
+:1029A000909503C060E070E0CB01272D2695269519
+:1029B0002370422F50E04230510569F043305105F9
+:1029C00089F0682979298A299B294130510571F0BC
+:1029D0000E949A1A84C0682979298A299B290E9411
+:1029E000B61A7DC00E949A1AC501B4010E947E1ACF
+:1029F00076C08C2D90E0FC01E05EF109E531F10537
+:102A000008F050C0E058FF4F0C94BA230C2D0F7003
+:102A1000872D8F71112331F00E94171A802F0E9489
+:102A200074135DC00E94381A802F0E947B1357C018
+:102A3000112339F0011153C0872D8F710E945D1A47
+:102A40004EC0023008F04BC0F7CF112339F0872D6C
+:102A50008F710E94171A43C01123C9F3872D8F71FC
+:102A60000E94381A3CC0112329F0872D8F710E94D3
+:102A7000021A35C00E94F81932C0112351F0172DE7
+:102A80001F71812F0E94171A63E0812F0E942B1B58
+:102A900026C081E00E94341B023008F182E00E94CF
+:102AA000341B1DC0112331F0002389F28C2D0E94AC
+:102AB0005D1215C0002391F28C2D0E9425130FC0CA
+:102AC000472D4F706C2DC7010E94A6050E941C194E
+:102AD00006C0472D4F706C2DC7010E94AD09DD2047
+:102AE000F9F00E94271B80FD1BC0F70112820E9493
+:102AF000211B0E94171AC7010E949F150E94211BCB
+:102B00000F90DF91CF911F910F91FF90EF90DF9089
+:102B1000CF90BF90AF909F908F907F900C94381A79
+:102B20000F90DF91CF911F910F91FF90EF90DF9069
+:102B3000CF90BF90AF909F908F907F9008950F930C
+:102B40001F93CF93DF93EC01888199812B813C8186
+:102B5000232BB9F09F3F11F48F3F99F0CE010E94D3
+:102B60003E06882371F0688179818A810E941D1B4D
+:102B70008C010E94D21A0E949919B801CE010E94BC
+:102B80008213DF91CF911F910F9108950E94F51B41
+:102B90000E94051C0E94CA1B0E941F1C0E94E21F6B
+:102BA0000E94311F80E090E00E94631180E090E07D
+:102BB0000C9479110E94E51B0C94C6150E94121BFF
+:102BC000292F22952F7030E02C3031054CF42A301B
+:102BD00031056CF42250310922303105A8F407C0C8
+:102BE0002C30310569F02F30310551F00DC0803F98
+:102BF00069F018F4803E40F409C0843F29F406C00F
+:102C000093FB882780F9089580E0089581E0089576
+:102C1000CF93DF9300D000D01F92CDB7DEB70F90D7
+:102C20000F900F900F900F90DF91CF910895CF9359
+:102C3000DF9300D000D000D0CDB7DEB726960FB618
+:102C4000F894DEBF0FBECDBFDF91CF9108951F93E3
+:102C5000CF93DF93C091860116E080918701C8175A
+:102C600099F0D0E01C9FF0011D9FF00D1124E85752
+:102C7000FE4F4081518162817381848195810E94E0
+:102C800017162196C770E9CFDF91CF911F91089554
+:102C90004091B8015091B9016091BA017091BB01A6
+:102CA0008091BC019091BD010C9417168091BD01DB
+:102CB00082958F7009F054C08091BA01882309F47D
+:102CC0004FC080918601A09187016091B8017091F9
+:102CD000B9014091BB015091BC01B6E08A1709F4DB
+:102CE0003FC090E041155105C1F17F3F11F46F3FA6
+:102CF000A1F1B89FF001B99FF00D1124E857FE4FE4
+:102D0000218172132AC02081621327C022812111E0
+:102D100024C0238134812417350710F42150310950
+:102D2000241B350B283C3105C0F42091BD012F70C8
+:102D300020612093BD0126E0289FF001299FF00D1E
+:102D40001124E357FE4F80818F708061808388EB70
+:102D500091E00E949F150C94271601968770BECFB4
+:102D60000895CF92DF92EF92FF920F931F93CF932C
+:102D7000DF93CDB7DEB762970FB6F894DEBF0FBE14
+:102D8000CDBF8C0185E0F801DE011D9601900D920A
+:102D90008A95E1F7D8014C9111965C9111971296A2
+:102DA0006C9112971396CD90DC9014973091B801E6
+:102DB0007091B9018091BB019091BC01009709F419
+:102DC0006BC17F3F19F43F3F09F466C1E090BA013F
+:102DD000EE2009F4C0C02091BD01C816D90628F024
+:102DE000F601E81BF90BCF0104C0809590958C0D7E
+:102DF0009D1DFF24F394883C910578F0F12C207FF1
+:102E000009F0C6C07C2DD98AC88A89890E94081613
+:102E100088EB91E00E949F15B1C0822F807F09F05E
+:102E200046C0751314C0341312C0611110C02F7046
+:102E300020612093BD010E94481688EB91E00E941A
+:102E40009F158091BD01D80115968C932EC0CD2879
+:102E500019F15F3F11F44F3FF9F0F62E61111CC0DC
+:102E6000809186012091870136E0821709F45AC0CB
+:102E700090E0389FF001399FF00D1124E857FE4F84
+:102E80007181571306C07081471303C0728171119D
+:102E900003C001968770E9CFF62E662309F418C1A6
+:102EA0008091BD0181608093BD01F12C11C175132A
+:102EB00008C0341306C0611104C08091BD01D8015F
+:102EC000C3C04D875E878D859E856A8B0E94DE1507
+:102ED0006A898823E1F16623D1F12091BD01822F17
+:102EE00082958F7090E0029774F08091B801909174
+:102EF000B90198878F831986DB86CA862C87CE0115
+:102F000007960E949F1586E0F801A8EBB1E00190BA
+:102F10000D928A95E1F70E9456160E944816FF24EA
+:102F2000F394D6C04D875E878D859E850E94121BC7
+:102F3000292F22952F7030E0223031050CF0BCC0D3
+:102F40009F7009F0B6C0805E883008F4C1C0C80127
+:102F50000E949F15E4CFC816D90608F453C0F601A5
+:102F6000E81BF90BCF01883C910508F450C0F12C07
+:102F70007C2DD98AC88A89890E940816E8EBF1E07D
+:102F800086E0DF011D928A95E9F70E944816A0C0ED
+:102F9000751314C0341312C0611110C08091BD01AB
+:102FA000F8018583C8010E949F1586E0E8EBF1E0F7
+:102FB000DF011D928A95E9F7FE2C8AC04D875E8756
+:102FC0008D859E856A8B0E94DE156A89882309F4A7
+:102FD000BECF662309F4BBCF2091BD01822F82951D
+:102FE0008F7090E002970CF48ECF8091B801909191
+:102FF000B9019A8389831B82DD82CC822E83CE0124
+:1030000001967FCF809590958C0D9D1DACCFF62EAF
+:10301000662309F49CCF75132EC034132CC0209165
+:10302000BD0120FD1FC0822F82958F70D9F0D8017D
+:1030300015962C9315978F3049F08F5F982F9295A6
+:10304000907F822F8F70892B15968C93C8010E94D8
+:103050009F1586E0F801A8EBB1E001900D928A95EA
+:10306000E1F793CF86E0F801A8EBB1E001900D9273
+:103070008A95E1F72DC04D875E878D859E850E94DC
+:10308000DE15811140CF8091BD0181608093BD012B
+:10309000C8010E949F151CC0662309F458CF4D87B4
+:1030A0005E878D859E850E94DE15882309F44FCFAB
+:1030B0002ACF811148CF0CC0243031050CF047CF06
+:1030C0009F7009F440CFF8019581907F09F03BCFC4
+:1030D0008F2D62960FB6F894DEBF0FBECDBFDF9185
+:1030E000CF911F910F91FF90EF90DF90CF900895B7
+:1030F0001F93CF93DF93CDB7DEB72C970FB6F8941D
+:10310000DEBF0FBECDBF4F83588769877A878B8715
+:103110009C87CE0107960E94B116882369F08F81A3
+:1031200098852A853B85232BF1F19F3F09F063C0E9
+:103130008F3F09F060C037C086E0FE013796DE01A0
+:10314000119601900D928A95E1F76F817885EA8555
+:10315000FB85309741F17F3F11F46F3F21F12091C2
+:10316000870130E0C9010196877099274091860157
+:1031700050E08417950709F447C069837A83FD837B
+:10318000EC8396E0929FD001939FB00D1124A85735
+:10319000BE4FFE01319601900D929A95E1F7809312
+:1031A00087010E94271616E0809186019091870181
+:1031B0008917C1F1189FC001112488579E4F0E94A2
+:1031C000B116882379F1E09186011E9FF001112448
+:1031D000E857FE4F408151816281738184819581DE
+:1031E0000E9417168091860190E0019687709927BA
+:1031F00080938601D9CF4F81588569857A858B85E3
+:103200009C850E941716CFCF0E94DA151092870175
+:1032100010928601E8EBF1E086E0DF011D928A95CD
+:10322000E9F7C1CF2C960FB6F894DEBF0FBECDBF25
+:10323000DF91CF911F910895EF92FF920F931F930B
+:10324000CF93DF938C01009709F46CC0F12CEE242E
+:10325000E394E8012196F8018491843740F48430A6
+:1032600008F051C0813081F0823019F15BC08537A0
+:1032700009F444C0A8F19CE7980F903708F052C0B9
+:103280008F770E94251341C00E5F1F4FFE01C4912E
+:1032900080E28C0F883048F4C7708E2D01C0880FF3
+:1032A000CA95EAF70E94F81B14C08C2F0E945D1289
+:1032B0002DC00E5F1F4FFE01C49180E28C0F88303D
+:1032C00058F4C7708E2D01C0880FCA95EAF70E9486
+:1032D000FE1B0E941F1C1AC08C2F0E94251316C0B3
+:1032E0000E5F1F4FFE01C491CC2381F08FE99FE058
+:1032F0000197F1F700C00000C150F6CF0E5F1F4FDD
+:10330000FE01F49003C00E945D128E018F2D882370
+:1033100009F49FCFEFE9FFE03197F1F700C000001B
+:103320008150F5CFDF91CF911F910F91FF90EF90DA
+:10333000089508956093C2017093C3018093C401FE
+:103340009093C5010C94C6150F931F930091C20171
+:103350001091C3012091C4013091C501DC01CB0162
+:10336000802B912BA22BB32B8093C2019093C3018E
+:10337000A093C401B093C5011F910F910C94C61581
+:103380000F931F930091C2011091C3012091C401BA
+:103390003091C501DC01CB0180239123A223B3230B
+:1033A0008093C2019093C301A093C401B093C5015F
+:1033B0001F910F910C94C6150F931F930091C2019A
+:1033C0001091C3012091C4013091C501DC01CB01F2
+:1033D00080279127A227B3278093C2019093C3012E
+:1033E000A093C401B093C5011F910F910C94C61511
+:1033F0001092BE011092BF011092C0011092C10143
+:103400000C94C61541E050E060E070E004C0440F49
+:10341000551F661F771F8A95D2F74093BE015093C0
+:10342000BF016093C0017093C1010C94C61541E0C7
+:1034300050E060E070E004C0440F551F661F771F26
+:103440008A95D2F78091BE019091BF01A091C001F1
+:10345000B091C101482B592B6A2B7B2B4093BE01A5
+:103460005093BF016093C0017093C1010C94C615C5
+:1034700041E050E060E070E004C0440F551F661F5B
+:10348000771F8A95D2F740955095609570958091F9
+:10349000BE019091BF01A091C001B091C10148232C
+:1034A00059236A237B234093BE015093BF0160934D
+:1034B000C0017093C1010C94C61541E050E060E07A
+:1034C00070E004C0440F551F661F771F8A95D2F71E
+:1034D0008091BE019091BF01A091C001B091C10146
+:1034E000482759276A277B274093BE015093BF0185
+:1034F0006093C0017093C1010C94C6150F931F9384
+:103500000091BE011091BF012091C0013091C10115
+:10351000DC01CB01802B912BA22BB32B8093BE011E
+:103520009093BF01A093C001B093C1011F910F916F
+:103530000C94C6150F931F930091BE011091BF010B
+:103540002091C0013091C101DC01CB018023912386
+:10355000A223B3238093BE019093BF01A093C00127
+:10356000B093C1011F910F910C94C6150F931F9337
+:103570000091BE011091BF012091C0013091C101A5
+:10358000DC01CB0180279127A227B3278093BE01BE
+:103590009093BF01A093C001B093C1011F910F91FF
+:1035A0000C94C6150895CF92DF92EF92FF920F937D
+:1035B0001F93CF93DF938C01C090C201D090C301C1
+:1035C000E090C401F090C5018091BE019091BF01CF
+:1035D000A091C001B091C101C82AD92AEA2AFB2AC8
+:1035E000CFE1D0E0D701C6010C2E04C0B695A79557
+:1035F000979587950A94D2F780FF06C0B8018C2F63
+:103600000E942C08019721F4219760F780E001C007
+:103610008C2FDF91CF911F910F91FF90EF90DF9052
+:10362000CF900895CF93DF93EC010E94D31ABE018F
+:103630000E942C08DF91CF910895CB010E94121BAC
+:1036400008958091C6018595859585950895809109
+:10365000C6018770089598E0899F90011124262B58
+:103660002093C6010C94171A2091C60180958223DD
+:103670008093C601982F977069F430E0482F552742
+:1036800047FD50952417350729F085958595859533
+:103690000C94381A08959091C601977081E009F44E
+:1036A00080E0089590910C01992321F090910D01F3
+:1036B000911109C020910E0130910F01F90132964C
+:1036C0009FEF40E01FC0982F9695969596959F3056
+:1036D00050F5E0910E01F0910F01E90FF11D877097
+:1036E00021E030E0A90102C0440F551F8A95E2F79E
+:1036F000CA019181892B818308959F3F39F04F5FE3
+:103700004E3041F051915813F8CF0DC05111F7CF01
+:10371000942FF5CF9F3F39F0F901E90FF11D97FD87
+:10372000FA9582830895089590910C01992321F0D0
+:1037300090910D01911109C020910E0130910F015E
+:10374000F9013296205F3F4F1FC0982F96959695AE
+:1037500096959F30F0F4E0910E01F0910F01E90F82
+:10376000F11D877021E030E0A90102C0440F551F10
+:103770008A95E2F7CA018095918189238183089512
+:103780003196E217F30729F090819813F9CF108250
+:10379000F7CF089581E090E0E0910E01F0910F01E4
+:1037A000E80FF91F1082019680319105A9F708955D
+:1037B0009091DA01892B8093DA0108958095909198
+:1037C000DA0189238093DA0108951092DA010895CD
+:1037D0009091D901892B8093D9010895809590917A
+:1037E000D90189238093D90108951092D9010895B0
+:1037F0009091D801892B8093D8010895809590915C
+:10380000D80189238093D80108951092D801089592
+:103810008093C70108951092C701089580910E0109
+:1038200090910F01FC0131969C01205F3F4F80E099
+:10383000919191118F5FE217F307D1F70895E0910D
+:103840000E01F0910F018091DA018083E0910E0169
+:10385000F0910F0190818091D901892B8083E091B3
+:103860000E01F0910F0190818091D801892B808306
+:103870008091C701882361F0E0910E01F0910F0162
+:103880009081892B80830E940E1C81111092C701A8
+:1038900080910E0190910F010C944D1120E0009742
+:1038A00039F0AC0141505109842395232F5FF7CFA4
+:1038B000822F0895CF92DF92EF92FF926C01EE2457
+:1038C000FF24C114D104E104F10421F0C701B601C1
+:1038D00020E101C020E0C72ED82EE92EFF24C1141C
+:1038E000D104E104F10419F0285FC701B6016B01AE
+:1038F0007C0154E0F694E794D794C7945A95D1F795
+:10390000C114D104E104F10419F02C5FC701B60120
+:103910006B017C0142E0F694E794D794C7944A95F2
+:10392000D1F7C114D104E104F10419F02E5FC701ED
+:10393000B601DC01CB01B695A79597958795892BA4
+:103940008A2B8B2B09F02F5F822FFF90EF90DF9057
+:10395000CF9008958091F401843021F11092DC0120
+:1039600020E488E190E00FB6F894A8958093600079
+:103970000FBE2093600080E00E943E0A83B7817FE3
+:10398000846083BF83B7816083BF7894889583B751
+:103990008E7F83BF88E10FB6F89480936000109209
+:1039A00060000FBE089508950E94C9030E94DC03C1
+:1039B0000E94D31C0E94D10491E0811101C090E0CB
+:1039C000892F08950E94DA150E9441110C943E0A35
+:1039D00082E084BD93E095BD9AEF97BD80936E0021
+:1039E00008952FB7F8948091DD019091DE01A091A8
+:1039F000DF01B091E0012FBF0895CF92DF92EF92E7
+:103A0000FF920F931F932FB7F8944091DD015091CF
+:103A1000DE016091DF017091E0012FBF6A017B013F
+:103A2000EE24FF248C0120E030E0C016D106E2062F
+:103A3000F30610F4415051099A01281B390BC901B2
+:103A40001F910F91FF90EF90DF90CF9008951F92FC
+:103A50000F920FB60F9211248F939F93AF93BF9342
+:103A60008091DD019091DE01A091DF01B091E00134
+:103A70000196A11DB11D8093DD019093DE01A093FD
+:103A8000DF01B093E001BF91AF919F918F910F90B3
+:103A90000FBE0F901F9018950E943E0EF8942FEFC6
+:103AA00087EA91E6215080409040E1F700C0000095
+:103AB00087E090EBDC018093FD019093FE01A093E1
+:103AC000FF01B09300029CE088E10FB6F894A8953E
+:103AD000809360000FBE90936000FFCF0E94A61DF0
+:103AE000811102C00E948C1D0E94B11D8093DB01D8
+:103AF0000E94B91D90E09093EF018093EE0187FB47
+:103B0000882780F980930D010E94B51D682F70E011
+:103B100080E090E00C949A196DEE7EEF80E090E0EA
+:103B20000E94F42360E082E090E00E94E22360E0E3
+:103B300083E090E00E94E22360E084E090E00E9455
+:103B4000E22360E085E090E00C94E22380E090E0E6
+:103B50000E94DC2321E08D3E9E4F09F020E0822F61
+:103B6000089582E090E00C94D42383E090E00C94DC
+:103B7000D42384E090E00C94D423682F84E090E078
+:103B80000C94E2238091E30180FF0BC0609113014C
+:103B900085E0689FB00111247595679575956795C7
+:103BA0002BC081FF09C06091130185E0689FB001BF
+:103BB00011247595679520C082FF07C0609113019D
+:103BC00085E0689FB001112417C09091E40199230A
+:103BD000D1F060911201961788F72091130185E0CA
+:103BE000289F90011124929FA001939F500D1124B2
+:103BF00070E0CA010E94A6236038710540F4611587
+:103C0000710539F002C065E070E0862F08958FE7F6
+:103C1000089581E008958091E30180FF08C06091DC
+:103C2000110170E0759567957595679521C081FFC5
+:103C300006C06091110170E07595679519C082FF0B
+:103C400004C06091110170E010C09091E4019923CB
+:103C5000C1F0609110019617A0F780911101899F22
+:103C6000C001112470E00E94A6236038710528F479
+:103C70006115710521F0862F08958FE7089581E081
+:103C8000089561E070E0F4CF803F21F40E94C21DEE
+:103C9000819504C0813F29F40E94C21D8093E701F1
+:103CA0000895823F21F40E94C21D819504C0833F84
+:103CB00029F40E94C21D8093E6010895893F19F4FA
+:103CC0000E940B1E05C08A3F31F40E940B1E819595
+:103CD0008093E80108958B3F21F40E940B1E81958B
+:103CE00004C08C3F29F40E940B1E8093E9010895C3
+:103CF000843F21F48091E501816017C0853F21F464
+:103D00008091E501826011C0863F21F48091E50138
+:103D100084600BC0873F21F48091E501886005C075
+:103D2000883F31F48091E50180618093E501089539
+:103D30008D3F21F48091E30181600BC08E3F21F41F
+:103D40008091E301826005C08F3F29F48091E301F7
+:103D500084608093E3010895803F39F48091E70106
+:103D600087FF6CC01092E70169C0813F29F4809100
+:103D7000E7011816BCF362C09091E601823F29F476
+:103D800097FF5CC01092E60159C0833F19F41916E1
+:103D9000CCF354C0893F41F48091E80118160CF02F
+:103DA0004DC01092E8014AC08A3F29F48091E80191
+:103DB00087FF44C0F6CF8B3F39F48091E90187FF3C
+:103DC0003DC01092E9013AC08C3F29F48091E9018D
+:103DD0001816BCF333C0843F21F48091E5018E7F37
+:103DE00017C0853F21F48091E5018D7F11C0863F8A
+:103DF00021F48091E5018B7F0BC0873F21F48091F6
+:103E0000E501877F05C0883F31F48091E5018F7E11
+:103E10008093E50113C08D3F21F48091E3018E7FF3
+:103E20000BC08E3F21F48091E3018D7F05C08F3F51
+:103E300029F48091E3018B7F8093E3018091E60177
+:103E400081110EC08091E70181110AC08091E801C3
+:103E5000811106C08091E901811102C01092E40134
+:103E6000089585EE91E00E9458110E94F11C9093F4
+:103E7000E2018093E10108951F93CF93DF93809136
+:103E8000E1019091E2010E94FD1CAC019091E401DE
+:103E9000992321F02091140130E006C020911501F2
+:103EA0008AE0289F900111244217530708F486C026
+:103EB0008091E601C091E701D091E8011091E901FC
+:103EC000811107C0C11176C0D11174C0111172C027
+:103ED00075C09F3F19F09F5F9093E401181624F47A
+:103EE0000E94C21D8093E6018091E60187FF05C014
+:103EF0000E94C21D81958093E6011C1624F40E9445
+:103F0000C21D8093E7018091E70187FF05C00E94F1
+:103F1000C21D81958093E7016091E601662339F126
+:103F2000C091E701CC2319F1772767FD7095872FA2
+:103F3000972F0E94B72223E333E343E35FE30E941A
+:103F40001B230E9484226093E6016C2F772767FD74
+:103F50007095872F972F0E94B72223E333E343E323
+:103F60005FE30E941B230E9484226093E7011D16D9
+:103F700024F40E940B1E8093E8018091E80187FFE2
+:103F800005C00E940B1E81958093E801111624F450
+:103F90000E940B1E8093E9018091E90187FF05C013
+:103FA0000E940B1E81958093E901DF91CF911F91B3
+:103FB0000C94311F9F3F09F08ECF96CFDF91CF91A8
+:103FC0001F910895E5EEF1E085E0DF011D928A95ED
+:103FD000E9F71092E4011092E3010895833081F132
+:103FE00028F4813059F08230D1F00895853009F4F9
+:103FF00049C0B8F1863009F456C008958091150182
+:10400000262F30E0280F311D2F3F310524F4680F93
+:104010006093150108958FEF8093150108958091A5
+:104020001401262F30E0280F311D2F3F310524F4D5
+:10403000680F6093140108958FEF80931401089521
+:1040400080911301262F30E0280F311D2F3F3105BD
+:1040500024F4680F6093130108958FEF8093130188
+:10406000089580911201262F30E0280F311D2F3F37
+:10407000310524F4680F6093120108958FEF809347
+:104080001201089580911101262F30E0280F311D73
+:104090002F3F310524F4680F6093110108958FEFCD
+:1040A00080931101089580911001262F30E0280F90
+:1040B000311D2F3F310524F4680F609310010895DE
+:1040C0008FEF809310010895833011F128F481302F
+:1040D00049F0823091F00895853081F120F18630E9
+:1040E000C1F1089580911501681720F4861B809313
+:1040F0001501089510921501089580911401681713
+:1041000020F4861B809314010895109214010895E1
+:1041100080911301681720F4861B80931301089582
+:1041200010921301089580911201681720F4861BE4
+:104130008093120108951092120108958091110147
+:10414000681720F4861B80931101089510921101C5
+:10415000089580911001681720F4861B8093100148
+:1041600008951092100108950F931F938D3109F453
+:1041700071C008F045C0803109F485C008F587306A
+:1041800009F46FC068F4863009F0ADC08091DB019E
+:10419000817F8E7F8093DB0181E08093EB01A4C05F
+:1041A0008B3009F49EC08E3009F09DC08091DB01F8
+:1041B00082FB222720F991E0922790FB82F96CC0C4
+:1041C000863109F48EC060F4813109F08CC00E9400
+:1041D000DA1590910D0181E0892780930D0181C04E
+:1041E000893109F47EC08B3109F07DC08091DB01FB
+:1041F00081FB222720F991E0922790FB81F94CC0A6
+:10420000853309F466C048F4873209F462C008F4C3
+:104210004FC0893209F45DC066C0833438F48A33F4
+:1042200008F044C0883309F45CC05DC0833409F4ED
+:1042300050C0883409F057C00E94DA150FEF13ED13
+:1042400020E3015010402040E1F700C000000E9430
+:104250004C1D47C00E943E220E9441110E943E0A0E
+:1042600040C09091DB01892F8095817080FB90F98F
+:1042700029F0966098609093DB0136C0997F977F14
+:104280009093DB012EC08091DB0183FB222720F974
+:1042900091E0922790FB83F98093DB01992309F148
+:1042A0008091DB0181608093DB011BC0895301C0D9
+:1042B0008D5141E050E060E070E08A019B0104C054
+:1042C000000F111F221F331F8A95D2F7C901B801B1
+:1042D00004C061E070E080E090E00E949A190E94C2
+:1042E000DA1581E001C080E01F910F91089580E010
+:1042F000089580E008958E518A3030F4E82FF0E080
+:10430000E65DFE4F8081089580E00895CF93C82F29
+:104310008091EB01813079F018F08230E9F186C0AC
+:10432000E0910E01F0910F018081813169F08232BC
+:1043300009F07EC009C0E0910E01F0910F0180816B
+:10434000813111F0823261F48C2F0E94772181112A
+:1043500004C08C2F0E94B4201DC081E090E01AC0E0
+:104360008C2F0E947921811114C0C43179F048F456
+:10437000CB3079F0C03109F05FC082E08093EB016F
+:1043800008C0C93219F0C83321F056C01092EB01B1
+:1043900053C081E0817052C0C93281F110F5C4313F
+:1043A00069F1A8F4C73009F045C08AE0809315018F
+:1043B00094E19093140193E0909313018093120180
+:1043C00088E08093110188E28093100133C082EE6F
+:1043D0008C0F863078F58C2F0E947B218093EA0128
+:1043E00029C0CE34E9F020F4CB3421F56AE013C0C3
+:1043F000C13579F0C235F1F461E00DC08091EA0178
+:10440000882319F01092EA0115C081E08093EB0136
+:1044100015C061E006C08091EA010E94EE1F0AC04B
+:104420006AE08091EA010E94642004C01092EB01CE
+:1044300080E004C081E002C080E0ACCFCF9108955D
+:10444000E1E8F0E080818860808380818160808302
+:104450008FB7F89493E09093890090ED9093880043
+:104460008FBF0895EFE6F0E0808182608083089539
+:10447000EFE6F0E080818D7F80830895EFE6F0E045
+:10448000908182E08927808308951F920F920FB652
+:104490000F9211242F933F934F935F936F937F93CA
+:1044A0008F939F93AF93BF93EF93FF938091EC0112
+:1044B0009091ED0101969093ED018093EC018111B3
+:1044C00003C082E00E943E0AE091ED01E695E69588
+:1044D000F0E0E755FA4FE4918091EC018E1303C0B0
+:1044E00080E00E943E0AFF91EF91BF91AF919F91B2
+:1044F0008F917F916F915F914F913F912F910F908D
+:104500000FBE0F901F90189504D06894B1118DC004
+:10451000089570D088F09F5790F0B92F9927B75120
+:10452000A0F0D1F0660F771F881F991F1AF0BA9577
+:10453000C9F712C0B13081F077D0B1E0089574C0EE
+:10454000672F782F8827B85F39F0B93FCCF386956D
+:1045500077956795B395D9F73EF4909580957095CA
+:1045600061957F4F8F4F9F4F0895E89409C097FB47
+:104570003EF490958095709561957F4F8F4F9F4F3A
+:104580009923A9F0F92F96E9BB279395F69587957E
+:1045900077956795B795F111F8CFFAF4BB0F11F441
+:1045A00060FF1BC06F5F7F4F8F4F9F4F16C08823E8
+:1045B00011F096E911C0772321F09EE8872F762F1E
+:1045C00005C0662371F096E8862F70E060E02AF05F
+:1045D0009A95660F771F881FDAF7880F969587954B
+:1045E00097F9089557FD9058440F551F59F05F3FB4
+:1045F00071F04795880F97FB991F61F09F3F79F005
+:1046000087950895121613061406551FF2CF469586
+:10461000F1DF08C0161617061806991FF1CF869508
+:104620007105610508940895E894BB2766277727EC
+:10463000CB0197F908950BD078C069D028F06ED0DF
+:1046400018F0952309F05AC05FC01124EECFCADFDD
+:10465000A0F3959FD1F3950F50E0551F629FF00195
+:10466000729FBB27F00DB11D639FAA27F00DB11DEE
+:10467000AA1F649F6627B00DA11D661F829F222777
+:10468000B00DA11D621F739FB00DA11D621F839FFE
+:10469000A00D611D221F749F3327A00D611D231FD4
+:1046A000849F600D211D822F762F6A2F11249F5722
+:1046B00050408AF0E1F088234AF0EE0FFF1FBB1F45
+:1046C000661F771F881F91505040A9F79E3F5105E4
+:1046D00070F014C0AACF5F3FECF3983EDCF38695F0
+:1046E00077956795B795F795E7959F5FC1F7FE2B8F
+:1046F000880F911D9695879597F9089597F99F676B
+:1047000080E870E060E008959FEF80EC0895002459
+:104710000A941616170618060906089500240A9426
+:1047200012161306140605060895092E0394000CAC
+:1047300011F4882352F0BB0F40F4BF2B11F460FF3B
+:1047400004C06F5F7F4F8F4F9F4F089597FB072ED9
+:1047500016F4009407D077FD09D00E94C02307FC0F
+:1047600005D03EF4909581959F4F08957095619581
+:104770007F4F0895EE0FFF1F0590F491E02D0994EF
+:10478000AA1BBB1B51E107C0AA1FBB1FA617B70777
+:1047900010F0A61BB70B881F991F5A95A9F7809593
+:1047A0009095BC01CD010895F999FECF92BD81BDD0
+:1047B000F89A992780B50895A8E1B0E042E050E06A
+:1047C0000C94FC23262FF999FECF92BD81BDF89A57
+:1047D000019700B4021639F01FBA20BD0FB6F89445
+:1047E000FA9AF99A0FBE08950196272F0E94E323A3
+:1047F0000C94E223DC01CB01FC01F999FECF06C049
+:10480000F2BDE1BDF89A319600B40D92415050408E
+:08481000B8F70895F894FFCFFA
+:104818000220400ACE0AAB0A770A430A0101C801FE
+:1048280028080A03140A404D363969051C05E604B0
+:10483800AD044004590472048B0401020304050604
+:044848000708090054
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/csharp_dev/csharp_dev.png b/keyboards/ergodox_ez/keymaps/csharp_dev/csharp_dev.png Binary files differnew file mode 100644 index 000000000..6fba568fc --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/csharp_dev/csharp_dev.png diff --git a/keyboards/ergodox_ez/keymaps/csharp_dev/csharp_dev_legend.png b/keyboards/ergodox_ez/keymaps/csharp_dev/csharp_dev_legend.png Binary files differnew file mode 100644 index 000000000..b0a1c513c --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/csharp_dev/csharp_dev_legend.png diff --git a/keyboards/ergodox_ez/keymaps/csharp_dev/keymap.c b/keyboards/ergodox_ez/keymaps/csharp_dev/keymap.c new file mode 100644 index 000000000..e9648ede7 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/csharp_dev/keymap.c @@ -0,0 +1,239 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define FKEYS 1 // F keys + macros + +#define MACRO_PUBLIC 10 +#define MACRO_PRIVATE 11 + +#define MACRO_STATIC 12 +#define MACRO_CONST 13 + +#define MACRO_VOID 14 +#define MACRO_VAR 15 +#define MACRO_STRING 16 + +#define MACRO_INT 17 +#define MACRO_FLOAT 18 +#define MACRO_BOOL 19 + +#define MACRO_RETURN 20 +#define MACRO_NULL 21 +#define MACRO_BREAK 22 + +#define MACRO_TODO 23 +#define MACRO_NEW 24 +#define MACRO_PARENTHESE 25 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ( | 1 | 2 | 3 | 4 | 5 | " | | Save | 6 | 7 | 8 | 9 | 0 | [ | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | ) | Q | W | E | R | T |Bkspa | | Del | Y | U | I | O | P | ] | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | { | A | S | D | F | G |------| |------| H | J | K | L | _ | Redo | + * |--------+------+------+------+------+------| / | | ; |------+------+------+------+------+--------| + * | } |Z~Alt | X | C | V | B | | | | N | M | ' | ! | ? | Undo | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Tab~CL| < | > | | | & | | = | + | - | * | L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * |. ~L1 | , | |Home |End~L1| + * ,------|------|------| |------+------+------. + * | | | Copy | | UP | | | + * | Enter| Space|------| |------| Space|Enter | + * | ~WIN | ~LSFT| Past | | DOWN | ~LSFT| ~WIN | + * `--------------------' `--------------------' + */ +// 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_LPRN, KC_1, KC_2, KC_3, KC_4, KC_5, LSFT(KC_QUOTE), + KC_RPRN, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPACE, + KC_LCBR, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_RCBR, ALT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_SLASH, + CTL_T(KC_TAB), LSFT(KC_COMMA),LSFT(KC_DOT),KC_PIPE,KC_AMPR, + LT(1,KC_DOT), KC_COMM, + LCTL(KC_C), + GUI_T(KC_ENTER),SFT_T(KC_SPACE),LCTL(KC_V), + // right hand + LCTL(KC_S) , KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRACKET, + KC_DELETE, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRACKET, + KC_H, KC_J, KC_K, KC_L, KC_UNDS,LCTL(KC_Y), + KC_SCOLON,KC_N, KC_M, KC_QUOTE ,KC_EXLM , LSFT(KC_SLASH), LCTL(KC_Z), + KC_EQUAL,KC_PLUS , KC_MINUS,KC_ASTR , TG(1), + KC_HOME, LT(1,KC_END), + KC_UP, + KC_DOWN,SFT_T(KC_SPACE), GUI_T(KC_ENTER) + ), + +/* Keymap 1: F keys + macros + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ESC | F1 | F2 | F3 | F4 | F5 | ` | | Calc | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab |Public|Static|string|int |return| | | |//TODO| | | | | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | |Privat|Const |var |float |null |------| |------|new | | | | | | + * |--------+------+------+------+------+------| \ | | ~ |------+------+------+------+------+--------| + * | | | |void |bool |break;| | | |(); | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | WIN | Alt | | | | PgUp | PgDw | Ins | PtSc | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | Cut | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| Left | Right| + * | | | | | | | | + * `--------------------' `--------------------' + */ +// FKEYS + MACROS +[FKEYS] = KEYMAP( + // left hand + KC_ESCAPE,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_GRAVE, + KC_TAB,M(MACRO_PUBLIC),M(MACRO_STATIC), M(MACRO_STRING),M(MACRO_INT),M(MACRO_RETURN),KC_TRNS, + KC_TRNS,M(MACRO_PRIVATE),M(MACRO_CONST), M(MACRO_VAR),M(MACRO_FLOAT),M(MACRO_NULL), + KC_TRNS,KC_TRNS,KC_TRNS,M(MACRO_VOID),M(MACRO_BOOL),M(MACRO_BREAK),KC_BSLASH, + KC_TRNS,KC_LGUI,KC_LALT,KC_TRNS,KC_TRNS, + KC_TRNS,LCTL(KC_X), + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_CALCULATOR, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, M(MACRO_TODO), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, + M(MACRO_NEW), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TILD, M(MACRO_PARENTHESE), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_PGUP,KC_PGDOWN, KC_INSERT, KC_PSCREEN, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_LEFT, KC_RIGHT +), + + +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(FKEYS) // FN1 - Momentary Layer 1 +}; + +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_PUBLIC: + if (record->event.pressed) { + return MACRO( T(P), T(U), T(B), T(L), T(I), T(C), T(SPACE),END); + } + break; + case MACRO_PRIVATE: + if (record->event.pressed) { + return MACRO( T(P), T(R), T(I), T(V), T(A), T(T), T(E), T(SPACE),END); + } + break; + case MACRO_STATIC: + if (record->event.pressed) { + return MACRO( T(S), T(T), T(A), T(T), T(I), T(C), T(SPACE), END); + } + break; + case MACRO_CONST: + if (record->event.pressed) { + return MACRO( T(C), T(O), T(N), T(S), T(T), T(SPACE), END); + } + break; + case MACRO_VOID: + if (record->event.pressed) { + return MACRO( T(V), T(O), T(I), T(D), T(SPACE), END); + } + break; + case MACRO_VAR: + if (record->event.pressed) { + return MACRO( T(V), T(A), T(R), T(SPACE), END); + } + break; + case MACRO_STRING: + if (record->event.pressed) { + return MACRO( T(S), T(T), T(R), T(I), T(N), T(G), T(SPACE), END); + } + break; + case MACRO_BOOL: + if (record->event.pressed) { + return MACRO( T(B), T(O), T(O), T(L), T(SPACE), END); + } + break; + case MACRO_INT: + if (record->event.pressed) { + return MACRO( T(I), T(N), T(T), T(SPACE), END); + } + break; + case MACRO_FLOAT: + if (record->event.pressed) { + return MACRO( T(F), T(L), T(O), T(A),T(T),T(SPACE), END); + } + break; + case MACRO_RETURN: + if (record->event.pressed) { + return MACRO( T(R), T(E), T(T), T(U),T(R),T(N), END); + } + break; + case MACRO_NULL: + if (record->event.pressed) { + return MACRO( T(N), T(U), T(L), T(L), END); + } + case MACRO_BREAK: + if (record->event.pressed) { + return MACRO( T(B), T(R), T(E), T(A), T(K), T(SCOLON), END); + } + break; + case MACRO_TODO: + if (record->event.pressed) { + return MACRO( T(SLASH), T(SLASH), D(LSHIFT) ,T(T), T(O), T(D), T(O),U(LSHIFT), T(SPACE),END); + } + break; + case MACRO_NEW: + if (record->event.pressed) { + return MACRO( T(N), T(E), T(W), T(SPACE), END); + } + break; + case MACRO_PARENTHESE: + if (record->event.pressed) { + return MACRO( D(LSHIFT),T(9), T(0),U(LSHIFT), T(SCOLON), 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); + + 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/csharp_dev/readme.md b/keyboards/ergodox_ez/keymaps/csharp_dev/readme.md new file mode 100644 index 000000000..96af077ad --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/csharp_dev/readme.md @@ -0,0 +1,47 @@ +# ErgoDox EZ C# Developer configuration + +## Changelog + +* Feb 12, 2016 (V1): + * First version commit +* Mar 20, 2016 (V2): + * Removed "Classic QWERTY" layer, inverted GUI and SHIFT on Hold for Space and Enter + +## About +This layout was conceived in an attempt to optimise keyboard layout for developers (C# more specifically, but it can work with most of other languages), and limit the keys required to perform the most frequent actions. + +I came to the realization that my main tool as a developer, the qwerty keyboard was something that did not evolved at its core in almost 150 years. +There are a lot of reasons to this, and it would be a massive entreprise to change a standard so strongly anchored, but I wanted to give it a try and see how would look an input device dedicated to developers, more specifically a C# developer in my case. +The biggest flaw in standard QWERTY keyboards was that I always needed to perform key combination to access commonly used characters or actions. Think about it a minute, how many times a day do you press a modifier key such as Ctrl or Shift, it's insane and could be so easily optimized to require only one key press. + +Then I came across the ErgoDox EZ project, that allowed a full customization of its firmware, and a unique 2 parts design. + +![CSharpDev](csharp_dev_legend.png) + +## Layout design principles +* No key combination required for the most common input characters ( (),[],{},<> ... ) +* No key combination required for the most common actions (copy/paste/undo/save) +* Regroup characters by usage ( + - * = ...) +* Easy access to the most commonly used characters: ; / " . , +* Preregistered macro for the most common C# langage instructions: public / private / string / int / float ... + +## Why is it specific to C Sharp +I defined the characters priority based on their usage in C# language, most of this characters are also used in other coding languages but it may require some tweaking. +For example there is no direct access to ~ or $ keys which can be very common in some languages. +Note it is also specific to Windows environement as the shortcut used in action keys would not work on Mac Os + +## In usage +It was relatively easy to get used to the layout, but it's hard for me to define how easy it was as I was getting used to a blank Ergodox keyboard at the same time. +Still it's extremely satisfying to Save your file with just one easily accessible key or to have one big key to end your code line ( ; ) + +## Improvements +This layout was shared after a bunch of iterations and only once I was happy with it. +Still there are many way to improve or iterate on this: +* Make it language agnostic +* Check and compile language's keyboard's heatmaps to statistically define keys priority (e.g. https://dzone.com/articles/most-pressed-keys-various ) +* QWERTY is still not the most efficient typing layout, I would like to create a Dvorak based similar layout in a near futur + +## Issues +One of the issues encountered while creating this layout was that I did not find a way to have a key to send a modifier on hold, and a key combination while pressed (e.g. I can't set a Key to do Save (Ctrl + S) when pressed and Shift modifier when hold ) + + diff --git a/keyboards/ergodox_ez/keymaps/dave/compiled.hex b/keyboards/ergodox_ez/keymaps/dave/compiled.hex new file mode 100644 index 000000000..22b5c6682 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/dave/compiled.hex @@ -0,0 +1,1169 @@ +:100000000C9478020C94BC020C94BC020C94BC02BC
+:100010000C94BC020C94BC020C94BC020C94BC0268
+:100020000C94BC020C94BC020C94BC0D0C948E0E6F
+:100030000C94BC020C94BC020C94BC020C94BC0248
+:100040000C94BC020C9498220C94BC020C94BC023C
+:100050000C94BC020C942B1C0C94BC020C94BC029F
+:100060000C94BC020C94BC020C94BC020C94BC0218
+:100070000C94BC020C94BC020C94BC020C94BC0208
+:100080000C94BC020C94BC020C94BC020C94BC02F8
+:100090000C94BC020C94BC020C94BC020C94BC02E8
+:1000A0000C94BC020C94BC020C94BC02FB0E1D0F01
+:1000B0000B101D0F0B10620F850F0B10DA0FED0FD9
+:1000C000BC12BC12EB12EB12211341137214721406
+:1000D0004C137214FC13FC136314721472146C141A
+:1000E0000914091409140914091409140914091428
+:1000F0000914091409140914091409140914091418
+:100100001B1428142F143614401429002B00E0006F
+:10011000E100357100001E00140004001D006400A1
+:10012000E3001F001A0016001B000000025220000E
+:1001300008000700060000002C002100150009003F
+:100140001900E2001151220017000A00050000000A
+:10015000460023001C0000000B00000046002300A6
+:100160000A00000005000000007524001C000B00C0
+:10017000110000000075250018000D001000E600B9
+:10018000115126000C000E0036002F002C00270015
+:1001900012000F003700300001522D001300330011
+:1001A00038000000E7002A0028002800E50034712C
+:1001B0000000010001000100010001000000010039
+:1001C0001E02200222020100010001001F02210282
+:1001D00023020100010001002F0226022F0001006E
+:1001E000010001003002270230000100125101001D
+:1001F000310235003502000001000100010000005D
+:1002000001000000010001000100000001000000E9
+:1002100001000100010001000100000001000000D8
+:100220005F005C00590062001251540060005D00E4
+:100230005A0062000100550061005E005B0063002F
+:1002400001005600570057005800580001002E00CA
+:100250003200340001000100000001000100010033
+:100260000100010000003A004A005000F400F200D2
+:1002700001003B0052005100F000F10001003C0081
+:100280004D004F00F500F30001003D0049004C0017
+:100290000100010010513E004B004E000100000023
+:1002A00001003F00010000000100000001004000CB
+:1002B00001000000010000000100410001000100F8
+:1002C00001000000010042000100B600AC00AA00DD
+:1002D0001051430049004C00AE00A800010044004A
+:1002E0000100B700AB00A9000100450001000100BA
+:1002F00001000100010001000100010001000100F6
+:10030000000016034500720067006F0044006F0094
+:100310007800200045005A000000160345007200D6
+:1003200067006F0044006F007800200045005A000D
+:1003300000000403090409026D00040100A0FA0989
+:100340000400000103010100092111010001223F05
+:10035000000705810308000A0904010001030102E6
+:1003600000092111010001224D0007058203080048
+:100370000A09040200010300000009211101000123
+:100380002236000705830308000A0904030001035D
+:100390000000000921110100012239000705840332
+:1003A0001000011201100100000008EDFE0713010A
+:1003B000000102000105010906A101050719E02954
+:1003C000E715002501950875018102050819012925
+:1003D00005950575019102950175039101050719B0
+:1003E00000297715002501957875018102C0050166
+:1003F0000980A101850216010026B7001A01002A12
+:10040000B700751095018100C0050C0901A1018597
+:1004100003160100269C021A01002A9C0275109501
+:10042000018100C005010902A1010901A10005091E
+:100430001901290515002501950575018102950110
+:10044000750381010501093009311581257F950268
+:100450007508810609381581257F95017508810683
+:10046000050C0A38021581257F950175088106C0A3
+:10047000C005010906A101050719E029E7150025B6
+:10048000019508750181029501750881010508191A
+:1004900001290595057501910295017503910105E5
+:1004A00007190029FF150025FF950675088100C072
+:1004B0000000000000000000000000010204060A25
+:1004C0000F17202C3A4A5D71879DB3C7DAE9F5FC16
+:1004D000FFFCF5E9DAC7B39D87715D4A3A2C201716
+:1004E0000F0A0604020100000000000000000000E6
+:1004F00011241FBECFEFDAE0DEBFCDBF04B603FE8E
+:1005000024C08091FF0190910002A0910102B0915E
+:1005100002028730904BA740B04BB9F41092FF0114
+:1005200010920002109201021092020214BE84B7CF
+:10053000877F84BF88E10FB6F894809360001092A3
+:1005400060000FBEE0E0FFE3099511E0A0E0B1E03C
+:10055000EEEBF8E402C005900D92A433B107D9F791
+:1005600011E0A4E3B1E001C01D92AF3FB107E1F794
+:100570000E94000B0C945D240C9400001092B900B2
+:100580008AE08093B800089594EA9093BC0090911B
+:10059000BC0097FFFCCF9091B900987F983021F074
+:1005A000903111F081E008958093BB0084E880933E
+:1005B000BC008091BC0087FFFCCF8091B900887F90
+:1005C000883111F0803471F780E0089584E98093D8
+:1005D000BC008091BC0084FDFCCF08958093BB00DB
+:1005E00084E88093BC008091BC0087FFFCCF909191
+:1005F000B900987F81E0983209F480E0089584E89A
+:100600008093BC008091BC0087FFFCCF8091BB0031
+:10061000089580910101811115C080E40E94C402F7
+:100620008093010181110CC082E10E94EE0280934F
+:100630000101811105C08FEF0E94EE02809301013C
+:100640000E94E60284B1807F84B985B1807F85B93C
+:100650008AB1837F8AB98BB1837F8BB93E984698E4
+:1006600008950E94C404809301010E94090380B38D
+:100670008C7080BB81B3836F81BBA5E3B1E0E3E401
+:10068000F1E08EE08E0F11921D928E13FCCF0C9430
+:10069000AE04BF92CF92DF92EF92FF920F931F931F
+:1006A000CF93DF9380910101882379F08091340109
+:1006B0008F5F80933401811108C00E94C40480932D
+:1006C0000101811102C00E94560405E311E0C0E05F
+:1006D000D0E0DD24D39482E0C82EEE24E394F12C04
+:1006E000C730D10500F580910101811164C080E41B
+:1006F0000E94C40280930101811112C082E10E9414
+:10070000EE028093010181110BC0C7010C2E01C0C4
+:10071000880F0A94EAF780950E94EE028093010107
+:100720000E94E60248C0CA30A1F028F4C83059F04F
+:10073000C93061F005C0CC3089F070F0CD3089F05F
+:10074000209A289810C0219A29980DC0229A2A9898
+:100750000AC0239A2B9807C0529A01C0539A5B98FB
+:1007600002C03E9A469890EA9A95F1F79FB179991E
+:1007700002C082E001C080E091709D25982B7C9999
+:1007800002C084E001C080E0892B7D9902C038E07E
+:1007900001C030E0832B7E9902C020E101C020E03F
+:1007A000822B9FB19095991F9927991F9295990F28
+:1007B000907E892B0FC080910101811149C080E496
+:1007C0000E94C40280930101882379F1B12C0E9418
+:1007D000E6028B2DF8019081981719F08083C09262
+:1007E00000010E94090321960F5F1F4FCE30D105F3
+:1007F00009F076CF80910001882361F181508093C8
+:100800000001882339F08FE99FE00197F1F700C0DC
+:10081000000020C0A3E4B1E0E5E3F1E0CF01825F96
+:1008200091919D938E13FCCF15C083E10E94EE023F
+:10083000809301018111CACF81E40E94C402809398
+:1008400001018111C3CF0E94FF02B82EB094BFCF27
+:1008500080E0C0CF0E94540481E0DF91CF911F91CE
+:100860000F91FF90EF90DF90CF90BF900895E82F09
+:10087000F0E0ED5BFE4F8081089508950F931F9384
+:10088000CF93DF93C3E4D1E010E00C2F025F899196
+:1008900090E00E94511B180F0C13F9CF812FDF91AC
+:1008A000CF911F910F9108950C94240556985E984E
+:1008B00025982D9826982E9827982F988FEF90E0BE
+:1008C000909389008093880090938B0080938A0096
+:1008D00090938D0080938C00259A2D9A2FEF80E7BE
+:1008E00092E0215080409040E1F700C00000269A3D
+:1008F0002E9A2FEF80E792E0215080409040E1F760
+:1009000000C00000279A2F9A2FEF80E792E0215035
+:1009100080409040E1F700C0000025982D982FEF0F
+:1009200080E792E0215080409040E1F700C0000055
+:1009300026982E982FEF80E792E02150804090403B
+:10094000E1F700C0000027982F9856985E982598E8
+:100950002D9826982E9827982F98089589EA8093A5
+:10096000800089E08093810024982C983F988AB178
+:100970008F748AB96E98479A8BB1806B8BB9769ACF
+:100980000E9456040C94230580E28093010180911B
+:10099000510181110EC00E94BE0281E0809351017D
+:1009A0002FEF83ED90E3215080409040E1F700C0AD
+:1009B000000080E40E94C4028093010181112EC0D6
+:1009C0000E94EE0280930101811128C00E94EE0274
+:1009D00080930101811122C08FE30E94EE02809377
+:1009E000010181111BC00E94E60280E40E94C40242
+:1009F00080930101811112C08CE00E94EE0280936D
+:100A0000010181110BC00E94EE028093010181114E
+:100A100005C08FE30E94EE02809301010E94E6026E
+:100A200080910101089561110BC0FC01828188232E
+:100A300021F085EE0E94601103C085EE0E9428120D
+:100A400080E090E008950895EF92FF921F93CF9376
+:100A5000DF936091C1017091C2018091C3019091B7
+:100A6000C4010E945D1B56985E9821E030E0E82F9B
+:100A7000F0E0AF014E5A5E4F7A01A1E0B0E0122FD4
+:100A8000821308C0AF01E701988161E09F3F69F4DC
+:100A900060E00BC0A901B9016E5A7E4FEB0198814D
+:100AA00061E0911101C060E06195960FBA016E5A44
+:100AB0007E4FEB0198834C5F5F4F992321F194B1F6
+:100AC000ED0102C0CC0FDD1F4A95E2F7AE019C2B71
+:100AD00094B995B1492B45B9EB01488150E02130DB
+:100AE000310529F450938900409388001AC01230D0
+:100AF00029F450938B0040938A0013C050938D00CB
+:100B000040938C000EC094B1BD0102C0660F771FE8
+:100B10004A95E2F7AB014095942394B995B14923E6
+:100B200045B92F5F3F4F2430310509F0A8CFDF9141
+:100B3000CF911F91FF90EF90089581E0089581E09B
+:100B400008950C949F0508950F931F93CF93DF93FF
+:100B50008C01FC01C081D181CE010E94D619BE0159
+:100B60000E944D06EC01B8010E94A105882309F4FA
+:100B70008DC0F8018281882309F44AC08091610107
+:100B800081111FC0C431F0E5DF0709F051C00E9498
+:100B9000A30581E0809361010E94F51B90936001A1
+:100BA00080935F011092580110925A0110925901DE
+:100BB00010925C0110925B0110925E0110925D0137
+:100BC00065C080915F01909160010E94011C883C8A
+:100BD000910570F480915801E82FF0E0EE0FFF1FAF
+:100BE000E75AFE4FD183C0838F5F809358014EC078
+:100BF000C43880E5D80721F0C538D04501F13AC0A6
+:100C0000F8018281882341F01092560182E01EC0D3
+:100C1000C438E0E5DE0759F580915601811106C020
+:100C200086E20E94601186E20E94281282E01CC0C7
+:100C3000C438F0E5DF0741F3C538D045D9F4F801F1
+:100C40008281882331F01092570180E20E9477124E
+:100C50001DC080915701811106C087E20E9460117A
+:100C600087E20E94281280E20E947E120FC0C538DF
+:100C7000D04529F381E08093560180935701C80144
+:100C8000DF91CF911F910F910C949D0580E0DF9132
+:100C9000CF911F910F910895089596E0799FF001EB
+:100CA000112494E5899FE00DF11D1124E60FF11D3B
+:100CB000EE0FFF1FE65FFE4F859194910895880F18
+:100CC000991FFC01E657F040859194910895880F93
+:100CD000991FFC01E65FFE4F8591949108950F9353
+:100CE0001F93CF93DF93EC01811520E3920750F51A
+:100CF000C11580E2D80708F0C3C0CB3BD10590F402
+:100D0000C83AD10508F06AC0C53AD10508F05BC001
+:100D1000C430D10508F0D0C1219709F0CAC101E063
+:100D200010E00AC2CF3FD10511F008F0C5C1C03FA5
+:100D3000D10508F0A2C0CE01805E9109089708F4A1
+:100D4000BBC1B7C1C13090E5D90709F4A2C020F5F5
+:100D5000C0318FE4D80770F4C11590E4D90708F0CA
+:100D600094C0C11521E3D20708F0A3C1DD278E018D
+:100D7000106CE2C1C115D04509F09BC10E94DD1481
+:100D80008FEF94E32CE0815090402040E1F700C0C9
+:100D900000000E94501CD0C1C11597E5D90758F436
+:100DA000C03121E5D20708F01CC1C43180E5D80765
+:100DB00008F475C07EC1CE0190578115904108F0AE
+:100DC00078C1DF7073C1C53AD10509F477C1C63A5D
+:100DD000D10509F076C102E810E4AEC1C83AD105E8
+:100DE00009F472C1C93AD10509F471C1CA3AD105F1
+:100DF00009F470C1CB3AD10509F46FC1CC3AD105E1
+:100E000009F46EC1CD3AD10509F46DC1C03BD105DD
+:100E100009F46CC1CE3AD10509F46BC1CF3AD105C2
+:100E200009F46AC1C13BD10509F469C1C23BD105CE
+:100E300009F468C1C33BD10509F467C1C43BD105BE
+:100E400009F466C1C53BD10509F465C1C63BD105AE
+:100E500009F464C1C73BD10509F463C1C83BD1059E
+:100E600009F462C1C93BD10509F461C1CA3BD1058E
+:100E700009F460C100E014E45FC18E0110655CC13B
+:100E8000CE019F700E94670658C1DF708E01106A04
+:100E900053C18091DE0181608093DE014DC10E94CB
+:100EA000F51D811102C00E94DB1D0E94121E90E000
+:100EB0009093FF018093FE01C23080E5D80721F4B2
+:100EC0008091FE01816086C0C43090E5D90721F48D
+:100ED0008091FE0182607EC0C63020E5D20721F4F9
+:100EE0008091FE01846076C0C83080E5D80719F48F
+:100EF0008091FE0127C0CA3090E5D90721F4809186
+:100F0000FE01806167C0CC3020E5D20721F48091DA
+:100F1000FE0180625FC0CE3080E5D80721F4809169
+:100F2000FE01806457C0C03190E5D90721F480915B
+:100F3000FE0180684FC0C23120E5D20729F48091BC
+:100F4000FE018460886046C0C33080E5D80721F484
+:100F50008091FE018E7F3EC0C53090E5D90721F417
+:100F60008091FE018D7F36C0C73020E5D20721F485
+:100F70008091FE018B7F2EC0C93080E5D80719F41F
+:100F80008091FE0126C0CB3090E5D90721F48091F5
+:100F9000FE018F7E1FC0CD3020E5D20721F4809165
+:100FA000FE018F7D17C0CF3080E5D80721F48091F6
+:100FB000FE018F7B0FC0C13190E5D90721F48091EC
+:100FC000FE018F7707C0C331D04531F48091FE0117
+:100FD0008B7F877F8093FE018091FE010E94161E09
+:100FE000ABC08D2F99278F70992781309105D9F447
+:100FF0009E012370332702C0880F991F2A95E2F7BC
+:101000009C688E0144E0000F111F4A95E1F700270C
+:101010001370802B912B53E0CC0FDD1F5A95E1F715
+:10102000C076DD272FC08230910531F4DC2FCC272C
+:101030008E01016F106A80C08330910569F4CE0182
+:101040008370992701E010E002C0000F111F8A95FC
+:10105000E2F7C8019C680FC084309105B9F4CE0155
+:101060008370992701E010E002C0000F111F8A95DC
+:10107000E2F7C8019A6823E0CC0FDD1F2A95E1F75B
+:10108000C07ED7708C010C2B1D2B56C0853091056E
+:1010900031F4DC2FCC278E01046F106A4DC0069707
+:1010A00009F04AC0CF71DD27DC2FCC278E011062FA
+:1010B00043C000E010E040C08E013EC001E810E4F3
+:1010C0003BC003E810E438C002EE14E435C009EE7A
+:1010D00014E432C00AEE14E42FC005EB14E42CC073
+:1010E00006EB14E429C007EB14E426C00CEC14E46E
+:1010F00023C00DEC14E420C003E815E41DC00AE889
+:1011000015E41AC002E915E417C004E915E414C097
+:1011100001E216E411C003E216E40EC004E216E494
+:101120000BC005E216E408C006E216E405C007E2BB
+:1011300016E402C00AE216E4C801DF91CF911F91C4
+:101140000F91089596E0799FF001112494E5899F0D
+:10115000E00DF11D1124E60FF11DEE0FFF1FE65FFC
+:10116000FE4F85919491803E9105E0F4803C91057D
+:1011700058F58133910509F46FC048F4893291051F
+:1011800009F463C08A32910509F46DC072C08933D5
+:101190009105E9F082389105D1F08533910509F484
+:1011A0004DC067C0833E910581F138F4803E9105C2
+:1011B000B9F0823E9105D9F05CC0863E910561F19F
+:1011C000873E9105A1F155C00E945F0608952091C8
+:1011D000FE0120FD02C021FF4CC080EE90E049C01E
+:1011E0008091FE0180FFF9CF89E390E042C08091B9
+:1011F000FE0182FF0EC08091FE0184FF03C080E0EB
+:1012000090E037C083EE90E034C08091FE0182FF11
+:10121000F2CF82EE90E02DC08091FE0183FF0BC0E3
+:101220008091FE0184FDEBCF87EE90E022C080919B
+:10123000FE0183FFF5CF86EE90E01BC08091FE019A
+:1012400085FF07C089E290E014C08091FE0185FF10
+:10125000F9CF85E390E00DC08091FE0186FF07C0C5
+:101260008AE290E006C08091FE0186FFF9CF81E31B
+:1012700090E00E946F06089508950C943C098091B7
+:1012800072010895CF93DF9300D01F92CDB7DEB7E0
+:101290009C018091F501843019F593E099833B839B
+:1012A0002A839093E9008FEF9091E800815095FD9B
+:1012B00006C095ED9A95F1F700008111F5CF809168
+:1012C000E80085FF0DC040E050E063E070E0CE0133
+:1012D00001960E94AC0B8091E8008E778093E80025
+:1012E0000F900F900F90DF91CF910895CF93DF93E0
+:1012F00000D01F92CDB7DEB72091F501243021F543
+:1013000022E029839B838A8383E08093E9008FEF27
+:101310009091E800815095FD06C095ED9A95F1F702
+:1013200000008111F5CF8091E80085FF0DC040E0FD
+:1013300050E063E070E0CE0101960E94AC0B80911A
+:10134000E8008E778093E8000F900F900F90DF9168
+:10135000CF9108952091F5012430F1F422E02093FB
+:10136000E9002FEF3091E800215035FD06C035ED42
+:101370003A95F1F700002111F5CF2091E80025FF03
+:101380000BC040E050E065E070E00E94AC0B809143
+:10139000E8008E778093E8000895CF93DF93EC0107
+:1013A0009091F501943009F046C080910C0188239A
+:1013B000D9F080910D018823B9F09093E9008FEF67
+:1013C0009091E800815095FD06C095E19A95F1F75E
+:1013D00000008111F5CF8091E80085FF2CC040E02E
+:1013E00050E060E170E017C081E08093E9008FEF8A
+:1013F0009091E800815095FD06C095ED9A95F1F722
+:1014000000008111F5CF8091E80085FF14C040E015
+:1014100050E068E070E0CE010E94AC0B8091E800E3
+:101420008E778093E80080E1FE01A2E6B1E00190B2
+:101430000D928A95E1F7DF91CF9108958091F401A3
+:10144000811109C00E94410D0E949E0D8091E20011
+:1014500084608093E20008951092F4010895089545
+:101460000C9485220E94E61B0E948B220E9444104D
+:101470000C943D0942E061EC81E00E94BB0C42E02B
+:1014800061EC82E00E94BB0C42E061EC83E00E94D0
+:10149000BB0C42E161EC84E00C94BB0C8091F70141
+:1014A000833009F455C030F4813071F0823009F492
+:1014B0008EC008958A3009F47AC08B3009F460C078
+:1014C000893009F09CC020C08091F601813A09F072
+:1014D00096C08091E800877F8093E8008091FA01B0
+:1014E0009091FB01892B21F460E182E691E003C039
+:1014F00060E080E090E070E00E94F70B8091E800EF
+:101500008B778093E80008958091F601813209F08D
+:1015100076C08091FA019091FB01009719F0039732
+:1015200009F06DC08091E800877F8093E80080918A
+:10153000E80082FD05C08091F5018111F8CF5FC000
+:101540008091F100809372018091E8008B7753C005
+:101550008091F601813A09F052C08091FA01909190
+:10156000FB01892B09F04BC08091E800877F8093B5
+:10157000E8008091E80080FFFCCF80910C0136C02C
+:101580008091F6018132D9F58091FA019091FB01A9
+:10159000892BA9F58091E800877F8093E8000E945D
+:1015A000F00C8091F80180930C010C94DD14809173
+:1015B000F601813221F58091E800877F8093E80071
+:1015C0000E94F00C8091F90180937301089580913D
+:1015D000F601813AA1F48091E800877F8093E800CA
+:1015E0008091E80080FFFCCF809173018093F1002F
+:1015F0008091E8008E778093E8000C94F00C0895B9
+:1016000084B7877F84BF88E10FB6F8948093600029
+:10161000109260000FBE90E080E80FB6F8948093BF
+:101620006100909361000FBE0E9493100E94410DD3
+:101630000E949E0D8091E20084608093E200789485
+:101640000E9424100E94951082E091E00E943F10B9
+:101650000E9473228091F501853069F40E94AD1BD0
+:101660008091F3018823B1F30E94D81B882391F362
+:101670000E94960BEFCF0E949B10ECCF292F3327AF
+:1016800023303105C9F064F42130310581F0223076
+:10169000310509F043C08DE690E026E333E042C017
+:1016A00021323105F1F02232310541F137C082E1BA
+:1016B00090E023EA33E036C099278130910541F06C
+:1016C0008230910541F0892B49F5E2E3F3E005C052
+:1016D000EAE1F3E002C0E2E0F3E0849190E09F01F0
+:1016E00021C06430D8F4E62FF0E0EE0FFF1FEE5D6E
+:1016F000FE4F2081318189E090E014C0643070F4A5
+:1017000070E0FB01EE0FFF1FE65EFE4F208131818E
+:10171000FB01EA5EFE4F808190E004C080E090E033
+:1017200020E030E0FA0131832083089580E189BD13
+:1017300082E189BD09B400FEFDCF8091D8008F7D84
+:101740008093D8008091E00082608093E0008091D7
+:10175000E00081FDFCCF0895CF92DF92EF92FF92DF
+:101760000F931F93CF93DF93EC018B016A010E94CB
+:101770000F0D811133C0C114D10439F0F6018081FD
+:101780009181081B190BC80FD91FE12CF12C0115F1
+:10179000110519F18091E80085FD16C08091E800DF
+:1017A0008E778093E800C114D10449F0F60180815E
+:1017B0009181E80EF91EF182E08285E00FC00E945F
+:1017C0000F0D882321F30AC089918093F100015005
+:1017D0001109FFEFEF1AFF0ADACF80E0DF91CF9116
+:1017E0001F910F91FF90EF90DF90CF90089520917F
+:1017F000FC013091FD012617370748F0611571058E
+:1018000039F42091E8002E772093E80001C0B90157
+:1018100040E061157105A9F12091F501222309F439
+:1018200043C0253009F442C02091E80023FD40C0A8
+:101830002091E80022FD32C02091E80020FFE9CF8E
+:101840004091F3002091F20030E0342BFC01CF01F5
+:101850006115710559F02830310540F4819180936C
+:10186000F100615071092F5F3F4FF1CF41E0283007
+:10187000310509F040E02091E8002E772093E80040
+:10188000C8CF4111C9CF0AC08091F501882361F00A
+:10189000853061F08091E80083FD0AC08091E80006
+:1018A00082FFF2CF80E0089582E0089583E00895FA
+:1018B00081E008952091FC013091FD012617370742
+:1018C00048F06115710539F42091E8002E772093D6
+:1018D000E80001C0B901FC0120E06115710591F13A
+:1018E0008091F501882309F440C0853009F43FC098
+:1018F0008091E80083FD3DC08091E80082FD2FC00B
+:101900008091E80080FFE9CF2091F3008091F20000
+:1019100090E0922B6115710559F08830910540F4E3
+:1019200024912093F1003196615071090196F2CF14
+:1019300021E0089709F020E08091E8008E778093FD
+:10194000E800CBCF2111CCCF0AC08091F5018823CC
+:1019500061F0853061F08091E80083FD0AC08091DC
+:10196000E80082FFF2CF80E0089582E0089583E0EE
+:10197000089581E00895982F973058F59093E900E5
+:10198000981739F07091EC002091ED005091F00023
+:1019900003C0242F762F50E021FF19C03091EB00B7
+:1019A0003E7F3093EB003091ED003D7F3093ED00B2
+:1019B0003091EB0031603093EB007093EC0020939A
+:1019C000ED005093F0002091EE0027FF07C09F5FCD
+:1019D000D3CF8F708093E90081E0089580E008956F
+:1019E0008091F60187FF11C08091E80082FD05C05B
+:1019F0008091F5018111F8CF11C08091E8008B77BB
+:101A00000BC08091F501882349F08091E80080FFA8
+:101A1000F8CF8091E8008E778093E80008952091B8
+:101A2000E4003091E50095E64091EC00842F817050
+:101A300040FF22C08091E80080FD1CC08091F5012C
+:101A4000882391F0853091F08091EB0085FD10C0E6
+:101A50004091E4005091E5004217530729F39A01A1
+:101A6000915011F784E0089582E0089583E008958D
+:101A700081E0089580E008954091E80042FFDECFC4
+:101A800008950E94AF0D0E94B70DE0EEF0E0808156
+:101A900081608083E8EDF0E080818F77808319BCDE
+:101AA000A7EDB0E08C918E7F8C9380818F7E8083B8
+:101AB0001092F40108950F931F93CF93DF930E9428
+:101AC000AF0D0E94B70DC8EDD0E088818F77888375
+:101AD00088818068888388818F7D888319BC109273
+:101AE000F5011092F1011092F3011092F20100EE53
+:101AF00010E0F80180818B7F8083888181608883FA
+:101B000042E060E080E00E94BB0CE1EEF0E080810A
+:101B10008E7F8083E2EEF0E080818160808380812F
+:101B200088608083F80180818E7F808388818061D6
+:101B30008883DF91CF911F910F910895E8EDF0E038
+:101B400080818F7E8083E7EDF0E0808181608083FB
+:101B500084E082BF81E08093F4010C945B0DE8ED9A
+:101B6000F0E080818E7F80831092E20008951092D1
+:101B7000DA001092E10008951F920F920FB60F92B3
+:101B800011242F933F934F935F936F937F938F9382
+:101B90009F93AF93BF93EF93FF938091E10082FFF8
+:101BA0000BC08091E20082FF07C08091E1008B7F33
+:101BB0008093E1000E9423108091DA0080FF1FC013
+:101BC0008091D80080FF1BC08091DA008E7F8093C7
+:101BD000DA008091D90080FF0DC080E189BD82E1EB
+:101BE00089BD09B400FEFDCF81E08093F5010E941C
+:101BF0001E0A05C019BC1092F5010E942C0A8091A2
+:101C0000E10080FF19C08091E20080FF15C0809143
+:101C1000E2008E7F8093E2008091E20080618093F9
+:101C2000E2008091D80080628093D80019BC85E0E2
+:101C30008093F5010E94300A8091E10084FF30C05A
+:101C40008091E20084FF2CC080E189BD82E189BDE2
+:101C500009B400FEFDCF8091D8008F7D8093D8001D
+:101C60008091E1008F7E8093E1008091E2008F7E81
+:101C70008093E2008091E20081608093E200809195
+:101C8000F101882311F084E007C08091E30087FD13
+:101C900002C081E001C083E08093F5010E94320A16
+:101CA0008091E10083FF29C08091E20083FF25C07D
+:101CB0008091E100877F8093E10082E08093F501CD
+:101CC0001092F1018091E1008E7F8093E10080917C
+:101CD000E2008E7F8093E2008091E2008061809339
+:101CE000E20042E060E080E00E94BB0C8091F000E6
+:101CF00088608093F0000E942F0AFF91EF91BF91BE
+:101D0000AF919F918F917F916F915F914F913F9193
+:101D10002F910F900FBE0F901F9018951F920F924A
+:101D20000FB60F9211242F933F934F935F936F93AE
+:101D30007F938F939F93AF93BF93CF93DF93EF9353
+:101D4000FF93C091E900CF708091EC00D82FD17043
+:101D500080FDD0E81092E9008091F000877F8093A9
+:101D6000F00078940E94D20E1092E9008091F00069
+:101D700088608093F000CD2BCF70C093E900FF9175
+:101D8000EF91DF91CF91BF91AF919F918F917F9113
+:101D90006F915F914F913F912F910F900FBE0F90D8
+:101DA0001F9018951F93CF93DF93CDB7DEB7AA97F7
+:101DB0000FB6F894DEBF0FBECDBFE6EFF1E088E0CE
+:101DC0008E0F9091F10091938E13FBCF0E944E0ADB
+:101DD0008091E80083FF1FC18091F6019091F70187
+:101DE000492F50E04A30510508F015C1FA01EA5A6E
+:101DF000FF4F0C940D24803881F0823809F00BC11C
+:101E00008091FA018F708093E9008091EB0085FB4F
+:101E1000882780F91092E90006C08091F201909124
+:101E2000F301911182609091E800977F9093E80010
+:101E30008093F1001092F100C8C0282F2D7F09F087
+:101E4000EAC0882319F0823061F0E5C08091F80182
+:101E5000813009F0E0C0933009F080E08093F30115
+:101E60002BC08091F801811127C08091FA018F70F9
+:101E700009F4D1C08093E9002091EB0020FF1CC041
+:101E8000933021F48091EB00806214C09091EB00BC
+:101E900090619093EB0021E030E0A90102C0440F73
+:101EA000551F8A95E2F74093EA001092EA0080916C
+:101EB000EB0088608093EB001092E9008091E800CD
+:101EC000877F86C08111A7C01091F8011F7780918C
+:101ED000E3008078812B8093E3008091E800877F86
+:101EE0008093E8000E94F00C8091E80080FFFCCF16
+:101EF0008091E30080688093E300111102C082E0CA
+:101F000001C083E08093F50186C08058823008F0DC
+:101F100082C08091F8019091F9018C3D53E09507C2
+:101F200079F583E08A838AE289834FB7F894DE01EA
+:101F3000139620E03EE051E2E32FF0E0509357008B
+:101F4000E49120FF03C0E295EF703F5FEF708E2FAA
+:101F500090E0EA3010F0C79601C0C0968D939D9333
+:101F60002F5F243149F74FBF8091E800877F80932E
+:101F7000E8006AE270E0CE0101960E94F70B14C0FF
+:101F8000AE014F5F5F4F6091FA010E943E0BBC01B2
+:101F9000009709F440C09091E800977F9093E80083
+:101FA00089819A810E945A0C8091E8008B778093F6
+:101FB000E80031C0803879F58091E800877F809310
+:101FC000E8008091F1018093F1008091E8008E7724
+:101FD0008093E8000E94F00C1EC081111CC09091FB
+:101FE000F8019230C0F48091E800877F8093E80088
+:101FF0009093F1010E94F00C8091F101811106C0D3
+:102000008091E30087FD02C081E001C084E08093FD
+:10201000F5010E943A0A8091E80083FF0AC080918E
+:10202000E800877F8093E8008091EB0080628093D6
+:10203000EB00AA960FB6F894DEBF0FBECDBFDF91BE
+:10204000CF911F9108950895CF938091F501882332
+:10205000A1F0C091E900CF709091EC00892F8170C0
+:1020600090FD80E8C82B1092E9008091E80083FD84
+:102070000E94D20ECF70C093E900CF910895909343
+:102080007901809378010895E0917801F0917901C8
+:10209000309721F00190F081E02D099480E00895BF
+:1020A000E0917801F0917901309721F00280F3817D
+:1020B000E02D09940895E0917801F091790130972D
+:1020C00021F00480F581E02D099408952091760196
+:1020D000309177018217930771F090937701809385
+:1020E0007601E0917801F0917901309721F0068036
+:1020F000F781E02D099408952091740130917501C4
+:102100008217930771F09093750180937401E091A9
+:102110007801F0917901309721F00084F185E02D6C
+:102120000994089508950C9492100E94EC1B0E944B
+:1021300031030C94AE1C9F92AF92BF92CF92DF926C
+:10214000EF92FF920F931F93CF93DF9300D000D0B5
+:1021500000D0CDB7DEB70E9449030DE010E0AA24FD
+:10216000A394B12C902E802F0E94370498012558FB
+:102170003E4F6901F901F080F826A1F401501109E0
+:1021800088F78FEF89838A831B820E94F51B816009
+:10219000782F9D838C8349815A816B818D810E9428
+:1021A00032112FC09091DE0191FF04C08E830E94F6
+:1021B0003D048E8125E030E0A501022E01C0440FD0
+:1021C0000A94EAF7E42E4F21C1F029839A828E21E6
+:1021D00091E009F490E09B830E94F51B8160782FC9
+:1021E0009D838C8349815A816B818D810E9432113C
+:1021F000F6018081E826E08204C021503109E0F632
+:10220000BDCF0E94951F10917A010E9444101817AB
+:10221000B9F00E94441080937A0126960FB6F89484
+:10222000DEBF0FBECDBFDF91CF911F910F91FF9009
+:10223000EF90DF90CF90BF90AF909F900C943D09AE
+:1022400026960FB6F894DEBF0FBECDBFDF91CF91BB
+:102250001F910F91FF90EF90DF90CF90BF90AF90C4
+:102260009F900895CF93DF93CDB7DEB72B970FB62E
+:10227000F894DEBF0FBECDBF4F83588769877A873A
+:102280008B87DE01119686E0FD0111928A95E9F7B0
+:1022900085E0FE01379601900D928A95E1F749811C
+:1022A0005A816B817C818D819E810E947B172B9648
+:1022B0000FB6F894DEBF0FBECDBFDF91CF9108956A
+:1022C000CF93882309F4C2C0C82F823859F40E94E2
+:1022D000441081FDBBC089E30E94551A0E94221B55
+:1022E00089E30CC0833879F40E94441080FDAEC0AD
+:1022F00083E50E94551A0E94221B83E50E94971ACB
+:10230000CF910C94221B843859F40E94441082FD12
+:102310009DC087E40E94551A0E94221B87E4EECFDD
+:102320008CEF8C0F813A48F48C2F0E94D8218111B8
+:102330008DC08C2F0E94551AE3CF80E28C0F88301D
+:1023400048F4C77081E001C0880FCA95EAF70E947F
+:10235000DB1AD6CF8BE58C0F833078F4C53A29F0A1
+:10236000C63A31F083E890E005C081E890E002C011
+:1023700082E890E0CF910C94661088E58C0F833151
+:1023800008F064C0C83A39F1C93A41F1CA3A49F192
+:10239000CB3A51F1CC3A59F1CD3A61F1C03B69F1F8
+:1023A000CE3A71F1CF3A79F1C13B81F1C23B89F16B
+:1023B000C33B91F1C43B99F1C53BA1F1C63BA9F1E7
+:1023C000C73BB1F1C83BB9F1C93BC1F1CA3BC9F147
+:1023D00080E090E038C082EE90E035C089EE90E079
+:1023E00032C08AEE90E02FC085EB90E02CC086EBE7
+:1023F00090E029C087EB90E026C08CEC90E023C0F1
+:102400008DEC90E020C083E891E01DC08AE891E067
+:102410001AC082E991E017C084E991E014C081E21A
+:1024200092E011C083E292E00EC084E292E00BC021
+:1024300085E292E008C086E292E005C087E292E081
+:1024400002C08AE292E0CF910C947C10CF91089563
+:10245000882309F44BC0823859F40E94441081FF4C
+:1024600045C089E30E94551A0E94221B89E30CC0D3
+:10247000833871F40E94441080FF38C083E50E94C5
+:10248000551A0E94221B83E50E94971A0C94221B66
+:10249000843859F40E94441082FF28C087E40E94C7
+:1024A000551A0E94221B87E4EFCF9CEF980F913AB8
+:1024B00058F390E2980F983050F4877091E001C083
+:1024C000990F8A95EAF7892F0E94E11ADFCF9BE5E1
+:1024D000980F933020F480E090E00C946610885AB6
+:1024E000833120F480E090E00C947C1008958823E0
+:1024F00021F00E94DB1A0C94221B0895882321F0FE
+:102500000E94E11A0C94221B08957F928F929F9251
+:10251000AF92BF92CF92DF92EF92FF920F931F93F1
+:10252000CF93DF931F92CDB7DEB77C01C62E772EF7
+:10253000FC01058102950F70128111110E94F81A99
+:102540000E944E1A882379F0112369F080E28C0DE5
+:10255000883048F082E00E94371A0E944E1A91E0BB
+:10256000D82ED92601C0D12CE72DE295EF70F0E0EE
+:10257000E05AFF4F0C940D24872D807F072D0F709C
+:10258000882311F00295007F112389F0002309F4BC
+:1025900090C180E28C0D883020F4802F0E94DB1ADD
+:1025A00003C0802F0E94EB1A0E94221B82C18C2D37
+:1025B0000E942812002309F495C180E28C0D883016
+:1025C00020F4802F0E94E11A03C0802F0E94F11A8C
+:1025D0000E94221B87C1972D907F872D8F7090328C
+:1025E00011F08295807FCC2021F0F1E0CF16B1F080
+:1025F0001EC0112349F0002309F414C1013009F071
+:1026000011C10E940B1B6EC1002319F0013009F4A7
+:1026100069C189830E940E1B89810AC1112321F09F
+:10262000023008F05FC1FEC001115CC101C111237D
+:1026300021F0002309F4F6C03CC1002309F4F8C0DE
+:102640003EC1872D86958695837090E0009719F09E
+:10265000019761F047C1112321F08C2D972D9370C4
+:1026600002C080E090E00E9466103CC1112321F07E
+:102670008C2D972D937002C080E090E00E947C101A
+:1026800031C18C2D112319F00E949D1E02C00E94A1
+:10269000051F0E948A1F26C1872D837009F052C032
+:1026A000111120C18C2D829586958770880F880F17
+:1026B0009C2D9F70892E912CA12CB12C082E04C02A
+:1026C000880C991CAA1CBB1C0A94D2F7C4FE14C027
+:1026D0000FE010E020E030E0B901A80104C0440F91
+:1026E000551F661F771F8A95D2F7CB01BA016095F7
+:1026F00070958095909503C060E070E0CB01272D28
+:1027000026952695237030E02230310569F023307C
+:10271000310589F0682979298A299B2921303105D9
+:1027200071F00E94C318DEC0682979298A299B2983
+:102730000E94DF18D7C00E94C318C501B4010E94CF
+:10274000A718D0C0112319F0872D817001C086957C
+:10275000882309F4C7C08C2D829586958770880FD1
+:10276000880F9C2D9F70892E912CA12CB12C082EA6
+:1027700004C0880C991CAA1CBB1C0A94D2F7C4FE86
+:1027800014C00FE010E020E030E0B901A80104C05F
+:10279000440F551F661F771F8A95D2F7CB01BA01E8
+:1027A000609570958095909503C060E070E0CB01D6
+:1027B000272D269526952370422F50E04230510553
+:1027C00069F04330510589F0682979298A299B29C4
+:1027D0004130510571F00E949D1984C06829792902
+:1027E0008A299B290E94B9197DC00E949D19C501A3
+:1027F000B4010E94811976C08C2D90E0FC01E05E4E
+:10280000F109E531F10508F050C0E059FF4F0C9493
+:102810000D240C2D0F70872D8F71112331F00E9424
+:102820001A19802F0E9477125DC00E943B19802FD9
+:102830000E947E1257C0112339F0011153C0872D19
+:102840008F710E9460194EC0023008F04BC0F7CF64
+:10285000112339F0872D8F710E941A1943C011235B
+:10286000C9F3872D8F710E943B193CC0112329F0B9
+:10287000872D8F710E94051935C00E94FB1832C048
+:10288000112351F0172D1F71812F0E941A1963E037
+:10289000812F0E942E1A26C081E00E94371A023032
+:1028A00008F182E00E94371A1DC0112331F0002385
+:1028B00089F28C2D0E94601115C0002391F28C2D9D
+:1028C0000E9428120FC0472D4F706C2DC7010E9427
+:1028D00013050E941F1806C0472D4F706C2DC701AD
+:1028E0000E944C06DD20F9F00E942A1A80FD1BC0D0
+:1028F000F70112820E94241A0E941A19C7010E942D
+:10290000A2140E94241A0F90DF91CF911F910F9172
+:10291000FF90EF90DF90CF90BF90AF909F908F90FF
+:102920007F900C943B190F90DF91CF911F910F91E5
+:10293000FF90EF90DF90CF90BF90AF909F908F90DF
+:102940007F9008950F931F93CF93DF93EC018881BD
+:1029500099812B813C81232BB9F09F3F11F48F3F4C
+:1029600099F0CE010E94A405882371F068817981D5
+:102970008A810E94201A8C010E94D5190E949C18FD
+:10298000B801CE010E948512DF91CF911F910F9166
+:1029900008950E94F81A0E94081B0E94CD1A0E94F6
+:1029A000221B0E943B200E948A1F80E090E00E9430
+:1029B000661080E090E00C947C100E94E81A0C9461
+:1029C000C9140E94151A292F22952F7030E02C303F
+:1029D00031054CF42A3031056CF422503109223093
+:1029E0003105A8F407C02C30310569F02F303105CE
+:1029F00051F00DC0803F69F018F4803E40F409C0EA
+:102A0000843F29F406C093FB882780F9089580E06D
+:102A1000089581E00895CF93DF9300D000D01F92F6
+:102A2000CDB7DEB70F900F900F900F900F90DF9102
+:102A3000CF910895CF93DF9300D000D000D0CDB7D1
+:102A4000DEB726960FB6F894DEBF0FBECDBFDF917E
+:102A5000CF9108951F93CF93DF93C091890116E022
+:102A600080918A01C81799F0D0E01C9FF0011D9F4A
+:102A7000F00D1124E557FE4F408151816281738131
+:102A8000848195810E941A152196C770E9CFDF9144
+:102A9000CF911F9108954091BB015091BC0160916D
+:102AA000BD017091BE018091BF019091C0010C9455
+:102AB0001A158091C00182958F7009F054C08091E1
+:102AC000BD01882309F44FC080918901A0918A013A
+:102AD0006091BB017091BC014091BE015091BF015A
+:102AE000B6E08A1709F43FC090E041155105C1F1E5
+:102AF0007F3F11F46F3FA1F1B89FF001B99FF00D36
+:102B00001124E557FE4F218172132AC020816213E0
+:102B100027C02281211124C0238134812417350745
+:102B200010F421503109241B350B283C3105C0F429
+:102B30002091C0012F7020612093C00126E0289FC2
+:102B4000F001299FF00D1124E057FE4F80818F7016
+:102B5000806180838BEB91E00E94A2140C942A1573
+:102B600001968770BECF0895CF92DF92EF92FF92C9
+:102B70000F931F93CF93DF93CDB7DEB762970FB656
+:102B8000F894DEBF0FBECDBF8C0185E0F801DE01F9
+:102B90001D9601900D928A95E1F7D8014C911196FE
+:102BA0005C91119712966C9112971396CD90DC90D0
+:102BB00014973091BB017091BC018091BE0190913E
+:102BC000BF01009709F46BC17F3F19F43F3F09F43F
+:102BD00066C1E090BD01EE2009F4C0C02091C001A3
+:102BE000C816D90628F0F601E81BF90BCF0104C07E
+:102BF000809590958C0D9D1DFF24F394883C910544
+:102C000078F0F12C207F09F0C6C07C2DD98AC88AC3
+:102C100089890E940B158BEB91E00E94A214B1C030
+:102C2000822F807F09F046C0751314C0341312C080
+:102C3000611110C02F7020612093C0010E944B15BC
+:102C40008BEB91E00E94A2148091C001D8011596EF
+:102C50008C932EC0CD2819F15F3F11F44F3FF9F04E
+:102C6000F62E61111CC08091890120918A0136E005
+:102C7000821709F45AC090E0389FF001399FF00D97
+:102C80001124E557FE4F7181571306C07081471319
+:102C900003C07281711103C001968770E9CFF62ECF
+:102CA000662309F418C18091C00181608093C0013E
+:102CB000F12C11C1751308C0341306C0611104C092
+:102CC0008091C001D801C3C04D875E878D859E85E8
+:102CD0006A8B0E94E1146A898823E1F16623D1F1AD
+:102CE0002091C001822F82958F7090E0029774F03E
+:102CF0008091BB019091BC0198878F831986DB86F8
+:102D0000CA862C87CE0107960E94A21486E0F8019D
+:102D1000ABEBB1E001900D928A95E1F70E94591555
+:102D20000E944B15FF24F394D6C04D875E878D8596
+:102D30009E850E94151A292F22952F7030E022308F
+:102D400031050CF0BCC09F7009F0B6C0805E8830C1
+:102D500008F4C1C0C8010E94A214E4CFC816D90665
+:102D600008F453C0F601E81BF90BCF01883C91052C
+:102D700008F450C0F12C7C2DD98AC88A89890E9418
+:102D80000B15EBEBF1E086E0DF011D928A95E9F788
+:102D90000E944B15A0C0751314C0341312C06111EA
+:102DA00010C08091C001F8018583C8010E94A2145F
+:102DB00086E0EBEBF1E0DF011D928A95E9F7FE2C4E
+:102DC0008AC04D875E878D859E856A8B0E94E1143F
+:102DD0006A89882309F4BECF662309F4BBCF20910A
+:102DE000C001822F82958F7090E002970CF48ECFF5
+:102DF0008091BB019091BC019A8389831B82DD8203
+:102E0000CC822E83CE0101967FCF809590958C0D3C
+:102E10009D1DACCFF62E662309F49CCF75132EC0F2
+:102E200034132CC02091C00120FD1FC0822F829539
+:102E30008F70D9F0D80115962C9315978F3049F0E3
+:102E40008F5F982F9295907F822F8F70892B159688
+:102E50008C93C8010E94A21486E0F801ABEBB1E0AC
+:102E600001900D928A95E1F793CF86E0F801ABEBE4
+:102E7000B1E001900D928A95E1F72DC04D875E87F4
+:102E80008D859E850E94E114811140CF8091C00103
+:102E900081608093C001C8010E94A2141CC06623F7
+:102EA00009F458CF4D875E878D859E850E94E11479
+:102EB000882309F44FCF2ACF811148CF0CC024308A
+:102EC00031050CF047CF9F7009F440CFF801958190
+:102ED000907F09F03BCF8F2D62960FB6F894DEBF3E
+:102EE0000FBECDBFDF91CF911F910F91FF90EF905B
+:102EF000DF90CF9008951F93CF93DF93CDB7DEB7C8
+:102F00002C970FB6F894DEBF0FBECDBF4F83588706
+:102F100069877A878B879C87CE0107960E94B415B4
+:102F2000882369F08F8198852A853B85232BF1F1D1
+:102F30009F3F09F063C08F3F09F060C037C086E053
+:102F4000FE013796DE01119601900D928A95E1F708
+:102F50006F817885EA85FB85309741F17F3F11F4D9
+:102F60006F3F21F120918A0130E0C90101968770FD
+:102F700099274091890150E08417950709F447C0CB
+:102F800069837A83FD83EC8396E0929FD001939FBF
+:102F9000B00D1124A557BE4FFE01319601900D9240
+:102FA0009A95E1F780938A010E942A1516E0809194
+:102FB000890190918A018917C1F1189FC0011124DC
+:102FC00085579E4F0E94B415882379F1E0918901BD
+:102FD0001E9FF0011124E557FE4F4081518162810F
+:102FE0007381848195810E941A158091890190E0F6
+:102FF00001968770992780938901D9CF4F81588591
+:1030000069857A858B859C850E941A15CFCF0E9491
+:10301000DD1410928A0110928901EBEBF1E086E059
+:10302000DF011D928A95E9F7C1CF2C960FB6F8946F
+:10303000DEBF0FBECDBFDF91CF911F910895EF92FC
+:10304000FF920F931F93CF93DF938C01009709F4A6
+:103050006CC0F12CEE24E394E8012196F8018491F0
+:10306000843740F4843008F051C0813081F08230E0
+:1030700019F15BC0853709F444C0A8F19CE7980FAB
+:10308000903708F052C08F770E94281241C00E5F1F
+:103090001F4FFE01C49180E28C0F883048F4C77046
+:1030A0008E2D01C0880FCA95EAF70E94FB1A14C042
+:1030B0008C2F0E9460112DC00E5F1F4FFE01C49126
+:1030C00080E28C0F883058F4C7708E2D01C0880FB5
+:1030D000CA95EAF70E94011B0E94221B1AC08C2F7E
+:1030E0000E94281216C00E5F1F4FFE01C491CC2310
+:1030F00081F08FE99FE00197F1F700C00000C15017
+:10310000F6CF0E5F1F4FFE01F49003C00E946011C6
+:103110008E018F2D882309F49FCFEFE9FFE03197CF
+:10312000F1F700C000008150F5CFDF91CF911F91E2
+:103130000F91FF90EF90089508956093C5017093EB
+:10314000C6018093C7019093C8010C94C9140F93D2
+:103150001F930091C5011091C6012091C7013091C4
+:10316000C801DC01CB01802B912BA22BB32B8093C8
+:10317000C5019093C601A093C701B093C8011F91E8
+:103180000F910C94C9140F931F930091C5011091D6
+:10319000C6012091C7013091C801DC01CB01802319
+:1031A0009123A223B3238093C5019093C601A093DA
+:1031B000C701B093C8011F910F910C94C9140F93CC
+:1031C0001F930091C5011091C6012091C701309154
+:1031D000C801DC01CB0180279127A227B327809368
+:1031E000C5019093C601A093C701B093C8011F9178
+:1031F0000F910C94C9141092C1011092C201109247
+:10320000C3011092C4010C94C91441E050E060E085
+:1032100070E004C0440F551F661F771F8A95D2F7D0
+:103220004093C1015093C2016093C3017093C401E4
+:103230000C94C91441E050E060E070E004C0440F19
+:10324000551F661F771F8A95D2F78091C101909113
+:10325000C201A091C301B091C401482B592B6A2B24
+:103260007B2B4093C1015093C2016093C3017093C3
+:10327000C4010C94C91441E050E060E070E004C067
+:10328000440F551F661F771F8A95D2F740955095BA
+:10329000609570958091C1019091C201A091C30188
+:1032A000B091C401482359236A237B234093C10171
+:1032B0005093C2016093C3017093C4010C94C9146C
+:1032C00041E050E060E070E004C0440F551F661F0D
+:1032D000771F8A95D2F78091C1019091C201A09188
+:1032E000C301B091C401482759276A277B2740931F
+:1032F000C1015093C2016093C3017093C4010C9447
+:10330000C9140F931F930091C1011091C201209124
+:10331000C3013091C401DC01CB01802B912BA22B86
+:10332000B32B8093C1019093C201A093C301B093CA
+:10333000C4011F910F910C94C9140F931F93009116
+:10334000C1011091C2012091C3013091C401DC017F
+:10335000CB0180239123A223B3238093C1019093B7
+:10336000C201A093C301B093C4011F910F910C94AB
+:10337000C9140F931F930091C1011091C2012091B4
+:10338000C3013091C401DC01CB0180279127A22722
+:10339000B3278093C1019093C201A093C301B0935E
+:1033A000C4011F910F910C94C9140895CF92DF921C
+:1033B000EF92FF920F931F93CF93DF938C01C090F6
+:1033C000C501D090C601E090C701F090C80180917E
+:1033D000C1019091C201A091C301B091C401C82A5A
+:1033E000D92AEA2AFB2ACFE1D0E0D701C6010C2E68
+:1033F00004C0B695A795979587950A94D2F780FF54
+:1034000006C0B8018C2F0E94A208019721F42197D1
+:1034100060F780E001C08C2FDF91CF911F910F9159
+:10342000FF90EF90DF90CF900895CF93DF93EC0162
+:103430000E94D619BE010E94A208DF91CF91089583
+:10344000CB010E94151A08958091C9018595859533
+:10345000859508958091C9018770089598E0899FA6
+:1034600090011124262B2093C9010C941A19209144
+:10347000C901809582238093C901982F977069F4C0
+:1034800030E0482F552747FD50952417350729F080
+:103490008595859585950C943B1908959091C90162
+:1034A000977081E009F480E0089590910C019923D0
+:1034B00021F090910D01911109C020910E013091E0
+:1034C0000F01F90132969FEF40E01FC0982F9695AB
+:1034D000969596959F3050F5E0910E01F0910F0171
+:1034E000E90FF11D877021E030E0A90102C0440F0F
+:1034F000551F8A95E2F7CA019181892B818308952E
+:103500009F3F39F04F5F4E3041F051915813F8CF43
+:103510000DC05111F7CF942FF5CF9F3F39F0F9012E
+:10352000E90FF11D97FDFA95828308950895909112
+:103530000C01992321F090910D01911109C0209166
+:103540000E0130910F01F9013296205F3F4F1FC0ED
+:10355000982F9695969596959F30F0F4E0910E01F0
+:10356000F0910F01E90FF11D877021E030E0A90112
+:1035700002C0440F551F8A95E2F7CA0180959181D8
+:103580008923818308953196E217F30729F090810A
+:103590009813F9CF1082F7CF089581E090E0E09181
+:1035A0000E01F0910F01E80FF91F10820196803192
+:1035B0009105A9F708959091DD01892B8093DD0194
+:1035C000089580959091DD0189238093DD01089510
+:1035D0001092DD0108959091DC01892B8093DC012C
+:1035E000089580959091DC0189238093DC010895F2
+:1035F0001092DC0108959091DB01892B8093DB010F
+:10360000089580959091DB0189238093DB010895D3
+:103610001092DB0108958093CA0108951092CA01A7
+:10362000089580910E0190910F01FC0131969C014B
+:10363000205F3F4F80E0919191118F5FE217F30778
+:10364000D1F70895E0910E01F0910F018091DD0115
+:103650008083E0910E01F0910F0190818091DC0157
+:10366000892B8083E0910E01F0910F019081809170
+:10367000DB01892B80838091CA01882361F0E0916E
+:103680000E01F0910F019081892B80830E94111B04
+:1036900081111092CA0180910E0190910F010C943A
+:1036A000501020E0009739F0AC01415051098423BB
+:1036B00095232F5FF7CF822F0895CF92DF92EF925D
+:1036C000FF926C01EE24FF24C114D104E104F10443
+:1036D00021F0C701B60120E101C020E0C72ED82E9D
+:1036E000E92EFF24C114D104E104F10419F0285F8C
+:1036F000C701B6016B017C0154E0F694E794D794BE
+:10370000C7945A95D1F7C114D104E104F10419F01A
+:103710002C5FC701B6016B017C0142E0F694E7948F
+:10372000D794C7944A95D1F7C114D104E104F104A8
+:1037300019F02E5FC701B601DC01CB01B695A79544
+:1037400097958795892B8A2B8B2B09F02F5F822FDA
+:10375000FF90EF90DF90CF9008958091F501843035
+:1037600021F11092DF0120E488E190E00FB6F89497
+:10377000A895809360000FBE2093600080E00E94B7
+:103780003D0983B7817F846083BF83B7816083BF36
+:103790007894889583B78E7F83BF88E10FB6F894BD
+:1037A00080936000109260000FBE08950895089500
+:1037B0000E94D61B0E9449030E94D71B0E943E0410
+:1037C00091E0811101C090E0892F08950E94DD14DD
+:1037D0000E9444100C943D0982E084BD93E095BDA5
+:1037E0009AEF97BD80936E0008952FB7F89480915B
+:1037F000E0019091E101A091E201B091E3012FBFBE
+:103800000895CF92DF92EF92FF920F931F932FB7FD
+:10381000F8944091E0015091E1016091E2017091D2
+:10382000E3012FBF6A017B01EE24FF248C0120E01D
+:1038300030E0C016D106E206F30610F441505109FB
+:103840009A01281B390BC9011F910F91FF90EF902E
+:10385000DF90CF9008951F920F920FB60F92112410
+:103860008F939F93AF93BF938091E0019091E1017B
+:10387000A091E201B091E3010196A11DB11D8093D9
+:10388000E0019093E101A093E201B093E301BF91C5
+:10389000AF919F918F910F900FBE0F901F90189531
+:1038A0000E94410DF8942FEF87EA91E62150804065
+:1038B0009040E1F700C0000087E090EBDC018093CE
+:1038C000FF0190930002A0930102B09302029CE0DA
+:1038D00088E10FB6F894A895809360000FBE90938E
+:1038E0006000FFCFEF92FF920F931F93CF93DF9370
+:1038F000D82FCDE08C2F0E94370405E010E0E82E91
+:10390000F12CC701002E02C0959587950A94E2F725
+:1039100080FF09C0602F7C2F80E00E944D06D813E5
+:1039200002C081E006C00150110958F7C15010F7DC
+:1039300080E0DF91CF911F910F91FF90EF9008955C
+:10394000CF93C82F8CE20E94721C882321F08C2F09
+:10395000CF910C94721C80E0CF910895CF930E9478
+:10396000F51D811102C00E94DB1DC5E6C15049F062
+:103970000E9449038FE39CE90197F1F700C0000022
+:10398000F5CF89E20E94A01C811113C18AE20E9436
+:10399000A01C81110E94DB1D85E00E94A01C8111EA
+:1039A0000E94501C0E94001E8093DE0187E00E944E
+:1039B000A01C8823A9F18BE10E94A01C882351F050
+:1039C0008091DE0181FB222720F991E0922790FB74
+:1039D00081F90EC08EE00E94A01C882361F08091C6
+:1039E000DE0182FB222720F991E0922790FB82F9E9
+:1039F0008093DE0115C080E10E94A01C9091DE0141
+:103A0000882341F093FB222720F981E0822780FB65
+:103A100093F904C0892F809580FB90F99093DE0183
+:103A20008091DE010E94041E0E94121E8093FE01FE
+:103A300080EE0E94A01C882341F08091FE01982F07
+:103A4000909590FB80F98093FE0189E30E94A01C71
+:103A5000882359F08091FE0181FB222720F991E013
+:103A6000922790FB81F98093FE0182EE0E94A01CB8
+:103A7000882359F08091FE0182FB222720F991E0F2
+:103A8000922790FB82F98093FE0186EE0E94A01C93
+:103A9000882359F08091FE0183FB222720F991E0D1
+:103AA000922790FB83F98093FE0183EE0E94A01C75
+:103AB000882359F08091FE0184FB222720F991E0B0
+:103AC000922790FB84F98093FE0185E30E94A01C5D
+:103AD000882359F08091FE0185FB222720F991E08F
+:103AE000922790FB85F98093FE0181E30E94A01C40
+:103AF000882359F08091FE0186FB222720F991E06E
+:103B0000922790FB86F98093FE0181E10E94A01C20
+:103B1000882359F08091FE0187FB222720F991E04C
+:103B2000922790FB87F98093FE018091FE010E940D
+:103B3000161E8091FE0187FB882780F980930D0176
+:103B400087E20E94A01CC82F8EE10E94A01C811158
+:103B5000C2608FE10E94A01C8111C46080E20E94BB
+:103B6000A01C8111C86081E20E94A01C8111C0616B
+:103B700082E20E94A01C8111C06283E20E94A01C0C
+:103B80008111C06484E20E94A01C882311F0C068E7
+:103B900002C0CC2329F08C2F0E940D1E6C2F03C075
+:103BA0000E94091E682F70E080E090E0CF910C9495
+:103BB0009D18CF9108956DEE7EEF80E090E00E9419
+:103BC000472460E082E090E00E94352460E083E0DA
+:103BD00090E00E94352460E084E090E00E9435246B
+:103BE00060E085E090E00C94352480E090E00E9455
+:103BF0002F2421E08D3E9E4F09F020E0822F089572
+:103C000082E090E00C942724682F82E090E00C94EE
+:103C1000352483E090E00C942724682F83E090E023
+:103C20000C94352484E090E00C942724682F84E0E1
+:103C300090E00C9435248091E60180FF0BC06091E8
+:103C4000130185E0689FB0011124759567957595FE
+:103C500067952BC081FF09C06091130185E0689FC3
+:103C6000B00111247595679520C082FF07C060914F
+:103C7000130185E0689FB001112417C09091E701FE
+:103C80009923D1F060911201961788F720911301C2
+:103C900085E0289F90011124929FA001939F500DD1
+:103CA000112470E0CA010E94F9236038710540F4C4
+:103CB0006115710539F002C065E070E0862F089546
+:103CC0008FE7089581E008958091E60180FF08C0A4
+:103CD0006091110170E0759567957595679521C0A4
+:103CE00081FF06C06091110170E07595679519C05C
+:103CF00082FF04C06091110170E010C09091E70153
+:103D00009923C1F0609110019617A0F780911101DD
+:103D1000899FC001112470E00E94F9236038710569
+:103D200028F46115710521F0862F08958FE7089515
+:103D300081E0089561E070E0F4CF803F21F40E94BB
+:103D40001B1E819504C0813F29F40E941B1E809395
+:103D5000EA010895823F21F40E941B1E819504C050
+:103D6000833F29F40E941B1E8093E9010895893F37
+:103D700019F40E94641E05C08A3F31F40E94641E3B
+:103D800081958093EB0108958B3F21F40E94641E7E
+:103D9000819504C08C3F29F40E94641E8093EC013D
+:103DA0000895843F21F48091E801816017C0853F28
+:103DB00021F48091E801826011C0863F21F4809156
+:103DC000E80184600BC0873F21F48091E80188609E
+:103DD00005C0883F31F48091E80180618093E8015B
+:103DE00008958D3F21F48091E60181600BC08E3FE4
+:103DF00021F48091E601826005C08F3F29F4809113
+:103E0000E60184608093E6010895803F39F4809153
+:103E1000EA0187FF6CC01092EA0169C0813F29F472
+:103E20008091EA011816BCF362C09091E901823FCB
+:103E300029F497FF5CC01092E90159C0833F19F43F
+:103E40001916CCF354C0893F41F48091EB01181648
+:103E50000CF04DC01092EB014AC08A3F29F48091CA
+:103E6000EB0187FF44C0F6CF8B3F39F48091EC0122
+:103E700087FF3DC01092EC013AC08C3F29F480913D
+:103E8000EC011816BCF333C0843F21F48091E801A3
+:103E90008E7F17C0853F21F48091E8018D7F11C08E
+:103EA000863F21F48091E8018B7F0BC0873F21F48E
+:103EB0008091E801877F05C0883F31F48091E80157
+:103EC0008F7E8093E80113C08D3F21F48091E6013D
+:103ED0008E7F0BC08E3F21F48091E6018D7F05C05F
+:103EE0008F3F29F48091E6018B7F8093E6018091DA
+:103EF000E90181110EC08091EA0181110AC080910F
+:103F0000EB01811106C08091EC01811102C0109279
+:103F1000E701089588EE91E00E945B100E94F51B76
+:103F20009093E5018093E40108951F93CF93DF936D
+:103F30008091E4019091E5010E94011CAC019091F7
+:103F4000E701992321F02091140130E006C020916F
+:103F500015018AE0289F900111244217530708F4A5
+:103F600086C08091E901C091EA01D091EB011091E6
+:103F7000EC01811107C0C11176C0D11174C01111BB
+:103F800072C075C09F3F19F09F5F9093E7011816AC
+:103F900024F40E941B1E8093E9018091E90187FFB0
+:103FA00005C00E941B1E81958093E9011C1624F414
+:103FB0000E941B1E8093EA018091EA0187FF05C0E1
+:103FC0000E941B1E81958093EA016091E90166239E
+:103FD00039F1C091EA01CC2319F1772767FD70957B
+:103FE000872F972F0E940A2323E333E343E35FE302
+:103FF0000E946E230E94D7226093E9016C2F7727DD
+:1040000067FD7095872F972F0E940A2323E333E3E0
+:1040100043E35FE30E946E230E94D7226093EA018C
+:104020001D1624F40E94641E8093EB018091EB0125
+:1040300087FF05C00E94641E81958093EB011116D5
+:1040400024F40E94641E8093EC018091EC0187FFB0
+:1040500005C00E94641E81958093EC01DF91CF9191
+:104060001F910C948A1F9F3F09F08ECF96CFDF914E
+:10407000CF911F910895E8EEF1E085E0DF011D92F8
+:104080008A95E9F71092E7011092E60108958330CE
+:1040900081F128F4813059F08230D1F008958530D3
+:1040A00009F449C0B8F1863009F456C008958091EA
+:1040B0001501262F30E0280F311D2F3F310524F444
+:1040C000680F6093150108958FEF8093150108958F
+:1040D00080911401262F30E0280F311D2F3F31052C
+:1040E00024F4680F6093140108958FEF80931401F6
+:1040F000089580911301262F30E0280F311D2F3FA6
+:10410000310524F4680F6093130108958FEF8093B5
+:104110001301089580911201262F30E0280F311DE0
+:104120002F3F310524F4680F6093120108958FEF3B
+:1041300080931201089580911101262F30E0280FFD
+:10414000311D2F3F310524F4680F6093110108954C
+:104150008FEF80931101089580911001262F30E098
+:10416000280F311D2F3F310524F4680F6093100193
+:1041700008958FEF809310010895833011F128F492
+:10418000813049F0823091F00895853081F120F13D
+:104190008630C1F1089580911501681720F4861BBF
+:1041A00080931501089510921501089580911401CE
+:1041B000681720F4861B809314010895109214014F
+:1041C000089580911301681720F4861B80931301D2
+:1041D000089510921301089580911201681720F438
+:1041E000861B809312010895109212010895809108
+:1041F0001101681720F4861B809311010895109215
+:104200001101089580911001681720F4861B809396
+:10421000100108951092100108950F931F938D318E
+:1042200009F46BC008F03FC08E3009F47FC0C0F4C1
+:10423000873009F469C068F4863009F0B1C0809114
+:10424000DE01817F8E7F8093DE0181E08093EE012D
+:10425000A8C0883009F4A2C08B3009F49FC0A0C068
+:10426000863109F49BC078F4803109F472C0813141
+:1042700009F096C00E94DD1490910D0181E089271C
+:1042800080930D018BC0893109F488C08B3109F00E
+:1042900087C08091DE0181FB222720F991E09227DF
+:1042A00090FB81F94CC0853309F470C048F4873223
+:1042B00009F46CC008F459C0893209F467C070C0B1
+:1042C000833438F48A3308F04EC0883309F466C06A
+:1042D00067C0833409F45AC0883409F061C00E9471
+:1042E000DD140FEF13ED20E3015010402040E1F703
+:1042F00000C000000E94501C51C00E9491220E94E8
+:1043000044100E943D094AC09091DE01892F80959A
+:10431000817080FB90F929F0966098609093DE019F
+:1043200040C0997F977F9093DE0138C08091DE0175
+:1043300082FB222720F991E0922790FB82F980935B
+:10434000DE01992359F18091DE0181608093DE01C5
+:1043500025C08091DE0183FB222720F991E092277E
+:1043600090FB83F9ECCF895301C08D5141E050E0BF
+:1043700060E070E08A019B0104C0000F111F221F42
+:10438000331F8A95D2F7C901B80104C061E070E01B
+:1043900080E090E00E949D180E94DD1481E001C041
+:1043A00080E01F910F91089580E0089580E00895C6
+:1043B000CF93C82F8091EE01813079F018F08230D0
+:1043C000E9F187C0E0910E01F0910F018081813108
+:1043D00069F0823209F07FC009C0E0910E01F091CE
+:1043E0000F018081813111F0823261F48C2F0E94A3
+:1043F000D421811104C08C2F0E940D211DC081E0A9
+:1044000090E01AC08C2F0E94D621811114C0C431B3
+:1044100079F048F4CB3079F0C03109F060C082E027
+:104420008093EE0108C0C93219F0C83321F057C09B
+:104430001092EE0154C081E0817053C0C93289F1FD
+:1044400018F5C43171F1A8F4C73009F046C08AE00C
+:104450008093150194E19093140193E090931301DC
+:104460008093120188E08093110188E2809310010B
+:1044700034C0CE51C63088F5EC2FF0E0E65DFE4F3B
+:1044800080818093ED0129C0CE34E9F020F4CB3453
+:1044900021F56AE013C0C13579F0C235F1F461E06D
+:1044A0000DC08091ED01882319F01092ED0115C027
+:1044B00081E08093EE0115C061E006C08091ED01BE
+:1044C0000E9447200AC06AE08091ED010E94BD2051
+:1044D00004C01092EE0180E004C081E002C080E0E0
+:1044E000ABCFCF910895E1E8F0E0808188608083D0
+:1044F0008081816080838FB7F89493E090938900E6
+:1045000090ED909388008FBF0895EFE6F0E08081F2
+:10451000826080830895EFE6F0E080818D7F808364
+:104520000895EFE6F0E0908182E089278083089586
+:104530001F920F920FB60F9211242F933F934F9318
+:104540005F936F937F938F939F93AF93BF93EF93FB
+:10455000FF938091EF019091F00101969093F0010B
+:104560008093EF01811103C082E00E943D09E09138
+:10457000F001E695E695F0E0E055FB4FE49180917F
+:10458000EF018E1303C080E00E943D09FF91EF917F
+:10459000BF91AF919F918F917F916F915F914F915B
+:1045A0003F912F910F900FBE0F901F90189504D040
+:1045B0006894B1118DC0089570D088F09F5790F025
+:1045C000B92F9927B751A0F0D1F0660F771F881F38
+:1045D000991F1AF0BA95C9F712C0B13081F077D09F
+:1045E000B1E0089574C0672F782F8827B85F39F03D
+:1045F000B93FCCF3869577956795B395D9F73EF497
+:1046000090958095709561957F4F8F4F9F4F08953E
+:10461000E89409C097FB3EF490958095709561955C
+:104620007F4F8F4F9F4F9923A9F0F92F96E9BB2712
+:104630009395F695879577956795B795F111F8CF8E
+:10464000FAF4BB0F11F460FF1BC06F5F7F4F8F4FF9
+:104650009F4F16C0882311F096E911C0772321F0EF
+:104660009EE8872F762F05C0662371F096E8862F87
+:1046700070E060E02AF09A95660F771F881FDAF7DE
+:10468000880F9695879597F9089557FD9058440F90
+:10469000551F59F05F3F71F04795880F97FB991FA1
+:1046A00061F09F3F79F0879508951216130614065E
+:1046B000551FF2CF4695F1DF08C0161617061806EB
+:1046C000991FF1CF86957105610508940895E894C6
+:1046D000BB2766277727CB0197F908950BD078C0C1
+:1046E00069D028F06ED018F0952309F05AC05FC049
+:1046F0001124EECFCADFA0F3959FD1F3950F50E0C0
+:10470000551F629FF001729FBB27F00DB11D639F83
+:10471000AA27F00DB11DAA1F649F6627B00DA11D29
+:10472000661F829F2227B00DA11D621F739FB00DCF
+:10473000A11D621F839FA00D611D221F749F33273F
+:10474000A00D611D231F849F600D211D822F762FD8
+:104750006A2F11249F5750408AF0E1F088234AF0D5
+:10476000EE0FFF1FBB1F661F771F881F9150504021
+:10477000A9F79E3F510570F014C0AACF5F3FECF33C
+:10478000983EDCF3869577956795B795F795E7950D
+:104790009F5FC1F7FE2B880F911D9695879597F91E
+:1047A000089597F99F6780E870E060E008959FEFB3
+:1047B00080EC089500240A941616170618060906B8
+:1047C000089500240A941216130614060506089587
+:1047D000092E0394000C11F4882352F0BB0F40F40F
+:1047E000BF2B11F460FF04C06F5F7F4F8F4F9F4F4F
+:1047F000089597FB072E16F4009407D077FD09D093
+:104800000E94132407FC05D03EF4909581959F4F9C
+:104810000895709561957F4F0895EE0FFF1F0590E5
+:10482000F491E02D0994AA1BBB1B51E107C0AA1FFC
+:10483000BB1FA617B70710F0A61BB70B881F991F41
+:104840005A95A9F780959095BC01CD010895F999E5
+:10485000FECF92BD81BDF89A992780B50895A8E151
+:10486000B0E042E050E00C944F24262FF999FECF9F
+:1048700092BD81BDF89A019700B4021639F01FBAB3
+:1048800020BD0FB6F894FA9AF99A0FBE08950196D2
+:10489000272F0E9436240C943524DC01CB01FC0127
+:1048A000F999FECF06C0F2BDE1BDF89A319600B489
+:0E48B0000D9241505040B8F70895F894FFCF94
+:1048BE0002203F09CD09AA09760942090101CB015F
+:1048CE0028080A03140A3F4D363971042404EE03F6
+:1048DE00B503480361037A0393030102030405063B
+:0448EE0007080900AE
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/dave/keymap.c b/keyboards/ergodox_ez/keymaps/dave/keymap.c new file mode 100644 index 000000000..e9480af3e --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/dave/keymap.c @@ -0,0 +1,199 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define PROG 1 // programming +#define NAVI 2 // navigation + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | | 6 | 7 | 8 | 9 | 0 | - | BkSpce | + * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | Y | | G | Y | U | I | O | P | Enter | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | LCtrl | A | S | D | F | G |------| |------| H | J | K | L | ; | Enter | + * |--------+------+------+------+------+------| H | | B |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |`/Ctrl| \ | | | LAlt | | RAlt | [ | ] | |'/Ctrl| + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | PrtS | PrtS | | CtAl | CtAl | + * ,------+------+------| |------+------+------. + * | | | L1 | | L1 | | | + * | Spce | ~L2 +------| |------+ ~L1 | Spce | + * | | | LGui | | RGui | | | + * `--------------------' `--------------------' + */ +// 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, KC_6, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, + KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, + 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), + KC_SPC, MO(NAVI), KC_LGUI, + // right hand + KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC, + KC_G, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_ENTER, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENTER, + 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), + KC_RGUI, MO(PROG), KC_SPC + ), + +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | K/ | K* | K- | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | ( | ) | | | | | | | K7 | K8 | K9 | K+ | # | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | { | } | ` |------| |------| | K4 | K5 | K6 | K+ | ' | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | | K1 | K2 | K3 | K= | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | K0 | K0 | K. | K= | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | L2 | | L2 | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// PROGRAMMING +[PROG] = KEYMAP( + // left hand + 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, + TO(NAVI, ON_PRESS), + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_TRNS, KC_TRNS, KC_NO, KC_PSLS, KC_PAST, KC_PMNS, KC_EQUAL, + KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_NUHS, + KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_QUOT, + 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), + KC_TRNS, KC_TRNS, KC_TRNS +), + +/* Keymap 2: Navigation and system keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | Home | Up | End | Ins | PgUp | | | | | | Ins | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | Left | Down | Rght | Del | PgDn |------| |------| | Back | Del | Fwrd | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | Lclk | MsUp | Rclk | | | | | | | Prev | Play | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | MsLt | MsDn | MsRt | | |VolDn | Mute |VolUp | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | L0 | | L0 | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// NAVIGATION +[NAVI] = KEYMAP( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_TRNS, KC_HOME, KC_UP, KC_END, KC_INS, KC_PGUP, KC_TRNS, + KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_DELT, KC_PGDN, + 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), + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_WBAK, KC_DELT, KC_WFWD, KC_TRNS, KC_TRNS, + 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), + KC_TRNS, KC_TRNS, KC_TRNS +), +}; + +const uint16_t PROGMEM fn_actions[] = { + //[1] = ACTION_LAYER_TAP_TOGGLE(PROG), // FN1 - Momentary Layer 1 (Symbols) + //[2] = ACTION_LAYER_TAP_TOGGLE(NAVI) // FN2 - Momentary Layer 2 (Navigation) +}; + +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) { + /* leds is a static array holding the current brightness of each of the + * three keyboard LEDs. It's 4 long simply to avoid the ugliness of +1s and + * -1s in the code below, and because wasting a byte really doesn't matter + * that much (no, it *doesn't*, stop whinging!). Note that because it's + * static it'll maintain state across invocations of this routine. + */ + static uint8_t leds[4]; + uint8_t led; + uint8_t layer = biton32(layer_state); + + ergodox_board_led_off(); + + /* Loop over each LED/layer */ + for (led = 1; led <= 3; ++led) { + /* If the current layer matches the current LED, increment its + * brightness by 1 up to a maximum of 255. If the current layer doesn't + * match, decrement its brightness by 1 down to a minimum of zero. + */ + leds[led] += (layer == led) ? + (leds[led] < 255 ? 1 : 0): + (leds[led] > 0 ? -1 : 0); + /* Set LED state according to the new brightness */ + if (leds[led]) { + ergodox_right_led_on(led); + ergodox_right_led_set(led, leds[led]); + } + else { + ergodox_right_led_off(led); + } + } + + +}; diff --git a/keyboards/ergodox_ez/keymaps/dave/readme.md b/keyboards/ergodox_ez/keymaps/dave/readme.md new file mode 100644 index 000000000..aa0f9bd19 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/dave/readme.md @@ -0,0 +1,38 @@ +This keymap is my preferred layout (after a certain amount of experimentation). +The rationale behind the design is as follows: + +I grew up typing from a very early age and thus never learned the "correct" way +to touch type (essentially, I'm self-taught). As a, result my fingers don't +tend to stay on the "home keys" and occasionally my right hand wants to type +keys that are on the left of the keyboard, and vice versa. + +Hence, despite liking the idea of split keyboards in principle, I've never been +able to get on with them because the split simply doesn't work with my style of +typing. The Ergodox solves this neatly by virtue of having a few extra keys in +the "middle" of the keyboard which I can utilise for deliberate redundancy. +Thus in this keymap there are two "6" keys (one on the left, one on the right) +and likewise Y, H, G, and B are all duplicated to enable one-handed patterns +that I use frequently (e.g. "byobu" with the right hand, "yes" with the left, +etc.). + +I occasionally use the numeric pad for data entry, thus this is duplicated +under the natural home position of the right hand in layer 1 (activated by +holding one of the right thumb buttons), while the cursor keys are duplicated +under the classic WASD gaming layout of the left hand in layer 2 (activated by +holding one of the left thumb buttons). Various other useful keys also appear +in these layers (brackets and symbols for coding in layer 1, navigation and +F-keys in layer 2, etc.). + +Finally, modifier keys like Ctrl, Shift, and Alt, along with Backspace and +Enter are all in traditional locations in an effort to reuse existing muscle +memory as much as possible (keys like =, #, and ' are in layer 1). The layout +maps are in the comments of keymap_dave.c so I won't bother duplicating them +here. + +Oh, and the LEDs are rather pimped ... because I could! + +Anyway, although I'm sure this keymap won't be to many people's taste you might +find some interesting ideas in here for your own layouts. Do tweet me +(@waveform80) if you have any questions / suggestions / bugs. + +Dave. diff --git a/keyboards/ergodox_ez/keymaps/default/compiled.hex b/keyboards/ergodox_ez/keymaps/default/compiled.hex new file mode 100644 index 000000000..0285acb6b --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/default/compiled.hex @@ -0,0 +1,1153 @@ +:100000000C940E030C9452030C9452030C94520360
+:100010000C9452030C9452030C9452030C9452030C
+:100020000C9452030C9452030C94740E0C94460FCF
+:100030000C9452030C9452030C9452030C945203EC
+:100040000C9452030C9416220C9452030C945203F9
+:100050000C9452030C94141D0C9452030C945203F0
+:100060000C9452030C9452030C9452030C945203BC
+:100070000C9452030C9452030C9452030C945203AC
+:100080000C9452030C9452030C9452030C9452039C
+:100090000C9452030C9452030C9452030C9452038C
+:1000A0000C9452030C9452030C945203AB0FCD0FDB
+:1000B000B810CD0FB8100F103210B81087109A106A
+:1000C00074137413A313A313DB13FD132515251544
+:1000D00008142515AF14AF1418152515251520156E
+:1000E000BC14BC14BC14BC14BC14BC14BC14BC1490
+:1000F000BC14BC14BC14BC14BC14BC14BC14BC1480
+:10010000CE14DC14E314EA14F4146572676F646FA0
+:10011000785F657A2F64656661756C74204020761F
+:10012000342E302D3232322D67623835643266001B
+:100130000000F0A12E004C002A00E1003541000033
+:100140001E00140004001D6134004D001F001A0041
+:1001500016001B00E1042A0020000800070006002A
+:1001600050002C0021001500090019004F004A0022
+:10017000220017000A0005000000656450000153CA
+:100180000000006F0000E3004F0001530000006713
+:100190000000E20023001C000B0011000000296198
+:1001A000240018000D00100052004B0025000C0028
+:1001B0000E00360051002800260012000F00370004
+:1001C0002F002B00270013003342386130004E000F
+:1001D0002D0031003468E500C1000000003001004E
+:1001E00001000100010000003A001E02200222026C
+:1001F000010001003B001F02210223020100010057
+:100200003C002F0226022F00010001003D003002B9
+:1002100027023000010001003E00310235003502A6
+:1002200000000100010001000000010000000100C9
+:100230000100010000000100000001003F00520029
+:1002400051002402000001004000240021001E0093
+:10025000010001004100250022001F0037000100BD
+:100260004200260023002000270001004300250251
+:100270002E0231002E000100440045000100010063
+:100280000100000001000100010001000100000068
+:100290000100010001000100010001000100010056
+:1002A000F2000100010001000100F000F100010076
+:1002B000F400010001000100F3000100F50001005D
+:1002C0000100010001000100000001000100010027
+:1002D0000000010000000100010001000000010019
+:1002E0000000010001000100010001000000010008
+:1002F0000100010001000100A9000100010001004E
+:100300000100AC00AA00B600010001000100AB0032
+:10031000A80001000100010001000100010001002E
+:1003200001000100AE00010001000000000000001B
+:10033000000000002A2B2800000000000000000040
+:100340000000000000000029000000002C1E3420E6
+:10035000212224342627252E362D3738271E1F200C
+:100360002122232425263333362E37381F04050651
+:100370000708090A0B0C0D0E0F1011121314151695
+:100380001718191A1B1C1D2F3130232D3504050693
+:100390000708090A0B0C0D0E0F1011121314151675
+:1003A0001718191A1B1C1D2F3130354C0000000086
+:1003B000000000000000000000000000000000003D
+:1003C000000000000000000000000000000101012A
+:1003D0000101010001010101000000000000000016
+:1003E0000000000000000100010001010101010105
+:1003F00001010101010101010101010101010101ED
+:1004000001010101010101000000010100000000E3
+:1004100000000000000000000000000000000000DC
+:10042000000000000000000101010100160345006A
+:10043000720067006F0044006F00780020004500E4
+:100440005A00000016034500720067006F00440068
+:100450006F007800200045005A00000004030904E2
+:1004600009026D00040100A0FA0904000001030163
+:100470000100092111010001224000070581030844
+:10048000000A090401000103010200092111010011
+:1004900001224D000705820308000A090402000139
+:1004A0000300000009211101000122360007058325
+:1004B0000308000A090403000103000000092111D8
+:1004C0000100012239000705840310000112011008
+:1004D0000100000008EDFE07130100010200010504
+:1004E000010906A101050719E029E7150025019575
+:1004F0000875018102050819012905950575019105
+:10050000029501750391010507190029771500254A
+:1005100001957875018102C005010980A10185025C
+:1005200016010026B7001A01002AB70075109501C0
+:100530008100C0050C0901A1018503160100269C5C
+:10054000021A01002A9C02751095018100C0050164
+:100550000902A1010901A1000509190129051500D8
+:10056000250195057501810295017503810105013C
+:10057000093009311581257F9502750881060938F2
+:100580001581257F950175088106050C0A3802152D
+:1005900081257F950175088106C0C005010906A166
+:1005A00001050719E029E715002501950875018166
+:1005B0000295017508810105081901290595057540
+:1005C0000191029501750391010507190029FF1595
+:1005D0000026FF00950675088100C000000000009D
+:1005E000000000000000010204060A0F17202C3A48
+:1005F0004A5D71879DB3C7DAE9F5FCFFFCF5E9DADE
+:10060000C7B39D87715D4A3A2C20170F0A06040272
+:1006100001000000000000000000000011241FBEC7
+:10062000CFEFDAE0DEBFCDBF04B603FE24C0809179
+:10063000FD019091FE01A091FF01B0910002873071
+:10064000904BA740B04BB9F41092FD011092FE01FF
+:100650001092FF011092000214BE84B7877F84BFFE
+:1006600088E10FB6F89480936000109260000FBE8E
+:10067000E0E0FFE3099511E0A0E0B1E0EAEBF7E488
+:1006800002C005900D92A433B107D9F711E0A4E39D
+:10069000B1E001C01D92AD3FB107E1F70E94BE0B72
+:1006A0000C94DB230C9400001092B9008AE0809334
+:1006B000B800089594EA9093BC009091BC0097FF15
+:1006C000FCCF9091B900987F983021F0903111F0D3
+:1006D00081E008958093BB0084E88093BC00809102
+:1006E000BC0087FFFCCF8091B900887F883111F072
+:1006F000803471F780E0089584E98093BC00809194
+:10070000BC0084FDFCCF08958093BB0084E88093F7
+:10071000BC008091BC0087FFFCCF9091B900987F0E
+:1007200081E0983209F480E0089584E88093BC0069
+:100730008091BC0087FFFCCF8091BB00089580B3FF
+:100740008C7080BB81B3836F81BB08958091010160
+:10075000811115C080E40E945A0380930101811128
+:100760000CC082E10E94840380930101811105C0C5
+:100770008FEF0E948403809301010E947C0384B167
+:10078000807F84B985B1807F85B98AB1837F8AB93A
+:100790008BB1837F8BB93E98469808950E946D0572
+:1007A000809301010E94A6030E949F03E3E4F1E00D
+:1007B000A5E3B1E011921D9281E0E135F807D1F790
+:1007C0000C9457050E946D05809301010E94A603B9
+:1007D0000E949F03E3E4F1E0A5E3B1E011921D92D2
+:1007E00081E0E135F807D1F70895BF92CF92DF920B
+:1007F000EF92FF920F931F93CF93DF9380910101AC
+:10080000882379F0809134018F5F809334018111C6
+:1008100008C00E946D0580930101811102C00E94F1
+:10082000FF0405E311E0C0E0D0E0DD24D39482E0D2
+:10083000C82EEE24E394F12CC73000F5809101011D
+:10084000811162C080E40E945A03809301018111EA
+:1008500012C082E10E9484038093010181110BC0C8
+:10086000C7010C2E01C0880F0A94EAF780950E94F8
+:100870008403809301010E947C0346C0CA30A1F02A
+:1008800028F4C83059F0C93061F005C0CC3089F087
+:1008900070F0CD3089F0209A289810C0219A2998BC
+:1008A0000DC0229A2A980AC0239A2B9807C0529A00
+:1008B00001C0539A5B9802C03E9A4698E0EAEA95D6
+:1008C000F1F78FB179995AC092E081708D25892B0B
+:1008D0007C9B02C090E001C094E0892B7D9B02C00C
+:1008E00090E001C098E0892B7E9B02C090E001C09F
+:1008F00090E1892B9FB19095991F9927991F929507
+:10090000990F907E892B0FC08091010181114BC0FE
+:1009100080E40E945A0380930101882389F1B12C5D
+:100920000E947C038B2DF8019081981719F0808329
+:10093000C09200010E94A60321960F5F1F4FCE3088
+:10094000D10509F079CF80910001882371F18150A0
+:1009500080930001882339F08FE99FE00197F1F738
+:1009600000C0000022C0A3E4B1E0E5E3F1E0819122
+:100970008D9391E0E334F907D1F717C090E0A5CF4C
+:1009800083E10E948403809301018111C8CF81E437
+:100990000E945A03809301018111C1CF0E949503E7
+:1009A000B82EB094BDCF80E0BECF0E94FD0481E0A0
+:1009B000DF91CF911F910F91FF90EF90DF90CF903B
+:1009C000BF900895E82FF0E0ED5BFE4F8081089521
+:1009D00008951F93CF93DF93C3E4D1E010E0899192
+:1009E00090E00E94391C180F81E0C135D807B9F793
+:1009F000812FDF91CF911F9108950C94CA055698CD
+:100A00005E9825982D9826982E9827982F988FEFE6
+:100A100090E0909389008093880090938B0080935E
+:100A20008A0090938D0080938C00259A2D9A2FEF49
+:100A300080E792E0215080409040E1F700C0000044
+:100A4000269A2E9A2FEF80E792E021508040904026
+:100A5000E1F700C00000279A2F9A2FEF80E792E07D
+:100A6000215080409040E1F700C0000025982D986B
+:100A70002FEF80E792E0215080409040E1F700C0E6
+:100A8000000026982E982FEF80E792E021508040BA
+:100A90009040E1F700C0000027982F9856985E9884
+:100AA00025982D9826982E9827982F98089589EAAA
+:100AB0008093800089E08093810024982C983F984F
+:100AC0008AB18F748AB96E98479A8BB1806B8BB953
+:100AD000769A0E94FF040C94C90580E2809301017C
+:100AE0008091510181110EC00E94540381E08093D6
+:100AF00051012FEF83ED90E3215080409040E1F7CA
+:100B000000C0000080E40E945A038093010181111B
+:100B10002EC00E94840380930101811128C00E948D
+:100B2000840380930101811122C08FE30E9484031A
+:100B30008093010181111BC00E947C0380E40E940C
+:100B40005A0380930101811112C08CE00E9484033A
+:100B50008093010181110BC00E94840380930101E5
+:100B6000811105C08FE30E948403809301010E94DC
+:100B70007C03809101010895611108C0FC0182810C
+:100B8000882321F08AE091E00E94C30780E090E092
+:100B9000089508956091BE017091BF018091C001D8
+:100BA0009091C1010E94451C56985E9825982D98F9
+:100BB00026982E9827982F98813019F0823021F0AE
+:100BC0000895259A2D9A0895269A2E9A089581E0DF
+:100BD000089581E008950C94E9050895282F88234D
+:100BE00039F090E02A3010F44D9608950697089554
+:100BF00087E290E00895BF92CF92DF92EF92FF924A
+:100C00000F931F93CF93DF938C01FC01C081D1819F
+:100C1000CE010E94C01ABE010E946D09EC01B8010C
+:100C20000E94EB05882309F4A3C1F801828188237F
+:100C3000C9F180915E0181111EC0C431F0E7DF0768
+:100C400089F50E94ED0581E080935E010E94DF1C22
+:100C500090935D0180935C011092550110925701B1
+:100C600010925601109259011092580110925B0196
+:100C700010925A017DC180915C0190915D010E94AA
+:100C8000EB1C883C910570F480915501E82FF0E051
+:100C9000EE0FFF1FEA5AFE4FD183C0838F5F809310
+:100CA000550166C1C13020E8D20708F451C0F801EF
+:100CB0008281882309F44CC06E01E894D7F88091B2
+:100CC0005401813079F050F08230C1F482EE0E94FC
+:100CD000121287E50E94121287E50EC082EE0E9472
+:100CE00012120CC080EE0E94121281EE0E941212AB
+:100CF00088E10E94121288E10E94DA128CE0E82E4C
+:100D0000F12CC6010E2C02C0969587950A94E2F745
+:100D10008F700E94EE05B82E0E9412128B2D0E9439
+:100D2000DA12F4E0EF1AF1082CEFE2162FEFF206D8
+:100D300041F780915401813029F010F0823041F464
+:100D400082EE04C080EE0E94DA1281EE0E94DA1276
+:100D5000C43180E7D80760F4C23090E7D90780F546
+:100D6000C115E0E7DE0771F0C130D047F1F0EFC008
+:100D7000C33320E7D20709F4BEC0C433D04709F417
+:100D8000CEC0E5C0F8018281882309F4E5C00E9445
+:100D90009315FFEF24E38CE0F15020408040E1F711
+:100DA00000C000000E94391DE3C0F8018281882341
+:100DB00009F4D2C08091DB0181608093DB01D8C04F
+:100DC000F8018281882309F4C7C00E94941D811113
+:100DD00002C00E947A1D0E94A71D90E09093EF012F
+:100DE0008093EE01C230F0E7DF0721F48091EE013D
+:100DF00081607AC0C33020E7D20721F48091EE01F0
+:100E0000826072C0C43080E7D80721F48091EE017F
+:100E100084606AC0C53090E7D90719F48091EE016B
+:100E200027C0C630E0E7DE0721F48091EE01806143
+:100E30005BC0C730F0E7DF0721F48091EE018062EC
+:100E400053C0C83020E7D20721F48091EE018064BE
+:100E50004BC0C93080E7D80721F48091EE0180684B
+:100E600043C0CA3090E7D90729F48091EE0184602D
+:100E700088603AC0CB30E0E7DE0721F48091EE01D4
+:100E80008E7F32C0CC30F0E7DF0721F48091EE0195
+:100E90008D7F2AC0CD3020E7D20721F48091EE016A
+:100EA0008B7F22C0CE3080E7D80719F48091EE0105
+:100EB0001AC08091EE01CF3090E7D90711F48F7EF0
+:100EC00013C0C031E0E7DE0711F48F7D0DC0C131E2
+:100ED000F0E7DF0711F48F7B07C0C231D04711F470
+:100EE0008F7702C08B7F877F8093EE018091EE0128
+:100EF0000E94AB1D3DC0F8018281882321F0109231
+:100F0000520182E013C080915201811106C086E235
+:100F10000E94121286E20E94DA1282E015C0F801E5
+:100F20008281882331F01092530182E10E942913BB
+:100F30001FC080915301811106C087E20E941212E6
+:100F400087E20E94DA1282E10E94301311C081E030
+:100F50008093520180935301C801DF91CF911F917B
+:100F60000F91FF90EF90DF90CF90BF900C94E7052A
+:100F700080E0DF91CF911F910F91FF90EF90DF9074
+:100F8000CF90BF9008951F93CF93DF93EC01FE01A4
+:100F900024912223F1F030E0F901E45DFC4F14913B
+:100FA000F901E455FC4F2491222359F081EE0E946F
+:100FB0001212812F0E941212812F0E94DA1281EEEA
+:100FC00004C0812F0E941212812F0E94DA122196F2
+:100FD000DECFDF91CF911F91089526E0729FF0013F
+:100FE000112444E5849FE00DF11D1124E60FF11D4D
+:100FF000EE0FFF1FEC5CFE4F859194910E947F09DC
+:10100000811520E49207B0F5811540E3940708F0BC
+:10101000DDC0803E9105D8F4803C910508F06BC09E
+:10102000883A910578F4853A910508F06AC08130D4
+:10103000910509F450C108F40DC18430910508F000
+:101040004AC108C18B3B910508F466C003C18F3FBC
+:10105000910509F048F4803F910508F0ACC0883E46
+:10106000910508F438C1F6C0811520E2920708F016
+:10107000A4C00895811543E5940790F4811522E5F5
+:10108000920708F0C7C0811541E5940708F0BDC07C
+:10109000811520E5920708F09CC09F70906A089522
+:1010A000811545E59407D0F4811524E5920708F0F1
+:1010B000C6C0282F2695269540E2249F9001112432
+:1010C000AC014370552781E090E002C0880F991F62
+:1010D0004A95E2F7822B932B9A680895811546E58D
+:1010E000940708F4B1C09C0130562115304108F036
+:1010F000B1C09F70ADC0FC01EE0FFF1FE055F04086
+:1011000062C0853A910509F4A8C0863A910509F4B0
+:10111000A7C083E890E40895883A910509F4A3C034
+:10112000893A910509F4A2C08A3A910509F4A1C04F
+:101130008B3A910509F4A0C08C3A910509F49FC03F
+:101140008D3A910509F49EC0803B910509F49DC03C
+:101150008E3A910509F49CC08F3A910509F49BC021
+:10116000813B910509F49AC0823B910509F499C02D
+:10117000833B910509F498C0843B910509F497C01D
+:10118000853B910509F496C0863B910509F495C00D
+:10119000873B910509F494C0883B910509F493C0FD
+:1011A000893B910509F492C08A3B910509F091C0F1
+:1011B0008AE296E40895906508959F70880F991FBC
+:1011C000805D9E4FFC018591949108959927906CC4
+:1011D0000895482F437021E030E002C0220F331FF2
+:1011E0004A95E2F73C68AC0164E0569547956A95EC
+:1011F000E1F74370342B8F708695869540E2849F8B
+:10120000C0011124822B932B0895982F8827816F7A
+:10121000906A0895282F2695269540E2249F9001F4
+:101220001124AC014370552781E090E002C0880F83
+:10123000991F4A95E2F7822B932B9C680895982F6B
+:101240008827846F906A08958F719927982F88272F
+:101250009062089580E090E0089581E890E4089518
+:1012600082E890E4089582EE94E4089589EE94E48F
+:1012700008958AEE94E4089585EB94E4089586EB4E
+:1012800094E4089587EB94E408958CEC94E4089535
+:101290008DEC94E4089583E895E408958AE895E454
+:1012A000089582E995E4089584E995E4089581E23A
+:1012B00096E4089583E296E4089584E296E408951E
+:1012C00085E296E4089586E296E4089587E296E43E
+:1012D000089580E094E40895089596E0799FF001E0
+:1012E000112494E5899FE00DF11D1124E60FF11DF5
+:1012F000EE0FFF1FEC5CFE4F8591949108958238AC
+:10130000910549F1B0F48133910509F459C048F4CD
+:101310008932910509F44FC08A32910509F455C00C
+:1013200008958533910509F441C08933910599F0F9
+:101330000895833E910531F138F4803E910591F096
+:10134000823E9105A9F00895863E910501F1873E00
+:10135000910539F108952091EE0120FD3BC021FD5A
+:1013600039C008958091EE0180FF34C089E341C007
+:101370008091EE0182FF32C08091EE0184FF2CC08B
+:1013800080E037C08091EE0182FD28C0F5CF8091CA
+:10139000EE0183FF25C08091EE0184FDF1CF87EE41
+:1013A00028C08091EE0183FD1BC0F5CF8091EE0136
+:1013B00085FF18C019C08091EE0185FF15C012C0CD
+:1013C0008091EE0186FF12C013C08091EE0186FF6E
+:1013D0000FC00CC080EE0DC083EE0BC082EE09C0C2
+:1013E00086EE07C085E305C089E203C081E301C042
+:1013F0008AE290E0089508950C94FB0980916F01B2
+:101400000895CF93DF9300D01F92CDB7DEB7209120
+:10141000F401243019F523E029839B838A832093E8
+:10142000E9008FEF9091E800815095FD06C095EDA1
+:101430009A95F1F700008111F5CF8091E80085FFC2
+:101440000DC040E050E063E070E0CE0101960E94E4
+:10145000670C8091E8008E778093E8000F900F90E2
+:101460000F90DF91CF910895CF93DF9300D01F921B
+:10147000CDB7DEB72091F401243021F522E0298395
+:101480009B838A8383E08093E9008FEF9091E8004B
+:10149000815095FD06C095ED9A95F1F700008111F8
+:1014A000F5CF8091E80085FF0DC040E050E063E09B
+:1014B00070E0CE0101960E94670C8091E8008E7763
+:1014C0008093E8000F900F900F90DF91CF910895D7
+:1014D0002091F4012430F1F422E02093E9002FEF71
+:1014E0003091E800215035FD06C035ED3A95F1F711
+:1014F00000002111F5CF2091E80025FF0BC040E04E
+:1015000050E065E070E00E94670C8091E8008E7703
+:101510008093E8000895CF93DF93EC018091F4016C
+:10152000843009F046C090910C019923D9F0909134
+:101530000D019923B9F08093E9008FEF9091E800B5
+:10154000815095FD06C095E19A95F1F70000811153
+:10155000F5CF8091E80085FF2CC040E050E060E1CD
+:1015600070E017C081E08093E9008FEF9091E80070
+:10157000815095FD06C095ED9A95F1F70000811117
+:10158000F5CF8091E80085FF14C040E050E068E0AE
+:1015900070E0CE010E94670C8091E8008E77809306
+:1015A000E80080E1FE01AFE5B1E001900D928A957F
+:1015B000E1F7DF91CF9108958091F301811109C086
+:1015C0000E94F90D0E94560E8091E2008460809383
+:1015D000E20008951092F301089508950C940322F7
+:1015E0000E94D01C0E9409220E94F3100C94FC0956
+:1015F00042E061EC81E00E94730D42E061EC82E028
+:101600000E94730D42E061EC83E00E94730D42E1A1
+:1016100061EC84E00C94730D8091F601833009F441
+:1016200055C030F4813071F0823009F48EC00895D5
+:101630008A3009F47AC08B3009F460C0893009F02F
+:101640009CC020C08091F501813A09F096C080913C
+:10165000E800877F8093E8008091F9019091FA017A
+:10166000892B21F060E080E090E003C060E18FE52D
+:1016700091E070E00E94B00C8091E8008B7780933D
+:10168000E80008958091F501813209F076C08091DB
+:10169000F9019091FA01009719F0039709F06DC0D4
+:1016A0008091E800877F8093E8008091E80082FDC8
+:1016B00005C08091F4018111F8CF5FC08091F100E5
+:1016C00080936F018091E8008B7753C08091F50182
+:1016D000813A09F052C08091F9019091FA01892B69
+:1016E00009F04BC08091E800877F8093E8008091EB
+:1016F000E80080FFFCCF80910C0136C08091F5019D
+:101700008132D9F58091F9019091FA01892BA9F5DF
+:101710008091E800877F8093E8000E94A80D809167
+:10172000F70180930C010C9493158091F50181329F
+:1017300021F58091E800877F8093E8000E94A80D42
+:101740008091F8018093700108958091F501813AAC
+:10175000A1F48091E800877F8093E8008091E80001
+:1017600080FFFCCF809170018093F1008091E800B0
+:101770008E778093E8000C94A80D089584B7877F36
+:1017800084BF88E10FB6F8948093600010926000E7
+:101790000FBE80E880936100109261000E944211A8
+:1017A0000E94F90D0E94560E8091E20084608093A1
+:1017B000E20078940E94D1100E94441182E091E0EE
+:1017C0000E94EE100E94F1218091F401853069F4AD
+:1017D0000E94981C8091F2018823B1F30E94C21CE0
+:1017E000882391F30E94510CEFCF0E944A11ECCF55
+:1017F000292F332723303105A9F06CF4213031052E
+:1018000009F442C02230310509F043C08DE690E072
+:1018100020E634E042C021323105C9F022323105E0
+:1018200019F137C099278130910541F08230910537
+:1018300041F0892B71F5ECE5F4E005C0E4E4F4E057
+:1018400002C0ECE2F4E0849190E09F0126C0643095
+:1018500000F5E62FF0E0EE0FFF1FEE5DFE4F20815A
+:10186000318189E090E019C0643098F4E62FF0E00F
+:10187000DF01AA0FBB1FA65EBE4F2D913C91EA5E11
+:10188000FE4F808190E009C082E190E02DEC34E0D1
+:1018900004C080E090E020E030E0FA013183208352
+:1018A000089580E189BD82E189BD09B400FEFDCFC4
+:1018B0008091D8008F7D8093D8008091E000826075
+:1018C0008093E0008091E00081FDFCCF0895CF92ED
+:1018D000DF92EF92FF920F931F93CF93DF937C01E0
+:1018E0008B01EA010E94C90D811131C0209731F0AE
+:1018F00088819981081B190BE80EF91EC12CD12C87
+:101900000115110519F18091E80085FD14C0809141
+:10191000E8008E778093E800209741F088819981D4
+:101920008C0D9D1D9983888385E011C00E94C90D8F
+:10193000882331F30CC0F70181917F018093F1007E
+:1019400001501109FFEFCF1ADF0ADACF80E0DF91F3
+:10195000CF911F910F91FF90EF90DF90CF9008955E
+:101960002091FB013091FC012617370748F06115E3
+:10197000710539F42091E8002E772093E80001C02A
+:10198000B901FC0120E061157105B9F18091F40104
+:10199000882309F440C0853009F43FC08091E800F5
+:1019A00083FD3DC08091E80082FF06C08091E80081
+:1019B00082FF26C080E008958091E80080FFE3CF99
+:1019C0002091F3008091F20090E0922B6115710557
+:1019D00051F08830910538F421912093F100615045
+:1019E00071090196F3CF21E0089709F020E080917A
+:1019F000E8008E778093E800C6CF2111C7CFD6CFFD
+:101A00008091F401882339F0853039F08091E80025
+:101A100083FFCCCF04C082E0089583E0089581E085
+:101A200008952091FB013091FC012617370748F0FB
+:101A30006115710539F42091E8002E772093E800B4
+:101A400001C0B901FC0120E061157105C1F180916F
+:101A5000F401882309F441C0853009F440C0809125
+:101A6000E80083FD3EC08091E80082FF06C08091BF
+:101A7000E80082FF27C080E008958091E80080FFA1
+:101A8000E3CF2091F3008091F20090E0922B61155A
+:101A9000710559F08830910540F424912093F100AC
+:101AA0003196615071090196F2CF21E0089709F053
+:101AB00020E08091E8008E778093E800C5CF211167
+:101AC000C6CFD5CF8091F401882339F0853039F025
+:101AD0008091E80083FFCBCF04C082E0089583E0CB
+:101AE000089581E00895982F973058F59093E90074
+:101AF000981739F07091EC002091ED005091F000B2
+:101B000003C0242F762F50E021FF19C03091EB0045
+:101B10003E7F3093EB003091ED003D7F3093ED0040
+:101B20003091EB0031603093EB007093EC00209328
+:101B3000ED005093F0002091EE0027FF07C09F5F5B
+:101B4000D3CF8F708093E90081E0089580E00895FD
+:101B50008091F50187FD05C08091E80080FF0EC0EF
+:101B600012C08091E80082FD05C08091F4018111CE
+:101B7000F8CF08958091E8008B7708C08091F40138
+:101B80008111EACF08958091E8008E778093E80074
+:101B900008958091E4009091E50045E62091EC00E5
+:101BA00020FF21C02091E80020FD21C02091F401F8
+:101BB000222389F0253089F02091EB0025FD0FC00C
+:101BC0002091E4003091E5002817390739F341509E
+:101BD00041F0C901E3CF82E0089583E0089581E0F8
+:101BE000089584E008952091E80022FFDFCF80E08F
+:101BF00008950E94670E0E946F0EE0EEF0E0808173
+:101C000081608083E8EDF0E080818F77808319BC6C
+:101C1000A7EDB0E08C918E7F8C9380818F7E808346
+:101C20001092F30108950F931F93CF93DF930E94B7
+:101C3000670E0E946F0EC8EDD0E088818F77888391
+:101C400088818068888388818F7D888319BC109201
+:101C5000F4011092F0011092F2011092F10100EEE5
+:101C600010E0F80180818B7F808388818160888388
+:101C700042E060E080E00E94730DE1EEF0E08081E0
+:101C80008E7F8083E2EEF0E08081816080838081BE
+:101C900088608083F80180818E7F80838881806165
+:101CA0008883DF91CF911F910F910895E8EDF0E0C7
+:101CB00080818F7E8083E7EDF0E08081816080838A
+:101CC00084E082BF81E08093F3010C94130EE8ED71
+:101CD000F0E080818E7F80831092E2000895109260
+:101CE000DA001092E10008951F920F920FB60F9242
+:101CF00011242F933F934F935F936F937F938F9311
+:101D00009F93AF93BF93EF93FF938091E10082FF86
+:101D10000BC08091E20082FF07C08091E1008B7FC1
+:101D20008093E1000E94D0108091DA0080FF1FC0F4
+:101D30008091D80080FF1BC08091DA008E7F809355
+:101D4000DA008091D90080FF0DC080E189BD82E179
+:101D500089BD09B400FEFDCF81E08093F4010E94AB
+:101D6000DC0A05C019BC1092F4010E94EA0A8091B5
+:101D7000E10080FF19C08091E20080FF15C08091D2
+:101D8000E2008E7F8093E2008091E2008061809388
+:101D9000E2008091D80080628093D80019BC85E071
+:101DA0008093F4010E94EE0A8091E10084FF30C02C
+:101DB0008091E20084FF2CC080E189BD82E189BD71
+:101DC00009B400FEFDCF8091D8008F7D8093D800AC
+:101DD0008091E1008F7E8093E1008091E2008F7E10
+:101DE0008093E2008091E20081608093E200809124
+:101DF000F001882311F084E007C08091E30087FFA1
+:101E000002C083E001C081E08093F4010E94F00AE7
+:101E10008091E10083FF29C08091E20083FF25C00B
+:101E20008091E100877F8093E10082E08093F4015C
+:101E30001092F0018091E1008E7F8093E10080910B
+:101E4000E2008E7F8093E2008091E20080618093C7
+:101E5000E20042E060E080E00E94730D8091F000BB
+:101E600088608093F0000E94ED0AFF91EF91BF918E
+:101E7000AF919F918F917F916F915F914F913F9122
+:101E80002F910F900FBE0F901F9018951F920F92D9
+:101E90000FB60F9211242F933F934F935F936F933D
+:101EA0007F938F939F93AF93BF93CF93EF93FF93C2
+:101EB000C091E900CF708091EC001092E900809110
+:101EC000F000877F8093F00078940E94820F109238
+:101ED000E9008091F00088608093F000C093E900F1
+:101EE000FF91EF91CF91BF91AF919F918F917F9192
+:101EF0006F915F914F913F912F910F900FBE0F9077
+:101F00001F9018951F93CF93DF93CDB7DEB7AA9795
+:101F10000FB6F894DEBF0FBECDBFE5EFF1E08091C4
+:101F2000F100819321E0ED3FF207C9F70E940C0B0D
+:101F30008091E80083FF1CC12091F5013091F601EA
+:101F4000832F90E08A30910508F012C1FC01EA5A13
+:101F5000FF4F0C948B23203881F0223809F008C100
+:101F60008091F9018F708093E9008091EB0085FBEF
+:101F7000882780F91092E90006C08091F1019091C4
+:101F8000F201911182609091E800977F9093E800B0
+:101F90008093F1001092F100C5C0822F8D7F09F06F
+:101FA000E7C0222319F0223061F0E2C08091F701EE
+:101FB000813009F0DDC0333009F080E08093F20118
+:101FC00028C08091F701811124C02091F9012F7060
+:101FD00009F4CEC02093E9008091EB0080FF19C086
+:101FE0008091EB00333011F4806211C080618093E6
+:101FF000EB0081E090E0022E01C0880F0A94EAF71E
+:102000008093EA001092EA008091EB008860809350
+:10201000EB001092E9008091E800877F86C02111D3
+:10202000A7C01091F7011F778091E3008078812B82
+:102030008093E3008091E800877F8093E8000E940E
+:10204000A80D8091E80080FFFCCF8091E3008068BC
+:102050008093E300112311F083E001C082E08093BC
+:10206000F40186C02058223008F082C08091F70128
+:102070009091F8018C3D23E0920779F583E08A8303
+:102080008AE289834FB7F894DE01139620E03EE0A0
+:1020900051E2E32FF0E050935700E49120FF03C09A
+:1020A000E295EF703F5FEF708E2F90E0EA3010F016
+:1020B000C79601C0C0968D939D932F5F243149F739
+:1020C0004FBF8091E800877F8093E8006AE270E06C
+:1020D000CE0101960E94B00C14C0AE014F5F5F4F5D
+:1020E0006091F9010E94F80B009709F441C020911A
+:1020F000E800277F2093E800BC0189819A810E9433
+:10210000110D8091E8008B778093E80031C0203872
+:1021100079F58091E800877F8093E8008091F00155
+:102120008093F1008091E8008E778093E8000E9410
+:10213000A80D1EC021111CC09091F7019230C0F46F
+:102140008091E800877F8093E8009093F0010E94DF
+:10215000A80D8091F001811104C08091E30087FFF8
+:1021600002C084E001C081E08093F4010E94F80A7B
+:102170008091E80083FF0AC08091E800877F809308
+:10218000E8008091EB0080628093EB00AA960FB686
+:10219000F894DEBF0FBECDBFDF91CF911F910895A0
+:1021A0000895CF938091F4018823B1F08091E900E4
+:1021B0008F709091EC0090FF02C090E801C090E019
+:1021C000C92FC82B1092E9008091E80083FD0E947E
+:1021D000820FCF70C093E900CF910895909376015C
+:1021E000809375010895E0917501F0917601309723
+:1021F00021F00190F081E02D099480E00895E091B4
+:102200007501F0917601309721F00280F381E02D85
+:1022100009940895E0917501F0917601309721F0CD
+:102220000480F581E02D0994089520917301309187
+:1022300074018217930771F0909374018093730176
+:10224000E0917501F0917601309721F00680F781D9
+:10225000E02D099408952091710130917201821747
+:10226000930771F09093720180937101E091750171
+:10227000F0917601309721F00084F185E02D0994EA
+:10228000089508950C9441110E94D61C0E94CE031B
+:102290000C945C1D9F92AF92BF92CF92DF92EF920F
+:1022A000FF920F931F93CF93DF9300D000D000D005
+:1022B000CDB7DEB70E94F50386E8E82E81E0F82E60
+:1022C0000DE010E0CC24C394D12C902E802F0E94DE
+:1022D000E204F701B2907F01B826A1F40150110980
+:1022E000A0F78FEF89838A831B820E94DF1C8160A5
+:1022F000782F9D838C8349815A816B818D810E94C7
+:10230000E41131C09091DB0191FF04C08E830E94E3
+:10231000E8048E8125E030E0A601022E01C0440FC2
+:102320000A94EAF7A42E4B21D1F029839A828A21BC
+:1023300091E009F490E09B830E94DF1C8160782F7C
+:102340009D838C8349815A816B818D810E94E41128
+:10235000F801E858FE4F80818A25808304C021500F
+:102360003109D0F6BBCF0E94291F109177010E943E
+:10237000F3101817B9F00E94F31080937701269696
+:102380000FB6F894DEBF0FBECDBFDF91CF911F9186
+:102390000F91FF90EF90DF90CF90BF90AF909F9004
+:1023A0000C94FC0926960FB6F894DEBF0FBECDBF85
+:1023B000DF91CF911F910F91FF90EF90DF90CF9021
+:1023C000BF90AF909F900895CF93DF93CDB7DEB7C6
+:1023D0002B970FB6F894DEBF0FBECDBF4F83588743
+:1023E00069877A878B87DE01119686E0FD0111925D
+:1023F0008A95E9F785E0FE01379601900D928A955E
+:10240000E1F749815A816B817C818D819E810E9497
+:1024100063182B960FB6F894DEBF0FBECDBFDF91C9
+:10242000CF910895CF93C82F882309F4C1C0823873
+:1024300059F40E94F31081FDBBC089E30E94401B48
+:102440000E940A1C89E30CC0833879F40E94F310BF
+:1024500080FDAEC083E50E94401B0E940A1C83E5FC
+:102460000E94801BCF910C940A1C843859F40E945E
+:10247000F31082FD9DC087E40E94401B0E940A1C4D
+:1024800087E4EECF8CEF8C0F813A48F48C2F0E94BA
+:10249000592181118DC08C2F0E94401BE3CF80E217
+:1024A0008C0F883048F4C77081E001C0880FCA954E
+:1024B000EAF70E94C11BD6CF8BE58C0F833078F4EE
+:1024C000C53A29F0C63A31F482E890E005C081E8C7
+:1024D00090E002C083E890E0CF910C94151188E55C
+:1024E0008C0F833108F064C0C83A39F1C93A41F120
+:1024F000CA3A49F1CB3A51F1CC3A59F1CD3A61F1AE
+:10250000C03B69F1CE3A71F1CF3A79F1C13B81F12B
+:10251000C23B89F1C33B91F1C43B99F1C53BA1F1A9
+:10252000C63BA9F1C73BB1F1C83BB9F1C93BC1F109
+:10253000CA3BC9F58AE292E038C082EE90E035C02D
+:1025400089EE90E032C08AEE90E02FC085EB90E0FB
+:102550002CC086EB90E029C087EB90E026C08CEC85
+:1025600090E023C08DEC90E020C083E891E01DC096
+:102570008AE891E01AC082E991E017C084E991E00D
+:1025800014C081E292E011C083E292E00EC084E2C6
+:1025900092E00BC085E292E008C086E292E005C0BE
+:1025A00087E292E002C080E090E0CF910C942B1182
+:1025B000CF910895882309F44BC0823859F40E94C2
+:1025C000F31081FF45C089E30E94401B0E940A1C52
+:1025D00089E30CC0833871F40E94F31080FF38C087
+:1025E00083E50E94401B0E940A1C83E50E94801B19
+:1025F0000C940A1C843859F40E94F31082FF28C0FE
+:1026000087E40E94401B0E940A1C87E4EFCF9CEFE6
+:10261000980F913A58F390E2980F983050F48770E1
+:1026200091E001C0990F8A95EAF7892F0E94C71B94
+:10263000DFCF9BE5980F933020F480E090E00C947E
+:102640001511885A833120F480E090E00C942B110E
+:102650000895882321F00E94C11B0C940A1C089540
+:10266000882321F00E94C71B0C940A1C08958F92A6
+:102670009F92AF92BF92CF92DF92EF92FF920F9311
+:102680001F93CF93DF931F92CDB7DEB74C01A62ED9
+:10269000472FFC01E580E2948FE0E822F280FF20E2
+:1026A00021F079830E94DE1B498149830E94391BF6
+:1026B0004981882381F0FF2071F080E28A0D883003
+:1026C00050F082E00E94221B0E94391BBB24B3946D
+:1026D000B826498101C0B12CE42FE295EF70F0E0FB
+:1026E000E05AFF4F0C948B23842F807F142F1F7090
+:1026F000882311F01295107FFF2089F0112309F42F
+:102700008DC180E28A0D883020F4812F0E94C11B88
+:1027100003C0812F0E94D11B0E940A1C7FC18A2DF9
+:102720000E94DA12112309F490C180E28A0D8830E8
+:1027300020F4812F0E94C71B03C0812F0E94D71B4A
+:102740000E940A1C82C1242F207F842F8F70203288
+:1027500011F08295807FAA2021F0F1E0AF16B9F048
+:1027600020C0FF2049F0EE2009F40FC191E0E912EA
+:102770000CC10E94F11B69C1EE2021F0E1E0EE16D0
+:1027800009F463C189830E94F41B898104C1FF207D
+:1027900029F0F1E0FE1508F458C1F7C0E11055C169
+:1027A000FAC0FF2021F0EE2009F4EFC037C1EE207F
+:1027B00009F4F1C039C1242F26952695237030E005
+:1027C0002115310521F02130310561F03EC1FF2096
+:1027D00021F08A2D942F937002C080E090E00E9437
+:1027E000151133C1FF2021F08A2D942F937002C060
+:1027F00080E090E00E942B1128C18A2DFF2019F063
+:102800000E94311E02C00E94991E0E941E1F1DC1FF
+:10281000842F837009F04EC0F11017C12A2D229524
+:1028200026952770220F220F8A2D8F70C82ED12C4B
+:10283000E12CF12C022E04C0CC0CDD1CEE1CFF1C84
+:102840000A94D2F7A4FE10C06FE070E080E090E040
+:1028500004C0660F771F881F991F2A95D2F76095CD
+:1028600070958095909503C060E070E0CB01242FB7
+:1028700026952695237030E02230310569F023300B
+:10288000310589F06C297D298E299F292130310558
+:1028900071F00E94B719D9C06C297D298E299F2912
+:1028A0000E94D119D2C00E94B719C701B6010E9477
+:1028B0009D19CBC0FF2019F0842F817001C086952F
+:1028C000882309F4C2C02A2D229526952770220F4D
+:1028D000220F8A2D8F70C82ED12CE12CF12C022EC4
+:1028E00004C0CC0CDD1CEE1CFF1C0A94D2F7A4FE25
+:1028F00010C06FE070E080E090E004C0660F771FCA
+:10290000881F991F2A95D2F76095709580959095AC
+:1029100003C060E070E0CB01242F2695269523703C
+:1029200030E02230310569F02330310589F06C291F
+:102930007D298E299F292130310571F00E948B1A43
+:1029400084C06C297D298E299F290E94A51A7DC0EB
+:102950000E948B1AC701B6010E94711A76C00A2D17
+:1029600010E0F801E05EF109E531F10508F052C030
+:10297000E059FF4F0C948B231A2D1F70842F8F71F9
+:10298000FF2031F00E940A1A812F0E9429135DC096
+:102990000E942B1A812F0E94301357C0FF2039F05C
+:1029A000E11053C0842F8F710E94501A4EC081E0F5
+:1029B0008E1508F44AC0F6CFFF2039F0842F8F71AE
+:1029C0000E940A1A42C0FF20C9F3842F8F710E940F
+:1029D0002B1A3BC0FF2029F0842F8F710E94F5191C
+:1029E00034C00E94EB1931C0FF2051F0142F1F7129
+:1029F000812F0E940A1A63E0812F0E94191B25C0B3
+:102A000081E00E94221B91E09E15F8F482E00E9472
+:102A1000221B1BC0FF2031F0EE2081F28A2D0E9484
+:102A2000121213C0EE2089F28A2D0E94DA120DC014
+:102A30004F706A2DC4010E94BC050E94101905C088
+:102A40004F706A2DC4010E946C09BB20F1F00E94F6
+:102A5000151B80FD1AC0F40112820E940F1B0E94F8
+:102A60000A1AC4010E9453150E940F1B0F90DF9198
+:102A7000CF911F910F91FF90EF90DF90CF90BF907B
+:102A8000AF909F908F900C942B1A0F90DF91CF9165
+:102A90001F910F91FF90EF90DF90CF90BF90AF907C
+:102AA0009F908F9008950F931F93CF93DF93EC0126
+:102AB000288139818B819C81892B31F03F3F11F036
+:102AC00080E003C02F3FE1F781E0811113C0CE0108
+:102AD0000E94FB05882371F0688179818A810E94B8
+:102AE0000B1B8C010E94BF1A0E949219B801CE01E3
+:102AF0000E943713DF91CF911F910F9108950E948B
+:102B0000DE1B0E94EE1B0E94B31B0E940A1C0E9447
+:102B1000CA1F0E941E1F80E090E00E94151180E0F5
+:102B200090E00C942B110E94CE1B0C947F150E94F8
+:102B3000001B292F22952F7030E02C3031054CF4EA
+:102B40002A3031056CF42250310922303105B0F4BD
+:102B500007C02C30310571F02F30310559F00EC00F
+:102B6000803F31F018F4803E48F402C0843F31F4D5
+:102B700081E0089593FB882780F9089580E0089507
+:102B8000CF93DF9300D000D01F92CDB7DEB70F9068
+:102B90000F900F900F900F90DF91CF910895CF93EA
+:102BA000DF9300D000D000D0CDB7DEB726960FB6A9
+:102BB000F894DEBF0FBECDBFDF91CF9108951F9374
+:102BC000CF93DF93C091860116E080918701C817EB
+:102BD00099F0D0E01C9FF0011D9FF00D1124E857E3
+:102BE000FE4F4081518162817381848195810E9471
+:102BF000CF152196C770E9CFDF91CF911F9108952E
+:102C00004091B8015091B9016091BA017091BB0136
+:102C10008091BC019091BD010C94CF15CF93809110
+:102C2000BD0182958F7009F05FC08091BA01882341
+:102C300009F45AC020918601A09187016091B801E2
+:102C40007091B9018091BB019091BC0131E06F3F5F
+:102C500009F030E0B32FC6E02A1709F445C0009709
+:102C600021F07F3F21F44B2F03C041E001C040E041
+:102C700030E040FD35C0C29FF001C39FF00D11242C
+:102C8000E857FE4F418174132BC04081641328C064
+:102C90004281411125C0438154814817590710F4DE
+:102CA00041505109481B590B483C5105C8F48091CB
+:102CB000BD018F7080618093BD0186E0829FF0012D
+:102CC000839FF00D1124E357FE4F80818F70806148
+:102CD000808388EB91E00E945315CF910C94DF150F
+:102CE0002F5F3F4F2770B8CFCF910895CF92DF92DB
+:102CF000EF92FF920F931F93CF93DF93CDB7DEB781
+:102D000062970FB6F894DEBF0FBECDBF8C0185E091
+:102D1000F801DE011D9601900D928A95E1F7D80128
+:102D20004C9111965C91119712966C911297139693
+:102D3000ED90FC9014977091B801E091B901209149
+:102D4000BB013091BC012115310531F0EF3F31F469
+:102D500081E07F3F19F403C081E001C080E0B82F1B
+:102D6000B170CB2E80FD6CC1D090BA01DD2009F48A
+:102D7000F5C0F091BD01E216F30638F0C701821BE1
+:102D8000930B883C910548F09BC0209530952E0D03
+:102D90003F1D283C310508F093C08F2F807F09F03C
+:102DA00052C0E51314C0741312C0D62E61110FC0A7
+:102DB000FF70F061F093BD010E94001688EB91E076
+:102DC0000E9453158091BD01F80185836CC1EF28E5
+:102DD00031F05F3F31F481E04F3F19F403C081E0EF
+:102DE00001C080E080FD03C081E0862701C080E053
+:102DF000F82FF170FF2E80FF1CC08091860120917A
+:102E0000870136E0821709F428C190E0389FF0016D
+:102E1000399FF00D1124E857FE4F7181571306C0FA
+:102E20007081471303C07281671303C001968770D6
+:102E3000E9CFD62E662309F436C18091BD018160A9
+:102E40008093BD0153C0E51308C0741306C061111F
+:102E500004C0D8011596FC93AEC04D875E878D8562
+:102E60009E856A8B0E9497156A89882329F1D62E40
+:102E7000662311F12091BD01822F82958F7090E021
+:102E800002970CF460C08091B8019091B9019887C5
+:102E90008F831986FB86EA862C87CE01079651C060
+:102EA000E51731F14D875E878D859E856A8B0E947F
+:102EB00097156A8981112EC0C8010E945315A4C0BC
+:102EC0008F2F807F69F77E2DF98AE88A89890E9491
+:102ED000C01588EB91E00E945315E8EBF1E086E025
+:102EE000DF011D928A95E9F70E940016D12CDBC004
+:102EF0007413D8CF6111D6CFD8011596FC93C801B1
+:102F00000E945315E8EBF1E086E0DF011D928A95FF
+:102F1000E9F7C9C0D62E662379F22091BD01822F30
+:102F200082958F7090E0029774F08091B801909133
+:102F3000B9019A8389831B82FD82EC822E83CE01A4
+:102F400001960E94531586E0F801A8EBB1E00190CC
+:102F50000D928A95E1F70E940E166FC0E216F306F5
+:102F600028F0C701821B930B9C0104C0209530956B
+:102F70002E0D3F1D283C310508F052C0D62E662389
+:102F800009F49ACFE5132CC074132AC08091BD01B7
+:102F900080FD1DC0982F92959F70C9F0D80115969D
+:102FA0008C9315979F3039F09F5F9295907F8F702B
+:102FB000892B15968C93C8010E94531586E0F80161
+:102FC000A8EBB1E001900D928A95E1F736C086E05A
+:102FD000F801A8EBB1E001900D928A95E1F763C08A
+:102FE0004D875E878D859E850E949715882379F091
+:102FF00086E0F801A8EBB1E001900D928A95E1F727
+:103000000E940E160E940016DD24D3944CC08091BD
+:10301000BD0181608093BD01C8010E94531543C06A
+:103020007E2DF98AE88A89890E94C015E8EBF1E0D3
+:1030300086E0DF011D928A95E9F70E94001633C0F1
+:10304000662309F439CF4D875E878D859E850E9462
+:103050009715882309F430CFCBCF4D875E878D85B8
+:103060009E850E94001B292F22952F7030E0223070
+:1030700031052CF49F7041F0811106C00CC0243042
+:1030800031052CF49F7049F4805E883020F0C8012F
+:103090000E945315CF2CDC2C06C0D80115969C91AC
+:1030A000907F91F7F8CF8D2D62960FB6F894DEBF22
+:1030B0000FBECDBFDF91CF911F910F91FF90EF9089
+:1030C000DF90CF9008951F93CF93DF93CDB7DEB7F6
+:1030D0002C970FB6F894DEBF0FBECDBF4F83588735
+:1030E00069877A878B879C87CE0107960E94761620
+:1030F0008823C1F02F8138858A859B85892B31F003
+:103100003F3F11F080E003C02F3FE1F781E08111E4
+:1031100047C04F81588569857A858B859C850E943B
+:10312000CF153EC086E0FE013796DE011196019074
+:103130000D928A95E1F7FF81E8854A855B85411507
+:10314000510531F0EF3F31F481E0FF3F19F403C046
+:1031500081E001C080E080FD23C02091870130E044
+:10316000C9010196877099276091860170E08617E2
+:103170009707F1F1F983EA835D834C8396E0929F90
+:10318000D001939FB00D1124A857BE4FFE01319678
+:1031900001900D929A95E1F7809387010E94DF15C7
+:1031A00016E08091860190918701891779F1189F27
+:1031B000C001112488579E4F0E947616882331F152
+:1031C000E09186011E9FF0011124E857FE4F4081D7
+:1031D000518162817381848195810E94CF15809194
+:1031E000860190E001968770992780938601D9CF58
+:1031F0000E9493151092870110928601E8EBF1E08E
+:1032000086E0DF011D928A95E9F7CACF2C960FB6AA
+:10321000F894DEBF0FBECDBFDF91CF911F9108950F
+:10322000EF92FF920F931F93CF93DF939C01009730
+:1032300009F471C0F12CEE24E394E9012196F9011F
+:103240008491843740F4843008F056C0813081F096
+:10325000823021F160C0853709F449C0C0F19CE794
+:10326000980F903708F057C08F770E94DA1246C047
+:1032700089010E5F1F4FFE01849190E2980F9830F4
+:1032800050F48770FE2D01C0FF0F8A95EAF78F2F4B
+:103290000E94E11B15C00E94121214C089010E5F2A
+:1032A0001F4FFE01849190E2980F983068F4877068
+:1032B000FE2D01C0FF0F8A95EAF78F2F0E94E71BB2
+:1032C0000E940A1CE8011AC00E94DA12FBCF2E5F8E
+:1032D0003F4FFE01C491CC2341F08FE99FE001975D
+:1032E000F1F700C00000C150F6CFE90107C0FE01B0
+:1032F000F490E901229602C00E9412128F2D8823B9
+:1033000041F0EFE9FFE03197F1F700C00000815094
+:10331000F6CF9E0192CFDF91CF911F910F91FF9039
+:10332000EF90089508956093C2017093C301809354
+:10333000C4019093C5010C947F150F931F930091C6
+:10334000C2011091C3012091C4013091C501062B27
+:10335000172B282B392B0093C2011093C301209304
+:10336000C4013093C5011F910F910C947F150F93E9
+:103370001F930091C2011091C3012091C4013091AB
+:10338000C50106231723282339230093C201109374
+:10339000C3012093C4013093C5011F910F910C9478
+:1033A0007F150F931F930091C2011091C3012091CB
+:1033B000C4013091C5010627172728273927009314
+:1033C000C2011093C3012093C4013093C5011F9122
+:1033D0000F910C947F151092BE011092BF011092B4
+:1033E000C0011092C1010C947F1541E050E060E0F3
+:1033F00070E004C0440F551F661F771F8A95D2F7EF
+:103400004093BE015093BF016093C0017093C1010E
+:103410000C947F1541E050E060E070E004C0440F80
+:10342000551F661F771F8A95D2F78091BE01909134
+:10343000BF01A091C001B091C101842B952BA62B97
+:10344000B72B8093BE019093BF01A093C001B093AE
+:10345000C1010C947F1541E050E060E070E004C0D1
+:10346000440F551F661F771F8A95D2F740955095D8
+:10347000609570958091BE019091BF01A091C001AF
+:10348000B091C10184239523A623B7238093BE0165
+:103490009093BF01A093C001B093C1010C947F151C
+:1034A00041E050E060E070E004C0440F551F661F2B
+:1034B000771F8A95D2F78091BE019091BF01A091AC
+:1034C000C001B091C10184279527A627B727809313
+:1034D000BE019093BF01A093C001B093C1010C94B1
+:1034E0007F150F931F930091BE011091BF01209192
+:1034F000C0013091C101062B172B282B392B0093CB
+:10350000BE011093BF012093C0013093C1011F91F0
+:103510000F910C947F150F931F930091BE01109192
+:10352000BF012091C0013091C10106231723282338
+:1035300039230093BE011093BF012093C001309343
+:10354000C1011F910F910C947F150F931F93009150
+:10355000BE011091BF012091C0013091C101062729
+:103560001727282739270093BE011093BF01209306
+:10357000C0013093C1011F910F910C947F150895E4
+:10358000CF92DF92EF92FF920F931F93CF93DF932F
+:10359000EC01C090C201D090C301E090C401F09052
+:1035A000C5018091BE019091BF01A091C001B09171
+:1035B000C101C82AD92AEA2AFB2A0FE110E0B70183
+:1035C000A601002E04C076956795579547950A94F5
+:1035D000D2F740FD05C00150110988F780E007C00F
+:1035E000BE01802F0E94ED070197A9F3802FDF9184
+:1035F000CF911F910F91FF90EF90DF90CF900895A2
+:10360000CF93DF93EC010E94C01ABE010E94ED0728
+:10361000DF91CF910895CB010E94001B0895809106
+:10362000C60185958595859508958091C601877019
+:10363000089598E0899F90011124622B6093C60140
+:103640000C940A1A4091C601809584238093C60188
+:10365000982F977069F450E0282F332727FD309575
+:103660004217530729F08595859585950C942B1A5B
+:1036700008959091C601977081E009F480E0089563
+:1036800090910C019923D9F090910D019923B9F0F3
+:10369000982F9695969596959F3088F5E0910E0116
+:1036A000F0910F01E90FF11D877021E030E001C0BA
+:1036B000220F8A95EAF78181822B818308954091B8
+:1036C0000E0150910F0120E030E09FEFFA01E20F70
+:1036D000F31F6281681799F09F3F19F4611101C0CF
+:1036E000922F2F5F3F4F2E30310581F79F3F39F0EA
+:1036F000FA01E90FF11D97FDFA9582830895089567
+:1037000090910C019923E1F090910D019923C1F062
+:10371000982F9695969596959F3020F5E0910E01FD
+:10372000F0910F01E90FF11D877021E030E001C039
+:10373000220F8A95EAF72095818128232183089515
+:1037400040910E0150910F0120E030E0FA01E20FAC
+:10375000F31F9281981301C012822F5F3F4F2E30CA
+:103760003105A1F7089581E090E0E0910E01F0911C
+:103770000F01E80FF91F1082019680319105A9F71A
+:1037800008959091DA01982B9093DA01089580952D
+:103790009091DA0198239093DA0108951092DA015A
+:1037A00008959091D901982B9093D901089580950F
+:1037B0009091D90198239093D90108951092D9013D
+:1037C00008959091D801982B9093D80108958095F1
+:1037D0009091D80198239093D80108951092D80120
+:1037E00008958093C70108951092C70108954091EC
+:1037F0000E0150910F0120E030E080E0FA01E20F6D
+:10380000F31F918191118F5F2F5F3F4F2F30310553
+:10381000A9F70895E0910E01F0910F018091DA016E
+:103820008083E0910E01F0910F0180819091D90188
+:10383000892B8083E0910E01F0910F01808190919E
+:10384000D801892B80839091C701992361F0E09181
+:103850000E01F0910F018081892B80830E94F71B5C
+:1038600081111092C70180910E0190910F010C946B
+:10387000FF1040E0009739F09C012150310982236C
+:1038800093234F5FF7CF842F0895CF92DF92EF926B
+:10389000FF920F931F936C01EE24FF24C114D104F7
+:1038A000E104F10421F46B017C0180E001C080E1BE
+:1038B00033272F2D1E2D0D2D011511052105310545
+:1038C00019F0885F6801790197018601A4E03695B7
+:1038D000279517950795AA95D1F70115110521058B
+:1038E000310519F08C5F6801790197018601F2E0DA
+:1038F0003695279517950795FA95D1F70115110576
+:103900002105310519F08E5F68017901B701A60123
+:103910007695679557954795452B462B472B09F08C
+:103920008F5F1F910F91FF90EF90DF90CF900895E0
+:103930008091F401843021F11092DC0120E488E1CF
+:1039400090E00FB6F894A895809360000FBE209386
+:10395000600080E00E94FC0983B7817F846083BFA0
+:1039600083B7816083BF7894889583B78E7F83BF48
+:1039700088E10FB6F89480936000109260000FBE4B
+:10398000089508950E94E2030E94F5030E94C11C5D
+:103990000E94E90491E0811101C090E0892F08950F
+:1039A0000E9493150E94F3100C94FC0982E084BDE0
+:1039B00093E095BD9AEF97BD80936E0008952FB761
+:1039C000F8948091DD019091DE01A091DF01B0912A
+:1039D000E0012FBF0895CF92DF92EF92FF920F93F5
+:1039E0001F932FB7F8944091DD015091DE01609153
+:1039F000DF017091E0012FBF6A017B01EE24FF24FB
+:103A00008C0120E030E0C016D106E206F30610F487
+:103A100041505109481B590BCA011F910F91FF904A
+:103A2000EF90DF90CF9008951F920F920FB60F92F4
+:103A300011248F939F93AF93BF938091DD01909159
+:103A4000DE01A091DF01B091E0010196A11DB11D41
+:103A50008093DD019093DE01A093DF01B093E0013C
+:103A6000BF91AF919F918F910F900FBE0F901F90BC
+:103A700018950E94F90DF8942FEF87EA91E62150EE
+:103A800080409040E1F700C0000087E090EBDC014F
+:103A90008093FD019093FE01A093FF01B09300027B
+:103AA0002CE088E190E00FB6F894A8958093600030
+:103AB0000FBE20936000FFCF0E94941D811102C0B1
+:103AC0000E947A1D0E949F1D8093DB010E94A71D0A
+:103AD00090E09093EF018093EE0187FB882780F9B7
+:103AE00080930D010E94A31D682F70E080E090E09C
+:103AF0000C9493196DEE7EEF80E090E00E94C52358
+:103B000060E082E090E00E94B32360E083E090E018
+:103B10000E94B32360E084E090E00E94B32360E061
+:103B200085E090E00C94B32380E090E00E94AD2308
+:103B300021E08D3E9E4F09F020E0822F089582E023
+:103B400090E00C94A52383E090E00C94A52384E0FE
+:103B500090E00C94A523682F84E090E00C94B323AC
+:103B60008091E30180FF0BC06091130185E0689FA5
+:103B7000B001112475956795759567952AC081FFE9
+:103B800009C06091130185E0689FB001112475950B
+:103B900067951FC082FF07C06091130185E0689F91
+:103BA000B001112416C04091E4014423C9F0609192
+:103BB0001201461788F72091130185E0289F900194
+:103BC0001124429FC001439F900D112470E00E9478
+:103BD00077236038710540F46115710539F002C032
+:103BE00065E070E0862F08958FE7089581E00895DD
+:103BF0008091E30180FF08C06091110170E075952C
+:103C000067957595679521C081FF06C06091110188
+:103C100070E07595679519C082FF04C0609111012D
+:103C200070E010C08091E4018823C1F06091100120
+:103C30008617A0F790911101989FC001112470E0A0
+:103C40000E9477236038710528F46115710521F011
+:103C5000862F08958FE7089581E0089561E070E070
+:103C6000F4CF803F21F40E94B01D819504C0813FB4
+:103C700029F40E94B01D8093E7010895823F21F44A
+:103C80000E94B01D819504C0833F29F40E94B01D9D
+:103C90008093E6010895893F19F40E94F81D05C03C
+:103CA0008A3F31F40E94F81D81958093E8010895C0
+:103CB0008B3F21F40E94F81D819504C08C3F29F4AC
+:103CC0000E94F81D8093E9010895843F21F48091BA
+:103CD000E501816017C0853F21F48091E501826094
+:103CE00011C0863F21F48091E50184600BC0873FBD
+:103CF00021F48091E501886005C0883F31F480910E
+:103D0000E50180618093E50108958D3F21F4809164
+:103D1000E30181600BC08E3F21F48091E30182605A
+:103D200005C08F3F29F48091E30184608093E30113
+:103D30000895803F39F48091E70187FF6CC01092AD
+:103D4000E70169C0813F29F48091E7011816BCF3AF
+:103D500062C09091E601823F29F497FF5CC0109207
+:103D6000E60159C0833F19F41916CCF354C0893FBA
+:103D700041F48091E80118160CF04DC01092E80152
+:103D80004AC08A3F29F48091E80187FF44C0F6CFFA
+:103D90008B3F39F48091E90187FF3DC01092E90122
+:103DA0003AC08C3F29F48091E9011816BCF333C066
+:103DB000843F21F48091E5018E7F17C0853F21F477
+:103DC0008091E5018D7F11C0863F21F48091E5014E
+:103DD0008B7F0BC0873F21F48091E501877F05C071
+:103DE000883F31F48091E5018F7E8093E50113C017
+:103DF0008D3F21F48091E3018E7F0BC08E3F21F433
+:103E00008091E3018D7F05C08F3F29F48091E3010C
+:103E10008B7F8093E3018091E60181110EC0809138
+:103E2000E70181110AC08091E801811106C08091EB
+:103E3000E901811102C01092E401089585EE91E03C
+:103E40000E940A110E94DF1C9093E2018093E1011D
+:103E500008951F93CF93DF938091E1019091E20148
+:103E60000E94EB1C4091E401442321F020911401B5
+:103E700030E006C0209115015AE0259F90011124E1
+:103E80008217930708F482C08091E6011091E70140
+:103E9000D091E801C091E901811107C0111105C05D
+:103EA000D11103C0CC2309F471C04F3F19F04F5F0B
+:103EB0004093E401181624F40E94B01D8093E6019B
+:103EC0008091E60187FF05C00E94B01D8195809317
+:103ED000E601111624F40E94B01D8093E701809141
+:103EE000E70187FF05C00E94B01D81958093E7011F
+:103EF0006091E601662339F11091E701112319F170
+:103F0000772767FD7095872F972F0E94882223E3DC
+:103F100033E343E35FE30E94EC220E945522609367
+:103F2000E601612F772767FD7095872F972F0E94F5
+:103F3000882223E333E343E35FE30E94EC220E9401
+:103F400055226093E7011D1624F40E94F81D80930A
+:103F5000E8018091E80187FF05C00E94F81D819566
+:103F60008093E8011C1624F40E94F81D8093E90157
+:103F70008091E90187FF05C00E94F81D819580931B
+:103F8000E901DF91CF911F910C941E1FDF91CF911A
+:103F90001F910895E5EEF1E085E0DF011D928A951D
+:103FA000E9F71092E4011092E3010895833081F162
+:103FB00028F4813059F08230D1F00895853009F429
+:103FC00049C0B8F1863009F456C008952091150112
+:103FD000862F90E0820F911D8F3F910520F4620F94
+:103FE0006093150108958FEF809315010895209136
+:103FF0001401862F90E0820F911D8F3F910520F4D0
+:10400000620F6093140108958FEF80931401089557
+:1040100020911301862F90E0820F911D8F3F910513
+:1040200020F4620F6093130108958FEF80931301C2
+:10403000089520911201862F90E0820F911D8F3FED
+:10404000910520F4620F6093120108958FEF809321
+:104050001201089520911101862F90E0820F911D89
+:104060008F3F910520F4620F6093110108958FEF47
+:1040700080931101089520911001862F90E0820F06
+:10408000911D8F3F910520F4620F609310010895F8
+:104090008FEF809310010895833011F128F481305F
+:1040A00049F0823091F00895853081F120F1863019
+:1040B000C1F1089580911501681720F4861B809343
+:1040C0001501089510921501089580911401681743
+:1040D00020F4861B80931401089510921401089512
+:1040E00080911301681720F4861B809313010895B3
+:1040F00010921301089580911201681720F4861B15
+:104100008093120108951092120108958091110177
+:10411000681720F4861B80931101089510921101F5
+:10412000089580911001681720F4861B8093100178
+:1041300008951092100108958D3109F43FC008F5DB
+:10414000803109F485C070F4873009F456C018F442
+:104150008630D9F131C08B3009F4A5C08E3009F416
+:1041600066C02AC0863109F49EC020F4813109F46A
+:1041700079C022C0893109F496C08B3109F44DC051
+:104180001BC0853309F487C048F4873209F483C023
+:1041900008F473C0893209F47EC00EC0833438F449
+:1041A0008A3308F068C0883309F47DC005C08334C1
+:1041B00009F471C0883499F080E008950E940F22BC
+:1041C0000E94F3100E94FC096EC08091DB01817F88
+:1041D0008E7F8093DB0181E08093EB0108950E9444
+:1041E00093152FEF83ED90E3215080409040E1F74D
+:1041F00000C000000E94391D56C09091DB01892F3C
+:104200008095817080FB90F919F0966098601DC0D0
+:10421000997F977F9093DB0146C09091DB0191FBE2
+:10422000882780F921E0822780FB91F909C09091CD
+:10423000DB0192FB882780F921E0822780FB92F93D
+:104240009093DB01882379F191609093DB010895CD
+:104250009091DB0193FB882780F921E0822780FB86
+:1042600093F9EECF0E94931580910D0191E089277B
+:1042700080930D0118C027EC01C023EE280F61E0E8
+:1042800070E080E090E004C0660F771F881F991FE0
+:104290002A95D2F704C061E070E080E090E00E94CF
+:1042A00093190E94931581E0089580E0089580E0BD
+:1042B0000895CF93C82F8091EB01813079F018F0E9
+:1042C0008230D1F184C0A0910E01B0910F018C9188
+:1042D000813169F0823209F07CC009C0A0910E01E1
+:1042E000B0910F018C91813111F0823249F48C2F01
+:1042F0000E94552181111DC08C2F0E949C201AC044
+:104300008C2F0E945721811114C0C43179F048F4D8
+:10431000CB3079F0C03109F060C082E08093EB01CE
+:1043200008C0C93219F0C83321F057C01092EB0110
+:1043300054C081E0817053C0C93289F118F5C4318D
+:1043400071F1A8F4C73009F046C08AE080931501E6
+:1043500094E19093140193E09093130180931201E0
+:1043600088E08093110188E28093100134C0CE511F
+:10437000C63088F5EC2FF0E0E65DFE4F808180933B
+:10438000EA0129C0CE34E9F020F4CB3421F56AE00B
+:1043900013C0C13579F0C235F1F461E00DC08091F0
+:1043A000EA01882319F01092EA0115C081E0809398
+:1043B000EB0115C061E006C08091EA010E94D61FA2
+:1043C0000AC06AE08091EA010E944C2004C0109269
+:1043D000EB0180E004C081E002C080E0ABCFCF9170
+:1043E0000895E1E8F0E080818860808380818160C9
+:1043F00080838FB7F89493E09093890090ED909329
+:1044000088008FBF0895EFE6F0E0808182608083AE
+:104410000895EFE6F0E080818D7F80830895EFE6D8
+:10442000F0E0808192E08927808308951F920F92A7
+:104430000FB60F9211242F933F934F935F936F9377
+:104440007F938F939F93AF93BF93EF93FF9380914D
+:10445000EC019091ED0101969093ED018093EC01B8
+:10446000811103C082E00E94FC09E091ED01E69514
+:10447000E695F0E0E552FA4FE4918091EC018E135D
+:1044800003C080E00E94FC09FF91EF91BF91AF91C2
+:104490009F918F917F916F915F914F913F912F915C
+:1044A0000F900FBE0F901F90189504D06894B11113
+:1044B0008DC0089570D088F09F5790F0B92F99273C
+:1044C000B751A0F0D1F0660F771F881F991F1AF01F
+:1044D000BA95C9F712C0B13081F077D0B1E0089534
+:1044E00074C0672F782F8827B85F39F0B93FCCF3B5
+:1044F000869577956795B395D9F73EF49095809515
+:10450000709561957F4F8F4F9F4F0895E89409C034
+:1045100097FB3EF490958095709561957F4F8F4FF6
+:104520009F4F9923A9F0F92F96E9BB279395F6950C
+:10453000879577956795B795F111F8CFFAF4BB0F8A
+:1045400011F460FF1BC06F5F7F4F8F4F9F4F16C0EE
+:10455000882311F096E911C0772321F09EE8872F78
+:10456000762F05C0662371F096E8862F70E060E034
+:104570002AF09A95660F771F881FDAF7880F9695AD
+:10458000879597F9089557FD9058440F551F59F096
+:104590005F3F71F04795880F97FB991F61F09F3F30
+:1045A00079F087950895121613061406551FF2CF59
+:1045B0004695F1DF08C0161617061806991FF1CFA9
+:1045C00086957105610508940895E894BB276627D0
+:1045D0007727CB0197F908950BD078C069D028F0E0
+:1045E0006ED018F0952309F05AC05FC01124EECFA9
+:1045F000CADFA0F3959FD1F3950F50E0551F629F3E
+:10460000F001729FBB27F00DB11D639FAA27F00D2B
+:10461000B11DAA1F649F6627B00DA11D661F829F52
+:104620002227B00DA11D621F739FB00DA11D621F37
+:10463000839FA00D611D221F749F3327A00D611D54
+:10464000231F849F600D211D822F762F6A2F112436
+:104650009F5750408AF0E1F088234AF0EE0FFF1F89
+:10466000BB1F661F771F881F91505040A9F79E3FC0
+:10467000510570F014C0AACF5F3FECF3983EDCF315
+:10468000869577956795B795F795E7959F5FC1F7FD
+:10469000FE2B880F911D9695879597F9089597F9A8
+:1046A0009F6780E870E060E008959FEF80EC0895D8
+:1046B00000240A9416161706180609060895002401
+:1046C0000A9412161306140605060895092E03947B
+:1046D000000C11F4882352F0BB0F40F4BF2B11F4EF
+:1046E00060FF04C06F5F7F4F8F4F9F4F089597FB10
+:1046F000072E16F4009407D077FD09D00E9491236D
+:1047000007FC05D03EF4909581959F4F08957095D4
+:1047100061957F4F0895EE0FFF1F0590F491E02DF6
+:104720000994AA1BBB1B51E107C0AA1FBB1FA617F8
+:10473000B70710F0A61BB70B881F991F5A95A9F74A
+:1047400080959095BC01CD010895F999FECF92BD59
+:1047500081BDF89A992780B50895A8E1B0E042E0BC
+:1047600050E00C94CD23262FF999FECF92BD81BD48
+:10477000F89A019700B4021639F01FBA20BD0FB69F
+:10478000F894FA9AF99A0FBE08950196272F0E947D
+:10479000B4230C94B323DC01CB01FC01F999FECFC7
+:1047A00006C0F2BDE1BDF89A319600B40D924150B9
+:0A47B0005040B8F70895F894FFCFC9
+:1047BA000220FE098B0A680A340A010A0101C801AB
+:1047CA0028080A03140A404D36399B054E05180578
+:1047DA00DF0472048B04A404BD0401020304050669
+:0447EA0007080900B3
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/default/default.png b/keyboards/ergodox_ez/keymaps/default/default.png Binary files differnew file mode 100644 index 000000000..6575f7b5e --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/default/default.png diff --git a/keyboards/ergodox_ez/keymaps/default/default_highres.png b/keyboards/ergodox_ez/keymaps/default/default_highres.png Binary files differnew file mode 100644 index 000000000..7d9f045f4 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/default/default_highres.png diff --git a/keyboards/ergodox_ez/keymaps/default/keymap.c b/keyboards/ergodox_ez/keymaps/default/keymap.c new file mode 100644 index 000000000..b48a54a43 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/default/keymap.c @@ -0,0 +1,182 @@ +#include "ergodox_ez.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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 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 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | . | 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_ez/keymaps/default/readme.md b/keyboards/ergodox_ez/keymaps/default/readme.md new file mode 100644 index 000000000..8f6dba45e --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/default/readme.md @@ -0,0 +1,10 @@ +# ErgoDox EZ Default Configuration + +## Changelog + +* 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) diff --git a/keyboards/ergodox_ez/keymaps/default_osx/compiled.hex b/keyboards/ergodox_ez/keymaps/default_osx/compiled.hex new file mode 100644 index 000000000..cdd9b9704 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/default_osx/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4
+:100010000C94BE020C94BE020C94BE020C94BE0260
+:100020000C94BE020C94BE020C94620D0C94340E1F
+:100030000C94BE020C94BE020C94BE020C94BE0240
+:100040000C94BE020C943E220C94BE020C94BE0290
+:100050000C94BE020C94D11B0C94BE020C94BE02F4
+:100060000C94BE020C94BE020C94BE020C94BE0210
+:100070000C94BE020C94BE020C94BE020C94BE0200
+:100080000C94BE020C94BE020C94BE020C94BE02F0
+:100090000C94BE020C94BE020C94BE020C94BE02E0
+:1000A0000C94BE020C94BE020C94BE02A10EC30EB0
+:1000B000B10FC30EB10F080F2B0FB10F800F930FAD
+:1000C0006212621291129112C712E71218141814D8
+:1000D000F2121814A213A2130914181418141214EB
+:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300
+:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0
+:10010000C113CE13D513DC13E6130000F0A12E00AB
+:100110004C002A00E100354100001E0014000400DC
+:100120001D7134004D001F001A0016001B00E10471
+:100130002A00200008000700060050002C002100C3
+:100140001500090019004F004A00220017000A009C
+:10015000050000006574500001540000007F00009D
+:10016000E3004F000154000000770000E20023008C
+:100170001C000B00110000002971240018000D0064
+:10018000100052004B0025000C000E0036005100FC
+:100190002800260012000F0037002F002B00270038
+:1001A00013003342387130004E002D003100E3005F
+:1001B000E500C10000000100010001000100010094
+:1001C00000003A001E0220022202010001003B0052
+:1001D0001F0221022302010001003C002F0226021F
+:1001E0002F00010001003D00300227023000010015
+:1001F00001003E003102350035020000010001001F
+:1002000001000000010000000100010001000000E9
+:100210000100000001003F005200510024020000D4
+:1002200001004000240021001E00010001004100E7
+:10023000250022001F003700010042002600230095
+:10024000200027000100430025022E0231002E006D
+:100250000100440045000100010001000000010010
+:100260000100010001000100000001000100010087
+:1002700001000100010001000100F2000100010085
+:1002800001000100F000F1000100F4000100010094
+:100290000100F3000100F500010001000100010070
+:1002A0000100000001000100010000000100000049
+:1002B0000100010001000000010000000100010038
+:1002C0000100010001000000010001000100010027
+:1002D0000100A9000100010001000100AC00AA001A
+:1002E000B600010001000100AB00A8000100010000
+:1002F0000100010001000100010001000100AE0049
+:1003000001000100000016034500720067006F0045
+:1003100044006F007800200045005A0000001603DA
+:100320004500720067006F0044006F0078002000F5
+:1003300045005A0000000403090409026D0004018D
+:1003400000A0FA09040000010301010009211101C4
+:100350000001223F000705810308000A090401008B
+:100360000103010200092111010001224D000705CE
+:10037000820308000A0904020001030000000921A9
+:10038000110100012236000705830308000A090451
+:1003900003000103000000092111010001223900BE
+:1003A000070584031000011201100100000008ED90
+:1003B000FE071301000102000105010906A1010564
+:1003C0000719E029E7150025019508750181020547
+:1003D000081901290595057501910295017503918B
+:1003E0000105071900297715002501957875018108
+:1003F00002C005010980A101850216010026B7008F
+:100400001A01002AB700751095018100C0050C097A
+:1004100001A1018503160100269C021A01002A9CF5
+:1004200002751095018100C005010902A1010901B1
+:10043000A10005091901290515002501950575017A
+:10044000810295017503810105010930093115818A
+:10045000257F95027508810609381581257F95014C
+:1004600075088106050C0A38021581257F950175EE
+:10047000088106C0C005010906A101050719E02988
+:10048000E715002501950875018102950175088120
+:100490000105081901290595057501910295017558
+:1004A0000391010507190029FF150025FF95067521
+:1004B000088100C0000000000000000000000001F2
+:1004C0000204060A0F17202C3A4A5D71879DB3C7B4
+:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF
+:1004E0003A2C20170F0A0604020100000000000049
+:1004F0000000000011241FBECFEFDAE0DEBFCDBF49
+:1005000004B603FE24C08091FB019091FC01A091F0
+:10051000FD01B091FE018730904BA740B04BB9F47C
+:100520001092FB011092FC011092FD011092FE014D
+:1005300014BE84B7877F84BF88E10FB6F894809398
+:100540006000109260000FBEE0E0FFE3099511E04B
+:10055000A0E0B1E0EAE0F8E402C005900D92A43317
+:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0
+:10057000B107E1F70E94A60A0C9403240C94000032
+:100580001092B9008AE08093B800089594EA90939D
+:10059000BC009091BC0097FFFCCF9091B900987F70
+:1005A000983021F0903111F081E008958093BB00E4
+:1005B00084E88093BC008091BC0087FFFCCF8091D1
+:1005C000B900887F883111F0803471F780E0089598
+:1005D00084E98093BC008091BC0084FDFCCF089529
+:1005E0008093BB0084E88093BC008091BC0087FFAF
+:1005F000FCCF9091B900987F81E0983209F480E0B7
+:10060000089584E88093BC008091BC0087FFFCCFF4
+:100610008091BB00089580910101811115C080E493
+:100620000E94C6028093010181110CC082E10E94E8
+:10063000F00280930101811105C08FEF0E94F0024A
+:10064000809301010E94E80284B1807F84B985B162
+:10065000807F85B98AB1837F8AB98BB1837F8BB95B
+:100660003E98469808950E94C604809301010E9416
+:100670000B0380B38C7080BB81B3836F81BBA5E318
+:10068000B1E0E3E4F1E08EE08E0F11921D928E1343
+:10069000FCCF0C94B004BF92CF92DF92EF92FF9206
+:1006A0000F931F93CF93DF9380910101882379F0FB
+:1006B000809134018F5F80933401811108C00E94C2
+:1006C000C60480930101811102C00E94580405E311
+:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407
+:1006E000E394F12CC730D10500F58091010181110F
+:1006F00064C080E40E94C60280930101811112C08F
+:1007000082E10E94F0028093010181110BC0C701B8
+:100710000C2E01C0880F0A94EAF780950E94F0021F
+:10072000809301010E94E80248C0CA30A1F028F479
+:10073000C83059F0C93061F005C0CC3089F070F094
+:10074000CD3089F0209A289810C0219A29980DC0A0
+:10075000229A2A980AC0239A2B9807C0529A01C05D
+:10076000539A5B9802C03E9A469890EA9A95F1F7A0
+:100770009FB1799902C082E001C080E091709D250F
+:10078000982B7C9902C084E001C080E0892B7D9980
+:1007900002C038E001C030E0832B7E9902C020E126
+:1007A00001C020E0822B9FB19095991F9927991F36
+:1007B0009295990F907E892B0FC080910101811134
+:1007C00049C080E40E94C60280930101882379F128
+:1007D000B12C0E94E8028B2DF8019081981719F036
+:1007E0008083C09200010E940B0321960F5F1F4F70
+:1007F000CE30D10509F076CF80910001882361F1D8
+:10080000815080930001882339F08FE99FE00197A0
+:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F
+:10082000CF01825F91919D938E13FCCF15C083E120
+:100830000E94F002809301018111CACF81E40E94DD
+:10084000C602809301018111C3CF0E940103B82E1B
+:10085000B094BFCF80E0C0CF0E94560481E0DF910A
+:10086000CF911F910F91FF90EF90DF90CF90BF90AD
+:100870000895E82FF0E0ED5BFE4F80810895089524
+:100880000F931F93CF93DF93C3E4D1E010E00C2FBD
+:10089000025F899190E00E94F71A180F0C13F9CFAC
+:1008A000812FDF91CF911F910F9108950C94260510
+:1008B00056985E9825982D9826982E9827982F98C8
+:1008C0008FEF90E0909389008093880090938B0045
+:1008D00080938A0090938D0080938C00259A2D9AA6
+:1008E0002FEF80E792E0215080409040E1F700C078
+:1008F0000000269A2E9A2FEF80E792E02150804048
+:100900009040E1F700C00000279A2F9A2FEF80E770
+:1009100092E0215080409040E1F700C0000025980F
+:100920002D982FEF80E792E0215080409040E1F732
+:1009300000C0000026982E982FEF80E792E021500B
+:1009400080409040E1F700C0000027982F9856980B
+:100950005E9825982D9826982E9827982F98089578
+:1009600089EA8093800089E08093810024982C9804
+:100970003F988AB18F748AB96E98479A8BB1806B11
+:100980008BB9769A0E9458040C94250580E28093D6
+:1009900001018091510181110EC00E94C00281E0CD
+:1009A000809351012FEF83ED90E3215080409040E0
+:1009B000E1F700C0000080E40E94C60280930101BC
+:1009C00081112EC00E94F00280930101811128C084
+:1009D0000E94F00280930101811122C08FE30E94E6
+:1009E000F0028093010181111BC00E94E80280E4A3
+:1009F0000E94C60280930101811112C08CE00E9406
+:100A0000F0028093010181110BC00E94F0028093DB
+:100A10000101811105C08FE30E94F0028093010162
+:100A20000E94E80280910101089561110BC0FC0150
+:100A30008281882321F085EE0E94061103C085EE95
+:100A40000E94CE1180E090E0089508956091BD016C
+:100A50007091BE018091BF019091C0010E94031B63
+:100A600056985E9825982D9826982E9827982F9816
+:100A7000813019F0823021F00895259A2D9A089539
+:100A8000269A2E9A089581E0089581E008950C94A5
+:100A9000450508950F931F93CF93DF938C01FC01BD
+:100AA000C081D181CE010E947C19BE010E94F30554
+:100AB000EC01B8010E944705882309F48DC0F801B4
+:100AC0008281882309F44AC080915D0181111FC091
+:100AD000C431F0E5DF0709F051C00E94490581E00B
+:100AE00080935D010E949B1B90935C0180935B014E
+:100AF0001092540110925601109255011092580113
+:100B00001092570110925A011092590165C08091BC
+:100B10005B0190915C010E94A71B883C910570F4D9
+:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB
+:100B3000D183C0838F5F809354014EC0C43880E559
+:100B4000D80721F0C538D04501F13AC0F8018281BB
+:100B5000882341F01092520182E01EC0C438E0E5C3
+:100B6000DE0759F580915201811106C086E20E948C
+:100B7000061186E20E94CE1182E01CC0C438F0E566
+:100B8000DF0741F3C538D045D9F4F80182818823C5
+:100B900031F01092530180E20E941D121DC080911D
+:100BA0005301811106C087E20E94061187E20E946C
+:100BB000CE1180E20E9424120FC0C538D04529F31F
+:100BC00081E08093520180935301C801DF91CF915E
+:100BD0001F910F910C94430580E0DF91CF911F91FD
+:100BE0000F910895089596E0799FF001112494E5FE
+:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F
+:100C0000E25FFE4F859194910895880F991FFC0132
+:100C1000E657F040859194910895880F991FFC0143
+:100C2000E65FFE4F8591949108950F931F93CF93A4
+:100C3000DF93EC01811520E3920750F5C11580E2A6
+:100C4000D80708F0C3C0CB3BD10590F4C83AD10512
+:100C500008F06AC0C53AD10508F05BC0C430D105C0
+:100C600008F0D0C1219709F0CAC101E010E00AC222
+:100C7000CF3FD10511F008F0C5C1C03FD10508F044
+:100C8000A2C0CE01805E9109089708F4BBC1B7C12C
+:100C9000C13090E5D90709F4A2C020F5C0318FE436
+:100CA000D80770F4C11590E4D90708F094C0C115B5
+:100CB00021E3D20708F0A3C1DD278E01106CE2C149
+:100CC000C115D04509F09BC10E9483148FEF94E3B6
+:100CD0002CE0815090402040E1F700C000000E94CD
+:100CE000F61BD0C1C11597E5D90758F4C03121E5ED
+:100CF000D20708F01CC1C43180E5D80708F475C0DC
+:100D00007EC1CE0190578115904108F078C1DF7007
+:100D100073C1C53AD10509F477C1C63AD10509F0C6
+:100D200076C102E810E4AEC1C83AD10509F472C137
+:100D3000C93AD10509F471C1CA3AD10509F470C1A3
+:100D4000CB3AD10509F46FC1CC3AD10509F46EC193
+:100D5000CD3AD10509F46DC1C03BD10509F46CC190
+:100D6000CE3AD10509F46BC1CF3AD10509F46AC175
+:100D7000C13BD10509F469C1C23BD10509F468C181
+:100D8000C33BD10509F467C1C43BD10509F466C171
+:100D9000C53BD10509F465C1C63BD10509F464C161
+:100DA000C73BD10509F463C1C83BD10509F462C151
+:100DB000C93BD10509F461C1CA3BD10509F460C141
+:100DC00000E014E45FC18E0110655CC1CE019F702C
+:100DD0000E940D0658C1DF708E01106A53C18091C8
+:100DE000DA0181608093DA014DC10E949B1D81115F
+:100DF00002C00E94811D0E94B81D90E09093FB01EB
+:100E00008093FA01C23080E5D80721F48091FA017D
+:100E1000816086C0C43090E5D90721F48091FA0141
+:100E200082607EC0C63020E5D20721F48091FA01AD
+:100E3000846076C0C83080E5D80719F48091FA0143
+:100E400027C0CA3090E5D90721F48091FA0180616A
+:100E500067C0CC3020E5D20721F48091FA0180628E
+:100E60005FC0CE3080E5D80721F48091FA0180641C
+:100E700057C0C03190E5D90721F48091FA0180680C
+:100E80004FC0C23120E5D20729F48091FA01846075
+:100E9000886046C0C33080E5D80721F48091FA010C
+:100EA0008E7F3EC0C53090E5D90721F48091FA01CC
+:100EB0008D7F36C0C73020E5D20721F48091FA013A
+:100EC0008B7F2EC0C93080E5D80719F48091FA01D4
+:100ED00026C0CB3090E5D90721F48091FA018F7EAE
+:100EE0001FC0CD3020E5D20721F48091FA018F7D1B
+:100EF00017C0CF3080E5D80721F48091FA018F7BAD
+:100F00000FC0C13190E5D90721F48091FA018F77A4
+:100F100007C0C331D04531F48091FA018B7F877FC0
+:100F20008093FA018091FA010E94BC1DABC08D2F05
+:100F300099278F70992781309105D9F49E012370EC
+:100F4000332702C0880F991F2A95E2F79C688E010B
+:100F500044E0000F111F4A95E1F700271370802B22
+:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA
+:100F70002FC08230910531F4DC2FCC278E01016F18
+:100F8000106A80C08330910569F4CE01837099277F
+:100F900001E010E002C0000F111F8A95E2F7C801BE
+:100FA0009C680FC084309105B9F4CE0183709927F5
+:100FB00001E010E002C0000F111F8A95E2F7C8019E
+:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029
+:100FD0008C010C2B1D2B56C08530910531F4DC2F74
+:100FE000CC278E01046F106A4DC0069709F04AC0E5
+:100FF000CF71DD27DC2FCC278E01106243C000E0CB
+:1010000010E040C08E013EC001E810E43BC003E8A0
+:1010100010E438C002EE14E435C009EE14E432C026
+:101020000AEE14E42FC005EB14E42CC006EB14E424
+:1010300029C007EB14E426C00CEC14E423C00DEC2B
+:1010400014E420C003E815E41DC00AE815E41AC042
+:1010500002E915E417C004E915E414C001E216E43E
+:1010600011C003E216E40EC004E216E40BC005E270
+:1010700016E408C006E216E405C007E216E402C062
+:101080000AE216E4C801DF91CF911F910F910895F4
+:1010900096E0799FF001112494E5899FE00DF11D00
+:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149
+:1010B0009491803E9105E0F4803C910558F5813390
+:1010C000910509F46FC048F48932910509F463C0B1
+:1010D0008A32910509F46DC072C089339105E9F037
+:1010E00082389105D1F08533910509F44DC067C070
+:1010F000833E910581F138F4803E9105B9F0823E3E
+:101100009105D9F05CC0863E910561F1873E91055D
+:10111000A1F155C00E94050608952091FA0120FD15
+:1011200002C021FF4CC080EE90E049C08091FA01DE
+:1011300080FFF9CF89E390E042C08091FA0182FFFD
+:101140000EC08091FA0184FF03C080E090E037C0B8
+:1011500083EE90E034C08091FA0182FFF2CF82EEFC
+:1011600090E02DC08091FA0183FF0BC08091FA01BD
+:1011700084FDEBCF87EE90E022C08091FA0183FFDF
+:10118000F5CF86EE90E01BC08091FA0185FF07C085
+:1011900089E290E014C08091FA0185FFF9CF85E3E0
+:1011A00090E00DC08091FA0186FF07C08AE290E0CE
+:1011B00006C08091FA0186FFF9CF81E390E00E949A
+:1011C0001506089508950C94E20880916E01089523
+:1011D000CF93DF9300D01F92CDB7DEB79C018091F3
+:1011E000F101843019F593E099833B832A8390932E
+:1011F000E9008FEF9091E800815095FD06C095EDD4
+:101200009A95F1F700008111F5CF8091E80085FFF4
+:101210000DC040E050E063E070E0CE0101960E9416
+:10122000520B8091E8008E778093E8000F900F902A
+:101230000F90DF91CF910895CF93DF9300D01F924D
+:10124000CDB7DEB72091F101243021F522E02983CA
+:101250009B838A8383E08093E9008FEF9091E8007D
+:10126000815095FD06C095ED9A95F1F7000081112A
+:10127000F5CF8091E80085FF0DC040E050E063E0CD
+:1012800070E0CE0101960E94520B8091E8008E77AB
+:101290008093E8000F900F900F90DF91CF91089509
+:1012A0002091F1012430F1F422E02093E9002FEFA6
+:1012B0003091E800215035FD06C035ED3A95F1F743
+:1012C00000002111F5CF2091E80025FF0BC040E080
+:1012D00050E065E070E00E94520B8091E8008E774C
+:1012E0008093E8000895CF93DF93EC019091F10192
+:1012F000943009F046C080910C018823D9F0809188
+:101300000D018823B9F09093E9008FEF9091E800E8
+:10131000815095FD06C095E19A95F1F70000811185
+:10132000F5CF8091E80085FF2CC040E050E060E1FF
+:1013300070E017C081E08093E9008FEF9091E800A2
+:10134000815095FD06C095ED9A95F1F70000811149
+:10135000F5CF8091E80085FF14C040E050E068E0E0
+:1013600070E0CE010E94520B8091E8008E7780934E
+:10137000E80080E1FE01AEE5B1E001900D928A95B2
+:10138000E1F7DF91CF9108958091F001811109C0BB
+:101390000E94E70C0E94440D8091E20084608093DB
+:1013A000E20008951092F001089508950C942B2204
+:1013B0000E948C1B0E9431220E94EA0F0C94E308C9
+:1013C00042E061EC81E00E94610C42E061EC82E06D
+:1013D0000E94610C42E061EC83E00E94610C42E1FA
+:1013E00061EC84E00C94610C8091F301833009F48A
+:1013F00055C030F4813071F0823009F48EC0089508
+:101400008A3009F47AC08B3009F460C0893009F061
+:101410009CC020C08091F201813A09F096C0809171
+:10142000E800877F8093E8008091F6019091F701B2
+:10143000892B21F460E18EE591E003C060E080E05B
+:1014400090E070E00E949D0B8091E8008B77809384
+:10145000E80008958091F201813209F076C0809110
+:10146000F6019091F701009719F0039709F06DC00C
+:101470008091E800877F8093E8008091E80082FDFA
+:1014800005C08091F1018111F8CF5FC08091F1001A
+:1014900080936E018091E8008B7753C08091F201B8
+:1014A000813A09F052C08091F6019091F701892BA1
+:1014B00009F04BC08091E800877F8093E80080911D
+:1014C000E80080FFFCCF80910C0136C08091F201D2
+:1014D0008132D9F58091F6019091F701892BA9F518
+:1014E0008091E800877F8093E8000E94960C8091AD
+:1014F000F40180930C010C9483148091F2018132E9
+:1015000021F58091E800877F8093E8000E94960C87
+:101510008091F50180936F0108958091F201813AE5
+:10152000A1F48091E800877F8093E8008091E80033
+:1015300080FFFCCF80916F018093F1008091E800E3
+:101540008E778093E8000C94960C089584B7877F7B
+:1015500084BF88E10FB6F894809360001092600019
+:101560000FBE90E080E80FB6F894809361009093EE
+:1015700061000FBE0E9439100E94E70C0E94440DCA
+:101580008091E20084608093E20078940E94CA0F08
+:101590000E943B1082E091E00E94E50F0E94192218
+:1015A0008091F101853069F40E94531B8091EF0115
+:1015B0008823B1F30E947E1B882391F30E943C0B89
+:1015C000EFCF0E944110ECCF292F33272330310574
+:1015D000C9F064F42130310581F02230310509F081
+:1015E00043C08DE690E02AE333E042C0213231056A
+:1015F000F1F02232310541F137C082E190E027EA73
+:1016000033E036C099278130910541F08230910551
+:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4
+:1016200002C0E6E0F3E0849190E09F0121C06430C5
+:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5
+:10164000318189E090E014C0643070F470E0FB01F7
+:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47
+:10166000FE4F808190E004C080E090E020E030E018
+:10167000FA0131832083089580E189BD82E189BD2B
+:1016800009B400FEFDCF8091D8008F7D8093D800F3
+:101690008091E00082608093E0008091E00081FD15
+:1016A000FCCF0895CF92DF92EF92FF920F931F939A
+:1016B000CF93DF93EC018B016A010E94B50C81117D
+:1016C00033C0C114D10439F0F60180819181081B27
+:1016D000190BC80FD91FE12CF12C0115110519F1B7
+:1016E0008091E80085FD16C08091E8008E77809398
+:1016F000E800C114D10449F0F60180819181E80E1F
+:10170000F91EF182E08285E00FC00E94B50C8823AB
+:1017100021F30AC089918093F10001501109FFEF74
+:10172000EF1AFF0ADACF80E0DF91CF911F910F917E
+:10173000FF90EF90DF90CF9008952091F8013091C5
+:10174000F9012617370748F06115710539F4209122
+:10175000E8002E772093E80001C0B90140E0611550
+:101760007105A9F12091F101222309F443C025302C
+:1017700009F442C02091E80023FD40C02091E80018
+:1017800022FD32C02091E80020FFE9CF4091F30014
+:101790002091F20030E0342BFC01CF01611571057E
+:1017A00059F02830310540F481918093F100615067
+:1017B00071092F5F3F4FF1CF41E02830310509F02B
+:1017C00040E02091E8002E772093E800C8CF411137
+:1017D000C9CF0AC08091F101882361F0853061F0A2
+:1017E0008091E80083FD0AC08091E80082FFF2CF7B
+:1017F00080E0089582E0089583E0089581E00895EF
+:101800002091F8013091F9012617370748F061154A
+:10181000710539F42091E8002E772093E80001C08B
+:10182000B901FC0120E06115710591F18091F10190
+:10183000882309F440C0853009F43FC08091E80056
+:1018400083FD3DC08091E80082FD2FC08091E800BB
+:1018500080FFE9CF2091F3008091F20090E0922B7D
+:101860006115710559F08830910540F42491209359
+:10187000F1003196615071090196F2CF21E008978D
+:1018800009F020E08091E8008E778093E800CBCFCC
+:101890002111CCCF0AC08091F101882361F08530FD
+:1018A00061F08091E80083FD0AC08091E80082FF2A
+:1018B000F2CF80E0089582E0089583E0089581E00A
+:1018C0000895982F973058F59093E900981739F0BC
+:1018D0007091EC002091ED005091F00003C0242F96
+:1018E000762F50E021FF19C03091EB003E7F3093FE
+:1018F000EB003091ED003D7F3093ED003091EB0037
+:1019000031603093EB007093EC002093ED00509326
+:10191000F0002091EE0027FF07C09F5FD3CF8F70AC
+:101920008093E90081E0089580E008958091F201BC
+:1019300087FF11C08091E80082FD05C08091F10110
+:101940008111F8CF11C08091E8008B770BC0809196
+:10195000F101882349F08091E80080FFF8CF809161
+:10196000E8008E778093E80008952091E40030919C
+:10197000E50095E64091EC00842F817040FF22C085
+:101980008091E80080FD1CC08091F101882391F0D6
+:10199000853091F08091EB0085FD10C04091E4000E
+:1019A0005091E5004217530729F39A01915011F71E
+:1019B00084E0089582E0089583E0089581E0089529
+:1019C00080E008954091E80042FFDECF08950E9434
+:1019D000550D0E945D0DE0EEF0E080818160808316
+:1019E000E8EDF0E080818F77808319BCA7EDB0E04F
+:1019F0008C918E7F8C9380818F7E80831092F001FA
+:101A000008950F931F93CF93DF930E94550D0E946B
+:101A10005D0DC8EDD0E088818F77888388818068EC
+:101A2000888388818F7D888319BC1092F101109280
+:101A3000ED011092EF011092EE0100EE10E0F801BE
+:101A400080818B7F808388818160888342E060E031
+:101A500080E00E94610CE1EEF0E080818E7F808367
+:101A6000E2EEF0E080818160808380818860808305
+:101A7000F80180818E7F8083888180618883DF91F7
+:101A8000CF911F910F910895E8EDF0E080818F7E56
+:101A90008083E7EDF0E080818160808384E082BF15
+:101AA00081E08093F0010C94010DE8EDF0E080817D
+:101AB0008E7F80831092E20008951092DA001092D7
+:101AC000E10008951F920F920FB60F9211242F93E9
+:101AD0003F934F935F936F937F938F939F93AF93B6
+:101AE000BF93EF93FF938091E10082FF0BC0809141
+:101AF000E20082FF07C08091E1008B7F8093E100CC
+:101B00000E94C90F8091DA0080FF1FC08091D80029
+:101B100080FF1BC08091DA008E7F8093DA00809175
+:101B2000D90080FF0DC080E189BD82E189BD09B483
+:101B300000FEFDCF81E08093F1010E94C40905C041
+:101B400019BC1092F1010E94D2098091E10080FF3E
+:101B500019C08091E20080FF15C08091E2008E7F65
+:101B60008093E2008091E20080618093E2008091A6
+:101B7000D80080628093D80019BC85E08093F10181
+:101B80000E94D6098091E10084FF30C08091E2007C
+:101B900084FF2CC080E189BD82E189BD09B400FECB
+:101BA000FDCF8091D8008F7D8093D8008091E10097
+:101BB0008F7E8093E1008091E2008F7E8093E2002F
+:101BC0008091E20081608093E2008091ED018823A2
+:101BD00011F084E007C08091E30087FD02C081E03E
+:101BE00001C083E08093F1010E94D8098091E10057
+:101BF00083FF29C08091E20083FF25C08091E1002E
+:101C0000877F8093E10082E08093F1011092ED01E3
+:101C10008091E1008E7F8093E1008091E2008E7FD1
+:101C20008093E2008091E20080618093E20042E0D4
+:101C300060E080E00E94610C8091F00088608093F9
+:101C4000F0000E94D509FF91EF91BF91AF919F9154
+:101C50008F917F916F915F914F913F912F910F9055
+:101C60000FBE0F901F9018951F920F920FB60F92F4
+:101C700011242F933F934F935F936F937F938F9391
+:101C80009F93AF93BF93CF93DF93EF93FF93C09155
+:101C9000E900CF708091EC00D82FD17080FDD0E8A2
+:101CA0001092E9008091F000877F8093F000789493
+:101CB0000E94780E1092E9008091F0008860809375
+:101CC000F000CD2BCF70C093E900FF91EF91DF9131
+:101CD000CF91BF91AF919F918F917F916F915F91C4
+:101CE0004F913F912F910F900FBE0F901F9018951D
+:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3
+:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115
+:101D1000F10091938E13FBCF0E94F4098091E800AB
+:101D200083FF1FC18091F2019091F301492F50E090
+:101D30004A30510508F015C1FA01EA5AFF4F0C94D8
+:101D4000B323803881F0823809F00BC18091F6010D
+:101D50008F708093E9008091EB0085FB882780F9E4
+:101D60001092E90006C08091EE019091EF0191116F
+:101D700082609091E800977F9093E8008093F10053
+:101D80001092F100C8C0282F2D7F09F0EAC08823E7
+:101D900019F0823061F0E5C08091F401813009F0E2
+:101DA000E0C0933009F080E08093EF012BC0809178
+:101DB000F401811127C08091F6018F7009F4D1C020
+:101DC0008093E9002091EB0020FF1CC0933021F4A8
+:101DD0008091EB00806214C09091EB009061909331
+:101DE000EB0021E030E0A90102C0440F551F8A95A5
+:101DF000E2F74093EA001092EA008091EB008860DD
+:101E00008093EB001092E9008091E800877F86C004
+:101E10008111A7C01091F4011F778091E3008078B1
+:101E2000812B8093E3008091E800877F8093E80016
+:101E30000E94960C8091E80080FFFCCF8091E30027
+:101E400080688093E300111102C082E001C083E04A
+:101E50008093F10186C08058823008F082C0809162
+:101E6000F4019091F5018C3D53E0950779F583E0FD
+:101E70008A838AE289834FB7F894DE01139620E0C3
+:101E80003EE051E2E32FF0E050935700E49120FF51
+:101E900003C0E295EF703F5FEF708E2F90E0EA3065
+:101EA00010F0C79601C0C0968D939D932F5F24318B
+:101EB00049F74FBF8091E800877F8093E8006AE28E
+:101EC00070E0CE0101960E949D0B14C0AE014F5FE1
+:101ED0005F4F6091F6010E94E40ABC01009709F48B
+:101EE00040C09091E800977F9093E80089819A81A3
+:101EF0000E94000C8091E8008B778093E80031C04D
+:101F0000803879F58091E800877F8093E8008091A0
+:101F1000ED018093F1008091E8008E778093E800D6
+:101F20000E94960C1EC081111CC09091F401923049
+:101F3000C0F48091E800877F8093E8009093ED01E2
+:101F40000E94960C8091ED01811106C08091E30002
+:101F500087FD02C081E001C084E08093F1010E940E
+:101F6000E0098091E80083FF0AC08091E800877F44
+:101F70008093E8008091EB0080628093EB00AA964A
+:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A
+:101F900008950895CF938091F1018823A1F0C09115
+:101FA000E900CF709091EC00892F817090FD80E85E
+:101FB000C82B1092E9008091E80083FD0E94780E02
+:101FC000CF70C093E900CF910895909375018093ED
+:101FD00074010895E0917401F0917501309721F03A
+:101FE0000190F081E02D099480E00895E091740162
+:101FF000F0917501309721F00280F381E02D099472
+:102000000895E0917401F0917501309721F00480FA
+:10201000F581E02D099408952091720130917301AA
+:102020008217930771F09093730180937201E0918E
+:102030007401F0917501309721F00680F781E02D51
+:1020400009940895209170013091710182179307CE
+:1020500071F09093710180937001E0917401F0919F
+:102060007501309721F00084F185E02D09940895E1
+:1020700008950C9438100E94921B0E9433030C9414
+:10208000541C9F92AF92BF92CF92DF92EF92FF9239
+:102090000F931F93CF93DF9300D000D000D0CDB724
+:1020A000DEB70E944B030DE010E0AA24A394B12CEC
+:1020B000902E802F0E943904980129583E4F6901C3
+:1020C000F901F080F826A1F40150110988F78FEF8B
+:1020D00089838A831B820E949B1B8160782F9D834A
+:1020E0008C8349815A816B818D810E94D8102FC0C9
+:1020F0009091DA0191FF04C08E830E943F048E818B
+:1021000025E030E0A501022E01C0440F0A94EAF751
+:10211000E42E4F21C1F029839A828E2191E009F4A7
+:1021200090E09B830E949B1B8160782F9D838C8312
+:1021300049815A816B818D810E94D810F60180817E
+:10214000E826E08204C021503109E0F6BDCF0E94AC
+:102150003B1F109176010E94EA0F1817B9F00E94F8
+:10216000EA0F8093760126960FB6F894DEBF0FBE75
+:10217000CDBFDF91CF911F910F91FF90EF90DF9036
+:10218000CF90BF90AF909F900C94E30826960FB627
+:10219000F894DEBF0FBECDBFDF91CF911F910F919D
+:1021A000FF90EF90DF90CF90BF90AF909F900895F9
+:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82
+:1021C0000FBECDBF4F83588769877A878B87DE0123
+:1021D000119686E0FD0111928A95E9F785E0FE01EE
+:1021E000379601900D928A95E1F749815A816B816A
+:1021F0007C818D819E810E9421172B960FB6F894C9
+:10220000DEBF0FBECDBFDF91CF910895CF9388235E
+:1022100009F4C2C0C82F823859F40E94EA0F81FD28
+:10222000BBC089E30E94FB190E94C81A89E30CC055
+:10223000833879F40E94EA0F80FDAEC083E50E94E6
+:10224000FB190E94C81A83E50E943D1ACF910C9495
+:10225000C81A843859F40E94EA0F82FD9DC087E4B1
+:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6
+:10227000813A48F48C2F0E947E2181118DC08C2FD1
+:102280000E94FB19E3CF80E28C0F883048F4C770BE
+:1022900081E001C0880FCA95EAF70E94811AD6CF63
+:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB
+:1022B00083E890E005C081E890E002C082E890E009
+:1022C000CF910C940C1088E58C0F833108F064C01A
+:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118
+:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186
+:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106
+:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173
+:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB
+:1023200038C082EE90E035C089EE90E032C08AEE8F
+:1023300090E02FC085EB90E02CC086EB90E029C0A8
+:1023400087EB90E026C08CEC90E023C08DEC90E011
+:1023500020C083E891E01DC08AE891E01AC082E9BC
+:1023600091E017C084E991E014C081E292E011C0CD
+:1023700083E292E00EC084E292E00BC085E292E03C
+:1023800008C086E292E005C087E292E002C08AE2DD
+:1023900092E0CF910C942210CF910895882309F4F4
+:1023A0004BC0823859F40E94EA0F81FF45C089E38F
+:1023B0000E94FB190E94C81A89E30CC0833871F48B
+:1023C0000E94EA0F80FF38C083E50E94FB190E943B
+:1023D000C81A83E50E943D1A0C94C81A843859F42F
+:1023E0000E94EA0F82FF28C087E40E94FB190E9426
+:1023F000C81A87E4EFCF9CEF980F913A58F390E218
+:10240000980F983050F4877091E001C0990F8A9529
+:10241000EAF7892F0E94871ADFCF9BE5980F933048
+:1024200020F480E090E00C940C10885A833120F462
+:1024300080E090E00C9422100895882321F00E94FF
+:10244000811A0C94C81A0895882321F00E94871AD3
+:102450000C94C81A08957F928F929F92AF92BF9268
+:10246000CF92DF92EF92FF920F931F93CF93DF9360
+:102470001F92CDB7DEB77C01C62E772EFC010581F9
+:1024800002950F70128111110E949E1A0E94F41978
+:10249000882379F0112369F080E28C0D883048F0B0
+:1024A00082E00E94DD190E94F41991E0D82ED9260D
+:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C
+:1024C0000C94B323872D807F072D0F70882311F084
+:1024D0000295007F112389F0002309F490C180E266
+:1024E0008C0D883020F4802F0E94811A03C0802F29
+:1024F0000E94911A0E94C81A82C18C2D0E94CE118E
+:10250000002309F495C180E28C0D883020F4802FDF
+:102510000E94871A03C0802F0E94971A0E94C81A2F
+:1025200087C1972D907F872D8F70903211F0829503
+:10253000807FCC2021F0F1E0CF16B1F01EC0112336
+:1025400049F0002309F414C1013009F011C10E94BF
+:10255000B11A6EC1002319F0013009F469C18983F1
+:102560000E94B41A89810AC1112321F0023008F0B7
+:102570005FC1FEC001115CC101C1112321F0002324
+:1025800009F4F6C03CC1002309F4F8C03EC1872D10
+:1025900086958695837090E0009719F0019761F019
+:1025A00047C1112321F08C2D972D937002C080E03C
+:1025B00090E00E940C103CC1112321F08C2D972D2E
+:1025C000937002C080E090E00E94221031C18C2DF7
+:1025D000112319F00E94431E02C00E94AB1E0E94EC
+:1025E000301F26C1872D837009F052C0111120C100
+:1025F0008C2D829586958770880F880F9C2D9F70F3
+:10260000892E912CA12CB12C082E04C0880C991C69
+:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041
+:1026200020E030E0B901A80104C0440F551F661F27
+:10263000771F8A95D2F7CB01BA0160957095809586
+:10264000909503C060E070E0CB01272D269526957C
+:10265000237030E02230310569F02330310589F0F4
+:10266000682979298A299B292130310571F00E9436
+:102670006918DEC0682979298A299B290E94851852
+:10268000D7C00E946918C501B4010E944D18D0C07E
+:10269000112319F0872D817001C08695882309F4D4
+:1026A000C7C08C2D829586958770880F880F9C2DCA
+:1026B0009F70892E912CA12CB12C082E04C0880C5F
+:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC
+:1026D00010E020E030E0B901A80104C0440F551F0C
+:1026E000661F771F8A95D2F7CB01BA016095709566
+:1026F0008095909503C060E070E0CB01272D269572
+:1027000026952370422F50E04230510569F0433046
+:10271000510589F0682979298A299B294130510579
+:1027200071F00E94431984C0682979298A299B295C
+:102730000E945F197DC00E944319C501B4010E9427
+:10274000271976C08C2D90E0FC01E05EF109E5319F
+:10275000F10508F050C0E059FF4F0C94B3230C2D45
+:102760000F70872D8F71112331F00E94C018802FB8
+:102770000E941D125DC00E94E118802F0E94241249
+:1027800057C0112339F0011153C0872D8F710E945A
+:1027900006194EC0023008F04BC0F7CF112339F0B4
+:1027A000872D8F710E94C01843C01123C9F3872D54
+:1027B0008F710E94E1183CC0112329F0872D8F7181
+:1027C0000E94AB1835C00E94A11832C0112351F0ED
+:1027D000172D1F71812F0E94C01863E0812F0E9466
+:1027E000D41926C081E00E94DD19023008F182E090
+:1027F0000E94DD191DC0112331F0002389F28C2DB8
+:102800000E94061115C0002391F28C2D0E94CE115A
+:102810000FC0472D4F706C2DC7010E9415050E94F7
+:10282000C51706C0472D4F706C2DC7010E94F205D9
+:10283000DD20F9F00E94D01980FD1BC0F701128243
+:102840000E94CA190E94C018C7010E9448140E9421
+:10285000CA190F90DF91CF911F910F91FF90EF90C8
+:10286000DF90CF90BF90AF909F908F907F900C940F
+:10287000E1180F90DF91CF911F910F91FF90EF9092
+:10288000DF90CF90BF90AF909F908F907F900895F2
+:102890000F931F93CF93DF93EC01888199812B8154
+:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B
+:1028B0000E944A05882371F0688179818A810E948B
+:1028C000C6198C010E947B190E944218B801CE01E2
+:1028D0000E942B12DF91CF911F910F9108950E94BA
+:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471
+:1028F000E11F0E94301F80E090E00E940C1080E0F9
+:1029000090E00C9422100E948E1A0C946F140E9476
+:10291000BB19292F22952F7030E02C3031054CF453
+:102920002A3031056CF42250310922303105A8F4E7
+:1029300007C02C30310569F02F30310551F00DC042
+:10294000803F69F018F4803E40F409C0843F29F4C8
+:1029500006C093FB882780F9089580E0089581E000
+:102960000895CF93DF9300D000D01F92CDB7DEB78C
+:102970000F900F900F900F900F90DF91CF910895CF
+:10298000CF93DF9300D000D000D0CDB7DEB726962E
+:102990000FB6F894DEBF0FBECDBFDF91CF91089583
+:1029A0001F93CF93DF93C091850116E0809186013C
+:1029B000C81799F0D0E01C9FF0011D9FF00D112465
+:1029C000E957FE4F408151816281738184819581F5
+:1029D0000E94C0142196C770E9CFDF91CF911F915B
+:1029E00008954091B7015091B8016091B90170917B
+:1029F000BA018091BB019091BC010C94C0148091EC
+:102A0000BC0182958F7009F054C08091B901882370
+:102A100009F44FC080918501A09186016091B701B2
+:102A20007091B8014091BA015091BB01B6E08A178C
+:102A300009F43FC090E041155105C1F17F3F11F409
+:102A40006F3FA1F1B89FF001B99FF00D1124E95734
+:102A5000FE4F218172132AC02081621327C0228178
+:102A6000211124C0238134812417350710F421500B
+:102A70003109241B350B283C3105C0F42091BC01E1
+:102A80002F7020612093BC0126E0289FF001299F30
+:102A9000F00D1124E457FE4F80818F708061808398
+:102AA00087EB91E00E9448140C94D0140196877033
+:102AB000BECF0895CF92DF92EF92FF920F931F93B4
+:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32
+:102AD0000FBECDBF8C0185E0F801DE011D9601908F
+:102AE0000D928A95E1F7D8014C9111965C9111975E
+:102AF00012966C9112971396CD90DC9014973091AA
+:102B0000B7017091B8018091BA019091BB01009713
+:102B100009F46BC17F3F19F43F3F09F466C1E090AF
+:102B2000B901EE2009F4C0C02091BC01C816D90635
+:102B300028F0F601E81BF90BCF0104C080959095B1
+:102B40008C0D9D1DFF24F394883C910578F0F12CA9
+:102B5000207F09F0C6C07C2DD98AC88A89890E9445
+:102B6000B11487EB91E00E944814B1C0822F807F9E
+:102B700009F046C0751314C0341312C0611110C09F
+:102B80002F7020612093BC010E94F11487EB91E02B
+:102B90000E9448148091BC01D80115968C932EC0D8
+:102BA000CD2819F15F3F11F44F3FF9F0F62E611176
+:102BB0001CC0809185012091860136E0821709F4BE
+:102BC0005AC090E0389FF001399FF00D1124E95769
+:102BD000FE4F7181571306C07081471303C0728185
+:102BE000711103C001968770E9CFF62E662309F4B0
+:102BF00018C18091BC0181608093BC01F12C11C18E
+:102C0000751308C0341306C0611104C08091BC0163
+:102C1000D801C3C04D875E878D859E856A8B0E94D3
+:102C200087146A898823E1F16623D1F12091BC01E0
+:102C3000822F82958F7090E0029774F08091B70197
+:102C40009091B80198878F831986DB86CA862C8776
+:102C5000CE0107960E94481486E0F801A7EBB1E088
+:102C600001900D928A95E1F70E94FF140E94F114E1
+:102C7000FF24F394D6C04D875E878D859E850E9484
+:102C8000BB19292F22952F7030E0223031050CF02E
+:102C9000BCC09F7009F0B6C0805E883008F4C1C027
+:102CA000C8010E944814E4CFC816D90608F453C0DE
+:102CB000F601E81BF90BCF01883C910508F450C0E0
+:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E
+:102CD000F1E086E0DF011D928A95E9F70E94F11488
+:102CE000A0C0751314C0341312C0611110C08091BC
+:102CF000BC01F8018583C8010E94481486E0E7EB17
+:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C
+:102D10005E878D859E856A8B0E9487146A898823C9
+:102D200009F4BECF662309F4BBCF2091BC01822FEA
+:102D300082958F7090E002970CF48ECF8091B7014E
+:102D40009091B8019A8389831B82DD82CC822E8385
+:102D5000CE0101967FCF809590958C0D9D1DACCFB7
+:102D6000F62E662309F49CCF75132EC034132CC0A5
+:102D70002091BC0120FD1FC0822F82958F70D9F059
+:102D8000D80115962C9315978F3049F08F5F982FA7
+:102D90009295907F822F8F70892B15968C93C80106
+:102DA0000E94481486E0F801A7EBB1E001900D9273
+:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7
+:102DC0000D928A95E1F72DC04D875E878D859E8592
+:102DD0000E948714811140CF8091BC018160809353
+:102DE000BC01C8010E9448141CC0662309F458CFD6
+:102DF0004D875E878D859E850E948714882309F400
+:102E00004FCF2ACF811148CF0CC0243031050CF0B0
+:102E100047CF9F7009F440CFF8019581907F09F06A
+:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D
+:102E3000DF91CF911F910F91FF90EF90DF90CF9096
+:102E400008951F93CF93DF93CDB7DEB72C970FB6BE
+:102E5000F894DEBF0FBECDBF4F83588769877A874E
+:102E60008B879C87CE0107960E945A15882369F0AC
+:102E70008F8198852A853B85232BF1F19F3F09F0AF
+:102E800063C08F3F09F060C037C086E0FE0137960F
+:102E9000DE01119601900D928A95E1F76F81788598
+:102EA000EA85FB85309741F17F3F11F46F3F21F1B7
+:102EB0002091860130E0C9010196877099274091E1
+:102EC000850150E08417950709F447C069837A8328
+:102ED000FD83EC8396E0929FD001939FB00D112467
+:102EE000A957BE4FFE01319601900D929A95E1F7D8
+:102EF000809386010E94D01416E080918501909104
+:102F000086018917C1F1189FC001112489579E4F6E
+:102F10000E945A15882379F1E09185011E9FF001E6
+:102F20001124E957FE4F4081518162817381848170
+:102F300095810E94C0148091850190E00196877070
+:102F4000992780938501D9CF4F81588569857A85E6
+:102F50008B859C850E94C014CFCF0E948314109251
+:102F6000860110928501E7EBF1E086E0DF011D921A
+:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45
+:102F8000CDBFDF91CF911F910895EF92FF920F93E4
+:102F90001F93CF93DF938C01009709F46CC0F12C41
+:102FA000EE24E394E8012196F8018491843740F4FB
+:102FB000843008F051C0813081F0823019F15BC05B
+:102FC000853709F444C0A8F19CE7980F903708F0C2
+:102FD00052C08F770E94CE1141C00E5F1F4FFE017D
+:102FE000C49180E28C0F883048F4C7708E2D01C0E8
+:102FF000880FCA95EAF70E94A11A14C08C2F0E946C
+:1030000006112DC00E5F1F4FFE01C49180E28C0F90
+:10301000883058F4C7708E2D01C0880FCA95EAF722
+:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3
+:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3
+:103040009FE00197F1F700C00000C150F6CF0E5F7E
+:103050001F4FFE01F49003C00E9406118E018F2DB8
+:10306000882309F49FCFEFE9FFE03197F1F700C023
+:1030700000008150F5CFDF91CF911F910F91FF900C
+:10308000EF90089508956093C1017093C2018093F9
+:10309000C3019093C4010C946F140F931F9300917C
+:1030A000C1011091C2012091C3013091C401DC0122
+:1030B000CB01802B912BA22BB32B8093C10190933A
+:1030C000C201A093C301B093C4011F910F910C944E
+:1030D0006F140F931F930091C1011091C2012091B1
+:1030E000C3013091C401DC01CB0180239123A223D1
+:1030F000B3238093C1019093C201A093C301B09305
+:10310000C4011F910F910C946F140F931F930091A2
+:10311000C1011091C2012091C3013091C401DC01B1
+:10312000CB0180279127A227B3278093C1019093D9
+:10313000C201A093C301B093C4011F910F910C94DD
+:103140006F141092BD011092BE011092BF01109237
+:10315000C0010C946F1441E050E060E070E004C0E6
+:10316000440F551F661F771F8A95D2F74093BD0104
+:103170005093BE016093BF017093C0010C946F1413
+:1031800041E050E060E070E004C0440F551F661F4E
+:10319000771F8A95D2F78091BD019091BE01A091D1
+:1031A000BF01B091C001482B592B6A2B7B2B409358
+:1031B000BD015093BE016093BF017093C0010C9498
+:1031C0006F1441E050E060E070E004C0440F551F10
+:1031D000661F771F8A95D2F7409550956095709538
+:1031E0008091BD019091BE01A091BF01B091C0013D
+:1031F000482359236A237B234093BD015093BE018A
+:103200006093BF017093C0010C946F1441E050E0D3
+:1032100060E070E004C0440F551F661F771F8A9559
+:10322000D2F78091BD019091BE01A091BF01B091F4
+:10323000C001482759276A277B274093BD01509337
+:10324000BE016093BF017093C0010C946F140F9383
+:103250001F930091BD011091BE012091BF013091DB
+:10326000C001DC01CB01802B912BA22BB32B8093CF
+:10327000BD019093BE01A093BF01B093C0011F9107
+:103280000F910C946F140F931F930091BD01109137
+:10329000BE012091BF013091C001DC01CB01802330
+:1032A0009123A223B3238093BD019093BE01A093E9
+:1032B000BF01B093C0011F910F910C946F140F9335
+:1032C0001F930091BD011091BE012091BF0130916B
+:1032D000C001DC01CB0180279127A227B32780936F
+:1032E000BD019093BE01A093BF01B093C0011F9197
+:1032F0000F910C946F140895CF92DF92EF92FF928A
+:103300000F931F93CF93DF938C01C090C101D09096
+:10331000C201E090C301F090C4018091BD01909181
+:10332000BE01A091BF01B091C001C82AD92AEA2AE2
+:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520
+:10334000A795979587950A94D2F780FF06C0B80194
+:103350008C2F0E944808019721F4219760F780E0A4
+:1033600001C08C2FDF91CF911F910F91FF90EF90B3
+:10337000DF90CF900895CF93DF93EC010E947C19EA
+:10338000BE010E944808DF91CF910895CB010E94B1
+:10339000BB1908958091C5018595859585950895FA
+:1033A0008091C5018770089598E0899F900111244C
+:1033B000262B2093C5010C94C0182091C50180953F
+:1033C00082238093C501982F977069F430E0482FCD
+:1033D000552747FD50952417350729F08595859584
+:1033E00085950C94E11808959091C501977081E03E
+:1033F00009F480E0089590910C01992321F09091B7
+:103400000D01911109C020910E0130910F01F901B8
+:1034100032969FEF40E01FC0982F9695969596950F
+:103420009F3050F5E0910E01F0910F01E90FF11D71
+:10343000877021E030E0A90102C0440F551F8A9532
+:10344000E2F7CA019181892B818308959F3F39F06A
+:103450004F5F4E3041F051915813F8CF0DC05111CC
+:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08
+:1034700097FDFA9582830895089590910C01992300
+:1034800021F090910D01911109C020910E01309110
+:103490000F01F9013296205F3F4F1FC0982F96957C
+:1034A000969596959F30F0F4E0910E01F0910F0102
+:1034B000E90FF11D877021E030E0A90102C0440F3F
+:1034C000551F8A95E2F7CA018095918189238183EE
+:1034D00008953196E217F30729F090819813F9CFF8
+:1034E0001082F7CF089581E090E0E0910E01F09115
+:1034F0000F01E80FF91F1082019680319105A9F79D
+:1035000008959091D901892B8093D90108958095D0
+:103510009091D90189238093D90108951092D901FE
+:1035200008959091D801892B8093D80108958095B2
+:103530009091D80189238093D80108951092D801E1
+:1035400008959091D701892B8093D7010895809594
+:103550009091D70189238093D70108951092D701C4
+:1035600008958093C60108951092C6010895809130
+:103570000E0190910F01FC0131969C01205F3F4F9D
+:1035800080E0919191118F5FE217F307D1F70895D1
+:10359000E0910E01F0910F018091D9018083E091BB
+:1035A0000E01F0910F0190818091D801892B8083C9
+:1035B000E0910E01F0910F0190818091D701892B4C
+:1035C00080838091C601882361F0E0910E01F09123
+:1035D0000F019081892B80830E94B71A811110926C
+:1035E000C60180910E0190910F010C94F60F20E01E
+:1035F000009739F0AC0141505109842395232F5F86
+:10360000F7CF822F0895CF92DF92EF92FF926C0155
+:10361000EE24FF24C114D104E104F10421F0C70118
+:10362000B60120E101C020E0C72ED82EE92EFF24EC
+:10363000C114D104E104F10419F0285FC701B601F7
+:103640006B017C0154E0F694E794D794C7945A95A3
+:10365000D1F7C114D104E104F10419F02C5FC701C2
+:10366000B6016B017C0142E0F694E794D794C794CD
+:103670004A95D1F7C114D104E104F10419F02E5F89
+:10368000C701B601DC01CB01B695A7959795879543
+:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5
+:1036A000DF90CF9008958091F101843021F1109244
+:1036B000DB0120E488E190E00FB6F894A8958093B0
+:1036C00060000FBE2093600080E00E94E30883B793
+:1036D000817F846083BF83B7816083BF789488953E
+:1036E00083B78E7F83BF88E10FB6F8948093600024
+:1036F000109260000FBE0895089508950E947C1BEB
+:103700000E944B030E947D1B0E94400491E08111A6
+:1037100001C090E0892F08950E9483140E94EA0F4F
+:103720000C94E30882E084BD93E095BD9AEF97BDC9
+:1037300080936E0008952FB7F8948091DC019091EA
+:10374000DD01A091DE01B091DF012FBF0895CF927E
+:10375000DF92EF92FF920F931F932FB7F89440914F
+:10376000DC015091DD016091DE017091DF012FBF1E
+:103770006A017B01EE24FF248C0120E030E0C016BA
+:10378000D106E206F30610F4415051099A01281BB4
+:10379000390BC9011F910F91FF90EF90DF90CF90EF
+:1037A00008951F920F920FB60F9211248F939F933B
+:1037B000AF93BF938091DC019091DD01A091DE0178
+:1037C000B091DF010196A11DB11D8093DC019093A2
+:1037D000DD01A093DE01B093DF01BF91AF919F9116
+:1037E0008F910F900FBE0F901F9018950E94E70CBD
+:1037F000F8942FEF87EA91E6215080409040E1F75E
+:1038000000C0000087E090EBDC018093FB01909307
+:10381000FC01A093FD01B093FE019CE088E10FB68E
+:10382000F894A895809360000FBE90936000FFCF3E
+:10383000EF92FF920F931F93CF93DF93D82FCDE09A
+:103840008C2F0E94390405E010E0E82EF12CC7010E
+:10385000002E02C0959587950A94E2F780FF09C073
+:10386000602F7C2F80E00E94F305D81302C081E016
+:1038700006C00150110958F7C15010F780E0DF91E0
+:10388000CF911F910F91FF90EF900895CF93C82F84
+:103890008CE20E94181C882321F08C2FCF910C946D
+:1038A000181C80E0CF910895CF930E949B1D811139
+:1038B00002C00E94811DC5E6C15049F00E944B0321
+:1038C0008FE39CE90197F1F700C00000F5CF89E292
+:1038D0000E94461C811113C18AE20E94461C81117C
+:1038E0000E94811D85E00E94461C81110E94F61BEA
+:1038F0000E94A61D8093DA0187E00E94461C88235F
+:10390000A9F18BE10E94461C882351F08091DA01D5
+:1039100081FB222720F991E0922790FB81F90EC0CC
+:103920008EE00E94461C882361F08091DA0182FBC0
+:10393000222720F991E0922790FB82F98093DA0107
+:1039400015C080E10E94461C9091DA01882341F065
+:1039500093FB222720F981E0822780FB93F904C0A2
+:10396000892F809580FB90F99093DA018091DA019C
+:103970000E94AA1D0E94B81D8093FA0180EE0E9449
+:10398000461C882341F08091FA01982F909590FB76
+:1039900080F98093FA0189E30E94461C882359F03C
+:1039A0008091FA0181FB222720F991E0922790FB78
+:1039B00081F98093FA0182EE0E94461C882359F017
+:1039C0008091FA0182FB222720F991E0922790FB57
+:1039D00082F98093FA0186EE0E94461C882359F0F2
+:1039E0008091FA0183FB222720F991E0922790FB36
+:1039F00083F98093FA0183EE0E94461C882359F0D4
+:103A00008091FA0184FB222720F991E0922790FB14
+:103A100084F98093FA0185E30E94461C882359F0BB
+:103A20008091FA0185FB222720F991E0922790FBF3
+:103A300085F98093FA0181E30E94461C882359F09E
+:103A40008091FA0186FB222720F991E0922790FBD2
+:103A500086F98093FA0181E10E94461C882359F07F
+:103A60008091FA0187FB222720F991E0922790FBB1
+:103A700087F98093FA018091FA010E94BC1D809120
+:103A8000FA0187FB882780F980930D0187E20E9465
+:103A9000461CC82F8EE10E94461C8111C2608FE136
+:103AA0000E94461C8111C46080E20E94461C811164
+:103AB000C86081E20E94461C8111C06182E20E94BE
+:103AC000461C8111C06283E20E94461C8111C064C1
+:103AD00084E20E94461C882311F0C06802C0CC23F7
+:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4
+:103AF000682F70E080E090E0CF910C944318CF9154
+:103B000008956DEE7EEF80E090E00E94ED2360E08E
+:103B100082E090E00E94DB2360E083E090E00E947E
+:103B2000DB2360E084E090E00E94DB2360E085E03E
+:103B300090E00C94DB2380E090E00E94D52321E00C
+:103B40008D3E9E4F09F020E0822F089582E090E0A4
+:103B50000C94CD23682F82E090E00C94DB2383E06B
+:103B600090E00C94CD23682F83E090E00C94DB234D
+:103B700084E090E00C94CD23682F84E090E00C94D6
+:103B8000DB238091E20180FF0BC06091130185E08F
+:103B9000689FB001112475956795759567952BC041
+:103BA00081FF09C06091130185E0689FB001112475
+:103BB0007595679520C082FF07C06091130185E06D
+:103BC000689FB001112417C09091E3019923D1F0AF
+:103BD00060911201961788F72091130185E0289FC4
+:103BE00090011124929FA001939F500D112470E029
+:103BF000CA010E949F236038710540F46115710568
+:103C000039F002C065E070E0862F08958FE70895CF
+:103C100081E008958091E20180FF08C06091110168
+:103C200070E0759567957595679521C081FF06C011
+:103C30006091110170E07595679519C082FF04C00D
+:103C40006091110170E010C09091E3019923C1F0DF
+:103C5000609110019617A0F780911101899FC00112
+:103C6000112470E00E949F236038710528F46115CB
+:103C7000710521F0862F08958FE7089581E008955A
+:103C800061E070E0F4CF803F21F40E94C11D819576
+:103C900004C0813F29F40E94C11D8093E60108956C
+:103CA000823F21F40E94C11D819504C0833F29F405
+:103CB0000E94C11D8093E5010895893F19F40E9477
+:103CC0000A1E05C08A3F31F40E940A1E8195809326
+:103CD000E70108958B3F21F40E940A1E819504C0DC
+:103CE0008C3F29F40E940A1E8093E8010895843FC6
+:103CF00021F48091E401816017C0853F21F4809117
+:103D0000E401826011C0863F21F48091E401846067
+:103D10000BC0873F21F48091E401886005C0883F93
+:103D200031F48091E40180618093E40108958D3F36
+:103D300021F48091E20181600BC08E3F21F48091DB
+:103D4000E201826005C08F3F29F48091E201846026
+:103D50008093E2010895803F39F48091E60187FF66
+:103D60006CC01092E60169C0813F29F48091E601A0
+:103D70001816BCF362C09091E501823F29F497FFC9
+:103D80005CC01092E50159C0833F19F41916CCF3B9
+:103D900054C0893F41F48091E70118160CF04DC0E2
+:103DA0001092E7014AC08A3F29F48091E70187FF1A
+:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6
+:103DC0001092E8013AC08C3F29F48091E80118165E
+:103DD000BCF333C0843F21F48091E4018E7F17C08F
+:103DE000853F21F48091E4018D7F11C0863F21F44D
+:103DF0008091E4018B7F0BC0873F21F48091E40127
+:103E0000877F05C0883F31F48091E4018F7E8093E5
+:103E1000E40113C08D3F21F48091E2018E7F0BC03D
+:103E20008E3F21F48091E2018D7F05C08F3F29F400
+:103E30008091E2018B7F8093E2018091E501811105
+:103E40000EC08091E60181110AC08091E7018111C5
+:103E500006C08091E801811102C01092E30108952B
+:103E600084EE91E00E9401100E949B1B9093E1015F
+:103E70008093E00108951F93CF93DF938091E00139
+:103E80009091E1010E94A71BAC019091E30199235D
+:103E900021F02091140130E006C0209115018AE044
+:103EA000289F900111244217530708F486C080917F
+:103EB000E501C091E601D091E7011091E80181117F
+:103EC00007C0C11176C0D11174C0111172C075C084
+:103ED0009F3F19F09F5F9093E301181624F40E940E
+:103EE000C11D8093E5018091E50187FF05C00E9417
+:103EF000C11D81958093E5011C1624F40E94C11D0B
+:103F00008093E6018091E60187FF05C00E94C11DF4
+:103F100081958093E6016091E501662339F1C091B6
+:103F2000E601CC2319F1772767FD7095872F972F2E
+:103F30000E94B02223E333E343E35FE30E941423B0
+:103F40000E947D226093E5016C2F772767FD7095B5
+:103F5000872F972F0E94B02223E333E343E35FE3ED
+:103F60000E9414230E947D226093E6011D1624F412
+:103F70000E940A1E8093E7018091E70187FF05C038
+:103F80000E940A1E81958093E701111624F40E9475
+:103F90000A1E8093E8018091E80187FF05C00E9416
+:103FA0000A1E81958093E801DF91CF911F910C94B7
+:103FB000301F9F3F09F08ECF96CFDF91CF911F9199
+:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE
+:103FD0001092E3011092E2010895833081F128F4F8
+:103FE000813059F08230D1F00895853009F449C00C
+:103FF000B8F1863009F456C0089580911501262F36
+:1040000030E0280F311D2F3F310524F4680F6093F5
+:10401000150108958FEF8093150108958091140183
+:10402000262F30E0280F311D2F3F310524F4680F73
+:104030006093140108958FEF809314010895809187
+:104040001301262F30E0280F311D2F3F310524F4B6
+:10405000680F6093130108958FEF80931301089503
+:1040600080911201262F30E0280F311D2F3F31059E
+:1040700024F4680F6093120108958FEF809312016A
+:10408000089580911101262F30E0280F311D2F3F18
+:10409000310524F4680F6093110108958FEF809328
+:1040A0001101089580911001262F30E0280F311D55
+:1040B0002F3F310524F4680F6093100108958FEFAE
+:1040C000809310010895833011F128F4813049F074
+:1040D000823091F00895853081F120F18630C1F170
+:1040E000089580911501681720F4861B80931501AF
+:1040F000089510921501089580911401681720F415
+:10410000861B8093140108951092140108958091E4
+:104110001301681720F4861B8093130108951092F1
+:104120001301089580911201681720F4861B809373
+:1041300012010895109212010895809111016817DB
+:1041400020F4861B809311010895109211010895A7
+:1041500080911001681720F4861B80931001089548
+:104160001092100108950F931F938D3109F46BC0C5
+:1041700008F03FC08E3009F47FC0C0F4873009F4E6
+:1041800069C068F4863009F0B1C08091DA01817F9E
+:104190008E7F8093DA0181E08093EA01A8C08830A5
+:1041A00009F4A2C08B3009F49FC0A0C0863109F485
+:1041B0009BC078F4803109F472C0813109F096C057
+:1041C0000E94831490910D0181E0892780930D0155
+:1041D0008BC0893109F488C08B3109F087C0809188
+:1041E000DA0181FB222720F991E0922790FB81F9E7
+:1041F0004CC0853309F470C048F4873209F46CC0B0
+:1042000008F459C0893209F467C070C0833438F4A7
+:104210008A3308F04EC0883309F466C067C083341F
+:1042200009F45AC0883409F061C00E9483140FEF6A
+:1042300013ED20E3015010402040E1F700C00000E2
+:104240000E94F61B51C00E9437220E94EA0F0E9472
+:10425000E3084AC09091DA01892F8095817080FB34
+:1042600090F929F0966098609093DA0140C0997FA8
+:10427000977F9093DA0138C08091DA0182FB222780
+:1042800020F991E0922790FB82F98093DA0199233B
+:1042900059F18091DA0181608093DA0125C0809123
+:1042A000DA0183FB222720F991E0922790FB83F922
+:1042B000ECCF895301C08D5141E050E060E070E0E7
+:1042C0008A019B0104C0000F111F221F331F8A9512
+:1042D000D2F7C901B80104C061E070E080E090E06D
+:1042E0000E9443180E94831481E001C080E01F9166
+:1042F0000F91089580E0089580E00895CF93C82F2E
+:104300008091EA01813079F018F08230E9F187C0BC
+:10431000E0910E01F0910F018081813169F08232CC
+:1043200009F07FC009C0E0910E01F0910F0180817A
+:10433000813111F0823261F48C2F0E947A21811137
+:1043400004C08C2F0E94B3201DC081E090E01AC0F1
+:104350008C2F0E947C21811114C0C43179F048F463
+:10436000CB3079F0C03109F060C082E08093EA017F
+:1043700008C0C93219F0C83321F057C01092EA01C1
+:1043800054C081E0817053C0C93289F118F5C4313D
+:1043900071F1A8F4C73009F046C08AE08093150196
+:1043A00094E19093140193E0909313018093120190
+:1043B00088E08093110188E28093100134C0CE51CF
+:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB
+:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC
+:1043E00013C0C13579F0C235F1F461E00DC08091A0
+:1043F000E901882319F01092E90115C081E080934A
+:10440000EA0115C061E006C08091E9010E94ED1F3C
+:104410000AC06AE08091E9010E94632004C0109202
+:10442000EA0180E004C081E002C080E0ABCFCF9120
+:104430000895E1E8F0E08081886080838081816078
+:1044400080838FB7F89493E09093890090ED9093D8
+:1044500088008FBF0895EFE6F0E08081826080835E
+:104460000895EFE6F0E080818D7F80830895EFE688
+:10447000F0E0908182E08927808308951F920F9257
+:104480000FB60F9211242F933F934F935F936F9327
+:104490007F938F939F93AF93BF93EF93FF938091FD
+:1044A000EB019091EC0101969093EC018093EB016C
+:1044B000811103C082E00E94E308E091EC01E695DF
+:1044C000E695F0E0EC54FB4FE4918091EB018E1304
+:1044D00003C080E00E94E308FF91EF91BF91AF918C
+:1044E0009F918F917F916F915F914F913F912F910C
+:1044F0000F900FBE0F901F90189504D06894B111C3
+:104500008DC0089570D088F09F5790F0B92F9927EB
+:10451000B751A0F0D1F0660F771F881F991F1AF0CE
+:10452000BA95C9F712C0B13081F077D0B1E00895E3
+:1045300074C0672F782F8827B85F39F0B93FCCF364
+:10454000869577956795B395D9F73EF490958095C4
+:10455000709561957F4F8F4F9F4F0895E89409C0E4
+:1045600097FB3EF490958095709561957F4F8F4FA6
+:104570009F4F9923A9F0F92F96E9BB279395F695BC
+:10458000879577956795B795F111F8CFFAF4BB0F3A
+:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E
+:1045A000882311F096E911C0772321F09EE8872F28
+:1045B000762F05C0662371F096E8862F70E060E0E4
+:1045C0002AF09A95660F771F881FDAF7880F96955D
+:1045D000879597F9089557FD9058440F551F59F046
+:1045E0005F3F71F04795880F97FB991F61F09F3FE0
+:1045F00079F087950895121613061406551FF2CF09
+:104600004695F1DF08C0161617061806991FF1CF58
+:1046100086957105610508940895E894BB2766277F
+:104620007727CB0197F908950BD078C069D028F08F
+:104630006ED018F0952309F05AC05FC01124EECF58
+:10464000CADFA0F3959FD1F3950F50E0551F629FED
+:10465000F001729FBB27F00DB11D639FAA27F00DDB
+:10466000B11DAA1F649F6627B00DA11D661F829F02
+:104670002227B00DA11D621F739FB00DA11D621FE7
+:10468000839FA00D611D221F749F3327A00D611D04
+:10469000231F849F600D211D822F762F6A2F1124E6
+:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39
+:1046B000BB1F661F771F881F91505040A9F79E3F70
+:1046C000510570F014C0AACF5F3FECF3983EDCF3C5
+:1046D000869577956795B795F795E7959F5FC1F7AD
+:1046E000FE2B880F911D9695879597F9089597F958
+:1046F0009F6780E870E060E008959FEF80EC089588
+:1047000000240A94161617061806090608950024B0
+:104710000A9412161306140605060895092E03942A
+:10472000000C11F4882352F0BB0F40F4BF2B11F49E
+:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF
+:10474000072E16F4009407D077FD09D00E94B923F4
+:1047500007FC05D03EF4909581959F4F0895709584
+:1047600061957F4F0895EE0FFF1F0590F491E02DA6
+:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8
+:10478000B70710F0A61BB70B881F991F5A95A9F7FA
+:1047900080959095BC01CD010895F999FECF92BD09
+:1047A00081BDF89A992780B50895A8E1B0E042E06C
+:1047B00050E00C94F523262FF999FECF92BD81BDD0
+:1047C000F89A019700B4021639F01FBA20BD0FB64F
+:1047D000F894FA9AF99A0FBE08950196272F0E942D
+:1047E000DC230C94DB23DC01CB01FC01F999FECF27
+:1047F00006C0F2BDE1BDF89A319600B40D92415069
+:0A4800005040B8F70895F894FFCF78
+:10480A000220E508730950091C09E8080101C701DB
+:10481A0028080A03140A3F4D363975042804F2039E
+:10482A00B9034C0365037E039703010203040506DB
+:04483A000708090062
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/default_osx/default_osx_highres.png b/keyboards/ergodox_ez/keymaps/default_osx/default_osx_highres.png Binary files differnew file mode 100644 index 000000000..04f46bbd5 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/default_osx/default_osx_highres.png diff --git a/keyboards/ergodox_ez/keymaps/default_osx/keymap.c b/keyboards/ergodox_ez/keymaps/default_osx/keymap.c new file mode 100644 index 000000000..c57ffbb88 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/default_osx/keymap.c @@ -0,0 +1,187 @@ +// 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 "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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 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| LGui | + * |--------+------+------+------+------+------| 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),KC_LGUI, + MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, + 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| |------| |------| | | | | | 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) { + 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/default_osx/readme.md b/keyboards/ergodox_ez/keymaps/default_osx/readme.md new file mode 100644 index 000000000..aa749aac9 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/default_osx/readme.md @@ -0,0 +1,8 @@ +# The OSX Friendly Version of the Default Firmware + +So, I took the default firmware and just made a couple of tweaks that make it easier to use with OS X: + +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). + +![default osx](default_osx_highres.png) diff --git a/keyboards/ergodox_ez/keymaps/dragon788/compiled.hex b/keyboards/ergodox_ez/keymaps/dragon788/compiled.hex new file mode 100644 index 000000000..e46a5054b --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/dragon788/compiled.hex @@ -0,0 +1,1169 @@ +:100000000C94CE020C9412030C9412030C94120361
+:100010000C9412030C9412030C9412030C9412030C
+:100020000C9412030C9412030C94B60D0C94880ECD
+:100030000C9412030C9412030C9412030C941203EC
+:100040000C9412030C9492220C9412030C9412033D
+:100050000C9412030C94251C0C9412030C941203A0
+:100060000C9412030C9412030C9412030C941203BC
+:100070000C9412030C9412030C9412030C941203AC
+:100080000C9412030C9412030C9412030C9412039C
+:100090000C9412030C9412030C9412030C9412038C
+:1000A0000C9412030C9412030C941203F50E170F08
+:1000B0000510170F05105C0F7F0F0510D40FE70F09
+:1000C000B612B612E512E5121B133B136C146C1436
+:1000D00046136C14F613F6135D146C146C1466144A
+:1000E0000314031403140314031403140314031458
+:1000F0000314031403140314031403140314031448
+:1001000015142214291430143A140000F0A12E0002
+:100110002B002971E100C10000001E001400040042
+:100120001D003500E2001F001A0016001B003400FD
+:100130004C00200008000700060050002A002100A3
+:100140001500090019004F424D00220017000A0057
+:10015000050000006500E30001540000007F00007E
+:100160004A00035402540000007700004B002300B3
+:100170001C000B00110000002971240018000D0064
+:10018000100052424E0025000C000E0036005100B7
+:100190002C00260012000F0037002F002800270037
+:1001A00013003300380030002B712D003100347102
+:1001B000E500C10000000100010001000100010094
+:1001C00000003A001E0220022202010001003B0052
+:1001D0001F0221022302010001003C002F0226021F
+:1001E0002F00010001003D00300227023000010015
+:1001F00001003E003102350035020000010001001F
+:1002000001000000010000000100010001000000E9
+:100210000100000001003F005200510024020000D4
+:10022000B2004000240021001E0001000100410036
+:10023000250022001F003700010042002600230095
+:10024000200027000100430025022E0231002E006D
+:1002500001004400450001000100010000000050C1
+:100260000100010001000100000001000100010087
+:1002700001000100AB0001000100F20001000100DB
+:10028000F5000100F500F00001000100F40001009C
+:10029000F400F10001000100AE0001000100F300D4
+:1002A0000100000001000100010000000100000049
+:1002B000AC0001000100000001000000A9000100E5
+:1002C0000100F2000100000001000100F400F10053
+:1002D00001000100A8000100F500F000010001008C
+:1002E000B70001000100F30001000100B6000100A9
+:1002F0000100010001000100AA000100010001004D
+:1003000001000100000000000000000000000000EB
+:10031000000000001E0014000400000000000000A7
+:100320001F001A001600000019000000200008003D
+:100330000700000006000000210015000900000071
+:1003400000000000220017000A000000C4000000A6
+:10035000000000000000000000000100000000009C
+:10036000000000000100000023001C000B00000042
+:1003700001000000240018000D0001000100000031
+:1003800025000C000E0001001000000026001200E5
+:100390000F000000110000002700130033000000D0
+:1003A0000000010001002F003400000000001603CF
+:1003B0004500720067006F0044006F007800200065
+:1003C00045005A00000016034500720067006F00E8
+:1003D00044006F007800200045005A00000004032C
+:1003E000090409026D00040100A0FA0904000001DB
+:1003F00003010100092111010001223F00070581CD
+:100400000308000A09040100010301020009211187
+:10041000010001224D000705820308000A090402B9
+:10042000000103000000092111010001223600072C
+:1004300005830308000A0904030001030000000902
+:100440002111010001223900070584031000011267
+:1004500001100100000008EDFE0713010001020079
+:100460000105010906A101050719E029E715002585
+:100470000195087501810205081901290595057581
+:10048000019102950175039101050719002977155E
+:10049000002501957875018102C005010980A1013F
+:1004A000850216010026B7001A01002AB700751050
+:1004B00095018100C0050C0901A101850316010009
+:1004C000269C021A01002A9C02751095018100C029
+:1004D00005010902A1010901A10005091901290568
+:1004E00015002501950575018102950175038101AE
+:1004F0000501093009311581257F950275088106AE
+:1005000009381581257F950175088106050C0A3883
+:10051000021581257F950175088106C0C005010976
+:1005200006A101050719E029E715002501950875C1
+:1005300001810295017508810105081901290595B8
+:1005400005750191029501750391010507190029AF
+:10055000FF150025FF950675088100C0000000000A
+:1005600000000000000000010204060A0F17202C02
+:100570003A4A5D71879DB3C7DAE9F5FCFFFCF5E9FE
+:10058000DAC7B39D87715D4A3A2C20170F0A06041B
+:1005900002010000000000000000000011241FBE46
+:1005A000CFEFDAE0DEBFCDBF04B603FE24C08091FA
+:1005B000FB019091FC01A091FD01B091FE018730FB
+:1005C000904BA740B04BB9F41092FB011092FC0184
+:1005D0001092FD011092FE0114BE84B7877F84BF84
+:1005E00088E10FB6F89480936000109260000FBE0F
+:1005F000E0E0FFE3099511E0A0E0B1E0E2EBF8E410
+:1006000002C005900D92A433B107D9F711E0A4E31D
+:10061000B1E001C01D92AB3FB107E1F70E94FA0AB9
+:100620000C9457240C9400001092B9008AE0809337
+:10063000B800089594EA9093BC009091BC0097FF95
+:10064000FCCF9091B900987F983021F0903111F053
+:1006500081E008958093BB0084E88093BC00809182
+:10066000BC0087FFFCCF8091B900887F883111F0F2
+:10067000803471F780E0089584E98093BC00809114
+:10068000BC0084FDFCCF08958093BB0084E8809378
+:10069000BC008091BC0087FFFCCF9091B900987F8F
+:1006A00081E0983209F480E0089584E88093BC00EA
+:1006B0008091BC0087FFFCCF8091BB0008958091A2
+:1006C0000101811115C080E40E941A038093010189
+:1006D00081110CC082E10E944403809301018111C9
+:1006E00005C08FEF0E944403809301010E943C03E8
+:1006F00084B1807F84B985B1807F85B98AB1837FD9
+:100700008AB98BB1837F8BB93E98469808950E9431
+:100710001A05809301010E945F0380B38C7080BB37
+:1007200081B3836F81BBA5E3B1E0E3E4F1E08EE048
+:100730008E0F11921D928E13FCCF0C940405BF9264
+:10074000CF92DF92EF92FF920F931F93CF93DF939D
+:1007500080910101882379F0809134018F5F80932B
+:100760003401811108C00E941A0580930101811192
+:1007700002C00E94AC0405E311E0C0E0D0E0DD243B
+:10078000D39482E0C82EEE24E394F12CC730D10537
+:1007900000F580910101811164C080E40E941A0378
+:1007A00080930101811112C082E10E944403809371
+:1007B000010181110BC0C7010C2E01C0880F0A94E2
+:1007C000EAF780950E944403809301010E943C0354
+:1007D00048C0CA30A1F028F4C83059F0C93061F0DF
+:1007E00005C0CC3089F070F0CD3089F0209A28987F
+:1007F00010C0219A29980DC0229A2A980AC0239ADB
+:100800002B9807C0529A01C0539A5B9802C03E9A37
+:10081000469890EA9A95F1F79FB1799902C082E0E3
+:1008200001C080E091709D25982B7C9902C084E0E6
+:1008300001C080E0892B7D9902C038E001C030E022
+:10084000832B7E9902C020E101C020E0822B9FB162
+:100850009095991F9927991F9295990F907E892BB2
+:100860000FC080910101811149C080E40E941A03E8
+:1008700080930101882379F1B12C0E943C038B2DD8
+:10088000F8019081981719F08083C09200010E94AE
+:100890005F0321960F5F1F4FCE30D10509F076CF51
+:1008A00080910001882361F18150809300018823A9
+:1008B00039F08FE99FE00197F1F700C0000020C0F8
+:1008C000A3E4B1E0E5E3F1E0CF01825F91919D9374
+:1008D0008E13FCCF15C083E10E9444038093010175
+:1008E0008111CACF81E40E941A0380930101811112
+:1008F000C3CF0E945503B82EB094BFCF80E0C0CFC5
+:100900000E94AA0481E0DF91CF911F910F91FF9087
+:10091000EF90DF90CF90BF900895E82FF0E0ED5B6F
+:10092000FE4F8081089508950F931F93CF93DF9317
+:10093000C3E4D1E010E00C2F025F899190E00E94A7
+:100940004B1B180F0C13F9CF812FDF91CF911F9103
+:100950000F9108950C947A0556985E9825982D98D5
+:1009600026982E9827982F988FEF90E090938900E3
+:100970008093880090938B0080938A0090938D00E1
+:1009800080938C00259A2D9A2FEF80E792E02150DA
+:1009900080409040E1F700C00000269A2E9A2FEF89
+:1009A00080E792E0215080409040E1F700C00000D5
+:1009B000279A2F9A2FEF80E792E0215080409040B5
+:1009C000E1F700C0000025982D982FEF80E792E016
+:1009D000215080409040E1F700C0000026982E98FA
+:1009E0002FEF80E792E0215080409040E1F700C077
+:1009F000000027982F9856985E9825982D9826984D
+:100A00002E9827982F98089589EA8093800089E08E
+:100A10008093810024982C983F988AB18F748AB96A
+:100A20006E98479A8BB1806B8BB9769A0E94AC0412
+:100A30000C94790580E2809301018091510181112C
+:100A40000EC00E94140381E0809351012FEF83EDCB
+:100A500090E3215080409040E1F700C0000080E426
+:100A60000E941A038093010181112EC00E94440349
+:100A700080930101811128C00E94440380930101E9
+:100A8000811122C08FE30E944403809301018111F0
+:100A90001BC00E943C0380E40E941A038093010162
+:100AA000811112C08CE00E944403809301018111E6
+:100AB0000BC00E94440380930101811105C08FE3A4
+:100AC0000E944403809301010E943C038091010134
+:100AD000089561110BC0FC018281882321F085EE0D
+:100AE0000E945A1103C085EE0E94221280E090E01D
+:100AF000089508956091BD017091BE018091BF017C
+:100B00009091C0010E94571B56985E9825982D9889
+:100B100026982E9827982F98813019F0823021F04E
+:100B20000895259A2D9A0895269A2E9A089581E07F
+:100B3000089581E008950C94990508950F931F93EB
+:100B4000CF93DF938C01FC01C081D181CE010E9443
+:100B5000D019BE010E944706EC01B8010E949B0516
+:100B6000882309F48DC0F8018281882309F44AC0E2
+:100B700080915D0181111FC0C431F0E5DF0709F0EC
+:100B800051C00E949D0581E080935D010E94EF1B92
+:100B900090935C0180935B01109254011092560176
+:100BA00010925501109258011092570110925A015B
+:100BB0001092590165C080915B0190915C010E9487
+:100BC000FB1B883C910570F480915401E82FF0E004
+:100BD000EE0FFF1FEB5AFE4FD183C0838F5F8093D0
+:100BE00054014EC0C43880E5D80721F0C538D0453F
+:100BF00001F13AC0F8018281882341F0109252013C
+:100C000082E01EC0C438E0E5DE0759F5809152014C
+:100C1000811106C086E20E945A1186E20E942212C9
+:100C200082E01CC0C438F0E5DF0741F3C538D04589
+:100C3000D9F4F8018281882331F01092530180E2C7
+:100C40000E9471121DC080915301811106C087E27C
+:100C50000E945A1187E20E94221280E20E947812BA
+:100C60000FC0C538D04529F381E0809352018093AD
+:100C70005301C801DF91CF911F910F910C949705FB
+:100C800080E0DF91CF911F910F910895089596E034
+:100C9000799FF001112494E5899FE00DF11D112445
+:100CA000E60FF11DEE0FFF1FE25FFE4F859194915D
+:100CB0000895880F991FFC01E657F04085919491A3
+:100CC0000895880F991FFC01E65FFE4F859194916E
+:100CD00008950F931F93CF93DF93EC01811520E3C9
+:100CE000920750F5C11580E2D80708F0C3C0CB3B8E
+:100CF000D10590F4C83AD10508F06AC0C53AD105CB
+:100D000008F05BC0C430D10508F0D0C1219709F0CC
+:100D1000CAC101E010E00AC2CF3FD10511F008F0CE
+:100D2000C5C1C03FD10508F0A2C0CE01805E9109C7
+:100D3000089708F4BBC1B7C1C13090E5D90709F4E1
+:100D4000A2C020F5C0318FE4D80770F4C11590E43B
+:100D5000D90708F094C0C11521E3D20708F0A3C158
+:100D6000DD278E01106CE2C1C115D04509F09BC191
+:100D70000E94D7148FEF94E32CE0815090402040E4
+:100D8000E1F700C000000E944A1CD0C1C11597E5E0
+:100D9000D90758F4C03121E5D20708F01CC1C4318D
+:100DA00080E5D80708F475C07EC1CE019057811543
+:100DB000904108F078C1DF7073C1C53AD10509F4DC
+:100DC00077C1C63AD10509F076C102E810E4AEC198
+:100DD000C83AD10509F472C1C93AD10509F471C103
+:100DE000CA3AD10509F470C1CB3AD10509F46FC1F3
+:100DF000CC3AD10509F46EC1CD3AD10509F46DC1E3
+:100E0000C03BD10509F46CC1CE3AD10509F46BC1E0
+:100E1000CF3AD10509F46AC1C13BD10509F469C1D2
+:100E2000C23BD10509F468C1C33BD10509F467C1D0
+:100E3000C43BD10509F466C1C53BD10509F465C1C0
+:100E4000C63BD10509F464C1C73BD10509F463C1B0
+:100E5000C83BD10509F462C1C93BD10509F461C1A0
+:100E6000CA3BD10509F460C100E014E45FC18E0102
+:100E700010655CC1CE019F700E94610658C1DF7091
+:100E80008E01106A53C18091DA0181608093DA018A
+:100E90004DC10E94EF1D811102C00E94D51D0E940C
+:100EA0000C1E90E09093FB018093FA01C23080E524
+:100EB000D80721F48091FA01816086C0C43090E5A2
+:100EC000D90721F48091FA0182607EC0C63020E506
+:100ED000D20721F48091FA01846076C0C83080E5A1
+:100EE000D80719F48091FA0127C0CA3090E5D907D4
+:100EF00021F48091FA01806167C0CC3020E5D207EF
+:100F000021F48091FA0180625FC0CE3080E5D8077D
+:100F100021F48091FA01806457C0C03190E5D9076F
+:100F200021F48091FA0180684FC0C23120E5D207D8
+:100F300029F48091FA018460886046C0C33080E55E
+:100F4000D80721F48091FA018E7F3EC0C53090E52C
+:100F5000D90721F48091FA018D7F36C0C73020E592
+:100F6000D20721F48091FA018B7F2EC0C93080E531
+:100F7000D80719F48091FA0126C0CB3090E5D90743
+:100F800021F48091FA018F7E1FC0CD3020E5D20779
+:100F900021F48091FA018F7D17C0CF3080E5D8070A
+:100FA00021F48091FA018F7B0FC0C13190E5D90700
+:100FB00021F48091FA018F7707C0C331D04531F415
+:100FC0008091FA018B7F877F8093FA018091FA01EB
+:100FD0000E94101EABC08D2F99278F7099278130EA
+:100FE0009105D9F49E012370332702C0880F991F01
+:100FF0002A95E2F79C688E0144E0000F111F4A9584
+:10100000E1F700271370802B912B53E0CC0FDD1FED
+:101010005A95E1F7C076DD272FC08230910531F473
+:10102000DC2FCC278E01016F106A80C083309105C0
+:1010300069F4CE018370992701E010E002C0000F2F
+:10104000111F8A95E2F7C8019C680FC08430910592
+:10105000B9F4CE018370992701E010E002C0000FBF
+:10106000111F8A95E2F7C8019A6823E0CC0FDD1FB3
+:101070002A95E1F7C07ED7708C010C2B1D2B56C032
+:101080008530910531F4DC2FCC278E01046F106A76
+:101090004DC0069709F04AC0CF71DD27DC2FCC2761
+:1010A0008E01106243C000E010E040C08E013EC0DF
+:1010B00001E810E43BC003E810E438C002EE14E499
+:1010C00035C009EE14E432C00AEE14E42FC005EB7B
+:1010D00014E42CC006EB14E429C007EB14E426C08A
+:1010E0000CEC14E423C00DEC14E420C003E815E478
+:1010F0001DC00AE815E41AC002E915E417C004E9A6
+:1011000015E414C001E216E411C003E216E40EC0B7
+:1011100004E216E40BC005E216E408C006E216E499
+:1011200005C007E216E402C00AE216E4C801DF9136
+:10113000CF911F910F91089596E0799FF0011124AE
+:1011400094E5899FE00DF11D1124E60FF11DEE0FCE
+:10115000FF1FE25FFE4F85919491803E9105E0F480
+:10116000803C910558F58133910509F46FC048F42E
+:101170008932910509F463C08A32910509F46DC082
+:1011800072C089339105E9F082389105D1F0853339
+:10119000910509F44DC067C0833E910581F138F493
+:1011A000803E9105B9F0823E9105D9F05CC0863E43
+:1011B000910561F1873E9105A1F155C00E94590644
+:1011C00008952091FA0120FD02C021FF4CC080EE5D
+:1011D00090E049C08091FA0180FFF9CF89E390E067
+:1011E00042C08091FA0182FF0EC08091FA0184FF13
+:1011F00003C080E090E037C083EE90E034C080917F
+:10120000FA0182FFF2CF82EE90E02DC08091FA01C8
+:1012100083FF0BC08091FA0184FDEBCF87EE90E055
+:1012200022C08091FA0183FFF5CF86EE90E01BC0CB
+:101230008091FA0185FF07C089E290E014C0809197
+:10124000FA0185FFF9CF85E390E00DC08091FA01A6
+:1012500086FF07C08AE290E006C08091FA0186FF0F
+:10126000F9CF81E390E00E946906089508950C94F7
+:10127000360980916E010895CF93DF9300D01F92BD
+:10128000CDB7DEB79C018091F101843019F593E070
+:1012900099833B832A839093E9008FEF9091E80034
+:1012A000815095FD06C095ED9A95F1F700008111EA
+:1012B000F5CF8091E80085FF0DC040E050E063E08D
+:1012C00070E0CE0101960E94A60B8091E8008E7717
+:1012D0008093E8000F900F900F90DF91CF910895C9
+:1012E000CF93DF9300D01F92CDB7DEB72091F101ED
+:1012F000243021F522E029839B838A8383E0809335
+:10130000E9008FEF9091E800815095FD06C095EDC2
+:101310009A95F1F700008111F5CF8091E80085FFE3
+:101320000DC040E050E063E070E0CE0101960E9405
+:10133000A60B8091E8008E778093E8000F900F90C5
+:101340000F90DF91CF9108952091F1012430F1F4B5
+:1013500022E02093E9002FEF3091E800215035FD85
+:1013600006C035ED3A95F1F700002111F5CF209137
+:10137000E80025FF0BC040E050E065E070E00E940F
+:10138000A60B8091E8008E778093E8000895CF93B4
+:10139000DF93EC019091F101943009F046C0809107
+:1013A0000C018823D9F080910D018823B9F0909326
+:1013B000E9008FEF9091E800815095FD06C095E11E
+:1013C0009A95F1F700008111F5CF8091E80085FF33
+:1013D0002CC040E050E060E170E017C081E08093F5
+:1013E000E9008FEF9091E800815095FD06C095EDE2
+:1013F0009A95F1F700008111F5CF8091E80085FF03
+:1014000014C040E050E068E070E0CE010E94A60BFE
+:101410008091E8008E778093E80080E1FE01AEE5E0
+:10142000B1E001900D928A95E1F7DF91CF91089597
+:101430008091F001811109C00E943B0D0E94980D1E
+:101440008091E20084608093E20008951092F001A0
+:10145000089508950C947F220E94E01B0E9485222B
+:101460000E943E100C94370942E061EC81E00E943A
+:10147000B50C42E061EC82E00E94B50C42E061EC08
+:1014800083E00E94B50C42E161EC84E00C94B50C61
+:101490008091F301833009F455C030F4813071F04C
+:1014A000823009F48EC008958A3009F47AC08B30F6
+:1014B00009F460C0893009F09CC020C08091F2011D
+:1014C000813A09F096C08091E800877F8093E80018
+:1014D0008091F6019091F701892B21F460E18EE56E
+:1014E00091E003C060E080E090E070E00E94F10BCA
+:1014F0008091E8008B778093E80008958091F20155
+:10150000813209F076C08091F6019091F701009741
+:1015100019F0039709F06DC08091E800877F8093F0
+:10152000E8008091E80082FD05C08091F101811101
+:10153000F8CF5FC08091F10080936E018091E80048
+:101540008B7753C08091F201813A09F052C08091AB
+:10155000F6019091F701892B09F04BC08091E800CA
+:10156000877F8093E8008091E80080FFFCCF809126
+:101570000C0136C08091F2018132D9F58091F601DB
+:101580009091F701892BA9F58091E800877F8093DE
+:10159000E8000E94EA0C8091F40180930C010C9405
+:1015A000D7148091F201813221F58091E800877F84
+:1015B0008093E8000E94EA0C8091F50180936F010E
+:1015C00008958091F201813AA1F48091E800877F2B
+:1015D0008093E8008091E80080FFFCCF80916F014C
+:1015E0008093F1008091E8008E778093E8000C945E
+:1015F000EA0C089584B7877F84BF88E10FB6F8941A
+:1016000080936000109260000FBE90E080E80FB6FB
+:10161000F89480936100909361000FBE0E948D103A
+:101620000E943B0D0E94980D8091E200846080939F
+:10163000E20078940E941E100E948F1082E091E0D8
+:101640000E9439100E946D228091F101853069F469
+:101650000E94A71B8091EF018823B1F30E94D21B47
+:10166000882391F30E94900BEFCF0E949510ECCF4E
+:10167000292F332723303105C9F064F42130310597
+:1016800081F02230310509F043C08DE690E022EE72
+:1016900033E042C021323105F1F02232310541F10F
+:1016A00037C082E190E02FE434E036C099278130E2
+:1016B000910541F08230910541F0892B49F5EEED1D
+:1016C000F3E005C0E6ECF3E002C0EEEAF3E084915B
+:1016D00090E09F0121C06430D8F4E62FF0E0EE0FD7
+:1016E000FF1FEE5DFE4F2081318189E090E014C044
+:1016F000643070F470E0FB01EE0FFF1FE65EFE4FFA
+:1017000020813181FB01EA5EFE4F808190E004C0C0
+:1017100080E090E020E030E0FA01318320830895FA
+:1017200080E189BD82E189BD09B400FEFDCF8091D1
+:10173000D8008F7D8093D8008091E00082608093F4
+:10174000E0008091E00081FDFCCF0895CF92DF9210
+:10175000EF92FF920F931F93CF93DF93EC018B01D6
+:101760006A010E94090D811133C0C114D10439F0FE
+:10177000F60180819181081B190BC80FD91FE12C3C
+:10178000F12C0115110519F18091E80085FD16C0B5
+:101790008091E8008E778093E800C114D10449F06D
+:1017A000F60180819181E80EF91EF182E08285E0E8
+:1017B0000FC00E94090D882321F30AC089918093EC
+:1017C000F10001501109FFEFEF1AFF0ADACF80E0B4
+:1017D000DF91CF911F910F91FF90EF90DF90CF900D
+:1017E00008952091F8013091F9012617370748F044
+:1017F0006115710539F42091E8002E772093E800F7
+:1018000001C0B90140E061157105A9F12091F10114
+:10181000222309F443C0253009F442C02091E80096
+:1018200023FD40C02091E80022FD32C02091E80055
+:1018300020FFE9CF4091F3002091F20030E0342BFB
+:10184000FC01CF016115710559F02830310540F4D4
+:1018500081918093F100615071092F5F3F4FF1CF6B
+:1018600041E02830310509F040E02091E8002E7772
+:101870002093E800C8CF4111C9CF0AC08091F1017F
+:10188000882361F0853061F08091E80083FD0AC013
+:101890008091E80082FFF2CF80E0089582E0089511
+:1018A00083E0089581E008952091F8013091F901D5
+:1018B0002617370748F06115710539F42091E800C3
+:1018C0002E772093E80001C0B901FC0120E06115EA
+:1018D000710591F18091F101882309F440C08530B0
+:1018E00009F43FC08091E80083FD3DC08091E8008D
+:1018F00082FD2FC08091E80080FFE9CF2091F300A6
+:101900008091F20090E0922B6115710559F08830BA
+:10191000910540F424912093F100319661507109B2
+:101920000196F2CF21E0089709F020E08091E800CD
+:101930008E778093E800CBCF2111CCCF0AC0809165
+:10194000F101882361F0853061F08091E80083FD2A
+:101950000AC08091E80082FFF2CF80E0089582E023
+:10196000089583E0089581E00895982F973058F501
+:101970009093E900981739F07091EC002091ED00F8
+:101980005091F00003C0242F762F50E021FF19C0A2
+:101990003091EB003E7F3093EB003091ED003D7FC6
+:1019A0003093ED003091EB0031603093EB00709399
+:1019B000EC002093ED005093F0002091EE0027FF03
+:1019C00007C09F5FD3CF8F708093E90081E00895B7
+:1019D00080E008958091F20187FF11C08091E800B6
+:1019E00082FD05C08091F1018111F8CF11C0809175
+:1019F000E8008B770BC08091F101882349F080913A
+:101A0000E80080FFF8CF8091E8008E778093E800AF
+:101A100008952091E4003091E50095E64091EC00B6
+:101A2000842F817040FF22C08091E80080FD1CC09F
+:101A30008091F101882391F0853091F08091EB0045
+:101A400085FD10C04091E4005091E5004217530716
+:101A500029F39A01915011F784E0089582E00895E6
+:101A600083E0089581E0089580E008954091E800C2
+:101A700042FFDECF08950E94A90D0E94B10DE0EE55
+:101A8000F0E0808181608083E8EDF0E080818F77F5
+:101A9000808319BCA7EDB0E08C918E7F8C93808100
+:101AA0008F7E80831092F00108950F931F93CF9340
+:101AB000DF930E94A90D0E94B10DC8EDD0E088818E
+:101AC0008F77888388818068888388818F7D8883E9
+:101AD00019BC1092F1011092ED011092EF011092D9
+:101AE000EE0100EE10E0F80180818B7F8083888119
+:101AF0008160888342E060E080E00E94B50CE1EE06
+:101B0000F0E080818E7F8083E2EEF0E08081816072
+:101B10008083808188608083F80180818E7F8083CC
+:101B2000888180618883DF91CF911F910F91089503
+:101B3000E8EDF0E080818F7E8083E7EDF0E080814A
+:101B40008160808384E082BF81E08093F0010C9407
+:101B5000550DE8EDF0E080818E7F80831092E200E9
+:101B600008951092DA001092E10008951F920F92EA
+:101B70000FB60F9211242F933F934F935F936F9360
+:101B80007F938F939F93AF93BF93EF93FF93809136
+:101B9000E10082FF0BC08091E20082FF07C08091CC
+:101BA000E1008B7F8093E1000E941D108091DA009C
+:101BB00080FF1FC08091D80080FF1BC08091DA0099
+:101BC0008E7F8093DA008091D90080FF0DC080E184
+:101BD00089BD82E189BD09B400FEFDCF81E080931B
+:101BE000F1010E94180A05C019BC1092F1010E946F
+:101BF000260A8091E10080FF19C08091E20080FFF9
+:101C000015C08091E2008E7F8093E2008091E20017
+:101C100080618093E2008091D80080628093D80038
+:101C200019BC85E08093F1010E942A0A8091E100AD
+:101C300084FF30C08091E20084FF2CC080E189BD28
+:101C400082E189BD09B400FEFDCF8091D8008F7D6F
+:101C50008093D8008091E1008F7E8093E100809195
+:101C6000E2008F7E8093E2008091E20081608093A9
+:101C7000E2008091ED01882311F084E007C080919B
+:101C8000E30087FD02C081E001C083E08093F101A1
+:101C90000E942C0A8091E10083FF29C08091E2001C
+:101CA00083FF25C08091E100877F8093E10082E07F
+:101CB0008093F1011092ED018091E1008E7F80937D
+:101CC000E1008091E2008E7F8093E2008091E2004B
+:101CD00080618093E20042E060E080E00E94B50C09
+:101CE0008091F00088608093F0000E94290AFF91A3
+:101CF000EF91BF91AF919F918F917F916F915F9184
+:101D00004F913F912F910F900FBE0F901F901895FC
+:101D10001F920F920FB60F9211242F933F934F9360
+:101D20005F936F937F938F939F93AF93BF93CF9363
+:101D3000DF93EF93FF93C091E900CF708091EC00A7
+:101D4000D82FD17080FDD0E81092E9008091F0008A
+:101D5000877F8093F00078940E94CC0E1092E90067
+:101D60008091F00088608093F000CD2BCF70C093FD
+:101D7000E900FF91EF91DF91CF91BF91AF919F91DA
+:101D80008F917F916F915F914F913F912F910F9024
+:101D90000FBE0F901F9018951F93CF93DF93CDB771
+:101DA000DEB7AA970FB6F894DEBF0FBECDBFE2EF45
+:101DB000F1E088E08E0F9091F10091938E13FBCFAC
+:101DC0000E94480A8091E80083FF1FC18091F201C0
+:101DD0009091F301492F50E04A30510508F015C1A8
+:101DE000FA01EA5AFF4F0C940724803881F08238B8
+:101DF00009F00BC18091F6018F708093E90080910A
+:101E0000EB0085FB882780F91092E90006C08091DD
+:101E1000EE019091EF01911182609091E800977F1F
+:101E20009093E8008093F1001092F100C8C0282F31
+:101E30002D7F09F0EAC0882319F0823061F0E5C0F7
+:101E40008091F401813009F0E0C0933009F080E026
+:101E50008093EF012BC08091F401811127C0809104
+:101E6000F6018F7009F4D1C08093E9002091EB0056
+:101E700020FF1CC0933021F48091EB00806214C0DD
+:101E80009091EB0090619093EB0021E030E0A9018C
+:101E900002C0440F551F8A95E2F74093EA00109262
+:101EA000EA008091EB0088608093EB001092E900DB
+:101EB0008091E800877F86C08111A7C01091F4014E
+:101EC0001F778091E3008078812B8093E3008091DD
+:101ED000E800877F8093E8000E94EA0C8091E80088
+:101EE00080FFFCCF8091E30080688093E3001111B4
+:101EF00002C082E001C083E08093F10186C0805877
+:101F0000823008F082C08091F4019091F5018C3DFF
+:101F100053E0950779F583E08A838AE289834FB796
+:101F2000F894DE01139620E03EE051E2E32FF0E06A
+:101F300050935700E49120FF03C0E295EF703F5F9C
+:101F4000EF708E2F90E0EA3010F0C79601C0C09677
+:101F50008D939D932F5F243149F74FBF8091E80007
+:101F6000877F8093E8006AE270E0CE0101960E94CC
+:101F7000F10B14C0AE014F5F5F4F6091F6010E94FC
+:101F8000380BBC01009709F440C09091E800977F9E
+:101F90009093E80089819A810E94540C8091E80016
+:101FA0008B778093E80031C0803879F58091E80024
+:101FB000877F8093E8008091ED018093F10080910C
+:101FC000E8008E778093E8000E94EA0C1EC0811121
+:101FD0001CC09091F4019230C0F48091E800877F9A
+:101FE0008093E8009093ED010E94EA0C8091ED014E
+:101FF000811106C08091E30087FD02C081E001C02D
+:1020000084E08093F1010E94340A8091E80083FF0C
+:102010000AC08091E800877F8093E8008091EB0000
+:1020200080628093EB00AA960FB6F894DEBF0FBED5
+:10203000CDBFDF91CF911F9108950895CF938091E7
+:10204000F1018823A1F0C091E900CF709091EC00DC
+:10205000892F817090FD80E8C82B1092E900809153
+:10206000E80083FD0E94CC0ECF70C093E900CF91B1
+:10207000089590937501809374010895E09174011F
+:10208000F0917501309721F00190F081E02D0994D5
+:1020900080E00895E0917401F0917501309721F08E
+:1020A0000280F381E02D09940895E0917401F0918C
+:1020B0007501309721F00480F581E02D0994089591
+:1020C00020917201309173018217930771F0909300
+:1020D000730180937201E0917401F0917501309762
+:1020E00021F00680F781E02D099408952091700178
+:1020F000309171018217930771F090937101809371
+:102100007001E0917401F0917501309721F0008425
+:10211000F185E02D0994089508950C948C100E9487
+:10212000E61B0E9487030C94A81C9F92AF92BF925B
+:10213000CF92DF92EF92FF920F931F93CF93DF9393
+:1021400000D000D000D0CDB7DEB70E949F030DE0D5
+:1021500010E0AA24A394B12C902E802F0E948D040D
+:10216000980129583E4F6901F901F080F826A1F441
+:102170000150110988F78FEF89838A831B820E949F
+:10218000EF1B8160782F9D838C8349815A816B81FD
+:102190008D810E942C112FC09091DA0191FF04C013
+:1021A0008E830E9493048E8125E030E0A501022EEB
+:1021B00001C0440F0A94EAF7E42E4F21C1F02983AD
+:1021C0009A828E2191E009F490E09B830E94EF1B9C
+:1021D0008160782F9D838C8349815A816B818D81A9
+:1021E0000E942C11F6018081E826E08204C0215073
+:1021F0003109E0F6BDCF0E948F1F109176010E9439
+:102200003E101817B9F00E943E1080937601269672
+:102210000FB6F894DEBF0FBECDBFDF91CF911F91F7
+:102220000F91FF90EF90DF90CF90BF90AF909F9075
+:102230000C94370926960FB6F894DEBF0FBECDBFBB
+:10224000DF91CF911F910F91FF90EF90DF90CF9092
+:10225000BF90AF909F900895CF93DF93CDB7DEB737
+:102260002B970FB6F894DEBF0FBECDBF4F835887B4
+:1022700069877A878B87DE01119686E0FD011192CE
+:102280008A95E9F785E0FE01379601900D928A95CF
+:10229000E1F749815A816B817C818D819E810E9409
+:1022A00075172B960FB6F894DEBF0FBECDBFDF912A
+:1022B000CF910895CF93882309F4C2C0C82F8238E4
+:1022C00059F40E943E1081FDBBC089E30E944F1A61
+:1022D0000E941C1B89E30CC0833879F40E943E10D5
+:1022E00080FDAEC083E50E944F1A0E941C1B83E54F
+:1022F0000E94911ACF910C941C1B843859F40E94AF
+:102300003E1082FD9DC087E40E944F1A0E941C1B54
+:1023100087E4EECF8CEF8C0F813A48F48C2F0E942B
+:10232000D22181118DC08C2F0E944F1AE3CF80E201
+:102330008C0F883048F4C77081E001C0880FCA95BF
+:10234000EAF70E94D51AD6CF8BE58C0F833078F44C
+:10235000C53A29F0C63A31F083E890E005C081E83B
+:1023600090E002C082E890E0CF910C94601088E584
+:102370008C0F833108F064C0C83A39F1C93A41F191
+:10238000CA3A49F1CB3A51F1CC3A59F1CD3A61F11F
+:10239000C03B69F1CE3A71F1CF3A79F1C13B81F19D
+:1023A000C23B89F1C33B91F1C43B99F1C53BA1F11B
+:1023B000C63BA9F1C73BB1F1C83BB9F1C93BC1F17B
+:1023C000CA3BC9F180E090E038C082EE90E035C0B1
+:1023D00089EE90E032C08AEE90E02FC085EB90E06D
+:1023E0002CC086EB90E029C087EB90E026C08CECF7
+:1023F00090E023C08DEC90E020C083E891E01DC008
+:102400008AE891E01AC082E991E017C084E991E07E
+:1024100014C081E292E011C083E292E00EC084E237
+:1024200092E00BC085E292E008C086E292E005C02F
+:1024300087E292E002C08AE292E0CF910C9476109B
+:10244000CF910895882309F44BC0823859F40E9433
+:102450003E1081FF45C089E30E944F1A0E941C1B59
+:1024600089E30CC0833871F40E943E1080FF38C0AD
+:1024700083E50E944F1A0E941C1B83E50E94911A5B
+:102480000C941C1B843859F40E943E1082FF28C013
+:1024900087E40E944F1A0E941C1B87E4EFCF9CEF39
+:1024A000980F913A58F390E2980F983050F4877053
+:1024B00091E001C0990F8A95EAF7892F0E94DB1AF3
+:1024C000DFCF9BE5980F933020F480E090E00C94F0
+:1024D0006010885A833120F480E090E00C947610EC
+:1024E0000895882321F00E94D51A0C941C1B08958E
+:1024F000882321F00E94DB1A0C941C1B08957F9204
+:102500008F929F92AF92BF92CF92DF92EF92FF9203
+:102510000F931F93CF93DF931F92CDB7DEB77C014C
+:10252000C62E772EFC01058102950F7012811111C4
+:102530000E94F21A0E94481A882379F0112369F048
+:1025400080E28C0D883048F082E00E94311A0E94AF
+:10255000481A91E0D82ED92601C0D12CE72DE2955A
+:10256000EF70F0E0E05AFF4F0C940724872D807F36
+:10257000072D0F70882311F00295007F112389F039
+:10258000002309F490C180E28C0D883020F4802F64
+:102590000E94D51A03C0802F0E94E51A0E941C1BBE
+:1025A00082C18C2D0E942212002309F495C180E281
+:1025B0008C0D883020F4802F0E94DB1A03C0802FFE
+:1025C0000E94EB1A0E941C1B87C1972D907F872DBC
+:1025D0008F70903211F08295807FCC2021F0F1E055
+:1025E000CF16B1F01EC0112349F0002309F414C125
+:1025F000013009F011C10E94051B6EC1002319F0C2
+:10260000013009F469C189830E94081B89810AC1CC
+:10261000112321F0023008F05FC1FEC001115CC13E
+:1026200001C1112321F0002309F4F6C03CC10023AD
+:1026300009F4F8C03EC1872D86958695837090E099
+:10264000009719F0019761F047C1112321F08C2DFB
+:10265000972D937002C080E090E00E9460103CC112
+:10266000112321F08C2D972D937002C080E090E013
+:102670000E94761031C18C2D112319F00E94971EF3
+:1026800002C00E94FF1E0E94841F26C1872D8370F6
+:1026900009F052C0111120C18C2D8295869587704A
+:1026A000880F880F9C2D9F70892E912CA12CB12C06
+:1026B000082E04C0880C991CAA1CBB1C0A94D2F7D3
+:1026C000C4FE14C00FE010E020E030E0B901A80122
+:1026D00004C0440F551F661F771F8A95D2F7CB01A0
+:1026E000BA01609570958095909503C060E070E0A8
+:1026F000CB01272D26952695237030E02230310519
+:1027000069F02330310589F0682979298A299B29C4
+:102710002130310571F00E94BD18DEC06829792989
+:102720008A299B290E94D918D7C00E94BD18C501CB
+:10273000B4010E94A118D0C0112319F0872D817017
+:1027400001C08695882309F4C7C08C2D8295869593
+:102750008770880F880F9C2D9F70892E912CA12C3B
+:10276000B12C082E04C0880C991CAA1CBB1C0A940E
+:10277000D2F7C4FE14C00FE010E020E030E0B90151
+:10278000A80104C0440F551F661F771F8A95D2F712
+:10279000CB01BA01609570958095909503C060E07B
+:1027A00070E0CB01272D269526952370422F50E00F
+:1027B0004230510569F04330510589F06829792983
+:1027C0008A299B294130510571F00E94971984C0D4
+:1027D000682979298A299B290E94B3197DC00E9402
+:1027E0009719C501B4010E947B1976C08C2D90E029
+:1027F000FC01E05EF109E531F10508F050C0E05957
+:10280000FF4F0C9407240C2D0F70872D8F7111230F
+:1028100031F00E941419802F0E9471125DC00E9435
+:102820003519802F0E94781257C0112339F00111F9
+:1028300053C0872D8F710E945A194EC0023008F084
+:102840004BC0F7CF112339F0872D8F710E941419D7
+:1028500043C01123C9F3872D8F710E9435193CC0E5
+:10286000112329F0872D8F710E94FF1835C00E9417
+:10287000F51832C0112351F0172D1F71812F0E94BE
+:10288000141963E0812F0E94281A26C081E00E945B
+:10289000311A023008F182E00E94311A1DC0112362
+:1028A00031F0002389F28C2D0E945A1115C00023AB
+:1028B00091F28C2D0E9422120FC0472D4F706C2D6B
+:1028C000C7010E9469050E94191806C0472D4F7064
+:1028D0006C2DC7010E944606DD20F9F00E94241AE3
+:1028E00080FD1BC0F70112820E941E1A0E9414195B
+:1028F000C7010E949C140E941E1A0F90DF91CF9175
+:102900001F910F91FF90EF90DF90CF90BF90AF900D
+:102910009F908F907F900C9435190F90DF91CF91FD
+:102920001F910F91FF90EF90DF90CF90BF90AF90ED
+:102930009F908F907F9008950F931F93CF93DF9375
+:10294000EC01888199812B813C81232BB9F09F3F39
+:1029500011F48F3F99F0CE010E949E05882371F0FB
+:10296000688179818A810E941A1A8C010E94CF198C
+:102970000E949618B801CE010E947F12DF91CF917C
+:102980001F910F9108950E94F21A0E94021B0E944B
+:10299000C71A0E941C1B0E9435200E94841F80E0E1
+:1029A00090E00E94601080E090E00C9476100E940D
+:1029B000E21A0C94C3140E940F1A292F22952F702B
+:1029C00030E02C3031054CF42A3031056CF42250C3
+:1029D000310922303105A8F407C02C30310569F0E7
+:1029E0002F30310551F00DC0803F69F018F4803E62
+:1029F00040F409C0843F29F406C093FB882780F97E
+:102A0000089580E0089581E00895CF93DF9300D08A
+:102A100000D01F92CDB7DEB70F900F900F900F90A0
+:102A20000F90DF91CF910895CF93DF9300D000D026
+:102A300000D0CDB7DEB726960FB6F894DEBF0FBE36
+:102A4000CDBFDF91CF9108951F93CF93DF93C091B6
+:102A5000850116E080918601C81799F0D0E01C9F8F
+:102A6000F0011D9FF00D1124E957FE4F4081518167
+:102A700062817381848195810E9414152196C770AB
+:102A8000E9CFDF91CF911F9108954091B701509107
+:102A9000B8016091B9017091BA018091BB01909128
+:102AA000BC010C9414158091BC0182958F7009F0C3
+:102AB00054C08091B901882309F44FC080918501E9
+:102AC000A09186016091B7017091B8014091BA015F
+:102AD0005091BB01B6E08A1709F43FC090E0411560
+:102AE0005105C1F17F3F11F46F3FA1F1B89FF00193
+:102AF000B99FF00D1124E957FE4F218172132AC0AE
+:102B00002081621327C02281211124C023813481B6
+:102B10002417350710F421503109241B350B283CAC
+:102B20003105C0F42091BC012F7020612093BC01BD
+:102B300026E0289FF001299FF00D1124E457FE4F55
+:102B400080818F708061808387EB91E00E949C146C
+:102B50000C94241501968770BECF0895CF92DF9212
+:102B6000EF92FF920F931F93CF93DF93CDB7DEB712
+:102B700062970FB6F894DEBF0FBECDBF8C0185E023
+:102B8000F801DE011D9601900D928A95E1F7D801BA
+:102B90004C9111965C91119712966C911297139625
+:102BA000CD90DC9014973091B7017091B80180916D
+:102BB000BA019091BB01009709F46BC17F3F19F4F2
+:102BC0003F3F09F466C1E090B901EE2009F4C0C0AE
+:102BD0002091BC01C816D90628F0F601E81BF90BB4
+:102BE000CF0104C0809590958C0D9D1DFF24F3941A
+:102BF000883C910578F0F12C207F09F0C6C07C2D2F
+:102C0000D98AC88A89890E94051587EB91E00E94BC
+:102C10009C14B1C0822F807F09F046C0751314C088
+:102C2000341312C0611110C02F7020612093BC01B9
+:102C30000E94451587EB91E00E949C148091BC0195
+:102C4000D80115968C932EC0CD2819F15F3F11F451
+:102C50004F3FF9F0F62E61111CC080918501209143
+:102C6000860136E0821709F45AC090E0389FF001DF
+:102C7000399FF00D1124E957FE4F7181571306C09B
+:102C80007081471303C07281711103C00196877070
+:102C9000E9CFF62E662309F418C18091BC0181604A
+:102CA0008093BC01F12C11C1751308C0341306C008
+:102CB000611104C08091BC01D801C3C04D875E87FB
+:102CC0008D859E856A8B0E94DB146A898823E1F1D9
+:102CD0006623D1F12091BC01822F82958F7090E004
+:102CE000029774F08091B7019091B80198878F8313
+:102CF0001986DB86CA862C87CE0107960E949C1413
+:102D000086E0F801A7EBB1E001900D928A95E1F71A
+:102D10000E9453150E944515FF24F394D6C04D8799
+:102D20005E878D859E850E940F1A292F22952F7010
+:102D300030E0223031050CF0BCC09F7009F0B6C005
+:102D4000805E883008F4C1C0C8010E949C14E4CFA2
+:102D5000C816D90608F453C0F601E81BF90BCF01D9
+:102D6000883C910508F450C0F12C7C2DD98AC88A82
+:102D700089890E940515E7EBF1E086E0DF011D92ED
+:102D80008A95E9F70E944515A0C0751314C0341345
+:102D900012C0611110C08091BC01F8018583C80187
+:102DA0000E949C1486E0E7EBF1E0DF011D928A951A
+:102DB000E9F7FE2C8AC04D875E878D859E856A8BDC
+:102DC0000E94DB146A89882309F4BECF662309F4C4
+:102DD000BBCF2091BC01822F82958F7090E002972B
+:102DE0000CF48ECF8091B7019091B8019A838983BA
+:102DF0001B82DD82CC822E83CE0101967FCF80950F
+:102E000090958C0D9D1DACCFF62E662309F49CCFBA
+:102E100075132EC034132CC02091BC0120FD1FC09F
+:102E2000822F82958F70D9F0D80115962C93159723
+:102E30008F3049F08F5F982F9295907F822F8F70FF
+:102E4000892B15968C93C8010E949C1486E0F8018A
+:102E5000A7EBB1E001900D928A95E1F793CF86E060
+:102E6000F801A7EBB1E001900D928A95E1F72DC032
+:102E70004D875E878D859E850E94DB14811140CF32
+:102E80008091BC0181608093BC01C8010E949C14A8
+:102E90001CC0662309F458CF4D875E878D859E85BB
+:102EA0000E94DB14882309F44FCF2ACF811148CF29
+:102EB0000CC0243031050CF047CF9F7009F440CF8F
+:102EC000F8019581907F09F03BCF8F2D62960FB668
+:102ED000F894DEBF0FBECDBFDF91CF911F910F9150
+:102EE000FF90EF90DF90CF9008951F93CF93DF93E3
+:102EF000CDB7DEB72C970FB6F894DEBF0FBECDBFAF
+:102F00004F83588769877A878B879C87CE0107967E
+:102F10000E94AE15882369F08F8198852A853B85AC
+:102F2000232BF1F19F3F09F063C08F3F09F060C090
+:102F300037C086E0FE013796DE01119601900D92B2
+:102F40008A95E1F76F817885EA85FB85309741F1B5
+:102F50007F3F11F46F3F21F12091860130E0C901DC
+:102F60000196877099274091850150E08417950755
+:102F700009F447C069837A83FD83EC8396E0929FCE
+:102F8000D001939FB00D1124A957BE4FFE01319679
+:102F900001900D929A95E1F7809386010E94241585
+:102FA00016E080918501909186018917C1F1189FE3
+:102FB000C001112489579E4F0E94AE15882379F1D4
+:102FC000E09185011E9FF0011124E957FE4F4081D9
+:102FD000518162817381848195810E941415809151
+:102FE000850190E001968770992780938501D9CF5C
+:102FF0004F81588569857A858B859C850E9414153B
+:10300000CFCF0E94D7141092860110928501E7EB72
+:10301000F1E086E0DF011D928A95E9F7C1CF2C9699
+:103020000FB6F894DEBF0FBECDBFDF91CF911F91D9
+:103030000895EF92FF920F931F93CF93DF938C012C
+:10304000009709F46CC0F12CEE24E394E80121967A
+:10305000F8018491843740F4843008F051C0813005
+:1030600081F0823019F15BC0853709F444C0A8F1C2
+:103070009CE7980F903708F052C08F770E94221279
+:1030800041C00E5F1F4FFE01C49180E28C0F88305B
+:1030900048F4C7708E2D01C0880FCA95EAF70E94C8
+:1030A000F51A14C08C2F0E945A112DC00E5F1F4FAD
+:1030B000FE01C49180E28C0F883058F4C7708E2DC9
+:1030C00001C0880FCA95EAF70E94FB1A0E941C1BD8
+:1030D0001AC08C2F0E94221216C00E5F1F4FFE01D5
+:1030E000C491CC2381F08FE99FE00197F1F700C0F4
+:1030F0000000C150F6CF0E5F1F4FFE01F49003C0D9
+:103100000E945A118E018F2D882309F49FCFEFE979
+:10311000FFE03197F1F700C000008150F5CFDF915B
+:10312000CF911F910F91FF90EF90089508956093B4
+:10313000C1017093C2018093C3019093C4010C94A8
+:10314000C3140F931F930091C1011091C2012091EC
+:10315000C3013091C401DC01CB01802B912BA22B48
+:10316000B32B8093C1019093C201A093C301B0938C
+:10317000C4011F910F910C94C3140F931F930091DE
+:10318000C1011091C2012091C3013091C401DC0141
+:10319000CB0180239123A223B3238093C101909379
+:1031A000C201A093C301B093C4011F910F910C946D
+:1031B000C3140F931F930091C1011091C20120917C
+:1031C000C3013091C401DC01CB0180279127A227E4
+:1031D000B3278093C1019093C201A093C301B09320
+:1031E000C4011F910F910C94C3141092BD01109251
+:1031F000BE011092BF011092C0010C94C31441E0B3
+:1032000050E060E070E004C0440F551F661F771F58
+:103210008A95D2F74093BD015093BE016093BF01E0
+:103220007093C0010C94C31441E050E060E070E082
+:1032300004C0440F551F661F771F8A95D2F78091EF
+:10324000BD019091BE01A091BF01B091C001482B7A
+:10325000592B6A2B7B2B4093BD015093BE01609389
+:10326000BF017093C0010C94C31441E050E060E0D2
+:1032700070E004C0440F551F661F771F8A95D2F770
+:1032800040955095609570958091BD019091BE01DB
+:10329000A091BF01B091C001482359236A237B2329
+:1032A0004093BD015093BE016093BF017093C00174
+:1032B0000C94C31441E050E060E070E004C0440F9F
+:1032C000551F661F771F8A95D2F78091BD01909197
+:1032D000BE01A091BF01B091C001482759276A27BC
+:1032E0007B274093BD015093BE016093BF01709353
+:1032F000C0010C94C3140F931F930091BD01109152
+:10330000BE012091BF013091C001DC01CB01802BB7
+:10331000912BA22BB32B8093BD019093BE01A09360
+:10332000BF01B093C0011F910F910C94C3140F9370
+:103330001F930091BD011091BE012091BF013091FA
+:10334000C001DC01CB0180239123A223B32380930E
+:10335000BD019093BE01A093BF01B093C0011F9126
+:103360000F910C94C3140F931F930091BD01109102
+:10337000BE012091BF013091C001DC01CB0180274B
+:103380009127A227B3278093BD019093BE01A093FC
+:10339000BF01B093C0011F910F910C94C314089505
+:1033A000CF92DF92EF92FF920F931F93CF93DF9311
+:1033B0008C01C090C101D090C201E090C301F09097
+:1033C000C4018091BD019091BE01A091BF01B09157
+:1033D000C001C82AD92AEA2AFB2ACFE1D0E0D701C6
+:1033E000C6010C2E04C0B695A795979587950A94AB
+:1033F000D2F780FF06C0B8018C2F0E949C0801976D
+:1034000021F4219760F780E001C08C2FDF91CF91EC
+:103410001F910F91FF90EF90DF90CF900895CF9381
+:10342000DF93EC010E94D019BE010E949C08DF913D
+:10343000CF910895CB010E940F1A08958091C50184
+:1034400085958595859508958091C5018770089526
+:1034500098E0899F90011124262B2093C5010C949C
+:1034600014192091C501809582238093C501982F5E
+:10347000977069F430E0482F552747FD5095241781
+:10348000350729F08595859585950C94351908950E
+:103490009091C501977081E009F480E008959091C2
+:1034A0000C01992321F090910D01911109C02091F7
+:1034B0000E0130910F01F90132969FEF40E01FC0DD
+:1034C000982F9695969596959F3050F5E0910E0120
+:1034D000F0910F01E90FF11D877021E030E0A901A3
+:1034E00002C0440F551F8A95E2F7CA019181892BCA
+:1034F000818308959F3F39F04F5F4E3041F05191E5
+:103500005813F8CF0DC05111F7CF942FF5CF9F3F2F
+:1035100039F0F901E90FF11D97FDFA9582830895BD
+:10352000089590910C01992321F090910D01911132
+:1035300009C020910E0130910F01F9013296205FF0
+:103540003F4F1FC0982F9695969596959F30F0F413
+:10355000E0910E01F0910F01E90FF11D877021E05C
+:1035600030E0A90102C0440F551F8A95E2F7CA0155
+:10357000809591818923818308953196E217F3071D
+:1035800029F090819813F9CF1082F7CF089581E048
+:1035900090E0E0910E01F0910F01E80FF91F108209
+:1035A000019680319105A9F708959091D901892B51
+:1035B0008093D901089580959091D90189238093B2
+:1035C000D90108951092D90108959091D801892BBD
+:1035D0008093D801089580959091D8018923809394
+:1035E000D80108951092D80108959091D701892BA0
+:1035F0008093D701089580959091D7018923809376
+:10360000D70108951092D70108958093C6010895B7
+:103610001092C601089580910E0190910F01FC0156
+:1036200031969C01205F3F4F80E0919191118F5F17
+:10363000E217F307D1F70895E0910E01F0910F0121
+:103640008091D9018083E0910E01F0910F0190816A
+:103650008091D801892B8083E0910E01F0910F01B8
+:1036600090818091D701892B80838091C601882326
+:1036700061F0E0910E01F0910F019081892B808320
+:103680000E940B1B81111092C60180910E01909136
+:103690000F010C944A1020E0009739F0AC01415022
+:1036A0005109842395232F5FF7CF822F0895CF925E
+:1036B000DF92EF92FF926C01EE24FF24C114D1043B
+:1036C000E104F10421F0C701B60120E101C020E0CE
+:1036D000C72ED82EE92EFF24C114D104E104F10431
+:1036E00019F0285FC701B6016B017C0154E0F69424
+:1036F000E794D794C7945A95D1F7C114D104E10443
+:10370000F10419F02C5FC701B6016B017C0142E0A6
+:10371000F694E794D794C7944A95D1F7C114D1048D
+:10372000E104F10419F02E5FC701B601DC01CB0101
+:10373000B695A79597958795892B8A2B8B2B09F0A2
+:103740002F5F822FFF90EF90DF90CF9008958091B0
+:10375000F101843021F11092DB0120E488E190E056
+:103760000FB6F894A895809360000FBE2093600078
+:1037700080E00E94370983B7817F846083BF83B76D
+:10378000816083BF7894889583B78E7F83BF88E1FB
+:103790000FB6F89480936000109260000FBE0895F9
+:1037A000089508950E94D01B0E949F030E94D11B80
+:1037B0000E94940491E0811101C090E0892F089546
+:1037C0000E94D7140E943E100C94370982E084BDF9
+:1037D00093E095BD9AEF97BD80936E0008952FB743
+:1037E000F8948091DC019091DD01A091DE01B0910F
+:1037F000DF012FBF0895CF92DF92EF92FF920F93D8
+:103800001F932FB7F8944091DC015091DD01609136
+:10381000DE017091DF012FBF6A017B01EE24FF24DE
+:103820008C0120E030E0C016D106E206F30610F469
+:10383000415051099A01281B390BC9011F910F9161
+:10384000FF90EF90DF90CF9008951F920F920FB6E8
+:103850000F9211248F939F93AF93BF938091DC01BC
+:103860009091DD01A091DE01B091DF010196A11DD3
+:10387000B11D8093DC019093DD01A093DE01B09334
+:10388000DF01BF91AF919F918F910F900FBE0F906D
+:103890001F9018950E943B0DF8942FEF87EA91E650
+:1038A000215080409040E1F700C0000087E090EB9D
+:1038B000DC018093FB019093FC01A093FD01B09388
+:1038C000FE019CE088E10FB6F894A8958093600013
+:1038D0000FBE90936000FFCFEF92FF920F931F9364
+:1038E000CF93DF93D82FCDE08C2F0E948D0405E07D
+:1038F00010E0E82EF12CC701002E02C095958795A7
+:103900000A94E2F780FF09C0602F7C2F80E00E94BC
+:103910004706D81302C081E006C00150110958F7CC
+:10392000C15010F780E0DF91CF911F910F91FF9070
+:10393000EF900895CF93C82F8CE20E946C1C8823CF
+:1039400021F08C2FCF910C946C1C80E0CF910895C6
+:10395000CF930E94EF1D811102C00E94D51DC5E6C4
+:10396000C15049F00E949F038FE39CE90197F1F752
+:1039700000C00000F5CF89E20E949A1C811113C19A
+:103980008AE20E949A1C81110E94D51D85E00E9446
+:103990009A1C81110E944A1C0E94FA1D8093DA0130
+:1039A00087E00E949A1C8823A9F18BE10E949A1C4F
+:1039B000882351F08091DA0181FB222720F991E0E0
+:1039C000922790FB81F90EC08EE00E949A1C8823FA
+:1039D00061F08091DA0182FB222720F991E09227A1
+:1039E00090FB82F98093DA0115C080E10E949A1C55
+:1039F0009091DA01882341F093FB222720F981E09E
+:103A0000822780FB93F904C0892F809580FB90F971
+:103A10009093DA018091DA010E94FE1D0E940C1E33
+:103A20008093FA0180EE0E949A1C882341F08091D5
+:103A3000FA01982F909590FB80F98093FA0189E321
+:103A40000E949A1C882359F08091FA0181FB222759
+:103A500020F991E0922790FB81F98093FA0182EEA0
+:103A60000E949A1C882359F08091FA0182FB222738
+:103A700020F991E0922790FB82F98093FA0186EE7B
+:103A80000E949A1C882359F08091FA0183FB222717
+:103A900020F991E0922790FB83F98093FA0183EE5D
+:103AA0000E949A1C882359F08091FA0184FB2227F6
+:103AB00020F991E0922790FB84F98093FA0185E345
+:103AC0000E949A1C882359F08091FA0185FB2227D5
+:103AD00020F991E0922790FB85F98093FA0181E328
+:103AE0000E949A1C882359F08091FA0186FB2227B4
+:103AF00020F991E0922790FB86F98093FA0181E109
+:103B00000E949A1C882359F08091FA0187FB222792
+:103B100020F991E0922790FB87F98093FA01809138
+:103B2000FA010E94101E8091FA0187FB882780F914
+:103B300080930D0187E20E949A1CC82F8EE10E949B
+:103B40009A1C8111C2608FE10E949A1C8111C4608D
+:103B500080E20E949A1C8111C86081E20E949A1C36
+:103B60008111C06182E20E949A1C8111C06283E2CD
+:103B70000E949A1C8111C06484E20E949A1C8823CE
+:103B800011F0C06802C0CC2329F08C2F0E94071EC0
+:103B90006C2F03C00E94031E682F70E080E090E04D
+:103BA000CF910C949718CF9108956DEE7EEF80E041
+:103BB00090E00E94412460E082E090E00E942F2487
+:103BC00060E083E090E00E942F2460E084E090E0D9
+:103BD0000E942F2460E085E090E00C942F2480E088
+:103BE00090E00E94292421E08D3E9E4F09F020E0C4
+:103BF000822F089582E090E00C942124682F82E0C7
+:103C000090E00C942F2483E090E00C942124682F02
+:103C100083E090E00C942F2484E090E00C94212425
+:103C2000682F84E090E00C942F248091E20180FFC3
+:103C30000BC06091130185E0689FB0011124759558
+:103C40006795759567952BC081FF09C06091130139
+:103C500085E0689FB00111247595679520C082FFAB
+:103C600007C06091130185E0689FB001112417C05F
+:103C70009091E3019923D1F060911201961788F792
+:103C80002091130185E0289F90011124929FA001AB
+:103C9000939F500D112470E0CA010E94F3236038F5
+:103CA000710540F46115710539F002C065E070E0FE
+:103CB000862F08958FE7089581E008958091E201AD
+:103CC00080FF08C06091110170E07595679575954A
+:103CD000679521C081FF06C06091110170E0759564
+:103CE000679519C082FF04C06091110170E010C097
+:103CF0009091E3019923C1F0609110019617A0F70C
+:103D000080911101899FC001112470E00E94F3236A
+:103D10006038710528F46115710521F0862F08952A
+:103D20008FE7089581E0089561E070E0F4CF803F6F
+:103D300021F40E94151E819504C0813F29F40E9440
+:103D4000151E8093E6010895823F21F40E94151EFE
+:103D5000819504C0833F29F40E94151E8093E501DC
+:103D60000895893F19F40E945E1E05C08A3F31F410
+:103D70000E945E1E81958093E70108958B3F21F498
+:103D80000E945E1E819504C08C3F29F40E945E1E35
+:103D90008093E8010895843F21F48091E4018160DB
+:103DA00017C0853F21F48091E401826011C0863FF5
+:103DB00021F48091E40184600BC0873F21F480915D
+:103DC000E401886005C0883F31F48091E40180619E
+:103DD0008093E40108958D3F21F48091E201816098
+:103DE0000BC08E3F21F48091E201826005C08F3FBD
+:103DF00029F48091E20184608093E2010895803F7C
+:103E000039F48091E60187FF6CC01092E60169C029
+:103E1000813F29F48091E6011816BCF362C09091AD
+:103E2000E501823F29F497FF5CC01092E50159C07B
+:103E3000833F19F41916CCF354C0893F41F48091A3
+:103E4000E70118160CF04DC01092E7014AC08A3FF6
+:103E500029F48091E70187FF44C0F6CF8B3F39F406
+:103E60008091E80187FF3DC01092E8013AC08C3F85
+:103E700029F48091E8011816BCF333C0843F21F483
+:103E80008091E4018E7F17C0853F21F48091E40189
+:103E90008D7F11C0863F21F48091E4018B7F0BC0A0
+:103EA000873F21F48091E401877F05C0883F31F48A
+:103EB0008091E4018F7E8093E40113C08D3F21F453
+:103EC0008091E2018E7F0BC08E3F21F48091E20150
+:103ED0008D7F05C08F3F29F48091E2018B7F809315
+:103EE000E2018091E50181110EC08091E60181110E
+:103EF0000AC08091E701811106C08091E80181111B
+:103F000002C01092E301089584EE91E00E945510E2
+:103F10000E94EF1B9093E1018093E00108951F93AD
+:103F2000CF93DF938091E0019091E1010E94FB1B10
+:103F3000AC019091E301992321F02091140130E02C
+:103F400006C0209115018AE0289F90011124421794
+:103F5000530708F486C08091E501C091E601D09135
+:103F6000E7011091E801811107C0C11176C0D1119C
+:103F700074C0111172C075C09F3F19F09F5F90937C
+:103F8000E301181624F40E94151E8093E501809128
+:103F9000E50187FF05C00E94151E81958093E5010C
+:103FA0001C1624F40E94151E8093E6018091E60100
+:103FB00087FF05C00E94151E81958093E6016091E0
+:103FC000E501662339F1C091E601CC2319F1772789
+:103FD00067FD7095872F972F0E94042323E333E317
+:103FE00043E35FE30E9468230E94D1226093E501CE
+:103FF0006C2F772767FD7095872F972F0E940423DA
+:1040000023E333E343E35FE30E9468230E94D1226A
+:104010006093E6011D1624F40E945E1E8093E70162
+:104020008091E70187FF05C00E945E1E8195809305
+:10403000E701111624F40E945E1E8093E80180912E
+:10404000E80187FF05C00E945E1E81958093E8010C
+:10405000DF91CF911F910C94841F9F3F09F08ECF69
+:1040600096CFDF91CF911F910895E4EEF1E085E0C6
+:10407000DF011D928A95E9F71092E3011092E201A7
+:104080000895833081F128F4813059F08230D1F0E5
+:104090000895853009F449C0B8F1863009F456C056
+:1040A000089580911501262F30E0280F311D2F3FF4
+:1040B000310524F4680F6093150108958FEF809304
+:1040C0001501089580911401262F30E0280F311D2D
+:1040D0002F3F310524F4680F6093140108958FEF8A
+:1040E00080931401089580911301262F30E0280F4A
+:1040F000311D2F3F310524F4680F6093130108959B
+:104100008FEF80931301089580911201262F30E0E4
+:10411000280F311D2F3F310524F4680F60931201E1
+:1041200008958FEF80931201089580911101262F39
+:1041300030E0280F311D2F3F310524F4680F6093C4
+:10414000110108958FEF809311010895809110015E
+:10415000262F30E0280F311D2F3F310524F4680F42
+:104160006093100108958FEF8093100108958330BC
+:1041700011F128F4813049F0823091F008958530B2
+:1041800081F120F18630C1F1089580911501681701
+:1041900020F4861B8093150108951092150108954F
+:1041A00080911401681720F4861B809314010895F0
+:1041B00010921401089580911301681720F4861B52
+:1041C00080931301089510921301089580911201B4
+:1041D000681720F4861B8093120108951092120133
+:1041E000089580911101681720F4861B80931101B6
+:1041F000089510921101089580911001681720F41C
+:10420000861B8093100108951092100108950F935A
+:104210001F938D3109F46BC008F03FC08E3009F454
+:104220007FC0C0F4873009F469C068F4863009F0B3
+:10423000B1C08091DA01817F8E7F8093DA0181E0C5
+:104240008093EA01A8C0883009F4A2C08B3009F439
+:104250009FC0A0C0863109F49BC078F4803109F476
+:1042600072C0813109F096C00E94D71490910D015F
+:1042700081E0892780930D018BC0893109F488C0C2
+:104280008B3109F087C08091DA0181FB222720F968
+:1042900091E0922790FB81F94CC0853309F470C0FE
+:1042A00048F4873209F46CC008F459C0893209F423
+:1042B00067C070C0833438F48A3308F04EC0883346
+:1042C00009F466C067C0833409F45AC0883409F021
+:1042D00061C00E94D7140FEF13ED20E3015010408E
+:1042E0002040E1F700C000000E944A1C51C00E941B
+:1042F0008B220E943E100E9437094AC09091DA0139
+:10430000892F8095817080FB90F929F096609860E4
+:104310009093DA0140C0997F977F9093DA0138C07B
+:104320008091DA0182FB222720F991E0922790FB0D
+:1043300082F98093DA01992359F18091DA01816041
+:104340008093DA0125C08091DA0183FB222720F9CE
+:1043500091E0922790FB83F9ECCF895301C08D51F6
+:1043600041E050E060E070E08A019B0104C0000F72
+:10437000111F221F331F8A95D2F7C901B80104C04B
+:1043800061E070E080E090E00E9497180E94D714EE
+:1043900081E001C080E01F910F91089580E00895B1
+:1043A00080E00895CF93C82F8091EA01813079F0A1
+:1043B00018F08230E9F187C0E0910E01F0910F0111
+:1043C0008081813169F0823209F07FC009C0E091BB
+:1043D0000E01F0910F018081813111F0823261F480
+:1043E0008C2F0E94CE21811104C08C2F0E940721A6
+:1043F0001DC081E090E01AC08C2F0E94D021811155
+:1044000014C0C43179F048F4CB3079F0C03109F0F0
+:1044100060C082E08093EA0108C0C93219F0C83355
+:1044200021F057C01092EA0154C081E0817053C05E
+:10443000C93289F118F5C43171F1A8F4C73009F017
+:1044400046C08AE08093150194E19093140193E0B3
+:10445000909313018093120188E08093110188E208
+:104460008093100134C0CE51C63088F5EC2FF0E0B7
+:10447000E65DFE4F80818093E90129C0CE34E9F0EA
+:1044800020F4CB3421F56AE013C0C13579F0C23590
+:10449000F1F461E00DC08091E901882319F01092D8
+:1044A000E90115C081E08093EA0115C061E006C012
+:1044B0008091E9010E9441200AC06AE08091E901EF
+:1044C0000E94B72004C01092EA0180E004C081E09D
+:1044D00002C080E0ABCFCF910895E1E8F0E08081A9
+:1044E000886080838081816080838FB7F89493E0B7
+:1044F0009093890090ED909388008FBF0895EFE628
+:10450000F0E08081826080830895EFE6F0E08081B2
+:104510008D7F80830895EFE6F0E0908182E0892727
+:10452000808308951F920F920FB60F9211242F933C
+:104530003F934F935F936F937F938F939F93AF932B
+:10454000BF93EF93FF938091EB019091EC01019663
+:104550009093EC018093EB01811103C082E00E94F3
+:104560003709E091EC01E695E695F0E0E45AFA4F60
+:10457000E4918091EB018E1303C080E00E94370923
+:10458000FF91EF91BF91AF919F918F917F916F912B
+:104590005F914F913F912F910F900FBE0F901F9001
+:1045A000189504D06894B1118DC0089570D088F02A
+:1045B0009F5790F0B92F9927B751A0F0D1F0660F0F
+:1045C000771F881F991F1AF0BA95C9F712C0B1302A
+:1045D00081F077D0B1E0089574C0672F782F8827D5
+:1045E000B85F39F0B93FCCF3869577956795B39569
+:1045F000D9F73EF490958095709561957F4F8F4FD8
+:104600009F4F0895E89409C097FB3EF490958095DC
+:10461000709561957F4F8F4F9F4F9923A9F0F92F88
+:1046200096E9BB279395F695879577956795B79506
+:10463000F111F8CFFAF4BB0F11F460FF1BC06F5FEC
+:104640007F4F8F4F9F4F16C0882311F096E911C0FE
+:10465000772321F09EE8872F762F05C0662371F01F
+:1046600096E8862F70E060E02AF09A95660F771F33
+:10467000881FDAF7880F9695879597F9089557FD63
+:104680009058440F551F59F05F3F71F04795880FC0
+:1046900097FB991F61F09F3F79F087950895121657
+:1046A00013061406551FF2CF4695F1DF08C0161603
+:1046B00017061806991FF1CF8695710561050894B4
+:1046C0000895E894BB2766277727CB0197F90895CB
+:1046D0000BD078C069D028F06ED018F0952309F07F
+:1046E0005AC05FC01124EECFCADFA0F3959FD1F36B
+:1046F000950F50E0551F629FF001729FBB27F00D90
+:10470000B11D639FAA27F00DB11DAA1F649F6627E4
+:10471000B00DA11D661F829F2227B00DA11D621F33
+:10472000739FB00DA11D621F839FA00D611D221FED
+:10473000749F3327A00D611D231F849F600D211DD1
+:10474000822F762F6A2F11249F5750408AF0E1F074
+:1047500088234AF0EE0FFF1FBB1F661F771F881FBD
+:1047600091505040A9F79E3F510570F014C0AACF58
+:104770005F3FECF3983EDCF3869577956795B795A8
+:10478000F795E7959F5FC1F7FE2B880F911D9695D2
+:10479000879597F9089597F99F6780E870E060E042
+:1047A00008959FEF80EC089500240A9416161706CA
+:1047B00018060906089500240A9412161306140612
+:1047C00005060895092E0394000C11F4882352F075
+:1047D000BB0F40F4BF2B11F460FF04C06F5F7F4F2D
+:1047E0008F4F9F4F089597FB072E16F4009407D024
+:1047F00077FD09D00E940D2407FC05D03EF490956A
+:1048000081959F4F0895709561957F4F0895EE0FA4
+:10481000FF1F0590F491E02D0994AA1BBB1B51E1E9
+:1048200007C0AA1FBB1FA617B70710F0A61BB70B20
+:10483000881F991F5A95A9F780959095BC01CD01C5
+:104840000895F999FECF92BD81BDF89A992780B558
+:104850000895A8E1B0E042E050E00C944924262FEE
+:10486000F999FECF92BD81BDF89A019700B4021666
+:1048700039F01FBA20BD0FB6F894FA9AF99A0FBE14
+:1048800008950196272F0E9430240C942F24DC01D8
+:10489000CB01FC01F999FECF06C0F2BDE1BDF89A4B
+:1048A000319600B40D9241505040B8F70895F894F5
+:0248B000FFCF38
+:1048B20002203909C709A40970093C090101C7018D
+:1048C20028080A03140A3F4D36391D05D0049A04FC
+:1048D2006104F4030D0426043F04010203040506E7
+:0448E20007080900BA
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/dragon788/keymap.c b/keyboards/ergodox_ez/keymaps/dragon788/keymap.c new file mode 100644 index 000000000..3aec8c6cf --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/dragon788/keymap.c @@ -0,0 +1,229 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys +#define PLVR 3 // Plover layer + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | LGui | |Plover| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | L1 | | L2 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * |Esc/Ctrl| A | S | D | F | G |------| |------| H | J | K | L | ; | '"/Ctrl| + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | ~L1 | Grv | '" | Left |Rgt/L2| | Up/L2| Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | Home | | PgUp |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | End | | PgDn | | | + * |Backsp|Delete|------| |------| Enter |Space | + * | ace | | LAlt | |TabCtl| | | + * `--------------------' `----------------------' + */ +// 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), + 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), + KC_FN1, KC_GRV, KC_QUOT,KC_LEFT, LT(MDIA, KC_RGHT), + KC_APP, KC_HOME, + KC_END, + KC_BSPC,KC_DELT,KC_LALT, + // right hand + TG(3), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(2), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, CTL_T(KC_QUOT), + MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, + LT(MDIA, KC_UP), KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, + KC_PGUP, CTL_T(KC_ESC), + KC_PGDN, + CTL_T(KC_TAB),KC_ENT, KC_SPC + ), +/* 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 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | Calc | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// 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_CALC, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | Rclk | Lclk | | | | | | Lclk | Rclk | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft| MsUp |MsDown|MsRght|------| |------|MsLeft|MsDown| MsUp |MsRght| | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | Prev | |VolUp | | + * ,------|------|------| |------+------+------. + * | | | Play | | Mute |Brwser|Brwser| + * | Lclk | Rclk |------| |------|Fwd |Back | + * | | | Next | |VolDn | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +KEYMAP( + RESET, 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_MS_L, KC_MS_U, 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_MPRV, + KC_MPLY, + KC_BTN1, KC_BTN2, KC_MNXT, + // right hand + 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_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_VOLU, KC_TRNS, + KC_MUTE, + KC_VOLD, KC_WBAK, KC_WFWD +), + +/* Keymap 4: Steno for Plover from https://github.com/shayneholmes/tmk_keyboard/commit/11290f8489013018f778627db725160c745e75bd + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | 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 | ; | ' | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | c | v |------| |------| n | m | + * | | | | | | | | + * `--------------------' `--------------------' + */ + +[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_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_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_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 +), + +}; + +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_ez/keymaps/dvorak/compiled.hex b/keyboards/ergodox_ez/keymaps/dvorak/compiled.hex new file mode 100644 index 000000000..c757b276d --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/dvorak/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4
+:100010000C94BE020C94BE020C94BE020C94BE0260
+:100020000C94BE020C94BE020C94620D0C94340E1F
+:100030000C94BE020C94BE020C94BE020C94BE0240
+:100040000C94BE020C943E220C94BE020C94BE0290
+:100050000C94BE020C94D11B0C94BE020C94BE02F4
+:100060000C94BE020C94BE020C94BE020C94BE0210
+:100070000C94BE020C94BE020C94BE020C94BE0200
+:100080000C94BE020C94BE020C94BE020C94BE02F0
+:100090000C94BE020C94BE020C94BE020C94BE02E0
+:1000A0000C94BE020C94BE020C94BE02A10EC30EB0
+:1000B000B10FC30EB10F080F2B0FB10F800F930FAD
+:1000C0006212621291129112C712E71218141814D8
+:1000D000F2121814A213A2130914181418141214EB
+:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300
+:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0
+:10010000C113CE13D513DC13E6130000F0A12E00AB
+:100110004C002A00E100354100001E0034000400BC
+:10012000337134004D001F00360012001400E1044A
+:100130002A002000370008000D0050002C0021008C
+:10014000130018000E004F004A0022001C000C0093
+:100150001B0000006574500001540000007F000087
+:10016000E3004F000154000000770000E20023008C
+:100170000900070005000000297124000A000B0097
+:10018000100052004B002500060017001A00510015
+:10019000280026001500110019002F002B00270051
+:1001A0000F0016421D7130004E00310038002D0046
+:1001B000E500C10000000100010001000100010094
+:1001C00000003A001E0220022202010001003B0052
+:1001D0001F0221022302010001003C002F0226021F
+:1001E0002F00010001003D00300227023000010015
+:1001F00001003E003102350035020000010001001F
+:1002000001000000010000000100010001000000E9
+:100210000100000001003F005200510024020000D4
+:1002200001004000240021001E00010001004100E7
+:10023000250022001F003700010042002600230095
+:10024000200027000100430025022E0231002E006D
+:100250000100440045000100010001000000010010
+:100260000100010001000100000001000100010087
+:1002700001000100010001000100F2000100010085
+:1002800001000100F000F1000100F4000100010094
+:100290000100F3000100F500010001000100010070
+:1002A0000100000001000100010000000100000049
+:1002B0000100010001000000010000000100010038
+:1002C0000100010001000000010001000100010027
+:1002D0000100A9000100010001000100AC00AA001A
+:1002E000B600010001000100AB00A8000100010000
+:1002F0000100010001000100010001000100AE0049
+:1003000001000100000016034500720067006F0045
+:1003100044006F007800200045005A0000001603DA
+:100320004500720067006F0044006F0078002000F5
+:1003300045005A0000000403090409026D0004018D
+:1003400000A0FA09040000010301010009211101C4
+:100350000001223F000705810308000A090401008B
+:100360000103010200092111010001224D000705CE
+:10037000820308000A0904020001030000000921A9
+:10038000110100012236000705830308000A090451
+:1003900003000103000000092111010001223900BE
+:1003A000070584031000011201100100000008ED90
+:1003B000FE071301000102000105010906A1010564
+:1003C0000719E029E7150025019508750181020547
+:1003D000081901290595057501910295017503918B
+:1003E0000105071900297715002501957875018108
+:1003F00002C005010980A101850216010026B7008F
+:100400001A01002AB700751095018100C0050C097A
+:1004100001A1018503160100269C021A01002A9CF5
+:1004200002751095018100C005010902A1010901B1
+:10043000A10005091901290515002501950575017A
+:10044000810295017503810105010930093115818A
+:10045000257F95027508810609381581257F95014C
+:1004600075088106050C0A38021581257F950175EE
+:10047000088106C0C005010906A101050719E02988
+:10048000E715002501950875018102950175088120
+:100490000105081901290595057501910295017558
+:1004A0000391010507190029FF150025FF95067521
+:1004B000088100C0000000000000000000000001F2
+:1004C0000204060A0F17202C3A4A5D71879DB3C7B4
+:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF
+:1004E0003A2C20170F0A0604020100000000000049
+:1004F0000000000011241FBECFEFDAE0DEBFCDBF49
+:1005000004B603FE24C08091FB019091FC01A091F0
+:10051000FD01B091FE018730904BA740B04BB9F47C
+:100520001092FB011092FC011092FD011092FE014D
+:1005300014BE84B7877F84BF88E10FB6F894809398
+:100540006000109260000FBEE0E0FFE3099511E04B
+:10055000A0E0B1E0EAE0F8E402C005900D92A43317
+:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0
+:10057000B107E1F70E94A60A0C9403240C94000032
+:100580001092B9008AE08093B800089594EA90939D
+:10059000BC009091BC0097FFFCCF9091B900987F70
+:1005A000983021F0903111F081E008958093BB00E4
+:1005B00084E88093BC008091BC0087FFFCCF8091D1
+:1005C000B900887F883111F0803471F780E0089598
+:1005D00084E98093BC008091BC0084FDFCCF089529
+:1005E0008093BB0084E88093BC008091BC0087FFAF
+:1005F000FCCF9091B900987F81E0983209F480E0B7
+:10060000089584E88093BC008091BC0087FFFCCFF4
+:100610008091BB00089580910101811115C080E493
+:100620000E94C6028093010181110CC082E10E94E8
+:10063000F00280930101811105C08FEF0E94F0024A
+:10064000809301010E94E80284B1807F84B985B162
+:10065000807F85B98AB1837F8AB98BB1837F8BB95B
+:100660003E98469808950E94C604809301010E9416
+:100670000B0380B38C7080BB81B3836F81BBA5E318
+:10068000B1E0E3E4F1E08EE08E0F11921D928E1343
+:10069000FCCF0C94B004BF92CF92DF92EF92FF9206
+:1006A0000F931F93CF93DF9380910101882379F0FB
+:1006B000809134018F5F80933401811108C00E94C2
+:1006C000C60480930101811102C00E94580405E311
+:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407
+:1006E000E394F12CC730D10500F58091010181110F
+:1006F00064C080E40E94C60280930101811112C08F
+:1007000082E10E94F0028093010181110BC0C701B8
+:100710000C2E01C0880F0A94EAF780950E94F0021F
+:10072000809301010E94E80248C0CA30A1F028F479
+:10073000C83059F0C93061F005C0CC3089F070F094
+:10074000CD3089F0209A289810C0219A29980DC0A0
+:10075000229A2A980AC0239A2B9807C0529A01C05D
+:10076000539A5B9802C03E9A469890EA9A95F1F7A0
+:100770009FB1799902C082E001C080E091709D250F
+:10078000982B7C9902C084E001C080E0892B7D9980
+:1007900002C038E001C030E0832B7E9902C020E126
+:1007A00001C020E0822B9FB19095991F9927991F36
+:1007B0009295990F907E892B0FC080910101811134
+:1007C00049C080E40E94C60280930101882379F128
+:1007D000B12C0E94E8028B2DF8019081981719F036
+:1007E0008083C09200010E940B0321960F5F1F4F70
+:1007F000CE30D10509F076CF80910001882361F1D8
+:10080000815080930001882339F08FE99FE00197A0
+:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F
+:10082000CF01825F91919D938E13FCCF15C083E120
+:100830000E94F002809301018111CACF81E40E94DD
+:10084000C602809301018111C3CF0E940103B82E1B
+:10085000B094BFCF80E0C0CF0E94560481E0DF910A
+:10086000CF911F910F91FF90EF90DF90CF90BF90AD
+:100870000895E82FF0E0ED5BFE4F80810895089524
+:100880000F931F93CF93DF93C3E4D1E010E00C2FBD
+:10089000025F899190E00E94F71A180F0C13F9CFAC
+:1008A000812FDF91CF911F910F9108950C94260510
+:1008B00056985E9825982D9826982E9827982F98C8
+:1008C0008FEF90E0909389008093880090938B0045
+:1008D00080938A0090938D0080938C00259A2D9AA6
+:1008E0002FEF80E792E0215080409040E1F700C078
+:1008F0000000269A2E9A2FEF80E792E02150804048
+:100900009040E1F700C00000279A2F9A2FEF80E770
+:1009100092E0215080409040E1F700C0000025980F
+:100920002D982FEF80E792E0215080409040E1F732
+:1009300000C0000026982E982FEF80E792E021500B
+:1009400080409040E1F700C0000027982F9856980B
+:100950005E9825982D9826982E9827982F98089578
+:1009600089EA8093800089E08093810024982C9804
+:100970003F988AB18F748AB96E98479A8BB1806B11
+:100980008BB9769A0E9458040C94250580E28093D6
+:1009900001018091510181110EC00E94C00281E0CD
+:1009A000809351012FEF83ED90E3215080409040E0
+:1009B000E1F700C0000080E40E94C60280930101BC
+:1009C00081112EC00E94F00280930101811128C084
+:1009D0000E94F00280930101811122C08FE30E94E6
+:1009E000F0028093010181111BC00E94E80280E4A3
+:1009F0000E94C60280930101811112C08CE00E9406
+:100A0000F0028093010181110BC00E94F0028093DB
+:100A10000101811105C08FE30E94F0028093010162
+:100A20000E94E80280910101089561110BC0FC0150
+:100A30008281882321F085EE0E94061103C085EE95
+:100A40000E94CE1180E090E0089508956091BD016C
+:100A50007091BE018091BF019091C0010E94031B63
+:100A600056985E9825982D9826982E9827982F9816
+:100A7000813019F0823021F00895259A2D9A089539
+:100A8000269A2E9A089581E0089581E008950C94A5
+:100A9000450508950F931F93CF93DF938C01FC01BD
+:100AA000C081D181CE010E947C19BE010E94F30554
+:100AB000EC01B8010E944705882309F48DC0F801B4
+:100AC0008281882309F44AC080915D0181111FC091
+:100AD000C431F0E5DF0709F051C00E94490581E00B
+:100AE00080935D010E949B1B90935C0180935B014E
+:100AF0001092540110925601109255011092580113
+:100B00001092570110925A011092590165C08091BC
+:100B10005B0190915C010E94A71B883C910570F4D9
+:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB
+:100B3000D183C0838F5F809354014EC0C43880E559
+:100B4000D80721F0C538D04501F13AC0F8018281BB
+:100B5000882341F01092520182E01EC0C438E0E5C3
+:100B6000DE0759F580915201811106C086E20E948C
+:100B7000061186E20E94CE1182E01CC0C438F0E566
+:100B8000DF0741F3C538D045D9F4F80182818823C5
+:100B900031F01092530180E20E941D121DC080911D
+:100BA0005301811106C087E20E94061187E20E946C
+:100BB000CE1180E20E9424120FC0C538D04529F31F
+:100BC00081E08093520180935301C801DF91CF915E
+:100BD0001F910F910C94430580E0DF91CF911F91FD
+:100BE0000F910895089596E0799FF001112494E5FE
+:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F
+:100C0000E25FFE4F859194910895880F991FFC0132
+:100C1000E657F040859194910895880F991FFC0143
+:100C2000E65FFE4F8591949108950F931F93CF93A4
+:100C3000DF93EC01811520E3920750F5C11580E2A6
+:100C4000D80708F0C3C0CB3BD10590F4C83AD10512
+:100C500008F06AC0C53AD10508F05BC0C430D105C0
+:100C600008F0D0C1219709F0CAC101E010E00AC222
+:100C7000CF3FD10511F008F0C5C1C03FD10508F044
+:100C8000A2C0CE01805E9109089708F4BBC1B7C12C
+:100C9000C13090E5D90709F4A2C020F5C0318FE436
+:100CA000D80770F4C11590E4D90708F094C0C115B5
+:100CB00021E3D20708F0A3C1DD278E01106CE2C149
+:100CC000C115D04509F09BC10E9483148FEF94E3B6
+:100CD0002CE0815090402040E1F700C000000E94CD
+:100CE000F61BD0C1C11597E5D90758F4C03121E5ED
+:100CF000D20708F01CC1C43180E5D80708F475C0DC
+:100D00007EC1CE0190578115904108F078C1DF7007
+:100D100073C1C53AD10509F477C1C63AD10509F0C6
+:100D200076C102E810E4AEC1C83AD10509F472C137
+:100D3000C93AD10509F471C1CA3AD10509F470C1A3
+:100D4000CB3AD10509F46FC1CC3AD10509F46EC193
+:100D5000CD3AD10509F46DC1C03BD10509F46CC190
+:100D6000CE3AD10509F46BC1CF3AD10509F46AC175
+:100D7000C13BD10509F469C1C23BD10509F468C181
+:100D8000C33BD10509F467C1C43BD10509F466C171
+:100D9000C53BD10509F465C1C63BD10509F464C161
+:100DA000C73BD10509F463C1C83BD10509F462C151
+:100DB000C93BD10509F461C1CA3BD10509F460C141
+:100DC00000E014E45FC18E0110655CC1CE019F702C
+:100DD0000E940D0658C1DF708E01106A53C18091C8
+:100DE000DA0181608093DA014DC10E949B1D81115F
+:100DF00002C00E94811D0E94B81D90E09093FB01EB
+:100E00008093FA01C23080E5D80721F48091FA017D
+:100E1000816086C0C43090E5D90721F48091FA0141
+:100E200082607EC0C63020E5D20721F48091FA01AD
+:100E3000846076C0C83080E5D80719F48091FA0143
+:100E400027C0CA3090E5D90721F48091FA0180616A
+:100E500067C0CC3020E5D20721F48091FA0180628E
+:100E60005FC0CE3080E5D80721F48091FA0180641C
+:100E700057C0C03190E5D90721F48091FA0180680C
+:100E80004FC0C23120E5D20729F48091FA01846075
+:100E9000886046C0C33080E5D80721F48091FA010C
+:100EA0008E7F3EC0C53090E5D90721F48091FA01CC
+:100EB0008D7F36C0C73020E5D20721F48091FA013A
+:100EC0008B7F2EC0C93080E5D80719F48091FA01D4
+:100ED00026C0CB3090E5D90721F48091FA018F7EAE
+:100EE0001FC0CD3020E5D20721F48091FA018F7D1B
+:100EF00017C0CF3080E5D80721F48091FA018F7BAD
+:100F00000FC0C13190E5D90721F48091FA018F77A4
+:100F100007C0C331D04531F48091FA018B7F877FC0
+:100F20008093FA018091FA010E94BC1DABC08D2F05
+:100F300099278F70992781309105D9F49E012370EC
+:100F4000332702C0880F991F2A95E2F79C688E010B
+:100F500044E0000F111F4A95E1F700271370802B22
+:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA
+:100F70002FC08230910531F4DC2FCC278E01016F18
+:100F8000106A80C08330910569F4CE01837099277F
+:100F900001E010E002C0000F111F8A95E2F7C801BE
+:100FA0009C680FC084309105B9F4CE0183709927F5
+:100FB00001E010E002C0000F111F8A95E2F7C8019E
+:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029
+:100FD0008C010C2B1D2B56C08530910531F4DC2F74
+:100FE000CC278E01046F106A4DC0069709F04AC0E5
+:100FF000CF71DD27DC2FCC278E01106243C000E0CB
+:1010000010E040C08E013EC001E810E43BC003E8A0
+:1010100010E438C002EE14E435C009EE14E432C026
+:101020000AEE14E42FC005EB14E42CC006EB14E424
+:1010300029C007EB14E426C00CEC14E423C00DEC2B
+:1010400014E420C003E815E41DC00AE815E41AC042
+:1010500002E915E417C004E915E414C001E216E43E
+:1010600011C003E216E40EC004E216E40BC005E270
+:1010700016E408C006E216E405C007E216E402C062
+:101080000AE216E4C801DF91CF911F910F910895F4
+:1010900096E0799FF001112494E5899FE00DF11D00
+:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149
+:1010B0009491803E9105E0F4803C910558F5813390
+:1010C000910509F46FC048F48932910509F463C0B1
+:1010D0008A32910509F46DC072C089339105E9F037
+:1010E00082389105D1F08533910509F44DC067C070
+:1010F000833E910581F138F4803E9105B9F0823E3E
+:101100009105D9F05CC0863E910561F1873E91055D
+:10111000A1F155C00E94050608952091FA0120FD15
+:1011200002C021FF4CC080EE90E049C08091FA01DE
+:1011300080FFF9CF89E390E042C08091FA0182FFFD
+:101140000EC08091FA0184FF03C080E090E037C0B8
+:1011500083EE90E034C08091FA0182FFF2CF82EEFC
+:1011600090E02DC08091FA0183FF0BC08091FA01BD
+:1011700084FDEBCF87EE90E022C08091FA0183FFDF
+:10118000F5CF86EE90E01BC08091FA0185FF07C085
+:1011900089E290E014C08091FA0185FFF9CF85E3E0
+:1011A00090E00DC08091FA0186FF07C08AE290E0CE
+:1011B00006C08091FA0186FFF9CF81E390E00E949A
+:1011C0001506089508950C94E20880916E01089523
+:1011D000CF93DF9300D01F92CDB7DEB79C018091F3
+:1011E000F101843019F593E099833B832A8390932E
+:1011F000E9008FEF9091E800815095FD06C095EDD4
+:101200009A95F1F700008111F5CF8091E80085FFF4
+:101210000DC040E050E063E070E0CE0101960E9416
+:10122000520B8091E8008E778093E8000F900F902A
+:101230000F90DF91CF910895CF93DF9300D01F924D
+:10124000CDB7DEB72091F101243021F522E02983CA
+:101250009B838A8383E08093E9008FEF9091E8007D
+:10126000815095FD06C095ED9A95F1F7000081112A
+:10127000F5CF8091E80085FF0DC040E050E063E0CD
+:1012800070E0CE0101960E94520B8091E8008E77AB
+:101290008093E8000F900F900F90DF91CF91089509
+:1012A0002091F1012430F1F422E02093E9002FEFA6
+:1012B0003091E800215035FD06C035ED3A95F1F743
+:1012C00000002111F5CF2091E80025FF0BC040E080
+:1012D00050E065E070E00E94520B8091E8008E774C
+:1012E0008093E8000895CF93DF93EC019091F10192
+:1012F000943009F046C080910C018823D9F0809188
+:101300000D018823B9F09093E9008FEF9091E800E8
+:10131000815095FD06C095E19A95F1F70000811185
+:10132000F5CF8091E80085FF2CC040E050E060E1FF
+:1013300070E017C081E08093E9008FEF9091E800A2
+:10134000815095FD06C095ED9A95F1F70000811149
+:10135000F5CF8091E80085FF14C040E050E068E0E0
+:1013600070E0CE010E94520B8091E8008E7780934E
+:10137000E80080E1FE01AEE5B1E001900D928A95B2
+:10138000E1F7DF91CF9108958091F001811109C0BB
+:101390000E94E70C0E94440D8091E20084608093DB
+:1013A000E20008951092F001089508950C942B2204
+:1013B0000E948C1B0E9431220E94EA0F0C94E308C9
+:1013C00042E061EC81E00E94610C42E061EC82E06D
+:1013D0000E94610C42E061EC83E00E94610C42E1FA
+:1013E00061EC84E00C94610C8091F301833009F48A
+:1013F00055C030F4813071F0823009F48EC0089508
+:101400008A3009F47AC08B3009F460C0893009F061
+:101410009CC020C08091F201813A09F096C0809171
+:10142000E800877F8093E8008091F6019091F701B2
+:10143000892B21F460E18EE591E003C060E080E05B
+:1014400090E070E00E949D0B8091E8008B77809384
+:10145000E80008958091F201813209F076C0809110
+:10146000F6019091F701009719F0039709F06DC00C
+:101470008091E800877F8093E8008091E80082FDFA
+:1014800005C08091F1018111F8CF5FC08091F1001A
+:1014900080936E018091E8008B7753C08091F201B8
+:1014A000813A09F052C08091F6019091F701892BA1
+:1014B00009F04BC08091E800877F8093E80080911D
+:1014C000E80080FFFCCF80910C0136C08091F201D2
+:1014D0008132D9F58091F6019091F701892BA9F518
+:1014E0008091E800877F8093E8000E94960C8091AD
+:1014F000F40180930C010C9483148091F2018132E9
+:1015000021F58091E800877F8093E8000E94960C87
+:101510008091F50180936F0108958091F201813AE5
+:10152000A1F48091E800877F8093E8008091E80033
+:1015300080FFFCCF80916F018093F1008091E800E3
+:101540008E778093E8000C94960C089584B7877F7B
+:1015500084BF88E10FB6F894809360001092600019
+:101560000FBE90E080E80FB6F894809361009093EE
+:1015700061000FBE0E9439100E94E70C0E94440DCA
+:101580008091E20084608093E20078940E94CA0F08
+:101590000E943B1082E091E00E94E50F0E94192218
+:1015A0008091F101853069F40E94531B8091EF0115
+:1015B0008823B1F30E947E1B882391F30E943C0B89
+:1015C000EFCF0E944110ECCF292F33272330310574
+:1015D000C9F064F42130310581F02230310509F081
+:1015E00043C08DE690E02AE333E042C0213231056A
+:1015F000F1F02232310541F137C082E190E027EA73
+:1016000033E036C099278130910541F08230910551
+:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4
+:1016200002C0E6E0F3E0849190E09F0121C06430C5
+:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5
+:10164000318189E090E014C0643070F470E0FB01F7
+:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47
+:10166000FE4F808190E004C080E090E020E030E018
+:10167000FA0131832083089580E189BD82E189BD2B
+:1016800009B400FEFDCF8091D8008F7D8093D800F3
+:101690008091E00082608093E0008091E00081FD15
+:1016A000FCCF0895CF92DF92EF92FF920F931F939A
+:1016B000CF93DF93EC018B016A010E94B50C81117D
+:1016C00033C0C114D10439F0F60180819181081B27
+:1016D000190BC80FD91FE12CF12C0115110519F1B7
+:1016E0008091E80085FD16C08091E8008E77809398
+:1016F000E800C114D10449F0F60180819181E80E1F
+:10170000F91EF182E08285E00FC00E94B50C8823AB
+:1017100021F30AC089918093F10001501109FFEF74
+:10172000EF1AFF0ADACF80E0DF91CF911F910F917E
+:10173000FF90EF90DF90CF9008952091F8013091C5
+:10174000F9012617370748F06115710539F4209122
+:10175000E8002E772093E80001C0B90140E0611550
+:101760007105A9F12091F101222309F443C025302C
+:1017700009F442C02091E80023FD40C02091E80018
+:1017800022FD32C02091E80020FFE9CF4091F30014
+:101790002091F20030E0342BFC01CF01611571057E
+:1017A00059F02830310540F481918093F100615067
+:1017B00071092F5F3F4FF1CF41E02830310509F02B
+:1017C00040E02091E8002E772093E800C8CF411137
+:1017D000C9CF0AC08091F101882361F0853061F0A2
+:1017E0008091E80083FD0AC08091E80082FFF2CF7B
+:1017F00080E0089582E0089583E0089581E00895EF
+:101800002091F8013091F9012617370748F061154A
+:10181000710539F42091E8002E772093E80001C08B
+:10182000B901FC0120E06115710591F18091F10190
+:10183000882309F440C0853009F43FC08091E80056
+:1018400083FD3DC08091E80082FD2FC08091E800BB
+:1018500080FFE9CF2091F3008091F20090E0922B7D
+:101860006115710559F08830910540F42491209359
+:10187000F1003196615071090196F2CF21E008978D
+:1018800009F020E08091E8008E778093E800CBCFCC
+:101890002111CCCF0AC08091F101882361F08530FD
+:1018A00061F08091E80083FD0AC08091E80082FF2A
+:1018B000F2CF80E0089582E0089583E0089581E00A
+:1018C0000895982F973058F59093E900981739F0BC
+:1018D0007091EC002091ED005091F00003C0242F96
+:1018E000762F50E021FF19C03091EB003E7F3093FE
+:1018F000EB003091ED003D7F3093ED003091EB0037
+:1019000031603093EB007093EC002093ED00509326
+:10191000F0002091EE0027FF07C09F5FD3CF8F70AC
+:101920008093E90081E0089580E008958091F201BC
+:1019300087FF11C08091E80082FD05C08091F10110
+:101940008111F8CF11C08091E8008B770BC0809196
+:10195000F101882349F08091E80080FFF8CF809161
+:10196000E8008E778093E80008952091E40030919C
+:10197000E50095E64091EC00842F817040FF22C085
+:101980008091E80080FD1CC08091F101882391F0D6
+:10199000853091F08091EB0085FD10C04091E4000E
+:1019A0005091E5004217530729F39A01915011F71E
+:1019B00084E0089582E0089583E0089581E0089529
+:1019C00080E008954091E80042FFDECF08950E9434
+:1019D000550D0E945D0DE0EEF0E080818160808316
+:1019E000E8EDF0E080818F77808319BCA7EDB0E04F
+:1019F0008C918E7F8C9380818F7E80831092F001FA
+:101A000008950F931F93CF93DF930E94550D0E946B
+:101A10005D0DC8EDD0E088818F77888388818068EC
+:101A2000888388818F7D888319BC1092F101109280
+:101A3000ED011092EF011092EE0100EE10E0F801BE
+:101A400080818B7F808388818160888342E060E031
+:101A500080E00E94610CE1EEF0E080818E7F808367
+:101A6000E2EEF0E080818160808380818860808305
+:101A7000F80180818E7F8083888180618883DF91F7
+:101A8000CF911F910F910895E8EDF0E080818F7E56
+:101A90008083E7EDF0E080818160808384E082BF15
+:101AA00081E08093F0010C94010DE8EDF0E080817D
+:101AB0008E7F80831092E20008951092DA001092D7
+:101AC000E10008951F920F920FB60F9211242F93E9
+:101AD0003F934F935F936F937F938F939F93AF93B6
+:101AE000BF93EF93FF938091E10082FF0BC0809141
+:101AF000E20082FF07C08091E1008B7F8093E100CC
+:101B00000E94C90F8091DA0080FF1FC08091D80029
+:101B100080FF1BC08091DA008E7F8093DA00809175
+:101B2000D90080FF0DC080E189BD82E189BD09B483
+:101B300000FEFDCF81E08093F1010E94C40905C041
+:101B400019BC1092F1010E94D2098091E10080FF3E
+:101B500019C08091E20080FF15C08091E2008E7F65
+:101B60008093E2008091E20080618093E2008091A6
+:101B7000D80080628093D80019BC85E08093F10181
+:101B80000E94D6098091E10084FF30C08091E2007C
+:101B900084FF2CC080E189BD82E189BD09B400FECB
+:101BA000FDCF8091D8008F7D8093D8008091E10097
+:101BB0008F7E8093E1008091E2008F7E8093E2002F
+:101BC0008091E20081608093E2008091ED018823A2
+:101BD00011F084E007C08091E30087FD02C081E03E
+:101BE00001C083E08093F1010E94D8098091E10057
+:101BF00083FF29C08091E20083FF25C08091E1002E
+:101C0000877F8093E10082E08093F1011092ED01E3
+:101C10008091E1008E7F8093E1008091E2008E7FD1
+:101C20008093E2008091E20080618093E20042E0D4
+:101C300060E080E00E94610C8091F00088608093F9
+:101C4000F0000E94D509FF91EF91BF91AF919F9154
+:101C50008F917F916F915F914F913F912F910F9055
+:101C60000FBE0F901F9018951F920F920FB60F92F4
+:101C700011242F933F934F935F936F937F938F9391
+:101C80009F93AF93BF93CF93DF93EF93FF93C09155
+:101C9000E900CF708091EC00D82FD17080FDD0E8A2
+:101CA0001092E9008091F000877F8093F000789493
+:101CB0000E94780E1092E9008091F0008860809375
+:101CC000F000CD2BCF70C093E900FF91EF91DF9131
+:101CD000CF91BF91AF919F918F917F916F915F91C4
+:101CE0004F913F912F910F900FBE0F901F9018951D
+:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3
+:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115
+:101D1000F10091938E13FBCF0E94F4098091E800AB
+:101D200083FF1FC18091F2019091F301492F50E090
+:101D30004A30510508F015C1FA01EA5AFF4F0C94D8
+:101D4000B323803881F0823809F00BC18091F6010D
+:101D50008F708093E9008091EB0085FB882780F9E4
+:101D60001092E90006C08091EE019091EF0191116F
+:101D700082609091E800977F9093E8008093F10053
+:101D80001092F100C8C0282F2D7F09F0EAC08823E7
+:101D900019F0823061F0E5C08091F401813009F0E2
+:101DA000E0C0933009F080E08093EF012BC0809178
+:101DB000F401811127C08091F6018F7009F4D1C020
+:101DC0008093E9002091EB0020FF1CC0933021F4A8
+:101DD0008091EB00806214C09091EB009061909331
+:101DE000EB0021E030E0A90102C0440F551F8A95A5
+:101DF000E2F74093EA001092EA008091EB008860DD
+:101E00008093EB001092E9008091E800877F86C004
+:101E10008111A7C01091F4011F778091E3008078B1
+:101E2000812B8093E3008091E800877F8093E80016
+:101E30000E94960C8091E80080FFFCCF8091E30027
+:101E400080688093E300111102C082E001C083E04A
+:101E50008093F10186C08058823008F082C0809162
+:101E6000F4019091F5018C3D53E0950779F583E0FD
+:101E70008A838AE289834FB7F894DE01139620E0C3
+:101E80003EE051E2E32FF0E050935700E49120FF51
+:101E900003C0E295EF703F5FEF708E2F90E0EA3065
+:101EA00010F0C79601C0C0968D939D932F5F24318B
+:101EB00049F74FBF8091E800877F8093E8006AE28E
+:101EC00070E0CE0101960E949D0B14C0AE014F5FE1
+:101ED0005F4F6091F6010E94E40ABC01009709F48B
+:101EE00040C09091E800977F9093E80089819A81A3
+:101EF0000E94000C8091E8008B778093E80031C04D
+:101F0000803879F58091E800877F8093E8008091A0
+:101F1000ED018093F1008091E8008E778093E800D6
+:101F20000E94960C1EC081111CC09091F401923049
+:101F3000C0F48091E800877F8093E8009093ED01E2
+:101F40000E94960C8091ED01811106C08091E30002
+:101F500087FD02C081E001C084E08093F1010E940E
+:101F6000E0098091E80083FF0AC08091E800877F44
+:101F70008093E8008091EB0080628093EB00AA964A
+:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A
+:101F900008950895CF938091F1018823A1F0C09115
+:101FA000E900CF709091EC00892F817090FD80E85E
+:101FB000C82B1092E9008091E80083FD0E94780E02
+:101FC000CF70C093E900CF910895909375018093ED
+:101FD00074010895E0917401F0917501309721F03A
+:101FE0000190F081E02D099480E00895E091740162
+:101FF000F0917501309721F00280F381E02D099472
+:102000000895E0917401F0917501309721F00480FA
+:10201000F581E02D099408952091720130917301AA
+:102020008217930771F09093730180937201E0918E
+:102030007401F0917501309721F00680F781E02D51
+:1020400009940895209170013091710182179307CE
+:1020500071F09093710180937001E0917401F0919F
+:102060007501309721F00084F185E02D09940895E1
+:1020700008950C9438100E94921B0E9433030C9414
+:10208000541C9F92AF92BF92CF92DF92EF92FF9239
+:102090000F931F93CF93DF9300D000D000D0CDB724
+:1020A000DEB70E944B030DE010E0AA24A394B12CEC
+:1020B000902E802F0E943904980129583E4F6901C3
+:1020C000F901F080F826A1F40150110988F78FEF8B
+:1020D00089838A831B820E949B1B8160782F9D834A
+:1020E0008C8349815A816B818D810E94D8102FC0C9
+:1020F0009091DA0191FF04C08E830E943F048E818B
+:1021000025E030E0A501022E01C0440F0A94EAF751
+:10211000E42E4F21C1F029839A828E2191E009F4A7
+:1021200090E09B830E949B1B8160782F9D838C8312
+:1021300049815A816B818D810E94D810F60180817E
+:10214000E826E08204C021503109E0F6BDCF0E94AC
+:102150003B1F109176010E94EA0F1817B9F00E94F8
+:10216000EA0F8093760126960FB6F894DEBF0FBE75
+:10217000CDBFDF91CF911F910F91FF90EF90DF9036
+:10218000CF90BF90AF909F900C94E30826960FB627
+:10219000F894DEBF0FBECDBFDF91CF911F910F919D
+:1021A000FF90EF90DF90CF90BF90AF909F900895F9
+:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82
+:1021C0000FBECDBF4F83588769877A878B87DE0123
+:1021D000119686E0FD0111928A95E9F785E0FE01EE
+:1021E000379601900D928A95E1F749815A816B816A
+:1021F0007C818D819E810E9421172B960FB6F894C9
+:10220000DEBF0FBECDBFDF91CF910895CF9388235E
+:1022100009F4C2C0C82F823859F40E94EA0F81FD28
+:10222000BBC089E30E94FB190E94C81A89E30CC055
+:10223000833879F40E94EA0F80FDAEC083E50E94E6
+:10224000FB190E94C81A83E50E943D1ACF910C9495
+:10225000C81A843859F40E94EA0F82FD9DC087E4B1
+:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6
+:10227000813A48F48C2F0E947E2181118DC08C2FD1
+:102280000E94FB19E3CF80E28C0F883048F4C770BE
+:1022900081E001C0880FCA95EAF70E94811AD6CF63
+:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB
+:1022B00083E890E005C081E890E002C082E890E009
+:1022C000CF910C940C1088E58C0F833108F064C01A
+:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118
+:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186
+:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106
+:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173
+:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB
+:1023200038C082EE90E035C089EE90E032C08AEE8F
+:1023300090E02FC085EB90E02CC086EB90E029C0A8
+:1023400087EB90E026C08CEC90E023C08DEC90E011
+:1023500020C083E891E01DC08AE891E01AC082E9BC
+:1023600091E017C084E991E014C081E292E011C0CD
+:1023700083E292E00EC084E292E00BC085E292E03C
+:1023800008C086E292E005C087E292E002C08AE2DD
+:1023900092E0CF910C942210CF910895882309F4F4
+:1023A0004BC0823859F40E94EA0F81FF45C089E38F
+:1023B0000E94FB190E94C81A89E30CC0833871F48B
+:1023C0000E94EA0F80FF38C083E50E94FB190E943B
+:1023D000C81A83E50E943D1A0C94C81A843859F42F
+:1023E0000E94EA0F82FF28C087E40E94FB190E9426
+:1023F000C81A87E4EFCF9CEF980F913A58F390E218
+:10240000980F983050F4877091E001C0990F8A9529
+:10241000EAF7892F0E94871ADFCF9BE5980F933048
+:1024200020F480E090E00C940C10885A833120F462
+:1024300080E090E00C9422100895882321F00E94FF
+:10244000811A0C94C81A0895882321F00E94871AD3
+:102450000C94C81A08957F928F929F92AF92BF9268
+:10246000CF92DF92EF92FF920F931F93CF93DF9360
+:102470001F92CDB7DEB77C01C62E772EFC010581F9
+:1024800002950F70128111110E949E1A0E94F41978
+:10249000882379F0112369F080E28C0D883048F0B0
+:1024A00082E00E94DD190E94F41991E0D82ED9260D
+:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C
+:1024C0000C94B323872D807F072D0F70882311F084
+:1024D0000295007F112389F0002309F490C180E266
+:1024E0008C0D883020F4802F0E94811A03C0802F29
+:1024F0000E94911A0E94C81A82C18C2D0E94CE118E
+:10250000002309F495C180E28C0D883020F4802FDF
+:102510000E94871A03C0802F0E94971A0E94C81A2F
+:1025200087C1972D907F872D8F70903211F0829503
+:10253000807FCC2021F0F1E0CF16B1F01EC0112336
+:1025400049F0002309F414C1013009F011C10E94BF
+:10255000B11A6EC1002319F0013009F469C18983F1
+:102560000E94B41A89810AC1112321F0023008F0B7
+:102570005FC1FEC001115CC101C1112321F0002324
+:1025800009F4F6C03CC1002309F4F8C03EC1872D10
+:1025900086958695837090E0009719F0019761F019
+:1025A00047C1112321F08C2D972D937002C080E03C
+:1025B00090E00E940C103CC1112321F08C2D972D2E
+:1025C000937002C080E090E00E94221031C18C2DF7
+:1025D000112319F00E94431E02C00E94AB1E0E94EC
+:1025E000301F26C1872D837009F052C0111120C100
+:1025F0008C2D829586958770880F880F9C2D9F70F3
+:10260000892E912CA12CB12C082E04C0880C991C69
+:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041
+:1026200020E030E0B901A80104C0440F551F661F27
+:10263000771F8A95D2F7CB01BA0160957095809586
+:10264000909503C060E070E0CB01272D269526957C
+:10265000237030E02230310569F02330310589F0F4
+:10266000682979298A299B292130310571F00E9436
+:102670006918DEC0682979298A299B290E94851852
+:10268000D7C00E946918C501B4010E944D18D0C07E
+:10269000112319F0872D817001C08695882309F4D4
+:1026A000C7C08C2D829586958770880F880F9C2DCA
+:1026B0009F70892E912CA12CB12C082E04C0880C5F
+:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC
+:1026D00010E020E030E0B901A80104C0440F551F0C
+:1026E000661F771F8A95D2F7CB01BA016095709566
+:1026F0008095909503C060E070E0CB01272D269572
+:1027000026952370422F50E04230510569F0433046
+:10271000510589F0682979298A299B294130510579
+:1027200071F00E94431984C0682979298A299B295C
+:102730000E945F197DC00E944319C501B4010E9427
+:10274000271976C08C2D90E0FC01E05EF109E5319F
+:10275000F10508F050C0E059FF4F0C94B3230C2D45
+:102760000F70872D8F71112331F00E94C018802FB8
+:102770000E941D125DC00E94E118802F0E94241249
+:1027800057C0112339F0011153C0872D8F710E945A
+:1027900006194EC0023008F04BC0F7CF112339F0B4
+:1027A000872D8F710E94C01843C01123C9F3872D54
+:1027B0008F710E94E1183CC0112329F0872D8F7181
+:1027C0000E94AB1835C00E94A11832C0112351F0ED
+:1027D000172D1F71812F0E94C01863E0812F0E9466
+:1027E000D41926C081E00E94DD19023008F182E090
+:1027F0000E94DD191DC0112331F0002389F28C2DB8
+:102800000E94061115C0002391F28C2D0E94CE115A
+:102810000FC0472D4F706C2DC7010E9415050E94F7
+:10282000C51706C0472D4F706C2DC7010E94F205D9
+:10283000DD20F9F00E94D01980FD1BC0F701128243
+:102840000E94CA190E94C018C7010E9448140E9421
+:10285000CA190F90DF91CF911F910F91FF90EF90C8
+:10286000DF90CF90BF90AF909F908F907F900C940F
+:10287000E1180F90DF91CF911F910F91FF90EF9092
+:10288000DF90CF90BF90AF909F908F907F900895F2
+:102890000F931F93CF93DF93EC01888199812B8154
+:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B
+:1028B0000E944A05882371F0688179818A810E948B
+:1028C000C6198C010E947B190E944218B801CE01E2
+:1028D0000E942B12DF91CF911F910F9108950E94BA
+:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471
+:1028F000E11F0E94301F80E090E00E940C1080E0F9
+:1029000090E00C9422100E948E1A0C946F140E9476
+:10291000BB19292F22952F7030E02C3031054CF453
+:102920002A3031056CF42250310922303105A8F4E7
+:1029300007C02C30310569F02F30310551F00DC042
+:10294000803F69F018F4803E40F409C0843F29F4C8
+:1029500006C093FB882780F9089580E0089581E000
+:102960000895CF93DF9300D000D01F92CDB7DEB78C
+:102970000F900F900F900F900F90DF91CF910895CF
+:10298000CF93DF9300D000D000D0CDB7DEB726962E
+:102990000FB6F894DEBF0FBECDBFDF91CF91089583
+:1029A0001F93CF93DF93C091850116E0809186013C
+:1029B000C81799F0D0E01C9FF0011D9FF00D112465
+:1029C000E957FE4F408151816281738184819581F5
+:1029D0000E94C0142196C770E9CFDF91CF911F915B
+:1029E00008954091B7015091B8016091B90170917B
+:1029F000BA018091BB019091BC010C94C0148091EC
+:102A0000BC0182958F7009F054C08091B901882370
+:102A100009F44FC080918501A09186016091B701B2
+:102A20007091B8014091BA015091BB01B6E08A178C
+:102A300009F43FC090E041155105C1F17F3F11F409
+:102A40006F3FA1F1B89FF001B99FF00D1124E95734
+:102A5000FE4F218172132AC02081621327C0228178
+:102A6000211124C0238134812417350710F421500B
+:102A70003109241B350B283C3105C0F42091BC01E1
+:102A80002F7020612093BC0126E0289FF001299F30
+:102A9000F00D1124E457FE4F80818F708061808398
+:102AA00087EB91E00E9448140C94D0140196877033
+:102AB000BECF0895CF92DF92EF92FF920F931F93B4
+:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32
+:102AD0000FBECDBF8C0185E0F801DE011D9601908F
+:102AE0000D928A95E1F7D8014C9111965C9111975E
+:102AF00012966C9112971396CD90DC9014973091AA
+:102B0000B7017091B8018091BA019091BB01009713
+:102B100009F46BC17F3F19F43F3F09F466C1E090AF
+:102B2000B901EE2009F4C0C02091BC01C816D90635
+:102B300028F0F601E81BF90BCF0104C080959095B1
+:102B40008C0D9D1DFF24F394883C910578F0F12CA9
+:102B5000207F09F0C6C07C2DD98AC88A89890E9445
+:102B6000B11487EB91E00E944814B1C0822F807F9E
+:102B700009F046C0751314C0341312C0611110C09F
+:102B80002F7020612093BC010E94F11487EB91E02B
+:102B90000E9448148091BC01D80115968C932EC0D8
+:102BA000CD2819F15F3F11F44F3FF9F0F62E611176
+:102BB0001CC0809185012091860136E0821709F4BE
+:102BC0005AC090E0389FF001399FF00D1124E95769
+:102BD000FE4F7181571306C07081471303C0728185
+:102BE000711103C001968770E9CFF62E662309F4B0
+:102BF00018C18091BC0181608093BC01F12C11C18E
+:102C0000751308C0341306C0611104C08091BC0163
+:102C1000D801C3C04D875E878D859E856A8B0E94D3
+:102C200087146A898823E1F16623D1F12091BC01E0
+:102C3000822F82958F7090E0029774F08091B70197
+:102C40009091B80198878F831986DB86CA862C8776
+:102C5000CE0107960E94481486E0F801A7EBB1E088
+:102C600001900D928A95E1F70E94FF140E94F114E1
+:102C7000FF24F394D6C04D875E878D859E850E9484
+:102C8000BB19292F22952F7030E0223031050CF02E
+:102C9000BCC09F7009F0B6C0805E883008F4C1C027
+:102CA000C8010E944814E4CFC816D90608F453C0DE
+:102CB000F601E81BF90BCF01883C910508F450C0E0
+:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E
+:102CD000F1E086E0DF011D928A95E9F70E94F11488
+:102CE000A0C0751314C0341312C0611110C08091BC
+:102CF000BC01F8018583C8010E94481486E0E7EB17
+:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C
+:102D10005E878D859E856A8B0E9487146A898823C9
+:102D200009F4BECF662309F4BBCF2091BC01822FEA
+:102D300082958F7090E002970CF48ECF8091B7014E
+:102D40009091B8019A8389831B82DD82CC822E8385
+:102D5000CE0101967FCF809590958C0D9D1DACCFB7
+:102D6000F62E662309F49CCF75132EC034132CC0A5
+:102D70002091BC0120FD1FC0822F82958F70D9F059
+:102D8000D80115962C9315978F3049F08F5F982FA7
+:102D90009295907F822F8F70892B15968C93C80106
+:102DA0000E94481486E0F801A7EBB1E001900D9273
+:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7
+:102DC0000D928A95E1F72DC04D875E878D859E8592
+:102DD0000E948714811140CF8091BC018160809353
+:102DE000BC01C8010E9448141CC0662309F458CFD6
+:102DF0004D875E878D859E850E948714882309F400
+:102E00004FCF2ACF811148CF0CC0243031050CF0B0
+:102E100047CF9F7009F440CFF8019581907F09F06A
+:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D
+:102E3000DF91CF911F910F91FF90EF90DF90CF9096
+:102E400008951F93CF93DF93CDB7DEB72C970FB6BE
+:102E5000F894DEBF0FBECDBF4F83588769877A874E
+:102E60008B879C87CE0107960E945A15882369F0AC
+:102E70008F8198852A853B85232BF1F19F3F09F0AF
+:102E800063C08F3F09F060C037C086E0FE0137960F
+:102E9000DE01119601900D928A95E1F76F81788598
+:102EA000EA85FB85309741F17F3F11F46F3F21F1B7
+:102EB0002091860130E0C9010196877099274091E1
+:102EC000850150E08417950709F447C069837A8328
+:102ED000FD83EC8396E0929FD001939FB00D112467
+:102EE000A957BE4FFE01319601900D929A95E1F7D8
+:102EF000809386010E94D01416E080918501909104
+:102F000086018917C1F1189FC001112489579E4F6E
+:102F10000E945A15882379F1E09185011E9FF001E6
+:102F20001124E957FE4F4081518162817381848170
+:102F300095810E94C0148091850190E00196877070
+:102F4000992780938501D9CF4F81588569857A85E6
+:102F50008B859C850E94C014CFCF0E948314109251
+:102F6000860110928501E7EBF1E086E0DF011D921A
+:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45
+:102F8000CDBFDF91CF911F910895EF92FF920F93E4
+:102F90001F93CF93DF938C01009709F46CC0F12C41
+:102FA000EE24E394E8012196F8018491843740F4FB
+:102FB000843008F051C0813081F0823019F15BC05B
+:102FC000853709F444C0A8F19CE7980F903708F0C2
+:102FD00052C08F770E94CE1141C00E5F1F4FFE017D
+:102FE000C49180E28C0F883048F4C7708E2D01C0E8
+:102FF000880FCA95EAF70E94A11A14C08C2F0E946C
+:1030000006112DC00E5F1F4FFE01C49180E28C0F90
+:10301000883058F4C7708E2D01C0880FCA95EAF722
+:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3
+:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3
+:103040009FE00197F1F700C00000C150F6CF0E5F7E
+:103050001F4FFE01F49003C00E9406118E018F2DB8
+:10306000882309F49FCFEFE9FFE03197F1F700C023
+:1030700000008150F5CFDF91CF911F910F91FF900C
+:10308000EF90089508956093C1017093C2018093F9
+:10309000C3019093C4010C946F140F931F9300917C
+:1030A000C1011091C2012091C3013091C401DC0122
+:1030B000CB01802B912BA22BB32B8093C10190933A
+:1030C000C201A093C301B093C4011F910F910C944E
+:1030D0006F140F931F930091C1011091C2012091B1
+:1030E000C3013091C401DC01CB0180239123A223D1
+:1030F000B3238093C1019093C201A093C301B09305
+:10310000C4011F910F910C946F140F931F930091A2
+:10311000C1011091C2012091C3013091C401DC01B1
+:10312000CB0180279127A227B3278093C1019093D9
+:10313000C201A093C301B093C4011F910F910C94DD
+:103140006F141092BD011092BE011092BF01109237
+:10315000C0010C946F1441E050E060E070E004C0E6
+:10316000440F551F661F771F8A95D2F74093BD0104
+:103170005093BE016093BF017093C0010C946F1413
+:1031800041E050E060E070E004C0440F551F661F4E
+:10319000771F8A95D2F78091BD019091BE01A091D1
+:1031A000BF01B091C001482B592B6A2B7B2B409358
+:1031B000BD015093BE016093BF017093C0010C9498
+:1031C0006F1441E050E060E070E004C0440F551F10
+:1031D000661F771F8A95D2F7409550956095709538
+:1031E0008091BD019091BE01A091BF01B091C0013D
+:1031F000482359236A237B234093BD015093BE018A
+:103200006093BF017093C0010C946F1441E050E0D3
+:1032100060E070E004C0440F551F661F771F8A9559
+:10322000D2F78091BD019091BE01A091BF01B091F4
+:10323000C001482759276A277B274093BD01509337
+:10324000BE016093BF017093C0010C946F140F9383
+:103250001F930091BD011091BE012091BF013091DB
+:10326000C001DC01CB01802B912BA22BB32B8093CF
+:10327000BD019093BE01A093BF01B093C0011F9107
+:103280000F910C946F140F931F930091BD01109137
+:10329000BE012091BF013091C001DC01CB01802330
+:1032A0009123A223B3238093BD019093BE01A093E9
+:1032B000BF01B093C0011F910F910C946F140F9335
+:1032C0001F930091BD011091BE012091BF0130916B
+:1032D000C001DC01CB0180279127A227B32780936F
+:1032E000BD019093BE01A093BF01B093C0011F9197
+:1032F0000F910C946F140895CF92DF92EF92FF928A
+:103300000F931F93CF93DF938C01C090C101D09096
+:10331000C201E090C301F090C4018091BD01909181
+:10332000BE01A091BF01B091C001C82AD92AEA2AE2
+:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520
+:10334000A795979587950A94D2F780FF06C0B80194
+:103350008C2F0E944808019721F4219760F780E0A4
+:1033600001C08C2FDF91CF911F910F91FF90EF90B3
+:10337000DF90CF900895CF93DF93EC010E947C19EA
+:10338000BE010E944808DF91CF910895CB010E94B1
+:10339000BB1908958091C5018595859585950895FA
+:1033A0008091C5018770089598E0899F900111244C
+:1033B000262B2093C5010C94C0182091C50180953F
+:1033C00082238093C501982F977069F430E0482FCD
+:1033D000552747FD50952417350729F08595859584
+:1033E00085950C94E11808959091C501977081E03E
+:1033F00009F480E0089590910C01992321F09091B7
+:103400000D01911109C020910E0130910F01F901B8
+:1034100032969FEF40E01FC0982F9695969596950F
+:103420009F3050F5E0910E01F0910F01E90FF11D71
+:10343000877021E030E0A90102C0440F551F8A9532
+:10344000E2F7CA019181892B818308959F3F39F06A
+:103450004F5F4E3041F051915813F8CF0DC05111CC
+:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08
+:1034700097FDFA9582830895089590910C01992300
+:1034800021F090910D01911109C020910E01309110
+:103490000F01F9013296205F3F4F1FC0982F96957C
+:1034A000969596959F30F0F4E0910E01F0910F0102
+:1034B000E90FF11D877021E030E0A90102C0440F3F
+:1034C000551F8A95E2F7CA018095918189238183EE
+:1034D00008953196E217F30729F090819813F9CFF8
+:1034E0001082F7CF089581E090E0E0910E01F09115
+:1034F0000F01E80FF91F1082019680319105A9F79D
+:1035000008959091D901892B8093D90108958095D0
+:103510009091D90189238093D90108951092D901FE
+:1035200008959091D801892B8093D80108958095B2
+:103530009091D80189238093D80108951092D801E1
+:1035400008959091D701892B8093D7010895809594
+:103550009091D70189238093D70108951092D701C4
+:1035600008958093C60108951092C6010895809130
+:103570000E0190910F01FC0131969C01205F3F4F9D
+:1035800080E0919191118F5FE217F307D1F70895D1
+:10359000E0910E01F0910F018091D9018083E091BB
+:1035A0000E01F0910F0190818091D801892B8083C9
+:1035B000E0910E01F0910F0190818091D701892B4C
+:1035C00080838091C601882361F0E0910E01F09123
+:1035D0000F019081892B80830E94B71A811110926C
+:1035E000C60180910E0190910F010C94F60F20E01E
+:1035F000009739F0AC0141505109842395232F5F86
+:10360000F7CF822F0895CF92DF92EF92FF926C0155
+:10361000EE24FF24C114D104E104F10421F0C70118
+:10362000B60120E101C020E0C72ED82EE92EFF24EC
+:10363000C114D104E104F10419F0285FC701B601F7
+:103640006B017C0154E0F694E794D794C7945A95A3
+:10365000D1F7C114D104E104F10419F02C5FC701C2
+:10366000B6016B017C0142E0F694E794D794C794CD
+:103670004A95D1F7C114D104E104F10419F02E5F89
+:10368000C701B601DC01CB01B695A7959795879543
+:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5
+:1036A000DF90CF9008958091F101843021F1109244
+:1036B000DB0120E488E190E00FB6F894A8958093B0
+:1036C00060000FBE2093600080E00E94E30883B793
+:1036D000817F846083BF83B7816083BF789488953E
+:1036E00083B78E7F83BF88E10FB6F8948093600024
+:1036F000109260000FBE0895089508950E947C1BEB
+:103700000E944B030E947D1B0E94400491E08111A6
+:1037100001C090E0892F08950E9483140E94EA0F4F
+:103720000C94E30882E084BD93E095BD9AEF97BDC9
+:1037300080936E0008952FB7F8948091DC019091EA
+:10374000DD01A091DE01B091DF012FBF0895CF927E
+:10375000DF92EF92FF920F931F932FB7F89440914F
+:10376000DC015091DD016091DE017091DF012FBF1E
+:103770006A017B01EE24FF248C0120E030E0C016BA
+:10378000D106E206F30610F4415051099A01281BB4
+:10379000390BC9011F910F91FF90EF90DF90CF90EF
+:1037A00008951F920F920FB60F9211248F939F933B
+:1037B000AF93BF938091DC019091DD01A091DE0178
+:1037C000B091DF010196A11DB11D8093DC019093A2
+:1037D000DD01A093DE01B093DF01BF91AF919F9116
+:1037E0008F910F900FBE0F901F9018950E94E70CBD
+:1037F000F8942FEF87EA91E6215080409040E1F75E
+:1038000000C0000087E090EBDC018093FB01909307
+:10381000FC01A093FD01B093FE019CE088E10FB68E
+:10382000F894A895809360000FBE90936000FFCF3E
+:10383000EF92FF920F931F93CF93DF93D82FCDE09A
+:103840008C2F0E94390405E010E0E82EF12CC7010E
+:10385000002E02C0959587950A94E2F780FF09C073
+:10386000602F7C2F80E00E94F305D81302C081E016
+:1038700006C00150110958F7C15010F780E0DF91E0
+:10388000CF911F910F91FF90EF900895CF93C82F84
+:103890008CE20E94181C882321F08C2FCF910C946D
+:1038A000181C80E0CF910895CF930E949B1D811139
+:1038B00002C00E94811DC5E6C15049F00E944B0321
+:1038C0008FE39CE90197F1F700C00000F5CF89E292
+:1038D0000E94461C811113C18AE20E94461C81117C
+:1038E0000E94811D85E00E94461C81110E94F61BEA
+:1038F0000E94A61D8093DA0187E00E94461C88235F
+:10390000A9F18BE10E94461C882351F08091DA01D5
+:1039100081FB222720F991E0922790FB81F90EC0CC
+:103920008EE00E94461C882361F08091DA0182FBC0
+:10393000222720F991E0922790FB82F98093DA0107
+:1039400015C080E10E94461C9091DA01882341F065
+:1039500093FB222720F981E0822780FB93F904C0A2
+:10396000892F809580FB90F99093DA018091DA019C
+:103970000E94AA1D0E94B81D8093FA0180EE0E9449
+:10398000461C882341F08091FA01982F909590FB76
+:1039900080F98093FA0189E30E94461C882359F03C
+:1039A0008091FA0181FB222720F991E0922790FB78
+:1039B00081F98093FA0182EE0E94461C882359F017
+:1039C0008091FA0182FB222720F991E0922790FB57
+:1039D00082F98093FA0186EE0E94461C882359F0F2
+:1039E0008091FA0183FB222720F991E0922790FB36
+:1039F00083F98093FA0183EE0E94461C882359F0D4
+:103A00008091FA0184FB222720F991E0922790FB14
+:103A100084F98093FA0185E30E94461C882359F0BB
+:103A20008091FA0185FB222720F991E0922790FBF3
+:103A300085F98093FA0181E30E94461C882359F09E
+:103A40008091FA0186FB222720F991E0922790FBD2
+:103A500086F98093FA0181E10E94461C882359F07F
+:103A60008091FA0187FB222720F991E0922790FBB1
+:103A700087F98093FA018091FA010E94BC1D809120
+:103A8000FA0187FB882780F980930D0187E20E9465
+:103A9000461CC82F8EE10E94461C8111C2608FE136
+:103AA0000E94461C8111C46080E20E94461C811164
+:103AB000C86081E20E94461C8111C06182E20E94BE
+:103AC000461C8111C06283E20E94461C8111C064C1
+:103AD00084E20E94461C882311F0C06802C0CC23F7
+:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4
+:103AF000682F70E080E090E0CF910C944318CF9154
+:103B000008956DEE7EEF80E090E00E94ED2360E08E
+:103B100082E090E00E94DB2360E083E090E00E947E
+:103B2000DB2360E084E090E00E94DB2360E085E03E
+:103B300090E00C94DB2380E090E00E94D52321E00C
+:103B40008D3E9E4F09F020E0822F089582E090E0A4
+:103B50000C94CD23682F82E090E00C94DB2383E06B
+:103B600090E00C94CD23682F83E090E00C94DB234D
+:103B700084E090E00C94CD23682F84E090E00C94D6
+:103B8000DB238091E20180FF0BC06091130185E08F
+:103B9000689FB001112475956795759567952BC041
+:103BA00081FF09C06091130185E0689FB001112475
+:103BB0007595679520C082FF07C06091130185E06D
+:103BC000689FB001112417C09091E3019923D1F0AF
+:103BD00060911201961788F72091130185E0289FC4
+:103BE00090011124929FA001939F500D112470E029
+:103BF000CA010E949F236038710540F46115710568
+:103C000039F002C065E070E0862F08958FE70895CF
+:103C100081E008958091E20180FF08C06091110168
+:103C200070E0759567957595679521C081FF06C011
+:103C30006091110170E07595679519C082FF04C00D
+:103C40006091110170E010C09091E3019923C1F0DF
+:103C5000609110019617A0F780911101899FC00112
+:103C6000112470E00E949F236038710528F46115CB
+:103C7000710521F0862F08958FE7089581E008955A
+:103C800061E070E0F4CF803F21F40E94C11D819576
+:103C900004C0813F29F40E94C11D8093E60108956C
+:103CA000823F21F40E94C11D819504C0833F29F405
+:103CB0000E94C11D8093E5010895893F19F40E9477
+:103CC0000A1E05C08A3F31F40E940A1E8195809326
+:103CD000E70108958B3F21F40E940A1E819504C0DC
+:103CE0008C3F29F40E940A1E8093E8010895843FC6
+:103CF00021F48091E401816017C0853F21F4809117
+:103D0000E401826011C0863F21F48091E401846067
+:103D10000BC0873F21F48091E401886005C0883F93
+:103D200031F48091E40180618093E40108958D3F36
+:103D300021F48091E20181600BC08E3F21F48091DB
+:103D4000E201826005C08F3F29F48091E201846026
+:103D50008093E2010895803F39F48091E60187FF66
+:103D60006CC01092E60169C0813F29F48091E601A0
+:103D70001816BCF362C09091E501823F29F497FFC9
+:103D80005CC01092E50159C0833F19F41916CCF3B9
+:103D900054C0893F41F48091E70118160CF04DC0E2
+:103DA0001092E7014AC08A3F29F48091E70187FF1A
+:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6
+:103DC0001092E8013AC08C3F29F48091E80118165E
+:103DD000BCF333C0843F21F48091E4018E7F17C08F
+:103DE000853F21F48091E4018D7F11C0863F21F44D
+:103DF0008091E4018B7F0BC0873F21F48091E40127
+:103E0000877F05C0883F31F48091E4018F7E8093E5
+:103E1000E40113C08D3F21F48091E2018E7F0BC03D
+:103E20008E3F21F48091E2018D7F05C08F3F29F400
+:103E30008091E2018B7F8093E2018091E501811105
+:103E40000EC08091E60181110AC08091E7018111C5
+:103E500006C08091E801811102C01092E30108952B
+:103E600084EE91E00E9401100E949B1B9093E1015F
+:103E70008093E00108951F93CF93DF938091E00139
+:103E80009091E1010E94A71BAC019091E30199235D
+:103E900021F02091140130E006C0209115018AE044
+:103EA000289F900111244217530708F486C080917F
+:103EB000E501C091E601D091E7011091E80181117F
+:103EC00007C0C11176C0D11174C0111172C075C084
+:103ED0009F3F19F09F5F9093E301181624F40E940E
+:103EE000C11D8093E5018091E50187FF05C00E9417
+:103EF000C11D81958093E5011C1624F40E94C11D0B
+:103F00008093E6018091E60187FF05C00E94C11DF4
+:103F100081958093E6016091E501662339F1C091B6
+:103F2000E601CC2319F1772767FD7095872F972F2E
+:103F30000E94B02223E333E343E35FE30E941423B0
+:103F40000E947D226093E5016C2F772767FD7095B5
+:103F5000872F972F0E94B02223E333E343E35FE3ED
+:103F60000E9414230E947D226093E6011D1624F412
+:103F70000E940A1E8093E7018091E70187FF05C038
+:103F80000E940A1E81958093E701111624F40E9475
+:103F90000A1E8093E8018091E80187FF05C00E9416
+:103FA0000A1E81958093E801DF91CF911F910C94B7
+:103FB000301F9F3F09F08ECF96CFDF91CF911F9199
+:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE
+:103FD0001092E3011092E2010895833081F128F4F8
+:103FE000813059F08230D1F00895853009F449C00C
+:103FF000B8F1863009F456C0089580911501262F36
+:1040000030E0280F311D2F3F310524F4680F6093F5
+:10401000150108958FEF8093150108958091140183
+:10402000262F30E0280F311D2F3F310524F4680F73
+:104030006093140108958FEF809314010895809187
+:104040001301262F30E0280F311D2F3F310524F4B6
+:10405000680F6093130108958FEF80931301089503
+:1040600080911201262F30E0280F311D2F3F31059E
+:1040700024F4680F6093120108958FEF809312016A
+:10408000089580911101262F30E0280F311D2F3F18
+:10409000310524F4680F6093110108958FEF809328
+:1040A0001101089580911001262F30E0280F311D55
+:1040B0002F3F310524F4680F6093100108958FEFAE
+:1040C000809310010895833011F128F4813049F074
+:1040D000823091F00895853081F120F18630C1F170
+:1040E000089580911501681720F4861B80931501AF
+:1040F000089510921501089580911401681720F415
+:10410000861B8093140108951092140108958091E4
+:104110001301681720F4861B8093130108951092F1
+:104120001301089580911201681720F4861B809373
+:1041300012010895109212010895809111016817DB
+:1041400020F4861B809311010895109211010895A7
+:1041500080911001681720F4861B80931001089548
+:104160001092100108950F931F938D3109F46BC0C5
+:1041700008F03FC08E3009F47FC0C0F4873009F4E6
+:1041800069C068F4863009F0B1C08091DA01817F9E
+:104190008E7F8093DA0181E08093EA01A8C08830A5
+:1041A00009F4A2C08B3009F49FC0A0C0863109F485
+:1041B0009BC078F4803109F472C0813109F096C057
+:1041C0000E94831490910D0181E0892780930D0155
+:1041D0008BC0893109F488C08B3109F087C0809188
+:1041E000DA0181FB222720F991E0922790FB81F9E7
+:1041F0004CC0853309F470C048F4873209F46CC0B0
+:1042000008F459C0893209F467C070C0833438F4A7
+:104210008A3308F04EC0883309F466C067C083341F
+:1042200009F45AC0883409F061C00E9483140FEF6A
+:1042300013ED20E3015010402040E1F700C00000E2
+:104240000E94F61B51C00E9437220E94EA0F0E9472
+:10425000E3084AC09091DA01892F8095817080FB34
+:1042600090F929F0966098609093DA0140C0997FA8
+:10427000977F9093DA0138C08091DA0182FB222780
+:1042800020F991E0922790FB82F98093DA0199233B
+:1042900059F18091DA0181608093DA0125C0809123
+:1042A000DA0183FB222720F991E0922790FB83F922
+:1042B000ECCF895301C08D5141E050E060E070E0E7
+:1042C0008A019B0104C0000F111F221F331F8A9512
+:1042D000D2F7C901B80104C061E070E080E090E06D
+:1042E0000E9443180E94831481E001C080E01F9166
+:1042F0000F91089580E0089580E00895CF93C82F2E
+:104300008091EA01813079F018F08230E9F187C0BC
+:10431000E0910E01F0910F018081813169F08232CC
+:1043200009F07FC009C0E0910E01F0910F0180817A
+:10433000813111F0823261F48C2F0E947A21811137
+:1043400004C08C2F0E94B3201DC081E090E01AC0F1
+:104350008C2F0E947C21811114C0C43179F048F463
+:10436000CB3079F0C03109F060C082E08093EA017F
+:1043700008C0C93219F0C83321F057C01092EA01C1
+:1043800054C081E0817053C0C93289F118F5C4313D
+:1043900071F1A8F4C73009F046C08AE08093150196
+:1043A00094E19093140193E0909313018093120190
+:1043B00088E08093110188E28093100134C0CE51CF
+:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB
+:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC
+:1043E00013C0C13579F0C235F1F461E00DC08091A0
+:1043F000E901882319F01092E90115C081E080934A
+:10440000EA0115C061E006C08091E9010E94ED1F3C
+:104410000AC06AE08091E9010E94632004C0109202
+:10442000EA0180E004C081E002C080E0ABCFCF9120
+:104430000895E1E8F0E08081886080838081816078
+:1044400080838FB7F89493E09093890090ED9093D8
+:1044500088008FBF0895EFE6F0E08081826080835E
+:104460000895EFE6F0E080818D7F80830895EFE688
+:10447000F0E0908182E08927808308951F920F9257
+:104480000FB60F9211242F933F934F935F936F9327
+:104490007F938F939F93AF93BF93EF93FF938091FD
+:1044A000EB019091EC0101969093EC018093EB016C
+:1044B000811103C082E00E94E308E091EC01E695DF
+:1044C000E695F0E0EC54FB4FE4918091EB018E1304
+:1044D00003C080E00E94E308FF91EF91BF91AF918C
+:1044E0009F918F917F916F915F914F913F912F910C
+:1044F0000F900FBE0F901F90189504D06894B111C3
+:104500008DC0089570D088F09F5790F0B92F9927EB
+:10451000B751A0F0D1F0660F771F881F991F1AF0CE
+:10452000BA95C9F712C0B13081F077D0B1E00895E3
+:1045300074C0672F782F8827B85F39F0B93FCCF364
+:10454000869577956795B395D9F73EF490958095C4
+:10455000709561957F4F8F4F9F4F0895E89409C0E4
+:1045600097FB3EF490958095709561957F4F8F4FA6
+:104570009F4F9923A9F0F92F96E9BB279395F695BC
+:10458000879577956795B795F111F8CFFAF4BB0F3A
+:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E
+:1045A000882311F096E911C0772321F09EE8872F28
+:1045B000762F05C0662371F096E8862F70E060E0E4
+:1045C0002AF09A95660F771F881FDAF7880F96955D
+:1045D000879597F9089557FD9058440F551F59F046
+:1045E0005F3F71F04795880F97FB991F61F09F3FE0
+:1045F00079F087950895121613061406551FF2CF09
+:104600004695F1DF08C0161617061806991FF1CF58
+:1046100086957105610508940895E894BB2766277F
+:104620007727CB0197F908950BD078C069D028F08F
+:104630006ED018F0952309F05AC05FC01124EECF58
+:10464000CADFA0F3959FD1F3950F50E0551F629FED
+:10465000F001729FBB27F00DB11D639FAA27F00DDB
+:10466000B11DAA1F649F6627B00DA11D661F829F02
+:104670002227B00DA11D621F739FB00DA11D621FE7
+:10468000839FA00D611D221F749F3327A00D611D04
+:10469000231F849F600D211D822F762F6A2F1124E6
+:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39
+:1046B000BB1F661F771F881F91505040A9F79E3F70
+:1046C000510570F014C0AACF5F3FECF3983EDCF3C5
+:1046D000869577956795B795F795E7959F5FC1F7AD
+:1046E000FE2B880F911D9695879597F9089597F958
+:1046F0009F6780E870E060E008959FEF80EC089588
+:1047000000240A94161617061806090608950024B0
+:104710000A9412161306140605060895092E03942A
+:10472000000C11F4882352F0BB0F40F4BF2B11F49E
+:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF
+:10474000072E16F4009407D077FD09D00E94B923F4
+:1047500007FC05D03EF4909581959F4F0895709584
+:1047600061957F4F0895EE0FFF1F0590F491E02DA6
+:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8
+:10478000B70710F0A61BB70B881F991F5A95A9F7FA
+:1047900080959095BC01CD010895F999FECF92BD09
+:1047A00081BDF89A992780B50895A8E1B0E042E06C
+:1047B00050E00C94F523262FF999FECF92BD81BDD0
+:1047C000F89A019700B4021639F01FBA20BD0FB64F
+:1047D000F894FA9AF99A0FBE08950196272F0E942D
+:1047E000DC230C94DB23DC01CB01FC01F999FECF27
+:1047F00006C0F2BDE1BDF89A319600B40D92415069
+:0A4800005040B8F70895F894FFCF78
+:10480A000220E508730950091C09E8080101C701DB
+:10481A0028080A03140A3F4D363975042804F2039E
+:10482A00B9034C0365037E039703010203040506DB
+:04483A000708090062
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/dvorak/dvorak.png b/keyboards/ergodox_ez/keymaps/dvorak/dvorak.png Binary files differnew file mode 100644 index 000000000..cb8316309 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/dvorak/dvorak.png diff --git a/keyboards/ergodox_ez/keymaps/dvorak/keymap.c b/keyboards/ergodox_ez/keymaps/dvorak/keymap.c new file mode 100644 index 000000000..22947327d --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/dvorak/keymap.c @@ -0,0 +1,184 @@ +#include "ergodox_ez.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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | \ | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Del | ' | , | . | P | Y | L1 | | L1 | F | G | C | R | L | / | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | A | O | E | U | I |------| |------| D | H | T | N |S / L2| - | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |:/Ctrl| Q | J | K | X | | | | B | M | W | V |Z/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_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, TG(1), + KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I, + KC_LSFT, CTL_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, 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_BSLS, + TG(1), KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + KC_D, KC_H, KC_T, KC_N, LT(MDIA, KC_S), KC_MINS, + MEH_T(KC_NO),KC_B, KC_M, KC_W, KC_V, CTL_T(KC_Z), 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| |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | | |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +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) { + 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/dvorak_intl_squisher/README.md b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/README.md new file mode 100644 index 000000000..984106ff4 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/README.md @@ -0,0 +1,29 @@ +# ErgoDox EZ Dvorak International Squisher + +Dvorak layout adjusted with several (linux) applications in mind: + +* Easier Escape for VIM +* Windows/Super key for awesome WM +* Alt+Shift for international characters +* PrintScreen for sys-rq +* Insert for the X11 clip-board + +Major layer changes: + +* Common multimedia keys are integrated into layer 0, less common into layer 1 +* No mouse keys +* Layer 2 is qwerty (for easier gaming & less fortunate keyboard users) + +Known issues: + +* Alt+Shift does not work reliably (depends on the X11 kb layout? Not + entirely clear...) + +![layer0](keyboard-layout0.png) +![layer1](keyboard-layout1.png) +![layer2](keyboard-layout2.png) + +## Changelog + +* 2016-03-29 + * Initial release diff --git a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/compiled.hex b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/compiled.hex new file mode 100644 index 000000000..dc734d241 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4
+:100010000C94BE020C94BE020C94BE020C94BE0260
+:100020000C94BE020C94BE020C94620D0C94340E1F
+:100030000C94BE020C94BE020C94BE020C94BE0240
+:100040000C94BE020C943E220C94BE020C94BE0290
+:100050000C94BE020C94D11B0C94BE020C94BE02F4
+:100060000C94BE020C94BE020C94BE020C94BE0210
+:100070000C94BE020C94BE020C94BE020C94BE0200
+:100080000C94BE020C94BE020C94BE020C94BE02F0
+:100090000C94BE020C94BE020C94BE020C94BE02E0
+:1000A0000C94BE020C94BE020C94BE02A10EC30EB0
+:1000B000B10FC30EB10F080F2B0FB10F800F930FAD
+:1000C0006212621291129112C712E71218141814D8
+:1000D000F2121814A213A2130914181418141214EB
+:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300
+:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0
+:10010000C113CE13D513DC13E6130000F0A12E00AB
+:1001100029002A00E100354100001E0034000400DF
+:100120003371E2004D001F00360012001400E3009E
+:100130002B002000370008000D0050002C0021008B
+:10014000130018000E004F004A0022001C000C0093
+:100150001B0000006571B6004C000000007F00002D
+:100160000154AE0049000000007700000254230053
+:100170000900070005000000460024000A000B00EB
+:10018000100052004B002500060017001A00510015
+:10019000280026001500110019002F00E514270083
+:1001A0000F0016001D7130004E00314238002D0046
+:1001B000E500C10000000100010001000100010094
+:1001C00000003A001E0220022202010001003B0052
+:1001D0001F0221022302010001003C002F0226021F
+:1001E0002F00AC0001003D00300227023000AB00C0
+:1001F00001003E003102350035020000010001001F
+:1002000001000000010000000100010001000000E9
+:100210000100000001003F005200510024020000D4
+:1002200001004000240021001E000100A90041003F
+:10023000250022001F003700010042002600230095
+:1002400020002700A800430025022E0231002E00C6
+:10025000AA00440045000100010001000000010067
+:100260000100010001000100000001001400040071
+:100270001D710100010001001A0016001B000100A1
+:100280000100010008000700060001000100010054
+:1002900015000900190001000100010017000A0003
+:1002A0000500000001000100010000000100000045
+:1002B0000100010001000000010000000100010038
+:1002C0001C000B00110000000100010018000D00CF
+:1002D00010000100010001000C000E0036000100BA
+:1002E0000100010012000F003700010001000100B1
+:1002F00013003342387101000100010001000100C8
+:1003000001000100000016034500720067006F0045
+:1003100044006F007800200045005A0000001603DA
+:100320004500720067006F0044006F0078002000F5
+:1003300045005A0000000403090409026D0004018D
+:1003400000A0FA09040000010301010009211101C4
+:100350000001223F000705810308000A090401008B
+:100360000103010200092111010001224D000705CE
+:10037000820308000A0904020001030000000921A9
+:10038000110100012236000705830308000A090451
+:1003900003000103000000092111010001223900BE
+:1003A000070584031000011201100100000008ED90
+:1003B000FE071301000102000105010906A1010564
+:1003C0000719E029E7150025019508750181020547
+:1003D000081901290595057501910295017503918B
+:1003E0000105071900297715002501957875018108
+:1003F00002C005010980A101850216010026B7008F
+:100400001A01002AB700751095018100C0050C097A
+:1004100001A1018503160100269C021A01002A9CF5
+:1004200002751095018100C005010902A1010901B1
+:10043000A10005091901290515002501950575017A
+:10044000810295017503810105010930093115818A
+:10045000257F95027508810609381581257F95014C
+:1004600075088106050C0A38021581257F950175EE
+:10047000088106C0C005010906A101050719E02988
+:10048000E715002501950875018102950175088120
+:100490000105081901290595057501910295017558
+:1004A0000391010507190029FF150025FF95067521
+:1004B000088100C0000000000000000000000001F2
+:1004C0000204060A0F17202C3A4A5D71879DB3C7B4
+:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF
+:1004E0003A2C20170F0A0604020100000000000049
+:1004F0000000000011241FBECFEFDAE0DEBFCDBF49
+:1005000004B603FE24C08091FB019091FC01A091F0
+:10051000FD01B091FE018730904BA740B04BB9F47C
+:100520001092FB011092FC011092FD011092FE014D
+:1005300014BE84B7877F84BF88E10FB6F894809398
+:100540006000109260000FBEE0E0FFE3099511E04B
+:10055000A0E0B1E0EAE0F8E402C005900D92A43317
+:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0
+:10057000B107E1F70E94A60A0C9403240C94000032
+:100580001092B9008AE08093B800089594EA90939D
+:10059000BC009091BC0097FFFCCF9091B900987F70
+:1005A000983021F0903111F081E008958093BB00E4
+:1005B00084E88093BC008091BC0087FFFCCF8091D1
+:1005C000B900887F883111F0803471F780E0089598
+:1005D00084E98093BC008091BC0084FDFCCF089529
+:1005E0008093BB0084E88093BC008091BC0087FFAF
+:1005F000FCCF9091B900987F81E0983209F480E0B7
+:10060000089584E88093BC008091BC0087FFFCCFF4
+:100610008091BB00089580910101811115C080E493
+:100620000E94C6028093010181110CC082E10E94E8
+:10063000F00280930101811105C08FEF0E94F0024A
+:10064000809301010E94E80284B1807F84B985B162
+:10065000807F85B98AB1837F8AB98BB1837F8BB95B
+:100660003E98469808950E94C604809301010E9416
+:100670000B0380B38C7080BB81B3836F81BBA5E318
+:10068000B1E0E3E4F1E08EE08E0F11921D928E1343
+:10069000FCCF0C94B004BF92CF92DF92EF92FF9206
+:1006A0000F931F93CF93DF9380910101882379F0FB
+:1006B000809134018F5F80933401811108C00E94C2
+:1006C000C60480930101811102C00E94580405E311
+:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407
+:1006E000E394F12CC730D10500F58091010181110F
+:1006F00064C080E40E94C60280930101811112C08F
+:1007000082E10E94F0028093010181110BC0C701B8
+:100710000C2E01C0880F0A94EAF780950E94F0021F
+:10072000809301010E94E80248C0CA30A1F028F479
+:10073000C83059F0C93061F005C0CC3089F070F094
+:10074000CD3089F0209A289810C0219A29980DC0A0
+:10075000229A2A980AC0239A2B9807C0529A01C05D
+:10076000539A5B9802C03E9A469890EA9A95F1F7A0
+:100770009FB1799902C082E001C080E091709D250F
+:10078000982B7C9902C084E001C080E0892B7D9980
+:1007900002C038E001C030E0832B7E9902C020E126
+:1007A00001C020E0822B9FB19095991F9927991F36
+:1007B0009295990F907E892B0FC080910101811134
+:1007C00049C080E40E94C60280930101882379F128
+:1007D000B12C0E94E8028B2DF8019081981719F036
+:1007E0008083C09200010E940B0321960F5F1F4F70
+:1007F000CE30D10509F076CF80910001882361F1D8
+:10080000815080930001882339F08FE99FE00197A0
+:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F
+:10082000CF01825F91919D938E13FCCF15C083E120
+:100830000E94F002809301018111CACF81E40E94DD
+:10084000C602809301018111C3CF0E940103B82E1B
+:10085000B094BFCF80E0C0CF0E94560481E0DF910A
+:10086000CF911F910F91FF90EF90DF90CF90BF90AD
+:100870000895E82FF0E0ED5BFE4F80810895089524
+:100880000F931F93CF93DF93C3E4D1E010E00C2FBD
+:10089000025F899190E00E94F71A180F0C13F9CFAC
+:1008A000812FDF91CF911F910F9108950C94260510
+:1008B00056985E9825982D9826982E9827982F98C8
+:1008C0008FEF90E0909389008093880090938B0045
+:1008D00080938A0090938D0080938C00259A2D9AA6
+:1008E0002FEF80E792E0215080409040E1F700C078
+:1008F0000000269A2E9A2FEF80E792E02150804048
+:100900009040E1F700C00000279A2F9A2FEF80E770
+:1009100092E0215080409040E1F700C0000025980F
+:100920002D982FEF80E792E0215080409040E1F732
+:1009300000C0000026982E982FEF80E792E021500B
+:1009400080409040E1F700C0000027982F9856980B
+:100950005E9825982D9826982E9827982F98089578
+:1009600089EA8093800089E08093810024982C9804
+:100970003F988AB18F748AB96E98479A8BB1806B11
+:100980008BB9769A0E9458040C94250580E28093D6
+:1009900001018091510181110EC00E94C00281E0CD
+:1009A000809351012FEF83ED90E3215080409040E0
+:1009B000E1F700C0000080E40E94C60280930101BC
+:1009C00081112EC00E94F00280930101811128C084
+:1009D0000E94F00280930101811122C08FE30E94E6
+:1009E000F0028093010181111BC00E94E80280E4A3
+:1009F0000E94C60280930101811112C08CE00E9406
+:100A0000F0028093010181110BC00E94F0028093DB
+:100A10000101811105C08FE30E94F0028093010162
+:100A20000E94E80280910101089561110BC0FC0150
+:100A30008281882321F085EE0E94061103C085EE95
+:100A40000E94CE1180E090E0089508956091BD016C
+:100A50007091BE018091BF019091C0010E94031B63
+:100A600056985E9825982D9826982E9827982F9816
+:100A7000813019F0823021F00895259A2D9A089539
+:100A8000269A2E9A089581E0089581E008950C94A5
+:100A9000450508950F931F93CF93DF938C01FC01BD
+:100AA000C081D181CE010E947C19BE010E94F30554
+:100AB000EC01B8010E944705882309F48DC0F801B4
+:100AC0008281882309F44AC080915D0181111FC091
+:100AD000C431F0E5DF0709F051C00E94490581E00B
+:100AE00080935D010E949B1B90935C0180935B014E
+:100AF0001092540110925601109255011092580113
+:100B00001092570110925A011092590165C08091BC
+:100B10005B0190915C010E94A71B883C910570F4D9
+:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB
+:100B3000D183C0838F5F809354014EC0C43880E559
+:100B4000D80721F0C538D04501F13AC0F8018281BB
+:100B5000882341F01092520182E01EC0C438E0E5C3
+:100B6000DE0759F580915201811106C086E20E948C
+:100B7000061186E20E94CE1182E01CC0C438F0E566
+:100B8000DF0741F3C538D045D9F4F80182818823C5
+:100B900031F01092530180E20E941D121DC080911D
+:100BA0005301811106C087E20E94061187E20E946C
+:100BB000CE1180E20E9424120FC0C538D04529F31F
+:100BC00081E08093520180935301C801DF91CF915E
+:100BD0001F910F910C94430580E0DF91CF911F91FD
+:100BE0000F910895089596E0799FF001112494E5FE
+:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F
+:100C0000E25FFE4F859194910895880F991FFC0132
+:100C1000E657F040859194910895880F991FFC0143
+:100C2000E65FFE4F8591949108950F931F93CF93A4
+:100C3000DF93EC01811520E3920750F5C11580E2A6
+:100C4000D80708F0C3C0CB3BD10590F4C83AD10512
+:100C500008F06AC0C53AD10508F05BC0C430D105C0
+:100C600008F0D0C1219709F0CAC101E010E00AC222
+:100C7000CF3FD10511F008F0C5C1C03FD10508F044
+:100C8000A2C0CE01805E9109089708F4BBC1B7C12C
+:100C9000C13090E5D90709F4A2C020F5C0318FE436
+:100CA000D80770F4C11590E4D90708F094C0C115B5
+:100CB00021E3D20708F0A3C1DD278E01106CE2C149
+:100CC000C115D04509F09BC10E9483148FEF94E3B6
+:100CD0002CE0815090402040E1F700C000000E94CD
+:100CE000F61BD0C1C11597E5D90758F4C03121E5ED
+:100CF000D20708F01CC1C43180E5D80708F475C0DC
+:100D00007EC1CE0190578115904108F078C1DF7007
+:100D100073C1C53AD10509F477C1C63AD10509F0C6
+:100D200076C102E810E4AEC1C83AD10509F472C137
+:100D3000C93AD10509F471C1CA3AD10509F470C1A3
+:100D4000CB3AD10509F46FC1CC3AD10509F46EC193
+:100D5000CD3AD10509F46DC1C03BD10509F46CC190
+:100D6000CE3AD10509F46BC1CF3AD10509F46AC175
+:100D7000C13BD10509F469C1C23BD10509F468C181
+:100D8000C33BD10509F467C1C43BD10509F466C171
+:100D9000C53BD10509F465C1C63BD10509F464C161
+:100DA000C73BD10509F463C1C83BD10509F462C151
+:100DB000C93BD10509F461C1CA3BD10509F460C141
+:100DC00000E014E45FC18E0110655CC1CE019F702C
+:100DD0000E940D0658C1DF708E01106A53C18091C8
+:100DE000DA0181608093DA014DC10E949B1D81115F
+:100DF00002C00E94811D0E94B81D90E09093FB01EB
+:100E00008093FA01C23080E5D80721F48091FA017D
+:100E1000816086C0C43090E5D90721F48091FA0141
+:100E200082607EC0C63020E5D20721F48091FA01AD
+:100E3000846076C0C83080E5D80719F48091FA0143
+:100E400027C0CA3090E5D90721F48091FA0180616A
+:100E500067C0CC3020E5D20721F48091FA0180628E
+:100E60005FC0CE3080E5D80721F48091FA0180641C
+:100E700057C0C03190E5D90721F48091FA0180680C
+:100E80004FC0C23120E5D20729F48091FA01846075
+:100E9000886046C0C33080E5D80721F48091FA010C
+:100EA0008E7F3EC0C53090E5D90721F48091FA01CC
+:100EB0008D7F36C0C73020E5D20721F48091FA013A
+:100EC0008B7F2EC0C93080E5D80719F48091FA01D4
+:100ED00026C0CB3090E5D90721F48091FA018F7EAE
+:100EE0001FC0CD3020E5D20721F48091FA018F7D1B
+:100EF00017C0CF3080E5D80721F48091FA018F7BAD
+:100F00000FC0C13190E5D90721F48091FA018F77A4
+:100F100007C0C331D04531F48091FA018B7F877FC0
+:100F20008093FA018091FA010E94BC1DABC08D2F05
+:100F300099278F70992781309105D9F49E012370EC
+:100F4000332702C0880F991F2A95E2F79C688E010B
+:100F500044E0000F111F4A95E1F700271370802B22
+:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA
+:100F70002FC08230910531F4DC2FCC278E01016F18
+:100F8000106A80C08330910569F4CE01837099277F
+:100F900001E010E002C0000F111F8A95E2F7C801BE
+:100FA0009C680FC084309105B9F4CE0183709927F5
+:100FB00001E010E002C0000F111F8A95E2F7C8019E
+:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029
+:100FD0008C010C2B1D2B56C08530910531F4DC2F74
+:100FE000CC278E01046F106A4DC0069709F04AC0E5
+:100FF000CF71DD27DC2FCC278E01106243C000E0CB
+:1010000010E040C08E013EC001E810E43BC003E8A0
+:1010100010E438C002EE14E435C009EE14E432C026
+:101020000AEE14E42FC005EB14E42CC006EB14E424
+:1010300029C007EB14E426C00CEC14E423C00DEC2B
+:1010400014E420C003E815E41DC00AE815E41AC042
+:1010500002E915E417C004E915E414C001E216E43E
+:1010600011C003E216E40EC004E216E40BC005E270
+:1010700016E408C006E216E405C007E216E402C062
+:101080000AE216E4C801DF91CF911F910F910895F4
+:1010900096E0799FF001112494E5899FE00DF11D00
+:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149
+:1010B0009491803E9105E0F4803C910558F5813390
+:1010C000910509F46FC048F48932910509F463C0B1
+:1010D0008A32910509F46DC072C089339105E9F037
+:1010E00082389105D1F08533910509F44DC067C070
+:1010F000833E910581F138F4803E9105B9F0823E3E
+:101100009105D9F05CC0863E910561F1873E91055D
+:10111000A1F155C00E94050608952091FA0120FD15
+:1011200002C021FF4CC080EE90E049C08091FA01DE
+:1011300080FFF9CF89E390E042C08091FA0182FFFD
+:101140000EC08091FA0184FF03C080E090E037C0B8
+:1011500083EE90E034C08091FA0182FFF2CF82EEFC
+:1011600090E02DC08091FA0183FF0BC08091FA01BD
+:1011700084FDEBCF87EE90E022C08091FA0183FFDF
+:10118000F5CF86EE90E01BC08091FA0185FF07C085
+:1011900089E290E014C08091FA0185FFF9CF85E3E0
+:1011A00090E00DC08091FA0186FF07C08AE290E0CE
+:1011B00006C08091FA0186FFF9CF81E390E00E949A
+:1011C0001506089508950C94E20880916E01089523
+:1011D000CF93DF9300D01F92CDB7DEB79C018091F3
+:1011E000F101843019F593E099833B832A8390932E
+:1011F000E9008FEF9091E800815095FD06C095EDD4
+:101200009A95F1F700008111F5CF8091E80085FFF4
+:101210000DC040E050E063E070E0CE0101960E9416
+:10122000520B8091E8008E778093E8000F900F902A
+:101230000F90DF91CF910895CF93DF9300D01F924D
+:10124000CDB7DEB72091F101243021F522E02983CA
+:101250009B838A8383E08093E9008FEF9091E8007D
+:10126000815095FD06C095ED9A95F1F7000081112A
+:10127000F5CF8091E80085FF0DC040E050E063E0CD
+:1012800070E0CE0101960E94520B8091E8008E77AB
+:101290008093E8000F900F900F90DF91CF91089509
+:1012A0002091F1012430F1F422E02093E9002FEFA6
+:1012B0003091E800215035FD06C035ED3A95F1F743
+:1012C00000002111F5CF2091E80025FF0BC040E080
+:1012D00050E065E070E00E94520B8091E8008E774C
+:1012E0008093E8000895CF93DF93EC019091F10192
+:1012F000943009F046C080910C018823D9F0809188
+:101300000D018823B9F09093E9008FEF9091E800E8
+:10131000815095FD06C095E19A95F1F70000811185
+:10132000F5CF8091E80085FF2CC040E050E060E1FF
+:1013300070E017C081E08093E9008FEF9091E800A2
+:10134000815095FD06C095ED9A95F1F70000811149
+:10135000F5CF8091E80085FF14C040E050E068E0E0
+:1013600070E0CE010E94520B8091E8008E7780934E
+:10137000E80080E1FE01AEE5B1E001900D928A95B2
+:10138000E1F7DF91CF9108958091F001811109C0BB
+:101390000E94E70C0E94440D8091E20084608093DB
+:1013A000E20008951092F001089508950C942B2204
+:1013B0000E948C1B0E9431220E94EA0F0C94E308C9
+:1013C00042E061EC81E00E94610C42E061EC82E06D
+:1013D0000E94610C42E061EC83E00E94610C42E1FA
+:1013E00061EC84E00C94610C8091F301833009F48A
+:1013F00055C030F4813071F0823009F48EC0089508
+:101400008A3009F47AC08B3009F460C0893009F061
+:101410009CC020C08091F201813A09F096C0809171
+:10142000E800877F8093E8008091F6019091F701B2
+:10143000892B21F460E18EE591E003C060E080E05B
+:1014400090E070E00E949D0B8091E8008B77809384
+:10145000E80008958091F201813209F076C0809110
+:10146000F6019091F701009719F0039709F06DC00C
+:101470008091E800877F8093E8008091E80082FDFA
+:1014800005C08091F1018111F8CF5FC08091F1001A
+:1014900080936E018091E8008B7753C08091F201B8
+:1014A000813A09F052C08091F6019091F701892BA1
+:1014B00009F04BC08091E800877F8093E80080911D
+:1014C000E80080FFFCCF80910C0136C08091F201D2
+:1014D0008132D9F58091F6019091F701892BA9F518
+:1014E0008091E800877F8093E8000E94960C8091AD
+:1014F000F40180930C010C9483148091F2018132E9
+:1015000021F58091E800877F8093E8000E94960C87
+:101510008091F50180936F0108958091F201813AE5
+:10152000A1F48091E800877F8093E8008091E80033
+:1015300080FFFCCF80916F018093F1008091E800E3
+:101540008E778093E8000C94960C089584B7877F7B
+:1015500084BF88E10FB6F894809360001092600019
+:101560000FBE90E080E80FB6F894809361009093EE
+:1015700061000FBE0E9439100E94E70C0E94440DCA
+:101580008091E20084608093E20078940E94CA0F08
+:101590000E943B1082E091E00E94E50F0E94192218
+:1015A0008091F101853069F40E94531B8091EF0115
+:1015B0008823B1F30E947E1B882391F30E943C0B89
+:1015C000EFCF0E944110ECCF292F33272330310574
+:1015D000C9F064F42130310581F02230310509F081
+:1015E00043C08DE690E02AE333E042C0213231056A
+:1015F000F1F02232310541F137C082E190E027EA73
+:1016000033E036C099278130910541F08230910551
+:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4
+:1016200002C0E6E0F3E0849190E09F0121C06430C5
+:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5
+:10164000318189E090E014C0643070F470E0FB01F7
+:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47
+:10166000FE4F808190E004C080E090E020E030E018
+:10167000FA0131832083089580E189BD82E189BD2B
+:1016800009B400FEFDCF8091D8008F7D8093D800F3
+:101690008091E00082608093E0008091E00081FD15
+:1016A000FCCF0895CF92DF92EF92FF920F931F939A
+:1016B000CF93DF93EC018B016A010E94B50C81117D
+:1016C00033C0C114D10439F0F60180819181081B27
+:1016D000190BC80FD91FE12CF12C0115110519F1B7
+:1016E0008091E80085FD16C08091E8008E77809398
+:1016F000E800C114D10449F0F60180819181E80E1F
+:10170000F91EF182E08285E00FC00E94B50C8823AB
+:1017100021F30AC089918093F10001501109FFEF74
+:10172000EF1AFF0ADACF80E0DF91CF911F910F917E
+:10173000FF90EF90DF90CF9008952091F8013091C5
+:10174000F9012617370748F06115710539F4209122
+:10175000E8002E772093E80001C0B90140E0611550
+:101760007105A9F12091F101222309F443C025302C
+:1017700009F442C02091E80023FD40C02091E80018
+:1017800022FD32C02091E80020FFE9CF4091F30014
+:101790002091F20030E0342BFC01CF01611571057E
+:1017A00059F02830310540F481918093F100615067
+:1017B00071092F5F3F4FF1CF41E02830310509F02B
+:1017C00040E02091E8002E772093E800C8CF411137
+:1017D000C9CF0AC08091F101882361F0853061F0A2
+:1017E0008091E80083FD0AC08091E80082FFF2CF7B
+:1017F00080E0089582E0089583E0089581E00895EF
+:101800002091F8013091F9012617370748F061154A
+:10181000710539F42091E8002E772093E80001C08B
+:10182000B901FC0120E06115710591F18091F10190
+:10183000882309F440C0853009F43FC08091E80056
+:1018400083FD3DC08091E80082FD2FC08091E800BB
+:1018500080FFE9CF2091F3008091F20090E0922B7D
+:101860006115710559F08830910540F42491209359
+:10187000F1003196615071090196F2CF21E008978D
+:1018800009F020E08091E8008E778093E800CBCFCC
+:101890002111CCCF0AC08091F101882361F08530FD
+:1018A00061F08091E80083FD0AC08091E80082FF2A
+:1018B000F2CF80E0089582E0089583E0089581E00A
+:1018C0000895982F973058F59093E900981739F0BC
+:1018D0007091EC002091ED005091F00003C0242F96
+:1018E000762F50E021FF19C03091EB003E7F3093FE
+:1018F000EB003091ED003D7F3093ED003091EB0037
+:1019000031603093EB007093EC002093ED00509326
+:10191000F0002091EE0027FF07C09F5FD3CF8F70AC
+:101920008093E90081E0089580E008958091F201BC
+:1019300087FF11C08091E80082FD05C08091F10110
+:101940008111F8CF11C08091E8008B770BC0809196
+:10195000F101882349F08091E80080FFF8CF809161
+:10196000E8008E778093E80008952091E40030919C
+:10197000E50095E64091EC00842F817040FF22C085
+:101980008091E80080FD1CC08091F101882391F0D6
+:10199000853091F08091EB0085FD10C04091E4000E
+:1019A0005091E5004217530729F39A01915011F71E
+:1019B00084E0089582E0089583E0089581E0089529
+:1019C00080E008954091E80042FFDECF08950E9434
+:1019D000550D0E945D0DE0EEF0E080818160808316
+:1019E000E8EDF0E080818F77808319BCA7EDB0E04F
+:1019F0008C918E7F8C9380818F7E80831092F001FA
+:101A000008950F931F93CF93DF930E94550D0E946B
+:101A10005D0DC8EDD0E088818F77888388818068EC
+:101A2000888388818F7D888319BC1092F101109280
+:101A3000ED011092EF011092EE0100EE10E0F801BE
+:101A400080818B7F808388818160888342E060E031
+:101A500080E00E94610CE1EEF0E080818E7F808367
+:101A6000E2EEF0E080818160808380818860808305
+:101A7000F80180818E7F8083888180618883DF91F7
+:101A8000CF911F910F910895E8EDF0E080818F7E56
+:101A90008083E7EDF0E080818160808384E082BF15
+:101AA00081E08093F0010C94010DE8EDF0E080817D
+:101AB0008E7F80831092E20008951092DA001092D7
+:101AC000E10008951F920F920FB60F9211242F93E9
+:101AD0003F934F935F936F937F938F939F93AF93B6
+:101AE000BF93EF93FF938091E10082FF0BC0809141
+:101AF000E20082FF07C08091E1008B7F8093E100CC
+:101B00000E94C90F8091DA0080FF1FC08091D80029
+:101B100080FF1BC08091DA008E7F8093DA00809175
+:101B2000D90080FF0DC080E189BD82E189BD09B483
+:101B300000FEFDCF81E08093F1010E94C40905C041
+:101B400019BC1092F1010E94D2098091E10080FF3E
+:101B500019C08091E20080FF15C08091E2008E7F65
+:101B60008093E2008091E20080618093E2008091A6
+:101B7000D80080628093D80019BC85E08093F10181
+:101B80000E94D6098091E10084FF30C08091E2007C
+:101B900084FF2CC080E189BD82E189BD09B400FECB
+:101BA000FDCF8091D8008F7D8093D8008091E10097
+:101BB0008F7E8093E1008091E2008F7E8093E2002F
+:101BC0008091E20081608093E2008091ED018823A2
+:101BD00011F084E007C08091E30087FD02C081E03E
+:101BE00001C083E08093F1010E94D8098091E10057
+:101BF00083FF29C08091E20083FF25C08091E1002E
+:101C0000877F8093E10082E08093F1011092ED01E3
+:101C10008091E1008E7F8093E1008091E2008E7FD1
+:101C20008093E2008091E20080618093E20042E0D4
+:101C300060E080E00E94610C8091F00088608093F9
+:101C4000F0000E94D509FF91EF91BF91AF919F9154
+:101C50008F917F916F915F914F913F912F910F9055
+:101C60000FBE0F901F9018951F920F920FB60F92F4
+:101C700011242F933F934F935F936F937F938F9391
+:101C80009F93AF93BF93CF93DF93EF93FF93C09155
+:101C9000E900CF708091EC00D82FD17080FDD0E8A2
+:101CA0001092E9008091F000877F8093F000789493
+:101CB0000E94780E1092E9008091F0008860809375
+:101CC000F000CD2BCF70C093E900FF91EF91DF9131
+:101CD000CF91BF91AF919F918F917F916F915F91C4
+:101CE0004F913F912F910F900FBE0F901F9018951D
+:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3
+:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115
+:101D1000F10091938E13FBCF0E94F4098091E800AB
+:101D200083FF1FC18091F2019091F301492F50E090
+:101D30004A30510508F015C1FA01EA5AFF4F0C94D8
+:101D4000B323803881F0823809F00BC18091F6010D
+:101D50008F708093E9008091EB0085FB882780F9E4
+:101D60001092E90006C08091EE019091EF0191116F
+:101D700082609091E800977F9093E8008093F10053
+:101D80001092F100C8C0282F2D7F09F0EAC08823E7
+:101D900019F0823061F0E5C08091F401813009F0E2
+:101DA000E0C0933009F080E08093EF012BC0809178
+:101DB000F401811127C08091F6018F7009F4D1C020
+:101DC0008093E9002091EB0020FF1CC0933021F4A8
+:101DD0008091EB00806214C09091EB009061909331
+:101DE000EB0021E030E0A90102C0440F551F8A95A5
+:101DF000E2F74093EA001092EA008091EB008860DD
+:101E00008093EB001092E9008091E800877F86C004
+:101E10008111A7C01091F4011F778091E3008078B1
+:101E2000812B8093E3008091E800877F8093E80016
+:101E30000E94960C8091E80080FFFCCF8091E30027
+:101E400080688093E300111102C082E001C083E04A
+:101E50008093F10186C08058823008F082C0809162
+:101E6000F4019091F5018C3D53E0950779F583E0FD
+:101E70008A838AE289834FB7F894DE01139620E0C3
+:101E80003EE051E2E32FF0E050935700E49120FF51
+:101E900003C0E295EF703F5FEF708E2F90E0EA3065
+:101EA00010F0C79601C0C0968D939D932F5F24318B
+:101EB00049F74FBF8091E800877F8093E8006AE28E
+:101EC00070E0CE0101960E949D0B14C0AE014F5FE1
+:101ED0005F4F6091F6010E94E40ABC01009709F48B
+:101EE00040C09091E800977F9093E80089819A81A3
+:101EF0000E94000C8091E8008B778093E80031C04D
+:101F0000803879F58091E800877F8093E8008091A0
+:101F1000ED018093F1008091E8008E778093E800D6
+:101F20000E94960C1EC081111CC09091F401923049
+:101F3000C0F48091E800877F8093E8009093ED01E2
+:101F40000E94960C8091ED01811106C08091E30002
+:101F500087FD02C081E001C084E08093F1010E940E
+:101F6000E0098091E80083FF0AC08091E800877F44
+:101F70008093E8008091EB0080628093EB00AA964A
+:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A
+:101F900008950895CF938091F1018823A1F0C09115
+:101FA000E900CF709091EC00892F817090FD80E85E
+:101FB000C82B1092E9008091E80083FD0E94780E02
+:101FC000CF70C093E900CF910895909375018093ED
+:101FD00074010895E0917401F0917501309721F03A
+:101FE0000190F081E02D099480E00895E091740162
+:101FF000F0917501309721F00280F381E02D099472
+:102000000895E0917401F0917501309721F00480FA
+:10201000F581E02D099408952091720130917301AA
+:102020008217930771F09093730180937201E0918E
+:102030007401F0917501309721F00680F781E02D51
+:1020400009940895209170013091710182179307CE
+:1020500071F09093710180937001E0917401F0919F
+:102060007501309721F00084F185E02D09940895E1
+:1020700008950C9438100E94921B0E9433030C9414
+:10208000541C9F92AF92BF92CF92DF92EF92FF9239
+:102090000F931F93CF93DF9300D000D000D0CDB724
+:1020A000DEB70E944B030DE010E0AA24A394B12CEC
+:1020B000902E802F0E943904980129583E4F6901C3
+:1020C000F901F080F826A1F40150110988F78FEF8B
+:1020D00089838A831B820E949B1B8160782F9D834A
+:1020E0008C8349815A816B818D810E94D8102FC0C9
+:1020F0009091DA0191FF04C08E830E943F048E818B
+:1021000025E030E0A501022E01C0440F0A94EAF751
+:10211000E42E4F21C1F029839A828E2191E009F4A7
+:1021200090E09B830E949B1B8160782F9D838C8312
+:1021300049815A816B818D810E94D810F60180817E
+:10214000E826E08204C021503109E0F6BDCF0E94AC
+:102150003B1F109176010E94EA0F1817B9F00E94F8
+:10216000EA0F8093760126960FB6F894DEBF0FBE75
+:10217000CDBFDF91CF911F910F91FF90EF90DF9036
+:10218000CF90BF90AF909F900C94E30826960FB627
+:10219000F894DEBF0FBECDBFDF91CF911F910F919D
+:1021A000FF90EF90DF90CF90BF90AF909F900895F9
+:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82
+:1021C0000FBECDBF4F83588769877A878B87DE0123
+:1021D000119686E0FD0111928A95E9F785E0FE01EE
+:1021E000379601900D928A95E1F749815A816B816A
+:1021F0007C818D819E810E9421172B960FB6F894C9
+:10220000DEBF0FBECDBFDF91CF910895CF9388235E
+:1022100009F4C2C0C82F823859F40E94EA0F81FD28
+:10222000BBC089E30E94FB190E94C81A89E30CC055
+:10223000833879F40E94EA0F80FDAEC083E50E94E6
+:10224000FB190E94C81A83E50E943D1ACF910C9495
+:10225000C81A843859F40E94EA0F82FD9DC087E4B1
+:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6
+:10227000813A48F48C2F0E947E2181118DC08C2FD1
+:102280000E94FB19E3CF80E28C0F883048F4C770BE
+:1022900081E001C0880FCA95EAF70E94811AD6CF63
+:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB
+:1022B00083E890E005C081E890E002C082E890E009
+:1022C000CF910C940C1088E58C0F833108F064C01A
+:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118
+:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186
+:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106
+:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173
+:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB
+:1023200038C082EE90E035C089EE90E032C08AEE8F
+:1023300090E02FC085EB90E02CC086EB90E029C0A8
+:1023400087EB90E026C08CEC90E023C08DEC90E011
+:1023500020C083E891E01DC08AE891E01AC082E9BC
+:1023600091E017C084E991E014C081E292E011C0CD
+:1023700083E292E00EC084E292E00BC085E292E03C
+:1023800008C086E292E005C087E292E002C08AE2DD
+:1023900092E0CF910C942210CF910895882309F4F4
+:1023A0004BC0823859F40E94EA0F81FF45C089E38F
+:1023B0000E94FB190E94C81A89E30CC0833871F48B
+:1023C0000E94EA0F80FF38C083E50E94FB190E943B
+:1023D000C81A83E50E943D1A0C94C81A843859F42F
+:1023E0000E94EA0F82FF28C087E40E94FB190E9426
+:1023F000C81A87E4EFCF9CEF980F913A58F390E218
+:10240000980F983050F4877091E001C0990F8A9529
+:10241000EAF7892F0E94871ADFCF9BE5980F933048
+:1024200020F480E090E00C940C10885A833120F462
+:1024300080E090E00C9422100895882321F00E94FF
+:10244000811A0C94C81A0895882321F00E94871AD3
+:102450000C94C81A08957F928F929F92AF92BF9268
+:10246000CF92DF92EF92FF920F931F93CF93DF9360
+:102470001F92CDB7DEB77C01C62E772EFC010581F9
+:1024800002950F70128111110E949E1A0E94F41978
+:10249000882379F0112369F080E28C0D883048F0B0
+:1024A00082E00E94DD190E94F41991E0D82ED9260D
+:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C
+:1024C0000C94B323872D807F072D0F70882311F084
+:1024D0000295007F112389F0002309F490C180E266
+:1024E0008C0D883020F4802F0E94811A03C0802F29
+:1024F0000E94911A0E94C81A82C18C2D0E94CE118E
+:10250000002309F495C180E28C0D883020F4802FDF
+:102510000E94871A03C0802F0E94971A0E94C81A2F
+:1025200087C1972D907F872D8F70903211F0829503
+:10253000807FCC2021F0F1E0CF16B1F01EC0112336
+:1025400049F0002309F414C1013009F011C10E94BF
+:10255000B11A6EC1002319F0013009F469C18983F1
+:102560000E94B41A89810AC1112321F0023008F0B7
+:102570005FC1FEC001115CC101C1112321F0002324
+:1025800009F4F6C03CC1002309F4F8C03EC1872D10
+:1025900086958695837090E0009719F0019761F019
+:1025A00047C1112321F08C2D972D937002C080E03C
+:1025B00090E00E940C103CC1112321F08C2D972D2E
+:1025C000937002C080E090E00E94221031C18C2DF7
+:1025D000112319F00E94431E02C00E94AB1E0E94EC
+:1025E000301F26C1872D837009F052C0111120C100
+:1025F0008C2D829586958770880F880F9C2D9F70F3
+:10260000892E912CA12CB12C082E04C0880C991C69
+:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041
+:1026200020E030E0B901A80104C0440F551F661F27
+:10263000771F8A95D2F7CB01BA0160957095809586
+:10264000909503C060E070E0CB01272D269526957C
+:10265000237030E02230310569F02330310589F0F4
+:10266000682979298A299B292130310571F00E9436
+:102670006918DEC0682979298A299B290E94851852
+:10268000D7C00E946918C501B4010E944D18D0C07E
+:10269000112319F0872D817001C08695882309F4D4
+:1026A000C7C08C2D829586958770880F880F9C2DCA
+:1026B0009F70892E912CA12CB12C082E04C0880C5F
+:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC
+:1026D00010E020E030E0B901A80104C0440F551F0C
+:1026E000661F771F8A95D2F7CB01BA016095709566
+:1026F0008095909503C060E070E0CB01272D269572
+:1027000026952370422F50E04230510569F0433046
+:10271000510589F0682979298A299B294130510579
+:1027200071F00E94431984C0682979298A299B295C
+:102730000E945F197DC00E944319C501B4010E9427
+:10274000271976C08C2D90E0FC01E05EF109E5319F
+:10275000F10508F050C0E059FF4F0C94B3230C2D45
+:102760000F70872D8F71112331F00E94C018802FB8
+:102770000E941D125DC00E94E118802F0E94241249
+:1027800057C0112339F0011153C0872D8F710E945A
+:1027900006194EC0023008F04BC0F7CF112339F0B4
+:1027A000872D8F710E94C01843C01123C9F3872D54
+:1027B0008F710E94E1183CC0112329F0872D8F7181
+:1027C0000E94AB1835C00E94A11832C0112351F0ED
+:1027D000172D1F71812F0E94C01863E0812F0E9466
+:1027E000D41926C081E00E94DD19023008F182E090
+:1027F0000E94DD191DC0112331F0002389F28C2DB8
+:102800000E94061115C0002391F28C2D0E94CE115A
+:102810000FC0472D4F706C2DC7010E9415050E94F7
+:10282000C51706C0472D4F706C2DC7010E94F205D9
+:10283000DD20F9F00E94D01980FD1BC0F701128243
+:102840000E94CA190E94C018C7010E9448140E9421
+:10285000CA190F90DF91CF911F910F91FF90EF90C8
+:10286000DF90CF90BF90AF909F908F907F900C940F
+:10287000E1180F90DF91CF911F910F91FF90EF9092
+:10288000DF90CF90BF90AF909F908F907F900895F2
+:102890000F931F93CF93DF93EC01888199812B8154
+:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B
+:1028B0000E944A05882371F0688179818A810E948B
+:1028C000C6198C010E947B190E944218B801CE01E2
+:1028D0000E942B12DF91CF911F910F9108950E94BA
+:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471
+:1028F000E11F0E94301F80E090E00E940C1080E0F9
+:1029000090E00C9422100E948E1A0C946F140E9476
+:10291000BB19292F22952F7030E02C3031054CF453
+:102920002A3031056CF42250310922303105A8F4E7
+:1029300007C02C30310569F02F30310551F00DC042
+:10294000803F69F018F4803E40F409C0843F29F4C8
+:1029500006C093FB882780F9089580E0089581E000
+:102960000895CF93DF9300D000D01F92CDB7DEB78C
+:102970000F900F900F900F900F90DF91CF910895CF
+:10298000CF93DF9300D000D000D0CDB7DEB726962E
+:102990000FB6F894DEBF0FBECDBFDF91CF91089583
+:1029A0001F93CF93DF93C091850116E0809186013C
+:1029B000C81799F0D0E01C9FF0011D9FF00D112465
+:1029C000E957FE4F408151816281738184819581F5
+:1029D0000E94C0142196C770E9CFDF91CF911F915B
+:1029E00008954091B7015091B8016091B90170917B
+:1029F000BA018091BB019091BC010C94C0148091EC
+:102A0000BC0182958F7009F054C08091B901882370
+:102A100009F44FC080918501A09186016091B701B2
+:102A20007091B8014091BA015091BB01B6E08A178C
+:102A300009F43FC090E041155105C1F17F3F11F409
+:102A40006F3FA1F1B89FF001B99FF00D1124E95734
+:102A5000FE4F218172132AC02081621327C0228178
+:102A6000211124C0238134812417350710F421500B
+:102A70003109241B350B283C3105C0F42091BC01E1
+:102A80002F7020612093BC0126E0289FF001299F30
+:102A9000F00D1124E457FE4F80818F708061808398
+:102AA00087EB91E00E9448140C94D0140196877033
+:102AB000BECF0895CF92DF92EF92FF920F931F93B4
+:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32
+:102AD0000FBECDBF8C0185E0F801DE011D9601908F
+:102AE0000D928A95E1F7D8014C9111965C9111975E
+:102AF00012966C9112971396CD90DC9014973091AA
+:102B0000B7017091B8018091BA019091BB01009713
+:102B100009F46BC17F3F19F43F3F09F466C1E090AF
+:102B2000B901EE2009F4C0C02091BC01C816D90635
+:102B300028F0F601E81BF90BCF0104C080959095B1
+:102B40008C0D9D1DFF24F394883C910578F0F12CA9
+:102B5000207F09F0C6C07C2DD98AC88A89890E9445
+:102B6000B11487EB91E00E944814B1C0822F807F9E
+:102B700009F046C0751314C0341312C0611110C09F
+:102B80002F7020612093BC010E94F11487EB91E02B
+:102B90000E9448148091BC01D80115968C932EC0D8
+:102BA000CD2819F15F3F11F44F3FF9F0F62E611176
+:102BB0001CC0809185012091860136E0821709F4BE
+:102BC0005AC090E0389FF001399FF00D1124E95769
+:102BD000FE4F7181571306C07081471303C0728185
+:102BE000711103C001968770E9CFF62E662309F4B0
+:102BF00018C18091BC0181608093BC01F12C11C18E
+:102C0000751308C0341306C0611104C08091BC0163
+:102C1000D801C3C04D875E878D859E856A8B0E94D3
+:102C200087146A898823E1F16623D1F12091BC01E0
+:102C3000822F82958F7090E0029774F08091B70197
+:102C40009091B80198878F831986DB86CA862C8776
+:102C5000CE0107960E94481486E0F801A7EBB1E088
+:102C600001900D928A95E1F70E94FF140E94F114E1
+:102C7000FF24F394D6C04D875E878D859E850E9484
+:102C8000BB19292F22952F7030E0223031050CF02E
+:102C9000BCC09F7009F0B6C0805E883008F4C1C027
+:102CA000C8010E944814E4CFC816D90608F453C0DE
+:102CB000F601E81BF90BCF01883C910508F450C0E0
+:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E
+:102CD000F1E086E0DF011D928A95E9F70E94F11488
+:102CE000A0C0751314C0341312C0611110C08091BC
+:102CF000BC01F8018583C8010E94481486E0E7EB17
+:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C
+:102D10005E878D859E856A8B0E9487146A898823C9
+:102D200009F4BECF662309F4BBCF2091BC01822FEA
+:102D300082958F7090E002970CF48ECF8091B7014E
+:102D40009091B8019A8389831B82DD82CC822E8385
+:102D5000CE0101967FCF809590958C0D9D1DACCFB7
+:102D6000F62E662309F49CCF75132EC034132CC0A5
+:102D70002091BC0120FD1FC0822F82958F70D9F059
+:102D8000D80115962C9315978F3049F08F5F982FA7
+:102D90009295907F822F8F70892B15968C93C80106
+:102DA0000E94481486E0F801A7EBB1E001900D9273
+:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7
+:102DC0000D928A95E1F72DC04D875E878D859E8592
+:102DD0000E948714811140CF8091BC018160809353
+:102DE000BC01C8010E9448141CC0662309F458CFD6
+:102DF0004D875E878D859E850E948714882309F400
+:102E00004FCF2ACF811148CF0CC0243031050CF0B0
+:102E100047CF9F7009F440CFF8019581907F09F06A
+:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D
+:102E3000DF91CF911F910F91FF90EF90DF90CF9096
+:102E400008951F93CF93DF93CDB7DEB72C970FB6BE
+:102E5000F894DEBF0FBECDBF4F83588769877A874E
+:102E60008B879C87CE0107960E945A15882369F0AC
+:102E70008F8198852A853B85232BF1F19F3F09F0AF
+:102E800063C08F3F09F060C037C086E0FE0137960F
+:102E9000DE01119601900D928A95E1F76F81788598
+:102EA000EA85FB85309741F17F3F11F46F3F21F1B7
+:102EB0002091860130E0C9010196877099274091E1
+:102EC000850150E08417950709F447C069837A8328
+:102ED000FD83EC8396E0929FD001939FB00D112467
+:102EE000A957BE4FFE01319601900D929A95E1F7D8
+:102EF000809386010E94D01416E080918501909104
+:102F000086018917C1F1189FC001112489579E4F6E
+:102F10000E945A15882379F1E09185011E9FF001E6
+:102F20001124E957FE4F4081518162817381848170
+:102F300095810E94C0148091850190E00196877070
+:102F4000992780938501D9CF4F81588569857A85E6
+:102F50008B859C850E94C014CFCF0E948314109251
+:102F6000860110928501E7EBF1E086E0DF011D921A
+:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45
+:102F8000CDBFDF91CF911F910895EF92FF920F93E4
+:102F90001F93CF93DF938C01009709F46CC0F12C41
+:102FA000EE24E394E8012196F8018491843740F4FB
+:102FB000843008F051C0813081F0823019F15BC05B
+:102FC000853709F444C0A8F19CE7980F903708F0C2
+:102FD00052C08F770E94CE1141C00E5F1F4FFE017D
+:102FE000C49180E28C0F883048F4C7708E2D01C0E8
+:102FF000880FCA95EAF70E94A11A14C08C2F0E946C
+:1030000006112DC00E5F1F4FFE01C49180E28C0F90
+:10301000883058F4C7708E2D01C0880FCA95EAF722
+:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3
+:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3
+:103040009FE00197F1F700C00000C150F6CF0E5F7E
+:103050001F4FFE01F49003C00E9406118E018F2DB8
+:10306000882309F49FCFEFE9FFE03197F1F700C023
+:1030700000008150F5CFDF91CF911F910F91FF900C
+:10308000EF90089508956093C1017093C2018093F9
+:10309000C3019093C4010C946F140F931F9300917C
+:1030A000C1011091C2012091C3013091C401DC0122
+:1030B000CB01802B912BA22BB32B8093C10190933A
+:1030C000C201A093C301B093C4011F910F910C944E
+:1030D0006F140F931F930091C1011091C2012091B1
+:1030E000C3013091C401DC01CB0180239123A223D1
+:1030F000B3238093C1019093C201A093C301B09305
+:10310000C4011F910F910C946F140F931F930091A2
+:10311000C1011091C2012091C3013091C401DC01B1
+:10312000CB0180279127A227B3278093C1019093D9
+:10313000C201A093C301B093C4011F910F910C94DD
+:103140006F141092BD011092BE011092BF01109237
+:10315000C0010C946F1441E050E060E070E004C0E6
+:10316000440F551F661F771F8A95D2F74093BD0104
+:103170005093BE016093BF017093C0010C946F1413
+:1031800041E050E060E070E004C0440F551F661F4E
+:10319000771F8A95D2F78091BD019091BE01A091D1
+:1031A000BF01B091C001482B592B6A2B7B2B409358
+:1031B000BD015093BE016093BF017093C0010C9498
+:1031C0006F1441E050E060E070E004C0440F551F10
+:1031D000661F771F8A95D2F7409550956095709538
+:1031E0008091BD019091BE01A091BF01B091C0013D
+:1031F000482359236A237B234093BD015093BE018A
+:103200006093BF017093C0010C946F1441E050E0D3
+:1032100060E070E004C0440F551F661F771F8A9559
+:10322000D2F78091BD019091BE01A091BF01B091F4
+:10323000C001482759276A277B274093BD01509337
+:10324000BE016093BF017093C0010C946F140F9383
+:103250001F930091BD011091BE012091BF013091DB
+:10326000C001DC01CB01802B912BA22BB32B8093CF
+:10327000BD019093BE01A093BF01B093C0011F9107
+:103280000F910C946F140F931F930091BD01109137
+:10329000BE012091BF013091C001DC01CB01802330
+:1032A0009123A223B3238093BD019093BE01A093E9
+:1032B000BF01B093C0011F910F910C946F140F9335
+:1032C0001F930091BD011091BE012091BF0130916B
+:1032D000C001DC01CB0180279127A227B32780936F
+:1032E000BD019093BE01A093BF01B093C0011F9197
+:1032F0000F910C946F140895CF92DF92EF92FF928A
+:103300000F931F93CF93DF938C01C090C101D09096
+:10331000C201E090C301F090C4018091BD01909181
+:10332000BE01A091BF01B091C001C82AD92AEA2AE2
+:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520
+:10334000A795979587950A94D2F780FF06C0B80194
+:103350008C2F0E944808019721F4219760F780E0A4
+:1033600001C08C2FDF91CF911F910F91FF90EF90B3
+:10337000DF90CF900895CF93DF93EC010E947C19EA
+:10338000BE010E944808DF91CF910895CB010E94B1
+:10339000BB1908958091C5018595859585950895FA
+:1033A0008091C5018770089598E0899F900111244C
+:1033B000262B2093C5010C94C0182091C50180953F
+:1033C00082238093C501982F977069F430E0482FCD
+:1033D000552747FD50952417350729F08595859584
+:1033E00085950C94E11808959091C501977081E03E
+:1033F00009F480E0089590910C01992321F09091B7
+:103400000D01911109C020910E0130910F01F901B8
+:1034100032969FEF40E01FC0982F9695969596950F
+:103420009F3050F5E0910E01F0910F01E90FF11D71
+:10343000877021E030E0A90102C0440F551F8A9532
+:10344000E2F7CA019181892B818308959F3F39F06A
+:103450004F5F4E3041F051915813F8CF0DC05111CC
+:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08
+:1034700097FDFA9582830895089590910C01992300
+:1034800021F090910D01911109C020910E01309110
+:103490000F01F9013296205F3F4F1FC0982F96957C
+:1034A000969596959F30F0F4E0910E01F0910F0102
+:1034B000E90FF11D877021E030E0A90102C0440F3F
+:1034C000551F8A95E2F7CA018095918189238183EE
+:1034D00008953196E217F30729F090819813F9CFF8
+:1034E0001082F7CF089581E090E0E0910E01F09115
+:1034F0000F01E80FF91F1082019680319105A9F79D
+:1035000008959091D901892B8093D90108958095D0
+:103510009091D90189238093D90108951092D901FE
+:1035200008959091D801892B8093D80108958095B2
+:103530009091D80189238093D80108951092D801E1
+:1035400008959091D701892B8093D7010895809594
+:103550009091D70189238093D70108951092D701C4
+:1035600008958093C60108951092C6010895809130
+:103570000E0190910F01FC0131969C01205F3F4F9D
+:1035800080E0919191118F5FE217F307D1F70895D1
+:10359000E0910E01F0910F018091D9018083E091BB
+:1035A0000E01F0910F0190818091D801892B8083C9
+:1035B000E0910E01F0910F0190818091D701892B4C
+:1035C00080838091C601882361F0E0910E01F09123
+:1035D0000F019081892B80830E94B71A811110926C
+:1035E000C60180910E0190910F010C94F60F20E01E
+:1035F000009739F0AC0141505109842395232F5F86
+:10360000F7CF822F0895CF92DF92EF92FF926C0155
+:10361000EE24FF24C114D104E104F10421F0C70118
+:10362000B60120E101C020E0C72ED82EE92EFF24EC
+:10363000C114D104E104F10419F0285FC701B601F7
+:103640006B017C0154E0F694E794D794C7945A95A3
+:10365000D1F7C114D104E104F10419F02C5FC701C2
+:10366000B6016B017C0142E0F694E794D794C794CD
+:103670004A95D1F7C114D104E104F10419F02E5F89
+:10368000C701B601DC01CB01B695A7959795879543
+:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5
+:1036A000DF90CF9008958091F101843021F1109244
+:1036B000DB0120E488E190E00FB6F894A8958093B0
+:1036C00060000FBE2093600080E00E94E30883B793
+:1036D000817F846083BF83B7816083BF789488953E
+:1036E00083B78E7F83BF88E10FB6F8948093600024
+:1036F000109260000FBE0895089508950E947C1BEB
+:103700000E944B030E947D1B0E94400491E08111A6
+:1037100001C090E0892F08950E9483140E94EA0F4F
+:103720000C94E30882E084BD93E095BD9AEF97BDC9
+:1037300080936E0008952FB7F8948091DC019091EA
+:10374000DD01A091DE01B091DF012FBF0895CF927E
+:10375000DF92EF92FF920F931F932FB7F89440914F
+:10376000DC015091DD016091DE017091DF012FBF1E
+:103770006A017B01EE24FF248C0120E030E0C016BA
+:10378000D106E206F30610F4415051099A01281BB4
+:10379000390BC9011F910F91FF90EF90DF90CF90EF
+:1037A00008951F920F920FB60F9211248F939F933B
+:1037B000AF93BF938091DC019091DD01A091DE0178
+:1037C000B091DF010196A11DB11D8093DC019093A2
+:1037D000DD01A093DE01B093DF01BF91AF919F9116
+:1037E0008F910F900FBE0F901F9018950E94E70CBD
+:1037F000F8942FEF87EA91E6215080409040E1F75E
+:1038000000C0000087E090EBDC018093FB01909307
+:10381000FC01A093FD01B093FE019CE088E10FB68E
+:10382000F894A895809360000FBE90936000FFCF3E
+:10383000EF92FF920F931F93CF93DF93D82FCDE09A
+:103840008C2F0E94390405E010E0E82EF12CC7010E
+:10385000002E02C0959587950A94E2F780FF09C073
+:10386000602F7C2F80E00E94F305D81302C081E016
+:1038700006C00150110958F7C15010F780E0DF91E0
+:10388000CF911F910F91FF90EF900895CF93C82F84
+:103890008CE20E94181C882321F08C2FCF910C946D
+:1038A000181C80E0CF910895CF930E949B1D811139
+:1038B00002C00E94811DC5E6C15049F00E944B0321
+:1038C0008FE39CE90197F1F700C00000F5CF89E292
+:1038D0000E94461C811113C18AE20E94461C81117C
+:1038E0000E94811D85E00E94461C81110E94F61BEA
+:1038F0000E94A61D8093DA0187E00E94461C88235F
+:10390000A9F18BE10E94461C882351F08091DA01D5
+:1039100081FB222720F991E0922790FB81F90EC0CC
+:103920008EE00E94461C882361F08091DA0182FBC0
+:10393000222720F991E0922790FB82F98093DA0107
+:1039400015C080E10E94461C9091DA01882341F065
+:1039500093FB222720F981E0822780FB93F904C0A2
+:10396000892F809580FB90F99093DA018091DA019C
+:103970000E94AA1D0E94B81D8093FA0180EE0E9449
+:10398000461C882341F08091FA01982F909590FB76
+:1039900080F98093FA0189E30E94461C882359F03C
+:1039A0008091FA0181FB222720F991E0922790FB78
+:1039B00081F98093FA0182EE0E94461C882359F017
+:1039C0008091FA0182FB222720F991E0922790FB57
+:1039D00082F98093FA0186EE0E94461C882359F0F2
+:1039E0008091FA0183FB222720F991E0922790FB36
+:1039F00083F98093FA0183EE0E94461C882359F0D4
+:103A00008091FA0184FB222720F991E0922790FB14
+:103A100084F98093FA0185E30E94461C882359F0BB
+:103A20008091FA0185FB222720F991E0922790FBF3
+:103A300085F98093FA0181E30E94461C882359F09E
+:103A40008091FA0186FB222720F991E0922790FBD2
+:103A500086F98093FA0181E10E94461C882359F07F
+:103A60008091FA0187FB222720F991E0922790FBB1
+:103A700087F98093FA018091FA010E94BC1D809120
+:103A8000FA0187FB882780F980930D0187E20E9465
+:103A9000461CC82F8EE10E94461C8111C2608FE136
+:103AA0000E94461C8111C46080E20E94461C811164
+:103AB000C86081E20E94461C8111C06182E20E94BE
+:103AC000461C8111C06283E20E94461C8111C064C1
+:103AD00084E20E94461C882311F0C06802C0CC23F7
+:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4
+:103AF000682F70E080E090E0CF910C944318CF9154
+:103B000008956DEE7EEF80E090E00E94ED2360E08E
+:103B100082E090E00E94DB2360E083E090E00E947E
+:103B2000DB2360E084E090E00E94DB2360E085E03E
+:103B300090E00C94DB2380E090E00E94D52321E00C
+:103B40008D3E9E4F09F020E0822F089582E090E0A4
+:103B50000C94CD23682F82E090E00C94DB2383E06B
+:103B600090E00C94CD23682F83E090E00C94DB234D
+:103B700084E090E00C94CD23682F84E090E00C94D6
+:103B8000DB238091E20180FF0BC06091130185E08F
+:103B9000689FB001112475956795759567952BC041
+:103BA00081FF09C06091130185E0689FB001112475
+:103BB0007595679520C082FF07C06091130185E06D
+:103BC000689FB001112417C09091E3019923D1F0AF
+:103BD00060911201961788F72091130185E0289FC4
+:103BE00090011124929FA001939F500D112470E029
+:103BF000CA010E949F236038710540F46115710568
+:103C000039F002C065E070E0862F08958FE70895CF
+:103C100081E008958091E20180FF08C06091110168
+:103C200070E0759567957595679521C081FF06C011
+:103C30006091110170E07595679519C082FF04C00D
+:103C40006091110170E010C09091E3019923C1F0DF
+:103C5000609110019617A0F780911101899FC00112
+:103C6000112470E00E949F236038710528F46115CB
+:103C7000710521F0862F08958FE7089581E008955A
+:103C800061E070E0F4CF803F21F40E94C11D819576
+:103C900004C0813F29F40E94C11D8093E60108956C
+:103CA000823F21F40E94C11D819504C0833F29F405
+:103CB0000E94C11D8093E5010895893F19F40E9477
+:103CC0000A1E05C08A3F31F40E940A1E8195809326
+:103CD000E70108958B3F21F40E940A1E819504C0DC
+:103CE0008C3F29F40E940A1E8093E8010895843FC6
+:103CF00021F48091E401816017C0853F21F4809117
+:103D0000E401826011C0863F21F48091E401846067
+:103D10000BC0873F21F48091E401886005C0883F93
+:103D200031F48091E40180618093E40108958D3F36
+:103D300021F48091E20181600BC08E3F21F48091DB
+:103D4000E201826005C08F3F29F48091E201846026
+:103D50008093E2010895803F39F48091E60187FF66
+:103D60006CC01092E60169C0813F29F48091E601A0
+:103D70001816BCF362C09091E501823F29F497FFC9
+:103D80005CC01092E50159C0833F19F41916CCF3B9
+:103D900054C0893F41F48091E70118160CF04DC0E2
+:103DA0001092E7014AC08A3F29F48091E70187FF1A
+:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6
+:103DC0001092E8013AC08C3F29F48091E80118165E
+:103DD000BCF333C0843F21F48091E4018E7F17C08F
+:103DE000853F21F48091E4018D7F11C0863F21F44D
+:103DF0008091E4018B7F0BC0873F21F48091E40127
+:103E0000877F05C0883F31F48091E4018F7E8093E5
+:103E1000E40113C08D3F21F48091E2018E7F0BC03D
+:103E20008E3F21F48091E2018D7F05C08F3F29F400
+:103E30008091E2018B7F8093E2018091E501811105
+:103E40000EC08091E60181110AC08091E7018111C5
+:103E500006C08091E801811102C01092E30108952B
+:103E600084EE91E00E9401100E949B1B9093E1015F
+:103E70008093E00108951F93CF93DF938091E00139
+:103E80009091E1010E94A71BAC019091E30199235D
+:103E900021F02091140130E006C0209115018AE044
+:103EA000289F900111244217530708F486C080917F
+:103EB000E501C091E601D091E7011091E80181117F
+:103EC00007C0C11176C0D11174C0111172C075C084
+:103ED0009F3F19F09F5F9093E301181624F40E940E
+:103EE000C11D8093E5018091E50187FF05C00E9417
+:103EF000C11D81958093E5011C1624F40E94C11D0B
+:103F00008093E6018091E60187FF05C00E94C11DF4
+:103F100081958093E6016091E501662339F1C091B6
+:103F2000E601CC2319F1772767FD7095872F972F2E
+:103F30000E94B02223E333E343E35FE30E941423B0
+:103F40000E947D226093E5016C2F772767FD7095B5
+:103F5000872F972F0E94B02223E333E343E35FE3ED
+:103F60000E9414230E947D226093E6011D1624F412
+:103F70000E940A1E8093E7018091E70187FF05C038
+:103F80000E940A1E81958093E701111624F40E9475
+:103F90000A1E8093E8018091E80187FF05C00E9416
+:103FA0000A1E81958093E801DF91CF911F910C94B7
+:103FB000301F9F3F09F08ECF96CFDF91CF911F9199
+:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE
+:103FD0001092E3011092E2010895833081F128F4F8
+:103FE000813059F08230D1F00895853009F449C00C
+:103FF000B8F1863009F456C0089580911501262F36
+:1040000030E0280F311D2F3F310524F4680F6093F5
+:10401000150108958FEF8093150108958091140183
+:10402000262F30E0280F311D2F3F310524F4680F73
+:104030006093140108958FEF809314010895809187
+:104040001301262F30E0280F311D2F3F310524F4B6
+:10405000680F6093130108958FEF80931301089503
+:1040600080911201262F30E0280F311D2F3F31059E
+:1040700024F4680F6093120108958FEF809312016A
+:10408000089580911101262F30E0280F311D2F3F18
+:10409000310524F4680F6093110108958FEF809328
+:1040A0001101089580911001262F30E0280F311D55
+:1040B0002F3F310524F4680F6093100108958FEFAE
+:1040C000809310010895833011F128F4813049F074
+:1040D000823091F00895853081F120F18630C1F170
+:1040E000089580911501681720F4861B80931501AF
+:1040F000089510921501089580911401681720F415
+:10410000861B8093140108951092140108958091E4
+:104110001301681720F4861B8093130108951092F1
+:104120001301089580911201681720F4861B809373
+:1041300012010895109212010895809111016817DB
+:1041400020F4861B809311010895109211010895A7
+:1041500080911001681720F4861B80931001089548
+:104160001092100108950F931F938D3109F46BC0C5
+:1041700008F03FC08E3009F47FC0C0F4873009F4E6
+:1041800069C068F4863009F0B1C08091DA01817F9E
+:104190008E7F8093DA0181E08093EA01A8C08830A5
+:1041A00009F4A2C08B3009F49FC0A0C0863109F485
+:1041B0009BC078F4803109F472C0813109F096C057
+:1041C0000E94831490910D0181E0892780930D0155
+:1041D0008BC0893109F488C08B3109F087C0809188
+:1041E000DA0181FB222720F991E0922790FB81F9E7
+:1041F0004CC0853309F470C048F4873209F46CC0B0
+:1042000008F459C0893209F467C070C0833438F4A7
+:104210008A3308F04EC0883309F466C067C083341F
+:1042200009F45AC0883409F061C00E9483140FEF6A
+:1042300013ED20E3015010402040E1F700C00000E2
+:104240000E94F61B51C00E9437220E94EA0F0E9472
+:10425000E3084AC09091DA01892F8095817080FB34
+:1042600090F929F0966098609093DA0140C0997FA8
+:10427000977F9093DA0138C08091DA0182FB222780
+:1042800020F991E0922790FB82F98093DA0199233B
+:1042900059F18091DA0181608093DA0125C0809123
+:1042A000DA0183FB222720F991E0922790FB83F922
+:1042B000ECCF895301C08D5141E050E060E070E0E7
+:1042C0008A019B0104C0000F111F221F331F8A9512
+:1042D000D2F7C901B80104C061E070E080E090E06D
+:1042E0000E9443180E94831481E001C080E01F9166
+:1042F0000F91089580E0089580E00895CF93C82F2E
+:104300008091EA01813079F018F08230E9F187C0BC
+:10431000E0910E01F0910F018081813169F08232CC
+:1043200009F07FC009C0E0910E01F0910F0180817A
+:10433000813111F0823261F48C2F0E947A21811137
+:1043400004C08C2F0E94B3201DC081E090E01AC0F1
+:104350008C2F0E947C21811114C0C43179F048F463
+:10436000CB3079F0C03109F060C082E08093EA017F
+:1043700008C0C93219F0C83321F057C01092EA01C1
+:1043800054C081E0817053C0C93289F118F5C4313D
+:1043900071F1A8F4C73009F046C08AE08093150196
+:1043A00094E19093140193E0909313018093120190
+:1043B00088E08093110188E28093100134C0CE51CF
+:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB
+:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC
+:1043E00013C0C13579F0C235F1F461E00DC08091A0
+:1043F000E901882319F01092E90115C081E080934A
+:10440000EA0115C061E006C08091E9010E94ED1F3C
+:104410000AC06AE08091E9010E94632004C0109202
+:10442000EA0180E004C081E002C080E0ABCFCF9120
+:104430000895E1E8F0E08081886080838081816078
+:1044400080838FB7F89493E09093890090ED9093D8
+:1044500088008FBF0895EFE6F0E08081826080835E
+:104460000895EFE6F0E080818D7F80830895EFE688
+:10447000F0E0908182E08927808308951F920F9257
+:104480000FB60F9211242F933F934F935F936F9327
+:104490007F938F939F93AF93BF93EF93FF938091FD
+:1044A000EB019091EC0101969093EC018093EB016C
+:1044B000811103C082E00E94E308E091EC01E695DF
+:1044C000E695F0E0EC54FB4FE4918091EB018E1304
+:1044D00003C080E00E94E308FF91EF91BF91AF918C
+:1044E0009F918F917F916F915F914F913F912F910C
+:1044F0000F900FBE0F901F90189504D06894B111C3
+:104500008DC0089570D088F09F5790F0B92F9927EB
+:10451000B751A0F0D1F0660F771F881F991F1AF0CE
+:10452000BA95C9F712C0B13081F077D0B1E00895E3
+:1045300074C0672F782F8827B85F39F0B93FCCF364
+:10454000869577956795B395D9F73EF490958095C4
+:10455000709561957F4F8F4F9F4F0895E89409C0E4
+:1045600097FB3EF490958095709561957F4F8F4FA6
+:104570009F4F9923A9F0F92F96E9BB279395F695BC
+:10458000879577956795B795F111F8CFFAF4BB0F3A
+:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E
+:1045A000882311F096E911C0772321F09EE8872F28
+:1045B000762F05C0662371F096E8862F70E060E0E4
+:1045C0002AF09A95660F771F881FDAF7880F96955D
+:1045D000879597F9089557FD9058440F551F59F046
+:1045E0005F3F71F04795880F97FB991F61F09F3FE0
+:1045F00079F087950895121613061406551FF2CF09
+:104600004695F1DF08C0161617061806991FF1CF58
+:1046100086957105610508940895E894BB2766277F
+:104620007727CB0197F908950BD078C069D028F08F
+:104630006ED018F0952309F05AC05FC01124EECF58
+:10464000CADFA0F3959FD1F3950F50E0551F629FED
+:10465000F001729FBB27F00DB11D639FAA27F00DDB
+:10466000B11DAA1F649F6627B00DA11D661F829F02
+:104670002227B00DA11D621F739FB00DA11D621FE7
+:10468000839FA00D611D221F749F3327A00D611D04
+:10469000231F849F600D211D822F762F6A2F1124E6
+:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39
+:1046B000BB1F661F771F881F91505040A9F79E3F70
+:1046C000510570F014C0AACF5F3FECF3983EDCF3C5
+:1046D000869577956795B795F795E7959F5FC1F7AD
+:1046E000FE2B880F911D9695879597F9089597F958
+:1046F0009F6780E870E060E008959FEF80EC089588
+:1047000000240A94161617061806090608950024B0
+:104710000A9412161306140605060895092E03942A
+:10472000000C11F4882352F0BB0F40F4BF2B11F49E
+:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF
+:10474000072E16F4009407D077FD09D00E94B923F4
+:1047500007FC05D03EF4909581959F4F0895709584
+:1047600061957F4F0895EE0FFF1F0590F491E02DA6
+:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8
+:10478000B70710F0A61BB70B881F991F5A95A9F7FA
+:1047900080959095BC01CD010895F999FECF92BD09
+:1047A00081BDF89A992780B50895A8E1B0E042E06C
+:1047B00050E00C94F523262FF999FECF92BD81BDD0
+:1047C000F89A019700B4021639F01FBA20BD0FB64F
+:1047D000F894FA9AF99A0FBE08950196272F0E942D
+:1047E000DC230C94DB23DC01CB01FC01F999FECF27
+:1047F00006C0F2BDE1BDF89A319600B40D92415069
+:0A4800005040B8F70895F894FFCF78
+:10480A000220E508730950091C09E8080101C701DB
+:10481A0028080A03140A3F4D363975042804F2039E
+:10482A00B9034C0365037E039703010203040506DB
+:04483A000708090062
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout0.png b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout0.png Binary files differnew file mode 100644 index 000000000..6a36f9bfa --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout0.png diff --git a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout1.png b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout1.png Binary files differnew file mode 100644 index 000000000..c6e6d913c --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout1.png diff --git a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout2.png b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout2.png Binary files differnew file mode 100644 index 000000000..23f56ff4c --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keyboard-layout2.png diff --git a/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keymap.c b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keymap.c new file mode 100644 index 000000000..82f55b4bc --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/dvorak_intl_squisher/keymap.c @@ -0,0 +1,185 @@ +#include "ergodox_ez.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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | BrBck| | Play | 6 | 7 | 8 | 9 | 0 | \ / L2 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Esc | ' | , | . | P | Y | Del | | Ins | F | G | C | R | L | / | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | A | O | E | U | I |------| |------| D | H | T | N | S | - | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |:/Ctrl| Q | J | K | X | | | | B | M | W | V |Z/Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| LAlt | LGui | Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,---------------. + * | App | L1 | | L2 |PrntScr | + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space| Tab |------| |------| AltShf |Enter | + * | | | 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_WBAK, + KC_ESC, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_DELT, + KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I, + KC_LSFT, CTL_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, ALL_T(KC_NO), + LT(SYMB,KC_GRV),KC_LALT, KC_LGUI, KC_LEFT,KC_RGHT, + CTL_T(KC_APP), TG(1), + KC_HOME, + KC_SPC,KC_TAB,KC_END, + // right hand + KC_MPLY, KC_6, KC_7, KC_8, KC_9, KC_0, LT(MDIA, KC_BSLS), + KC_INS, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, + MEH_T(KC_NO),KC_B, KC_M, KC_W, KC_V, CTL_T(KC_Z), KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN1, + TG(2), KC_PSCREEN, + KC_PGUP, + KC_PGDN,RALT(KC_RSFT), KC_ENT + ), +/* Keymap 1: Symbol & Media Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Prev | Next | | | . | 0 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | |VolUp | | | + * | | |------| |------| Mute | | + * | | | | |VolDn | | | + * `--------------------' `--------------------' + */ +// 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_MPRV,KC_MNXT, + 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_VOLU, + KC_VOLD, KC_MUTE, KC_TRNS +), +/* Keymap 2: QWERTY Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | Q | W | E | R | T | | | | Y | U | I | O | P | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | A | S | D | F | G |------| |------| H | J | K | L | ; | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +KEYMAP( // layer 0 : default + // left hand + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,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, CTL_T(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, + // right hand + KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, + KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TRNS, + KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_TRNS, + KC_TRNS, KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(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 + ), +}; + +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_ez/keymaps/dvorak_spanish/README.md b/keyboards/ergodox_ez/keymaps/dvorak_spanish/README.md new file mode 100644 index 000000000..e075e3cd7 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/dvorak_spanish/README.md @@ -0,0 +1,99 @@ +# Ergodox Spanish Dvorak Layout + * See spanish dvorak layout [here](http://djelibeibi.unex.es/dvorak/) + * Software layout must be set to SPANISH QWERTY to work properly + +## Keymap Layers + - L0: spanish dvorak with some customizations (see layout below) + - L1: auxiliary keys (includes qwerty shortcuts, numpad...) + - L2: qwerty layout with customizations + + +### Keymap 0: Base layer +Keys with double values (like Esc/Ctrl) correspond to the 'tapped' key and the 'held' key, respectively + +<pre><code> + +,--------------------------------------------------. ,--------------------------------------------------. +| \ | 1 | 2 | 3 | 4 | 5 | <> | | ¡ | 6 | 7 | 8 | 9 | 0 | ' | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| F1/~L1 | . | , | Ñ | P | Y |MEH_T | | L1 | F | G | C | H | L |ALL_T/+ | +|--------+------+------+------+------+------| DEL | | ~L1 |------+------+------+------+------+--------| +|Esc/Ctrl| A | O | E | U | I |------| |------| D | R | T | N | S |'/RCtrl | +|--------+------+------+------+------+------| LGUI | | RALT |------+------+------+------+------+--------| +| {/LSft | - | Q | J | K | X | | | | B | M | W | V | Z | }/RSft | +'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------' + |[/LALT| HOME |PGDOWN| PGUP | END | | LEFT | DOWN | UP |RIGHT |]/LALT| + '----------------------------------' '----------------------------------' + ,-------------. ,-------------. + |F5/CAG|F6/~L1| |F7/~L1|F8/CAG| + ,------|------|------| |------+--------+------. + | | |F4/CA | |F11/CA| | | + | ENTER| TAB |------| |------| BSPC | SPACE| + | | |F3/SA | |F12/SA| | | + '--------------------' '----------------------' + CAG = CTRL-ALT-GUI + CA = CTRL-ALT + SA = SHIFT-ALT + +</pre></code> + +### Keymap 1: Aux layer + +<pre><code> + +,--------------------------------------------------. ,--------------------------------------------------. +| | F1 | F2 | F3 | F4 | F5 | SLEEP| | PWR | F6 | F7 | F8 | F9 | F10 | F11 | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| | < | > | MsUp | | | | | ~L0 | | 7 | 8 | 9 | * | '^ | +|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| +| | |MsLeft|MsDown|MsRght| |------| |------| | 4 | 5 | 6 | + | Ç | +|--------+------+------+------+------+------| | |PSCR |------+------+------+------+------+--------| +|CAPSLOCK| | | | | | | | | | 1 | 2 | 3 | / | | +'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------' + |CTRL-S|CTRL-Z|CTRL-X|CTRL-C|CTRL-V| | | . | 0 | = | | + '----------------------------------' '----------------------------------' + ,-------------. ,-------------. + | | | | | Play | + ,------|------|------| |------+------+------. + | | | | | VolUp| | | + | Lclk | Rclk |------| |------| Prev | Next | + | | | L2 | | VolDn| | | + '--------------------' '--------------------' + +</pre></code> + +### Keymap 2: QWERTY layer + +<pre><code> + +,--------------------------------------------------. ,--------------------------------------------------. +| \ | 1 | 2 | 3 | 4 | 5 | <> | | ¡ | 6 | 7 | 8 | 9 | 0 | ' | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| TRANS | Q | W | E | R | T |MEH_T | | TRANS| Y | U | I | O | P |ALL_T/+ | +|--------+------+------+------+------+------| DEL | | |------+------+------+------+------+--------| +|Esc/Ctrl| A | S | D | F | G |------| |------| H | J | K | L | Ñ |'/RCtrl | +|--------+------+------+------+------+------| LGUI | | RALT |------+------+------+------+------+--------| +| {/LSft | Z | X | C | V | B | | | | N | M | , | . | - | }/RSft | +'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------' + |[/LALT| HOME |PGDOWN| PGUP | END | | LEFT | DOWN | UP |RIGHT |]/LALT| + '----------------------------------' '----------------------------------' + ,-------------. ,-------------. + |F5/CAG| TRANS| | TRANS|F8/CAG| + ,------|------|------| |------+--------+------. + | | |F4/CA | |F11/CA| | | + | ENTER| TAB |------| |------| BSPC | SPACE| + | | | TRANS| |F12/SA| | | + '--------------------' '----------------------' + CAG = CTRL-ALT-GUI + CA = CTRL-ALT + SA = SHIFT-ALT + +</pre></code> + + +## Generation of .hex file +> [Download scripts from here](https://github.com/johgh/keyboard/tree/master/ergodox) + +> Execute install.sh and generate.sh scripts. + +> Flash with `teensy_loader` binary (should be installed from previous step) diff --git a/keyboards/ergodox_ez/keymaps/dvorak_spanish/compiled.hex b/keyboards/ergodox_ez/keymaps/dvorak_spanish/compiled.hex new file mode 100644 index 000000000..dcac1fe29 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/dvorak_spanish/compiled.hex @@ -0,0 +1,1149 @@ +:100000000C947B020C94BF020C94BF020C94BF02B0
+:100010000C94BF020C94BF020C94BF020C94BF025C
+:100020000C94BF020C94BF020C946D0E0C943F0F05
+:100030000C94BF020C94BF020C94BF020C94BF023C
+:100040000C94BF020C94F9210C94BF020C94BF02D3
+:100050000C94BF020C94DB1C0C94BF020C94BF02E6
+:100060000C94BF020C94BF020C94BF020C94BF020C
+:100070000C94BF020C94BF020C94BF020C94BF02FC
+:100080000C94BF020C94BF020C94BF020C94BF02EC
+:100090000C94BF020C94BF020C94BF020C94BF02DC
+:1000A0000C94BF020C94BF020C94BF02AC0FCE0F95
+:1000B000BC10CE0FBC1013103610BC108B109E104D
+:1000C0006D136D139C139C13D213F2132315231578
+:1000D000FD132315AD14AD141415231523151D158B
+:1000E000BA14BA14BA14BA14BA14BA14BA14BA14A0
+:1000F000BA14BA14BA14BA14BA14BA14BA14BA1490
+:10010000CC14D914E014E714F1140000F0A1350068
+:100110003A4129610030023000001E00370004001F
+:1001200038004A003C661F003600120014004E00E2
+:100130002B002000330008000D004B002800210098
+:10014000130018000E004D003D6522001C000C003D
+:100150001B0000003E6D64004C670000E3000000DF
+:100160003F412E00C1000000E60000004041230096
+:100170000900070005000000416D24000A00150079
+:100180001000500044652500060017001A005100B9
+:100190002C0026000B001100190052002A00270035
+:1001A0000F0016001D004F0045662D00306F3461B2
+:1001B000013003300000000001000000043016018F
+:1001C00000003A006400000000001D0102533B00E3
+:1001D0006402F20000001B01F5003C00F000F10099
+:1001E00000000601F4003D000000F30000001901CA
+:1001F00000003E0000000000000000000000A6001B
+:1002000000000000000000000100A5000100000047
+:100210004600000001003F00000000000000000058
+:10022000AE004000240021001E000000A900410093
+:10023000250022001F003700AB00420026002300EB
+:1002400020002700AC004300550057005400670011
+:10025000AA0044002F00310000000000000035001B
+:10026000010029610030023000001E00140004006B
+:100270001D004A0001001F001A0016001B004E005E
+:100280002B0020000800070006004B00280021007A
+:100290001500090019004D003D65220017000A00F5
+:1002A000050000003E6D64004C670000E3000000A4
+:1002B00001002E0001000000E60000000100230004
+:1002C0001C000B0011000000416D240018000D00FF
+:1002D00010005000446525000C000E00360051004F
+:1002E0002C00260012000F00370052002A002700C1
+:1002F0001300330038004F0045662D00306F346125
+:1003000001300330000016034500720067006F00E3
+:1003100044006F007800200045005A0000001603DA
+:100320004500720067006F0044006F0078002000F5
+:1003300045005A0000000403090409026D0004018D
+:1003400000A0FA09040000010301010009211101C4
+:1003500000012240000705810308000A090401008A
+:100360000103010200092111010001224D000705CE
+:10037000820308000A0904020001030000000921A9
+:10038000110100012236000705830308000A090451
+:1003900003000103000000092111010001223900BE
+:1003A000070584031000011201100100000008ED90
+:1003B000FE071301000102000105010906A1010564
+:1003C0000719E029E7150025019508750181020547
+:1003D000081901290595057501910295017503918B
+:1003E0000105071900297715002501957875018108
+:1003F00002C005010980A101850216010026B7008F
+:100400001A01002AB700751095018100C0050C097A
+:1004100001A1018503160100269C021A01002A9CF5
+:1004200002751095018100C005010902A1010901B1
+:10043000A10005091901290515002501950575017A
+:10044000810295017503810105010930093115818A
+:10045000257F95027508810609381581257F95014C
+:1004600075088106050C0A38021581257F950175EE
+:10047000088106C0C005010906A101050719E02988
+:10048000E715002501950875018102950175088120
+:100490000105081901290595057501910295017558
+:1004A0000391010507190029FF150026FF00950695
+:1004B00075088100C000000000000000000000007E
+:1004C000010204060A0F17202C3A4A5D71879DB37A
+:1004D000C7DAE9F5FCFFFCF5E9DAC7B39D87715D82
+:1004E0004A3A2C20170F0A060402010000000000FF
+:1004F00000000000000011241FBECFEFDAE0DEBFD5
+:10050000CDBF04B603FE24C08091FF01909100028C
+:10051000A0910102B09102028730904BA740B04BEE
+:10052000B9F41092FF011092000210920102109291
+:10053000020214BE84B7877F84BF88E10FB6F894A7
+:1005400080936000109260000FBEE0E0FFE3099529
+:1005500011E0A0E0B1E0E0E8F7E402C005900D9200
+:10056000A433B107D9F711E0A4E3B1E001C01D92B3
+:10057000AF3FB107E1F70E94B50B0C94BE230C947A
+:1005800000001092B9008AE08093B800089594EAC0
+:100590009093BC009091BC0097FFFCCF9091B90064
+:1005A000987F983021F0903111F081E00895809388
+:1005B000BB0084E88093BC008091BC0087FFFCCF27
+:1005C0008091B900887F883111F0803471F780E024
+:1005D000089584E98093BC008091BC0084FDFCCF29
+:1005E00008958093BB0084E88093BC008091BC0098
+:1005F00087FFFCCF9091B900987F81E0983209F491
+:1006000080E0089584E88093BC008091BC0087FF5F
+:10061000FCCF8091BB00089580B38C7080BB81B308
+:10062000836F81BB089580910101811115C080E421
+:100630000E94C7028093010181110CC082E10E94D7
+:10064000F10280930101811105C08FEF0E94F10238
+:10065000809301010E94E90284B1807F84B985B151
+:10066000807F85B98AB1837F8AB98BB1837F8BB94B
+:100670003E98469808950E94DD04809301010E94EF
+:1006800013030E940C03A5E3B1E0E3E4F1E08EE084
+:100690008E0F11921D928E13FCCF0C94C7040E94F2
+:1006A000DD04809301010E9413030E940C03A5E363
+:1006B000B1E0E3E4F1E08EE08E0F11921D928E1313
+:1006C000FCCF0895BF92CF92DF92EF92FF920F93EB
+:1006D0001F93CF93DF9380910101882379F080915C
+:1006E00034018F5F80933401811108C00E94DD04C2
+:1006F00080930101811102C00E946F0405E311E0A3
+:10070000C0E0D0E0DD24D39482E0C82EEE24E39450
+:10071000F12CC730D10500F580910101811164C031
+:1007200080E40E94C70280930101811112C082E11E
+:100730000E94F1028093010181110BC0C7010C2EB0
+:1007400001C0880F0A94EAF780950E94F102809315
+:1007500001010E94E90248C0CA30A1F028F4C83063
+:1007600059F0C93061F005C0CC3089F070F0CD305F
+:1007700089F0209A289810C0219A29980DC0229AB1
+:100780002A980AC0239A2B9807C0529A01C0539AFC
+:100790005B9802C03E9A469890EA9A95F1F79FB10D
+:1007A000799902C082E001C080E091709D25982B6C
+:1007B0007C9902C084E001C080E0892B7D9902C051
+:1007C00038E001C030E0832B7E9902C020E101C0F7
+:1007D00020E0822B9FB19095991F9927991F9295A0
+:1007E000990F907E892B0FC080910101811149C022
+:1007F00080E40E94C70280930101882379F1B12C23
+:100800000E94E9028B2DF8019081981719F08083DE
+:10081000C09200010E94130321960F5F1F4FCE303C
+:10082000D10509F076CF80910001882361F18150D4
+:1008300080930001882339F08FE99FE00197F1F759
+:1008400000C0000020C0A3E4B1E0E5E3F1E0CF0187
+:10085000825F91919D938E13FCCF15C083E10E941E
+:10086000F102809301018111CACF81E40E94C70285
+:10087000809301018111C3CF0E940203B82EB0946E
+:10088000BFCF80E0C0CF0E946D0481E0DF91CF91A7
+:100890001F910F91FF90EF90DF90CF90BF90089540
+:1008A000E82FF0E0ED5BFE4F8081089508950F93EF
+:1008B0001F93CF93DF93C3E4D1E010E00C2F025FCE
+:1008C000899190E00E94021C180F0C13F9CF812F20
+:1008D000DF91CF911F910F9108950C94BC0556980C
+:1008E0005E9825982D9826982E9827982F988FEF08
+:1008F00090E0909389008093880090938B00809380
+:100900008A0090938D0080938C00259A2D9A2FEF6A
+:1009100080E792E0215080409040E1F700C0000065
+:10092000269A2E9A2FEF80E792E021508040904047
+:10093000E1F700C00000279A2F9A2FEF80E792E09E
+:10094000215080409040E1F700C0000025982D988C
+:100950002FEF80E792E0215080409040E1F700C007
+:10096000000026982E982FEF80E792E021508040DB
+:100970009040E1F700C0000027982F9856985E98A5
+:1009800025982D9826982E9827982F98089589EACB
+:100990008093800089E08093810024982C983F9870
+:1009A0008AB18F748AB96E98479A8BB1806B8BB974
+:1009B000769A0E946F040C94BB0580E2809301013B
+:1009C0008091510181110EC00E94C10281E080938B
+:1009D00051012FEF83ED90E3215080409040E1F7EB
+:1009E00000C0000080E40E94C702809301018111D1
+:1009F0002EC00E94F10280930101811128C00E9443
+:100A0000F10280930101811122C08FE30E94F10263
+:100A10008093010181111BC00E94E90280E40E94C1
+:100A2000C70280930101811112C08CE00E94F10283
+:100A30008093010181110BC00E94F102809301019A
+:100A4000811105C08FE30E94F102809301010E9491
+:100A5000E902809101010895FC01623009F445C06A
+:100A600028F4662351F0613041F182C0633009F40B
+:100A70005BC0643009F472C07BC08281882341F07E
+:100A80000E94A51C909353018093520185EE6AC089
+:100A900085EE0E94D91280915201909153010E94DB
+:100AA000B11C8F35910508F063C086EE0E941112CB
+:100AB00084E30E94111284E34DC082818111E0CF52
+:100AC00085EE0E94D91280915201909153010E94AB
+:100AD000B11C8F35910508F04BC086EE0E941112B3
+:100AE00081E30E94111281E335C08281882341F0A5
+:100AF0000E94A51C909353018093520182EE32C054
+:100B000082EE0E94D91280915201909153010E946D
+:100B1000B11C8F35910560F586EE0E9411128FE2AF
+:100B20000E9411128FE216C082818111E1CF82EE04
+:100B30000E94D91280915201909153010E94B11CE0
+:100B40008F359105A8F486EE0E94111280E30E9471
+:100B5000111280E30E94D91286EE08C08281882398
+:100B600021F089E30E94111203C089E30E94D91287
+:100B700080E090E0089508956091C0017091C101F6
+:100B80008091C2019091C3010E940E1C56985E98FC
+:100B900025982D9826982E9827982F98813029F0FF
+:100BA000823029F4269A2E9A02C0279A2F9A0E9400
+:100BB000F51081FF02C0259A2D9A089581E00895CD
+:100BC00081E008950C94E0050895282F882339F0DA
+:100BD00090E02A3010F44D9608950697089587E224
+:100BE00090E00895AF92BF92DF92EF92FF920F9341
+:100BF0001F93CF93DF938C01FC01C081D181CE0183
+:100C00000E94871ABE010E946209EC01B8010E948D
+:100C1000E205882309F4C9C1F8018281882309F417
+:100C2000BEC08091600181111FC0C431F0E7DF07B1
+:100C300009F0B5C10E94E40581E0809360010E9443
+:100C4000A51C90935F0180935E0110925701109252
+:100C500059011092580110925B0110925A011092A2
+:100C60005D0110925C01A1C180915E0190915F01D4
+:100C70000E94B11C883C910570F480915701E82FC7
+:100C8000F0E0EE0FFF1FE85AFE4FD183C0838F5F65
+:100C9000809357018AC1C13020E8D20708F451C0BF
+:100CA000F8018281882309F47EC05E01E894B7F8D8
+:100CB00080915601813079F050F08230C1F482EE9B
+:100CC0000E94111287E50E94111287E50EC082EE84
+:100CD0000E9411120CC080EE0E94111281EE0E943F
+:100CE000111288E10E94111288E10E94D9128CE051
+:100CF000E82EF12CC5010E2C02C0969587950A941A
+:100D0000E2F78F700E94E505D82E0E9411128D2DFA
+:100D10000E94D912F4E0EF1AF1082CEFE2162FEF3F
+:100D2000F20641F780915601813029F010F08230AF
+:100D300041F482EE04C080EE0E94D91281EE0E943E
+:100D4000D912C43180E7D80768F4C23090E7D907D8
+:100D500008F046C0C115E0E7DE0771F0C130D047AA
+:100D6000A1F10CC1C33320E7D20709F4D8C0C433C2
+:100D7000D04709F4EBC002C1F8018281882309F44D
+:100D800002C10E948E15FFEF24E38CE0F150204059
+:100D90008040E1F700C000000E94001D06C1C13084
+:100DA00080E8D80770F2C43120E7D20708F0B3C05A
+:100DB000C23080E7D807A0F4C11590E7D90709F43D
+:100DC000E2C0C130D04709F0D9C0F8018281882340
+:100DD00009F4D9C08091DD0181608093DD01E5C017
+:100DE000F8018281882309F4CEC00E945A1D811126
+:100DF00002C00E94401D0E946D1D90E09093F10181
+:100E00008093F001C230F0E7DF0721F48091F00118
+:100E100081607AC0C33020E7D20721F48091F001CD
+:100E2000826072C0C43080E7D80721F48091F0015D
+:100E300084606AC0C53090E7D90719F48091F00149
+:100E400027C0C630E0E7DE0721F48091F001806121
+:100E50005BC0C730F0E7DF0721F48091F0018062CA
+:100E600053C0C83020E7D20721F48091F00180649C
+:100E70004BC0C93080E7D80721F48091F001806829
+:100E800043C0CA3090E7D90729F48091F00184600B
+:100E900088603AC0CB30E0E7DE0721F48091F001B2
+:100EA0008E7F32C0CC30F0E7DF0721F48091F00173
+:100EB0008D7F2AC0CD3020E7D20721F48091F00148
+:100EC0008B7F22C0CE3080E7D80719F48091F001E3
+:100ED0001AC08091F001CF3090E7D90711F48F7ECE
+:100EE00013C0C031E0E7DE0711F48F7D0DC0C131C2
+:100EF000F0E7DF0711F48F7B07C0C231D04711F450
+:100F00008F7702C08B7F877F8093F0018091F00103
+:100F10000E94711D4AC0C333F0E7DF07A1F4F80156
+:100F20008281882321F01092540182E016C08091C2
+:100F30005401811106C086E20E94111286E20E94CD
+:100F4000D91282E018C0C433D047C1F4F8018281BD
+:100F5000882331F01092550180E20E94281325C0A9
+:100F600080915501811106C087E20E94111287E22B
+:100F70000E94D91280E20E942F1317C081E0809353
+:100F8000540180935501C801DF91CF911F910F91BA
+:100F9000FF90EF90DF90BF90AF900C94DE05C130D2
+:100FA000F0E8DF0708F081CECCCE80E0DF91CF9172
+:100FB0001F910F91FF90EF90DF90BF90AF90089539
+:100FC00026E0729FF001112444E5849FE00DF11D9D
+:100FD0001124E60FF11DEE0FFF1FE25FFE4F85911A
+:100FE00094910E947409811560E49607B0F581150B
+:100FF00070E3970708F0DEC0803E9105D8F4803C8E
+:10100000910508F06CC0883A910578F4853A91050D
+:1010100008F06BC08130910509F452C108F40FC18A
+:101020008430910508F04CC10AC18B3B910508F44E
+:1010300067C005C18F3F910509F048F4803F9105D5
+:1010400008F0ADC0883E910508F43AC1F8C081159A
+:1010500020E2920708F0A5C00895811543E59407A2
+:1010600090F4811562E5960708F0C8C0811571E516
+:10107000970708F0BEC0811520E5920708F09DC0D3
+:101080009F70906A0895811545E59407D8F48115FD
+:1010900064E5960708F0C8C0482F4695469570E26B
+:1010A000479FA00111248370992721E030E0B90106
+:1010B00002C0660F771F8A95E2F7CB01842B952B30
+:1010C0009A680895811576E5970708F4B2C09C01E7
+:1010D00030562115304108F0B2C09F70AEC0FC01FF
+:1010E000EE0FFF1FE657F04062C0853A910509F404
+:1010F000A9C0863A910509F0A8C082E890E4089555
+:10110000883A910509F4A4C0893A910509F4A3C06D
+:101110008A3A910509F4A2C08B3A910509F4A1C05D
+:101120008C3A910509F4A0C08D3A910509F49FC04D
+:10113000803B910509F49EC08E3A910509F49DC04B
+:101140008F3A910509F49CC0813B910509F49BC03D
+:10115000823B910509F49AC0833B910509F499C03B
+:10116000843B910509F498C0853B910509F497C02B
+:10117000863B910509F496C0873B910509F495C01B
+:10118000883B910509F494C0893B910509F493C00B
+:101190008A3B910509F492C080E094E4089590653B
+:1011A0000895FC01FF70EE0FFF1FE65FFE4F859173
+:1011B000949108959927906C0895482F437021E0E9
+:1011C00030E002C0220F331F4A95E2F73C68AC01C1
+:1011D00064E0569547956A95E1F74370342B8F701C
+:1011E0008695869560E2869FC0011124822B932B01
+:1011F0000895982F8827816F906A0895482F469503
+:10120000469570E2479FA00111248370992721E041
+:1012100030E0B90102C0660F771F8A95E2F7CB0173
+:10122000842B952B9C680895982F8827846F906A4B
+:1012300008958F719927982F88279062089580E0EC
+:1012400090E0089581E890E4089583E890E408959B
+:1012500082EE94E4089589EE94E408958AEE94E48D
+:10126000089585EB94E4089586EB94E4089587EB64
+:1012700094E408958CEC94E408958DEC94E408953E
+:1012800083E895E408958AE895E4089582E995E471
+:10129000089584E995E4089581E296E4089583E24F
+:1012A00096E4089584E296E4089585E296E408952C
+:1012B00086E296E4089587E296E408958AE296E449
+:1012C0000895089596E0799FF001112494E5899F8F
+:1012D000E00DF11D1124E60FF11DEE0FFF1FE25F7F
+:1012E000FE4F8591949108958238910549F1B0F4AB
+:1012F0008133910509F458C048F48932910509F405
+:101300004EC08A32910509F454C008958533910581
+:1013100009F440C08933910599F00895833E910501
+:1013200029F138F4803E910591F0823E9105A1F0BB
+:101330000895863E9105F9F0873E910531F10895B3
+:101340002091F00120FD3AC021FD38C00895809120
+:10135000F00180FD35C032C08091F00182FF32C0C3
+:101360008091F00184FD30C083EE39C08091F0019E
+:1013700082FD28C0F5CF8091F00183FF27C08091C6
+:10138000F00184FD21C087EE2AC08091F00183FD29
+:101390001DC0F5CF8091F00185FD1AC01BC0809162
+:1013A000F00185FD17C014C08091F00186FD14C0C6
+:1013B00015C08091F00186FD11C00EC080EE0FC0F7
+:1013C00089E30DC082EE0BC080E009C086EE07C045
+:1013D00089E205C085E303C08AE201C081E390E0B1
+:1013E000089508950C94F109809171010895CF93A7
+:1013F000DF9300D01F92CDB7DEB79C018091F6013C
+:10140000843019F593E099833B832A839093E90014
+:101410008FEF9091E800815095FD06C095ED9A956B
+:10142000F1F700008111F5CF8091E80085FF0DC034
+:1014300040E050E063E070E0CE0101960E945D0C58
+:101440008091E8008E778093E8000F900F900F90C6
+:10145000DF91CF910895CF93DF9300D01F92CDB746
+:10146000DEB72091F601243021F522E029839B8309
+:101470008A8383E08093E9008FEF9091E8008150A8
+:1014800095FD06C095ED9A95F1F700008111F5CF15
+:101490008091E80085FF0DC040E050E063E070E01F
+:1014A000CE0101960E945D0C8091E8008E778093BA
+:1014B000E8000F900F900F90DF91CF910895209149
+:1014C000F6012430F1F422E02093E9002FEF30916F
+:1014D000E800215035FD06C035ED3A95F1F70000E2
+:1014E0002111F5CF2091E80025FF0BC040E050E02E
+:1014F00065E070E00E945D0C8091E8008E7780933B
+:10150000E8000895CF93DF93EC019091F6019430B9
+:1015100009F046C080910C018823D9F080910D011B
+:101520008823B9F09093E9008FEF9091E800815003
+:1015300095FD06C095E19A95F1F700008111F5CF70
+:101540008091E80085FF2CC040E050E060E170E051
+:1015500017C081E08093E9008FEF9091E8008150FF
+:1015600095FD06C095ED9A95F1F700008111F5CF34
+:101570008091E80085FF14C040E050E068E070E032
+:10158000CE010E945D0C8091E8008E778093E80088
+:1015900080E1FE01A1E6B1E001900D928A95E1F7AC
+:1015A000DF91CF9108958091F501811109C00E94CA
+:1015B000F20D0E944F0E8091E20084608093E20061
+:1015C00008951092F501089508950C94E6210E9463
+:1015D000961C0E94EC210E94F5100C94F20942E046
+:1015E00061EC81E00E946C0D42E061EC82E00E94BF
+:1015F0006C0D42E061EC83E00E946C0D42E161EC15
+:1016000084E00C946C0D8091F801833009F455C08E
+:1016100030F4813071F0823009F48EC008958A3040
+:1016200009F47AC08B3009F460C0893009F09CC09D
+:1016300020C08091F701813A09F096C08091E800BE
+:10164000877F8093E8008091FB019091FC01892BBA
+:1016500021F460E181E691E003C060E080E090E089
+:1016600070E00E94A80C8091E8008B778093E800DE
+:1016700008958091F701813209F076C08091FB01D5
+:101680009091FC01009719F0039709F06DC08091CB
+:10169000E800877F8093E8008091E80082FD05C024
+:1016A0008091F6018111F8CF5FC08091F1008093A5
+:1016B00071018091E8008B7753C08091F701813AE6
+:1016C00009F052C08091FB019091FC01892B09F037
+:1016D0004BC08091E800877F8093E8008091E8000C
+:1016E00080FFFCCF80910C0136C08091F7018132E0
+:1016F000D9F58091FB019091FC01892BA9F580918E
+:10170000E800877F8093E8000E94A10D8091F90195
+:1017100080930C010C948E158091F701813221F594
+:101720008091E800877F8093E8000E94A10D80915E
+:10173000FA018093720108958091F701813AA1F432
+:101740008091E800877F8093E8008091E80080FF27
+:10175000FCCF809172018093F1008091E8008E7738
+:101760008093E8000C94A10D089584B7877F84BF0F
+:1017700088E10FB6F89480936000109260000FBE6D
+:1017800080E880936100109261000E9444110E94E1
+:10179000F20D0E944F0E8091E20084608093E2007F
+:1017A00078940E94D5100E94461182E091E00E9438
+:1017B000F0100E94D4218091F601853069F40E94D6
+:1017C0005E1C8091F4018823B1F30E94881C882359
+:1017D00091F30E94470CEFCF0E944C11ECCF292FC0
+:1017E000332723303105C9F064F42130310581F00D
+:1017F0002230310509F043C08DE690E02AE333E062
+:1018000042C021323105F1F02232310541F137C0B9
+:1018100082E190E027EA33E036C0992781309105D4
+:1018200041F08230910541F0892B49F5E6E3F3E080
+:1018300005C0EEE1F3E002C0E6E0F3E0849190E061
+:101840009F0121C06430D8F4E62FF0E0EE0FFF1FB7
+:10185000EE5DFE4F2081318189E090E014C064305C
+:1018600070F470E0FB01EE0FFF1FE65EFE4F20817B
+:101870003181FB01EA5EFE4F808190E004C080E090
+:1018800090E020E030E0FA0131832083089580E188
+:1018900089BD82E189BD09B400FEFDCF8091D800E9
+:1018A0008F7D8093D8008091E00082608093E0007B
+:1018B0008091E00081FDFCCF0895CF92DF92EF92FE
+:1018C000FF920F931F93CF93DF93EC018B016A017B
+:1018D0000E94C00D811133C0C114D10439F0F6014A
+:1018E00080819181081B190BC80FD91FE12CF12CA5
+:1018F0000115110519F18091E80085FD16C0809150
+:10190000E8008E778093E800C114D10449F0F60115
+:1019100080819181E80EF91EF182E08285E00FC09E
+:101920000E94C00D882321F30AC089918093F100A1
+:1019300001501109FFEFEF1AFF0ADACF80E0DF91C3
+:10194000CF911F910F91FF90EF90DF90CF9008956E
+:101950002091FD013091FE012617370748F06115EF
+:10196000710539F42091E8002E772093E80001C03A
+:10197000B90140E061157105A9F12091F60122231A
+:1019800009F443C0253009F442C02091E80023FD4A
+:1019900040C02091E80022FD32C02091E80020FFE5
+:1019A000E9CF4091F3002091F20030E0342BFC01AC
+:1019B000CF016115710559F02830310540F481914E
+:1019C0008093F100615071092F5F3F4FF1CF41E0EB
+:1019D0002830310509F040E02091E8002E7720936F
+:1019E000E800C8CF4111C9CF0AC08091F601882311
+:1019F00061F0853061F08091E80083FD0AC080913C
+:101A0000E80082FFF2CF80E0089582E0089583E04D
+:101A1000089581E008952091FD013091FE0126177F
+:101A2000370748F06115710539F42091E8002E77E9
+:101A30002093E80001C0B901FC0120E061157105A7
+:101A400091F18091F601882309F440C0853009F4B2
+:101A50003FC08091E80083FD3DC08091E80082FD99
+:101A60002FC08091E80080FFE9CF2091F3008091A2
+:101A7000F20090E0922B6115710559F088309105C4
+:101A800040F424912093F100319661507109019640
+:101A9000F2CF21E0089709F020E08091E8008E77EE
+:101AA0008093E800CBCF2111CCCF0AC08091F60102
+:101AB000882361F0853061F08091E80083FD0AC0E1
+:101AC0008091E80082FFF2CF80E0089582E00895DF
+:101AD00083E0089581E00895982F973058F590930A
+:101AE000E900981739F07091EC002091ED005091C9
+:101AF000F00003C0242F762F50E021FF19C0309151
+:101B0000EB003E7F3093EB003091ED003D7F309352
+:101B1000ED003091EB0031603093EB007093EC00FE
+:101B20002093ED005093F0002091EE0027FF07C0B6
+:101B30009F5FD3CF8F708093E90081E0089580E0AC
+:101B400008958091F70187FF11C08091E80082FD20
+:101B500005C08091F6018111F8CF11C08091E80095
+:101B60008B770BC08091F601882349F08091E800C3
+:101B700080FFF8CF8091E8008E778093E800089589
+:101B80002091E4003091E50095E64091EC00842F2F
+:101B9000817040FF22C08091E80080FD1CC08091D0
+:101BA000F601882391F0853091F08091EB0085FD5E
+:101BB00010C04091E4005091E5004217530729F30B
+:101BC0009A01915011F784E0089582E0089583E02E
+:101BD000089581E0089580E008954091E80042FF73
+:101BE000DECF08950E94600E0E94680EE0EEF0E0E5
+:101BF000808181608083E8EDF0E080818F77808351
+:101C000019BCA7EDB0E08C918E7F8C9380818F7E84
+:101C100080831092F50108950F931F93CF93DF9364
+:101C20000E94600E0E94680EC8EDD0E088818F7718
+:101C3000888388818068888388818F7D888319BCA8
+:101C40001092F6011092F2011092F4011092F30139
+:101C500000EE10E0F80180818B7F808388818160B5
+:101C6000888342E060E080E00E946C0DE1EEF0E0ED
+:101C700080818E7F8083E2EEF0E0808181608083CE
+:101C8000808188608083F80180818E7F8083888155
+:101C900080618883DF91CF911F910F910895E8EDC6
+:101CA000F0E080818F7E8083E7EDF0E080818160CD
+:101CB000808384E082BF81E08093F5010C940C0E58
+:101CC000E8EDF0E080818E7F80831092E20008953D
+:101CD0001092DA001092E10008951F920F920FB651
+:101CE0000F9211242F933F934F935F936F937F93A2
+:101CF0008F939F93AF93BF93EF93FF938091E100F6
+:101D000082FF0BC08091E20082FF07C08091E1005A
+:101D10008B7F8093E1000E94D4108091DA0080FFD5
+:101D20001FC08091D80080FF1BC08091DA008E7F99
+:101D30008093DA008091D90080FF0DC080E189BDD9
+:101D400082E189BD09B400FEFDCF81E08093F601F8
+:101D50000E94D30A05C019BC1092F6010E94E10A44
+:101D60008091E10080FF19C08091E20080FF15C0E2
+:101D70008091E2008E7F8093E2008091E20080619A
+:101D80008093E2008091D80080628093D80019BCD3
+:101D900085E08093F6010E94E50A8091E10084FFCE
+:101DA00030C08091E20084FF2CC080E189BD82E1D7
+:101DB00089BD09B400FEFDCF8091D8008F7D80934E
+:101DC000D8008091E1008F7E8093E1008091E20055
+:101DD0008F7E8093E2008091E20081608093E20038
+:101DE0008091F201882311F084E007C08091E30024
+:101DF00087FD02C081E001C083E08093F6010E946C
+:101E0000E70A8091E10083FF29C08091E20083FF0F
+:101E100025C08091E100877F8093E10082E080937C
+:101E2000F6011092F2018091E1008E7F8093E10033
+:101E30008091E2008E7F8093E2008091E2008061D9
+:101E40008093E20042E060E080E00E946C0D8091AF
+:101E5000F00088608093F0000E94E40AFF91EF9107
+:101E6000BF91AF919F918F917F916F915F914F91B2
+:101E70003F912F910F900FBE0F901F9018951F92BA
+:101E80000F920FB60F9211242F933F934F935F93AE
+:101E90006F937F938F939F93AF93BF93CF93DF9372
+:101EA000EF93FF93C091E900CF708091EC00D82FA1
+:101EB000D17080FDD0E81092E9008091F000877F1A
+:101EC0008093F00078940E94830F1092E900809133
+:101ED000F00088608093F000CD2BCF70C093E900B4
+:101EE000FF91EF91DF91CF91BF91AF919F918F9132
+:101EF0007F916F915F914F913F912F910F900FBE06
+:101F00000F901F9018951F93CF93DF93CDB7DEB737
+:101F1000AA970FB6F894DEBF0FBECDBFE7EFF1E092
+:101F200088E08E0F9091F10091938E13FBCF0E9469
+:101F3000030B8091E80083FF1FC18091F70190910E
+:101F4000F801492F50E04A30510508F015C1FA0157
+:101F5000EA5AFF4F0C946E23803881F0823809F0E2
+:101F60000BC18091FB018F708093E9008091EB00A1
+:101F700085FB882780F91092E90006C08091F30163
+:101F80009091F401911182609091E800977F909375
+:101F9000E8008093F1001092F100C8C0282F2D7F37
+:101FA00009F0EAC0882319F0823061F0E5C0809121
+:101FB000F901813009F0E0C0933009F080E08093AE
+:101FC000F4012BC08091F901811127C08091FB01A0
+:101FD0008F7009F4D1C08093E9002091EB0020FFBD
+:101FE0001CC0933021F48091EB00806214C090916A
+:101FF000EB0090619093EB0021E030E0A90102C07A
+:10200000440F551F8A95E2F74093EA001092EA00C8
+:102010008091EB0088608093EB001092E900809142
+:10202000E800877F86C08111A7C01091F9011F7752
+:102030008091E3008078812B8093E3008091E80019
+:10204000877F8093E8000E94A10D8091E80080FFC7
+:10205000FCCF8091E30080688093E300111102C0FF
+:1020600082E001C083E08093F60186C08058823010
+:1020700008F082C08091F9019091FA018C3D53E003
+:10208000950779F583E08A838AE289834FB7F894CC
+:10209000DE01139620E03EE051E2E32FF0E05093A2
+:1020A0005700E49120FF03C0E295EF703F5FEF70AF
+:1020B0008E2F90E0EA3010F0C79601C0C0968D9345
+:1020C0009D932F5F243149F74FBF8091E800877FB0
+:1020D0008093E8006AE270E0CE0101960E94A80CAD
+:1020E00014C0AE014F5F5F4F6091FB010E94EF0B88
+:1020F000BC01009709F440C09091E800977F90934D
+:10210000E80089819A810E940B0D8091E8008B770D
+:102110008093E80031C0803879F58091E800877FAE
+:102120008093E8008091F2018093F1008091E800B3
+:102130008E778093E8000E94A10D1EC081111CC003
+:102140009091F9019230C0F48091E800877F8093EC
+:10215000E8009093F2010E94A10D8091F20181119B
+:1021600006C08091E30087FD02C081E001C084E0E9
+:102170008093F6010E94EF0A8091E80083FF0AC075
+:102180008091E800877F8093E8008091EB00806277
+:102190008093EB00AA960FB6F894DEBF0FBECDBFBA
+:1021A000DF91CF911F9108950895CF938091F6010B
+:1021B0008823A1F0C091E900CF709091EC00892FA5
+:1021C000817090FD80E8C82B1092E9008091E800B2
+:1021D00083FD0E94830FCF70C093E900CF910895D3
+:1021E00090937801809377010895E0917701F091C1
+:1021F0007801309721F00190F081E02D099480E082
+:102200000895E0917701F0917801309721F00280F4
+:10221000F381E02D09940895E0917701F091780120
+:10222000309721F00480F581E02D099408952091E4
+:102230007501309176018217930771F090937601C2
+:1022400080937501E0917701F0917801309721F04A
+:102250000680F781E02D0994089520917301309153
+:1022600074018217930771F0909374018093730146
+:10227000E0917701F0917801309721F00084F185A9
+:10228000E02D0994089508950C9443110E949C1C1C
+:102290000E943B030C94221D9F92AF92BF92CF925B
+:1022A000DF92EF92FF920F931F93CF93DF9300D0B3
+:1022B00000D000D0CDB7DEB70E9462030DE010E081
+:1022C000AA24A394B12C902E802F0E945004980130
+:1022D00026583E4F6901F901F080F826A1F401501B
+:1022E000110988F78FEF89838A831B820E94A51CBE
+:1022F0008160782F9D838C8349815A816B818D8188
+:102300000E94E3112FC09091DD0191FF04C08E83E4
+:102310000E9456048E8125E030E0A501022E01C006
+:10232000440F0A94EAF7E42E4F21C1F029839A82E0
+:102330008E2191E009F490E09B830E94A51C8160AE
+:10234000782F9D838C8349815A816B818D810E9476
+:10235000E311F6018081E826E08204C021503109B2
+:10236000E0F6BDCF0E94F01E109179010E94F51099
+:102370001817B9F00E94F5108093790126960FB6D0
+:10238000F894DEBF0FBECDBFDF91CF911F910F91AB
+:10239000FF90EF90DF90CF90BF90AF909F900C9404
+:1023A000F20926960FB6F894DEBF0FBECDBFDF91BF
+:1023B000CF911F910F91FF90EF90DF90CF90BF9042
+:1023C000AF909F900895CF93DF93CDB7DEB72B9753
+:1023D0000FB6F894DEBF0FBECDBF4F835887698715
+:1023E0007A878B87DE01119686E0FD0111928A952E
+:1023F000E9F785E0FE01379601900D928A95E1F7A5
+:1024000049815A816B817C818D819E810E942C182B
+:102410002B960FB6F894DEBF0FBECDBFDF91CF91E4
+:102420000895CF93882309F4C2C0C82F823859F485
+:102430000E94F51081FDBBC089E30E94061B0E942B
+:10244000D31B89E30CC0833879F40E94F51080FD1A
+:10245000AEC083E50E94061B0E94D31B83E50E9449
+:10246000481BCF910C94D31B843859F40E94F5106B
+:1024700082FD9DC087E40E94061B0E94D31B87E457
+:10248000EECF8CEF8C0F813A48F48C2F0E943A21CA
+:1024900081118DC08C2F0E94061BE3CF80E28C0F30
+:1024A000883048F4C77081E001C0880FCA95EAF708
+:1024B0000E948C1BD6CF8BE58C0F833078F4C53A05
+:1024C00029F0C63A31F083E890E005C081E890E059
+:1024D00002C082E890E0CF910C94171188E58C0F30
+:1024E000833108F064C0C83A39F1C93A41F1CA3AB7
+:1024F00049F1CB3A51F1CC3A59F1CD3A61F1C03BB7
+:1025000069F1CE3A71F1CF3A79F1C13B81F1C23B29
+:1025100089F1C33B91F1C43B99F1C53BA1F1C63BA5
+:10252000A9F1C73BB1F1C83BB9F1C93BC1F1CA3B05
+:10253000C9F180E090E038C082EE90E035C089EECD
+:1025400090E032C08AEE90E02FC085EB90E02CC086
+:1025500086EB90E029C087EB90E026C08CEC90E001
+:1025600023C08DEC90E020C083E891E01DC08AE894
+:1025700091E01AC082E991E017C084E991E014C0AB
+:1025800081E292E011C083E292E00EC084E292E028
+:102590000BC085E292E008C086E292E005C087E2C7
+:1025A00092E002C08AE292E0CF910C942D11CF917B
+:1025B0000895882309F44BC0823859F40E94F5101D
+:1025C00081FF45C089E30E94061B0E94D31B89E35B
+:1025D0000CC0833871F40E94F51080FF38C083E589
+:1025E0000E94061B0E94D31B83E50E94481B0C948B
+:1025F000D31B843859F40E94F51082FF28C087E469
+:102600000E94061B0E94D31B87E4EFCF9CEF980F1C
+:10261000913A58F390E2980F983050F4877091E017
+:1026200001C0990F8A95EAF7892F0E94921BDFCF8C
+:102630009BE5980F933020F480E090E00C94171104
+:10264000885A833120F480E090E00C942D11089595
+:10265000882321F00E948C1B0C94D31B089588239F
+:1026600021F00E94921B0C94D31B08957F928F92AD
+:102670009F92AF92BF92CF92DF92EF92FF920F9311
+:102680001F93CF93DF931F92CDB7DEB77C01C62E89
+:10269000772EFC01058102950F70128111110E94A5
+:1026A000A91B0E94FF1A882379F0112369F080E2A8
+:1026B0008C0D883048F082E00E94E81A0E94FF1AD0
+:1026C00091E0D82ED92601C0D12CE72DE295EF70EC
+:1026D000F0E0E05AFF4F0C946E23872D807F072D8A
+:1026E0000F70882311F00295007F112389F00023D9
+:1026F00009F490C180E28C0D883020F4802F0E9474
+:102700008C1B03C0802F0E949C1B0E94D31B82C184
+:102710008C2D0E94D912002309F495C180E28C0D02
+:10272000883020F4802F0E94921B03C0802F0E94CB
+:10273000A21B0E94D31B87C1972D907F872D8F707E
+:10274000903211F08295807FCC2021F0F1E0CF16FD
+:10275000B1F01EC0112349F0002309F414C1013067
+:1027600009F011C10E94BC1B6EC1002319F0013099
+:1027700009F469C189830E94BF1B89810AC11123A1
+:1027800021F0023008F05FC1FEC001115CC101C13F
+:10279000112321F0002309F4F6C03CC1002309F401
+:1027A000F8C03EC1872D86958695837090E000978E
+:1027B00019F0019761F047C1112321F08C2D972D5D
+:1027C000937002C080E090E00E9417113CC1112379
+:1027D00021F08C2D972D937002C080E090E00E9434
+:1027E0002D1131C18C2D112319F00E94F81D02C04A
+:1027F0000E94601E0E94E51E26C1872D837009F08D
+:1028000052C0111120C18C2D829586958770880F3A
+:10281000880F9C2D9F70892E912CA12CB12C082EF5
+:1028200004C0880C991CAA1CBB1C0A94D2F7C4FED5
+:1028300014C00FE010E020E030E0B901A80104C0AE
+:10284000440F551F661F771F8A95D2F7CB01BA0137
+:10285000609570958095909503C060E070E0CB0125
+:10286000272D26952695237030E02230310569F01A
+:102870002330310589F0682979298A299B2921305B
+:10288000310571F00E947419DEC0682979298A29FE
+:102890009B290E949019D7C00E947419C501B401E8
+:1028A0000E945819D0C0112319F0872D817001C0E2
+:1028B0008695882309F4C7C08C2D829586958770EC
+:1028C000880F880F9C2D9F70892E912CA12CB12CE4
+:1028D000082E04C0880C991CAA1CBB1C0A94D2F7B1
+:1028E000C4FE14C00FE010E020E030E0B901A80100
+:1028F00004C0440F551F661F771F8A95D2F7CB017E
+:10290000BA01609570958095909503C060E070E085
+:10291000CB01272D269526952370422F50E042307B
+:10292000510569F04330510589F0682979298A29D0
+:102930009B294130510571F00E944E1A84C06829CC
+:1029400079298A299B290E946A1A7DC00E944E1A01
+:10295000C501B4010E94321A76C08C2D90E0FC01B2
+:10296000E05EF109E531F10508F050C0E059FF4F94
+:102970000C946E230C2D0F70872D8F71112331F065
+:102980000E94CB19802F0E9428135DC00E94EC1971
+:10299000802F0E942F1357C0112339F0011153C00B
+:1029A000872D8F710E94111A4EC0023008F04BC063
+:1029B000F7CF112339F0872D8F710E94CB1943C0B7
+:1029C0001123C9F3872D8F710E94EC193CC011238C
+:1029D00029F0872D8F710E94B61935C00E94AC195D
+:1029E00032C0112351F0172D1F71812F0E94CB1976
+:1029F00063E0812F0E94DF1A26C081E00E94E81A5E
+:102A0000023008F182E00E94E81A1DC0112331F063
+:102A1000002389F28C2D0E94111215C0002391F21F
+:102A20008C2D0E94D9120FC0472D4F706C2DC701FD
+:102A30000E942C050E94D01806C0472D4F706C2DA7
+:102A4000C7010E946109DD20F9F00E94DB1A80FDB8
+:102A50001BC0F70112820E94D51A0E94CB19C70130
+:102A60000E9453150E94D51A0F90DF91CF911F91AC
+:102A70000F91FF90EF90DF90CF90BF90AF909F901D
+:102A80008F907F900C94EC190F90DF91CF911F9154
+:102A90000F91FF90EF90DF90CF90BF90AF909F90FD
+:102AA0008F907F9008950F931F93CF93DF93EC0146
+:102AB000888199812B813C81232BB9F09F3F11F4B0
+:102AC0008F3F99F0CE010E94F205882371F0688152
+:102AD00079818A810E94D11A8C010E94861A0E94F3
+:102AE0004D19B801CE010E943613DF91CF911F918D
+:102AF0000F9108950E94A91B0E94B91B0E947E1B82
+:102B00000E94D31B0E94961F0E94E51E80E090E069
+:102B10000E94171180E090E00C942D110E94991BE7
+:102B20000C947A150E94C61A292F22952F7030E036
+:102B30002C3031054CF42A3031056CF42250310927
+:102B400022303105A8F407C02C30310569F02F3050
+:102B5000310551F00DC0803F69F018F4803E40F41B
+:102B600009C0843F29F406C093FB882780F90895A3
+:102B700080E0089581E00895CF93DF9300D000D0E6
+:102B80001F92CDB7DEB70F900F900F900F900F9060
+:102B9000DF91CF910895CF93DF9300D000D000D084
+:102BA000CDB7DEB726960FB6F894DEBF0FBECDBF09
+:102BB000DF91CF9108951F93CF93DF93C091880148
+:102BC00016E080918901C81799F0D0E01C9FF001B0
+:102BD0001D9FF00D1124E657FE4F40815181628107
+:102BE0007381848195810E94CB152196C770E9CFAE
+:102BF000DF91CF911F9108954091BA015091BB018F
+:102C00006091BC017091BD018091BE019091BF01A6
+:102C10000C94CB158091BF0182958F7009F054C040
+:102C20008091BC01882309F44FC080918801A09154
+:102C300089016091BA017091BB014091BD01509131
+:102C4000BE01B6E08A1709F43FC090E04115510576
+:102C5000C1F17F3F11F46F3FA1F1B89FF001B99F1F
+:102C6000F00D1124E657FE4F218172132AC02081F6
+:102C7000621327C02281211124C0238134812417AB
+:102C8000350710F421503109241B350B283C310540
+:102C9000C0F42091BF012F7020612093BF0126E076
+:102CA000289FF001299FF00D1124E157FE4F8081EC
+:102CB0008F70806180838AEB91E00E9453150C94A1
+:102CC000DB1501968770BECF0895CF92DF92EF9209
+:102CD000FF920F931F93CF93DF93CDB7DEB7629729
+:102CE0000FB6F894DEBF0FBECDBF8C0185E0F801B2
+:102CF000DE011D9601900D928A95E1F7D8014C9165
+:102D000011965C91119712966C9112971396CD9033
+:102D1000DC9014973091BA017091BB018091BD0194
+:102D20009091BE01009709F46BC17F3F19F43F3FBA
+:102D300009F466C1E090BC01EE2009F4C0C0209106
+:102D4000BF01C816D90628F0F601E81BF90BCF0120
+:102D500004C0809590958C0D9D1DFF24F394883CB4
+:102D6000910578F0F12C207F09F0C6C07C2DD98A1E
+:102D7000C88A89890E94BC158AEB91E00E9453158C
+:102D8000B1C0822F807F09F046C0751314C0341380
+:102D900012C0611110C02F7020612093BF010E94EA
+:102DA000FC158AEB91E00E9453158091BF01D80178
+:102DB00015968C932EC0CD2819F15F3F11F44F3F2B
+:102DC000F9F0F62E61111CC08091880120918901D3
+:102DD00036E0821709F45AC090E0389FF001399F1D
+:102DE000F00D1124E657FE4F7181571306C0708114
+:102DF000471303C07281711103C001968770E9CF38
+:102E0000F62E662309F418C18091BF01816080937A
+:102E1000BF01F12C11C1751308C0341306C0611134
+:102E200004C08091BF01D801C3C04D875E878D85E6
+:102E30009E856A8B0E9492156A898823E1F1662338
+:102E4000D1F12091BF01822F82958F7090E002977F
+:102E500074F08091BA019091BB0198878F83198695
+:102E6000DB86CA862C87CE0107960E94531586E022
+:102E7000F801AAEBB1E001900D928A95E1F70E946A
+:102E80000A160E94FC15FF24F394D6C04D875E8776
+:102E90008D859E850E94C61A292F22952F7030E0BD
+:102EA000223031050CF0BCC09F7009F0B6C0805EC6
+:102EB000883008F4C1C0C8010E945315E4CFC81679
+:102EC000D90608F453C0F601E81BF90BCF01883C82
+:102ED000910508F450C0F12C7C2DD98AC88A8989C3
+:102EE0000E94BC15EAEBF1E086E0DF011D928A95B5
+:102EF000E9F70E94FC15A0C0751314C0341312C06A
+:102F0000611110C08091BF01F8018583C8010E9442
+:102F1000531586E0EAEBF1E0DF011D928A95E9F7AF
+:102F2000FE2C8AC04D875E878D859E856A8B0E94A8
+:102F300092156A89882309F4BECF662309F4BBCFB2
+:102F40002091BF01822F82958F7090E002970CF440
+:102F50008ECF8091BA019091BB019A8389831B82A5
+:102F6000DD82CC822E83CE0101967FCF8095909515
+:102F70008C0D9D1DACCFF62E662309F49CCF7513E6
+:102F80002EC034132CC02091BF0120FD1FC0822F02
+:102F900082958F70D9F0D80115962C9315978F30A4
+:102FA00049F08F5F982F9295907F822F8F70892B99
+:102FB00015968C93C8010E94531586E0F801AAEB80
+:102FC000B1E001900D928A95E1F793CF86E0F80188
+:102FD000AAEBB1E001900D928A95E1F72DC04D87E3
+:102FE0005E878D859E850E949215811140CF8091CC
+:102FF000BF0181608093BF01C8010E9453151CC0AE
+:10300000662309F458CF4D875E878D859E850E9483
+:103010009215882309F44FCF2ACF811148CF0CC0D5
+:10302000243031050CF047CF9F7009F440CFF801F0
+:103030009581907F09F03BCF8F2D62960FB6F89463
+:10304000DEBF0FBECDBFDF91CF911F910F91FF90DB
+:10305000EF90DF90CF9008951F93CF93DF93CDB77C
+:10306000DEB72C970FB6F894DEBF0FBECDBF4F83EF
+:10307000588769877A878B879C87CE0107960E943D
+:103080006516882369F08F8198852A853B85232BD7
+:10309000F1F19F3F09F063C08F3F09F060C037C076
+:1030A00086E0FE013796DE01119601900D928A9519
+:1030B000E1F76F817885EA85FB85309741F17F3FA5
+:1030C00011F46F3F21F12091890130E0C90101968F
+:1030D000877099274091880150E08417950709F47B
+:1030E00047C069837A83FD83EC8396E0929FD00189
+:1030F000939FB00D1124A657BE4FFE01319601904B
+:103100000D929A95E1F7809389010E94DB1516E0F4
+:1031100080918801909189018917C1F1189FC001A0
+:10312000112486579E4F0E946516882379F1E091FD
+:1031300088011E9FF0011124E657FE4F4081518106
+:1031400062817381848195810E94CB158091880171
+:1031500090E001968770992780938801D9CF4F819D
+:10316000588569857A858B859C850E94CB15CFCF44
+:103170000E948E151092890110928801EAEBF1E00D
+:1031800086E0DF011D928A95E9F7C1CF2C960FB634
+:10319000F894DEBF0FBECDBFDF91CF911F91089590
+:1031A000EF92FF920F931F93CF93DF938C010097C1
+:1031B00009F46CC0F12CEE24E394E8012196F801A7
+:1031C0008491843740F4843008F051C0813081F01C
+:1031D000823019F15BC0853709F444C0A8F19CE73F
+:1031E000980F903708F052C08F770E94D91241C0D3
+:1031F0000E5F1F4FFE01C49180E28C0F883048F4AF
+:10320000C7708E2D01C0880FCA95EAF70E94AC1BCB
+:1032100014C08C2F0E9411122DC00E5F1F4FFE0193
+:10322000C49180E28C0F883058F4C7708E2D01C095
+:10323000880FCA95EAF70E94B21B0E94D31B1AC0DE
+:103240008C2F0E94D91216C00E5F1F4FFE01C49131
+:10325000CC2381F08FE99FE00197F1F700C00000D7
+:10326000C150F6CF0E5F1F4FFE01F49003C00E94C5
+:1032700011128E018F2D882309F49FCFEFE9FFE013
+:103280003197F1F700C000008150F5CFDF91CF9169
+:103290001F910F91FF90EF90089508956093C401DE
+:1032A0007093C5018093C6019093C7010C947A1561
+:1032B0000F931F930091C4011091C5012091C60185
+:1032C0003091C701DC01CB01802B912BA22BB32BBA
+:1032D0008093C4019093C501A093C601B093C70128
+:1032E0001F910F910C947A150F931F930091C401B5
+:1032F0001091C5012091C6013091C701DC01CB01BD
+:1033000080239123A223B3238093C4019093C5010A
+:10331000A093C601B093C7011F910F910C947A1529
+:103320000F931F930091C4011091C5012091C60114
+:103330003091C701DC01CB0180279127A227B32759
+:103340008093C4019093C501A093C601B093C701B7
+:103350001F910F910C947A151092C0011092C10127
+:103360001092C2011092C3010C947A1541E050E012
+:1033700060E070E004C0440F551F661F771F8A95F8
+:10338000D2F74093C0015093C1016093C201709382
+:10339000C3010C947A1541E050E060E070E004C095
+:1033A000440F551F661F771F8A95D2F78091C00181
+:1033B0009091C101A091C201B091C301482B592B3A
+:1033C0006A2B7B2B4093C0015093C1016093C201D3
+:1033D0007093C3010C947A1541E050E060E070E016
+:1033E00004C0440F551F661F771F8A95D2F740957A
+:1033F0005095609570958091C0019091C101A09108
+:10340000C201B091C301482359236A237B2340930F
+:10341000C0015093C1016093C2017093C3010C9429
+:103420007A1541E050E060E070E004C0440F551FA1
+:10343000661F771F8A95D2F78091C0019091C101D4
+:10344000A091C201B091C301482759276A277B2761
+:103450004093C0015093C1016093C2017093C301B6
+:103460000C947A150F931F930091C0011091C10124
+:103470002091C2013091C301DC01CB01802B912B43
+:10348000A22BB32B8093C0019093C101A093C201E2
+:10349000B093C3011F910F910C947A150F931F9352
+:1034A0000091C0011091C1012091C2013091C3016E
+:1034B000DC01CB0180239123A223B3238093C0019D
+:1034C0009093C101A093C201B093C3011F910F91CA
+:1034D0000C947A150F931F930091C0011091C101B4
+:1034E0002091C2013091C301DC01CB0180279127DB
+:1034F000A227B3278093C0019093C101A093C2017A
+:10350000B093C3011F910F910C947A150895CF9237
+:10351000DF92EF92FF920F931F93CF93DF938C0173
+:10352000C090C401D090C501E090C601F090C701E1
+:103530008091C0019091C101A091C201B091C301DD
+:10354000C82AD92AEA2AFB2ACFE1D0E0D701C6014E
+:103550000C2E04C0B695A795979587950A94D2F737
+:1035600080FF06C0B8018C2F0E94E007019721F46C
+:10357000219760F780E001C08C2FDF91CF911F91E0
+:103580000F91FF90EF90DF90CF900895CF93DF934E
+:10359000EC010E94871ABE010E94E007DF91CF91E3
+:1035A0000895CB010E94C61A08958091C80185959F
+:1035B0008595859508958091C8018770089598E054
+:1035C000899F90011124262B2093C8010C94CB19BC
+:1035D0002091C801809582238093C801982F97700D
+:1035E00069F430E0482F552747FD509524173507DB
+:1035F00029F08595859585950C94EC190895909101
+:10360000C801977081E009F480E0089590910C0161
+:10361000992321F090910D01911109C020910E0183
+:1036200030910F01F90132969FEF40E01FC0982FB3
+:103630009695969596959F3050F5E0910E01F091F4
+:103640000F01E90FF11D877021E030E0A90102C0F0
+:10365000440F551F8A95E2F7CA019181892B818316
+:1036600008959F3F39F04F5F4E3041F0519158130C
+:10367000F8CF0DC05111F7CF942FF5CF9F3F39F000
+:10368000F901E90FF11D97FDFA95828308950895D8
+:1036900090910C01992321F090910D01911109C095
+:1036A00020910E0130910F01F9013296205F3F4FBA
+:1036B0001FC0982F9695969596959F30F0F4E091BF
+:1036C0000E01F0910F01E90FF11D877021E030E04C
+:1036D000A90102C0440F551F8A95E2F7CA018095DF
+:1036E00091818923818308953196E217F30729F0A8
+:1036F00090819813F9CF1082F7CF089581E090E080
+:10370000E0910E01F0910F01E80FF91F1082019670
+:1037100080319105A9F708959091DC01892B809360
+:10372000DC01089580959091DC0189238093DC0170
+:1037300008951092DC0108959091DB01892B80930C
+:10374000DB01089580959091DB0189238093DB0153
+:1037500008951092DB0108959091DA01892B8093EE
+:10376000DA01089580959091DA0189238093DA0136
+:1037700008951092DA0108958093C9010895109276
+:10378000C901089580910E0190910F01FC013196BD
+:103790009C01205F3F4F80E0919191118F5FE21774
+:1037A000F307D1F70895E0910E01F0910F01809198
+:1037B000DC018083E0910E01F0910F0190818091F6
+:1037C000DB01892B8083E0910E01F0910F01908144
+:1037D0008091DA01892B80838091C901882361F06F
+:1037E000E0910E01F0910F019081892B80830E945E
+:1037F000C21B81111092C90180910E0190910F019D
+:103800000C94011120E0009739F0AC0141505109AE
+:10381000842395232F5FF7CF822F0895CF92DF92D5
+:10382000EF92FF926C01EE24FF24C114D104E10455
+:10383000F10421F0C701B60120E101C020E0C72E4C
+:10384000D82EE92EFF24C114D104E104F10419F0AB
+:10385000285FC701B6016B017C0154E0F694E79440
+:10386000D794C7945A95D1F7C114D104E104F10457
+:1038700019F02C5FC701B6016B017C0142E0F694A0
+:10388000E794D794C7944A95D1F7C114D104E104C1
+:10389000F10419F02E5FC701B601DC01CB01B6952A
+:1038A000A79597958795892B8A2B8B2B09F02F5FEE
+:1038B000822FFF90EF90DF90CF9008958091F601D6
+:1038C000843021F11092DE0120E488E190E00FB60F
+:1038D000F894A895809360000FBE2093600080E06C
+:1038E0000E94F20983B7817F846083BF83B78160C0
+:1038F00083BF7894889583B78E7F83BF88E10FB6A6
+:10390000F89480936000109260000FBE08950895AF
+:103910000E944F030E9462030E94871C0E9457046A
+:1039200091E0811101C090E0892F08950E948E15C9
+:103930000E94F5100C94F20982E084BD93E095BDDD
+:103940009AEF97BD80936E0008952FB7F8948091F9
+:10395000DF019091E001A091E101B091E2012FBF60
+:103960000895CF92DF92EF92FF920F931F932FB79C
+:10397000F8944091DF015091E0016091E101709174
+:10398000E2012FBF6A017B01EE24FF248C0120E0BD
+:1039900030E0C016D106E206F30610F4415051099A
+:1039A0009A01281B390BC9011F910F91FF90EF90CD
+:1039B000DF90CF9008951F920F920FB60F921124AF
+:1039C0008F939F93AF93BF938091DF019091E0011C
+:1039D000A091E101B091E2010196A11DB11D80937A
+:1039E000DF019093E001A093E101B093E201BF9168
+:1039F000AF919F918F910F900FBE0F901F901895D0
+:103A00000E94F20DF8942FEF87EA91E62150804052
+:103A10009040E1F700C0000087E090EBDC0180936C
+:103A2000FF0190930002A0930102B09302029CE078
+:103A300088E10FB6F894A895809360000FBE90932C
+:103A40006000FFCF0E945A1D811102C00E94401DDC
+:103A50000E94651D8093DD010E946D1D90E0909392
+:103A6000F1018093F00187FB882780F980930D0195
+:103A70000E94691D682F70E080E090E00C944E1960
+:103A80006DEE7EEF80E090E00E94A82360E082E08F
+:103A900090E00E94962360E083E090E00E949623ED
+:103AA00060E084E090E00E94962360E085E090E092
+:103AB0000C94962380E090E00E94902321E08D3EBC
+:103AC0009E4F09F020E0822F089582E090E00C9450
+:103AD000882383E090E00C94882384E090E00C94A9
+:103AE0008823682F84E090E00C9496238091E50170
+:103AF00080FF0BC06091130185E0689FB001112425
+:103B000075956795759567952BC081FF09C0609184
+:103B1000130185E0689FB00111247595679520C059
+:103B200082FF07C06091130185E0689FB0011124F6
+:103B300017C09091E6019923D1F060911201961778
+:103B400088F72091130185E0289F90011124929F0E
+:103B5000A001939F500D112470E0CA010E945A23C6
+:103B60006038710540F46115710539F002C065E0F7
+:103B700070E0862F08958FE7089581E00895809181
+:103B8000E50180FF08C06091110170E075956795AF
+:103B90007595679521C081FF06C06091110170E0A5
+:103BA0007595679519C082FF04C06091110170E09E
+:103BB00010C09091E6019923C1F060911001961711
+:103BC000A0F780911101899FC001112470E00E942B
+:103BD0005A236038710528F46115710521F0862F8C
+:103BE00008958FE7089581E0089561E070E0F4CFD3
+:103BF000803F21F40E94761D819504C0813F29F405
+:103C00000E94761D8093E9010895823F21F40E946D
+:103C1000761D819504C0833F29F40E94761D809310
+:103C2000E8010895893F19F40E94BF1D05C08A3F2D
+:103C300031F40E94BF1D81958093EA0108958B3F66
+:103C400021F40E94BF1D819504C08C3F29F40E947D
+:103C5000BF1D8093EB010895843F21F48091E7011B
+:103C6000816017C0853F21F48091E701826011C017
+:103C7000863F21F48091E70184600BC0873F21F4E7
+:103C80008091E701886005C0883F31F48091E701A9
+:103C900080618093E70108958D3F21F48091E501D3
+:103CA00081600BC08E3F21F48091E501826005C0E8
+:103CB0008F3F29F48091E50184608093E5010895A8
+:103CC000803F39F48091E90187FF6CC01092E901CF
+:103CD00069C0813F29F48091E9011816BCF362C0E4
+:103CE0009091E801823F29F497FF5CC01092E801AF
+:103CF00059C0833F19F41916CCF354C0893F41F4DD
+:103D00008091EA0118160CF04DC01092EA014AC0E9
+:103D10008A3F29F48091EA0187FF44C0F6CF8B3FA8
+:103D200039F48091EB0187FF3DC01092EB013AC05E
+:103D30008C3F29F48091EB011816BCF333C0843F0B
+:103D400021F48091E7018E7F17C0853F21F4809197
+:103D5000E7018D7F11C0863F21F48091E7018B7FC1
+:103D60000BC0873F21F48091E701877F05C0883F22
+:103D700031F48091E7018F7E8093E70113C08D3F7E
+:103D800021F48091E5018E7F0BC08E3F21F480915C
+:103D9000E5018D7F05C08F3F29F48091E5018B7F80
+:103DA0008093E5018091E80181110EC08091E901C5
+:103DB00081110AC08091EA01811106C08091EB0156
+:103DC000811102C01092E601089587EE91E00E94F1
+:103DD0000C110E94A51C9093E4018093E3010895C7
+:103DE0001F93CF93DF938091E3019091E4010E94B0
+:103DF000B11CAC019091E601992321F020911401AE
+:103E000030E006C0209115018AE0289F900111241E
+:103E10004217530708F486C08091E801C091E90178
+:103E2000D091EA011091EB01811107C0C11176C058
+:103E3000D11174C0111172C075C09F3F19F09F5FFE
+:103E40009093E601181624F40E94761D8093E801F1
+:103E50008091E80187FF05C00E94761D81958093BF
+:103E6000E8011C1624F40E94761D8093E9018091DC
+:103E7000E90187FF05C00E94761D81958093E901C5
+:103E80006091E801662339F1C091E901CC2319F171
+:103E9000772767FD7095872F972F0E946B2223E36A
+:103EA00033E343E35FE30E94CF220E943822609312
+:103EB000E8016C2F772767FD7095872F972F0E9459
+:103EC0006B2223E333E343E35FE30E94CF220E94AC
+:103ED00038226093E9011D1624F40E94BF1D8093CF
+:103EE000EA018091EA0187FF05C00E94BF1D81950C
+:103EF0008093EA01111624F40E94BF1D8093EB0108
+:103F00008091EB0187FF05C00E94BF1D81958093C2
+:103F1000EB01DF91CF911F910C94E51E9F3F09F0BB
+:103F20008ECF96CFDF91CF911F910895E7EEF1E00C
+:103F300085E0DF011D928A95E9F71092E601109263
+:103F4000E5010895833081F128F4813059F0823001
+:103F5000D1F00895853009F449C0B8F1863009F4EC
+:103F600056C0089580911501262F30E0280F311D8D
+:103F70002F3F310524F4680F6093150108958FEFEA
+:103F800080931501089580911401262F30E0280FA9
+:103F9000311D2F3F310524F4680F609314010895FB
+:103FA0008FEF80931401089580911301262F30E044
+:103FB000280F311D2F3F310524F4680F6093130142
+:103FC00008958FEF80931301089580911201262F99
+:103FD00030E0280F311D2F3F310524F4680F609326
+:103FE000120108958FEF80931201089580911101BD
+:103FF000262F30E0280F311D2F3F310524F4680FA4
+:104000006093110108958FEF8093110108958091BD
+:104010001001262F30E0280F311D2F3F310524F4E9
+:10402000680F6093100108958FEF80931001089539
+:10403000833011F128F4813049F0823091F00895F5
+:10404000853081F120F18630C1F10895809115010C
+:10405000681720F4861B80931501089510921501AE
+:10406000089580911401681720F4861B8093140131
+:10407000089510921401089580911301681720F497
+:10408000861B809313010895109213010895809167
+:104090001201681720F4861B809312010895109274
+:1040A0001201089580911101681720F4861B8093F6
+:1040B000110108951092110108958091100168175F
+:1040C00020F4861B8093100108951092100108952A
+:1040D0000F931F938D3109F471C008F045C08031F2
+:1040E00009F485C008F5873009F46FC068F486309C
+:1040F00009F0ADC08091DD01817F8E7F8093DD016D
+:1041000081E08093ED01A4C08B3009F49EC08E3015
+:1041100009F09DC08091DD0182FB222720F991E00A
+:10412000922790FB82F96CC0863109F48EC060F44E
+:10413000813109F08CC00E948E1590910D0181E0B3
+:10414000892780930D0181C0893109F47EC08B31AC
+:1041500009F07DC08091DD0181FB222720F991E0EB
+:10416000922790FB81F94CC0853309F466C048F46E
+:10417000873209F462C008F44FC0893209F45DC087
+:1041800066C0833438F48A3308F044C0883309F4B5
+:104190005CC05DC0833409F450C0883409F057C056
+:1041A0000E948E150FEF13ED20E3015010402040C8
+:1041B000E1F700C000000E94001D47C00E94F221EC
+:1041C0000E94F5100E94F20940C09091DD01892FF4
+:1041D0008095817080FB90F929F0966098609093AB
+:1041E000DD0136C0997F977F9093DD012EC08091CD
+:1041F000DD0183FB222720F991E0922790FB83F9D0
+:104200008093DD01992309F18091DD018160809324
+:10421000DD011BC0895301C08D5141E050E060E0D9
+:1042200070E08A019B0104C0000F111F221F331F81
+:104230008A95D2F7C901B80104C061E070E080E05E
+:1042400090E00E944E190E948E1581E001C080E02E
+:104250001F910F91089580E0089580E008958E5198
+:104260008A3030F4E82FF0E0E65DFE4F808108955B
+:1042700080E00895CF93C82F8091ED01813079F0CF
+:1042800018F08230E9F186C0E0910E01F0910F0143
+:104290008081813169F0823209F07EC009C0E091ED
+:1042A0000E01F0910F018081813111F0823261F4B1
+:1042B0008C2F0E942B21811104C08C2F0E9468201A
+:1042C0001DC081E090E01AC08C2F0E942D21811129
+:1042D00014C0C43179F048F4CB3079F0C03109F022
+:1042E0005FC082E08093ED0108C0C93219F0C83385
+:1042F00021F056C01092ED0153C081E0817052C090
+:10430000C93281F110F5C43169F1A8F4C73009F060
+:1043100045C08AE08093150194E19093140193E0E5
+:10432000909313018093120188E08093110188E239
+:104330008093100133C082EE8C0F863078F58C2F7D
+:104340000E942F218093EC0129C0CE34E9F020F4A3
+:10435000CB3421F56AE013C0C13579F0C235F1F4F0
+:1043600061E00DC08091EC01882319F01092EC01FE
+:1043700015C081E08093ED0115C061E006C0809119
+:10438000EC010E94A21F0AC06AE08091EC010E9429
+:10439000182004C01092ED0180E004C081E002C04A
+:1043A00080E0ACCFCF910895E1E8F0E080818860B3
+:1043B00080838081816080838FB7F89493E09093AD
+:1043C000890090ED909388008FBF0895EFE6F0E0AC
+:1043D0008081826080830895EFE6F0E080818D7FA8
+:1043E00080830895EFE6F0E0908182E08927808362
+:1043F00008951F920F920FB60F9211242F933F939F
+:104400004F935F936F937F938F939F93AF93BF93DC
+:10441000EF93FF938091EE019091EF0101969093BD
+:10442000EF018093EE01811103C082E00E94F20946
+:10443000E091EF01E695E695F0E0EB54FB4FE49157
+:104440008091EE018E1303C080E00E94F209FF917B
+:10445000EF91BF91AF919F918F917F916F915F91FC
+:104460004F913F912F910F900FBE0F901F90189575
+:1044700004D06894B1118DC0089570D088F09F5712
+:1044800090F0B92F9927B751A0F0D1F0660F771FA0
+:10449000881F991F1AF0BA95C9F712C0B13081F080
+:1044A00077D0B1E0089574C0672F782F8827B85F60
+:1044B00039F0B93FCCF3869577956795B395D9F7E1
+:1044C0003EF490958095709561957F4F8F4F9F4FEB
+:1044D0000895E89409C097FB3EF4909580957095F7
+:1044E00061957F4F8F4F9F4F9923A9F0F92F96E940
+:1044F000BB279395F695879577956795B795F111B5
+:10450000F8CFFAF4BB0F11F460FF1BC06F5F7F4F51
+:104510008F4F9F4F16C0882311F096E911C0772363
+:1045200021F09EE8872F762F05C0662371F096E86C
+:10453000862F70E060E02AF09A95660F771F881F3B
+:10454000DAF7880F9695879597F9089557FD905853
+:10455000440F551F59F05F3F71F04795880F97FB47
+:10456000991F61F09F3F79F0879508951216130601
+:104570001406551FF2CF4695F1DF08C01616170630
+:104580001806991FF1CF8695710561050894089565
+:10459000E894BB2766277727CB0197F908950BD0BE
+:1045A00078C069D028F06ED018F0952309F05AC071
+:1045B0005FC01124EECFCADFA0F3959FD1F3950F12
+:1045C00050E0551F629FF001729FBB27F00DB11D97
+:1045D000639FAA27F00DB11DAA1F649F6627B00D27
+:1045E000A11D661F829F2227B00DA11D621F739F10
+:1045F000B00DA11D621F839FA00D611D221F749F1E
+:104600003327A00D611D231F849F600D211D822F64
+:10461000762F6A2F11249F5750408AF0E1F08823AB
+:104620004AF0EE0FFF1FBB1F661F771F881F9150B8
+:104630005040A9F79E3F510570F014C0AACF5F3FCC
+:10464000ECF3983EDCF3869577956795B795F795EB
+:10465000E7959F5FC1F7FE2B880F911D9695879573
+:1046600097F9089597F99F6780E870E060E00895F2
+:104670009FEF80EC089500240A941616170618067A
+:104680000906089500240A94121613061406050656
+:104690000895092E0394000C11F4882352F0BB0FE7
+:1046A00040F4BF2B11F460FF04C06F5F7F4F8F4F4A
+:1046B0009F4F089597FB072E16F4009407D077FDBF
+:1046C00009D00E94742307FC05D03EF49095819593
+:1046D0009F4F0895709561957F4F0895EE0FFF1FCE
+:1046E0000590F491E02D0994AA1BBB1B51E107C072
+:1046F000AA1FBB1FA617B70710F0A61BB70B881F72
+:10470000991F5A95A9F780959095BC01CD01089500
+:10471000F999FECF92BD81BDF89A992780B5089589
+:10472000A8E1B0E042E050E00C94B023262FF999C4
+:10473000FECF92BD81BDF89A019700B4021639F000
+:104740001FBA20BD0FB6F894FA9AF99A0FBE0895D1
+:104750000196272F0E9497230C949623DC01CB010E
+:10476000FC01F999FECF06C0F2BDE1BDF89A319681
+:1047700000B40D9241505040B8F70895F894FFCF1F
+:104780000220F409820A5F0A2B0AF7090101CA0113
+:1047900028080A03140A404D363975042804F20328
+:1047A000B9034C0365037E03970301020304050666
+:0447B00007080900ED
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/dvorak_spanish/keymap.c b/keyboards/ergodox_ez/keymaps/dvorak_spanish/keymap.c new file mode 100755 index 000000000..6eb864b44 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/dvorak_spanish/keymap.c @@ -0,0 +1,284 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +/****************************************************************************************** + * SPANISH DVORAK LAYOUT (see http://djelibeibi.unex.es/dvorak/) + * Layer 1: auxiliary keys + * Layer 2: full qwerty layout + ****************************************************************************************** + * IMPORTANT: Software layout must be set to SPANISH QWERTY to work properly + *****************************************************************************************/ + +// LAYERS +#define BASE 0 // dvorak layout (default) +#define AUX 1 // auxiliary keys +#define QWERTY 2 // qwerty layout + +// 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 | <> | | ¡ | 6 | 7 | 8 | 9 | 0 | ' | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | F1/~L1 | . | , | Ñ | P | Y |MEH_T | | L1 | F | G | C | H | L |ALL_T/+ | + * |--------+------+------+------+------+------| DEL | | ~L1 |------+------+------+------+------+--------| + * |Esc/Ctrl| A | O | E | U | I |------| |------| D | R | T | N | S |'/RCtrl | + * |--------+------+------+------+------+------| LGUI | | RALT |------+------+------+------+------+--------| + * | {/LSft | - | Q | J | K | X | | | | B | M | W | V | Z | }/RSft | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |[/LALT| HOME |PGDOWN| PGUP | END | | LEFT | DOWN | UP |RIGHT |]/LALT| + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * |F5/CAG|F6/~L1| |F7/~L1|F8/CAG| + * ,------|------|------| |------+--------+------. + * | | |F4/CA | |F11/CA| | | + * | ENTER| TAB |------| |------| BSPC | SPACE| + * | | |F3/SA | |F12/SA| | | + * `--------------------' `----------------------' + * CAG = CTRL-ALT-GUI + * CA = CTRL-ALT + * SA = SHIFT-ALT + * + */ +[BASE] = KEYMAP( + // left hand + KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NONUS_BSLASH, + LT(AUX, KC_F1), KC_DOT, KC_COMM,KC_SCLN,KC_P, KC_Y, MEH_T(KC_DEL), + CTL_T(KC_ESC), KC_A, KC_O, KC_E, KC_U, KC_I, + M(OBRACE), KC_SLSH,KC_Q, KC_J, KC_K, KC_X, KC_LGUI, + M(OBRACK), KC_HOME,KC_PGDN,KC_PGUP,KC_END, + LCAG_T(KC_F5), LT(AUX, KC_F6), + MT((MOD_LALT | MOD_LCTL), KC_F4), + KC_ENT,KC_TAB,MT((MOD_LALT | MOD_LSFT), KC_F3), + // right hand + KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, + KC_FN1, KC_F, KC_G, KC_C, KC_H, KC_L, ALL_T(KC_RBRACKET), + KC_D, KC_R, KC_T, KC_N, KC_S, CTL_T(KC_QUOTE), + KC_RALT, KC_B, KC_M, KC_W, KC_V, KC_Z, M(CBRACE), + KC_LEFT,KC_DOWN,KC_UP, KC_RGHT,M(CBRACK), + LT(AUX, KC_F7), LCAG_T(KC_F8), + MT((MOD_LALT | MOD_LCTL), KC_F11), + MT((MOD_LALT | MOD_LSFT), KC_F12),KC_BSPC, KC_SPC + ), +/* Keymap 1: Aux layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | SLEEP | PWR | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | < | > | MsUp | | | | | ~L0 | | 7 | 8 | 9 | * | `^ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | 4 | 5 | 6 | + | Ç | + * |--------+------+------+------+------+------| | |PSCR |------+------+------+------+------+--------| + * |CAPSLOCK| | | | | | | | | | 1 | 2 | 3 | / | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |CTRL-S|CTRL-Z|CTRL-X|CTRL-C|CTRL-V| | | . | 0 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | Play | + * ,------|------|------| |------+------+------. + * | | | | | VolUp| | | + * | Lclk | Rclk |------| |------| Prev | Next | + * | | | L2 | | VolDn| | | + * `--------------------' `--------------------' + */ +[AUX] = KEYMAP( + // left hand + KC_NO , KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_SLEP, + KC_TRNS, KC_NONUS_BSLASH, LSFT(KC_NONUS_BSLASH), KC_MS_U, KC_NO, KC_NO, KC_NO, + KC_NO , KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO , + M(CAPS), KC_NO, KC_NO , KC_NO , KC_NO , KC_NO , KC_NO, + LCTL(KC_S), LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), + KC_NO , KC_TRNS, + KC_NO, + KC_BTN1, KC_BTN2, TG(QWERTY), + // right hand + KC_PWR, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_NO, KC_7, KC_8, KC_9, KC_PAST, KC_LBRACKET, + KC_NO, KC_4, KC_5, KC_6, KC_PPLS, KC_BSLASH, + KC_PSCR, KC_NO, KC_1, KC_2, KC_3, KC_PSLS, KC_NO, + KC_NO ,KC_DOT, KC_0, KC_PEQL, KC_NO, + KC_TRNS, KC_MPLY, + KC_VOLU, + KC_VOLD, KC_MPRV, KC_MNXT +), +/* Keymap 2: QWERTY layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | \ | 1 | 2 | 3 | 4 | 5 | <> | | ¡ | 6 | 7 | 8 | 9 | 0 | ' | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | TRANS | Q | W | E | R | T |MEH_T | | TRANS| Y | U | I | O | P |ALL_T/+ | + * |--------+------+------+------+------+------| DEL | | |------+------+------+------+------+--------| + * |Esc/Ctrl| A | S | D | F | G |------| |------| H | J | K | L | Ñ |'/RCtrl | + * |--------+------+------+------+------+------| LGUI | | RALT |------+------+------+------+------+--------| + * | {/LSft | Z | X | C | V | B | | | | N | M | , | . | - | }/RSft | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |[/LALT| HOME |PGDOWN| PGUP | END | | LEFT | DOWN | UP |RIGHT |]/LALT| + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * |F5/CAG| TRANS| | TRANS|F8/CAG| + * ,------|------|------| |------+--------+------. + * | | |F4/CA | |F11/CA| | | + * | ENTER| TAB |------| |------| BSPC | SPACE| + * | | | TRANS| |F12/SA| | | + * `--------------------' `----------------------' + * CAG = CTRL-ALT-GUI + * CA = CTRL-ALT + * SA = SHIFT-ALT + * + */ +[QWERTY] = KEYMAP( + // left hand + KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NONUS_BSLASH, + KC_TRNS, KC_Q, KC_W, KC_E, KC_R, KC_T, MEH_T(KC_DEL), + CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, + M(OBRACE), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LGUI, + M(OBRACK), KC_HOME,KC_PGDN,KC_PGUP,KC_END, + LCAG_T(KC_F5), KC_TRNS, + MT((MOD_LALT | MOD_LCTL), KC_F4), + KC_ENT,KC_TAB,KC_TRNS, + // right hand + KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, + KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, ALL_T(KC_RBRACKET), + KC_H, KC_J, KC_K, KC_L, KC_SCLN,CTL_T(KC_QUOTE), + KC_RALT, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,M(CBRACE), + KC_LEFT,KC_DOWN,KC_UP, KC_RGHT,M(CBRACK), + KC_TRNS, LCAG_T(KC_F8), + MT((MOD_LALT | MOD_LCTL), KC_F11), + MT((MOD_LALT | MOD_LSFT), KC_F12),KC_BSPC, KC_SPC +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(AUX) // FN1 - Momentary Layer 1 (Aux) +}; + +static uint16_t key_timer; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case OBRACE: { + if (record->event.pressed) { + key_timer = timer_read(); + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + if (timer_elapsed(key_timer) < KEY_TAP_SLOW) { + register_code(KC_RALT); + register_code(KC_QUOTE); + unregister_code(KC_QUOTE); + unregister_code(KC_RALT); + } + } + break; + } + case CBRACE: { + if (record->event.pressed) { + key_timer = timer_read(); + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + if (timer_elapsed(key_timer) < KEY_TAP_SLOW) { + register_code(KC_RALT); + register_code(KC_BSLS); + unregister_code(KC_BSLS); + unregister_code(KC_RALT); + } + } + break; + } + case OBRACK: { + if (record->event.pressed) { + key_timer = timer_read(); + register_code(KC_LALT); + } else { + unregister_code(KC_LALT); + if (timer_elapsed(key_timer) < KEY_TAP_SLOW) { + register_code(KC_RALT); + register_code(KC_LBRACKET); + unregister_code(KC_LBRACKET); + unregister_code(KC_RALT); + } + } + break; + } + case CBRACK: { + if (record->event.pressed) { + key_timer = timer_read(); + register_code(KC_LALT); + } else { + unregister_code(KC_LALT); + if (timer_elapsed(key_timer) < KEY_TAP_SLOW) { + register_code(KC_RALT); + register_code(KC_RBRACKET); + unregister_code(KC_RBRACKET); + unregister_code(KC_RALT); + } + } + break; + } + case CAPS: { + if (record->event.pressed) { + register_code(KC_CAPSLOCK); + } else { + unregister_code(KC_CAPSLOCK); + } + 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_3_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } + + // Turn the caps lock led on + if (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) { + ergodox_right_led_1_on(); + } + +} + diff --git a/keyboards/ergodox_ez/keymaps/emacs_osx_dk/compiled.hex b/keyboards/ergodox_ez/keymaps/emacs_osx_dk/compiled.hex new file mode 100644 index 000000000..4db0ef029 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/emacs_osx_dk/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4
+:100010000C94BE020C94BE020C94BE020C94BE0260
+:100020000C94BE020C94BE020C94620D0C94340E1F
+:100030000C94BE020C94BE020C94BE020C94BE0240
+:100040000C94BE020C943E220C94BE020C94BE0290
+:100050000C94BE020C94D11B0C94BE020C94BE02F4
+:100060000C94BE020C94BE020C94BE020C94BE0210
+:100070000C94BE020C94BE020C94BE020C94BE0200
+:100080000C94BE020C94BE020C94BE020C94BE02F0
+:100090000C94BE020C94BE020C94BE020C94BE02E0
+:1000A0000C94BE020C94BE020C94BE02A10EC30EB0
+:1000B000B10FC30EB10F080F2B0FB10F800F930FAD
+:1000C0006212621291129112C712E71218141814D8
+:1000D000F2121814A213A2130914181418141214EB
+:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300
+:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0
+:10010000C113CE13D513DC13E6130000F0A13500A4
+:100110002B003171E100015200001E0014000400A8
+:100120001D00E0004D001F001A0016001B005000CB
+:100130002A0020000800070006004F002C002100C4
+:10014000150009001900E2004A00220017000A0009
+:10015000050000004C0001542F000000E6000000E4
+:100160004900025430000000E6000000290023008E
+:100170001C000B00110000006500240018000D0099
+:100180001000E2004B0025000C000E00360052006B
+:100190002800260012000F0037005100E30027005E
+:1001A000130033003800E4004E002E002D0034719F
+:1001B000E500025200000100010001000100010001
+:1001C00000003A001E0220022202010001003B0052
+:1001D0001F0221022302010001003C002F0226021F
+:1001E0002F00010001003D00300227023000010015
+:1001F00001003E003102350035020000010001001F
+:1002000001000000010000000100010001000000E9
+:100210000100000001003F005200510024020000D4
+:1002200001004000240021001E00270001004100C1
+:10023000250022001F0027000100420026002300A5
+:10024000200037000100430025022E0231002E005D
+:100250000100440045000100010001000000010010
+:100260000100010001000100000001000100010087
+:1002700001000100010001000100F2000100010085
+:1002800001000100F000F1000100F4000100010094
+:100290000100F3000100F500010001000100010070
+:1002A0000100000001000100010000000100000049
+:1002B0000100010001000000010000000100010038
+:1002C0000100010001000000010001000100010027
+:1002D0000100A9000100010001000100AC00AA001A
+:1002E000B600010001000100AB00A8000100010000
+:1002F0000100010001000100010001000100AE0049
+:1003000001000100000016034500720067006F0045
+:1003100044006F007800200045005A0000001603DA
+:100320004500720067006F0044006F0078002000F5
+:1003300045005A0000000403090409026D0004018D
+:1003400000A0FA09040000010301010009211101C4
+:100350000001223F000705810308000A090401008B
+:100360000103010200092111010001224D000705CE
+:10037000820308000A0904020001030000000921A9
+:10038000110100012236000705830308000A090451
+:1003900003000103000000092111010001223900BE
+:1003A000070584031000011201100100000008ED90
+:1003B000FE071301000102000105010906A1010564
+:1003C0000719E029E7150025019508750181020547
+:1003D000081901290595057501910295017503918B
+:1003E0000105071900297715002501957875018108
+:1003F00002C005010980A101850216010026B7008F
+:100400001A01002AB700751095018100C0050C097A
+:1004100001A1018503160100269C021A01002A9CF5
+:1004200002751095018100C005010902A1010901B1
+:10043000A10005091901290515002501950575017A
+:10044000810295017503810105010930093115818A
+:10045000257F95027508810609381581257F95014C
+:1004600075088106050C0A38021581257F950175EE
+:10047000088106C0C005010906A101050719E02988
+:10048000E715002501950875018102950175088120
+:100490000105081901290595057501910295017558
+:1004A0000391010507190029FF150025FF95067521
+:1004B000088100C0000000000000000000000001F2
+:1004C0000204060A0F17202C3A4A5D71879DB3C7B4
+:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF
+:1004E0003A2C20170F0A0604020100000000000049
+:1004F0000000000011241FBECFEFDAE0DEBFCDBF49
+:1005000004B603FE24C08091FB019091FC01A091F0
+:10051000FD01B091FE018730904BA740B04BB9F47C
+:100520001092FB011092FC011092FD011092FE014D
+:1005300014BE84B7877F84BF88E10FB6F894809398
+:100540006000109260000FBEE0E0FFE3099511E04B
+:10055000A0E0B1E0EAE0F8E402C005900D92A43317
+:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0
+:10057000B107E1F70E94A60A0C9403240C94000032
+:100580001092B9008AE08093B800089594EA90939D
+:10059000BC009091BC0097FFFCCF9091B900987F70
+:1005A000983021F0903111F081E008958093BB00E4
+:1005B00084E88093BC008091BC0087FFFCCF8091D1
+:1005C000B900887F883111F0803471F780E0089598
+:1005D00084E98093BC008091BC0084FDFCCF089529
+:1005E0008093BB0084E88093BC008091BC0087FFAF
+:1005F000FCCF9091B900987F81E0983209F480E0B7
+:10060000089584E88093BC008091BC0087FFFCCFF4
+:100610008091BB00089580910101811115C080E493
+:100620000E94C6028093010181110CC082E10E94E8
+:10063000F00280930101811105C08FEF0E94F0024A
+:10064000809301010E94E80284B1807F84B985B162
+:10065000807F85B98AB1837F8AB98BB1837F8BB95B
+:100660003E98469808950E94C604809301010E9416
+:100670000B0380B38C7080BB81B3836F81BBA5E318
+:10068000B1E0E3E4F1E08EE08E0F11921D928E1343
+:10069000FCCF0C94B004BF92CF92DF92EF92FF9206
+:1006A0000F931F93CF93DF9380910101882379F0FB
+:1006B000809134018F5F80933401811108C00E94C2
+:1006C000C60480930101811102C00E94580405E311
+:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407
+:1006E000E394F12CC730D10500F58091010181110F
+:1006F00064C080E40E94C60280930101811112C08F
+:1007000082E10E94F0028093010181110BC0C701B8
+:100710000C2E01C0880F0A94EAF780950E94F0021F
+:10072000809301010E94E80248C0CA30A1F028F479
+:10073000C83059F0C93061F005C0CC3089F070F094
+:10074000CD3089F0209A289810C0219A29980DC0A0
+:10075000229A2A980AC0239A2B9807C0529A01C05D
+:10076000539A5B9802C03E9A469890EA9A95F1F7A0
+:100770009FB1799902C082E001C080E091709D250F
+:10078000982B7C9902C084E001C080E0892B7D9980
+:1007900002C038E001C030E0832B7E9902C020E126
+:1007A00001C020E0822B9FB19095991F9927991F36
+:1007B0009295990F907E892B0FC080910101811134
+:1007C00049C080E40E94C60280930101882379F128
+:1007D000B12C0E94E8028B2DF8019081981719F036
+:1007E0008083C09200010E940B0321960F5F1F4F70
+:1007F000CE30D10509F076CF80910001882361F1D8
+:10080000815080930001882339F08FE99FE00197A0
+:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F
+:10082000CF01825F91919D938E13FCCF15C083E120
+:100830000E94F002809301018111CACF81E40E94DD
+:10084000C602809301018111C3CF0E940103B82E1B
+:10085000B094BFCF80E0C0CF0E94560481E0DF910A
+:10086000CF911F910F91FF90EF90DF90CF90BF90AD
+:100870000895E82FF0E0ED5BFE4F80810895089524
+:100880000F931F93CF93DF93C3E4D1E010E00C2FBD
+:10089000025F899190E00E94F71A180F0C13F9CFAC
+:1008A000812FDF91CF911F910F9108950C94260510
+:1008B00056985E9825982D9826982E9827982F98C8
+:1008C0008FEF90E0909389008093880090938B0045
+:1008D00080938A0090938D0080938C00259A2D9AA6
+:1008E0002FEF80E792E0215080409040E1F700C078
+:1008F0000000269A2E9A2FEF80E792E02150804048
+:100900009040E1F700C00000279A2F9A2FEF80E770
+:1009100092E0215080409040E1F700C0000025980F
+:100920002D982FEF80E792E0215080409040E1F732
+:1009300000C0000026982E982FEF80E792E021500B
+:1009400080409040E1F700C0000027982F9856980B
+:100950005E9825982D9826982E9827982F98089578
+:1009600089EA8093800089E08093810024982C9804
+:100970003F988AB18F748AB96E98479A8BB1806B11
+:100980008BB9769A0E9458040C94250580E28093D6
+:1009900001018091510181110EC00E94C00281E0CD
+:1009A000809351012FEF83ED90E3215080409040E0
+:1009B000E1F700C0000080E40E94C60280930101BC
+:1009C00081112EC00E94F00280930101811128C084
+:1009D0000E94F00280930101811122C08FE30E94E6
+:1009E000F0028093010181111BC00E94E80280E4A3
+:1009F0000E94C60280930101811112C08CE00E9406
+:100A0000F0028093010181110BC00E94F0028093DB
+:100A10000101811105C08FE30E94F0028093010162
+:100A20000E94E80280910101089561110BC0FC0150
+:100A30008281882321F085EE0E94061103C085EE95
+:100A40000E94CE1180E090E0089508956091BD016C
+:100A50007091BE018091BF019091C0010E94031B63
+:100A600056985E9825982D9826982E9827982F9816
+:100A7000813019F0823021F00895259A2D9A089539
+:100A8000269A2E9A089581E0089581E008950C94A5
+:100A9000450508950F931F93CF93DF938C01FC01BD
+:100AA000C081D181CE010E947C19BE010E94F30554
+:100AB000EC01B8010E944705882309F48DC0F801B4
+:100AC0008281882309F44AC080915D0181111FC091
+:100AD000C431F0E5DF0709F051C00E94490581E00B
+:100AE00080935D010E949B1B90935C0180935B014E
+:100AF0001092540110925601109255011092580113
+:100B00001092570110925A011092590165C08091BC
+:100B10005B0190915C010E94A71B883C910570F4D9
+:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB
+:100B3000D183C0838F5F809354014EC0C43880E559
+:100B4000D80721F0C538D04501F13AC0F8018281BB
+:100B5000882341F01092520182E01EC0C438E0E5C3
+:100B6000DE0759F580915201811106C086E20E948C
+:100B7000061186E20E94CE1182E01CC0C438F0E566
+:100B8000DF0741F3C538D045D9F4F80182818823C5
+:100B900031F01092530180E20E941D121DC080911D
+:100BA0005301811106C087E20E94061187E20E946C
+:100BB000CE1180E20E9424120FC0C538D04529F31F
+:100BC00081E08093520180935301C801DF91CF915E
+:100BD0001F910F910C94430580E0DF91CF911F91FD
+:100BE0000F910895089596E0799FF001112494E5FE
+:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F
+:100C0000E25FFE4F859194910895880F991FFC0132
+:100C1000E657F040859194910895880F991FFC0143
+:100C2000E65FFE4F8591949108950F931F93CF93A4
+:100C3000DF93EC01811520E3920750F5C11580E2A6
+:100C4000D80708F0C3C0CB3BD10590F4C83AD10512
+:100C500008F06AC0C53AD10508F05BC0C430D105C0
+:100C600008F0D0C1219709F0CAC101E010E00AC222
+:100C7000CF3FD10511F008F0C5C1C03FD10508F044
+:100C8000A2C0CE01805E9109089708F4BBC1B7C12C
+:100C9000C13090E5D90709F4A2C020F5C0318FE436
+:100CA000D80770F4C11590E4D90708F094C0C115B5
+:100CB00021E3D20708F0A3C1DD278E01106CE2C149
+:100CC000C115D04509F09BC10E9483148FEF94E3B6
+:100CD0002CE0815090402040E1F700C000000E94CD
+:100CE000F61BD0C1C11597E5D90758F4C03121E5ED
+:100CF000D20708F01CC1C43180E5D80708F475C0DC
+:100D00007EC1CE0190578115904108F078C1DF7007
+:100D100073C1C53AD10509F477C1C63AD10509F0C6
+:100D200076C102E810E4AEC1C83AD10509F472C137
+:100D3000C93AD10509F471C1CA3AD10509F470C1A3
+:100D4000CB3AD10509F46FC1CC3AD10509F46EC193
+:100D5000CD3AD10509F46DC1C03BD10509F46CC190
+:100D6000CE3AD10509F46BC1CF3AD10509F46AC175
+:100D7000C13BD10509F469C1C23BD10509F468C181
+:100D8000C33BD10509F467C1C43BD10509F466C171
+:100D9000C53BD10509F465C1C63BD10509F464C161
+:100DA000C73BD10509F463C1C83BD10509F462C151
+:100DB000C93BD10509F461C1CA3BD10509F460C141
+:100DC00000E014E45FC18E0110655CC1CE019F702C
+:100DD0000E940D0658C1DF708E01106A53C18091C8
+:100DE000DA0181608093DA014DC10E949B1D81115F
+:100DF00002C00E94811D0E94B81D90E09093FB01EB
+:100E00008093FA01C23080E5D80721F48091FA017D
+:100E1000816086C0C43090E5D90721F48091FA0141
+:100E200082607EC0C63020E5D20721F48091FA01AD
+:100E3000846076C0C83080E5D80719F48091FA0143
+:100E400027C0CA3090E5D90721F48091FA0180616A
+:100E500067C0CC3020E5D20721F48091FA0180628E
+:100E60005FC0CE3080E5D80721F48091FA0180641C
+:100E700057C0C03190E5D90721F48091FA0180680C
+:100E80004FC0C23120E5D20729F48091FA01846075
+:100E9000886046C0C33080E5D80721F48091FA010C
+:100EA0008E7F3EC0C53090E5D90721F48091FA01CC
+:100EB0008D7F36C0C73020E5D20721F48091FA013A
+:100EC0008B7F2EC0C93080E5D80719F48091FA01D4
+:100ED00026C0CB3090E5D90721F48091FA018F7EAE
+:100EE0001FC0CD3020E5D20721F48091FA018F7D1B
+:100EF00017C0CF3080E5D80721F48091FA018F7BAD
+:100F00000FC0C13190E5D90721F48091FA018F77A4
+:100F100007C0C331D04531F48091FA018B7F877FC0
+:100F20008093FA018091FA010E94BC1DABC08D2F05
+:100F300099278F70992781309105D9F49E012370EC
+:100F4000332702C0880F991F2A95E2F79C688E010B
+:100F500044E0000F111F4A95E1F700271370802B22
+:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA
+:100F70002FC08230910531F4DC2FCC278E01016F18
+:100F8000106A80C08330910569F4CE01837099277F
+:100F900001E010E002C0000F111F8A95E2F7C801BE
+:100FA0009C680FC084309105B9F4CE0183709927F5
+:100FB00001E010E002C0000F111F8A95E2F7C8019E
+:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029
+:100FD0008C010C2B1D2B56C08530910531F4DC2F74
+:100FE000CC278E01046F106A4DC0069709F04AC0E5
+:100FF000CF71DD27DC2FCC278E01106243C000E0CB
+:1010000010E040C08E013EC001E810E43BC003E8A0
+:1010100010E438C002EE14E435C009EE14E432C026
+:101020000AEE14E42FC005EB14E42CC006EB14E424
+:1010300029C007EB14E426C00CEC14E423C00DEC2B
+:1010400014E420C003E815E41DC00AE815E41AC042
+:1010500002E915E417C004E915E414C001E216E43E
+:1010600011C003E216E40EC004E216E40BC005E270
+:1010700016E408C006E216E405C007E216E402C062
+:101080000AE216E4C801DF91CF911F910F910895F4
+:1010900096E0799FF001112494E5899FE00DF11D00
+:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149
+:1010B0009491803E9105E0F4803C910558F5813390
+:1010C000910509F46FC048F48932910509F463C0B1
+:1010D0008A32910509F46DC072C089339105E9F037
+:1010E00082389105D1F08533910509F44DC067C070
+:1010F000833E910581F138F4803E9105B9F0823E3E
+:101100009105D9F05CC0863E910561F1873E91055D
+:10111000A1F155C00E94050608952091FA0120FD15
+:1011200002C021FF4CC080EE90E049C08091FA01DE
+:1011300080FFF9CF89E390E042C08091FA0182FFFD
+:101140000EC08091FA0184FF03C080E090E037C0B8
+:1011500083EE90E034C08091FA0182FFF2CF82EEFC
+:1011600090E02DC08091FA0183FF0BC08091FA01BD
+:1011700084FDEBCF87EE90E022C08091FA0183FFDF
+:10118000F5CF86EE90E01BC08091FA0185FF07C085
+:1011900089E290E014C08091FA0185FFF9CF85E3E0
+:1011A00090E00DC08091FA0186FF07C08AE290E0CE
+:1011B00006C08091FA0186FFF9CF81E390E00E949A
+:1011C0001506089508950C94E20880916E01089523
+:1011D000CF93DF9300D01F92CDB7DEB79C018091F3
+:1011E000F101843019F593E099833B832A8390932E
+:1011F000E9008FEF9091E800815095FD06C095EDD4
+:101200009A95F1F700008111F5CF8091E80085FFF4
+:101210000DC040E050E063E070E0CE0101960E9416
+:10122000520B8091E8008E778093E8000F900F902A
+:101230000F90DF91CF910895CF93DF9300D01F924D
+:10124000CDB7DEB72091F101243021F522E02983CA
+:101250009B838A8383E08093E9008FEF9091E8007D
+:10126000815095FD06C095ED9A95F1F7000081112A
+:10127000F5CF8091E80085FF0DC040E050E063E0CD
+:1012800070E0CE0101960E94520B8091E8008E77AB
+:101290008093E8000F900F900F90DF91CF91089509
+:1012A0002091F1012430F1F422E02093E9002FEFA6
+:1012B0003091E800215035FD06C035ED3A95F1F743
+:1012C00000002111F5CF2091E80025FF0BC040E080
+:1012D00050E065E070E00E94520B8091E8008E774C
+:1012E0008093E8000895CF93DF93EC019091F10192
+:1012F000943009F046C080910C018823D9F0809188
+:101300000D018823B9F09093E9008FEF9091E800E8
+:10131000815095FD06C095E19A95F1F70000811185
+:10132000F5CF8091E80085FF2CC040E050E060E1FF
+:1013300070E017C081E08093E9008FEF9091E800A2
+:10134000815095FD06C095ED9A95F1F70000811149
+:10135000F5CF8091E80085FF14C040E050E068E0E0
+:1013600070E0CE010E94520B8091E8008E7780934E
+:10137000E80080E1FE01AEE5B1E001900D928A95B2
+:10138000E1F7DF91CF9108958091F001811109C0BB
+:101390000E94E70C0E94440D8091E20084608093DB
+:1013A000E20008951092F001089508950C942B2204
+:1013B0000E948C1B0E9431220E94EA0F0C94E308C9
+:1013C00042E061EC81E00E94610C42E061EC82E06D
+:1013D0000E94610C42E061EC83E00E94610C42E1FA
+:1013E00061EC84E00C94610C8091F301833009F48A
+:1013F00055C030F4813071F0823009F48EC0089508
+:101400008A3009F47AC08B3009F460C0893009F061
+:101410009CC020C08091F201813A09F096C0809171
+:10142000E800877F8093E8008091F6019091F701B2
+:10143000892B21F460E18EE591E003C060E080E05B
+:1014400090E070E00E949D0B8091E8008B77809384
+:10145000E80008958091F201813209F076C0809110
+:10146000F6019091F701009719F0039709F06DC00C
+:101470008091E800877F8093E8008091E80082FDFA
+:1014800005C08091F1018111F8CF5FC08091F1001A
+:1014900080936E018091E8008B7753C08091F201B8
+:1014A000813A09F052C08091F6019091F701892BA1
+:1014B00009F04BC08091E800877F8093E80080911D
+:1014C000E80080FFFCCF80910C0136C08091F201D2
+:1014D0008132D9F58091F6019091F701892BA9F518
+:1014E0008091E800877F8093E8000E94960C8091AD
+:1014F000F40180930C010C9483148091F2018132E9
+:1015000021F58091E800877F8093E8000E94960C87
+:101510008091F50180936F0108958091F201813AE5
+:10152000A1F48091E800877F8093E8008091E80033
+:1015300080FFFCCF80916F018093F1008091E800E3
+:101540008E778093E8000C94960C089584B7877F7B
+:1015500084BF88E10FB6F894809360001092600019
+:101560000FBE90E080E80FB6F894809361009093EE
+:1015700061000FBE0E9439100E94E70C0E94440DCA
+:101580008091E20084608093E20078940E94CA0F08
+:101590000E943B1082E091E00E94E50F0E94192218
+:1015A0008091F101853069F40E94531B8091EF0115
+:1015B0008823B1F30E947E1B882391F30E943C0B89
+:1015C000EFCF0E944110ECCF292F33272330310574
+:1015D000C9F064F42130310581F02230310509F081
+:1015E00043C08DE690E02AE333E042C0213231056A
+:1015F000F1F02232310541F137C082E190E027EA73
+:1016000033E036C099278130910541F08230910551
+:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4
+:1016200002C0E6E0F3E0849190E09F0121C06430C5
+:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5
+:10164000318189E090E014C0643070F470E0FB01F7
+:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47
+:10166000FE4F808190E004C080E090E020E030E018
+:10167000FA0131832083089580E189BD82E189BD2B
+:1016800009B400FEFDCF8091D8008F7D8093D800F3
+:101690008091E00082608093E0008091E00081FD15
+:1016A000FCCF0895CF92DF92EF92FF920F931F939A
+:1016B000CF93DF93EC018B016A010E94B50C81117D
+:1016C00033C0C114D10439F0F60180819181081B27
+:1016D000190BC80FD91FE12CF12C0115110519F1B7
+:1016E0008091E80085FD16C08091E8008E77809398
+:1016F000E800C114D10449F0F60180819181E80E1F
+:10170000F91EF182E08285E00FC00E94B50C8823AB
+:1017100021F30AC089918093F10001501109FFEF74
+:10172000EF1AFF0ADACF80E0DF91CF911F910F917E
+:10173000FF90EF90DF90CF9008952091F8013091C5
+:10174000F9012617370748F06115710539F4209122
+:10175000E8002E772093E80001C0B90140E0611550
+:101760007105A9F12091F101222309F443C025302C
+:1017700009F442C02091E80023FD40C02091E80018
+:1017800022FD32C02091E80020FFE9CF4091F30014
+:101790002091F20030E0342BFC01CF01611571057E
+:1017A00059F02830310540F481918093F100615067
+:1017B00071092F5F3F4FF1CF41E02830310509F02B
+:1017C00040E02091E8002E772093E800C8CF411137
+:1017D000C9CF0AC08091F101882361F0853061F0A2
+:1017E0008091E80083FD0AC08091E80082FFF2CF7B
+:1017F00080E0089582E0089583E0089581E00895EF
+:101800002091F8013091F9012617370748F061154A
+:10181000710539F42091E8002E772093E80001C08B
+:10182000B901FC0120E06115710591F18091F10190
+:10183000882309F440C0853009F43FC08091E80056
+:1018400083FD3DC08091E80082FD2FC08091E800BB
+:1018500080FFE9CF2091F3008091F20090E0922B7D
+:101860006115710559F08830910540F42491209359
+:10187000F1003196615071090196F2CF21E008978D
+:1018800009F020E08091E8008E778093E800CBCFCC
+:101890002111CCCF0AC08091F101882361F08530FD
+:1018A00061F08091E80083FD0AC08091E80082FF2A
+:1018B000F2CF80E0089582E0089583E0089581E00A
+:1018C0000895982F973058F59093E900981739F0BC
+:1018D0007091EC002091ED005091F00003C0242F96
+:1018E000762F50E021FF19C03091EB003E7F3093FE
+:1018F000EB003091ED003D7F3093ED003091EB0037
+:1019000031603093EB007093EC002093ED00509326
+:10191000F0002091EE0027FF07C09F5FD3CF8F70AC
+:101920008093E90081E0089580E008958091F201BC
+:1019300087FF11C08091E80082FD05C08091F10110
+:101940008111F8CF11C08091E8008B770BC0809196
+:10195000F101882349F08091E80080FFF8CF809161
+:10196000E8008E778093E80008952091E40030919C
+:10197000E50095E64091EC00842F817040FF22C085
+:101980008091E80080FD1CC08091F101882391F0D6
+:10199000853091F08091EB0085FD10C04091E4000E
+:1019A0005091E5004217530729F39A01915011F71E
+:1019B00084E0089582E0089583E0089581E0089529
+:1019C00080E008954091E80042FFDECF08950E9434
+:1019D000550D0E945D0DE0EEF0E080818160808316
+:1019E000E8EDF0E080818F77808319BCA7EDB0E04F
+:1019F0008C918E7F8C9380818F7E80831092F001FA
+:101A000008950F931F93CF93DF930E94550D0E946B
+:101A10005D0DC8EDD0E088818F77888388818068EC
+:101A2000888388818F7D888319BC1092F101109280
+:101A3000ED011092EF011092EE0100EE10E0F801BE
+:101A400080818B7F808388818160888342E060E031
+:101A500080E00E94610CE1EEF0E080818E7F808367
+:101A6000E2EEF0E080818160808380818860808305
+:101A7000F80180818E7F8083888180618883DF91F7
+:101A8000CF911F910F910895E8EDF0E080818F7E56
+:101A90008083E7EDF0E080818160808384E082BF15
+:101AA00081E08093F0010C94010DE8EDF0E080817D
+:101AB0008E7F80831092E20008951092DA001092D7
+:101AC000E10008951F920F920FB60F9211242F93E9
+:101AD0003F934F935F936F937F938F939F93AF93B6
+:101AE000BF93EF93FF938091E10082FF0BC0809141
+:101AF000E20082FF07C08091E1008B7F8093E100CC
+:101B00000E94C90F8091DA0080FF1FC08091D80029
+:101B100080FF1BC08091DA008E7F8093DA00809175
+:101B2000D90080FF0DC080E189BD82E189BD09B483
+:101B300000FEFDCF81E08093F1010E94C40905C041
+:101B400019BC1092F1010E94D2098091E10080FF3E
+:101B500019C08091E20080FF15C08091E2008E7F65
+:101B60008093E2008091E20080618093E2008091A6
+:101B7000D80080628093D80019BC85E08093F10181
+:101B80000E94D6098091E10084FF30C08091E2007C
+:101B900084FF2CC080E189BD82E189BD09B400FECB
+:101BA000FDCF8091D8008F7D8093D8008091E10097
+:101BB0008F7E8093E1008091E2008F7E8093E2002F
+:101BC0008091E20081608093E2008091ED018823A2
+:101BD00011F084E007C08091E30087FD02C081E03E
+:101BE00001C083E08093F1010E94D8098091E10057
+:101BF00083FF29C08091E20083FF25C08091E1002E
+:101C0000877F8093E10082E08093F1011092ED01E3
+:101C10008091E1008E7F8093E1008091E2008E7FD1
+:101C20008093E2008091E20080618093E20042E0D4
+:101C300060E080E00E94610C8091F00088608093F9
+:101C4000F0000E94D509FF91EF91BF91AF919F9154
+:101C50008F917F916F915F914F913F912F910F9055
+:101C60000FBE0F901F9018951F920F920FB60F92F4
+:101C700011242F933F934F935F936F937F938F9391
+:101C80009F93AF93BF93CF93DF93EF93FF93C09155
+:101C9000E900CF708091EC00D82FD17080FDD0E8A2
+:101CA0001092E9008091F000877F8093F000789493
+:101CB0000E94780E1092E9008091F0008860809375
+:101CC000F000CD2BCF70C093E900FF91EF91DF9131
+:101CD000CF91BF91AF919F918F917F916F915F91C4
+:101CE0004F913F912F910F900FBE0F901F9018951D
+:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3
+:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115
+:101D1000F10091938E13FBCF0E94F4098091E800AB
+:101D200083FF1FC18091F2019091F301492F50E090
+:101D30004A30510508F015C1FA01EA5AFF4F0C94D8
+:101D4000B323803881F0823809F00BC18091F6010D
+:101D50008F708093E9008091EB0085FB882780F9E4
+:101D60001092E90006C08091EE019091EF0191116F
+:101D700082609091E800977F9093E8008093F10053
+:101D80001092F100C8C0282F2D7F09F0EAC08823E7
+:101D900019F0823061F0E5C08091F401813009F0E2
+:101DA000E0C0933009F080E08093EF012BC0809178
+:101DB000F401811127C08091F6018F7009F4D1C020
+:101DC0008093E9002091EB0020FF1CC0933021F4A8
+:101DD0008091EB00806214C09091EB009061909331
+:101DE000EB0021E030E0A90102C0440F551F8A95A5
+:101DF000E2F74093EA001092EA008091EB008860DD
+:101E00008093EB001092E9008091E800877F86C004
+:101E10008111A7C01091F4011F778091E3008078B1
+:101E2000812B8093E3008091E800877F8093E80016
+:101E30000E94960C8091E80080FFFCCF8091E30027
+:101E400080688093E300111102C082E001C083E04A
+:101E50008093F10186C08058823008F082C0809162
+:101E6000F4019091F5018C3D53E0950779F583E0FD
+:101E70008A838AE289834FB7F894DE01139620E0C3
+:101E80003EE051E2E32FF0E050935700E49120FF51
+:101E900003C0E295EF703F5FEF708E2F90E0EA3065
+:101EA00010F0C79601C0C0968D939D932F5F24318B
+:101EB00049F74FBF8091E800877F8093E8006AE28E
+:101EC00070E0CE0101960E949D0B14C0AE014F5FE1
+:101ED0005F4F6091F6010E94E40ABC01009709F48B
+:101EE00040C09091E800977F9093E80089819A81A3
+:101EF0000E94000C8091E8008B778093E80031C04D
+:101F0000803879F58091E800877F8093E8008091A0
+:101F1000ED018093F1008091E8008E778093E800D6
+:101F20000E94960C1EC081111CC09091F401923049
+:101F3000C0F48091E800877F8093E8009093ED01E2
+:101F40000E94960C8091ED01811106C08091E30002
+:101F500087FD02C081E001C084E08093F1010E940E
+:101F6000E0098091E80083FF0AC08091E800877F44
+:101F70008093E8008091EB0080628093EB00AA964A
+:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A
+:101F900008950895CF938091F1018823A1F0C09115
+:101FA000E900CF709091EC00892F817090FD80E85E
+:101FB000C82B1092E9008091E80083FD0E94780E02
+:101FC000CF70C093E900CF910895909375018093ED
+:101FD00074010895E0917401F0917501309721F03A
+:101FE0000190F081E02D099480E00895E091740162
+:101FF000F0917501309721F00280F381E02D099472
+:102000000895E0917401F0917501309721F00480FA
+:10201000F581E02D099408952091720130917301AA
+:102020008217930771F09093730180937201E0918E
+:102030007401F0917501309721F00680F781E02D51
+:1020400009940895209170013091710182179307CE
+:1020500071F09093710180937001E0917401F0919F
+:102060007501309721F00084F185E02D09940895E1
+:1020700008950C9438100E94921B0E9433030C9414
+:10208000541C9F92AF92BF92CF92DF92EF92FF9239
+:102090000F931F93CF93DF9300D000D000D0CDB724
+:1020A000DEB70E944B030DE010E0AA24A394B12CEC
+:1020B000902E802F0E943904980129583E4F6901C3
+:1020C000F901F080F826A1F40150110988F78FEF8B
+:1020D00089838A831B820E949B1B8160782F9D834A
+:1020E0008C8349815A816B818D810E94D8102FC0C9
+:1020F0009091DA0191FF04C08E830E943F048E818B
+:1021000025E030E0A501022E01C0440F0A94EAF751
+:10211000E42E4F21C1F029839A828E2191E009F4A7
+:1021200090E09B830E949B1B8160782F9D838C8312
+:1021300049815A816B818D810E94D810F60180817E
+:10214000E826E08204C021503109E0F6BDCF0E94AC
+:102150003B1F109176010E94EA0F1817B9F00E94F8
+:10216000EA0F8093760126960FB6F894DEBF0FBE75
+:10217000CDBFDF91CF911F910F91FF90EF90DF9036
+:10218000CF90BF90AF909F900C94E30826960FB627
+:10219000F894DEBF0FBECDBFDF91CF911F910F919D
+:1021A000FF90EF90DF90CF90BF90AF909F900895F9
+:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82
+:1021C0000FBECDBF4F83588769877A878B87DE0123
+:1021D000119686E0FD0111928A95E9F785E0FE01EE
+:1021E000379601900D928A95E1F749815A816B816A
+:1021F0007C818D819E810E9421172B960FB6F894C9
+:10220000DEBF0FBECDBFDF91CF910895CF9388235E
+:1022100009F4C2C0C82F823859F40E94EA0F81FD28
+:10222000BBC089E30E94FB190E94C81A89E30CC055
+:10223000833879F40E94EA0F80FDAEC083E50E94E6
+:10224000FB190E94C81A83E50E943D1ACF910C9495
+:10225000C81A843859F40E94EA0F82FD9DC087E4B1
+:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6
+:10227000813A48F48C2F0E947E2181118DC08C2FD1
+:102280000E94FB19E3CF80E28C0F883048F4C770BE
+:1022900081E001C0880FCA95EAF70E94811AD6CF63
+:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB
+:1022B00083E890E005C081E890E002C082E890E009
+:1022C000CF910C940C1088E58C0F833108F064C01A
+:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118
+:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186
+:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106
+:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173
+:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB
+:1023200038C082EE90E035C089EE90E032C08AEE8F
+:1023300090E02FC085EB90E02CC086EB90E029C0A8
+:1023400087EB90E026C08CEC90E023C08DEC90E011
+:1023500020C083E891E01DC08AE891E01AC082E9BC
+:1023600091E017C084E991E014C081E292E011C0CD
+:1023700083E292E00EC084E292E00BC085E292E03C
+:1023800008C086E292E005C087E292E002C08AE2DD
+:1023900092E0CF910C942210CF910895882309F4F4
+:1023A0004BC0823859F40E94EA0F81FF45C089E38F
+:1023B0000E94FB190E94C81A89E30CC0833871F48B
+:1023C0000E94EA0F80FF38C083E50E94FB190E943B
+:1023D000C81A83E50E943D1A0C94C81A843859F42F
+:1023E0000E94EA0F82FF28C087E40E94FB190E9426
+:1023F000C81A87E4EFCF9CEF980F913A58F390E218
+:10240000980F983050F4877091E001C0990F8A9529
+:10241000EAF7892F0E94871ADFCF9BE5980F933048
+:1024200020F480E090E00C940C10885A833120F462
+:1024300080E090E00C9422100895882321F00E94FF
+:10244000811A0C94C81A0895882321F00E94871AD3
+:102450000C94C81A08957F928F929F92AF92BF9268
+:10246000CF92DF92EF92FF920F931F93CF93DF9360
+:102470001F92CDB7DEB77C01C62E772EFC010581F9
+:1024800002950F70128111110E949E1A0E94F41978
+:10249000882379F0112369F080E28C0D883048F0B0
+:1024A00082E00E94DD190E94F41991E0D82ED9260D
+:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C
+:1024C0000C94B323872D807F072D0F70882311F084
+:1024D0000295007F112389F0002309F490C180E266
+:1024E0008C0D883020F4802F0E94811A03C0802F29
+:1024F0000E94911A0E94C81A82C18C2D0E94CE118E
+:10250000002309F495C180E28C0D883020F4802FDF
+:102510000E94871A03C0802F0E94971A0E94C81A2F
+:1025200087C1972D907F872D8F70903211F0829503
+:10253000807FCC2021F0F1E0CF16B1F01EC0112336
+:1025400049F0002309F414C1013009F011C10E94BF
+:10255000B11A6EC1002319F0013009F469C18983F1
+:102560000E94B41A89810AC1112321F0023008F0B7
+:102570005FC1FEC001115CC101C1112321F0002324
+:1025800009F4F6C03CC1002309F4F8C03EC1872D10
+:1025900086958695837090E0009719F0019761F019
+:1025A00047C1112321F08C2D972D937002C080E03C
+:1025B00090E00E940C103CC1112321F08C2D972D2E
+:1025C000937002C080E090E00E94221031C18C2DF7
+:1025D000112319F00E94431E02C00E94AB1E0E94EC
+:1025E000301F26C1872D837009F052C0111120C100
+:1025F0008C2D829586958770880F880F9C2D9F70F3
+:10260000892E912CA12CB12C082E04C0880C991C69
+:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041
+:1026200020E030E0B901A80104C0440F551F661F27
+:10263000771F8A95D2F7CB01BA0160957095809586
+:10264000909503C060E070E0CB01272D269526957C
+:10265000237030E02230310569F02330310589F0F4
+:10266000682979298A299B292130310571F00E9436
+:102670006918DEC0682979298A299B290E94851852
+:10268000D7C00E946918C501B4010E944D18D0C07E
+:10269000112319F0872D817001C08695882309F4D4
+:1026A000C7C08C2D829586958770880F880F9C2DCA
+:1026B0009F70892E912CA12CB12C082E04C0880C5F
+:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC
+:1026D00010E020E030E0B901A80104C0440F551F0C
+:1026E000661F771F8A95D2F7CB01BA016095709566
+:1026F0008095909503C060E070E0CB01272D269572
+:1027000026952370422F50E04230510569F0433046
+:10271000510589F0682979298A299B294130510579
+:1027200071F00E94431984C0682979298A299B295C
+:102730000E945F197DC00E944319C501B4010E9427
+:10274000271976C08C2D90E0FC01E05EF109E5319F
+:10275000F10508F050C0E059FF4F0C94B3230C2D45
+:102760000F70872D8F71112331F00E94C018802FB8
+:102770000E941D125DC00E94E118802F0E94241249
+:1027800057C0112339F0011153C0872D8F710E945A
+:1027900006194EC0023008F04BC0F7CF112339F0B4
+:1027A000872D8F710E94C01843C01123C9F3872D54
+:1027B0008F710E94E1183CC0112329F0872D8F7181
+:1027C0000E94AB1835C00E94A11832C0112351F0ED
+:1027D000172D1F71812F0E94C01863E0812F0E9466
+:1027E000D41926C081E00E94DD19023008F182E090
+:1027F0000E94DD191DC0112331F0002389F28C2DB8
+:102800000E94061115C0002391F28C2D0E94CE115A
+:102810000FC0472D4F706C2DC7010E9415050E94F7
+:10282000C51706C0472D4F706C2DC7010E94F205D9
+:10283000DD20F9F00E94D01980FD1BC0F701128243
+:102840000E94CA190E94C018C7010E9448140E9421
+:10285000CA190F90DF91CF911F910F91FF90EF90C8
+:10286000DF90CF90BF90AF909F908F907F900C940F
+:10287000E1180F90DF91CF911F910F91FF90EF9092
+:10288000DF90CF90BF90AF909F908F907F900895F2
+:102890000F931F93CF93DF93EC01888199812B8154
+:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B
+:1028B0000E944A05882371F0688179818A810E948B
+:1028C000C6198C010E947B190E944218B801CE01E2
+:1028D0000E942B12DF91CF911F910F9108950E94BA
+:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471
+:1028F000E11F0E94301F80E090E00E940C1080E0F9
+:1029000090E00C9422100E948E1A0C946F140E9476
+:10291000BB19292F22952F7030E02C3031054CF453
+:102920002A3031056CF42250310922303105A8F4E7
+:1029300007C02C30310569F02F30310551F00DC042
+:10294000803F69F018F4803E40F409C0843F29F4C8
+:1029500006C093FB882780F9089580E0089581E000
+:102960000895CF93DF9300D000D01F92CDB7DEB78C
+:102970000F900F900F900F900F90DF91CF910895CF
+:10298000CF93DF9300D000D000D0CDB7DEB726962E
+:102990000FB6F894DEBF0FBECDBFDF91CF91089583
+:1029A0001F93CF93DF93C091850116E0809186013C
+:1029B000C81799F0D0E01C9FF0011D9FF00D112465
+:1029C000E957FE4F408151816281738184819581F5
+:1029D0000E94C0142196C770E9CFDF91CF911F915B
+:1029E00008954091B7015091B8016091B90170917B
+:1029F000BA018091BB019091BC010C94C0148091EC
+:102A0000BC0182958F7009F054C08091B901882370
+:102A100009F44FC080918501A09186016091B701B2
+:102A20007091B8014091BA015091BB01B6E08A178C
+:102A300009F43FC090E041155105C1F17F3F11F409
+:102A40006F3FA1F1B89FF001B99FF00D1124E95734
+:102A5000FE4F218172132AC02081621327C0228178
+:102A6000211124C0238134812417350710F421500B
+:102A70003109241B350B283C3105C0F42091BC01E1
+:102A80002F7020612093BC0126E0289FF001299F30
+:102A9000F00D1124E457FE4F80818F708061808398
+:102AA00087EB91E00E9448140C94D0140196877033
+:102AB000BECF0895CF92DF92EF92FF920F931F93B4
+:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32
+:102AD0000FBECDBF8C0185E0F801DE011D9601908F
+:102AE0000D928A95E1F7D8014C9111965C9111975E
+:102AF00012966C9112971396CD90DC9014973091AA
+:102B0000B7017091B8018091BA019091BB01009713
+:102B100009F46BC17F3F19F43F3F09F466C1E090AF
+:102B2000B901EE2009F4C0C02091BC01C816D90635
+:102B300028F0F601E81BF90BCF0104C080959095B1
+:102B40008C0D9D1DFF24F394883C910578F0F12CA9
+:102B5000207F09F0C6C07C2DD98AC88A89890E9445
+:102B6000B11487EB91E00E944814B1C0822F807F9E
+:102B700009F046C0751314C0341312C0611110C09F
+:102B80002F7020612093BC010E94F11487EB91E02B
+:102B90000E9448148091BC01D80115968C932EC0D8
+:102BA000CD2819F15F3F11F44F3FF9F0F62E611176
+:102BB0001CC0809185012091860136E0821709F4BE
+:102BC0005AC090E0389FF001399FF00D1124E95769
+:102BD000FE4F7181571306C07081471303C0728185
+:102BE000711103C001968770E9CFF62E662309F4B0
+:102BF00018C18091BC0181608093BC01F12C11C18E
+:102C0000751308C0341306C0611104C08091BC0163
+:102C1000D801C3C04D875E878D859E856A8B0E94D3
+:102C200087146A898823E1F16623D1F12091BC01E0
+:102C3000822F82958F7090E0029774F08091B70197
+:102C40009091B80198878F831986DB86CA862C8776
+:102C5000CE0107960E94481486E0F801A7EBB1E088
+:102C600001900D928A95E1F70E94FF140E94F114E1
+:102C7000FF24F394D6C04D875E878D859E850E9484
+:102C8000BB19292F22952F7030E0223031050CF02E
+:102C9000BCC09F7009F0B6C0805E883008F4C1C027
+:102CA000C8010E944814E4CFC816D90608F453C0DE
+:102CB000F601E81BF90BCF01883C910508F450C0E0
+:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E
+:102CD000F1E086E0DF011D928A95E9F70E94F11488
+:102CE000A0C0751314C0341312C0611110C08091BC
+:102CF000BC01F8018583C8010E94481486E0E7EB17
+:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C
+:102D10005E878D859E856A8B0E9487146A898823C9
+:102D200009F4BECF662309F4BBCF2091BC01822FEA
+:102D300082958F7090E002970CF48ECF8091B7014E
+:102D40009091B8019A8389831B82DD82CC822E8385
+:102D5000CE0101967FCF809590958C0D9D1DACCFB7
+:102D6000F62E662309F49CCF75132EC034132CC0A5
+:102D70002091BC0120FD1FC0822F82958F70D9F059
+:102D8000D80115962C9315978F3049F08F5F982FA7
+:102D90009295907F822F8F70892B15968C93C80106
+:102DA0000E94481486E0F801A7EBB1E001900D9273
+:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7
+:102DC0000D928A95E1F72DC04D875E878D859E8592
+:102DD0000E948714811140CF8091BC018160809353
+:102DE000BC01C8010E9448141CC0662309F458CFD6
+:102DF0004D875E878D859E850E948714882309F400
+:102E00004FCF2ACF811148CF0CC0243031050CF0B0
+:102E100047CF9F7009F440CFF8019581907F09F06A
+:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D
+:102E3000DF91CF911F910F91FF90EF90DF90CF9096
+:102E400008951F93CF93DF93CDB7DEB72C970FB6BE
+:102E5000F894DEBF0FBECDBF4F83588769877A874E
+:102E60008B879C87CE0107960E945A15882369F0AC
+:102E70008F8198852A853B85232BF1F19F3F09F0AF
+:102E800063C08F3F09F060C037C086E0FE0137960F
+:102E9000DE01119601900D928A95E1F76F81788598
+:102EA000EA85FB85309741F17F3F11F46F3F21F1B7
+:102EB0002091860130E0C9010196877099274091E1
+:102EC000850150E08417950709F447C069837A8328
+:102ED000FD83EC8396E0929FD001939FB00D112467
+:102EE000A957BE4FFE01319601900D929A95E1F7D8
+:102EF000809386010E94D01416E080918501909104
+:102F000086018917C1F1189FC001112489579E4F6E
+:102F10000E945A15882379F1E09185011E9FF001E6
+:102F20001124E957FE4F4081518162817381848170
+:102F300095810E94C0148091850190E00196877070
+:102F4000992780938501D9CF4F81588569857A85E6
+:102F50008B859C850E94C014CFCF0E948314109251
+:102F6000860110928501E7EBF1E086E0DF011D921A
+:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45
+:102F8000CDBFDF91CF911F910895EF92FF920F93E4
+:102F90001F93CF93DF938C01009709F46CC0F12C41
+:102FA000EE24E394E8012196F8018491843740F4FB
+:102FB000843008F051C0813081F0823019F15BC05B
+:102FC000853709F444C0A8F19CE7980F903708F0C2
+:102FD00052C08F770E94CE1141C00E5F1F4FFE017D
+:102FE000C49180E28C0F883048F4C7708E2D01C0E8
+:102FF000880FCA95EAF70E94A11A14C08C2F0E946C
+:1030000006112DC00E5F1F4FFE01C49180E28C0F90
+:10301000883058F4C7708E2D01C0880FCA95EAF722
+:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3
+:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3
+:103040009FE00197F1F700C00000C150F6CF0E5F7E
+:103050001F4FFE01F49003C00E9406118E018F2DB8
+:10306000882309F49FCFEFE9FFE03197F1F700C023
+:1030700000008150F5CFDF91CF911F910F91FF900C
+:10308000EF90089508956093C1017093C2018093F9
+:10309000C3019093C4010C946F140F931F9300917C
+:1030A000C1011091C2012091C3013091C401DC0122
+:1030B000CB01802B912BA22BB32B8093C10190933A
+:1030C000C201A093C301B093C4011F910F910C944E
+:1030D0006F140F931F930091C1011091C2012091B1
+:1030E000C3013091C401DC01CB0180239123A223D1
+:1030F000B3238093C1019093C201A093C301B09305
+:10310000C4011F910F910C946F140F931F930091A2
+:10311000C1011091C2012091C3013091C401DC01B1
+:10312000CB0180279127A227B3278093C1019093D9
+:10313000C201A093C301B093C4011F910F910C94DD
+:103140006F141092BD011092BE011092BF01109237
+:10315000C0010C946F1441E050E060E070E004C0E6
+:10316000440F551F661F771F8A95D2F74093BD0104
+:103170005093BE016093BF017093C0010C946F1413
+:1031800041E050E060E070E004C0440F551F661F4E
+:10319000771F8A95D2F78091BD019091BE01A091D1
+:1031A000BF01B091C001482B592B6A2B7B2B409358
+:1031B000BD015093BE016093BF017093C0010C9498
+:1031C0006F1441E050E060E070E004C0440F551F10
+:1031D000661F771F8A95D2F7409550956095709538
+:1031E0008091BD019091BE01A091BF01B091C0013D
+:1031F000482359236A237B234093BD015093BE018A
+:103200006093BF017093C0010C946F1441E050E0D3
+:1032100060E070E004C0440F551F661F771F8A9559
+:10322000D2F78091BD019091BE01A091BF01B091F4
+:10323000C001482759276A277B274093BD01509337
+:10324000BE016093BF017093C0010C946F140F9383
+:103250001F930091BD011091BE012091BF013091DB
+:10326000C001DC01CB01802B912BA22BB32B8093CF
+:10327000BD019093BE01A093BF01B093C0011F9107
+:103280000F910C946F140F931F930091BD01109137
+:10329000BE012091BF013091C001DC01CB01802330
+:1032A0009123A223B3238093BD019093BE01A093E9
+:1032B000BF01B093C0011F910F910C946F140F9335
+:1032C0001F930091BD011091BE012091BF0130916B
+:1032D000C001DC01CB0180279127A227B32780936F
+:1032E000BD019093BE01A093BF01B093C0011F9197
+:1032F0000F910C946F140895CF92DF92EF92FF928A
+:103300000F931F93CF93DF938C01C090C101D09096
+:10331000C201E090C301F090C4018091BD01909181
+:10332000BE01A091BF01B091C001C82AD92AEA2AE2
+:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520
+:10334000A795979587950A94D2F780FF06C0B80194
+:103350008C2F0E944808019721F4219760F780E0A4
+:1033600001C08C2FDF91CF911F910F91FF90EF90B3
+:10337000DF90CF900895CF93DF93EC010E947C19EA
+:10338000BE010E944808DF91CF910895CB010E94B1
+:10339000BB1908958091C5018595859585950895FA
+:1033A0008091C5018770089598E0899F900111244C
+:1033B000262B2093C5010C94C0182091C50180953F
+:1033C00082238093C501982F977069F430E0482FCD
+:1033D000552747FD50952417350729F08595859584
+:1033E00085950C94E11808959091C501977081E03E
+:1033F00009F480E0089590910C01992321F09091B7
+:103400000D01911109C020910E0130910F01F901B8
+:1034100032969FEF40E01FC0982F9695969596950F
+:103420009F3050F5E0910E01F0910F01E90FF11D71
+:10343000877021E030E0A90102C0440F551F8A9532
+:10344000E2F7CA019181892B818308959F3F39F06A
+:103450004F5F4E3041F051915813F8CF0DC05111CC
+:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08
+:1034700097FDFA9582830895089590910C01992300
+:1034800021F090910D01911109C020910E01309110
+:103490000F01F9013296205F3F4F1FC0982F96957C
+:1034A000969596959F30F0F4E0910E01F0910F0102
+:1034B000E90FF11D877021E030E0A90102C0440F3F
+:1034C000551F8A95E2F7CA018095918189238183EE
+:1034D00008953196E217F30729F090819813F9CFF8
+:1034E0001082F7CF089581E090E0E0910E01F09115
+:1034F0000F01E80FF91F1082019680319105A9F79D
+:1035000008959091D901892B8093D90108958095D0
+:103510009091D90189238093D90108951092D901FE
+:1035200008959091D801892B8093D80108958095B2
+:103530009091D80189238093D80108951092D801E1
+:1035400008959091D701892B8093D7010895809594
+:103550009091D70189238093D70108951092D701C4
+:1035600008958093C60108951092C6010895809130
+:103570000E0190910F01FC0131969C01205F3F4F9D
+:1035800080E0919191118F5FE217F307D1F70895D1
+:10359000E0910E01F0910F018091D9018083E091BB
+:1035A0000E01F0910F0190818091D801892B8083C9
+:1035B000E0910E01F0910F0190818091D701892B4C
+:1035C00080838091C601882361F0E0910E01F09123
+:1035D0000F019081892B80830E94B71A811110926C
+:1035E000C60180910E0190910F010C94F60F20E01E
+:1035F000009739F0AC0141505109842395232F5F86
+:10360000F7CF822F0895CF92DF92EF92FF926C0155
+:10361000EE24FF24C114D104E104F10421F0C70118
+:10362000B60120E101C020E0C72ED82EE92EFF24EC
+:10363000C114D104E104F10419F0285FC701B601F7
+:103640006B017C0154E0F694E794D794C7945A95A3
+:10365000D1F7C114D104E104F10419F02C5FC701C2
+:10366000B6016B017C0142E0F694E794D794C794CD
+:103670004A95D1F7C114D104E104F10419F02E5F89
+:10368000C701B601DC01CB01B695A7959795879543
+:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5
+:1036A000DF90CF9008958091F101843021F1109244
+:1036B000DB0120E488E190E00FB6F894A8958093B0
+:1036C00060000FBE2093600080E00E94E30883B793
+:1036D000817F846083BF83B7816083BF789488953E
+:1036E00083B78E7F83BF88E10FB6F8948093600024
+:1036F000109260000FBE0895089508950E947C1BEB
+:103700000E944B030E947D1B0E94400491E08111A6
+:1037100001C090E0892F08950E9483140E94EA0F4F
+:103720000C94E30882E084BD93E095BD9AEF97BDC9
+:1037300080936E0008952FB7F8948091DC019091EA
+:10374000DD01A091DE01B091DF012FBF0895CF927E
+:10375000DF92EF92FF920F931F932FB7F89440914F
+:10376000DC015091DD016091DE017091DF012FBF1E
+:103770006A017B01EE24FF248C0120E030E0C016BA
+:10378000D106E206F30610F4415051099A01281BB4
+:10379000390BC9011F910F91FF90EF90DF90CF90EF
+:1037A00008951F920F920FB60F9211248F939F933B
+:1037B000AF93BF938091DC019091DD01A091DE0178
+:1037C000B091DF010196A11DB11D8093DC019093A2
+:1037D000DD01A093DE01B093DF01BF91AF919F9116
+:1037E0008F910F900FBE0F901F9018950E94E70CBD
+:1037F000F8942FEF87EA91E6215080409040E1F75E
+:1038000000C0000087E090EBDC018093FB01909307
+:10381000FC01A093FD01B093FE019CE088E10FB68E
+:10382000F894A895809360000FBE90936000FFCF3E
+:10383000EF92FF920F931F93CF93DF93D82FCDE09A
+:103840008C2F0E94390405E010E0E82EF12CC7010E
+:10385000002E02C0959587950A94E2F780FF09C073
+:10386000602F7C2F80E00E94F305D81302C081E016
+:1038700006C00150110958F7C15010F780E0DF91E0
+:10388000CF911F910F91FF90EF900895CF93C82F84
+:103890008CE20E94181C882321F08C2FCF910C946D
+:1038A000181C80E0CF910895CF930E949B1D811139
+:1038B00002C00E94811DC5E6C15049F00E944B0321
+:1038C0008FE39CE90197F1F700C00000F5CF89E292
+:1038D0000E94461C811113C18AE20E94461C81117C
+:1038E0000E94811D85E00E94461C81110E94F61BEA
+:1038F0000E94A61D8093DA0187E00E94461C88235F
+:10390000A9F18BE10E94461C882351F08091DA01D5
+:1039100081FB222720F991E0922790FB81F90EC0CC
+:103920008EE00E94461C882361F08091DA0182FBC0
+:10393000222720F991E0922790FB82F98093DA0107
+:1039400015C080E10E94461C9091DA01882341F065
+:1039500093FB222720F981E0822780FB93F904C0A2
+:10396000892F809580FB90F99093DA018091DA019C
+:103970000E94AA1D0E94B81D8093FA0180EE0E9449
+:10398000461C882341F08091FA01982F909590FB76
+:1039900080F98093FA0189E30E94461C882359F03C
+:1039A0008091FA0181FB222720F991E0922790FB78
+:1039B00081F98093FA0182EE0E94461C882359F017
+:1039C0008091FA0182FB222720F991E0922790FB57
+:1039D00082F98093FA0186EE0E94461C882359F0F2
+:1039E0008091FA0183FB222720F991E0922790FB36
+:1039F00083F98093FA0183EE0E94461C882359F0D4
+:103A00008091FA0184FB222720F991E0922790FB14
+:103A100084F98093FA0185E30E94461C882359F0BB
+:103A20008091FA0185FB222720F991E0922790FBF3
+:103A300085F98093FA0181E30E94461C882359F09E
+:103A40008091FA0186FB222720F991E0922790FBD2
+:103A500086F98093FA0181E10E94461C882359F07F
+:103A60008091FA0187FB222720F991E0922790FBB1
+:103A700087F98093FA018091FA010E94BC1D809120
+:103A8000FA0187FB882780F980930D0187E20E9465
+:103A9000461CC82F8EE10E94461C8111C2608FE136
+:103AA0000E94461C8111C46080E20E94461C811164
+:103AB000C86081E20E94461C8111C06182E20E94BE
+:103AC000461C8111C06283E20E94461C8111C064C1
+:103AD00084E20E94461C882311F0C06802C0CC23F7
+:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4
+:103AF000682F70E080E090E0CF910C944318CF9154
+:103B000008956DEE7EEF80E090E00E94ED2360E08E
+:103B100082E090E00E94DB2360E083E090E00E947E
+:103B2000DB2360E084E090E00E94DB2360E085E03E
+:103B300090E00C94DB2380E090E00E94D52321E00C
+:103B40008D3E9E4F09F020E0822F089582E090E0A4
+:103B50000C94CD23682F82E090E00C94DB2383E06B
+:103B600090E00C94CD23682F83E090E00C94DB234D
+:103B700084E090E00C94CD23682F84E090E00C94D6
+:103B8000DB238091E20180FF0BC06091130185E08F
+:103B9000689FB001112475956795759567952BC041
+:103BA00081FF09C06091130185E0689FB001112475
+:103BB0007595679520C082FF07C06091130185E06D
+:103BC000689FB001112417C09091E3019923D1F0AF
+:103BD00060911201961788F72091130185E0289FC4
+:103BE00090011124929FA001939F500D112470E029
+:103BF000CA010E949F236038710540F46115710568
+:103C000039F002C065E070E0862F08958FE70895CF
+:103C100081E008958091E20180FF08C06091110168
+:103C200070E0759567957595679521C081FF06C011
+:103C30006091110170E07595679519C082FF04C00D
+:103C40006091110170E010C09091E3019923C1F0DF
+:103C5000609110019617A0F780911101899FC00112
+:103C6000112470E00E949F236038710528F46115CB
+:103C7000710521F0862F08958FE7089581E008955A
+:103C800061E070E0F4CF803F21F40E94C11D819576
+:103C900004C0813F29F40E94C11D8093E60108956C
+:103CA000823F21F40E94C11D819504C0833F29F405
+:103CB0000E94C11D8093E5010895893F19F40E9477
+:103CC0000A1E05C08A3F31F40E940A1E8195809326
+:103CD000E70108958B3F21F40E940A1E819504C0DC
+:103CE0008C3F29F40E940A1E8093E8010895843FC6
+:103CF00021F48091E401816017C0853F21F4809117
+:103D0000E401826011C0863F21F48091E401846067
+:103D10000BC0873F21F48091E401886005C0883F93
+:103D200031F48091E40180618093E40108958D3F36
+:103D300021F48091E20181600BC08E3F21F48091DB
+:103D4000E201826005C08F3F29F48091E201846026
+:103D50008093E2010895803F39F48091E60187FF66
+:103D60006CC01092E60169C0813F29F48091E601A0
+:103D70001816BCF362C09091E501823F29F497FFC9
+:103D80005CC01092E50159C0833F19F41916CCF3B9
+:103D900054C0893F41F48091E70118160CF04DC0E2
+:103DA0001092E7014AC08A3F29F48091E70187FF1A
+:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6
+:103DC0001092E8013AC08C3F29F48091E80118165E
+:103DD000BCF333C0843F21F48091E4018E7F17C08F
+:103DE000853F21F48091E4018D7F11C0863F21F44D
+:103DF0008091E4018B7F0BC0873F21F48091E40127
+:103E0000877F05C0883F31F48091E4018F7E8093E5
+:103E1000E40113C08D3F21F48091E2018E7F0BC03D
+:103E20008E3F21F48091E2018D7F05C08F3F29F400
+:103E30008091E2018B7F8093E2018091E501811105
+:103E40000EC08091E60181110AC08091E7018111C5
+:103E500006C08091E801811102C01092E30108952B
+:103E600084EE91E00E9401100E949B1B9093E1015F
+:103E70008093E00108951F93CF93DF938091E00139
+:103E80009091E1010E94A71BAC019091E30199235D
+:103E900021F02091140130E006C0209115018AE044
+:103EA000289F900111244217530708F486C080917F
+:103EB000E501C091E601D091E7011091E80181117F
+:103EC00007C0C11176C0D11174C0111172C075C084
+:103ED0009F3F19F09F5F9093E301181624F40E940E
+:103EE000C11D8093E5018091E50187FF05C00E9417
+:103EF000C11D81958093E5011C1624F40E94C11D0B
+:103F00008093E6018091E60187FF05C00E94C11DF4
+:103F100081958093E6016091E501662339F1C091B6
+:103F2000E601CC2319F1772767FD7095872F972F2E
+:103F30000E94B02223E333E343E35FE30E941423B0
+:103F40000E947D226093E5016C2F772767FD7095B5
+:103F5000872F972F0E94B02223E333E343E35FE3ED
+:103F60000E9414230E947D226093E6011D1624F412
+:103F70000E940A1E8093E7018091E70187FF05C038
+:103F80000E940A1E81958093E701111624F40E9475
+:103F90000A1E8093E8018091E80187FF05C00E9416
+:103FA0000A1E81958093E801DF91CF911F910C94B7
+:103FB000301F9F3F09F08ECF96CFDF91CF911F9199
+:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE
+:103FD0001092E3011092E2010895833081F128F4F8
+:103FE000813059F08230D1F00895853009F449C00C
+:103FF000B8F1863009F456C0089580911501262F36
+:1040000030E0280F311D2F3F310524F4680F6093F5
+:10401000150108958FEF8093150108958091140183
+:10402000262F30E0280F311D2F3F310524F4680F73
+:104030006093140108958FEF809314010895809187
+:104040001301262F30E0280F311D2F3F310524F4B6
+:10405000680F6093130108958FEF80931301089503
+:1040600080911201262F30E0280F311D2F3F31059E
+:1040700024F4680F6093120108958FEF809312016A
+:10408000089580911101262F30E0280F311D2F3F18
+:10409000310524F4680F6093110108958FEF809328
+:1040A0001101089580911001262F30E0280F311D55
+:1040B0002F3F310524F4680F6093100108958FEFAE
+:1040C000809310010895833011F128F4813049F074
+:1040D000823091F00895853081F120F18630C1F170
+:1040E000089580911501681720F4861B80931501AF
+:1040F000089510921501089580911401681720F415
+:10410000861B8093140108951092140108958091E4
+:104110001301681720F4861B8093130108951092F1
+:104120001301089580911201681720F4861B809373
+:1041300012010895109212010895809111016817DB
+:1041400020F4861B809311010895109211010895A7
+:1041500080911001681720F4861B80931001089548
+:104160001092100108950F931F938D3109F46BC0C5
+:1041700008F03FC08E3009F47FC0C0F4873009F4E6
+:1041800069C068F4863009F0B1C08091DA01817F9E
+:104190008E7F8093DA0181E08093EA01A8C08830A5
+:1041A00009F4A2C08B3009F49FC0A0C0863109F485
+:1041B0009BC078F4803109F472C0813109F096C057
+:1041C0000E94831490910D0181E0892780930D0155
+:1041D0008BC0893109F488C08B3109F087C0809188
+:1041E000DA0181FB222720F991E0922790FB81F9E7
+:1041F0004CC0853309F470C048F4873209F46CC0B0
+:1042000008F459C0893209F467C070C0833438F4A7
+:104210008A3308F04EC0883309F466C067C083341F
+:1042200009F45AC0883409F061C00E9483140FEF6A
+:1042300013ED20E3015010402040E1F700C00000E2
+:104240000E94F61B51C00E9437220E94EA0F0E9472
+:10425000E3084AC09091DA01892F8095817080FB34
+:1042600090F929F0966098609093DA0140C0997FA8
+:10427000977F9093DA0138C08091DA0182FB222780
+:1042800020F991E0922790FB82F98093DA0199233B
+:1042900059F18091DA0181608093DA0125C0809123
+:1042A000DA0183FB222720F991E0922790FB83F922
+:1042B000ECCF895301C08D5141E050E060E070E0E7
+:1042C0008A019B0104C0000F111F221F331F8A9512
+:1042D000D2F7C901B80104C061E070E080E090E06D
+:1042E0000E9443180E94831481E001C080E01F9166
+:1042F0000F91089580E0089580E00895CF93C82F2E
+:104300008091EA01813079F018F08230E9F187C0BC
+:10431000E0910E01F0910F018081813169F08232CC
+:1043200009F07FC009C0E0910E01F0910F0180817A
+:10433000813111F0823261F48C2F0E947A21811137
+:1043400004C08C2F0E94B3201DC081E090E01AC0F1
+:104350008C2F0E947C21811114C0C43179F048F463
+:10436000CB3079F0C03109F060C082E08093EA017F
+:1043700008C0C93219F0C83321F057C01092EA01C1
+:1043800054C081E0817053C0C93289F118F5C4313D
+:1043900071F1A8F4C73009F046C08AE08093150196
+:1043A00094E19093140193E0909313018093120190
+:1043B00088E08093110188E28093100134C0CE51CF
+:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB
+:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC
+:1043E00013C0C13579F0C235F1F461E00DC08091A0
+:1043F000E901882319F01092E90115C081E080934A
+:10440000EA0115C061E006C08091E9010E94ED1F3C
+:104410000AC06AE08091E9010E94632004C0109202
+:10442000EA0180E004C081E002C080E0ABCFCF9120
+:104430000895E1E8F0E08081886080838081816078
+:1044400080838FB7F89493E09093890090ED9093D8
+:1044500088008FBF0895EFE6F0E08081826080835E
+:104460000895EFE6F0E080818D7F80830895EFE688
+:10447000F0E0908182E08927808308951F920F9257
+:104480000FB60F9211242F933F934F935F936F9327
+:104490007F938F939F93AF93BF93EF93FF938091FD
+:1044A000EB019091EC0101969093EC018093EB016C
+:1044B000811103C082E00E94E308E091EC01E695DF
+:1044C000E695F0E0EC54FB4FE4918091EB018E1304
+:1044D00003C080E00E94E308FF91EF91BF91AF918C
+:1044E0009F918F917F916F915F914F913F912F910C
+:1044F0000F900FBE0F901F90189504D06894B111C3
+:104500008DC0089570D088F09F5790F0B92F9927EB
+:10451000B751A0F0D1F0660F771F881F991F1AF0CE
+:10452000BA95C9F712C0B13081F077D0B1E00895E3
+:1045300074C0672F782F8827B85F39F0B93FCCF364
+:10454000869577956795B395D9F73EF490958095C4
+:10455000709561957F4F8F4F9F4F0895E89409C0E4
+:1045600097FB3EF490958095709561957F4F8F4FA6
+:104570009F4F9923A9F0F92F96E9BB279395F695BC
+:10458000879577956795B795F111F8CFFAF4BB0F3A
+:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E
+:1045A000882311F096E911C0772321F09EE8872F28
+:1045B000762F05C0662371F096E8862F70E060E0E4
+:1045C0002AF09A95660F771F881FDAF7880F96955D
+:1045D000879597F9089557FD9058440F551F59F046
+:1045E0005F3F71F04795880F97FB991F61F09F3FE0
+:1045F00079F087950895121613061406551FF2CF09
+:104600004695F1DF08C0161617061806991FF1CF58
+:1046100086957105610508940895E894BB2766277F
+:104620007727CB0197F908950BD078C069D028F08F
+:104630006ED018F0952309F05AC05FC01124EECF58
+:10464000CADFA0F3959FD1F3950F50E0551F629FED
+:10465000F001729FBB27F00DB11D639FAA27F00DDB
+:10466000B11DAA1F649F6627B00DA11D661F829F02
+:104670002227B00DA11D621F739FB00DA11D621FE7
+:10468000839FA00D611D221F749F3327A00D611D04
+:10469000231F849F600D211D822F762F6A2F1124E6
+:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39
+:1046B000BB1F661F771F881F91505040A9F79E3F70
+:1046C000510570F014C0AACF5F3FECF3983EDCF3C5
+:1046D000869577956795B795F795E7959F5FC1F7AD
+:1046E000FE2B880F911D9695879597F9089597F958
+:1046F0009F6780E870E060E008959FEF80EC089588
+:1047000000240A94161617061806090608950024B0
+:104710000A9412161306140605060895092E03942A
+:10472000000C11F4882352F0BB0F40F4BF2B11F49E
+:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF
+:10474000072E16F4009407D077FD09D00E94B923F4
+:1047500007FC05D03EF4909581959F4F0895709584
+:1047600061957F4F0895EE0FFF1F0590F491E02DA6
+:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8
+:10478000B70710F0A61BB70B881F991F5A95A9F7FA
+:1047900080959095BC01CD010895F999FECF92BD09
+:1047A00081BDF89A992780B50895A8E1B0E042E06C
+:1047B00050E00C94F523262FF999FECF92BD81BDD0
+:1047C000F89A019700B4021639F01FBA20BD0FB64F
+:1047D000F894FA9AF99A0FBE08950196272F0E942D
+:1047E000DC230C94DB23DC01CB01FC01F999FECF27
+:1047F00006C0F2BDE1BDF89A319600B40D92415069
+:0A4800005040B8F70895F894FFCF78
+:10480A000220E508730950091C09E8080101C701DB
+:10481A0028080A03140A3F4D363975042804F2039E
+:10482A00B9034C0365037E039703010203040506DB
+:04483A000708090062
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/emacs_osx_dk/default_highres.png b/keyboards/ergodox_ez/keymaps/emacs_osx_dk/default_highres.png Binary files differnew file mode 100644 index 000000000..1d2583740 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/emacs_osx_dk/default_highres.png diff --git a/keyboards/ergodox_ez/keymaps/emacs_osx_dk/keymap.c b/keyboards/ergodox_ez/keymaps/emacs_osx_dk/keymap.c new file mode 100644 index 000000000..1d8e66a08 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/emacs_osx_dk/keymap.c @@ -0,0 +1,184 @@ +#include "ergodox_ez.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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Grv | 1 | 2 | 3 | 4 | 5 | L1 | | L2 | 6 | 7 | 8 | 9 | 0 | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | - | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | \/LCtrl| A | S | D | F | G |------| |------| H | J | K | L | ; |'/RCtrl | + * |--------+------+------+------+------+------| RAlt | | RAlt |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | ~L1 | LCtrl| Left| Right| LAlt | | LAlt | Up | Down | RCtrl| ~L2 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Del | Ins | | Esc | App | + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space|Backsp|------| |------| LGui |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, TG(SYMB), + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, + CTL_T(KC_BSLS), KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_RALT, + MO(SYMB), KC_LCTRL, KC_LEFT,KC_RGHT,KC_LALT, + KC_DELT,KC_INS, + KC_HOME, + KC_SPC,KC_BSPC,KC_END, + // right hand + TG(MDIA), KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, CTL_T(KC_QUOT), + KC_RALT, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, + KC_LALT,KC_UP, KC_DOWN,KC_RCTRL, MO(MDIA), + KC_ESC, KC_APP, + KC_PGUP, + KC_PGDN, KC_LGUI, 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 | 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_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 | |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) { + 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/emacs_osx_dk/readme.md b/keyboards/ergodox_ez/keymaps/emacs_osx_dk/readme.md new file mode 100644 index 000000000..4839988d9 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/emacs_osx_dk/readme.md @@ -0,0 +1,10 @@ +# ErgoDox EZ Emacs-OSX-DeadKeys Configuration + +Since I'm an Emacs user, ctrl keys are very important and gets a placement where the usual caps_lock is. There +are an extra pair of ctrls, just in case there where problems with the holding one's, but not as comfortable. + +Gui button takes a predominant place on the thumb cluster, as I'm using a mac os x and it relies heavily on it. + +Finally there is also two Right Alts to easily access to accented letters of the spanish alphabet. + +![Default](default_highres.png) diff --git a/keyboards/ergodox_ez/keymaps/erez_experimental/Makefile b/keyboards/ergodox_ez/keymaps/erez_experimental/Makefile new file mode 100644 index 000000000..b673c5ce5 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/erez_experimental/Makefile @@ -0,0 +1,9 @@ +# 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 + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/ergodox_ez/keymaps/erez_experimental/compiled.hex b/keyboards/ergodox_ez/keymaps/erez_experimental/compiled.hex new file mode 100644 index 000000000..c709537d6 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/erez_experimental/compiled.hex @@ -0,0 +1,1080 @@ +:100000000C945D020C94A1020C94A1020C94A10228
+:100010000C94A1020C94A1020C94A1020C94A102D4
+:100020000C94A1020C94A1020C94DB0D0C94AD0E67
+:100030000C94EA1C0C94A1020C94A1020C94A10251
+:100040000C94A1020C94A1020C94A1020C94A102A4
+:100050000C94A1020C94511D0C94A1020C94A102C9
+:100060000C94A1020C94A1020C94A1020C94A10284
+:100070000C94A1020C94A1020C94A1020C94A10274
+:100080000C94A1020C94A1020C94A1020C94A10264
+:100090000C94A1020C94A1020C94A1020C94A10254
+:1000A0000C94A1020C94A1020C94A102120F340F23
+:1000B0001F10340F1F10760F990F1F10EE0F011035
+:1000C000CD12CD12FC12FC1243136513BD14BD14E6
+:1000D0007013BD1417141714AE14BD14BD14B71447
+:1000E0002414241424142414241424142414241450
+:1000F0002414241424142414241424142414241440
+:10010000361443144A1451145B140000F0A100C8C3
+:1001100001C82E004C002A003370354100001E003B
+:10012000140004001D6134004D001F001A00160069
+:100130001B00E104147020000800070006005000B6
+:100140002C0021001500090019004F004A00220070
+:1001500017000A000500000065645000015300000C
+:100160002F6F0000E3004F000153000030670000D4
+:10017000E20023001C000B00110000002961240094
+:1001800018000D64100052004B0025000C000E00FA
+:10019000360051002800260012000F0037002F0003
+:1001A0002B41270013003342386130004E002D00F0
+:1001B0003100346834702D4100000100010001005D
+:1001C0000100010000003A0001001E0023000100B0
+:1001D00001003B0001001F002400010001003C0061
+:1001E0000100200025004B0101003D00010021001D
+:1001F00026004E0101003E00010022002700000001
+:1002000001000100010000000100000001000100E8
+:10021000010000000100000001003F000100240275
+:10022000310200000100400001002D021F02010008
+:100230000100410001002D002E00010001004200DC
+:1002400001001300220201000100430001002E0200
+:10025000010001000100440045000100010001000F
+:100260000000010001000100010001000000010088
+:1002700001004B00010001000100010001004A00E3
+:10028000010001000100010001004D00010001001A
+:100290000100010001004E00010001000100010009
+:1002A0000100010001000000010001000100000048
+:1002B0000100000001000100010000000100000039
+:1002C0000100010001000100010000000100010027
+:1002D000010001000100A90001000100010001006E
+:1002E000AC00AA00B600010001000100AB00A800AC
+:1002F00001000100010001000100010001000100F6
+:100300000100AE000100010000001603450072006C
+:1003100067006F0044006F007800200045005A001D
+:10032000000016034500720067006F0044006F0074
+:100330007800200045005A00000004030904090267
+:100340006D00040100A0FA0904000001030101008E
+:100350000921110100012240000705810308000A5C
+:100360000904010001030102000921110100012219
+:100370004D000705820308000A090402000103007A
+:10038000000009211101000122360007058303083E
+:10039000000A090403000103000000092111010003
+:1003A0000122390007058403100001120110010029
+:1003B000000008EDFE07130100010200010501091C
+:1003C00006A101050719E029E71500250195087523
+:1003D000018102050819012905950575019102950C
+:1003E000017503910105071900297715002501956D
+:1003F0007875018102C005010980A10185021601FD
+:100400000026B7001A01002AB70075109501810077
+:10041000C0050C0901A1018503160100269C021AE2
+:1004200001002A9C02751095018100C00501090296
+:10043000A1010901A10005091901290515002501DE
+:10044000950575018102950175038101050109304A
+:1004500009311581257F95027508810609381581B6
+:10046000257F950175088106050C0A38021581253E
+:100470007F950175088106C0C005010906A1010527
+:100480000719E029E71500250195087501810295F6
+:100490000175088101050819012905950575019166
+:1004A000029501750391010507190029FF15002622
+:1004B000FF00950675088100C00011241FBECFEF14
+:1004C000DAE0DEBFCDBF04B603FE24C08091F401A4
+:1004D0009091F501A091F601B091F7018730904B12
+:1004E000A740B04BB9F41092F4011092F5011092AC
+:1004F000F6011092F70114BE84B7877F84BF88E1AC
+:100500000FB6F89480936000109260000FBEE0E098
+:10051000FFE3099511E0A0E0B1E0E6E3F3E402C0F7
+:1005200005900D92AA32B107D9F711E0AAE2B1E025
+:1005300001C01D92A43FB107E1F70E94270B0C9464
+:1005400099210C9400001092B9008AE08093B800C1
+:10055000089594EA9093BC009091BC0097FFFCCF63
+:100560009091B900987F983021F0903111F081E09E
+:1005700008958093BB0084E88093BC008091BC0008
+:1005800087FFFCCF8091B900887F883111F08034DB
+:1005900071F780E0089584E98093BC008091BC00ED
+:1005A00084FDFCCF08958093BB0084E88093BC0059
+:1005B0008091BC0087FFFCCF9091B900987F81E0CB
+:1005C000983209F480E0089584E88093BC0080911B
+:1005D000BC0087FFFCCF8091BB00089580B38C7076
+:1005E00080BB81B3836F81BB08958091010181112C
+:1005F00015C080E40E94A9028093010181110CC002
+:1006000082E10E94D30280930101811105C08FEF26
+:100610000E94D302809301010E94CB0284B1807FAB
+:1006200084B985B1807F85B98AB1837F8AB98BB15E
+:10063000837F8BB93E98469808950E94BC048093AE
+:1006400001010E94F5020E94EE02E9E3F1E0ABE253
+:10065000B1E011921D9281E0E734F807D1F70C94D4
+:10066000A6040E94BC04809301010E94F5020E942E
+:10067000EE02E9E3F1E0ABE2B1E011921D9281E01C
+:10068000E734F807D1F70895BF92CF92DF92EF9247
+:10069000FF920F931F93CF93DF93809101018823E3
+:1006A00079F080912A018F5F80932A01811108C01F
+:1006B0000E94BC0480930101811102C00E944E047B
+:1006C0000BE211E0C0E0D0E0DD24D39482E0C82E3C
+:1006D000EE24E394F12CC73000F5809101018111E3
+:1006E00062C080E40E94A90280930101811112C0BE
+:1006F00082E10E94D3028093010181110BC0C701E6
+:100700000C2E01C0880F0A94EAF780950E94D3024C
+:10071000809301010E94CB0246C0CA30A1F028F4A8
+:10072000C83059F0C93061F005C0CC3089F070F0A4
+:10073000CD3089F0209A289810C0219A29980DC0B0
+:10074000229A2A980AC0239A2B9807C0529A01C06D
+:10075000539A5B9802C03E9A4698E0EAEA95F1F710
+:100760008FB179995AC092E081708D25892B7C9B3D
+:1007700002C090E001C094E0892B7D9B02C090E014
+:1007800001C098E0892B7E9B02C090E001C090E1FF
+:10079000892B9FB19095991F9927991F9295990F31
+:1007A000907E892B0FC08091010181114BC080E4A4
+:1007B0000E94A90280930101882389F1B12C0E9433
+:1007C000CB028B2DF8019081981719F08083C0928D
+:1007D00000010E94F50221960F5F1F4FCE30D10518
+:1007E00009F079CF80910001882371F181508093C5
+:1007F0000001882339F08FE99FE00197F1F700C0ED
+:10080000000022C0A9E3B1E0EBE2F1E081918D9319
+:1008100091E0E933F907D1F717C090E0A5CF83E164
+:100820000E94D302809301018111C8CF81E40E940C
+:10083000A902809301018111C1CF0E94E402B82E68
+:10084000B094BDCF80E0BECF0E944C0481E0DF9128
+:10085000CF911F910F91FF90EF90DF90CF90BF90BD
+:100860000895E82FF0E0E75CFE4F80810895089539
+:100870001F93CF93DF93C9E3D1E010E0899190E01B
+:100880000E944D1C180F81E0C734D807B9F7812F9B
+:10089000DF91CF911F9108950C940F0556985E98A3
+:1008A00025982D9826982E9827982F988FEF90E0CE
+:1008B000909389008093880090938B0080938A00A6
+:1008C00090938D0080938C00259A2D9A2FEF80E7CE
+:1008D00092E0215080409040E1F700C00000269A4D
+:1008E0002E9A2FEF80E792E0215080409040E1F770
+:1008F00000C00000279A2F9A2FEF80E792E0215046
+:1009000080409040E1F700C0000025982D982FEF1F
+:1009100080E792E0215080409040E1F700C0000065
+:1009200026982E982FEF80E792E02150804090404B
+:10093000E1F700C0000027982F9856985E982598F8
+:100940002D9826982E9827982F98089589EA8093B5
+:10095000800089E08093810024982C983F988AB188
+:100960008F748AB96E98479A8BB1806B8BB9769ADF
+:100970000E944E040C940E0580E280930101809148
+:10098000470181110EC00E94A30281E080934701BC
+:100990002FEF83ED90E3215080409040E1F700C0BD
+:1009A000000080E40E94A9028093010181112EC001
+:1009B0000E94D30280930101811128C00E94D302BA
+:1009C00080930101811122C08FE30E94D3028093A2
+:1009D000010181111BC00E94CB0280E40E94A90288
+:1009E00080930101811112C08CE00E94D302809398
+:1009F000010181110BC00E94D3028093010181117A
+:100A000005C08FE30E94D302809301010E94CB02B4
+:100A100080910101089580E090E00895089560912B
+:100A2000B4017091B5018091B6019091B7010E9417
+:100A3000591C56985E9825982D9826982E98279898
+:100A40002F98813029F0823029F4269A2E9A02C0FC
+:100A5000259A2D9A80915401882309F450C08091E1
+:100A60005201909153010E94281D8D32914008F44B
+:100A700046C0109254010E94870580914C019091CC
+:100A80004D014A97C1F480914E0190914F01892BFD
+:100A900091F48091500190915101892B61F482EE83
+:100AA0000E9479118DE30E9479118DE30E94361224
+:100AB00082EE0E94361280914C0190914D01429736
+:100AC000F1F480914E0190914F01892BC1F48091F6
+:100AD000500190915101892B91F480EE0E9479117F
+:100AE00081EE0E94791182E10E94791182E10E94D7
+:100AF000361281EE0E94361280EE0C943612089562
+:100B000081E0089581E008950C9482050895089588
+:100B1000282F882339F090E02A3010F44D9608955C
+:100B20000697089587E290E00895BF92CF92DF92F2
+:100B3000EF92FF920F931F93CF93DF938C01FC01F1
+:100B4000C081D181CE010E94561ABE010E94DD08EB
+:100B5000EC01B8010E948405882309F4A3C1F801BF
+:100B600082818823C9F18091540181111EC0C43152
+:100B7000F0E7DF0789F50E94860581E08093540144
+:100B80000E941C1D909353018093520110924B01BF
+:100B900010924D0110924C0110924F0110924E0193
+:100BA00010925101109250017DC18091520190919B
+:100BB00053010E94281D883C910570F480914B01DF
+:100BC000E82FF0E0EE0FFF1FE45BFE4FD183C08300
+:100BD0008F5F80934B0166C1C13020E8D20708F4D3
+:100BE00051C0F8018281882309F44CC06E01E89459
+:100BF000D7F880914A01813079F050F08230C1F409
+:100C000082EE0E94791187E50E94791187E50EC076
+:100C100082EE0E9479110CC080EE0E94791181EE63
+:100C20000E94791188E10E94791188E10E943612B0
+:100C30008CE0E82EF12CC6010E2C02C0969587950B
+:100C40000A94E2F78F700E948805B82E0E947911ED
+:100C50008B2D0E943612F4E0EF1AF1082CEFE21609
+:100C60002FEFF20641F780914A01813029F010F010
+:100C7000823041F482EE04C080EE0E94361281EE92
+:100C80000E943612C43180E7D80760F4C23090E782
+:100C9000D90780F5C115E0E7DE0771F0C130D04714
+:100CA000F1F0EFC0C33320E7D20709F4BEC0C4336C
+:100CB000D04709F4CEC0E5C0F8018281882309F449
+:100CC000E5C00E942915FFEF24E38CE0F15020409D
+:100CD0008040E1F700C000000E94761DE3C0F801EB
+:100CE0008281882309F4D2C08091D60181608093EB
+:100CF000D601D8C0F8018281882309F4C7C00E94B8
+:100D0000D11D811102C00E94B71D0E94E41D90E018
+:100D10009093E6018093E501C230F0E7DF0721F40C
+:100D20008091E50181607AC0C33020E7D20721F4C9
+:100D30008091E501826072C0C43080E7D80721F459
+:100D40008091E50184606AC0C53090E7D90719F445
+:100D50008091E50127C0C630E0E7DE0721F48091ED
+:100D6000E50180615BC0C730F0E7DF0721F48091C7
+:100D7000E501806253C0C83020E7D20721F480919A
+:100D8000E50180644BC0C93080E7D80721F4809129
+:100D9000E501806843C0CA3090E7D90729F4809103
+:100DA000E501846088603AC0CB30E0E7DE0721F4DB
+:100DB0008091E5018E7F32C0CC30F0E7DF0721F46F
+:100DC0008091E5018D7F2AC0CD3020E7D20721F444
+:100DD0008091E5018B7F22C0CE3080E7D80719F4DF
+:100DE0008091E5011AC08091E501CF3090E7D907E5
+:100DF00011F48F7E13C0C031E0E7DE0711F48F7D60
+:100E00000DC0C131F0E7DF0711F48F7B07C0C2319D
+:100E1000D04711F48F7702C08B7F877F8093E501E5
+:100E20008091E5010E94E81D3DC0F8018281882380
+:100E300021F01092480182E013C080914801811195
+:100E400006C086E20E94791186E20E94361282E094
+:100E500015C0F8018281882331F01092490180E2A7
+:100E60000E9485121FC080914901811106C087E24E
+:100E70000E94791187E20E94361280E20E948C1251
+:100E800011C081E08093480180934901C801DF913E
+:100E9000CF911F910F91FF90EF90DF90CF90BF9077
+:100EA0000C94800580E0DF91CF911F910F91FF900E
+:100EB000EF90DF90CF90BF90089526E0729FF001F1
+:100EC000112444E5849FE00DF11D1124E60FF11D6E
+:100ED000EE0FFF1FEE5EFE4F859194910E94EF088A
+:100EE000811520E49207B0F5811540E3940708F0DE
+:100EF000DDC0803E9105D8F4803C910508F06BC0C0
+:100F0000883A910578F4853A910508F06AC08130F5
+:100F1000910509F450C108F40DC18430910508F021
+:100F20004AC108C18B3B910508F466C003C18F3FDD
+:100F3000910509F048F4803F910508F0ACC0883E67
+:100F4000910508F438C1F6C0811520E2920708F037
+:100F5000A4C00895811543E5940790F4811522E516
+:100F6000920708F0C7C0811541E5940708F0BDC09D
+:100F7000811520E5920708F09CC09F70906A089543
+:100F8000811545E59407D0F4811524E5920708F012
+:100F9000C6C0282F2695269540E2249F9001112453
+:100FA000AC014370552781E090E002C0880F991F83
+:100FB0004A95E2F7822B932B9A680895811546E5AE
+:100FC000940708F4B1C09C0130562115304108F057
+:100FD000B1C09F70ADC0FC01EE0FFF1FE657F0409F
+:100FE00062C0853A910509F4A8C0863A910509F4D2
+:100FF000A7C083E890E40895883A910509F4A3C056
+:10100000893A910509F4A2C08A3A910509F4A1C070
+:101010008B3A910509F4A0C08C3A910509F49FC060
+:101020008D3A910509F49EC0803B910509F49DC05D
+:101030008E3A910509F49CC08F3A910509F49BC042
+:10104000813B910509F49AC0823B910509F499C04E
+:10105000833B910509F498C0843B910509F497C03E
+:10106000853B910509F496C0863B910509F495C02E
+:10107000873B910509F494C0883B910509F493C01E
+:10108000893B910509F492C08A3B910509F091C012
+:101090008AE296E40895906508959F70880F991FDD
+:1010A000865F9E4FFC018591949108959927906CDD
+:1010B0000895482F437021E030E002C0220F331F13
+:1010C0004A95E2F73C68AC0164E0569547956A950D
+:1010D000E1F74370342B8F708695869540E2849FAC
+:1010E000C0011124822B932B0895982F8827816F9C
+:1010F000906A0895282F2695269540E2249F900116
+:101100001124AC014370552781E090E002C0880FA4
+:10111000991F4A95E2F7822B932B9C680895982F8C
+:101120008827846F906A08958F719927982F882750
+:101130009062089580E090E0089581E890E4089539
+:1011400082E890E4089582EE94E4089589EE94E4B0
+:1011500008958AEE94E4089585EB94E4089586EB6F
+:1011600094E4089587EB94E408958CEC94E4089556
+:101170008DEC94E4089583E895E408958AE895E475
+:10118000089582E995E4089584E995E4089581E25B
+:1011900096E4089583E296E4089584E296E408953F
+:1011A00085E296E4089586E296E4089587E296E45F
+:1011B000089580E094E40895089596E0799FF00101
+:1011C000112494E5899FE00DF11D1124E60FF11D16
+:1011D000EE0FFF1FEE5EFE4F8591949108958238C9
+:1011E000910549F1B0F48133910509F459C048F4EF
+:1011F0008932910509F44FC08A32910509F455C02E
+:1012000008958533910509F441C08933910599F01A
+:101210000895833E910531F138F4803E910591F0B7
+:10122000823E9105A9F00895863E910501F1873E21
+:10123000910539F108952091E50120FD3BC021FD84
+:1012400039C008958091E50180FF34C089E341C031
+:101250008091E50182FF32C08091E50184FF2CC0BE
+:1012600080E037C08091E50182FD28C0F5CF8091F4
+:10127000E50183FF25C08091E50184FDF1CF87EE74
+:1012800028C08091E50183FD1BC0F5CF8091E50169
+:1012900085FF18C019C08091E50185FF15C012C0F7
+:1012A0008091E50186FF12C013C08091E50186FFA1
+:1012B0000FC00CC080EE0DC083EE0BC082EE09C0E3
+:1012C00086EE07C085E305C089E203C081E301C063
+:1012D0008AE290E0089508950C946B09809165016D
+:1012E0000895CF93DF9300D01F92CDB7DEB7209142
+:1012F000EB01243019F523E029839B838A83209313
+:10130000E9008FEF9091E800815095FD06C095EDC2
+:101310009A95F1F700008111F5CF8091E80085FFE3
+:101320000DC040E050E063E070E0CE0101960E9405
+:10133000CE0B8091E8008E778093E8000F900F909D
+:101340000F90DF91CF910895CF93DF9300D01F923C
+:10135000CDB7DEB72091EB01243021F522E02983BF
+:101360009B838A8383E08093E9008FEF9091E8006C
+:10137000815095FD06C095ED9A95F1F70000811119
+:10138000F5CF8091E80085FF0DC040E050E063E0BC
+:1013900070E0CE0101960E94CE0B8091E8008E771E
+:1013A0008093E8000F900F900F90DF91CF910895F8
+:1013B0002091EB012430F1F422E02093E9002FEF9B
+:1013C0003091E800215035FD06C035ED3A95F1F732
+:1013D00000002111F5CF2091E80025FF0BC040E06F
+:1013E00050E065E070E00E94CE0B8091E8008E77BF
+:1013F0008093E8000895CF93DF93EC018091EB0197
+:10140000843009F046C090910C019923D9F0909155
+:101410000D019923B9F08093E9008FEF9091E800D6
+:10142000815095FD06C095E19A95F1F70000811174
+:10143000F5CF8091E80085FF2CC040E050E060E1EE
+:1014400070E017C081E08093E9008FEF9091E80091
+:10145000815095FD06C095ED9A95F1F70000811138
+:10146000F5CF8091E80085FF14C040E050E068E0CF
+:1014700070E0CE010E94CE0B8091E8008E778093C1
+:10148000E80080E1FE01A5E5B1E001900D928A95AA
+:10149000E1F7DF91CF9108958091EA01811109C0B0
+:1014A0000E94600D0E94BD0D8091E20084608093D7
+:1014B000E20008951092EA010895089508950C94A9
+:1014C000E41C42E061EC81E00E94DA0C42E061EC55
+:1014D00082E00E94DA0C42E061EC83E00E94DA0CC8
+:1014E00042E161EC84E00C94DA0C8091ED018330F0
+:1014F00009F455C030F4813071F0823009F48EC0A7
+:1015000008958A3009F47AC08B3009F460C08930BC
+:1015100009F09CC020C08091EC01813A09F096C08E
+:101520008091E800877F8093E8008091F00190919E
+:10153000F101892B21F060E080E090E003C060E1E0
+:1015400085E591E070E00E94170C8091E8008B77B0
+:101550008093E80008958091EC01813209F076C013
+:101560008091F0019091F101009719F0039709F033
+:101570006DC08091E800877F8093E8008091E8004B
+:1015800082FD05C08091EB018111F8CF5FC0809191
+:10159000F100809365018091E8008B7753C08091C2
+:1015A000EC01813A09F052C08091F0019091F10173
+:1015B000892B09F04BC08091E800877F8093E80079
+:1015C0008091E80080FFFCCF80910C0136C08091B3
+:1015D000EC018132D9F58091F0019091F101892BD4
+:1015E000A9F58091E800877F8093E8000E940F0DA5
+:1015F0008091EE0180930C010C9429158091EC01EF
+:10160000813221F58091E800877F8093E8000E9475
+:101610000F0D8091EF018093660108958091EC0198
+:10162000813AA1F48091E800877F8093E80080915F
+:10163000E80080FFFCCF809166018093F1008091EB
+:10164000E8008E778093E8000C940F0D089584B71E
+:10165000877F84BF88E10FB6F89480936000109272
+:1016600060000FBE80E880936100109261000E94CC
+:10167000A9100E94600D0E94BD0D8091E20084605F
+:101680008093E20078940E9438100E94AB1082E0B0
+:1016900091E00E9455108091EB01853069F40E9421
+:1016A000AC1C8091E9018823B1F30E94D61C8823E9
+:1016B00091F30E94B80BEFCF0E94B110ECCF292F0D
+:1016C000332723303105A9F06CF42130310509F4BA
+:1016D00042C02230310509F043C08DE690E02EE390
+:1016E00033E042C021323105C9F02232310519F10F
+:1016F00037C099278130910541F08230910541F042
+:10170000892B71F5EAE3F3E005C0E2E2F3E002C001
+:10171000EAE0F3E0849190E09F0126C0643000F598
+:10172000E62FF0E0EE0FFF1FEE5DFE4F20813181CE
+:1017300089E090E019C0643098F4E62FF0E0DF0112
+:10174000AA0FBB1FA65EBE4F2D913C91EA5EFE4FD5
+:10175000808190E009C082E190E02BEA33E004C090
+:1017600080E090E020E030E0FA01318320830895AA
+:1017700080E189BD82E189BD09B400FEFDCF809181
+:10178000D8008F7D8093D8008091E00082608093A4
+:10179000E0008091E00081FDFCCF0895CF92DF92C0
+:1017A000EF92FF920F931F93CF93DF937C018B01F6
+:1017B000EA010E94300D811131C0209731F08881FB
+:1017C0009981081B190BE80EF91EC12CD12C0115AB
+:1017D000110519F18091E80085FD14C08091E800A1
+:1017E0008E778093E800209741F0888199818C0D55
+:1017F0009D1D9983888385E011C00E94300D882348
+:1018000031F30CC0F70181917F018093F100015009
+:101810001109FFEFCF1ADF0ADACF80E0DF91CF9115
+:101820001F910F91FF90EF90DF90CF90089520913E
+:10183000F2013091F3012617370748F06115710561
+:1018400039F42091E8002E772093E80001C0B90117
+:10185000FC0120E061157105B9F18091EB0188234D
+:1018600009F440C0853009F43FC08091E80083FD51
+:101870003DC08091E80082FF06C08091E80082FFB1
+:1018800026C080E008958091E80080FFE3CF20919A
+:10189000F3008091F20090E0922B6115710551F0F8
+:1018A0008830910538F421912093F100615071093D
+:1018B0000196F3CF21E0089709F020E08091E8003D
+:1018C0008E778093E800C6CF2111C7CFD6CF809105
+:1018D000EB01882339F0853039F08091E80083FFEF
+:1018E000CCCF04C082E0089583E0089581E008959C
+:1018F0002091F2013091F3012617370748F0611566
+:10190000710539F42091E8002E772093E80001C09A
+:10191000B901FC0120E061157105C1F18091EB0175
+:10192000882309F441C0853009F440C08091E80063
+:1019300083FD3EC08091E80082FF06C08091E800F0
+:1019400082FF27C080E008958091E80080FFE3CF08
+:101950002091F3008091F20090E0922B61157105C7
+:1019600059F08830910540F424912093F10031968C
+:10197000615071090196F2CF21E0089709F020E04B
+:101980008091E8008E778093E800C5CF2111C6CF03
+:10199000D5CF8091EB01882339F0853039F08091E3
+:1019A000E80083FFCBCF04C082E0089583E0089570
+:1019B00081E00895982F973058F59093E900981793
+:1019C00039F07091EC002091ED005091F00003C0CF
+:1019D000242F762F50E021FF19C03091EB003E7F7D
+:1019E0003093EB003091ED003D7F3093ED0030916E
+:1019F000EB0031603093EB007093EC002093ED002E
+:101A00005093F0002091EE0027FF07C09F5FD3CFD7
+:101A10008F708093E90081E0089580E008958091BF
+:101A2000EC0187FD05C08091E80080FF0EC012C068
+:101A30008091E80082FD05C08091EB018111F8CF13
+:101A400008958091E8008B7708C08091EB018111A7
+:101A5000EACF08958091E8008E778093E80008959A
+:101A60008091E4009091E50045E62091EC0020FF94
+:101A700021C02091E80020FD21C02091EB0122230C
+:101A800089F0253089F02091EB0025FD0FC02091D1
+:101A9000E4003091E5002817390739F3415041F04F
+:101AA000C901E3CF82E0089583E0089581E00895BD
+:101AB00084E008952091E80022FFDFCF80E00895C0
+:101AC0000E94CE0D0E94D60DE0EEF0E08081816094
+:101AD0008083E8EDF0E080818F77808319BCA7EDEB
+:101AE000B0E08C918E7F8C9380818F7E808310926A
+:101AF000EA0108950F931F93CF93DF930E94CE0DB9
+:101B00000E94D60DC8EDD0E088818F7788838881C8
+:101B10008068888388818F7D888319BC1092EB014F
+:101B20001092E7011092E9011092E80100EE10E036
+:101B3000F80180818B7F808388818160888342E087
+:101B400060E080E00E94DA0CE1EEF0E080818E7FC0
+:101B50008083E2EEF0E08081816080838081886014
+:101B60008083F80180818E7F808388818061888373
+:101B7000DF91CF911F910F910895E8EDF0E0808102
+:101B80008F7E8083E7EDF0E080818160808384E058
+:101B900082BF81E08093EA010C947A0DE8EDF0E0D9
+:101BA00080818E7F80831092E20008951092DA0087
+:101BB0001092E10008951F920F920FB60F92112418
+:101BC0002F933F934F935F936F937F938F939F9345
+:101BD000AF93BF93EF93FF938091E10082FF0BC01F
+:101BE0008091E20082FF07C08091E1008B7F8093AB
+:101BF000E1000E9437108091DA0080FF1FC08091C1
+:101C0000D80080FF1BC08091DA008E7F8093DA00BD
+:101C10008091D90080FF0DC080E189BD82E189BD3E
+:101C200009B400FEFDCF81E08093EB010E944C0AD5
+:101C300005C019BC1092EB010E945A0A8091E10084
+:101C400080FF19C08091E20080FF15C08091E20002
+:101C50008E7F8093E2008091E20080618093E200B9
+:101C60008091D80080628093D80019BC85E0809371
+:101C7000EB010E945E0A8091E10084FF30C08091F8
+:101C8000E20084FF2CC080E189BD82E189BD09B4F6
+:101C900000FEFDCF8091D8008F7D8093D800809189
+:101CA000E1008F7E8093E1008091E2008F7E80933F
+:101CB000E2008091E20081608093E2008091E70180
+:101CC000882311F084E007C08091E30087FF02C001
+:101CD00083E001C081E08093EB010E945F0A809164
+:101CE000E10083FF29C08091E20083FF25C080913D
+:101CF000E100877F8093E10082E08093EB01109206
+:101D0000E7018091E1008E7F8093E1008091E20005
+:101D10008E7F8093E2008091E20080618093E200F8
+:101D200042E060E080E00E94DA0C8091F000886080
+:101D30008093F0000E945D0AFF91EF91BF91AF91F7
+:101D40009F918F917F916F915F914F913F912F91D3
+:101D50000F900FBE0F901F9018951F920F920FB605
+:101D60000F9211242F933F934F935F936F937F9321
+:101D70008F939F93AF93BF93CF93EF93FF93C091B4
+:101D8000E900CF708091EC001092E9008091F000A2
+:101D9000877F8093F00078940E94E90E1092E9000A
+:101DA0008091F00088608093F000C093E900FF917B
+:101DB000EF91CF91BF91AF919F918F917F916F9153
+:101DC0005F914F913F912F910F900FBE0F901F90F9
+:101DD00018951F93CF93DF93CDB7DEB7AA970FB6B1
+:101DE000F894DEBF0FBECDBFECEEF1E08091F100C4
+:101DF000819321E0E43FF207C9F70E94750A8091C0
+:101E0000E80083FF1CC12091EC013091ED01832F8C
+:101E100090E08A30910508F012C1FC01EA5AFF4FA8
+:101E20000C944921203881F0223809F008C18091B2
+:101E3000F0018F708093E9008091EB0085FB88278B
+:101E400080F91092E90006C08091E8019091E901C3
+:101E5000911182609091E800977F9093E8008093C1
+:101E6000F1001092F100C5C0822F8D7F09F0E7C00C
+:101E7000222319F0223061F0E2C08091EE0181301E
+:101E800009F0DDC0333009F080E08093E90128C01B
+:101E90008091EE01811124C02091F0012F7009F48E
+:101EA000CEC02093E9008091EB0080FF19C08091A3
+:101EB000EB00333011F4806211C080618093EB003D
+:101EC00081E090E0022E01C0880F0A94EAF7809327
+:101ED000EA001092EA008091EB0088608093EB00AA
+:101EE0001092E9008091E800877F86C02111A7C089
+:101EF0001091EE011F778091E3008078812B809311
+:101F0000E3008091E800877F8093E8000E940F0D36
+:101F10008091E80080FFFCCF8091E300806880938F
+:101F2000E300112311F083E001C082E08093EB0114
+:101F300086C02058223008F082C08091EE01909136
+:101F4000EF018C3D23E0920779F583E08A838AE2F2
+:101F500089834FB7F894DE01139620E03EE051E20A
+:101F6000E32FF0E050935700E49120FF03C0E29587
+:101F7000EF703F5FEF708E2F90E0EA3010F0C79661
+:101F800001C0C0968D939D932F5F243149F74FBFB9
+:101F90008091E800877F8093E8006AE270E0CE01DC
+:101FA00001960E94170C14C0AE014F5F5F4F609105
+:101FB000F0010E945F0B009709F441C02091E800F6
+:101FC000277F2093E800BC0189819A810E94780CC8
+:101FD0008091E8008B778093E80031C0203879F554
+:101FE0008091E800877F8093E8008091E7018093EB
+:101FF000F1008091E8008E778093E8000E940F0D39
+:102000001EC021111CC09091EE019230C0F480914D
+:10201000E800877F8093E8009093E7010E940F0D0E
+:102020008091E701811104C08091E30087FF02C025
+:1020300084E001C081E08093EB010E94610A8091FD
+:10204000E80083FF0AC08091E800877F8093E80062
+:102050008091EB0080628093EB00AA960FB6F89413
+:10206000DEBF0FBECDBFDF91CF911F9108950895C0
+:10207000CF938091EB018823B1F08091E9008F70BC
+:102080009091EC0090FF02C090E801C090E0C92F51
+:10209000C82B1092E9008091E80083FD0E94E90EB0
+:1020A000CF70C093E900CF91089590936C01809315
+:1020B0006B010895E0916B01F0916C01309721F074
+:1020C0000190F081E02D099480E00895E0916B018A
+:1020D000F0916C01309721F00280F381E02D09949A
+:1020E0000895E0916B01F0916C01309721F004802C
+:1020F000F581E02D099408952091690130916A01DC
+:102100008217930771F090936A0180936901E091BF
+:102110006B01F0916C01309721F00680F781E02D82
+:1021200009940895209167013091680182179307FF
+:1021300071F09093680180936701E0916B01F091D9
+:102140006C01309721F00084F185E02D0994089509
+:1021500008950C94A8100E94131D0E941D030C9456
+:10216000991D9F92AF92BF92CF92DF92EF92FF9212
+:102170000F931F93CF93DF9300D000D000D0CDB743
+:10218000DEB70E9444038CE7E82E81E0F82E0DE0D4
+:1021900010E0CC24C394D12C902E802F0E943104C7
+:1021A000F701B2907F01B826A1F401501109A0F700
+:1021B0008FEF89838A831B820E941C1D8160782F88
+:1021C0009D838C8349815A816B818D810E944B1143
+:1021D00031C09091D60191FF04C08E830E943704D4
+:1021E0008E8125E030E0A601022E01C0440F0A9442
+:1021F000EAF7A42E4B21D1F029839A828A2191E01B
+:1022000009F490E09B830E941C1D8160782F9D83C0
+:102210008C8349815A816B818D810E944B11F80119
+:10222000E259FE4F80818A25808304C02150310904
+:10223000D0F6BBCF0E94661F10916D010E945A100C
+:102240001817B9F00E945A1080936D0126960FB6A8
+:10225000F894DEBF0FBECDBFDF91CF911F910F91DC
+:10226000FF90EF90DF90CF90BF90AF909F900C9435
+:102270006C0926960FB6F894DEBF0FBECDBFDF9176
+:10228000CF911F910F91FF90EF90DF90CF90BF9073
+:10229000AF909F900895CF93DF93CDB7DEB72B9784
+:1022A0000FB6F894DEBF0FBECDBF4F835887698746
+:1022B0007A878B87DE01119686E0FD0111928A955F
+:1022C000E9F785E0FE01379601900D928A95E1F7D6
+:1022D00049815A816B817C818D819E810E94F91791
+:1022E0002B960FB6F894DEBF0FBECDBFDF91CF9116
+:1022F0000895882309F4B9C0823859F40E945A100D
+:1023000081FDB3C089E30E94401B0E94171C89E332
+:102310000CC0833871F40E945A1080FDA6C083E57A
+:102320000E94401B0E94171C83E50E94801B0C9496
+:10233000171C843859F40E945A1082FD96C087E415
+:102340000E94401B0E94171C87E4EFCF9CEF980F60
+:10235000913A18F40E94401BEACF90E2980F98300F
+:1023600050F4877091E001C0990F8A95EAF7892FA0
+:102370000E94C41BDCCF9BE5980F933070F4853A24
+:1023800029F0863A31F482E890E005C081E890E0D7
+:1023900002C083E890E00C947C1098E5980F93318C
+:1023A00008F063C0883A39F1893A41F18A3A49F133
+:1023B0008B3A51F18C3A59F18D3A61F1803B69F1D8
+:1023C0008E3A71F18F3A79F1813B81F1823B89F14B
+:1023D000833B91F1843B99F1853BA1F1863BA9F1C7
+:1023E000873BB1F1883BB9F1893BC1F18A3BC9F523
+:1023F0008AE292E038C082EE90E035C089EE90E04B
+:1024000032C08AEE90E02FC085EB90E02CC086EBC6
+:1024100090E029C087EB90E026C08CEC90E023C0D0
+:102420008DEC90E020C083E891E01DC08AE891E047
+:102430001AC082E991E017C084E991E014C081E2FA
+:1024400092E011C083E292E00EC084E292E00BC001
+:1024500085E292E008C086E292E005C087E292E061
+:1024600002C080E090E00C9492100895882309F453
+:102470004BC0823859F40E945A1081FF45C089E34D
+:102480000E94401B0E94171C89E30CC0833871F422
+:102490000E945A1080FF38C083E50E94401B0E94B2
+:1024A000171C83E50E94801B0C94171C843859F478
+:1024B0000E945A1082FF28C087E40E94401B0E949D
+:1024C000171C87E4EFCF9CEF980F913A58F390E2F6
+:1024D000980F983050F4877091E001C0990F8A9559
+:1024E000EAF7892F0E94CA1BDFCF9BE5980F933034
+:1024F00020F480E090E00C947C10885A833120F422
+:1025000080E090E00C9492100895882321F00E94BE
+:10251000C41B0C94171C0895882321F00E94CA1B29
+:102520000C94171C08958F929F92AF92BF92CF92F6
+:10253000DF92EF92FF920F931F93CF93DF934C01A3
+:10254000A62EC72FFC01E280D581D295DF700E94B4
+:10255000DB1A882319F082E00E941E1BE1100E9402
+:10256000E11B0E94391B882379F0EE2069F080E29C
+:102570008A0D883048F082E00E941E1B0E94391BA1
+:10258000BB24B394B82601C0B12CEC2FE295EF70B8
+:10259000F0E0E05AFF4F0C9449218C2F807F1C2FD4
+:1025A0001F70882311F01295107FEE2089F01123FF
+:1025B00009F4C9C180E28A0D883020F4812F0E947D
+:1025C000C41B03C0812F0E94D41B0E94171CBBC1D7
+:1025D0008A2D0E943612112309F4CFC180E28A0DA0
+:1025E000883020F4812F0E94CA1B03C0812F0E94D3
+:1025F000DA1B0E94171CC1C18C2F807F1C2F1F70FB
+:10260000803211F01295107FAA2021F0F1E0AF1670
+:1026100039F12FC0EE2091F0DD2309F41DC1D13036
+:1026200021F4812F0E94F41BA8C1D23009F014C1FB
+:102630000E94FD1B812F0E94A81A0EC1DD2369F0A4
+:10264000D13041F40E94C11B812309F496C10E943C
+:10265000AB1A03C0D23009F490C10E94FD1B02C125
+:10266000EE2021F0D23008F088C1F6C0D11185C12A
+:10267000F9C0EE2021F0DD2309F4EEC064C1DD23B2
+:1026800009F4F0C067C12C2F26952695237030E001
+:102690002115310521F02130310561F06EC1EE20A8
+:1026A00021F08A2D9C2F937002C080E090E00E9460
+:1026B0007C1063C1EE2021F08A2D9C2F937002C004
+:1026C00080E090E00E94921058C18A2DEE2019F00F
+:1026D0000E946E1E02C00E94D61E0E945B1F4DC14A
+:1026E0008C2F837009F04EC0E11047C12A2D22952E
+:1026F00026952770220F220F8A2D8F70C82ED12C7D
+:10270000E12CF12C022E04C0CC0CDD1CEE1CFF1CB5
+:102710000A94D2F7A4FE10C06FE070E080E090E071
+:1027200004C0660F771F881F991F2A95D2F76095FE
+:1027300070958095909503C060E070E0CB012C2FE0
+:1027400026952695237030E02230310569F023303C
+:10275000310589F06C297D298E299F292130310589
+:1027600071F00E944D1909C16C297D298E299F297C
+:102770000E94671902C10E944D19C701B6010E944B
+:102780003319FBC0EE2019F08C2F817001C08695A3
+:10279000882309F4F2C02A2D229526952770220F4E
+:1027A000220F8A2D8F70C82ED12CE12CF12C022EF5
+:1027B00004C0CC0CDD1CEE1CFF1C0A94D2F7A4FE56
+:1027C00010C06FE070E080E090E004C0660F771FFB
+:1027D000881F991F2A95D2F76095709580959095DE
+:1027E00003C060E070E0CB012C2F26952695237066
+:1027F00030E02230310569F02330310589F06C2951
+:102800007D298E299F292130310571F00E94211ADE
+:10281000B4C06C297D298E299F290E943B1AADC026
+:102820000E94211AC701B6010E94071AA6C00A2DEC
+:1028300010E0F801E05EF109E531F10508F07EC035
+:10284000E059FF4F0C9449211A2D1F708C2F8F7166
+:10285000EE2031F00E94A019812F0E9485128DC0B8
+:102860000E94C119812F0E948C1287C0EE2039F07E
+:10287000D11183C08C2F8F710E94E6197EC0D23097
+:1028800008F07BC0F7CFEE2039F08C2F8F710E94BB
+:10289000A01973C0EE20C9F38C2F8F710E94C1194B
+:1028A0006CC0EE2029F08C2F8F710E948B1965C0AF
+:1028B0000E94811962C0EE20B9F00E94A51A0E9400
+:1028C000CA1B0E94D71A843029F40E94171B8C2F30
+:1028D0008F7164C0D23008F06FC0CF718C2F0E940E
+:1028E000A01963E08C2F0DC00E94A51A0E94C41B82
+:1028F000D230A8F00E94171B0E94AB1A64E08C2F04
+:102900008F71DF91CF911F910F91FF90EF90DF902A
+:10291000CF90BF90AF909F908F900C94071B81E059
+:10292000DF91CF911F910F91FF90EF90DF90CF90AB
+:10293000BF90AF909F908F900C941E1BEE2039F0AB
+:10294000DD2309F4A2CF8A2D0E94791116C0DD2360
+:1029500009F4A2CF8A2D0E9436120FC04C2F4F705F
+:102960006A2DC4010E940B050E94A61806C04C2FB8
+:102970004F706A2DC4010E94DC08BB20E9F00E9460
+:10298000D71A80FD19C0F40112820E94D11A0E9448
+:10299000A019C4010E94E9140E94D11ADF91CF91BD
+:1029A0001F910F91FF90EF90DF90CF90BF90AF906D
+:1029B0009F908F900C94C119DF91CF911F910F912F
+:1029C000FF90EF90DF90CF90BF90AF909F908F904F
+:1029D00008950F931F93CF93DF93EC0128813981E2
+:1029E0008B819C81892B31F03F3F11F080E003C047
+:1029F0002F3FE1F781E0811113C0CE010E949505C0
+:102A0000882371F0688179818A810E94A11A8C01E2
+:102A10000E94551A0E942819B801CE010E949312F3
+:102A2000DF91CF911F910F9108950E94E11B0E94A9
+:102A3000F11B0E94B31B0E94171C0E9407200E94DA
+:102A40005B1F80E090E00E947C1080E090E00C949E
+:102A500092100E94D11B0C9415150E94961A292FD2
+:102A600022952F7030E02C3031054CF42A3031059E
+:102A70006CF42250310922303105B0F407C02C30FB
+:102A8000310571F02F30310559F00EC0803F31F023
+:102A900018F4803E48F402C0843F31F481E0089588
+:102AA00093FB882780F9089580E00895CF93DF9302
+:102AB00000D000D01F92CDB7DEB70F900F900F90CF
+:102AC0000F900F90DF91CF910895CF93DF9300D0B7
+:102AD00000D000D0CDB7DEB726960FB6F894DEBF93
+:102AE0000FBECDBFDF91CF9108951F93CF93DF939A
+:102AF000C0917C0116E080917D01C81799F0D0E06B
+:102B00001C9FF0011D9FF00D1124E258FE4F4081E3
+:102B1000518162817381848195810E94651521961E
+:102B2000C770E9CFDF91CF911F9108954091AE0119
+:102B30005091AF016091B0017091B1018091B201EB
+:102B40009091B3010C946515CF938091B301829558
+:102B50008F7009F05FC08091B001882309F45AC0DA
+:102B600020917C01A0917D016091AE017091AF0137
+:102B70008091B1019091B20131E06F3F09F030E0F6
+:102B8000B32FC6E02A1709F445C0009721F07F3F14
+:102B900021F44B2F03C041E001C040E030E040FD94
+:102BA00035C0C29FF001C39FF00D1124E258FE4FC3
+:102BB000418174132BC04081641328C042814111AC
+:102BC00025C0438154814817590710F441505109D9
+:102BD000481B590B483C5105C8F48091B3018F70D4
+:102BE00080618093B30186E0829FF001839FF00DA6
+:102BF0001124ED57FE4F80818F70806180838EEAB3
+:102C000091E00E94E914CF910C9475152F5F3F4F0E
+:102C10002770B8CFCF910895CF92DF92EF92FF92B5
+:102C20000F931F93CF93DF93CDB7DEB762970FB6A5
+:102C3000F894DEBF0FBECDBF8C0185E0F801DE0148
+:102C40001D9601900D928A95E1F7D8014C9111964D
+:102C50005C91119712966C9112971396ED90FC90DF
+:102C600014977091AE01E091AF012091B1013091C4
+:102C7000B2012115310531F0EF3F31F481E07F3FA2
+:102C800019F403C081E001C080E0B82FB170CB2EF1
+:102C900080FD6CC1D090B001DD2009F4F5C0F09149
+:102CA000B301E216F30638F0C701821B930B883C90
+:102CB000910548F09BC0209530952E0D3F1D283C76
+:102CC000310508F093C08F2F807F09F052C0E513C3
+:102CD00014C0741312C0D62E61110FC0FF70F061C2
+:102CE000F093B3010E9496158EEA91E00E94E914D8
+:102CF0008091B301F80185836CC1EF2831F05F3F0B
+:102D000031F481E04F3F19F403C081E001C080E05D
+:102D100080FD03C081E0862701C080E0F82FF170BC
+:102D2000FF2E80FF1CC080917C0120917D0136E048
+:102D3000821709F428C190E0389FF001399FF00D07
+:102D40001124E258FE4F7181571306C0708147135A
+:102D500003C07281671303C001968770E9CFD62E36
+:102D6000662309F436C18091B30181608093B30179
+:102D700053C0E51308C0741306C0611104C0D80124
+:102D80001596FC93AEC04D875E878D859E856A8BB8
+:102D90000E942D156A89882329F1D62E662311F108
+:102DA0002091B301822F82958F7090E002970CF4EE
+:102DB00060C08091AE019091AF0198878F83198692
+:102DC000FB86EA862C87CE01079651C0E51731F1C4
+:102DD0004D875E878D859E856A8B0E942D156A8939
+:102DE00081112EC0C8010E94E914A4C08F2F807FDA
+:102DF00069F77E2DF98AE88A89890E9456158EEA3C
+:102E000091E00E94E914EEEAF1E086E0DF011D9214
+:102E10008A95E9F70E949615D12CDBC07413D8CFA0
+:102E20006111D6CFD8011596FC93C8010E94E91410
+:102E3000EEEAF1E086E0DF011D928A95E9F7C9C06C
+:102E4000D62E662379F22091B301822F82958F705E
+:102E500090E0029774F08091AE019091AF019A8357
+:102E600089831B82FD82EC822E83CE0101960E9413
+:102E7000E91486E0F801AEEAB1E001900D928A957E
+:102E8000E1F70E94A4156FC0E216F30628F0C7010F
+:102E9000821B930B9C0104C0209530952E0D3F1D85
+:102EA000283C310508F052C0D62E662309F49ACF8B
+:102EB000E5132CC074132AC08091B30180FD1DC09E
+:102EC000982F92959F70C9F0D80115968C931597FD
+:102ED0009F3039F09F5F9295907F8F70892B159668
+:102EE0008C93C8010E94E91486E0F801AEEAB1E0D3
+:102EF00001900D928A95E1F736C086E0F801AEEABE
+:102F0000B1E001900D928A95E1F763C04D875E872D
+:102F10008D859E850E942D15882379F086E0F80125
+:102F2000AEEAB1E001900D928A95E1F70E94A415F6
+:102F30000E949615DD24D3944CC08091B30181602A
+:102F40008093B301C8010E94E91443C07E2DF98A21
+:102F5000E88A89890E945615EEEAF1E086E0DF01F1
+:102F60001D928A95E9F70E94961533C0662309F4ED
+:102F700039CF4D875E878D859E850E942D158823CC
+:102F800009F430CFCBCF4D875E878D859E850E941B
+:102F9000961A292F22952F7030E0223031052CF41B
+:102FA0009F7041F0811106C00CC0243031052CF413
+:102FB0009F7049F4805E883020F0C8010E94E914B7
+:102FC000CF2CDC2C06C0D80115969C91907F91F7F0
+:102FD000F8CF8D2D62960FB6F894DEBF0FBECDBF31
+:102FE000DF91CF911F910F91FF90EF90DF90CF90E5
+:102FF00008951F93CF93DF93CDB7DEB72C970FB60D
+:10300000F894DEBF0FBECDBF4F83588769877A879C
+:103010008B879C87CE0107960E940C168823C1F0EF
+:103020002F8138858A859B85892B31F03F3F11F0B0
+:1030300080E003C02F3FE1F781E0811147C04F815D
+:10304000588569857A858B859C850E9465153EC06B
+:1030500086E0FE013796DE01119601900D928A9569
+:10306000E1F7FF81E8854A855B854115510531F01F
+:10307000EF3F31F481E0FF3F19F403C081E001C06C
+:1030800080E080FD23C020917D0130E0C9010196E0
+:103090008770992760917C0170E086179707F1F19E
+:1030A000F983EA835D834C8396E0929FD001939FDE
+:1030B000B00D1124A258BE4FFE01319601900D9221
+:1030C0009A95E1F780937D010E94751516E0809135
+:1030D0007C0190917D01891779F1189FC00111241D
+:1030E00082589E4F0E940C16882331F1E0917C019A
+:1030F0001E9FF0011124E258FE4F408151816281F0
+:103100007381848195810E94651580917C0190E096
+:1031100001968770992780937C01D9CF0E94291549
+:1031200010927D0110927C01EEEAF1E086E0DF0171
+:103130001D928A95E9F7CACF2C960FB6F894DEBF98
+:103140000FBECDBFDF91CF911F910895EF92FF92F7
+:103150000F931F93CF93DF939C01009709F471C0E5
+:10316000F12CEE24E394E9012196F901849184374E
+:1031700040F4843008F056C0813081F0823021F173
+:1031800060C0853709F449C0C0F19CE7980F9037BB
+:1031900008F057C08F770E94361246C089010E5F33
+:1031A0001F4FFE01849190E2980F983050F4877081
+:1031B000FE2D01C0FF0F8A95EAF78F2F0E94E41BB6
+:1031C00015C00E94791114C089010E5F1F4FFE01C6
+:1031D000849190E2980F983068F48770FE2D01C0BA
+:1031E000FF0F8A95EAF78F2F0E94EA1B0E94171C97
+:1031F000E8011AC00E943612FBCF2E5F3F4FFE013E
+:10320000C491CC2341F08FE99FE00197F1F700C012
+:103210000000C150F6CFE90107C0FE01F490E901BA
+:10322000229602C00E9479118F2D882341F0EFE988
+:10323000FFE03197F1F700C000008150F6CF9E010A
+:1032400092CFDF91CF911F910F91FF90EF90089552
+:1032500008956093B8017093B9018093BA01909377
+:10326000BB010C9415150F931F930091B801109199
+:10327000B9012091BA013091BB01062B172B282BE5
+:10328000392B0093B8011093B9012093BA01309300
+:10329000BB011F910F910C9415150F931F93009173
+:1032A000B8011091B9012091BA013091BB010623F8
+:1032B0001723282339230093B8011093B9012093D1
+:1032C000BA013093BB011F910F910C9415150F9308
+:1032D0001F930091B8011091B9012091BA0130916A
+:1032E000BB0106271727282739270093B801109319
+:1032F000B9012093BA013093BB011F910F910C9437
+:1033000015151092B4011092B5011092B6011092E9
+:10331000B7010C94151541E050E060E070E004C086
+:10332000440F551F661F771F8A95D2F74093B4014B
+:103330005093B5016093B6017093B7010C941515C5
+:1033400041E050E060E070E004C0440F551F661F8C
+:10335000771F8A95D2F78091B4019091B501A09121
+:10336000B601B091B701842B952BA62BB72B809378
+:10337000B4019093B501A093B601B093B7010C943A
+:10338000151541E050E060E070E004C0440F551FA7
+:10339000661F771F8A95D2F7409550956095709576
+:1033A0008091B4019091B501A091B601B091B7019F
+:1033B00084239523A623B7238093B4019093B5016A
+:1033C000A093B601B093B7010C94151541E050E0FD
+:1033D00060E070E004C0440F551F661F771F8A9598
+:1033E000D2F78091B4019091B501A091B601B0914E
+:1033F000B70184279527A627B7278093B401909318
+:10340000B501A093B601B093B7010C9415150F93B5
+:103410001F930091B4011091B5012091B601309134
+:10342000B701062B172B282B392B0093B4011093CF
+:10343000B5012093B6013093B7011F910F910C9401
+:1034400015150F931F930091B4011091B5012091B0
+:10345000B6013091B701062317232823392300939F
+:10346000B4011093B5012093B6013093B7011F91B9
+:103470000F910C9415150F931F930091B4011091A7
+:10348000B5012091B6013091B701062717272827EB
+:1034900039270093B4011093B5012093B6013093FE
+:1034A000B7011F910F910C9415150895CF92DF92DB
+:1034B000EF92FF920F931F93CF93DF93EC01C09095
+:1034C000B801D090B901E090BA01F090BB018091B1
+:1034D000B4019091B501A091B601B091B701C82A8D
+:1034E000D92AEA2AFB2A0FE110E0B701A601002E33
+:1034F00004C076956795579547950A94D2F740FD95
+:1035000005C00150110988F780E007C0BE01802F77
+:103510000E945D070197A9F3802FDF91CF911F9142
+:103520000F91FF90EF90DF90CF900895CF93DF93AE
+:10353000EC010E94561ABE010E945D07DF91CF91F7
+:103540000895CB010E94961A08958091C1010895B3
+:103550008093C10108951092C10108950E941C1D1D
+:103560002091BF013091C0018217930750F00E9453
+:103570001C1D2091BF013091C001821B930B9C0147
+:103580000AC00E941C1D2091BF013091C0012095EE
+:103590003095280F391F81E02C32314008F480E04B
+:1035A00008958091BE0185958595859508958091B2
+:1035B000BE01877008950E941C1D2091BC013091AE
+:1035C000BD018217930768F00E941C1D2091BC0169
+:1035D0003091BD01821B930B8C32914078F480E0D6
+:1035E00014C00E941C1D2091BC013091BD0120958A
+:1035F0003095280F391F2C32314088F38091BE015D
+:1036000082FB882780F991E089278170089598E0EE
+:10361000899F90011124622B6093BE010E94A01922
+:103620000E941C1D9093BD018093BC0108951092CF
+:10363000BE011092BD011092BC0108954091BE01DF
+:10364000809584238093BE01982F977089F450E071
+:10365000282F332727FD30954217530749F08595CA
+:10366000859585950E94C1191092BD011092BC01EB
+:1036700008959091BE01977081E009F480E008956B
+:1036800090910C019923D9F090910D019923B9F0F3
+:10369000982F9695969596959F3088F5E0910E0116
+:1036A000F0910F01E90FF11D877021E030E001C0BA
+:1036B000220F8A95EAF78181822B818308954091B8
+:1036C0000E0150910F0120E030E09FEFFA01E20F70
+:1036D000F31F6281681799F09F3F19F4611101C0CF
+:1036E000922F2F5F3F4F2E30310581F79F3F39F0EA
+:1036F000FA01E90FF11D97FDFA9582830895089567
+:1037000090910C019923E1F090910D019923C1F062
+:10371000982F9695969596959F3020F5E0910E01FD
+:10372000F0910F01E90FF11D877021E030E001C039
+:10373000220F8A95EAF72095818128232183089515
+:1037400040910E0150910F0120E030E0FA01E20FAC
+:10375000F31F9281981301C012822F5F3F4F2E30CA
+:103760003105A1F7089581E090E0E0910E01F0911C
+:103770000F01E80FF91F1082019680319105A9F71A
+:1037800008958091D50108959091D501982B90933B
+:10379000D501089580959091D50198239093D501F6
+:1037A00008951092D50108959091D401982B90938B
+:1037B000D401089580959091D40198239093D401D9
+:1037C00008951092D40108959091D301982B90936D
+:1037D000D301089580959091D30198239093D301BC
+:1037E00008951092D30108958093C2010E941C1D78
+:1037F0009093C0018093BF0108951092C20110926E
+:10380000C0011092BF01089540910E0150910F0127
+:1038100020E030E080E0FA01E20FF31F9181911186
+:103820008F5F2F5F3F4F2F303105A9F70895E0914B
+:103830000E01F0910F018091D5018083E0910E017E
+:10384000F0910F0180819091D401892B8083E091C8
+:103850000E01F0910F0180819091D301892B80831B
+:103860008091C201882399F00E94AE1A81110E94B2
+:10387000FD1BE0910E01F0910F0180819091C2013A
+:10388000892B80830E94041C81110E94FD1B809162
+:103890000E0190910F010C94661040E0009739F0F2
+:1038A0009C0121503109822393234F5FF7CF842F4E
+:1038B0000895CF92DF92EF92FF920F931F936C01C6
+:1038C000EE24FF24C114D104E104F10421F46B01BE
+:1038D0007C0180E001C080E133272F2D1E2D0D2DAE
+:1038E000011511052105310519F0885F680179017D
+:1038F00097018601A4E03695279517950795AA9517
+:10390000D1F7011511052105310519F08C5F68010A
+:10391000790197018601F2E036952795179507956D
+:10392000FA95D1F7011511052105310519F08E5FC2
+:1039300068017901B701A601769567955795479576
+:10394000452B462B472B09F08F5F1F910F91FF905E
+:10395000EF90DF90CF9008958091EB01843021F1BA
+:103960001092D70120E488E190E00FB6F894A89572
+:10397000809360000FBE2093600080E00E946C097D
+:1039800083B7817F846083BF83B7816083BF78946E
+:10399000889583B78E7F83BF88E10FB6F8948093B4
+:1039A0006000109260000FBE089508950E943103D8
+:1039B0000E9444030E94D51C0E94380491E08111AA
+:1039C00001C090E0892F08950E9429150E945A1085
+:1039D0000C946C091F920F920FB60F9211248F93C3
+:1039E0009F93AF93BF938091D701811113C08091B2
+:1039F000D8019091D901A091DA01B091DB014196F3
+:103A0000A11DB11D8093D8019093D901A093DA0133
+:103A1000B093DB01BF91AF919F918F910F900FBE3B
+:103A20000F901F90189582E084BD93E095BD9AEFAA
+:103A300097BD80936E0008952FB7F8948091D801B8
+:103A40009091D901A091DA01B091DB012FBF0895C7
+:103A5000CF92DF92EF92FF920F931F932FB7F894BC
+:103A60004091D8015091D9016091DA017091DB0148
+:103A70002FBF6A017B01EE24FF248C0120E030E09F
+:103A8000C016D106E206F30610F441505109481B56
+:103A9000590BCA011F910F91FF90EF90DF90CF90CB
+:103AA00008951F920F920FB60F9211248F939F9338
+:103AB000AF93BF938091D8019091D901A091DA0181
+:103AC000B091DB010196A11DB11D8093D8019093A7
+:103AD000D901A093DA01B093DB01BF91AF919F911F
+:103AE0008F910F900FBE0F901F9018950E94600D40
+:103AF000F8942FEF87EA91E6215080409040E1F75B
+:103B000000C0000087E090EBDC018093F40190930B
+:103B1000F501A093F601B093F7012CE088E190E065
+:103B20000FB6F894A895809360000FBE20936000B4
+:103B3000FFCF0E94D11D811102C00E94B71D0E94BB
+:103B4000DC1D8093D6010E94E41D90E09093E60175
+:103B50008093E50187FB882780F980930D010E94FF
+:103B6000E01D682F70E080E090E00C9429196DEE64
+:103B70007EEF80E090E00E94832160E082E090E0B0
+:103B80000E94712160E083E090E00E94712160E07A
+:103B900084E090E00E94712160E085E090E00C9468
+:103BA000712180E090E00E946B2121E08D3E9E4FCC
+:103BB00009F020E0822F089582E090E00C946321C8
+:103BC00083E090E00C94632184E090E00C94632106
+:103BD000682F84E090E00C9471218091DE0180FFD9
+:103BE0000BC06091130185E0689FB00111247595A9
+:103BF0006795759567952AC081FF09C0609113018B
+:103C000085E0689FB0011124759567951FC082FFFC
+:103C100007C06091130185E0689FB001112416C0B0
+:103C20004091DF014423C9F060911201461788F7E3
+:103C30002091130185E0289F90011124429FC0012B
+:103C4000439F900D112470E00E943521603871056A
+:103C500040F46115710539F002C065E070E0862F0F
+:103C600008958FE7089581E008958091DE0180FF37
+:103C700008C06091110170E075956795759567951D
+:103C800021C081FF06C06091110170E075956795B4
+:103C900019C082FF04C06091110170E010C08091D2
+:103CA000DF018823C1F0609110018617A0F7909181
+:103CB0001101989FC001112470E00E9435216038E5
+:103CC000710528F46115710521F0862F08958FE79D
+:103CD000089581E0089561E070E0F4CF803F21F421
+:103CE0000E94ED1D819504C0813F29F40E94ED1DC5
+:103CF0008093E2010895823F21F40E94ED1D819599
+:103D000004C0833F29F40E94ED1D8093E1010895D2
+:103D1000893F19F40E94351E05C08A3F31F40E9484
+:103D2000351E81958093E30108958B3F21F40E9415
+:103D3000351E819504C08C3F29F40E94351E809366
+:103D4000E4010895843F21F48091E001816017C06F
+:103D5000853F21F48091E001826011C0863F21F40B
+:103D60008091E00184600BC0873F21F48091E001E5
+:103D7000886005C0883F31F48091E00180618093C4
+:103D8000E00108958D3F21F48091DE0181600BC038
+:103D90008E3F21F48091DE01826005C08F3F29F4BF
+:103DA0008091DE0184608093DE010895803F39F4C4
+:103DB0008091E20187FF6CC01092E20169C0813FEF
+:103DC00029F48091E2011816BCF362C09091E101E0
+:103DD000823F29F497FF5CC01092E10159C0833FF4
+:103DE00019F41916CCF354C0893F41F48091E301D2
+:103DF00018160CF04DC01092E3014AC08A3F29F416
+:103E00008091E30187FF44C0F6CF8B3F39F4809166
+:103E1000E40187FF3DC01092E4013AC08C3F29F4D1
+:103E20008091E4011816BCF333C0843F21F48091E3
+:103E3000E0018E7F17C0853F21F48091E0018D7FE6
+:103E400011C0863F21F48091E0018B7F0BC0873F3A
+:103E500021F48091E001877F05C0883F31F4809193
+:103E6000E0018F7E8093E00113C08D3F21F48091AB
+:103E7000DE018E7F0BC08E3F21F48091DE018D7FAD
+:103E800005C08F3F29F48091DE018B7F8093DE0196
+:103E90008091E10181110EC08091E20181110AC07F
+:103EA0008091E301811106C08091E401811102C07B
+:103EB0001092DF01089580EE91E00E9471100E943F
+:103EC0001C1D9093DD018093DC0108951F93CF9317
+:103ED000DF938091DC019091DD010E94281D4091CB
+:103EE000DF01442321F02091140130E006C020912D
+:103EF00015015AE0259F900111248217930708F4B9
+:103F000082C08091E1011091E201D091E301C09162
+:103F1000E401811107C0111105C0D11103C0CC23E8
+:103F200009F471C04F3F19F04F5F4093DF0118163D
+:103F300024F40E94ED1D8093E1018091E10187FF4F
+:103F400005C00E94ED1D81958093E101111624F4B6
+:103F50000E94ED1D8093E2018091E20187FF05C080
+:103F60000E94ED1D81958093E2016091E10166233D
+:103F700039F11091E201112319F1772767FD70954E
+:103F8000872F972F0E94462023E333E343E35FE329
+:103F90000E94AA200E9413206093E101612F7727DD
+:103FA00067FD7095872F972F0E94462023E333E308
+:103FB00043E35FE30E94AA200E9413206093E20182
+:103FC0001D1624F40E94351E8093E3018091E301C5
+:103FD00087FF05C00E94351E81958093E3011C1662
+:103FE00024F40E94351E8093E4018091E40187FF50
+:103FF00005C00E94351E81958093E401DF91CF9129
+:104000001F910C945B1FDF91CF911F910895E0EEFB
+:10401000F1E085E0DF011D928A95E9F71092DF015A
+:104020001092DE01089504D06894B1118DC00895F6
+:1040300070D088F09F5790F0B92F9927B751A0F012
+:10404000D1F0660F771F881F991F1AF0BA95C9F72C
+:1040500012C0B13081F077D0B1E0089574C0672FFD
+:10406000782F8827B85F39F0B93FCCF386957795DC
+:104070006795B395D9F73EF49095809570956195C5
+:104080007F4F8F4F9F4F0895E89409C097FB3EF4F0
+:1040900090958095709561957F4F8F4F9F4F992395
+:1040A000A9F0F92F96E9BB279395F6958795779513
+:1040B0006795B795F111F8CFFAF4BB0F11F460FFD3
+:1040C0001BC06F5F7F4F8F4F9F4F16C0882311F02B
+:1040D00096E911C0772321F09EE8872F762F05C03F
+:1040E000662371F096E8862F70E060E02AF09A95DA
+:1040F000660F771F881FDAF7880F9695879597F9CF
+:10410000089557FD9058440F551F59F05F3F71F0C7
+:104110004795880F97FB991F61F09F3F79F087952E
+:104120000895121613061406551FF2CF4695F1DFB7
+:1041300008C0161617061806991FF1CF8695710547
+:10414000610508940895E894BB2766277727CB017B
+:1041500097F908950BD078C069D028F06ED018F088
+:10416000952309F05AC05FC01124EECFCADFA0F337
+:10417000959FD1F3950F50E0551F629FF001729FFC
+:10418000BB27F00DB11D639FAA27F00DB11DAA1F1B
+:10419000649F6627B00DA11D661F829F2227B00D68
+:1041A000A11D621F739FB00DA11D621F839FA00DF3
+:1041B000611D221F749F3327A00D611D231F849F43
+:1041C000600D211D822F762F6A2F11249F5750409A
+:1041D0008AF0E1F088234AF0EE0FFF1FBB1F661F35
+:1041E000771F881F91505040A9F79E3F510570F0EE
+:1041F00014C0AACF5F3FECF3983EDCF38695779529
+:104200006795B795F795E7959F5FC1F7FE2B880FE8
+:10421000911D9695879597F9089597F99F6780E87E
+:1042200070E060E008959FEF80EC089500240A9408
+:104230001616170618060906089500240A94121681
+:104240001306140605060895092E0394000C11F4B4
+:10425000882352F0BB0F40F4BF2B11F460FF04C061
+:104260006F5F7F4F8F4F9F4F089597FB072E16F478
+:10427000009407D077FD09D00E944F2107FC05D09C
+:104280003EF4909581959F4F0895709561957F4F6D
+:104290000895EE0FFF1F0590F491E02D0994AA1BDD
+:1042A000BB1B51E107C0AA1FBB1FA617B70710F021
+:1042B000A61BB70B881F991F5A95A9F78095909553
+:1042C000BC01CD010895F999FECF92BD81BDF89A48
+:1042D000992780B50895A8E1B0E042E050E00C9441
+:1042E0008B21262FF999FECF92BD81BDF89A0197B7
+:1042F00000B4021639F01FBA20BD0FB6F894FA9A2E
+:10430000F99A0FBE08950196272F0E9472210C94EE
+:104310007121DC01CB01FC01F999FECF06C0F2BD91
+:10432000E1BDF89A319600B40D9241505040B8F773
+:064330000895F894FFCF90
+:1043360002206E09FB09D809A40971090101C3010C
+:1043460028080A03140A404D363979042C04F6036A
+:0A435600BD035003690382039B03BB
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/erez_experimental/config.h b/keyboards/ergodox_ez/keymaps/erez_experimental/config.h new file mode 100644 index 000000000..e5d7fe188 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/erez_experimental/config.h @@ -0,0 +1,12 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +#define ONESHOT_TAP_TOGGLE 2 +#define ONESHOT_TIMEOUT 300 + +#undef LEADER_TIMEOUT +#define LEADER_TIMEOUT 300 + +#endif diff --git a/keyboards/ergodox_ez/keymaps/erez_experimental/keymap.c b/keyboards/ergodox_ez/keymaps/erez_experimental/keymap.c new file mode 100644 index 000000000..04ad2a816 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/erez_experimental/keymap.c @@ -0,0 +1,199 @@ +#include <keymap_extras/keymap_colemak.h> +#include "ergodox_ez.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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 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 | Alt/J| K | L |; / L2| LGui/' | + * |--------+------+------+------+------+------| 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|Leader|------| |------| Tab/L1 |Enter | + * | | | 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_LSPO, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_LBRC), + LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT, + ALT_T(KC_APP), KC_LGUI, + KC_HOME, + KC_SPC,KC_LEAD,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,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, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, LT(SYMB,KC_MINS), + KC_LALT, CTL_T(KC_ESC), + KC_PGUP, + KC_PGDN,LT(SYMB, KC_TAB), KC_ENT + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | 1 | 2 | 3 | 4 | 5 |------| |------| & | _ | - | ; | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | 6 | 7 | 8 | 9 | 0 | | | | | | @ | = | % | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | |NxtTab|PrvTab| | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// 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_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, + // 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 +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | PgUp | Home | End | PgDn | |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | |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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_PGUP, KC_HOME, KC_END, KC_PGDN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_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) + [2] = ACTION_MACRO_TAP(0), // Eric Tang's Famous Macro! + [3] = ACTION_MACRO_TAP(1) // Eric Tang's Famous Macro! +}; + +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) { + +}; + +LEADER_EXTERNS(); + +// 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; + } + + LEADER_DICTIONARY() { + leading = false; + leader_end(); + + SEQ_ONE_KEY(KC_W) { + register_code(KC_LALT); + register_code(KC_F4); + unregister_code(KC_F4); + unregister_code(KC_LALT); + } + SEQ_ONE_KEY(KC_O) { + register_code(KC_LCTL); + register_code(KC_LSFT); + register_code(KC_O); + unregister_code(KC_O); + unregister_code(KC_LSFT); + unregister_code(KC_LCTL); + } + } +} + diff --git a/keyboards/ergodox_ez/keymaps/erez_experimental/readme.md b/keyboards/ergodox_ez/keymaps/erez_experimental/readme.md new file mode 100644 index 000000000..66acfa187 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/erez_experimental/readme.md @@ -0,0 +1,51 @@ +# Erez's experimental layout + +This is my personal layout which I use to test out ideas which may or may not make it onto the default layout we ship with. It's based off the default layout, with various tweaks. + +Changelog: + +## May 24, 2016: + +* Implements Leader key example + * Leader, W sends Alt-F4 + * Leader, O sends Ctrl-shift-o (a shortcut I use in FrontApp) + +## May 8, 2016: + +* Makes bottom-right key send minus/underscore when tapped, L1 temporary toggle when held +* Tweaked the positions of the numbers on the symbol layer. Basically, 12345 are now directly under their number-row counterparts in layer 0. You can imagine pulling the number row down to the home row. And 67890 are directly under 12345 - so it's a matter of just adding 5 and going to the next row (1+5 = 6, 2+5 = 7 and so on). +* Tweaks media/nav layer + * Removes mouse control, as I don't use it + * Makes left home row keys PgUp, Home, End, PgDn + +## Apr 29, 2016: + +* Tweaks the Hyper and Meh key to send brackets when tapped +* Turns bottom-right key into a minus/underscore (easy to reach with the right pinky) + +## Apr 25, 2016: + +* Made it so that the right and left Shift keys send opening and closing parens ( ) when tapped + +## Feb 11, 2016: + +* Updated ASCII legend for thumb clusters +* Made it so outer left-hand thumb key is L1 momentary toggle +* Added % and @ to L1 +* Swapped positions for _ and - on L1 + +## Feb 5, 2016: + +* A whole new design for the symbol layer. Specifically: + * Put the minus, underscore, and semicolon right in the homerow for the right hand + * Parens are in better places for me + * The arrow keys now send Ctrl-PgUp and Ctrl-PgDn, for switching browser tabs with the arrows when in symbol layer + * Tab (right-hand outer thumb key) now does double duty to toggle symbol layer when held down + * Backspace (left-hand outer thumb key) now just toggles symbol layer (I wasn't using it as a backspace) + + +## Jan 19, 2016: + +* Made J into dual-action key (Alt when held down), to make Alt-tab more ergonomic. +* Made ' into dual-action key (Win/Cmd when held down). + diff --git a/keyboards/ergodox_ez/keymaps/german-kinergo/compiled.hex b/keyboards/ergodox_ez/keymaps/german-kinergo/compiled.hex new file mode 100644 index 000000000..1ecea9fa4 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/german-kinergo/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4
+:100010000C94BE020C94BE020C94BE020C94BE0260
+:100020000C94BE020C94BE020C94640D0C94360E1B
+:100030000C94BE020C94BE020C94BE020C94BE0240
+:100040000C94BE020C9440220C94BE020C94BE028E
+:100050000C94BE020C94D31B0C94BE020C94BE02F2
+:100060000C94BE020C94BE020C94BE020C94BE0210
+:100070000C94BE020C94BE020C94BE020C94BE0200
+:100080000C94BE020C94BE020C94BE020C94BE02F0
+:100090000C94BE020C94BE020C94BE020C94BE02E0
+:1000A0000C94BE020C94BE020C94BE02A30EC50EAC
+:1000B000B30FC50EB30F0A0F2D0FB30F820F950F9D
+:1000C0006412641293129312C912E9121A141A14C8
+:1000D000F4121A14A413A4130B141A141A141414DB
+:1000E000B113B113B113B113B113B113B113B113F0
+:1000F000B113B113B113B113B113B113B113B113E0
+:10010000C313D013D713DE13E8130000F0A12900A6
+:100110002B003900E100E30000001E001400040081
+:100120001D0035004D001F001A0016001B00640062
+:100130004C00200008000700060050002A002100A3
+:100140001500090019004F004A00220017000A009C
+:1001500005000000E0002E000152000002520000E5
+:10016000E20046000152000002520000E6002300B7
+:100170001C000B0011000000E400240018000D001A
+:10018000100051004B0025000C000E0036005200FC
+:100190002C00260012000F00370031002800270035
+:1001A00013003300380030004E002D002F00344281
+:1001B000E500E7000000010001000100010001006E
+:1001C00000003A001E0231002202010001003B0043
+:1001D000141421023500010001003C002414250202
+:1001E0002514010001003D002714260226140100F9
+:1001F00001003E0064142E023014000001000100D2
+:1002000001000000010000000100010001000000E9
+:100210000100000001003F005200510023020000D5
+:1002200001004000240021001E00010001004100E7
+:10023000250022001F003700010042002600230095
+:100240002000270001004300300230002D14270257
+:100250000100440045000100010001000000010010
+:10026000010001000100010000003A000100F70058
+:10027000FB00010001003B00F400F200FA00FD0069
+:10028000F5003C00F000F100F900FE00F4003D0034
+:10029000F500F300FC00FF0001003E000100F80043
+:1002A000F600000001000100010000000100000054
+:1002B00001000100010000000100000001003F00FA
+:1002C00001000100B400000001004000AA00AC00E1
+:1002D000B600010001004100A800AD00B50001001A
+:1002E000B7004200A900AE00B9000100B60043000B
+:1002F0000100AB00B700010001004400450001000F
+:1003000001000100000016034500720067006F0045
+:1003100044006F007800200045005A0000001603DA
+:100320004500720067006F0044006F0078002000F5
+:1003300045005A0000000403090409026D0004018D
+:1003400000A0FA09040000010301010009211101C4
+:100350000001223F000705810308000A090401008B
+:100360000103010200092111010001224D000705CE
+:10037000820308000A0904020001030000000921A9
+:10038000110100012236000705830308000A090451
+:1003900003000103000000092111010001223900BE
+:1003A000070584031000011201100100000008ED90
+:1003B000FE071301000102000105010906A1010564
+:1003C0000719E029E7150025019508750181020547
+:1003D000081901290595057501910295017503918B
+:1003E0000105071900297715002501957875018108
+:1003F00002C005010980A101850216010026B7008F
+:100400001A01002AB700751095018100C0050C097A
+:1004100001A1018503160100269C021A01002A9CF5
+:1004200002751095018100C005010902A1010901B1
+:10043000A10005091901290515002501950575017A
+:10044000810295017503810105010930093115818A
+:10045000257F95027508810609381581257F95014C
+:1004600075088106050C0A38021581257F950175EE
+:10047000088106C0C005010906A101050719E02988
+:10048000E715002501950875018102950175088120
+:100490000105081901290595057501910295017558
+:1004A0000391010507190029FF150025FF95067521
+:1004B000088100C0000000000000000000000001F2
+:1004C0000204060A0F17202C3A4A5D71879DB3C7B4
+:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF
+:1004E0003A2C20170F0A0604020100000000000049
+:1004F0000000000011241FBECFEFDAE0DEBFCDBF49
+:1005000004B603FE24C08091FB019091FC01A091F0
+:10051000FD01B091FE018730904BA740B04BB9F47C
+:100520001092FB011092FC011092FD011092FE014D
+:1005300014BE84B7877F84BF88E10FB6F894809398
+:100540006000109260000FBEE0E0FFE3099511E04B
+:10055000A0E0B1E0EEE0F8E402C005900D92A43313
+:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0
+:10057000B107E1F70E94A80A0C9405240C9400002E
+:100580001092B9008AE08093B800089594EA90939D
+:10059000BC009091BC0097FFFCCF9091B900987F70
+:1005A000983021F0903111F081E008958093BB00E4
+:1005B00084E88093BC008091BC0087FFFCCF8091D1
+:1005C000B900887F883111F0803471F780E0089598
+:1005D00084E98093BC008091BC0084FDFCCF089529
+:1005E0008093BB0084E88093BC008091BC0087FFAF
+:1005F000FCCF9091B900987F81E0983209F480E0B7
+:10060000089584E88093BC008091BC0087FFFCCFF4
+:100610008091BB00089580910101811115C080E493
+:100620000E94C6028093010181110CC082E10E94E8
+:10063000F00280930101811105C08FEF0E94F0024A
+:10064000809301010E94E80284B1807F84B985B162
+:10065000807F85B98AB1837F8AB98BB1837F8BB95B
+:100660003E98469808950E94C604809301010E9416
+:100670000B0380B38C7080BB81B3836F81BBA5E318
+:10068000B1E0E3E4F1E08EE08E0F11921D928E1343
+:10069000FCCF0C94B004BF92CF92DF92EF92FF9206
+:1006A0000F931F93CF93DF9380910101882379F0FB
+:1006B000809134018F5F80933401811108C00E94C2
+:1006C000C60480930101811102C00E94580405E311
+:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407
+:1006E000E394F12CC730D10500F58091010181110F
+:1006F00064C080E40E94C60280930101811112C08F
+:1007000082E10E94F0028093010181110BC0C701B8
+:100710000C2E01C0880F0A94EAF780950E94F0021F
+:10072000809301010E94E80248C0CA30A1F028F479
+:10073000C83059F0C93061F005C0CC3089F070F094
+:10074000CD3089F0209A289810C0219A29980DC0A0
+:10075000229A2A980AC0239A2B9807C0529A01C05D
+:10076000539A5B9802C03E9A469890EA9A95F1F7A0
+:100770009FB1799902C082E001C080E091709D250F
+:10078000982B7C9902C084E001C080E0892B7D9980
+:1007900002C038E001C030E0832B7E9902C020E126
+:1007A00001C020E0822B9FB19095991F9927991F36
+:1007B0009295990F907E892B0FC080910101811134
+:1007C00049C080E40E94C60280930101882379F128
+:1007D000B12C0E94E8028B2DF8019081981719F036
+:1007E0008083C09200010E940B0321960F5F1F4F70
+:1007F000CE30D10509F076CF80910001882361F1D8
+:10080000815080930001882339F08FE99FE00197A0
+:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F
+:10082000CF01825F91919D938E13FCCF15C083E120
+:100830000E94F002809301018111CACF81E40E94DD
+:10084000C602809301018111C3CF0E940103B82E1B
+:10085000B094BFCF80E0C0CF0E94560481E0DF910A
+:10086000CF911F910F91FF90EF90DF90CF90BF90AD
+:100870000895E82FF0E0ED5BFE4F80810895089524
+:100880000F931F93CF93DF93C3E4D1E010E00C2FBD
+:10089000025F899190E00E94F91A180F0C13F9CFAA
+:1008A000812FDF91CF911F910F9108950C94260510
+:1008B00056985E9825982D9826982E9827982F98C8
+:1008C0008FEF90E0909389008093880090938B0045
+:1008D00080938A0090938D0080938C00259A2D9AA6
+:1008E0002FEF80E792E0215080409040E1F700C078
+:1008F0000000269A2E9A2FEF80E792E02150804048
+:100900009040E1F700C00000279A2F9A2FEF80E770
+:1009100092E0215080409040E1F700C0000025980F
+:100920002D982FEF80E792E0215080409040E1F732
+:1009300000C0000026982E982FEF80E792E021500B
+:1009400080409040E1F700C0000027982F9856980B
+:100950005E9825982D9826982E9827982F98089578
+:1009600089EA8093800089E08093810024982C9804
+:100970003F988AB18F748AB96E98479A8BB1806B11
+:100980008BB9769A0E9458040C94250580E28093D6
+:1009900001018091510181110EC00E94C00281E0CD
+:1009A000809351012FEF83ED90E3215080409040E0
+:1009B000E1F700C0000080E40E94C60280930101BC
+:1009C00081112EC00E94F00280930101811128C084
+:1009D0000E94F00280930101811122C08FE30E94E6
+:1009E000F0028093010181111BC00E94E80280E4A3
+:1009F0000E94C60280930101811112C08CE00E9406
+:100A0000F0028093010181110BC00E94F0028093DB
+:100A10000101811105C08FE30E94F0028093010162
+:100A20000E94E80280910101089561110BC0FC0150
+:100A30008281882321F085EE0E94081103C085EE93
+:100A40000E94D01180E090E0089508956091BD016A
+:100A50007091BE018091BF019091C0010E94051B61
+:100A600056985E9825982D9826982E9827982F9816
+:100A7000813029F0823031F4269A2E9A0895259AF1
+:100A80002D9A089556985E98089581E0089581E022
+:100A900008950C94470508950F931F93CF93DF9308
+:100AA0008C01FC01C081D181CE010E947E19BE0162
+:100AB0000E94F505EC01B8010E944905882309F45C
+:100AC0008DC0F8018281882309F44AC080915D01BC
+:100AD00081111FC0C431F0E5DF0709F051C00E9449
+:100AE0004B0581E080935D010E949D1B90935C010A
+:100AF00080935B011092540110925601109255019F
+:100B0000109258011092570110925A0110925901F7
+:100B100065C080915B0190915C010E94A91B883C9B
+:100B2000910570F480915401E82FF0E0EE0FFF1F63
+:100B3000EB5AFE4FD183C0838F5F809354014EC028
+:100B4000C43880E5D80721F0C538D04501F13AC056
+:100B5000F8018281882341F01092520182E01EC088
+:100B6000C438E0E5DE0759F580915201811106C0D5
+:100B700086E20E94081186E20E94D01182E01CC029
+:100B8000C438F0E5DF0741F3C538D045D9F4F801A2
+:100B90008281882331F01092530180E20E941F125B
+:100BA0001DC080915301811106C087E20E94081187
+:100BB00087E20E94D01180E20E9426120FC0C53841
+:100BC000D04529F381E08093520180935301C801FD
+:100BD000DF91CF911F910F910C94450580E0DF913B
+:100BE000CF911F910F910895089596E0799FF0019C
+:100BF000112494E5899FE00DF11D1124E60FF11DEC
+:100C0000EE0FFF1FE25FFE4F859194910895880FCC
+:100C1000991FFC01E657F040859194910895880F43
+:100C2000991FFC01E65FFE4F8591949108950F9303
+:100C30001F93CF93DF93EC01811520E3920750F5CA
+:100C4000C11580E2D80708F0C3C0CB3BD10590F4B2
+:100C5000C83AD10508F06AC0C53AD10508F05BC0B2
+:100C6000C430D10508F0D0C1219709F0CAC101E014
+:100C700010E00AC2CF3FD10511F008F0C5C1C03F56
+:100C8000D10508F0A2C0CE01805E9109089708F452
+:100C9000BBC1B7C1C13090E5D90709F4A2C020F5A6
+:100CA000C0318FE4D80770F4C11590E4D90708F07B
+:100CB00094C0C11521E3D20708F0A3C1DD278E013E
+:100CC000106CE2C1C115D04509F09BC10E9485148A
+:100CD0008FEF94E32CE0815090402040E1F700C07A
+:100CE00000000E94F81BD0C1C11597E5D90758F440
+:100CF000C03121E5D20708F01CC1C43180E5D80716
+:100D000008F475C07EC1CE0190578115904108F05E
+:100D100078C1DF7073C1C53AD10509F477C1C63A0D
+:100D2000D10509F076C102E810E4AEC1C83AD10598
+:100D300009F472C1C93AD10509F471C1CA3AD105A1
+:100D400009F470C1CB3AD10509F46FC1CC3AD10591
+:100D500009F46EC1CD3AD10509F46DC1C03BD1058E
+:100D600009F46CC1CE3AD10509F46BC1CF3AD10573
+:100D700009F46AC1C13BD10509F469C1C23BD1057F
+:100D800009F468C1C33BD10509F467C1C43BD1056F
+:100D900009F466C1C53BD10509F465C1C63BD1055F
+:100DA00009F464C1C73BD10509F463C1C83BD1054F
+:100DB00009F462C1C93BD10509F461C1CA3BD1053F
+:100DC00009F460C100E014E45FC18E0110655CC1EC
+:100DD000CE019F700E940F0658C1DF708E01106A0D
+:100DE00053C18091DA0181608093DA014DC10E9484
+:100DF0009D1D811102C00E94831D0E94BA1D90E0BA
+:100E00009093FB018093FA01C23080E5D80721F46A
+:100E10008091FA01816086C0C43090E5D90721F441
+:100E20008091FA0182607EC0C63020E5D20721F4AD
+:100E30008091FA01846076C0C83080E5D80719F443
+:100E40008091FA0127C0CA3090E5D90721F480913A
+:100E5000FA01806167C0CC3020E5D20721F480918F
+:100E6000FA0180625FC0CE3080E5D80721F480911E
+:100E7000FA01806457C0C03190E5D90721F4809110
+:100E8000FA0180684FC0C23120E5D20729F4809171
+:100E9000FA018460886046C0C33080E5D80721F439
+:100EA0008091FA018E7F3EC0C53090E5D90721F4CC
+:100EB0008091FA018D7F36C0C73020E5D20721F43A
+:100EC0008091FA018B7F2EC0C93080E5D80719F4D4
+:100ED0008091FA0126C0CB3090E5D90721F48091AA
+:100EE000FA018F7E1FC0CD3020E5D20721F480911A
+:100EF000FA018F7D17C0CF3080E5D80721F48091AB
+:100F0000FA018F7B0FC0C13190E5D90721F48091A0
+:100F1000FA018F7707C0C331D04531F48091FA01CF
+:100F20008B7F877F8093FA018091FA010E94BE1D1A
+:100F3000ABC08D2F99278F70992781309105D9F4F7
+:100F40009E012370332702C0880F991F2A95E2F76C
+:100F50009C688E0144E0000F111F4A95E1F70027BD
+:100F60001370802B912B53E0CC0FDD1F5A95E1F7C6
+:100F7000C076DD272FC08230910531F4DC2FCC27DD
+:100F80008E01016F106A80C08330910569F4CE0133
+:100F90008370992701E010E002C0000F111F8A95AD
+:100FA000E2F7C8019C680FC084309105B9F4CE0106
+:100FB0008370992701E010E002C0000F111F8A958D
+:100FC000E2F7C8019A6823E0CC0FDD1F2A95E1F70C
+:100FD000C07ED7708C010C2B1D2B56C0853091051F
+:100FE00031F4DC2FCC278E01046F106A4DC00697B8
+:100FF00009F04AC0CF71DD27DC2FCC278E011062AB
+:1010000043C000E010E040C08E013EC001E810E4A3
+:101010003BC003E810E438C002EE14E435C009EE2A
+:1010200014E432C00AEE14E42FC005EB14E42CC023
+:1010300006EB14E429C007EB14E426C00CEC14E41E
+:1010400023C00DEC14E420C003E815E41DC00AE839
+:1010500015E41AC002E915E417C004E915E414C048
+:1010600001E216E411C003E216E40EC004E216E445
+:101070000BC005E216E408C006E216E405C007E26C
+:1010800016E402C00AE216E4C801DF91CF911F9175
+:101090000F91089596E0799FF001112494E5899FBE
+:1010A000E00DF11D1124E60FF11DEE0FFF1FE25FB1
+:1010B000FE4F85919491803E9105E0F4803C91052E
+:1010C00058F58133910509F46FC048F489329105D0
+:1010D00009F463C08A32910509F46DC072C0893386
+:1010E0009105E9F082389105D1F08533910509F435
+:1010F0004DC067C0833E910581F138F4803E910573
+:10110000B9F0823E9105D9F05CC0863E910561F14F
+:10111000873E9105A1F155C00E94070608952091D0
+:10112000FA0120FD02C021FF4CC080EE90E049C0D2
+:101130008091FA0180FFF9CF89E390E042C080916D
+:10114000FA0182FF0EC08091FA0184FF03C080E0A3
+:1011500090E037C083EE90E034C08091FA0182FFC6
+:10116000F2CF82EE90E02DC08091FA0183FF0BC098
+:101170008091FA0184FDEBCF87EE90E022C0809150
+:10118000FA0183FFF5CF86EE90E01BC08091FA0153
+:1011900085FF07C089E290E014C08091FA0185FFC5
+:1011A000F9CF85E390E00DC08091FA0186FF07C07A
+:1011B0008AE290E006C08091FA0186FFF9CF81E3D0
+:1011C00090E00E941706089508950C94E408809119
+:1011D0006E010895CF93DF9300D01F92CDB7DEB795
+:1011E0009C018091F101843019F593E099833B8350
+:1011F0002A839093E9008FEF9091E800815095FD4C
+:1012000006C095ED9A95F1F700008111F5CF809118
+:10121000E80085FF0DC040E050E063E070E0CE01E3
+:1012200001960E94540B8091E8008E778093E8002D
+:101230000F900F900F90DF91CF910895CF93DF9390
+:1012400000D01F92CDB7DEB72091F101243021F5F7
+:1012500022E029839B838A8383E08093E9008FEFD8
+:101260009091E800815095FD06C095ED9A95F1F7B3
+:1012700000008111F5CF8091E80085FF0DC040E0AE
+:1012800050E063E070E0CE0101960E94540B809123
+:10129000E8008E778093E8000F900F900F90DF9119
+:1012A000CF9108952091F1012430F1F422E02093B0
+:1012B000E9002FEF3091E800215035FD06C035EDF3
+:1012C0003A95F1F700002111F5CF2091E80025FFB4
+:1012D0000BC040E050E065E070E00E94540B80914C
+:1012E000E8008E778093E8000895CF93DF93EC01B8
+:1012F0009091F101943009F046C080910C0188234F
+:10130000D9F080910D018823B9F09093E9008FEF17
+:101310009091E800815095FD06C095E19A95F1F70E
+:1013200000008111F5CF8091E80085FF2CC040E0DE
+:1013300050E060E170E017C081E08093E9008FEF3A
+:101340009091E800815095FD06C095ED9A95F1F7D2
+:1013500000008111F5CF8091E80085FF14C040E0C6
+:1013600050E068E070E0CE010E94540B8091E800EC
+:101370008E778093E80080E1FE01AEE5B1E0019058
+:101380000D928A95E1F7DF91CF9108958091F00158
+:10139000811109C00E94E90C0E94460D8091E20073
+:1013A00084608093E20008951092F00108950895FA
+:1013B0000C942D220E948E1B0E9433220E94EC0F5F
+:1013C0000C94E50842E061EC81E00E94630C42E08D
+:1013D00061EC82E00E94630C42E061EC83E00E94D9
+:1013E000630C42E161EC84E00C94630C8091F301A6
+:1013F000833009F455C030F4813071F0823009F443
+:101400008EC008958A3009F47AC08B3009F460C028
+:10141000893009F09CC020C08091F201813A09F026
+:1014200096C08091E800877F8093E8008091F60164
+:101430009091F701892B21F460E18EE591E003C0E2
+:1014400060E080E090E070E00E949F0B8091E800F7
+:101450008B778093E80008958091F201813209F042
+:1014600076C08091F6019091F701009719F00397EB
+:1014700009F06DC08091E800877F8093E80080913B
+:10148000E80082FD05C08091F1018111F8CF5FC0B5
+:101490008091F10080936E018091E8008B7753C0BA
+:1014A0008091F201813A09F052C08091F601909149
+:1014B000F701892B09F04BC08091E800877F80936A
+:1014C000E8008091E80080FFFCCF80910C0136C0DD
+:1014D0008091F2018132D9F58091F6019091F70166
+:1014E000892BA9F58091E800877F8093E8000E940E
+:1014F000980C8091F40180930C010C9485148091D8
+:10150000F201813221F58091E800877F8093E80025
+:101510000E94980C8091F50180936F01089580914D
+:10152000F201813AA1F48091E800877F8093E8007E
+:101530008091E80080FFFCCF80916F018093F100E3
+:101540008091E8008E778093E8000C94980C0895C1
+:1015500084B7877F84BF88E10FB6F89480936000DA
+:10156000109260000FBE90E080E80FB6F894809370
+:101570006100909361000FBE0E943B100E94E90C35
+:101580000E94460D8091E20084608093E20078948E
+:101590000E94CC0F0E943D1082E091E00E94E70F74
+:1015A0000E941B228091F101853069F40E94551B35
+:1015B0008091EF018823B1F30E94801B882391F36F
+:1015C0000E943E0BEFCF0E944310ECCF292F332710
+:1015D00023303105C9F064F42130310581F0223027
+:1015E000310509F043C08DE690E02AE333E042C0C4
+:1015F00021323105F1F02232310541F137C082E16B
+:1016000090E027EA33E036C099278130910541F018
+:101610008230910541F0892B49F5E6E3F3E005C0FE
+:10162000EEE1F3E002C0E6E0F3E0849190E09F0198
+:1016300021C06430D8F4E62FF0E0EE0FFF1FEE5D1E
+:10164000FE4F2081318189E090E014C0643070F455
+:1016500070E0FB01EE0FFF1FE65EFE4F208131813F
+:10166000FB01EA5EFE4F808190E004C080E090E0E4
+:1016700020E030E0FA0131832083089580E189BDC4
+:1016800082E189BD09B400FEFDCF8091D8008F7D35
+:101690008093D8008091E00082608093E000809188
+:1016A000E00081FDFCCF0895CF92DF92EF92FF9290
+:1016B0000F931F93CF93DF93EC018B016A010E947C
+:1016C000B70C811133C0C114D10439F0F601808107
+:1016D0009181081B190BC80FD91FE12CF12C0115A2
+:1016E000110519F18091E80085FD16C08091E80090
+:1016F0008E778093E800C114D10449F0F60180810F
+:101700009181E80EF91EF182E08285E00FC00E940F
+:10171000B70C882321F30AC089918093F10001500E
+:101720001109FFEFEF1AFF0ADACF80E0DF91CF91C6
+:101730001F910F91FF90EF90DF90CF90089520912F
+:10174000F8013091F9012617370748F06115710546
+:1017500039F42091E8002E772093E80001C0B90108
+:1017600040E061157105A9F12091F101222309F4EE
+:1017700043C0253009F442C02091E80023FD40C059
+:101780002091E80022FD32C02091E80020FFE9CF3F
+:101790004091F3002091F20030E0342BFC01CF01A6
+:1017A0006115710559F02830310540F4819180931D
+:1017B000F100615071092F5F3F4FF1CF41E02830B8
+:1017C000310509F040E02091E8002E772093E800F1
+:1017D000C8CF4111C9CF0AC08091F101882361F0BF
+:1017E000853061F08091E80083FD0AC08091E800B7
+:1017F00082FFF2CF80E0089582E0089583E00895AB
+:1018000081E008952091F8013091F90126173707FA
+:1018100048F06115710539F42091E8002E77209386
+:10182000E80001C0B901FC0120E06115710591F1EA
+:101830008091F101882309F440C0853009F43FC04C
+:101840008091E80083FD3DC08091E80082FD2FC0BB
+:101850008091E80080FFE9CF2091F3008091F200B1
+:1018600090E0922B6115710559F08830910540F494
+:1018700024912093F1003196615071090196F2CFC5
+:1018800021E0089709F020E08091E8008E778093AE
+:10189000E800CBCF2111CCCF0AC08091F101882381
+:1018A00061F0853061F08091E80083FD0AC080918D
+:1018B000E80082FFF2CF80E0089582E0089583E09F
+:1018C000089581E00895982F973058F59093E90096
+:1018D000981739F07091EC002091ED005091F000D4
+:1018E00003C0242F762F50E021FF19C03091EB0068
+:1018F0003E7F3093EB003091ED003D7F3093ED0063
+:101900003091EB0031603093EB007093EC0020934A
+:10191000ED005093F0002091EE0027FF07C09F5F7D
+:10192000D3CF8F708093E90081E0089580E008951F
+:101930008091F20187FF11C08091E80082FD05C00F
+:101940008091F1018111F8CF11C08091E8008B776F
+:101950000BC08091F101882349F08091E80080FF5D
+:10196000F8CF8091E8008E778093E8000895209169
+:10197000E4003091E50095E64091EC00842F817001
+:1019800040FF22C08091E80080FD1CC08091F101E1
+:10199000882391F0853091F08091EB0085FD10C097
+:1019A0004091E4005091E5004217530729F39A0152
+:1019B000915011F784E0089582E0089583E008953E
+:1019C00081E0089580E008954091E80042FFDECF75
+:1019D00008950E94570D0E945F0DE0EEF0E08081B7
+:1019E00081608083E8EDF0E080818F77808319BC8F
+:1019F000A7EDB0E08C918E7F8C9380818F7E808369
+:101A00001092F00108950F931F93CF93DF930E94DC
+:101A1000570D0E945F0DC8EDD0E088818F778883D5
+:101A200088818068888388818F7D888319BC109223
+:101A3000F1011092ED011092EF011092EE0100EE13
+:101A400010E0F80180818B7F8083888181608883AA
+:101A500042E060E080E00E94630CE1EEF0E0808113
+:101A60008E7F8083E2EEF0E08081816080838081E0
+:101A700088608083F80180818E7F80838881806187
+:101A80008883DF91CF911F910F910895E8EDF0E0E9
+:101A900080818F7E8083E7EDF0E0808181608083AC
+:101AA00084E082BF81E08093F0010C94030DE8EDA7
+:101AB000F0E080818E7F80831092E2000895109282
+:101AC000DA001092E10008951F920F920FB60F9264
+:101AD00011242F933F934F935F936F937F938F9333
+:101AE0009F93AF93BF93EF93FF938091E10082FFA9
+:101AF0000BC08091E20082FF07C08091E1008B7FE4
+:101B00008093E1000E94CB0F8091DA0080FF1FC01C
+:101B10008091D80080FF1BC08091DA008E7F809377
+:101B2000DA008091D90080FF0DC080E189BD82E19B
+:101B300089BD09B400FEFDCF81E08093F1010E94D0
+:101B4000C60905C019BC1092F1010E94D409809108
+:101B5000E10080FF19C08091E20080FF15C08091F4
+:101B6000E2008E7F8093E2008091E20080618093AA
+:101B7000E2008091D80080628093D80019BC85E093
+:101B80008093F1010E94D8098091E10084FF30C068
+:101B90008091E20084FF2CC080E189BD82E189BD93
+:101BA00009B400FEFDCF8091D8008F7D8093D800CE
+:101BB0008091E1008F7E8093E1008091E2008F7E32
+:101BC0008093E2008091E20081608093E200809146
+:101BD000ED01882311F084E007C08091E30087FDC8
+:101BE00002C081E001C083E08093F1010E94DA0924
+:101BF0008091E10083FF29C08091E20083FF25C02E
+:101C00008091E100877F8093E10082E08093F10181
+:101C10001092ED018091E1008E7F8093E100809130
+:101C2000E2008E7F8093E2008091E20080618093E9
+:101C3000E20042E060E080E00E94630C8091F000EE
+:101C400088608093F0000E94D709FF91EF91BF91C7
+:101C5000AF919F918F917F916F915F914F913F9144
+:101C60002F910F900FBE0F901F9018951F920F92FB
+:101C70000FB60F9211242F933F934F935F936F935F
+:101C80007F938F939F93AF93BF93CF93DF93EF9304
+:101C9000FF93C091E900CF708091EC00D82FD170F4
+:101CA00080FDD0E81092E9008091F000877F80935A
+:101CB000F00078940E947A0E1092E9008091F00072
+:101CC00088608093F000CD2BCF70C093E900FF9126
+:101CD000EF91DF91CF91BF91AF919F918F917F91C4
+:101CE0006F915F914F913F912F910F900FBE0F9089
+:101CF0001F9018951F93CF93DF93CDB7DEB7AA97A8
+:101D00000FB6F894DEBF0FBECDBFE2EFF1E088E082
+:101D10008E0F9091F10091938E13FBCF0E94F609E4
+:101D20008091E80083FF1FC18091F2019091F3013F
+:101D3000492F50E04A30510508F015C1FA01EA5A1E
+:101D4000FF4F0C94B523803881F0823809F00BC125
+:101D50008091F6018F708093E9008091EB0085FB04
+:101D6000882780F91092E90006C08091EE019091D9
+:101D7000EF01911182609091E800977F9093E800C5
+:101D80008093F1001092F100C8C0282F2D7F09F038
+:101D9000EAC0882319F0823061F0E5C08091F40137
+:101DA000813009F0E0C0933009F080E08093EF01CA
+:101DB0002BC08091F401811127C08091F6018F70B2
+:101DC00009F4D1C08093E9002091EB0020FF1CC0F2
+:101DD000933021F48091EB00806214C09091EB006D
+:101DE00090619093EB0021E030E0A90102C0440F24
+:101DF000551F8A95E2F74093EA001092EA0080911D
+:101E0000EB0088608093EB001092E9008091E8007D
+:101E1000877F86C08111A7C01091F4011F77809140
+:101E2000E3008078812B8093E3008091E800877F36
+:101E30008093E8000E94980C8091E80080FFFCCF1E
+:101E40008091E30080688093E300111102C082E07A
+:101E500001C083E08093F10186C08058823008F091
+:101E600082C08091F4019091F5018C3D53E095077B
+:101E700079F583E08A838AE289834FB7F894DE019B
+:101E8000139620E03EE051E2E32FF0E0509357003C
+:101E9000E49120FF03C0E295EF703F5FEF708E2F5B
+:101EA00090E0EA3010F0C79601C0C0968D939D93E4
+:101EB0002F5F243149F74FBF8091E800877F8093DF
+:101EC000E8006AE270E0CE0101960E949F0B14C008
+:101ED000AE014F5F5F4F6091F6010E94E60ABC01C0
+:101EE000009709F440C09091E800977F9093E80034
+:101EF00089819A810E94020C8091E8008B778093FF
+:101F0000E80031C0803879F58091E800877F8093C0
+:101F1000E8008091ED018093F1008091E8008E77D8
+:101F20008093E8000E94980C1EC081111CC0909103
+:101F3000F4019230C0F48091E800877F8093E8003C
+:101F40009093ED010E94980C8091ED01811106C0E3
+:101F50008091E30087FD02C081E001C084E08093AE
+:101F6000F1010E94E2098091E80083FF0AC080919C
+:101F7000E800877F8093E8008091EB008062809387
+:101F8000EB00AA960FB6F894DEBF0FBECDBFDF916F
+:101F9000CF911F9108950895CF938091F1018823E7
+:101FA000A1F0C091E900CF709091EC00892F817071
+:101FB00090FD80E8C82B1092E9008091E80083FD35
+:101FC0000E947A0ECF70C093E900CF91089590934C
+:101FD0007501809374010895E0917401F091750189
+:101FE000309721F00190F081E02D099480E0089570
+:101FF000E0917401F0917501309721F00280F38136
+:10200000E02D09940895E0917401F09175013097E5
+:1020100021F00480F581E02D09940895209172014A
+:10202000309173018217930771F09093730180933D
+:102030007201E0917401F0917501309721F00680F2
+:10204000F781E02D0994089520917001309171017C
+:102050008217930771F09093710180937001E09162
+:102060007401F0917501309721F00084F185E02D25
+:102070000994089508950C943A100E94941B0E94AC
+:1020800033030C94561C9F92AF92BF92CF92DF9273
+:10209000EF92FF920F931F93CF93DF9300D000D066
+:1020A00000D0CDB7DEB70E944B030DE010E0AA24AC
+:1020B000A394B12C902E802F0E94390498012958A6
+:1020C0003E4F6901F901F080F826A1F40150110991
+:1020D00088F78FEF89838A831B820E949D1B816012
+:1020E000782F9D838C8349815A816B818D810E94D9
+:1020F000DA102FC09091DA0191FF04C08E830E9404
+:102100003F048E8125E030E0A501022E01C0440F7E
+:102110000A94EAF7E42E4F21C1F029839A828E2196
+:1021200091E009F490E09B830E949D1B8160782FD1
+:102130009D838C8349815A816B818D810E94DA1045
+:10214000F6018081E826E08204C021503109E0F6E2
+:10215000BDCF0E943D1F109176010E94EC0F181711
+:10216000B9F00E94EC0F8093760126960FB6F89492
+:10217000DEBF0FBECDBFDF91CF911F910F91FF90BA
+:10218000EF90DF90CF90BF90AF909F900C94E508B8
+:1021900026960FB6F894DEBF0FBECDBFDF91CF916C
+:1021A0001F910F91FF90EF90DF90CF90BF90AF9075
+:1021B0009F900895CF93DF93CDB7DEB72B970FB6DF
+:1021C000F894DEBF0FBECDBF4F83588769877A87EB
+:1021D0008B87DE01119686E0FD0111928A95E9F761
+:1021E00085E0FE01379601900D928A95E1F74981CD
+:1021F0005A816B817C818D819E810E9423172B9651
+:102200000FB6F894DEBF0FBECDBFDF91CF9108951A
+:10221000CF93882309F4C2C0C82F823859F40E9492
+:10222000EC0F81FDBBC089E30E94FD190E94CA1A10
+:1022300089E30CC0833879F40E94EC0F80FDAEC0B6
+:1022400083E50E94FD190E94CA1A83E50E943F1A85
+:10225000CF910C94CA1A843859F40E94EC0F82FD75
+:102260009DC087E40E94FD190E94CA1A87E4EECF40
+:102270008CEF8C0F813A48F48C2F0E9480218111C1
+:102280008DC08C2F0E94FD19E3CF80E28C0F883027
+:1022900048F4C77081E001C0880FCA95EAF70E9430
+:1022A000831AD6CF8BE58C0F833078F4C53A29F0AA
+:1022B000C63A31F083E890E005C081E890E002C0C2
+:1022C00082E890E0CF910C940E1088E58C0F83315A
+:1022D00008F064C0C83A39F1C93A41F1CA3A49F143
+:1022E000CB3A51F1CC3A59F1CD3A61F1C03B69F1A9
+:1022F000CE3A71F1CF3A79F1C13B81F1C23B89F11C
+:10230000C33B91F1C43B99F1C53BA1F1C63BA9F197
+:10231000C73BB1F1C83BB9F1C93BC1F1CA3BC9F1F7
+:1023200080E090E038C082EE90E035C089EE90E029
+:1023300032C08AEE90E02FC085EB90E02CC086EB97
+:1023400090E029C087EB90E026C08CEC90E023C0A1
+:102350008DEC90E020C083E891E01DC08AE891E018
+:102360001AC082E991E017C084E991E014C081E2CB
+:1023700092E011C083E292E00EC084E292E00BC0D2
+:1023800085E292E008C086E292E005C087E292E032
+:1023900002C08AE292E0CF910C942410CF9108956C
+:1023A000882309F44BC0823859F40E94EC0F81FF56
+:1023B00045C089E30E94FD190E94CA1A89E30CC036
+:1023C000833871F40E94EC0F80FF38C083E50E94CF
+:1023D000FD190E94CA1A83E50E943F1A0C94CA1A7A
+:1023E000843859F40E94EC0F82FF28C087E40E94D1
+:1023F000FD190E94CA1A87E4EFCF9CEF980F913A1B
+:1024000058F390E2980F983050F4877091E001C033
+:10241000990F8A95EAF7892F0E94891ADFCF9BE5E9
+:10242000980F933020F480E090E00C940E10885ABE
+:10243000833120F480E090E00C94241008958823E8
+:1024400021F00E94831A0C94CA1A0895882321F05F
+:102450000E94891A0C94CA1A08957F928F929F92B3
+:10246000AF92BF92CF92DF92EF92FF920F931F93A2
+:10247000CF93DF931F92CDB7DEB77C01C62E772EA8
+:10248000FC01058102950F70128111110E94A01AA2
+:102490000E94F619882379F0112369F080E28C0DEF
+:1024A000883048F082E00E94DF190E94F61991E01E
+:1024B000D82ED92601C0D12CE72DE295EF70F0E09F
+:1024C000E05AFF4F0C94B523872D807F072D0F70A6
+:1024D000882311F00295007F112389F0002309F46D
+:1024E00090C180E28C0D883020F4802F0E94831AE6
+:1024F00003C0802F0E94931A0E94CA1A82C18C2D99
+:102500000E94D011002309F495C180E28C0D88301F
+:1025100020F4802F0E94891A03C0802F0E94991AEC
+:102520000E94CA1A87C1972D907F872D8F70903295
+:1025300011F08295807FCC2021F0F1E0CF16B1F030
+:102540001EC0112349F0002309F414C1013009F021
+:1025500011C10E94B31A6EC1002319F0013009F4B1
+:1025600069C189830E94B61A89810AC1112321F0A9
+:10257000023008F05FC1FEC001115CC101C111232E
+:1025800021F0002309F4F6C03CC1002309F4F8C08F
+:102590003EC1872D86958695837090E0009719F04F
+:1025A000019761F047C1112321F08C2D972D937075
+:1025B00002C080E090E00E940E103CC1112321F087
+:1025C0008C2D972D937002C080E090E00E94241023
+:1025D00031C18C2D112319F00E94451E02C00E94AA
+:1025E000AD1E0E94321F26C1872D837009F052C094
+:1025F000111120C18C2D829586958770880F880FC8
+:102600009C2D9F70892E912CA12CB12C082E04C0DA
+:10261000880C991CAA1CBB1C0A94D2F7C4FE14C0D7
+:102620000FE010E020E030E0B901A80104C0440F41
+:10263000551F661F771F8A95D2F7CB01BA016095A7
+:1026400070958095909503C060E070E0CB01272DD8
+:1026500026952695237030E02230310569F023302D
+:10266000310589F0682979298A299B29213031058A
+:1026700071F00E946B18DEC0682979298A299B298C
+:102680000E948718D7C00E946B18C501B4010E9430
+:102690004F18D0C0112319F0872D817001C0869585
+:1026A000882309F4C7C08C2D829586958770880F82
+:1026B000880F9C2D9F70892E912CA12CB12C082E57
+:1026C00004C0880C991CAA1CBB1C0A94D2F7C4FE37
+:1026D00014C00FE010E020E030E0B901A80104C010
+:1026E000440F551F661F771F8A95D2F7CB01BA0199
+:1026F000609570958095909503C060E070E0CB0187
+:10270000272D269526952370422F50E04230510503
+:1027100069F04330510589F0682979298A299B2974
+:102720004130510571F00E94451984C0682979290A
+:102730008A299B290E9461197DC00E944519C50103
+:10274000B4010E94291976C08C2D90E0FC01E05E56
+:10275000F109E531F10508F050C0E059FF4F0C9444
+:10276000B5230C2D0F70872D8F71112331F00E942E
+:10277000C218802F0E941F125DC00E94E318802F94
+:102780000E94261257C0112339F0011153C0872D22
+:102790008F710E9408194EC0023008F04BC0F7CF6D
+:1027A000112339F0872D8F710E94C21843C0112365
+:1027B000C9F3872D8F710E94E3183CC0112329F0C3
+:1027C000872D8F710E94AD1835C00E94A31832C0AA
+:1027D000112351F0172D1F71812F0E94C21863E041
+:1027E000812F0E94D61926C081E00E94DF19023095
+:1027F00008F182E00E94DF191DC0112331F000238F
+:1028000089F28C2D0E94081115C0002391F28C2DA5
+:102810000E94D0110FC0472D4F706C2DC7010E9430
+:1028200015050E94C71706C0472D4F706C2DC701B4
+:102830000E94F405DD20F9F00E94D21980FD1BC032
+:10284000F70112820E94CC190E94C218C7010E948F
+:102850004A140E94CC190F90DF91CF911F910F91D4
+:10286000FF90EF90DF90CF90BF90AF909F908F90B0
+:102870007F900C94E3180F90DF91CF911F910F91EF
+:10288000FF90EF90DF90CF90BF90AF909F908F9090
+:102890007F9008950F931F93CF93DF93EC0188816E
+:1028A00099812B813C81232BB9F09F3F11F48F3FFD
+:1028B00099F0CE010E944C05882371F068817981DE
+:1028C0008A810E94C8198C010E947D190E944418B7
+:1028D000B801CE010E942D12DF91CF911F910F916F
+:1028E00008950E94A01A0E94B01A0E94751A0E94B0
+:1028F000CA1A0E94E31F0E94321F80E090E00E94EB
+:102900000E1080E090E00C9424100E94901A0C9419
+:1029100071140E94BD19292F22952F7030E02C30A0
+:1029200031054CF42A3031056CF422503109223043
+:102930003105A8F407C02C30310569F02F3031057E
+:1029400051F00DC0803F69F018F4803E40F409C09A
+:10295000843F29F406C093FB882780F9089580E01E
+:10296000089581E00895CF93DF9300D000D01F92A7
+:10297000CDB7DEB70F900F900F900F900F90DF91B3
+:10298000CF910895CF93DF9300D000D000D0CDB782
+:10299000DEB726960FB6F894DEBF0FBECDBFDF912F
+:1029A000CF9108951F93CF93DF93C091850116E0D7
+:1029B00080918601C81799F0D0E01C9FF0011D9FFF
+:1029C000F00D1124E957FE4F4081518162817381DE
+:1029D000848195810E94C2142196C770E9CFDF914E
+:1029E000CF911F9108954091B7015091B801609126
+:1029F000B9017091BA018091BB019091BC010C9416
+:102A0000C2148091BC0182958F7009F054C08091EE
+:102A1000B901882309F44FC080918501A0918601F6
+:102A20006091B7017091B8014091BA015091BB011A
+:102A3000B6E08A1709F43FC090E041155105C1F195
+:102A40007F3F11F46F3FA1F1B89FF001B99FF00DE6
+:102A50001124E957FE4F218172132AC0208162138D
+:102A600027C02281211124C02381348124173507F6
+:102A700010F421503109241B350B283C3105C0F4DA
+:102A80002091BC012F7020612093BC0126E0289F7B
+:102A9000F001299FF00D1124E457FE4F80818F70C3
+:102AA0008061808387EB91E00E944A140C94D214D9
+:102AB00001968770BECF0895CF92DF92EF92FF927A
+:102AC0000F931F93CF93DF93CDB7DEB762970FB607
+:102AD000F894DEBF0FBECDBF8C0185E0F801DE01AA
+:102AE0001D9601900D928A95E1F7D8014C911196AF
+:102AF0005C91119712966C9112971396CD90DC9081
+:102B000014973091B7017091B8018091BA019091FA
+:102B1000BB01009709F46BC17F3F19F43F3F09F4F3
+:102B200066C1E090B901EE2009F4C0C02091BC015B
+:102B3000C816D90628F0F601E81BF90BCF0104C02E
+:102B4000809590958C0D9D1DFF24F394883C9105F4
+:102B500078F0F12C207F09F0C6C07C2DD98AC88A74
+:102B600089890E94B31487EB91E00E944A14B1C096
+:102B7000822F807F09F046C0751314C0341312C031
+:102B8000611110C02F7020612093BC010E94F314CA
+:102B900087EB91E00E944A148091BC01D801159600
+:102BA0008C932EC0CD2819F15F3F11F44F3FF9F0FF
+:102BB000F62E61111CC0809185012091860136E0BE
+:102BC000821709F45AC090E0389FF001399FF00D48
+:102BD0001124E957FE4F7181571306C070814713C6
+:102BE00003C07281711103C001968770E9CFF62E80
+:102BF000662309F418C18091BC0181608093BC01F7
+:102C0000F12C11C1751308C0341306C0611104C042
+:102C10008091BC01D801C3C04D875E878D859E859C
+:102C20006A8B0E9489146A898823E1F16623D1F1B5
+:102C30002091BC01822F82958F7090E0029774F0F2
+:102C40008091B7019091B80198878F831986DB86B0
+:102C5000CA862C87CE0107960E944A1486E0F801A6
+:102C6000A7EBB1E001900D928A95E1F70E94011562
+:102C70000E94F314FF24F394D6C04D875E878D85A0
+:102C80009E850E94BD19292F22952F7030E0223099
+:102C900031050CF0BCC09F7009F0B6C0805E883072
+:102CA00008F4C1C0C8010E944A14E4CFC816D9066E
+:102CB00008F453C0F601E81BF90BCF01883C9105DD
+:102CC00008F450C0F12C7C2DD98AC88A89890E94C9
+:102CD000B314E7EBF1E086E0DF011D928A95E9F796
+:102CE0000E94F314A0C0751314C0341312C06111F4
+:102CF00010C08091BC01F8018583C8010E944A146C
+:102D000086E0E7EBF1E0DF011D928A95E9F7FE2C02
+:102D10008AC04D875E878D859E856A8B0E94891447
+:102D20006A89882309F4BECF662309F4BBCF2091BA
+:102D3000BC01822F82958F7090E002970CF48ECFA9
+:102D40008091B7019091B8019A8389831B82DD82BB
+:102D5000CC822E83CE0101967FCF809590958C0DED
+:102D60009D1DACCFF62E662309F49CCF75132EC0A3
+:102D700034132CC02091BC0120FD1FC0822F8295EE
+:102D80008F70D9F0D80115962C9315978F3049F094
+:102D90008F5F982F9295907F822F8F70892B159639
+:102DA0008C93C8010E944A1486E0F801A7EBB1E0B9
+:102DB00001900D928A95E1F793CF86E0F801A7EB99
+:102DC000B1E001900D928A95E1F72DC04D875E87A5
+:102DD0008D859E850E948914811140CF8091BC0110
+:102DE00081608093BC01C8010E944A141CC0662304
+:102DF00009F458CF4D875E878D859E850E94891482
+:102E0000882309F44FCF2ACF811148CF0CC024303A
+:102E100031050CF047CF9F7009F440CFF801958140
+:102E2000907F09F03BCF8F2D62960FB6F894DEBFEE
+:102E30000FBECDBFDF91CF911F910F91FF90EF900B
+:102E4000DF90CF9008951F93CF93DF93CDB7DEB778
+:102E50002C970FB6F894DEBF0FBECDBF4F835887B7
+:102E600069877A878B879C87CE0107960E945C15BD
+:102E7000882369F08F8198852A853B85232BF1F182
+:102E80009F3F09F063C08F3F09F060C037C086E004
+:102E9000FE013796DE01119601900D928A95E1F7B9
+:102EA0006F817885EA85FB85309741F17F3F11F48A
+:102EB0006F3F21F12091860130E0C90101968770B2
+:102EC00099274091850150E08417950709F447C080
+:102ED00069837A83FD83EC8396E0929FD001939F70
+:102EE000B00D1124A957BE4FFE01319601900D92ED
+:102EF0009A95E1F7809386010E94D21416E08091A2
+:102F00008501909186018917C1F1189FC001112494
+:102F100089579E4F0E945C15882379F1E0918501C5
+:102F20001E9FF0011124E957FE4F408151816281BB
+:102F30007381848195810E94C2148091850190E003
+:102F400001968770992780938501D9CF4F81588545
+:102F500069857A858B859C850E94C214CFCF0E949B
+:102F600085141092860110928501E7EBF1E086E06E
+:102F7000DF011D928A95E9F7C1CF2C960FB6F89420
+:102F8000DEBF0FBECDBFDF91CF911F910895EF92AD
+:102F9000FF920F931F93CF93DF938C01009709F457
+:102FA0006CC0F12CEE24E394E8012196F8018491A1
+:102FB000843740F4843008F051C0813081F0823091
+:102FC00019F15BC0853709F444C0A8F19CE7980F5C
+:102FD000903708F052C08F770E94D01141C00E5F29
+:102FE0001F4FFE01C49180E28C0F883048F4C770F7
+:102FF0008E2D01C0880FCA95EAF70E94A31A14C04B
+:103000008C2F0E9408112DC00E5F1F4FFE01C4912E
+:1030100080E28C0F883058F4C7708E2D01C0880F65
+:10302000CA95EAF70E94A91A0E94CA1A1AC08C2FE0
+:103030000E94D01116C00E5F1F4FFE01C491CC2319
+:1030400081F08FE99FE00197F1F700C00000C150C7
+:10305000F6CF0E5F1F4FFE01F49003C00E940811CF
+:103060008E018F2D882309F49FCFEFE9FFE0319780
+:10307000F1F700C000008150F5CFDF91CF911F9193
+:103080000F91FF90EF90089508956093C1017093A0
+:10309000C2018093C3019093C4010C9471140F93E7
+:1030A0001F930091C1011091C2012091C301309181
+:1030B000C401DC01CB01802B912BA22BB32B80937D
+:1030C000C1019093C201A093C301B093C4011F91A9
+:1030D0000F910C9471140F931F930091C1011091E3
+:1030E000C2012091C3013091C401DC01CB018023D6
+:1030F0009123A223B3238093C1019093C201A09393
+:10310000C301B093C4011F910F910C9471140F93DC
+:103110001F930091C1011091C2012091C301309110
+:10312000C401DC01CB0180279127A227B32780931C
+:10313000C1019093C201A093C301B093C4011F9138
+:103140000F910C9471141092BD011092BE01109257
+:10315000BF011092C0010C94711441E050E060E096
+:1031600070E004C0440F551F661F771F8A95D2F781
+:103170004093BD015093BE016093BF017093C001A5
+:103180000C94711441E050E060E070E004C0440F22
+:10319000551F661F771F8A95D2F78091BD019091C8
+:1031A000BE01A091BF01B091C001482B592B6A2BE1
+:1031B0007B2B4093BD015093BE016093BF01709380
+:1031C000C0010C94711441E050E060E070E004C074
+:1031D000440F551F661F771F8A95D2F7409550956B
+:1031E000609570958091BD019091BE01A091BF0145
+:1031F000B091C001482359236A237B234093BD012A
+:103200005093BE016093BF017093C0010C94711480
+:1032100041E050E060E070E004C0440F551F661FBD
+:10322000771F8A95D2F78091BD019091BE01A09140
+:10323000BF01B091C001482759276A277B274093D7
+:10324000BD015093BE016093BF017093C0010C9407
+:1032500071140F931F930091BD011091BE01209135
+:10326000BF013091C001DC01CB01802B912BA22B3F
+:10327000B32B8093BD019093BE01A093BF01B09387
+:10328000C0011F910F910C9471140F931F93009123
+:10329000BD011091BE012091BF013091C001DC0140
+:1032A000CB0180239123A223B3238093BD0190936C
+:1032B000BE01A093BF01B093C0011F910F910C9468
+:1032C00071140F931F930091BD011091BE012091C5
+:1032D000BF013091C001DC01CB0180279127A227DB
+:1032E000B3278093BD019093BE01A093BF01B0931B
+:1032F000C0011F910F910C9471140895CF92DF9229
+:10330000EF92FF920F931F93CF93DF938C01C090A6
+:10331000C101D090C201E090C301F090C40180913E
+:10332000BD019091BE01A091BF01B091C001C82A1A
+:10333000D92AEA2AFB2ACFE1D0E0D701C6010C2E18
+:1033400004C0B695A795979587950A94D2F780FF04
+:1033500006C0B8018C2F0E944A08019721F42197DA
+:1033600060F780E001C08C2FDF91CF911F910F910A
+:10337000FF90EF90DF90CF900895CF93DF93EC0113
+:103380000E947E19BE010E944A08DF91CF910895E4
+:10339000CB010E94BD1908958091C5018595859541
+:1033A000859508958091C5018770089598E0899F5B
+:1033B00090011124262B2093C5010C94C218209152
+:1033C000C501809582238093C501982F977069F479
+:1033D00030E0482F552747FD50952417350729F031
+:1033E0008595859585950C94E31808959091C50170
+:1033F000977081E009F480E0089590910C01992381
+:1034000021F090910D01911109C020910E01309190
+:103410000F01F90132969FEF40E01FC0982F96955B
+:10342000969596959F3050F5E0910E01F0910F0121
+:10343000E90FF11D877021E030E0A90102C0440FBF
+:10344000551F8A95E2F7CA019181892B81830895DE
+:103450009F3F39F04F5F4E3041F051915813F8CFF4
+:103460000DC05111F7CF942FF5CF9F3F39F0F901DF
+:10347000E90FF11D97FDFA958283089508959091C3
+:103480000C01992321F090910D01911109C0209117
+:103490000E0130910F01F9013296205F3F4F1FC09E
+:1034A000982F9695969596959F30F0F4E0910E01A1
+:1034B000F0910F01E90FF11D877021E030E0A901C3
+:1034C00002C0440F551F8A95E2F7CA018095918189
+:1034D0008923818308953196E217F30729F09081BB
+:1034E0009813F9CF1082F7CF089581E090E0E09132
+:1034F0000E01F0910F01E80FF91F10820196803143
+:103500009105A9F708959091D901892B8093D9014C
+:10351000089580959091D90189238093D9010895C8
+:103520001092D90108959091D801892B8093D801E8
+:10353000089580959091D80189238093D8010895AA
+:103540001092D80108959091D701892B8093D701CB
+:10355000089580959091D70189238093D70108958C
+:103560001092D70108958093C60108951092C60164
+:10357000089580910E0190910F01FC0131969C01FC
+:10358000205F3F4F80E0919191118F5FE217F30729
+:10359000D1F70895E0910E01F0910F018091D901CA
+:1035A0008083E0910E01F0910F0190818091D8010C
+:1035B000892B8083E0910E01F0910F019081809121
+:1035C000D701892B80838091C601882361F0E09127
+:1035D0000E01F0910F019081892B80830E94B91A0E
+:1035E00081111092C60180910E0190910F010C94EF
+:1035F000F80F20E0009739F0AC01415051098423C5
+:1036000095232F5FF7CF822F0895CF92DF92EF920D
+:10361000FF926C01EE24FF24C114D104E104F104F3
+:1036200021F0C701B60120E101C020E0C72ED82E4D
+:10363000E92EFF24C114D104E104F10419F0285F3C
+:10364000C701B6016B017C0154E0F694E794D7946E
+:10365000C7945A95D1F7C114D104E104F10419F0CB
+:103660002C5FC701B6016B017C0142E0F694E79440
+:10367000D794C7944A95D1F7C114D104E104F10459
+:1036800019F02E5FC701B601DC01CB01B695A795F5
+:1036900097958795892B8A2B8B2B09F02F5F822F8B
+:1036A000FF90EF90DF90CF9008958091F1018430EA
+:1036B00021F11092DB0120E488E190E00FB6F8944C
+:1036C000A895809360000FBE2093600080E00E9468
+:1036D000E50883B7817F846083BF83B7816083BF40
+:1036E0007894889583B78E7F83BF88E10FB6F8946E
+:1036F00080936000109260000FBE089508950895B1
+:103700000E947E1B0E944B030E947F1B0E9440046C
+:1037100091E0811101C090E0892F08950E948514E5
+:103720000E94EC0F0C94E50882E084BD93E095BD07
+:103730009AEF97BD80936E0008952FB7F89480910B
+:10374000DC019091DD01A091DE01B091DF012FBF7E
+:103750000895CF92DF92EF92FF920F931F932FB7AE
+:10376000F8944091DC015091DD016091DE0170918F
+:10377000DF012FBF6A017B01EE24FF248C0120E0D2
+:1037800030E0C016D106E206F30610F441505109AC
+:103790009A01281B390BC9011F910F91FF90EF90DF
+:1037A000DF90CF9008951F920F920FB60F921124C1
+:1037B0008F939F93AF93BF938091DC019091DD0134
+:1037C000A091DE01B091DF010196A11DB11D809392
+:1037D000DC019093DD01A093DE01B093DF01BF9186
+:1037E000AF919F918F910F900FBE0F901F901895E2
+:1037F0000E94E90CF8942FEF87EA91E6215080406F
+:103800009040E1F700C0000087E090EBDC0180937E
+:10381000FB019093FC01A093FD01B093FE019CE09D
+:1038200088E10FB6F894A895809360000FBE90933E
+:103830006000FFCFEF92FF920F931F93CF93DF9320
+:10384000D82FCDE08C2F0E94390405E010E0E82E3F
+:10385000F12CC701002E02C0959587950A94E2F7D6
+:1038600080FF09C0602F7C2F80E00E94F505D813EF
+:1038700002C081E006C00150110958F7C15010F78D
+:1038800080E0DF91CF911F910F91FF90EF9008950D
+:10389000CF93C82F8CE20E941A1C882321F08C2F12
+:1038A000CF910C941A1C80E0CF910895CF930E9481
+:1038B0009D1D811102C00E94831DC5E6C15049F0C3
+:1038C0000E944B038FE39CE90197F1F700C00000D1
+:1038D000F5CF89E20E94481C811113C18AE20E943F
+:1038E000481C81110E94831D85E00E94481C8111A3
+:1038F0000E94F81B0E94A81D8093DA0187E00E94B5
+:10390000481C8823A9F18BE10E94481C882351F0B0
+:103910008091DA0181FB222720F991E0922790FB28
+:1039200081F90EC08EE00E94481C882361F08091CE
+:10393000DA0182FB222720F991E0922790FB82F99D
+:103940008093DA0115C080E10E94481C9091DA0151
+:10395000882341F093FB222720F981E0822780FB16
+:1039600093F904C0892F809580FB90F99093DA0138
+:103970008091DA010E94AC1D0E94BA1D8093FA0169
+:1039800080EE0E94481C882341F08091FA01982F14
+:10399000909590FB80F98093FA0189E30E94481C7E
+:1039A000882359F08091FA0181FB222720F991E0C8
+:1039B000922790FB81F98093FA0182EE0E94481CC5
+:1039C000882359F08091FA0182FB222720F991E0A7
+:1039D000922790FB82F98093FA0186EE0E94481CA0
+:1039E000882359F08091FA0183FB222720F991E086
+:1039F000922790FB83F98093FA0183EE0E94481C82
+:103A0000882359F08091FA0184FB222720F991E064
+:103A1000922790FB84F98093FA0185E30E94481C69
+:103A2000882359F08091FA0185FB222720F991E043
+:103A3000922790FB85F98093FA0181E30E94481C4C
+:103A4000882359F08091FA0186FB222720F991E022
+:103A5000922790FB86F98093FA0181E10E94481C2D
+:103A6000882359F08091FA0187FB222720F991E001
+:103A7000922790FB87F98093FA018091FA010E94C6
+:103A8000BE1D8091FA0187FB882780F980930D0184
+:103A900087E20E94481CC82F8EE10E94481C8111B9
+:103AA000C2608FE10E94481C8111C46080E20E94C4
+:103AB000481C8111C86081E20E94481C8111C061CC
+:103AC00082E20E94481C8111C06283E20E94481C6D
+:103AD0008111C06484E20E94481C882311F0C068F0
+:103AE00002C0CC2329F08C2F0E94B51D6C2F03C07F
+:103AF0000E94B11D682F70E080E090E0CF910C949F
+:103B00004518CF9108956DEE7EEF80E090E00E9421
+:103B1000EF2360E082E090E00E94DD2360E083E03C
+:103B200090E00E94DD2360E084E090E00E94DD23CD
+:103B300060E085E090E00C94DD2380E090E00E945E
+:103B4000D72321E08D3E9E4F09F020E0822F08957B
+:103B500082E090E00C94CF23682F82E090E00C94F8
+:103B6000DD2383E090E00C94CF23682F83E090E086
+:103B70000C94DD2384E090E00C94CF23682F84E044
+:103B800090E00C94DD238091E20180FF0BC06091F6
+:103B9000130185E0689FB0011124759567957595AF
+:103BA00067952BC081FF09C06091130185E0689F74
+:103BB000B00111247595679520C082FF07C0609100
+:103BC000130185E0689FB001112417C09091E301B3
+:103BD0009923D1F060911201961788F72091130173
+:103BE00085E0289F90011124929FA001939F500D82
+:103BF000112470E0CA010E94A1236038710540F4CD
+:103C00006115710539F002C065E070E0862F0895F6
+:103C10008FE7089581E008958091E20180FF08C058
+:103C20006091110170E0759567957595679521C054
+:103C300081FF06C06091110170E07595679519C00C
+:103C400082FF04C06091110170E010C09091E30107
+:103C50009923C1F0609110019617A0F7809111018E
+:103C6000899FC001112470E00E94A1236038710572
+:103C700028F46115710521F0862F08958FE70895C6
+:103C800081E0089561E070E0F4CF803F21F40E946C
+:103C9000C31D819504C0813F29F40E94C31D8093F8
+:103CA000E6010895823F21F40E94C31D819504C05E
+:103CB000833F29F40E94C31D8093E5010895893F45
+:103CC00019F40E940C1E05C08A3F31F40E940C1E9C
+:103CD00081958093E70108958B3F21F40E940C1E8B
+:103CE000819504C08C3F29F40E940C1E8093E8014A
+:103CF0000895843F21F48091E401816017C0853FDD
+:103D000021F48091E401826011C0863F21F480910A
+:103D1000E40184600BC0873F21F48091E401886056
+:103D200005C0883F31F48091E40180618093E40113
+:103D300008958D3F21F48091E20181600BC08E3F98
+:103D400021F48091E201826005C08F3F29F48091C7
+:103D5000E20184608093E2010895803F39F480910C
+:103D6000E60187FF6CC01092E60169C0813F29F42B
+:103D70008091E6011816BCF362C09091E501823F84
+:103D800029F497FF5CC01092E50159C0833F19F4F4
+:103D90001916CCF354C0893F41F48091E7011816FD
+:103DA0000CF04DC01092E7014AC08A3F29F480917F
+:103DB000E70187FF44C0F6CF8B3F39F48091E801DB
+:103DC00087FF3DC01092E8013AC08C3F29F48091F2
+:103DD000E8011816BCF333C0843F21F48091E4015C
+:103DE0008E7F17C0853F21F48091E4018D7F11C043
+:103DF000863F21F48091E4018B7F0BC0873F21F443
+:103E00008091E401877F05C0883F31F48091E4010F
+:103E10008F7E8093E40113C08D3F21F48091E201F5
+:103E20008E7F0BC08E3F21F48091E2018D7F05C013
+:103E30008F3F29F48091E2018B7F8093E201809192
+:103E4000E50181110EC08091E60181110AC08091C7
+:103E5000E701811106C08091E801811102C0109232
+:103E6000E301089584EE91E00E9403100E949D1BDF
+:103E70009093E1018093E00108951F93CF93DF9326
+:103E80008091E0019091E1010E94A91BAC01909109
+:103E9000E301992321F02091140130E006C0209124
+:103EA00015018AE0289F900111244217530708F456
+:103EB00086C08091E501C091E601D091E7011091A3
+:103EC000E801811107C0C11176C0D11174C0111170
+:103ED00072C075C09F3F19F09F5F9093E301181661
+:103EE00024F40E94C31D8093E5018091E50187FFC2
+:103EF00005C00E94C31D81958093E5011C1624F422
+:103F00000E94C31D8093E6018091E60187FF05C0F2
+:103F10000E94C31D81958093E6016091E5016623AF
+:103F200039F1C091E601CC2319F1772767FD70952F
+:103F3000872F972F0E94B22223E333E343E35FE30B
+:103F40000E9416230E947F226093E5016C2F772741
+:103F500067FD7095872F972F0E94B22223E333E3EA
+:103F600043E35FE30E9416230E947F226093E601F1
+:103F70001D1624F40E940C1E8093E7018091E70136
+:103F800087FF05C00E940C1E81958093E7011116E2
+:103F900024F40E940C1E8093E8018091E80187FFC1
+:103FA00005C00E940C1E81958093E801DF91CF919E
+:103FB0001F910C94321F9F3F09F08ECF96CFDF9157
+:103FC000CF911F910895E4EEF1E085E0DF011D92AD
+:103FD0008A95E9F71092E3011092E2010895833087
+:103FE00081F128F4813059F08230D1F00895853084
+:103FF00009F449C0B8F1863009F456C0089580919B
+:104000001501262F30E0280F311D2F3F310524F4F4
+:10401000680F6093150108958FEF8093150108953F
+:1040200080911401262F30E0280F311D2F3F3105DC
+:1040300024F4680F6093140108958FEF80931401A6
+:10404000089580911301262F30E0280F311D2F3F56
+:10405000310524F4680F6093130108958FEF809366
+:104060001301089580911201262F30E0280F311D91
+:104070002F3F310524F4680F6093120108958FEFEC
+:1040800080931201089580911101262F30E0280FAE
+:10409000311D2F3F310524F4680F609311010895FD
+:1040A0008FEF80931101089580911001262F30E049
+:1040B000280F311D2F3F310524F4680F6093100144
+:1040C00008958FEF809310010895833011F128F443
+:1040D000813049F0823091F00895853081F120F1EE
+:1040E0008630C1F1089580911501681720F4861B70
+:1040F000809315010895109215010895809114017F
+:10410000681720F4861B80931401089510921401FF
+:10411000089580911301681720F4861B8093130182
+:10412000089510921301089580911201681720F4E8
+:10413000861B8093120108951092120108958091B8
+:104140001101681720F4861B8093110108951092C5
+:104150001101089580911001681720F4861B809347
+:10416000100108951092100108950F931F938D313F
+:1041700009F46BC008F03FC08E3009F47FC0C0F472
+:10418000873009F469C068F4863009F0B1C08091C5
+:10419000DA01817F8E7F8093DA0181E08093EA01EA
+:1041A000A8C0883009F4A2C08B3009F49FC0A0C019
+:1041B000863109F49BC078F4803109F472C08131F2
+:1041C00009F096C00E94851490910D0181E0892725
+:1041D00080930D018BC0893109F488C08B3109F0BF
+:1041E00087C08091DA0181FB222720F991E0922794
+:1041F00090FB81F94CC0853309F470C048F48732D4
+:1042000009F46CC008F459C0893209F467C070C061
+:10421000833438F48A3308F04EC0883309F466C01A
+:1042200067C0833409F45AC0883409F061C00E9421
+:1042300085140FEF13ED20E3015010402040E1F70B
+:1042400000C000000E94F81B51C00E9439220E9449
+:10425000EC0F0E94E5084AC09091DA01892F809501
+:10426000817080FB90F929F0966098609093DA0154
+:1042700040C0997F977F9093DA0138C08091DA012E
+:1042800082FB222720F991E0922790FB82F980930C
+:10429000DA01992359F18091DA0181608093DA0182
+:1042A00025C08091DA0183FB222720F991E0922733
+:1042B00090FB83F9ECCF895301C08D5141E050E070
+:1042C00060E070E08A019B0104C0000F111F221FF3
+:1042D000331F8A95D2F7C901B80104C061E070E0CC
+:1042E00080E090E00E9445180E94851481E001C0A2
+:1042F00080E01F910F91089580E0089580E0089577
+:10430000CF93C82F8091EA01813079F018F0823084
+:10431000E9F187C0E0910E01F0910F0180818131B8
+:1043200069F0823209F07FC009C0E0910E01F0917E
+:104330000F018081813111F0823261F48C2F0E9453
+:104340007C21811104C08C2F0E94B5201DC081E00A
+:1043500090E01AC08C2F0E947E21811114C0C431BC
+:1043600079F048F4CB3079F0C03109F060C082E0D8
+:104370008093EA0108C0C93219F0C83321F057C050
+:104380001092EA0154C081E0817053C0C93289F1B2
+:1043900018F5C43171F1A8F4C73009F046C08AE0BD
+:1043A0008093150194E19093140193E0909313018D
+:1043B0008093120188E08093110188E280931001BC
+:1043C00034C0CE51C63088F5EC2FF0E0E65DFE4FEC
+:1043D00080818093E90129C0CE34E9F020F4CB3408
+:1043E00021F56AE013C0C13579F0C235F1F461E01E
+:1043F0000DC08091E901882319F01092E90115C0E0
+:1044000081E08093EA0115C061E006C08091E90176
+:104410000E94EF1F0AC06AE08091E9010E946520B6
+:1044200004C01092EA0180E004C081E002C080E094
+:10443000ABCFCF910895E1E8F0E080818860808380
+:104440008081816080838FB7F89493E09093890096
+:1044500090ED909388008FBF0895EFE6F0E08081A3
+:10446000826080830895EFE6F0E080818D7F808315
+:104470000895EFE6F0E0908182E089278083089537
+:104480001F920F920FB60F9211242F933F934F93C9
+:104490005F936F937F938F939F93AF93BF93EF93AC
+:1044A000FF938091EB019091EC0101969093EC01C8
+:1044B0008093EB01811103C082E00E94E508E09146
+:1044C000EC01E695E695F0E0EC54FB4FE491809129
+:1044D000EB018E1303C080E00E94E508FF91EF918D
+:1044E000BF91AF919F918F917F916F915F914F910C
+:1044F0003F912F910F900FBE0F901F90189504D0F1
+:104500006894B1118DC0089570D088F09F5790F0D5
+:10451000B92F9927B751A0F0D1F0660F771F881FE8
+:10452000991F1AF0BA95C9F712C0B13081F077D04F
+:10453000B1E0089574C0672F782F8827B85F39F0ED
+:10454000B93FCCF3869577956795B395D9F73EF447
+:1045500090958095709561957F4F8F4F9F4F0895EF
+:10456000E89409C097FB3EF490958095709561950D
+:104570007F4F8F4F9F4F9923A9F0F92F96E9BB27C3
+:104580009395F695879577956795B795F111F8CF3F
+:10459000FAF4BB0F11F460FF1BC06F5F7F4F8F4FAA
+:1045A0009F4F16C0882311F096E911C0772321F0A0
+:1045B0009EE8872F762F05C0662371F096E8862F38
+:1045C00070E060E02AF09A95660F771F881FDAF78F
+:1045D000880F9695879597F9089557FD9058440F41
+:1045E000551F59F05F3F71F04795880F97FB991F52
+:1045F00061F09F3F79F0879508951216130614060F
+:10460000551FF2CF4695F1DF08C01616170618069B
+:10461000991FF1CF86957105610508940895E89476
+:10462000BB2766277727CB0197F908950BD078C071
+:1046300069D028F06ED018F0952309F05AC05FC0F9
+:104640001124EECFCADFA0F3959FD1F3950F50E070
+:10465000551F629FF001729FBB27F00DB11D639F34
+:10466000AA27F00DB11DAA1F649F6627B00DA11DDA
+:10467000661F829F2227B00DA11D621F739FB00D80
+:10468000A11D621F839FA00D611D221F749F3327F0
+:10469000A00D611D231F849F600D211D822F762F89
+:1046A0006A2F11249F5750408AF0E1F088234AF086
+:1046B000EE0FFF1FBB1F661F771F881F91505040D2
+:1046C000A9F79E3F510570F014C0AACF5F3FECF3ED
+:1046D000983EDCF3869577956795B795F795E795BE
+:1046E0009F5FC1F7FE2B880F911D9695879597F9CF
+:1046F000089597F99F6780E870E060E008959FEF64
+:1047000080EC089500240A94161617061806090668
+:10471000089500240A941216130614060506089537
+:10472000092E0394000C11F4882352F0BB0F40F4BF
+:10473000BF2B11F460FF04C06F5F7F4F8F4F9F4FFF
+:10474000089597FB072E16F4009407D077FD09D043
+:104750000E94BB2307FC05D03EF4909581959F4FA6
+:104760000895709561957F4F0895EE0FFF1F059096
+:10477000F491E02D0994AA1BBB1B51E107C0AA1FAD
+:10478000BB1FA617B70710F0A61BB70B881F991FF2
+:104790005A95A9F780959095BC01CD010895F99996
+:1047A000FECF92BD81BDF89A992780B50895A8E102
+:1047B000B0E042E050E00C94F723262FF999FECFA9
+:1047C00092BD81BDF89A019700B4021639F01FBA64
+:1047D00020BD0FB6F894FA9AF99A0FBE0895019683
+:1047E000272F0E94DE230C94DD23DC01CB01FC018A
+:1047F000F999FECF06C0F2BDE1BDF89A319600B43A
+:0E4800000D9241505040B8F70895F894FFCF44
+:10480E000220E708750952091E09EA080101C701CD
+:10481E0028080A03140A3F4D363975042804F2039A
+:10482E00B9034C0365037E039703010203040506D7
+:04483E00070809005E
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/german-kinergo/keymap.c b/keyboards/ergodox_ez/keymaps/german-kinergo/keymap.c new file mode 100644 index 000000000..b1cecf0dd --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/german-kinergo/keymap.c @@ -0,0 +1,210 @@ +// 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 "debug.h" +#include "action_layer.h" +#include "keymap_german.h" + +// Layer names +#define BASE 0 // default layer +#define SYMB 1 // symbol layer +#define MDIA 2 // media keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * X'es mark the spots where this is different from the "german" layout which it is based on. + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * |X Esc X| 1 | 2 | 3 | 4 | 5 |X ` X| |XPRSCX| 6 | 7 | 8 | 9 | 0 | ß | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * |X Tab X| Q | W | E | R | T |X L1 X| |X L1 X| Z | U | I | O | P | Ü | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Caps | A | S | D | F | G |------| |------| H | J | K | L | Ö | Ä/L2 | + * |--------+------+------+------+------+------|X L2 X| |X L2 X|------+------+------+------+------+--------| + * | LShift | Y | X | C | V | B | | | | N | M | , | . |X - X| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |XLGuiX|X ^ X|X < X|XLEFTX|XRIGHT| |XDownX|X Up X|X # X|X + X|XRGuiX| + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * |XCTRLX|XALTX | | Alt |Ctrl/Esc| + * ,------+------+------| |------+--------+------. + * |XXX |XXX | Home | | PgUp |XXX |XXX | + * | Bkspc|Del |------| |------| Enter | Space| + * | | | 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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, DE_ACUT, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(1), + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, DE_Y, KC_X, KC_C, KC_V, KC_B, MO(2), + KC_LGUI, DE_CIRC, DE_LESS, KC_LEFT, KC_RIGHT, + KC_LCTRL, KC_LALT, + KC_HOME, + KC_BSPC,KC_DELT,KC_END, + // right hand + KC_PSCREEN, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + MO(1), DE_Z, KC_U, KC_I, KC_O, KC_P, DE_UE, + KC_H, KC_J, KC_K, KC_L, DE_OE, LT(MDIA,DE_AE), + MO(2), KC_N, KC_M, KC_COMM, KC_DOT, DE_MINS, KC_RSFT, + KC_DOWN, KC_UP, DE_HASH, DE_PLUS, KC_RGUI, + KC_RALT, KC_RCTRL, + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC + ), +// [BASE] = KEYMAP( // layer 0 : default +// // left hand +// KC_CIRC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY, +// KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), +// KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, +// KC_LSFT, DE_Y, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), +// LT(SYMB,DE_LESS),CTL_T(DE_HASH), DE_ACUT, DE_MINS, DE_PLUS, +// ALT_T(KC_APP), KC_LGUI, +// KC_HOME, +// KC_SPC,KC_BSPC,KC_END, +// // right hand +// KC_MNXT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, +// TG(2), DE_Z, KC_U, KC_I, KC_O, KC_P, DE_UE, +// KC_H, KC_J, KC_K, KC_L, DE_OE, LT(MDIA,DE_AE), +// MEH_T(KC_NO),KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(DE_MINS), KC_RSFT, +// KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, 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,DE_EXLM,DE_AT, DE_LCBR,DE_RCBR,DE_PIPE,KC_TRNS, + KC_TRNS,DE_HASH,DE_DLR, DE_LPRN,DE_RPRN,DE_GRV, + KC_TRNS,DE_PERC,DE_CIRC,DE_LBRC,DE_RBRC,DE_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, DE_ASTR, KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, DE_PLUS, KC_TRNS, + KC_TRNS, DE_AMPR, KC_1, KC_2, KC_3, DE_BSLS, KC_TRNS, + KC_TRNS,KC_DOT, KC_0, DE_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | Lclk | MsUp | Rclk | | | | | |VolDwn| Mute |VolUp | | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | Btn4 |MsLeft|MsDown|MsRght| Btn5 |------| |------| | Prev | Stop | Play | Next | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | |WhRght|WhDown| WhUp |WhLeft|WhClk | | | |BwSrch|BwBack|BwHome|BwRefr|BwFwd | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | |MsAcl0|MsAcl1|MsAcl2| | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | |Brwser|Brwser| + * | Lclk | Rclk |------| |------|Back |Forwd | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[MDIA] = KEYMAP( + KC_TRNS, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_TRNS, + KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS, + KC_TRNS, KC_BTN4, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN5, + KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_BTN3, KC_TRNS, + KC_TRNS, KC_TRNS, KC_ACL0, KC_ACL1, KC_ACL2, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_BTN1, KC_BTN2, KC_TRNS, + // right hand + KC_TRNS, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11, + KC_TRNS, KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_F12, + KC_TRNS, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, KC_TRNS, + KC_TRNS, KC_WSCH, KC_WBAK, KC_WHOM, KC_WREF, KC_WFWD, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_WBAK, KC_WFWD +), +}; + +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) { + case SYMB: + ergodox_right_led_1_on(); + break; + case MDIA: + ergodox_right_led_2_on(); + break; + default: + ergodox_board_led_off(); + break; + } + +}; diff --git a/keyboards/ergodox_ez/keymaps/german-kinergo/layout-code.png b/keyboards/ergodox_ez/keymaps/german-kinergo/layout-code.png Binary files differnew file mode 100644 index 000000000..a0ef551e1 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/german-kinergo/layout-code.png diff --git a/keyboards/ergodox_ez/keymaps/german-kinergo/layout-media.png b/keyboards/ergodox_ez/keymaps/german-kinergo/layout-media.png Binary files differnew file mode 100644 index 000000000..56aea1dca --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/german-kinergo/layout-media.png diff --git a/keyboards/ergodox_ez/keymaps/german-kinergo/layout.png b/keyboards/ergodox_ez/keymaps/german-kinergo/layout.png Binary files differnew file mode 100644 index 000000000..76a1aa5d7 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/german-kinergo/layout.png diff --git a/keyboards/ergodox_ez/keymaps/german-kinergo/readme.md b/keyboards/ergodox_ez/keymaps/german-kinergo/readme.md new file mode 100644 index 000000000..557d85a8a --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/german-kinergo/readme.md @@ -0,0 +1,35 @@ +# German Layout for the ErgoDox + +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). +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. + +Modifications I made with regard to the aforementioned layouts: + +* The key layout is pretty close to the layout of a German Kinesis Ergo Elan. + The only exception I made is that I reversed the "up" and "down" cursor keys, + since that feels more natural to me. + +* All layer changes are "momentary", i.e. they only last as long as the respective key is pressed. + +* I sacrificed the Hyper and Meh keys, which I don't use, and put layer change keys in their place. + +* I added a PrintScreen key which I use quite regularly for screenshots. + +## Default Layer + +![Layout of the default layer](layout.png "Layout of the default layer") + +## Code Layer + +![Layout of the code layer](layout-code.png "Layout of the code layer") + +## Media Layer + +![Layout of the media layer](layout-media.png "Layout of the media layer") + +Christoph Schmitz <schm4704 at web dot de> +2016-01-28 diff --git a/keyboards/ergodox_ez/keymaps/german-manuneo/compile_keymap.py b/keyboards/ergodox_ez/keymaps/german-manuneo/compile_keymap.py new file mode 100644 index 000000000..7076a6ecb --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/german-manuneo/compile_keymap.py @@ -0,0 +1,710 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +"""Compiler for keymap.c files + +This scrip will generate a keymap.c file from a simple +markdown file with a specific layout. + +Usage: + python compile_keymap.py INPUT_PATH [OUTPUT_PATH] +""" +from __future__ import division +from __future__ import print_function +from __future__ import absolute_import +from __future__ import unicode_literals + +import os +import io +import re +import sys +import json +import unicodedata +import collections +import itertools as it + +PY2 = sys.version_info.major == 2 + +if PY2: + chr = unichr + + +KEYBOARD_LAYOUTS = { + # These map positions in the parsed layout to + # positions in the KEYMAP MATRIX + 'ergodox_ez': [ + [ 0, 1, 2, 3, 4, 5, 6], [38, 39, 40, 41, 42, 43, 44], + [ 7, 8, 9, 10, 11, 12, 13], [45, 46, 47, 48, 49, 50, 51], + [14, 15, 16, 17, 18, 19 ], [ 52, 53, 54, 55, 56, 57], + [20, 21, 22, 23, 24, 25, 26], [58, 59, 60, 61, 62, 63, 64], + [27, 28, 29, 30, 31 ], [ 65, 66, 67, 68, 69], + [ 32, 33], [70, 71 ], + [ 34], [72 ], + [ 35, 36, 37], [73, 74, 75 ], + ] +} + +ROW_INDENTS = { + 'ergodox_ez': [0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 5, 0, 6, 0, 4, 0] +} + +BLANK_LAYOUTS = [ +# Compact Layout +""" +.------------------------------------.------------------------------------. +| | | | | | | | | | | | | | | +!-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! +| | | | | | | | | | | | | | | +!-----+----+----+----x----x----! ! !----x----x----+----+----+-----! +| | | | | | |-----!-----! | | | | | | +!-----+----+----+----x----x----! ! !----x----x----+----+----+-----! +| | | | | | | | | | | | | | | +'-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' +""", + +# Wide Layout +""" +.---------------------------------------------. .---------------------------------------------. +| | | | | | | | ! | | | | | | | +!-------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+-------! +| | | | | | | | ! | | | | | | | +!-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------! +| | | | | | |-------! !-------! | | | | | | +!-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------! +| | | | | | | | ! | | | | | | | +'-------+-----+-----+-----+-----+-------------' '-------------+-----+-----+-----+-----+-------' + | | | | | | ! | | | | | + '------------------------------' '------------------------------' + .---------------. .---------------. + | | | ! | | + .-------+-------+-------! !-------+-------+-------. + ! ! | | ! | ! ! + ! ! !-------! !-------! ! ! + | | | | ! | | | + '-----------------------' '-----------------------' +""", +] + + +DEFAULT_CONFIG = { + "keymaps_includes": [ + "keymap_common.h", + ], + 'filler': "-+.'!:x", + 'separator': "|", + 'default_key_prefix': ["KC_"], +} + + +SECTIONS = [ + 'layout_config', + 'layers', +] + + +# Markdown Parsing + +ONELINE_COMMENT_RE = re.compile(r""" + ^ # comment must be at the start of the line + \s* # arbitrary whitespace + // # start of the comment + (.*) # the comment + $ # until the end of line +""", re.MULTILINE | re.VERBOSE +) + +INLINE_COMMENT_RE = re.compile(r""" + ([\,\"\[\]\{\}\d]) # anythig that might end a expression + \s+ # comment must be preceded by whitespace + // # start of the comment + \s # and succeded by whitespace + (?:[^\"\]\}\{\[]*) # the comment (except things which might be json) + $ # until the end of line +""", re.MULTILINE | re.VERBOSE) + +TRAILING_COMMA_RE = re.compile(r""" + , # the comma + (?:\s*) # arbitrary whitespace + $ # only works if the trailing comma is followed by newline + (\s*) # arbitrary whitespace + ([\]\}]) # end of an array or object +""", re.MULTILINE | re.VERBOSE) + + +def loads(raw_data): + if isinstance(raw_data, bytes): + raw_data = raw_data.decode('utf-8') + + raw_data = ONELINE_COMMENT_RE.sub(r"", raw_data) + raw_data = INLINE_COMMENT_RE.sub(r"\1", raw_data) + raw_data = TRAILING_COMMA_RE.sub(r"\1\2", raw_data) + return json.loads(raw_data) + + +def parse_config(path): + def reset_section(): + section.update({ + 'name': section.get('name', ""), + 'sub_name': "", + 'start_line': -1, + 'end_line': -1, + 'code_lines': [], + }) + + def start_section(line_index, line): + end_section() + if line.startswith("# "): + name = line[2:] + elif line.startswith("## "): + name = line[3:] + else: + name = "" + + name = name.strip().replace(" ", "_").lower() + if name in SECTIONS: + section['name'] = name + else: + section['sub_name'] = name + section['start_line'] = line_index + + def end_section(): + if section['start_line'] >= 0: + if section['name'] == 'layout_config': + config.update(loads("\n".join( + section['code_lines'] + ))) + elif section['sub_name'].startswith('layer'): + layer_name = section['sub_name'] + config['layer_lines'][layer_name] = section['code_lines'] + + reset_section() + + def amend_section(line_index, line): + section['end_line'] = line_index + section['code_lines'].append(line) + + config = DEFAULT_CONFIG.copy() + config.update({ + 'layer_lines': collections.OrderedDict(), + 'macro_ids': {'UM'}, + 'unicode_macros': {}, + }) + + section = {} + reset_section() + + with io.open(path, encoding="utf-8") as fh: + for i, line in enumerate(fh): + if line.startswith("#"): + start_section(i, line) + elif line.startswith(" "): + amend_section(i, line[4:]) + else: + # TODO: maybe parse description + pass + + end_section() + assert 'layout' in config + return config + +# header file parsing + +IF0_RE = re.compile(r""" + ^ + #if 0 + $.*? + #endif +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +COMMENT_RE = re.compile(r""" + /\* + .*? + \*/" +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +def read_header_file(path): + with io.open(path, encoding="utf-8") as fh: + data = fh.read() + data, _ = COMMENT_RE.subn("", data) + data, _ = IF0_RE.subn("", data) + return data + + +def regex_partial(re_str_fmt, flags): + def partial(*args, **kwargs): + re_str = re_str_fmt.format(*args, **kwargs) + return re.compile(re_str, flags) + return partial + + +KEYDEF_REP = regex_partial(r""" + #define + \s + ( + (?:{}) # the prefixes + (?:\w+) # the key name + ) # capture group end +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +ENUM_RE = re.compile(r""" + ( + enum + \s\w+\s + \{ + .*? # the enum content + \} + ; + ) # capture group end +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +ENUM_KEY_REP = regex_partial(r""" + ( + {} # the prefixes + \w+ # the key name + ) # capture group end +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +def parse_keydefs(config, data): + prefix_options = "|".join(config['key_prefixes']) + keydef_re = KEYDEF_REP(prefix_options) + enum_key_re = ENUM_KEY_REP(prefix_options) + for match in keydef_re.finditer(data): + yield match.groups()[0] + + for enum_match in ENUM_RE.finditer(data): + enum = enum_match.groups()[0] + for key_match in enum_key_re.finditer(enum): + yield key_match.groups()[0] + + +def parse_valid_keys(config, out_path): + basepath = os.path.abspath(os.path.join(os.path.dirname(out_path))) + dirpaths = [] + subpaths = [] + while len(subpaths) < 6: + path = os.path.join(basepath, *subpaths) + dirpaths.append(path) + dirpaths.append(os.path.join(path, "tmk_core", "common")) + dirpaths.append(os.path.join(path, "quantum")) + subpaths.append('..') + + includes = set(config['keymaps_includes']) + includes.add("keycode.h") + + valid_keycodes = set() + for dirpath, include in it.product(dirpaths, includes): + include_path = os.path.join(dirpath, include) + if os.path.exists(include_path): + header_data = read_header_file(include_path) + valid_keycodes.update( + parse_keydefs(config, header_data) + ) + return valid_keycodes + + +# Keymap Parsing + +def iter_raw_codes(layer_lines, filler, separator): + filler_re = re.compile("[" + filler + " ]") + for line in layer_lines: + line, _ = filler_re.subn("", line.strip()) + if not line: + continue + codes = line.split(separator) + for code in codes[1:-1]: + yield code + + +def iter_indexed_codes(raw_codes, key_indexes): + key_rows = {} + key_indexes_flat = [] + + for row_index, key_indexes in enumerate(key_indexes): + for key_index in key_indexes: + key_rows[key_index] = row_index + key_indexes_flat.extend(key_indexes) + assert len(raw_codes) == len(key_indexes_flat) + for raw_code, key_index in zip(raw_codes, key_indexes_flat): + # we keep track of the row mostly for layout purposes + yield raw_code, key_index, key_rows[key_index] + + +LAYER_CHANGE_RE = re.compile(r""" + (DF|TG|MO)\(\d+\) +""", re.VERBOSE) + + +MACRO_RE = re.compile(r""" + M\(\w+\) +""", re.VERBOSE) + + +UNICODE_RE = re.compile(r""" + U[0-9A-F]{4} +""", re.VERBOSE) + + +NON_CODE = re.compile(r""" + ^[^A-Z0-9_]$ +""", re.VERBOSE) + + +def parse_uni_code(raw_code): + macro_id = "UC_" + ( + unicodedata.name(raw_code) + .replace(" ", "_") + .replace("-", "_") + ) + code = "M({})".format(macro_id) + uc_hex = "{:04X}".format(ord(raw_code)) + return code, macro_id, uc_hex + + +def parse_key_code(raw_code, key_prefixes, valid_keycodes): + if raw_code in valid_keycodes: + return raw_code + + for prefix in key_prefixes: + code = prefix + raw_code + if code in valid_keycodes: + return code + + +def parse_code(raw_code, key_prefixes, valid_keycodes): + if not raw_code: + return 'KC_TRNS', None, None + + if LAYER_CHANGE_RE.match(raw_code): + return raw_code, None, None + + if MACRO_RE.match(raw_code): + macro_id = raw_code[2:-1] + return raw_code, macro_id, None + + if UNICODE_RE.match(raw_code): + hex_code = raw_code[1:] + return parse_uni_code(chr(int(hex_code, 16))) + + if NON_CODE.match(raw_code): + return parse_uni_code(raw_code) + + code = parse_key_code(raw_code, key_prefixes, valid_keycodes) + return code, None, None + + +def parse_keymap(config, key_indexes, layer_lines, valid_keycodes): + keymap = {} + raw_codes = list(iter_raw_codes( + layer_lines, config['filler'], config['separator'] + )) + indexed_codes = iter_indexed_codes(raw_codes, key_indexes) + key_prefixes = config['key_prefixes'] + for raw_code, key_index, row_index in indexed_codes: + code, macro_id, uc_hex = parse_code( + raw_code, key_prefixes, valid_keycodes + ) + # TODO: line numbers for invalid codes + err_msg = "Could not parse key '{}' on row {}".format( + raw_code, row_index + ) + assert code is not None, err_msg + # print(repr(raw_code), repr(code), macro_id, uc_hex) + if macro_id: + config['macro_ids'].add(macro_id) + if uc_hex: + config['unicode_macros'][macro_id] = uc_hex + keymap[key_index] = (code, row_index) + return keymap + + +def parse_keymaps(config, valid_keycodes): + keymaps = collections.OrderedDict() + key_indexes = config.get( + 'key_indexes', KEYBOARD_LAYOUTS[config['layout']] + ) + # TODO: maybe validate key_indexes + + for layer_name, layer_lines, in config['layer_lines'].items(): + keymaps[layer_name] = parse_keymap( + config, key_indexes, layer_lines, valid_keycodes + ) + return keymaps + +# keymap.c output + +USERCODE = """ +// 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 L1: + ergodox_right_led_1_on(); + break; + case L2: + ergodox_right_led_2_on(); + break; + case L3: + ergodox_right_led_3_on(); + break; + case L4: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + break; + case L5: + ergodox_right_led_1_on(); + ergodox_right_led_3_on(); + break; + // case L6: + // ergodox_right_led_2_on(); + // ergodox_right_led_3_on(); + // break; + // case L7: + // ergodox_right_led_1_on(); + // ergodox_right_led_2_on(); + // ergodox_right_led_3_on(); + // break; + default: + ergodox_board_led_off(); + break; + } +}; +""" + +MACROCODE = """ +#define UC_MODE_WIN 0 +#define UC_MODE_LINUX 1 +#define UC_MODE_OSX 2 + +// TODO: allow default mode to be configured +static uint16_t unicode_mode = UC_MODE_WIN; + +uint16_t hextokeycode(uint8_t hex) {{ + if (hex == 0x0) {{ + return KC_P0; + }} + if (hex < 0xA) {{ + return KC_P1 + (hex - 0x1); + }} + return KC_A + (hex - 0xA); +}} + +void unicode_action_function(uint16_t hi, uint16_t lo) {{ + switch (unicode_mode) {{ + case UC_MODE_WIN: + register_code(KC_LALT); + + register_code(KC_PPLS); + unregister_code(KC_PPLS); + + register_code(hextokeycode((hi & 0xF0) >> 4)); + unregister_code(hextokeycode((hi & 0xF0) >> 4)); + register_code(hextokeycode((hi & 0x0F))); + unregister_code(hextokeycode((hi & 0x0F))); + register_code(hextokeycode((lo & 0xF0) >> 4)); + unregister_code(hextokeycode((lo & 0xF0) >> 4)); + register_code(hextokeycode((lo & 0x0F))); + unregister_code(hextokeycode((lo & 0x0F))); + + unregister_code(KC_LALT); + break; + case UC_MODE_LINUX: + register_code(KC_LCTL); + register_code(KC_LSFT); + + register_code(KC_U); + unregister_code(KC_U); + + register_code(hextokeycode((hi & 0xF0) >> 4)); + unregister_code(hextokeycode((hi & 0xF0) >> 4)); + register_code(hextokeycode((hi & 0x0F))); + unregister_code(hextokeycode((hi & 0x0F))); + register_code(hextokeycode((lo & 0xF0) >> 4)); + unregister_code(hextokeycode((lo & 0xF0) >> 4)); + register_code(hextokeycode((lo & 0x0F))); + unregister_code(hextokeycode((lo & 0x0F))); + + unregister_code(KC_LCTL); + unregister_code(KC_LSFT); + break; + case UC_MODE_OSX: + break; + }} +}} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {{ + if (!record->event.pressed) {{ + return MACRO_NONE; + }} + // MACRODOWN only works in this function + switch(id) {{ + case UM: + unicode_mode = (unicode_mode + 1) % 2; + break; +{macro_cases} +{unicode_macro_cases} + default: + break; + }} + return MACRO_NONE; +}}; +""" + + +UNICODE_MACRO_TEMPLATE = """ +case {macro_id}: + unicode_action_function(0x{hi:02x}, 0x{lo:02x}); + break; +""".strip() + + +def unicode_macro_cases(config): + for macro_id, uc_hex in config['unicode_macros'].items(): + hi = int(uc_hex, 16) >> 8 + lo = int(uc_hex, 16) & 0xFF + unimacro_keys = ", ".join( + "T({})".format( + "KP_" + digit if digit.isdigit() else digit + ) for digit in uc_hex + ) + yield UNICODE_MACRO_TEMPLATE.format( + macro_id=macro_id, hi=hi, lo=lo + ) + + +def iter_keymap_lines(keymap, row_indents=None): + col_widths = {} + col = 0 + # first pass, figure out the column widths + prev_row_index = None + for code, row_index in keymap.values(): + if row_index != prev_row_index: + col = 0 + if row_indents: + col = row_indents[row_index] + col_widths[col] = max(len(code), col_widths.get(col, 0)) + prev_row_index = row_index + col += 1 + + # second pass, yield the cell values + col = 0 + prev_row_index = None + for key_index in sorted(keymap): + code, row_index = keymap[key_index] + if row_index != prev_row_index: + col = 0 + yield "\n" + if row_indents: + for indent_col in range(row_indents[row_index]): + pad = " " * (col_widths[indent_col] - 4) + yield (" /*-*/" + pad) + col = row_indents[row_index] + else: + yield pad + yield " {}".format(code) + if key_index < len(keymap) - 1: + yield "," + # This will be yielded on the next iteration when + # we know that we're not at the end of a line. + pad = " " * (col_widths[col] - len(code)) + prev_row_index = row_index + col += 1 + + +def iter_keymap_parts(config, keymaps): + # includes + for include_path in config['keymaps_includes']: + yield '#include "{}"\n'.format(include_path) + + yield "\n" + + # definitions + for i, macro_id in enumerate(sorted(config['macro_ids'])): + yield "#define {} {}\n".format(macro_id, i) + + yield "\n" + + for i, layer_name in enumerate(config['layer_lines']): + yield '#define L{0:<3} {0:<5} // {1}\n'.format(i, layer_name) + + yield "\n" + + # keymaps + yield "const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\n" + + for i, layer_name in enumerate(config['layer_lines']): + # comment + layer_lines = config['layer_lines'][layer_name] + prefixed_lines = " * " + " * ".join(layer_lines) + yield "/*\n{} */\n".format(prefixed_lines) + + # keymap codes + keymap = keymaps[layer_name] + row_indents = ROW_INDENTS.get(config['layout']) + keymap_lines = "".join(iter_keymap_lines(keymap, row_indents)) + yield "[L{0}] = KEYMAP({1}\n),\n".format(i, keymap_lines) + + yield "};\n\n" + + # no idea what this is for + yield "const uint16_t PROGMEM fn_actions[] = {};\n" + + # macros + yield MACROCODE.format( + macro_cases="", + unicode_macro_cases="\n".join(unicode_macro_cases(config)), + ) + + # TODO: dynamically create blinking lights + yield USERCODE + + +def main(argv=sys.argv[1:]): + if not argv or '-h' in argv or '--help' in argv: + print(__doc__) + return 0 + + in_path = os.path.abspath(argv[0]) + if not os.path.exists(in_path): + print("No such file '{}'".format(in_path)) + return 1 + + if len(argv) > 1: + out_path = os.path.abspath(argv[1]) + else: + dirname = os.path.dirname(in_path) + out_path = os.path.join(dirname, "keymap.c") + + config = parse_config(in_path) + valid_keys = parse_valid_keys(config, out_path) + keymaps = parse_keymaps(config, valid_keys) + + with io.open(out_path, mode="w", encoding="utf-8") as fh: + for part in iter_keymap_parts(config, keymaps): + fh.write(part) + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/keyboards/ergodox_ez/keymaps/german-manuneo/compiled.hex b/keyboards/ergodox_ez/keymaps/german-manuneo/compiled.hex new file mode 100644 index 000000000..bef079b16 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/german-manuneo/compiled.hex @@ -0,0 +1,1274 @@ +:100000000C9427040C946B040C946B040C946B04F8
+:100010000C946B040C946B040C946B040C946B04A4
+:100020000C946B040C946B040C9403110C94D51178
+:100030000C946B040C946B040C946B040C946B0484
+:100040000C946B040C94DF250C946B040C946B04DF
+:100050000C946B040C94721F0C946B040C946B0442
+:100060000C946B040C946B040C946B040C946B0454
+:100070000C946B040C946B040C946B040C946B0444
+:100080000C946B040C946B040C946B040C946B0434
+:100090000C946B040C946B040C946B040C946B0424
+:1000A0000C946B040C946B040C946B040F08DC0729
+:1000B000C707210848087B085D0863087808A60878
+:1000C0009B0866089E08B20757088F089808D9074A
+:1000D000D0071E081508FD07D30792072A088008D5
+:1000E00089089508030833081208AC0786085108E8
+:1000F000F40709080008E8078C08F7079D0754086B
+:10010000EE072D088C071808CA07B807E207DF07B3
+:10011000360806087208A307F1071B088F07240892
+:100120006F0875083F08C1075A08AF07D607BB0715
+:1001300030086008A10895070C08270869083908E5
+:10014000BE0792084E08A907FA07C4074508CD075D
+:100150006C08A6073C084B089807B507AB0883084E
+:10016000E507A0074208EB0780074212641252130A
+:1001700064125213A912CC12521321133413031612
+:1001800003163216321668168816B917B917931661
+:10019000B91743174317AA17B917B917B317501749
+:1001A0005017501750175017501750175017501717
+:1001B00050175017501750175017501750176217F5
+:1001C0006F1776177D178717055204520152035295
+:1001D000010000001E001B0018002F000100290074
+:1001E0001F0013000C003300E300E10020000900B1
+:1001F00004003400E2002A0021001A000800060072
+:10020000E000650022000A00120019000000490009
+:100210002E004A0000004D00000002542E0202543D
+:1002200000002B0000005E3023000B0016000500CC
+:1002300000004C0024000D0011001000E4004B00F1
+:1002400025000E0015003600E6002C0026000F00E9
+:100250001700370050002800270014000700520044
+:1002600051004E0035001C002D001D004F00000005
+:100270000100010001000100010000001E02300227
+:1002800038020100010001001F0264143800300030
+:1002900001000100200224022302270201000100C4
+:1002A000010024142514010001000100010027149D
+:1002B00026140100000001000100010000000100FF
+:1002C0000000010001000100000001000000010029
+:1002D0000100310021022D14000001000100640022
+:1002E00025022202010001000100640226023602FA
+:1002F0000100010001000100301437023830010014
+:1003000035021F02310255300230010001000100A8
+:100310002D0201003D30000001000100010001003C
+:10032000010000003A00010001000100010001008D
+:100330003B00010001000100010001003C00010040
+:1003400001000100010001003D0001000100010069
+:10035000010001003E000100010001000000010059
+:100360004400010000000100000001004500010000
+:1003700000005300000001003F00010001000100E7
+:100380000000010040005F005C00590062000100B5
+:10039000410060005D005A008500010042006100DC
+:1003A0005E005B00630001004300550056005700EB
+:1003B0005800010067005400560057005800000024
+:1003C0000100010001000100010000004D30393042
+:1003D00001005B3001000100513058303C303B30AF
+:1003E000010001005030013014145D3001000100A3
+:1003F0004A30593008145C30010001004930573050
+:100400000430003000000100053001000000010050
+:1004100000000100010001000000010000000100D7
+:100420004F305A3037301E02000001004E300100BC
+:100430004B30010001000100483056305430533039
+:10044000010001004C30010003303A30010001008E
+:100450005230010001000100010001000100010013
+:100460000100010001000000010001000100010085
+:100470000100000042302030343001000100010052
+:1004800046302E30263033300100010045302D300B
+:100490001E3001000100010040302B3022300100ED
+:1004A000010001003F3025302C3001000000010028
+:1004B0000100010000000100000001000100010036
+:1004C00000000100000001004430233031301F30B3
+:1004D00000000100433035302A302930010001008E
+:1004E0003E3027303030010001000100413028301B
+:1004F00032300100010001004730010021300100CD
+:10050000010001000100363024302F3001000000CE
+:10051000010001000100010001000000010008309D
+:100520001B30010001000100010015300D301A30B0
+:10053000010001000100143006300100010001003B
+:10054000010012300A3001000100010001000C30EE
+:100550001330010000000100010001000000010053
+:100560000000010001000100000001000000010086
+:1005700001000B30183007300000010001001C3072
+:10058000113010300100010001000E301730010061
+:100590000100010001000F301930010001000100CD
+:1005A00001000100093001000100010001001D30BF
+:1005B00001001630010000000100010001000100EF
+:1005C0000100000001000100010001000100010024
+:1005D0000100010001000100010001000100010013
+:1005E0000100010001000100010001000100010003
+:1005F00001000100010001000100010000000100F4
+:1006000001000100000001000000010001000100E4
+:1006100000000100000001000100010001000100D4
+:1006200000000100010001000100010001000100C3
+:1006300001000100010001000100010001000100B2
+:1006400001000100010001000100010001000100A2
+:100650000100010001000100010001000100000093
+:1006600016034500720067006F0044006F007800B9
+:10067000200045005A000000160345007200670084
+:100680006F0044006F007800200045005A00000011
+:100690000403090409026D00040100A0FA09040022
+:1006A000000103010100092111010001223F00079F
+:1006B00005810308000A0904010001030102000981
+:1006C0002111010001224D000705820308000A09DB
+:1006D000040200010300000009211101000122367B
+:1006E000000705830308000A090403000103000052
+:1006F00000092111010001223900070584031000BF
+:10070000011201100100000008EDFE0713010001B5
+:1007100002000105010906A101050719E029E715F5
+:100720000025019508750181020508190129059523
+:1007300005750191029501750391010507190029BD
+:100740007715002501957875018102C005010980A2
+:10075000A101850216010026B7001A01002AB70080
+:10076000751095018100C0050C0901A101850316D2
+:100770000100269C021A01002A9C02751095018135
+:1007800000C005010902A1010901A1000509190123
+:10079000290515002501950575018102950175034F
+:1007A00081010501093009311581257F9502750800
+:1007B000810609381581257F950175088106050C8C
+:1007C0000A38021581257F950175088106C0C0058C
+:1007D000010906A101050719E029E7150025019582
+:1007E0000875018102950175088101050819012923
+:1007F000059505750191029501750391010507198C
+:100800000029FF150025FF950675088100C000002E
+:10081000000000000000000000010204060A0F179B
+:10082000202C3A4A5D71879DB3C7DAE9F5FCFFFCDD
+:10083000F5E9DAC7B39D87715D4A3A2C20170F0A94
+:100840000604020100000000000000000000112466
+:100850001FBECFEFDAE0DEBFCDBF04B603FE24C07B
+:100860008091FD019091FE01A091FF01B0910002E5
+:100870008730904BA740B04BB9F41092FD01109215
+:10088000FE011092FF011092000214BE84B7877F10
+:1008900084BF88E10FB6F8948093600010926000E6
+:1008A0000FBEE0E0FFE3099511E0A0E0B1E0ECE469
+:1008B000FFE402C005900D92A433B107D9F711E00F
+:1008C000A4E3B1E001C01D92AD3FB107E1F70E9482
+:1008D000470E0C94A4270C9400001092B9008AE0F3
+:1008E0008093B800089594EA9093BC009091BC0066
+:1008F00097FFFCCF9091B900987F983021F090310C
+:1009000011F081E008958093BB0084E88093BC00DF
+:100910008091BC0087FFFCCF8091B900887F88312F
+:1009200011F0803471F780E0089584E98093BC0071
+:100930008091BC0084FDFCCF08958093BB0084E8C7
+:100940008093BC008091BC0087FFFCCF9091B900E0
+:10095000987F81E0983209F480E0089584E88093DC
+:10096000BC008091BC0087FFFCCF8091BB00089544
+:1009700080910101811115C080E40E94730480936D
+:10098000010181110CC082E10E949D04809301014C
+:10099000811105C08FEF0E949D04809301010E9488
+:1009A000950484B1807F84B985B1807F85B98AB18F
+:1009B000837F8AB98BB1837F8BB93E98469808951F
+:1009C0000E947306809301010E94B80480B38C706A
+:1009D00080BB81B3836F81BBA5E3B1E0E3E4F1E0C9
+:1009E0008EE08E0F11921D928E13FCCF0C945D063B
+:1009F000BF92CF92DF92EF92FF920F931F93CF930C
+:100A0000DF9380910101882379F0809134018F5F19
+:100A100080933401811108C00E9473068093010104
+:100A2000811102C00E94050605E311E0C0E0D0E09C
+:100A3000DD24D39482E0C82EEE24E394F12CC73059
+:100A4000D10500F580910101811164C080E40E940C
+:100A5000730480930101811112C082E10E949D0400
+:100A60008093010181110BC0C7010C2E01C0880FBA
+:100A70000A94EAF780950E949D04809301010E94E8
+:100A8000950448C0CA30A1F028F4C83059F0C930E4
+:100A900061F005C0CC3089F070F0CD3089F0209A3B
+:100AA000289810C0219A29980DC0229A2A980AC025
+:100AB000239A2B9807C0529A01C0539A5B9802C0A0
+:100AC0003E9A469890EA9A95F1F79FB1799902C0BB
+:100AD00082E001C080E091709D25982B7C9902C036
+:100AE00084E001C080E0892B7D9902C038E001C01C
+:100AF00030E0832B7E9902C020E101C020E0822BF0
+:100B00009FB19095991F9927991F9295990F907E63
+:100B1000892B0FC080910101811149C080E40E949E
+:100B2000730480930101882379F1B12C0E9495040C
+:100B30008B2DF8019081981719F08083C0920001E5
+:100B40000E94B80421960F5F1F4FCE30D10509F0E7
+:100B500076CF80910001882361F18150809300015C
+:100B6000882339F08FE99FE00197F1F700C000007A
+:100B700020C0A3E4B1E0E5E3F1E0CF01825F919111
+:100B80009D938E13FCCF15C083E10E949D0480933A
+:100B900001018111CACF81E40E9473048093010195
+:100BA0008111C3CF0E94AE04B82EB094BFCF80E0B5
+:100BB000C0CF0E94030681E0DF91CF911F910F917A
+:100BC000FF90EF90DF90CF90BF900895E82FF0E076
+:100BD000ED5BFE4F8081089508950F931F93CF938F
+:100BE000DF93C3E4D1E010E00C2F025F899190E025
+:100BF0000E94981E180F0C13F9CF812FDF91CF910F
+:100C00001F910F9108950C94B50856985E982598F9
+:100C10002D9826982E9827982F988FEF90E09093F4
+:100C200089008093880090938B0080938A00909332
+:100C30008D0080938C00259A2D9A2FEF80E792E00B
+:100C4000215080409040E1F700C00000269A2E9A83
+:100C50002FEF80E792E0215080409040E1F700C004
+:100C60000000279A2F9A2FEF80E792E021508040D2
+:100C70009040E1F700C0000025982D982FEF80E705
+:100C800092E0215080409040E1F700C0000026989B
+:100C90002E982FEF80E792E0215080409040E1F7BE
+:100CA00000C0000027982F9856985E9825982D9898
+:100CB00026982E9827982F98089589EA8093800087
+:100CC00089E08093810024982C983F988AB18F7492
+:100CD0008AB96E98479A8BB1806B8BB9769A0E94CD
+:100CE00005060C94B40880E28093010180915101C3
+:100CF00081110EC00E946D0481E0809351012FEF9D
+:100D000083ED90E3215080409040E1F700C0000067
+:100D100080E40E9473048093010181112EC00E941F
+:100D20009D0480930101811128C00E949D0480933D
+:100D30000101811122C08FE30E949D048093010173
+:100D400081111BC00E94950480E40E94730480936B
+:100D50000101811112C08CE00E949D048093010169
+:100D600081110BC00E949D0480930101811105C077
+:100D70008FE30E949D04809301010E94950480915D
+:100D800001010895882359F0282F30E08A3020F49B
+:100D9000C901885A9F4F0895C9010697089582E6B0
+:100DA00090E008950F931F93CF93DF938C01EB0195
+:100DB0008091520190915301009709F448C0019726
+:100DC00009F089C080EE0E94A71481EE0E94A7144A
+:100DD00088E10E94A71488E10E946F15C801807FF6
+:100DE000992724E0969587952A95E1F70E94C206F7
+:100DF000182F0E94A714812F0E946F15802F8F70CB
+:100E00000E94C206182F0E94A714812F0E946F15FE
+:100E1000CE01807F992734E0969587953A95E1F742
+:100E20000E94C206D82F0E94A7148D2F0E946F1512
+:100E30008C2F8F700E94C206C82F0E94A7148C2F7F
+:100E40000E946F1580EE0E946F1581EE3EC082EE0B
+:100E50000E94A71487E50E94A71487E50E946F15DA
+:100E6000C801807F992744E0969587954A95E1F7D8
+:100E70000E94C206182F0E94A714812F0E946F158E
+:100E8000802F8F700E94C206182F0E94A714812FF6
+:100E90000E946F15CE01807F992754E09695879523
+:100EA0005A95E1F70E94C206D82F0E94A7148D2FF1
+:100EB0000E946F158C2F8F700E94C206C82F0E944F
+:100EC000A7148C2F0E946F1582EEDF91CF911F9196
+:100ED0000F910C946F15DF91CF911F910F91089591
+:100EE000FC018281882309F43CC1862F90E08F3574
+:100EF000910508F036C1FC01EA5AFF4F0C945427C3
+:100F0000809152019091530101968170992790939D
+:100F100053018093520125C16FEB70E019C160E964
+:100F200070E008C061EA70E013C163E870E00BC1D3
+:100F30006BE570E081E290E012C16BEB70E008C1FC
+:100F400063E570E0F7CF6EEB70E002C164E070E043
+:100F5000D4C069EB70E001C162EB70E0F9C065E8F4
+:100F600070E0F1C069E970E0F3C065E570E0E2CFE0
+:100F700068EC70E0EDC069E870E0E5C064E770E03F
+:100F8000E2C062E970E0D6CF66E770E0DCC063E9FA
+:100F900070E0D0CF60EC70E0DBC062EB70E0DDC0F1
+:100FA00069EA70E0D5C068EA70E0D2C064E870E039
+:100FB000CAC06DE970E0CCC067EF70E0CEC063ECF2
+:100FC00070E0C6C061EC70E0C3C069E570E0B2CF0C
+:100FD00063EB70E0BDC064E570E0ACCF6DEB70E03A
+:100FE000B7C066EB70E0B4C065EB70E0B1C06AEB0F
+:100FF00070E0AEC067E770E0A6C060EA70E0A8C02D
+:1010000062EC70E0A5C06EE970E0A2C068EB70E031
+:101010009FC067EB70E09CC062E870E094C063E43E
+:1010200070E06BC061EB70E093C066EA70E090C066
+:1010300066EC70E08DC06EE170E05FC06FE970E05B
+:1010400087C068E070E059C067ED70E086C060E876
+:1010500070E079C063EA70E07BC069EC70E078C052
+:1010600061E870E070C066E970E072C064EC70E046
+:101070006FC065E770E067C063E070E03EC061EBA1
+:1010800070E06BC06EEB70E068C063EB70E065C051
+:1010900065E070E032C061E970E04CCF69E770E074
+:1010A00052C064EB70E054C06CEB70E051C06AE970
+:1010B00070E04EC068E870E046C061E970E048C08A
+:1010C00067E870E040C062E970E042C067E970E044
+:1010D0003FC068E770E037C060E770E034C069E0A7
+:1010E00070E00BC065EC70E033C060E670E005C0F6
+:1010F00067EA70E02DC060E070E082E290E02FC00F
+:1011000064EA70E025C06CEB70E027C067EC70E02B
+:101110001FC068E970E01CC069EB70E019C06BE9A2
+:1011200070E016C06FE770E00EC065EA70E010C0B6
+:101130006CE970E00DC065E970E00AC063E970E039
+:1011400007C066E870E080E290E009C064E970E002
+:1011500083E090E004C06DEB70E080E090E00E94DE
+:10116000D20680E090E0089508956091BF017091EB
+:10117000C0018091C1019091C2010E94A41E5698A5
+:101180005E9825982D9826982E9827982F9883302A
+:10119000A9F028F4813051F0823069F012C0843017
+:1011A00041F0853071F4259A2D9A08C0259A2D9A20
+:1011B0000895259A2D9A269A2E9A0895279A2F9A5D
+:1011C000089556985E98089581E0089581E0089505
+:1011D0000C94E60808950F931F93CF93DF938C012F
+:1011E000FC01C081D181CE010E941D1DBE010E9463
+:1011F0009409EC01B8010E94E808882309F48DC025
+:10120000F8018281882309F44AC080915F0181112D
+:101210001FC0C431F0E5DF0709F051C00E94EA08A1
+:1012200081E080935F010E943C1F90935E01809358
+:101230005D011092560110925801109257011092C0
+:101240005A011092590110925C0110925B0165C025
+:1012500080915D0190915E010E94481F883C91053C
+:1012600070F480915601E82FF0E0EE0FFF1FE95A6D
+:10127000FE4FD183C0838F5F809356014EC0C43828
+:1012800080E5D80721F0C538D04501F13AC0F80112
+:101290008281882341F01092540182E01EC0C4383C
+:1012A000E0E5DE0759F580915401811106C086E220
+:1012B0000E94A71486E20E946F1582E01CC0C43809
+:1012C000F0E5DF0741F3C538D045D9F4F801828154
+:1012D000882331F01092550180E20E94BE151DC096
+:1012E00080915501811106C087E20E94A71487E210
+:1012F0000E946F1580E20E94C5150FC0C538D04509
+:1013000029F381E08093540180935501C801DF9156
+:10131000CF911F910F910C94E40880E0DF91CF9161
+:101320001F910F910895089596E0799FF00111247F
+:1013300094E5899FE00DF11D1124E60FF11DEE0FDC
+:10134000FF1FE853FE4F859194910895880F991FD0
+:10135000FC01E85BFF4F859194910895880F991FD8
+:10136000FC01E853FE4F8591949108950F931F93CC
+:10137000CF93DF93EC01811520E3920750F5C1155F
+:1013800080E2D80708F0C3C0CB3BD10590F4C83A3F
+:10139000D10508F06AC0C53AD10508F05BC0C43079
+:1013A000D10508F0D0C1219709F0CAC101E010E0D1
+:1013B0000AC2CF3FD10511F008F0C5C1C03FD10529
+:1013C00008F0A2C0CE01805E9109089708F4BBC165
+:1013D000B7C1C13090E5D90709F4A2C020F5C031EA
+:1013E0008FE4D80770F4C11590E4D90708F094C0D1
+:1013F000C11521E3D20708F0A3C1DD278E01106CCF
+:10140000E2C1C115D04509F09BC10E9424188FEF9D
+:1014100094E32CE0815090402040E1F700C00000B0
+:101420000E94971FD0C1C11597E5D90758F4C03164
+:1014300021E5D20708F01CC1C43180E5D80708F4C3
+:1014400075C07EC1CE0190578115904108F078C1DA
+:10145000DF7073C1C53AD10509F477C1C63AD10529
+:1014600009F076C102E810E4AEC1C83AD10509F42A
+:1014700072C1C93AD10509F471C1CA3AD10509F45A
+:1014800070C1CB3AD10509F46FC1CC3AD10509F44A
+:101490006EC1CD3AD10509F46DC1C03BD10509F447
+:1014A0006CC1CE3AD10509F46BC1CF3AD10509F42C
+:1014B0006AC1C13BD10509F469C1C23BD10509F438
+:1014C00068C1C33BD10509F467C1C43BD10509F428
+:1014D00066C1C53BD10509F465C1C63BD10509F418
+:1014E00064C1C73BD10509F463C1C83BD10509F408
+:1014F00062C1C93BD10509F461C1CA3BD10509F4F8
+:1015000060C100E014E45FC18E0110655CC1CE01D2
+:101510009F700E94AE0958C1DF708E01106A53C1DE
+:101520008091DC0181608093DC014DC10E943C21EF
+:10153000811102C00E9422210E94592190E09093C3
+:10154000FD018093FC01C23080E5D80721F4809131
+:10155000FC01816086C0C43090E5D90721F48091F8
+:10156000FC0182607EC0C63020E5D20721F4809164
+:10157000FC01846076C0C83080E5D80719F48091FA
+:10158000FC0127C0CA3090E5D90721F48091FC0105
+:10159000806167C0CC3020E5D20721F48091FC0146
+:1015A00080625FC0CE3080E5D80721F48091FC01D5
+:1015B000806457C0C03190E5D90721F48091FC01C7
+:1015C00080684FC0C23120E5D20729F48091FC0128
+:1015D0008460886046C0C33080E5D80721F48091DC
+:1015E000FC018E7F3EC0C53090E5D90721F4809183
+:1015F000FC018D7F36C0C73020E5D20721F48091F1
+:10160000FC018B7F2EC0C93080E5D80719F480918A
+:10161000FC0126C0CB3090E5D90721F48091FC0174
+:101620008F7E1FC0CD3020E5D20721F48091FC01D0
+:101630008F7D17C0CF3080E5D80721F48091FC0161
+:101640008F7B0FC0C13190E5D90721F48091FC0157
+:101650008F7707C0C331D04531F48091FC018B7F77
+:10166000877F8093FC018091FC010E945D21ABC0CB
+:101670008D2F99278F70992781309105D9F49E017C
+:101680002370332702C0880F991F2A95E2F79C68C0
+:101690008E0144E0000F111F4A95E1F700271370F7
+:1016A000802B912B53E0CC0FDD1F5A95E1F7C076CC
+:1016B000DD272FC08230910531F4DC2FCC278E013D
+:1016C000016F106A80C08330910569F4CE01837088
+:1016D000992701E010E002C0000F111F8A95E2F780
+:1016E000C8019C680FC084309105B9F4CE018370A5
+:1016F000992701E010E002C0000F111F8A95E2F760
+:10170000C8019A6823E0CC0FDD1F2A95E1F7C07E5F
+:10171000D7708C010C2B1D2B56C08530910531F4F0
+:10172000DC2FCC278E01046F106A4DC0069709F09C
+:101730004AC0CF71DD27DC2FCC278E01106243C059
+:1017400000E010E040C08E013EC001E810E43BC064
+:1017500003E810E438C002EE14E435C009EE14E4E6
+:1017600032C00AEE14E42FC005EB14E42CC006EBE3
+:1017700014E429C007EB14E426C00CEC14E423C0E5
+:101780000DEC14E420C003E815E41DC00AE815E4DC
+:101790001AC002E915E417C004E915E414C001E217
+:1017A00016E411C003E216E40EC004E216E40BC016
+:1017B00005E216E408C006E216E405C007E216E4F6
+:1017C00002C00AE216E4C801DF91CF911F910F9188
+:1017D000089596E0799FF001112494E5899FE00D2A
+:1017E000F11D1124E60FF11DEE0FFF1FE853FE4F10
+:1017F00085919491803E9105E0F4803C910558F5E7
+:101800008133910509F46FC048F48932910509F4D8
+:1018100063C08A32910509F46DC072C089339105A5
+:10182000E9F082389105D1F08533910509F44DC076
+:1018300067C0833E910581F138F4803E9105B9F08F
+:10184000823E9105D9F05CC0863E910561F1873EEC
+:101850009105A1F155C00E94A60908952091FC01AF
+:1018600020FD02C021FF4CC080EE90E049C0809175
+:10187000FC0180FFF9CF89E390E042C08091FC0138
+:1018800082FF0EC08091FC0184FF03C080E090E0E5
+:1018900037C083EE90E034C08091FC0182FFF2CF2C
+:1018A00082EE90E02DC08091FC0183FF0BC08091FF
+:1018B000FC0184FDEBCF87EE90E022C08091FC011B
+:1018C00083FFF5CF86EE90E01BC08091FC0185FF81
+:1018D00007C089E290E014C08091FC0185FFF9CF38
+:1018E00085E390E00DC08091FC0186FF07C08AE28D
+:1018F00090E006C08091FC0186FFF9CF81E390E083
+:101900000E94B609089508950C94830C809170018B
+:101910000895CF93DF9300D01F92CDB7DEB79C011F
+:101920008091F301843019F593E099833B832A83F6
+:101930009093E9008FEF9091E800815095FD06C0EB
+:1019400095ED9A95F1F700008111F5CF8091E800AF
+:1019500085FF0DC040E050E063E070E0CE010196ED
+:101960000E94F30E8091E8008E778093E8000F903C
+:101970000F900F90DF91CF910895CF93DF9300D018
+:101980001F92CDB7DEB72091F301243021F522E07C
+:1019900029839B838A8383E08093E9008FEF909172
+:1019A000E800815095FD06C095ED9A95F1F700008D
+:1019B0008111F5CF8091E80085FF0DC040E050E037
+:1019C00063E070E0CE0101960E94F30E8091E80082
+:1019D0008E778093E8000F900F900F90DF91CF915A
+:1019E00008952091F3012430F1F422E02093E900DE
+:1019F0002FEF3091E800215035FD06C035ED3A95C6
+:101A0000F1F700002111F5CF2091E80025FF0BC070
+:101A100040E050E065E070E00E94F30E8091E80045
+:101A20008E778093E8000895CF93DF93EC01909137
+:101A3000F301943009F046C080910C018823D9F05D
+:101A400080910D018823B9F09093E9008FEF909178
+:101A5000E800815095FD06C095E19A95F1F70000E8
+:101A60008111F5CF8091E80085FF2CC040E050E067
+:101A700060E170E017C081E08093E9008FEF909102
+:101A8000E800815095FD06C095ED9A95F1F70000AC
+:101A90008111F5CF8091E80085FF14C040E050E04F
+:101AA00068E070E0CE010E94F30E8091E8008E772E
+:101AB0008093E80080E1FE01A0E6B1E001900D9284
+:101AC0008A95E1F7DF91CF9108958091F20181111C
+:101AD00009C00E9488100E94E5108091E200846095
+:101AE0008093E20008951092F201089508950C94F5
+:101AF000CC250E942D1F0E94D2250E948B130C948E
+:101B0000840C42E061EC81E00E94021042E061EC52
+:101B100082E00E94021042E061EC83E00E94021029
+:101B200042E161EC84E00C9402108091F501833075
+:101B300009F455C030F4813071F0823009F48EC060
+:101B400008958A3009F47AC08B3009F460C0893076
+:101B500009F09CC020C08091F401813A09F096C040
+:101B60008091E800877F8093E8008091F801909150
+:101B7000F901892B21F460E180E691E003C060E087
+:101B800080E090E070E00E943E0F8091E8008B774B
+:101B90008093E80008958091F401813209F076C0C5
+:101BA0008091F8019091F901009719F0039709F0DD
+:101BB0006DC08091E800877F8093E8008091E80005
+:101BC00082FD05C08091F3018111F8CF5FC0809143
+:101BD000F100809370018091E8008B7753C0809171
+:101BE000F401813A09F052C08091F8019091F90115
+:101BF000892B09F04BC08091E800877F8093E80033
+:101C00008091E80080FFFCCF80910C0136C080916C
+:101C1000F4018132D9F58091F8019091F901892B75
+:101C2000A9F58091E800877F8093E8000E94371033
+:101C30008091F60180930C010C9424188091F4019A
+:101C4000813221F58091E800877F8093E8000E942F
+:101C500037108091F7018093710108958091F4010C
+:101C6000813AA1F48091E800877F8093E800809119
+:101C7000E80080FFFCCF809171018093F10080919A
+:101C8000E8008E778093E8000C943710089584B7AD
+:101C9000877F84BF88E10FB6F8948093600010922C
+:101CA00060000FBE90E080E80FB6F894809361006A
+:101CB000909361000FBE0E94DA130E9488100E9468
+:101CC000E5108091E20084608093E20078940E94A5
+:101CD0006B130E94DC1382E091E00E9486130E9445
+:101CE000BA258091F301853069F40E94F41E809139
+:101CF000F1018823B1F30E941F1F882391F30E94F2
+:101D0000DD0EEFCF0E94E213ECCF292F33272330D3
+:101D10003105C9F064F42130310581F022303105FC
+:101D200009F043C08DE690E024E936E042C021325C
+:101D30003105F1F02232310541F137C082E190E006
+:101D400021E037E036C099278130910541F082309B
+:101D5000910541F0892B49F5E0E9F6E005C0E8E797
+:101D6000F6E002C0E0E6F6E0849190E09F0121C039
+:101D70006430D8F4E62FF0E0EE0FFF1FEE5DFE4F6B
+:101D80002081318189E090E014C0643070F470E00B
+:101D9000FB01EE0FFF1FE65EFE4F20813181FB014C
+:101DA000EA5EFE4F808190E004C080E090E020E099
+:101DB00030E0FA0131832083089580E189BD82E11A
+:101DC00089BD09B400FEFDCF8091D8008F7D80933E
+:101DD000D8008091E00082608093E0008091E00074
+:101DE00081FDFCCF0895CF92DF92EF92FF920F9387
+:101DF0001F93CF93DF93EC018B016A010E94561071
+:101E0000811133C0C114D10439F0F6018081918170
+:101E1000081B190BC80FD91FE12CF12C0115110556
+:101E200019F18091E80085FD16C08091E8008E7759
+:101E30008093E800C114D10449F0F60180819181BA
+:101E4000E80EF91EF182E08285E00FC00E94561074
+:101E5000882321F30AC089918093F1000150110970
+:101E6000FFEFEF1AFF0ADACF80E0DF91CF911F91E9
+:101E70000F91FF90EF90DF90CF9008952091FA019D
+:101E80003091FB012617370748F06115710539F4C9
+:101E90002091E8002E772093E80001C0B90140E0CE
+:101EA00061157105A9F12091F301222309F443C0C2
+:101EB000253009F442C02091E80023FD40C0209164
+:101EC000E80022FD32C02091E80020FFE9CF4091D8
+:101ED000F3002091F20030E0342BFC01CF016115BA
+:101EE000710559F02830310540F481918093F1005B
+:101EF000615071092F5F3F4FF1CF41E0283031052C
+:101F000009F040E02091E8002E772093E800C8CF48
+:101F10004111C9CF0AC08091F301882361F0853057
+:101F200061F08091E80083FD0AC08091E80082FFA3
+:101F3000F2CF80E0089582E0089583E0089581E083
+:101F400008952091FA013091FB012617370748F0D8
+:101F50006115710539F42091E8002E772093E8008F
+:101F600001C0B901FC0120E06115710591F180917A
+:101F7000F301882309F440C0853009F43FC0809103
+:101F8000E80083FD3DC08091E80082FD2FC0809174
+:101F9000E80080FFE9CF2091F3008091F20090E00B
+:101FA000922B6115710559F08830910540F4249108
+:101FB0002093F1003196615071090196F2CF21E032
+:101FC000089709F020E08091E8008E778093E80080
+:101FD000CBCF2111CCCF0AC08091F301882361F0CF
+:101FE000853061F08091E80083FD0AC08091E800AF
+:101FF00082FFF2CF80E0089582E0089583E00895A3
+:1020000081E00895982F973058F59093E90098173C
+:1020100039F07091EC002091ED005091F00003C078
+:10202000242F762F50E021FF19C03091EB003E7F26
+:102030003093EB003091ED003D7F3093ED00309117
+:10204000EB0031603093EB007093EC002093ED00D7
+:102050005093F0002091EE0027FF07C09F5FD3CF81
+:102060008F708093E90081E0089580E00895809169
+:10207000F40187FF11C08091E80082FD05C08091C6
+:10208000F3018111F8CF11C08091E8008B770BC06C
+:102090008091F301882349F08091E80080FFF8CF18
+:1020A0008091E8008E778093E80008952091E40005
+:1020B0003091E50095E64091EC00842F817040FF5F
+:1020C00022C08091E80080FD1CC08091F30188232C
+:1020D00091F0853091F08091EB0085FD10C040912A
+:1020E000E4005091E5004217530729F39A019150FB
+:1020F00011F784E0089582E0089583E0089581E077
+:10210000089580E008954091E80042FFDECF0895F1
+:102110000E94F6100E94FE10E0EEF0E080818160E7
+:102120008083E8EDF0E080818F77808319BCA7ED94
+:10213000B0E08C918E7F8C9380818F7E8083109213
+:10214000F20108950F931F93CF93DF930E94F6102F
+:102150000E94FE10C8EDD0E088818F778883888147
+:102160008068888388818F7D888319BC1092F301F1
+:102170001092EF011092F1011092F00100EE10E0C8
+:10218000F80180818B7F808388818160888342E031
+:1021900060E080E00E940210E1EEF0E080818E7F3E
+:1021A0008083E2EEF0E080818160808380818860BE
+:1021B0008083F80180818E7F80838881806188831D
+:1021C000DF91CF911F910F910895E8EDF0E08081AC
+:1021D0008F7E8083E7EDF0E080818160808384E002
+:1021E00082BF81E08093F2010C94A210E8EDF0E050
+:1021F00080818E7F80831092E20008951092DA0031
+:102200001092E10008951F920F920FB60F921124C1
+:102210002F933F934F935F936F937F938F939F93EE
+:10222000AF93BF93EF93FF938091E10082FF0BC0C8
+:102230008091E20082FF07C08091E1008B7F809354
+:10224000E1000E946A138091DA0080FF1FC0809134
+:10225000D80080FF1BC08091DA008E7F8093DA0067
+:102260008091D90080FF0DC080E189BD82E189BDE8
+:1022700009B400FEFDCF81E08093F3010E94650D5B
+:1022800005C019BC1092F3010E94730D8091E1000A
+:1022900080FF19C08091E20080FF15C08091E200AC
+:1022A0008E7F8093E2008091E20080618093E20063
+:1022B0008091D80080628093D80019BC85E080931B
+:1022C000F3010E94770D8091E10084FF30C080917E
+:1022D000E20084FF2CC080E189BD82E189BD09B4A0
+:1022E00000FEFDCF8091D8008F7D8093D800809133
+:1022F000E1008F7E8093E1008091E2008F7E8093E9
+:10230000E2008091E20081608093E2008091EF0121
+:10231000882311F084E007C08091E30087FD02C0AC
+:1023200081E001C083E08093F3010E94790D8091E8
+:10233000E10083FF29C08091E20083FF25C08091E6
+:10234000E100877F8093E10082E08093F3011092A7
+:10235000EF018091E1008E7F8093E1008091E200A7
+:102360008E7F8093E2008091E20080618093E200A2
+:1023700042E060E080E00E9402108091F0008860FE
+:102380008093F0000E94760DFF91EF91BF91AF9185
+:102390009F918F917F916F915F914F913F912F917D
+:1023A0000F900FBE0F901F9018951F920F920FB6AF
+:1023B0000F9211242F933F934F935F936F937F93CB
+:1023C0008F939F93AF93BF93CF93DF93EF93FF933D
+:1023D000C091E900CF708091EC00D82FD17080FDC2
+:1023E000D0E81092E9008091F000877F8093F000A0
+:1023F00078940E9419121092E9008091F000886090
+:102400008093F000CD2BCF70C093E900FF91EF9146
+:10241000DF91CF91BF91AF919F918F917F916F91FC
+:102420005F914F913F912F910F900FBE0F901F9092
+:1024300018951F93CF93DF93CDB7DEB7AA970FB64A
+:10244000F894DEBF0FBECDBFE4EFF1E088E08E0F61
+:102450009091F10091938E13FBCF0E94950D809186
+:10246000E80083FF1FC18091F4019091F501492F8D
+:1024700050E04A30510508F015C1FA01EB54FF4F06
+:102480000C945427803881F0823809F00BC1809178
+:10249000F8018F708093E9008091EB0085FB88271D
+:1024A00080F91092E90006C08091F0019091F1014D
+:1024B000911182609091E800977F9093E80080935B
+:1024C000F1001092F100C8C0282F2D7F09F0EAC05A
+:1024D000882319F0823061F0E5C08091F6018130E7
+:1024E00009F0E0C0933009F080E08093F1012BC047
+:1024F0008091F601811127C08091F8018F7009F455
+:10250000D1C08093E9002091EB0020FF1CC09330E4
+:1025100021F48091EB00806214C09091EB009061F7
+:102520009093EB0021E030E0A90102C0440F551F59
+:102530008A95E2F74093EA001092EA008091EB005E
+:1025400088608093EB001092E9008091E800877F1B
+:1025500086C08111A7C01091F6011F778091E3001A
+:102560008078812B8093E3008091E800877F8093BF
+:10257000E8000E9437108091E80080FFFCCF809136
+:10258000E30080688093E300111102C082E001C083
+:1025900083E08093F30186C08058823008F082C0C7
+:1025A0008091F6019091F7018C3D53E0950779F504
+:1025B00083E08A838AE289834FB7F894DE01139619
+:1025C00020E03EE051E2E32FF0E050935700E49129
+:1025D00020FF03C0E295EF703F5FEF708E2F90E019
+:1025E000EA3010F0C79601C0C0968D939D932F5F7F
+:1025F000243149F74FBF8091E800877F8093E8003E
+:102600006AE270E0CE0101960E943E0F14C0AE0156
+:102610004F5F5F4F6091F8010E94850EBC010097EB
+:1026200009F440C09091E800977F9093E800898179
+:102630009A810E94A10F8091E8008B778093E80037
+:1026400031C0803879F58091E800877F8093E80079
+:102650008091EF018093F1008091E8008E77809364
+:10266000E8000E9437101EC081111CC09091F60135
+:102670009230C0F48091E800877F8093E8009093C7
+:10268000EF010E9437108091EF01811106C0809107
+:10269000E30087FD02C081E001C084E08093F30184
+:1026A0000E94810D8091E80083FF0AC08091E800BC
+:1026B000877F8093E8008091EB0080628093EB003D
+:1026C000AA960FB6F894DEBF0FBECDBFDF91CF91B3
+:1026D0001F9108950895CF938091F3018823A1F06D
+:1026E000C091E900CF709091EC00892F817090FD2E
+:1026F00080E8C82B1092E9008091E80083FD0E94D9
+:102700001912CF70C093E900CF910895909377018B
+:10271000809376010895E0917601F09177013097EA
+:1027200021F00190F081E02D099480E00895E0917E
+:102730007601F0917701309721F00280F381E02D4E
+:1027400009940895E0917601F0917701309721F096
+:102750000480F581E02D0994089520917401309151
+:1027600075018217930771F090937501809374013E
+:10277000E0917601F0917701309721F00680F781A2
+:10278000E02D099408952091720130917301821710
+:10279000930771F09093730180937201E091760139
+:1027A000F0917701309721F00084F185E02D0994B4
+:1027B000089508950C94D9130E94331F0E94E004D9
+:1027C0000C94F51F9F92AF92BF92CF92DF92EF923F
+:1027D000FF920F931F93CF93DF9300D000D000D0D0
+:1027E000CDB7DEB70E94F8040DE010E0AA24A39450
+:1027F000B12C902E802F0E94E605980127583E4F5D
+:102800006901F901F080F826A1F40150110988F757
+:102810008FEF89838A831B820E943C1F8160782FFF
+:102820009D838C8349815A816B818D810E947914AB
+:102830002FC09091DC0191FF04C08E830E94EC05B3
+:102840008E8125E030E0A501022E01C0440F0A94DC
+:10285000EAF7E42E4F21C1F029839A828E2191E07C
+:1028600009F490E09B830E943C1F8160782F9D8338
+:102870008C8349815A816B818D810E947914F60184
+:102880008081E826E08204C021503109E0F6BDCF06
+:102890000E94DC22109178010E948B131817B9F066
+:1028A0000E948B138093780126960FB6F894DEBFB2
+:1028B0000FBECDBFDF91CF911F910F91FF90EF9091
+:1028C000DF90CF90BF90AF909F900C94840C269691
+:1028D0000FB6F894DEBF0FBECDBFDF91CF911F9131
+:1028E0000F91FF90EF90DF90CF90BF90AF909F90AF
+:1028F0000895CF93DF93CDB7DEB72B970FB6F8943B
+:10290000DEBF0FBECDBF4F83588769877A878B871D
+:10291000DE01119686E0FD0111928A95E9F785E0C6
+:10292000FE01379601900D928A95E1F749815A810F
+:102930006B817C818D819E810E94C21A2B960FB67D
+:10294000F894DEBF0FBECDBFDF91CF910895CF9336
+:10295000882309F4C2C0C82F823859F40E948B130F
+:1029600081FDBBC089E30E949C1D0E94691E89E312
+:102970000CC0833879F40E948B1380FDAEC083E5D0
+:102980000E949C1D0E94691E83E50E94DE1DCF915E
+:102990000C94691E843859F40E948B1382FD9DC0EB
+:1029A00087E40E949C1D0E94691E87E4EECF8CEF95
+:1029B0008C0F813A48F48C2F0E941F2581118DC005
+:1029C0008C2F0E949C1DE3CF80E28C0F883048F44E
+:1029D000C77081E001C0880FCA95EAF70E94221EE5
+:1029E000D6CF8BE58C0F833078F4C53A29F0C63A00
+:1029F00031F083E890E005C081E890E002C082E811
+:102A000090E0CF910C94AD1388E58C0F833108F0E2
+:102A100064C0C83A39F1C93A41F1CA3A49F1CB3AEE
+:102A200051F1CC3A59F1CD3A61F1C03B69F1CE3A5E
+:102A300071F1CF3A79F1C13B81F1C23B89F1C33BDE
+:102A400091F1C43B99F1C53BA1F1C63BA9F1C73B4C
+:102A5000B1F1C83BB9F1C93BC1F1CA3BC9F180E052
+:102A600090E038C082EE90E035C089EE90E032C050
+:102A70008AEE90E02FC085EB90E02CC086EB90E0D2
+:102A800029C087EB90E026C08CEC90E023C08DEC51
+:102A900090E020C083E891E01DC08AE891E01AC070
+:102AA00082E991E017C084E991E014C081E292E0EC
+:102AB00011C083E292E00EC084E292E00BC085E296
+:102AC00092E008C086E292E005C087E292E002C090
+:102AD0008AE292E0CF910C94C313CF91089588239A
+:102AE00009F44BC0823859F40E948B1381FF45C012
+:102AF00089E30E949C1D0E94691E89E30CC08338F3
+:102B000071F40E948B1380FF38C083E50E949C1DE6
+:102B10000E94691E83E50E94DE1D0C94691E8438A4
+:102B200059F40E948B1382FF28C087E40E949C1DE9
+:102B30000E94691E87E4EFCF9CEF980F913A58F3FB
+:102B400090E2980F983050F4877091E001C0990F8F
+:102B50008A95EAF7892F0E94281EDFCF9BE5980F00
+:102B6000933020F480E090E00C94AD13885A8331C8
+:102B700020F480E090E00C94C3130895882321F0A2
+:102B80000E94221E0C94691E0895882321F00E9441
+:102B9000281E0C94691E08957F928F929F92AF9287
+:102BA000BF92CF92DF92EF92FF920F931F93CF933A
+:102BB000DF931F92CDB7DEB77C01C62E772EFC01C6
+:102BC000058102950F70128111110E943F1E0E9413
+:102BD000951D882379F0112369F080E28C0D8830EF
+:102BE00048F082E00E947E1D0E94951D91E0D82E43
+:102BF000D92601C0D12CE72DE295EF70F0E0E15429
+:102C0000FF4F0C945427872D807F072D0F7088234A
+:102C100011F00295007F112389F0002309F490C17F
+:102C200080E28C0D883020F4802F0E94221E03C089
+:102C3000802F0E94321E0E94691E82C18C2D0E942C
+:102C40006F15002309F495C180E28C0D883020F4C3
+:102C5000802F0E94281E03C0802F0E94381E0E94D1
+:102C6000691E87C1972D907F872D8F70903211F04C
+:102C70008295807FCC2021F0F1E0CF16B1F01EC00C
+:102C8000112349F0002309F414C1013009F011C1E6
+:102C90000E94521E6EC1002319F0013009F469C16F
+:102CA00089830E94551E89810AC1112321F00230B7
+:102CB00008F05FC1FEC001115CC101C1112321F008
+:102CC000002309F4F6C03CC1002309F4F8C03EC15A
+:102CD000872D86958695837090E0009719F001976F
+:102CE00061F047C1112321F08C2D972D937002C004
+:102CF00080E090E00E94AD133CC1112321F08C2DA7
+:102D0000972D937002C080E090E00E94C31331C100
+:102D10008C2D112319F00E94E42102C00E944C2244
+:102D20000E94D12226C1872D837009F052C0111153
+:102D300020C18C2D829586958770880F880F9C2DD9
+:102D40009F70892E912CA12CB12C082E04C0880CC8
+:102D5000991CAA1CBB1C0A94D2F7C4FE14C00FE035
+:102D600010E020E030E0B901A80104C0440F551F75
+:102D7000661F771F8A95D2F7CB01BA0160957095CF
+:102D80008095909503C060E070E0CB01272D2695DB
+:102D90002695237030E02230310569F0233031056B
+:102DA00089F0682979298A299B292130310571F018
+:102DB0000E940A1CDEC0682979298A299B290E9461
+:102DC000261CD7C00E940A1CC501B4010E94EE1B3C
+:102DD000D0C0112319F0872D817001C086958823FA
+:102DE00009F4C7C08C2D829586958770880F880F4F
+:102DF0009C2D9F70892E912CA12CB12C082E04C0E3
+:102E0000880C991CAA1CBB1C0A94D2F7C4FE14C0DF
+:102E10000FE010E020E030E0B901A80104C0440F49
+:102E2000551F661F771F8A95D2F7CB01BA016095AF
+:102E300070958095909503C060E070E0CB01272DE0
+:102E4000269526952370422F50E04230510569F0B7
+:102E50004330510589F0682979298A299B29413015
+:102E6000510571F00E94E41C84C0682979298A29DF
+:102E70009B290E94001D7DC00E94E41CC501B40175
+:102E80000E94C81C76C08C2D90E0FC01E05EF10928
+:102E9000E531F10508F050C0E153FF4F0C94542781
+:102EA0000C2D0F70872D8F71112331F00E94611C42
+:102EB000802F0E94BE155DC00E94821C802F0E9440
+:102EC000C51557C0112339F0011153C0872D8F71DB
+:102ED0000E94A71C4EC0023008F04BC0F7CF112350
+:102EE00039F0872D8F710E94611C43C01123C9F3F3
+:102EF000872D8F710E94821C3CC0112329F0872DE1
+:102F00008F710E944C1C35C00E94421C32C011239C
+:102F100051F0172D1F71812F0E94611C63E0812FDA
+:102F20000E94751D26C081E00E947E1D023008F1BE
+:102F300082E00E947E1D1DC0112331F0002389F222
+:102F40008C2D0E94A71415C0002391F28C2D0E9495
+:102F50006F150FC0472D4F706C2DC7010E94700771
+:102F60000E94661B06C0472D4F706C2DC7010E9442
+:102F70009309DD20F9F00E94711D80FD1BC0F7014F
+:102F800012820E946B1D0E94611CC7010E94E917FA
+:102F90000E946B1D0F90DF91CF911F910F91FF90B9
+:102FA000EF90DF90CF90BF90AF909F908F907F90E9
+:102FB0000C94821C0F90DF91CF911F910F91FF9085
+:102FC000EF90DF90CF90BF90AF909F908F907F90C9
+:102FD00008950F931F93CF93DF93EC01888199811C
+:102FE0002B813C81232BB9F09F3F11F48F3F99F047
+:102FF000CE010E94EB08882371F0688179818A8173
+:103000000E94671D8C010E941C1D0E94E31BB801D9
+:10301000CE010E94CC15DF91CF911F910F910895A1
+:103020000E943F1E0E944F1E0E94141E0E94691E95
+:103030000E9482230E94D12280E090E00E94AD1382
+:1030400080E090E00C94C3130E942F1E0C94101883
+:103050000E945C1D292F22952F7030E02C30310505
+:103060004CF42A3031056CF42250310922303105FC
+:10307000A8F407C02C30310569F02F30310551F02C
+:103080000DC0803F69F018F4803E40F409C0843FD1
+:1030900029F406C093FB882780F9089580E00895FD
+:1030A00081E00895CF93DF9300D000D01F92CDB779
+:1030B000DEB70F900F900F900F900F90DF91CF9190
+:1030C0000895CF93DF9300D000D000D0CDB7DEB706
+:1030D00026960FB6F894DEBF0FBECDBFDF91CF911D
+:1030E00008951F93CF93DF93C091870116E08091DD
+:1030F0008801C81799F0D0E01C9FF0011D9FF00DCA
+:103100001124E757FE4F4081518162817381848190
+:1031100095810E9461182196C770E9CFDF91CF9108
+:103120001F9108954091B9015091BA016091BB017E
+:103130007091BC018091BD019091BE010C94611809
+:103140008091BE0182958F7009F054C08091BB01BF
+:10315000882309F44FC080918701A0918801609174
+:10316000B9017091BA014091BC015091BD01B6E026
+:103170008A1709F43FC090E041155105C1F17F3F26
+:1031800011F46F3FA1F1B89FF001B99FF00D112428
+:10319000E757FE4F218172132AC02081621327C096
+:1031A0002281211124C0238134812417350710F492
+:1031B00021503109241B350B283C3105C0F42091E6
+:1031C000BE012F7020612093BE0126E0289FF001F0
+:1031D000299FF00D1124E257FE4F80818F7080618E
+:1031E000808389EB91E00E94E9170C947118019695
+:1031F0008770BECF0895CF92DF92EF92FF920F9328
+:103200001F93CF93DF93CDB7DEB762970FB6F894D5
+:10321000DEBF0FBECDBF8C0185E0F801DE011D963B
+:1032200001900D928A95E1F7D8014C9111965C912D
+:10323000119712966C9112971396CD90DC9014977B
+:103240003091B9017091BA018091BC019091BD019A
+:10325000009709F46BC17F3F19F43F3F09F466C141
+:10326000E090BB01EE2009F4C0C02091BE01C81659
+:10327000D90628F0F601E81BF90BCF0104C08095B0
+:1032800090958C0D9D1DFF24F394883C910578F05A
+:10329000F12C207F09F0C6C07C2DD98AC88A898983
+:1032A0000E94521889EB91E00E94E917B1C0822F69
+:1032B000807F09F046C0751314C0341312C0611129
+:1032C00010C02F7020612093BE010E94921889EBDC
+:1032D00091E00E94E9178091BE01D80115968C9368
+:1032E0002EC0CD2819F15F3F11F44F3FF9F0F62EB3
+:1032F00061111CC0809187012091880136E08217FE
+:1033000009F45AC090E0389FF001399FF00D112464
+:10331000E757FE4F7181571306C07081471303C0F2
+:103320007281711103C001968770E9CFF62E662372
+:1033300009F418C18091BE0181608093BE01F12C17
+:1033400011C1751308C0341306C0611104C0809107
+:10335000BE01D801C3C04D875E878D859E856A8B6F
+:103360000E9428186A898823E1F16623D1F120910F
+:10337000BE01822F82958F7090E0029774F0809149
+:10338000B9019091BA0198878F831986DB86CA8626
+:103390002C87CE0107960E94E91786E0F801A9EB79
+:1033A000B1E001900D928A95E1F70E94A0180E9469
+:1033B0009218FF24F394D6C04D875E878D859E8535
+:1033C0000E945C1D292F22952F7030E0223031059C
+:1033D0000CF0BCC09F7009F0B6C0805E883008F465
+:1033E000C1C0C8010E94E917E4CFC816D90608F485
+:1033F00053C0F601E81BF90BCF01883C910508F496
+:1034000050C0F12C7C2DD98AC88A89890E94521813
+:10341000E9EBF1E086E0DF011D928A95E9F70E9471
+:103420009218A0C0751314C0341312C0611110C0DB
+:103430008091BE01F8018583C8010E94E91786E0EA
+:10344000E9EBF1E0DF011D928A95E9F7FE2C8AC0D5
+:103450004D875E878D859E856A8B0E9428186A89B4
+:10346000882309F4BECF662309F4BBCF2091BE01A7
+:10347000822F82958F7090E002970CF48ECF80910E
+:10348000B9019091BA019A8389831B82DD82CC8233
+:103490002E83CE0101967FCF809590958C0D9D1D3A
+:1034A000ACCFF62E662309F49CCF75132EC03413CF
+:1034B0002CC02091BE0120FD1FC0822F82958F70ED
+:1034C000D9F0D80115962C9315978F3049F08F5F5E
+:1034D000982F9295907F822F8F70892B15968C93C1
+:1034E000C8010E94E91786E0F801A9EBB1E001905C
+:1034F0000D928A95E1F793CF86E0F801A9EBB1E050
+:1035000001900D928A95E1F72DC04D875E878D85DC
+:103510009E850E942818811140CF8091BE01816054
+:103520008093BE01C8010E94E9171CC0662309F4FC
+:1035300058CF4D875E878D859E850E9428188823E9
+:1035400009F44FCF2ACF811148CF0CC02430310568
+:103550000CF047CF9F7009F440CFF8019581907F20
+:1035600009F03BCF8F2D62960FB6F894DEBF0FBEE9
+:10357000CDBFDF91CF911F910F91FF90EF90DF9022
+:10358000CF9008951F93CF93DF93CDB7DEB72C97DD
+:103590000FB6F894DEBF0FBECDBF4F835887698743
+:1035A0007A878B879C87CE0107960E94FB18882319
+:1035B00069F08F8198852A853B85232BF1F19F3F08
+:1035C00009F063C08F3F09F060C037C086E0FE019C
+:1035D0003796DE01119601900D928A95E1F76F8181
+:1035E0007885EA85FB85309741F17F3F11F46F3F85
+:1035F00021F12091880130E0C90101968770992757
+:103600004091870150E08417950709F447C069830A
+:103610007A83FD83EC8396E0929FD001939FB00D57
+:103620001124A757BE4FFE01319601900D929A9535
+:10363000E1F7809388010E94711816E0809187015C
+:10364000909188018917C1F1189FC00111248757F3
+:103650009E4F0E94FB18882379F1E09187011E9FFD
+:10366000F0011124E757FE4F40815181628173813F
+:10367000848195810E9461188091870190E0019674
+:103680008770992780938701D9CF4F8158856985A5
+:103690007A858B859C850E946118CFCF0E94241863
+:1036A0001092880110928701E9EBF1E086E0DF01DA
+:1036B0001D928A95E9F7C1CF2C960FB6F894DEBF1C
+:1036C0000FBECDBFDF91CF911F910895EF92FF9272
+:1036D0000F931F93CF93DF938C01009709F46CC075
+:1036E000F12CEE24E394E8012196F80184918437CB
+:1036F00040F4843008F051C0813081F0823019F1FB
+:103700005BC0853709F444C0A8F19CE7980F903757
+:1037100008F052C08F770E946F1541C00E5F1F4F97
+:10372000FE01C49180E28C0F883048F4C7708E2D62
+:1037300001C0880FCA95EAF70E94421E14C08C2F60
+:103740000E94A7142DC00E5F1F4FFE01C49180E29E
+:103750008C0F883058F4C7708E2D01C0880FCA9521
+:10376000EAF70E94481E0E94691E1AC08C2F0E9410
+:103770006F1516C00E5F1F4FFE01C491CC2381F060
+:103780008FE99FE00197F1F700C00000C150F6CF2C
+:103790000E5F1F4FFE01F49003C00E94A7148E011C
+:1037A0008F2D882309F49FCFEFE9FFE03197F1F7E0
+:1037B00000C000008150F5CFDF91CF911F910F9194
+:1037C000FF90EF90089508956093C3017093C40132
+:1037D0008093C5019093C6010C9410180F931F930A
+:1037E0000091C3011091C4012091C5013091C6011F
+:1037F000DC01CB01802B912BA22BB32B8093C30137
+:103800009093C401A093C501B093C6011F910F917D
+:103810000C9410180F931F930091C3011091C401D1
+:103820002091C5013091C601DC01CB018023912399
+:10383000A223B3238093C3019093C401A093C50135
+:10384000B093C6011F910F910C9410180F931F9302
+:103850000091C3011091C4012091C5013091C601AE
+:10386000DC01CB0180279127A227B3278093C301D6
+:103870009093C401A093C501B093C6011F910F910D
+:103880000C9410181092BF011092C0011092C10147
+:103890001092C2010C94101841E050E060E070E01A
+:1038A00004C0440F551F661F771F8A95D2F74093B7
+:1038B000BF015093C0016093C1017093C2010C9489
+:1038C000101841E050E060E070E004C0440F551F64
+:1038D000661F771F8A95D2F78091BF019091C00132
+:1038E000A091C101B091C201482B592B6A2B7B2BAF
+:1038F0004093BF015093C0016093C1017093C20116
+:103900000C94101841E050E060E070E004C0440FF7
+:10391000551F661F771F8A95D2F740955095609581
+:1039200070958091BF019091C001A091C101B091AB
+:10393000C201482359236A237B234093BF0150933C
+:10394000C0016093C1017093C2010C94101841E052
+:1039500050E060E070E004C0440F551F661F771F01
+:103960008A95D2F78091BF019091C001A091C101C9
+:10397000B091C201482759276A277B274093BF018E
+:103980005093C0016093C1017093C2010C94101850
+:103990000F931F930091BF011091C0012091C101AD
+:1039A0003091C201DC01CB01802B912BA22BB32BD8
+:1039B0008093BF019093C001A093C101B093C20155
+:1039C0001F910F910C9410180F931F930091BF013A
+:1039D0001091C0012091C1013091C201DC01CB01E5
+:1039E00080239123A223B3238093BF019093C0012E
+:1039F000A093C101B093C2011F910F910C941018B4
+:103A00000F931F930091BF011091C0012091C1013C
+:103A10003091C201DC01CB0180279127A227B32777
+:103A20008093BF019093C001A093C101B093C201E4
+:103A30001F910F910C9410180895CF92DF92EF927E
+:103A4000FF920F931F93CF93DF938C01C090C3011C
+:103A5000D090C401E090C501F090C6018091BF01F3
+:103A60009091C001A091C101B091C201C82AD92A88
+:103A7000EA2AFB2ACFE1D0E0D701C6010C2E04C010
+:103A8000B695A795979587950A94D2F780FF06C0BB
+:103A9000B8018C2F0E94E90B019721F4219760F760
+:103AA00080E001C08C2FDF91CF911F910F91FF908B
+:103AB000EF90DF90CF900895CF93DF93EC010E94B9
+:103AC0001D1DBE010E94E90BDF91CF910895CB012E
+:103AD0000E945C1D08958091C70185958595859507
+:103AE00008958091C7018770089598E0899F90019B
+:103AF0001124262B2093C7010C94611C2091C7012F
+:103B0000809582238093C701982F977069F430E0E5
+:103B1000482F552747FD50952417350729F08595DF
+:103B2000859585950C94821C08959091C701977096
+:103B300081E009F480E0089590910C01992321F02F
+:103B400090910D01911109C020910E0130910F014A
+:103B5000F90132969FEF40E01FC0982F96959695F9
+:103B600096959F3050F5E0910E01F0910F01E90F0D
+:103B7000F11D877021E030E0A90102C0440F551FFC
+:103B80008A95E2F7CA019181892B818308959F3F2D
+:103B900039F04F5F4E3041F051915813F8CF0DC0BE
+:103BA0005111F7CF942FF5CF9F3F39F0F901E90F6D
+:103BB000F11D97FDFA9582830895089590910C0167
+:103BC000992321F090910D01911109C020910E01CE
+:103BD00030910F01F9013296205F3F4F1FC0982F9F
+:103BE0009695969596959F30F0F4E0910E01F091A0
+:103BF0000F01E90FF11D877021E030E0A90102C03B
+:103C0000440F551F8A95E2F7CA0180959181892357
+:103C1000818308953196E217F30729F09081981374
+:103C2000F9CF1082F7CF089581E090E0E0910E0186
+:103C3000F0910F01E80FF91F108201968031910574
+:103C4000A9F708959091DB01892B8093DB010895FA
+:103C500080959091DB0189238093DB010895109278
+:103C6000DB0108959091DA01892B8093DA010895A0
+:103C700080959091DA0189238093DA01089510925A
+:103C8000DA0108959091D901892B8093D901089583
+:103C900080959091D90189238093D901089510923C
+:103CA000D90108958093C80108951092C80108951C
+:103CB00080910E0190910F01FC0131969C01205FD3
+:103CC0003F4F80E0919191118F5FE217F307D1F799
+:103CD0000895E0910E01F0910F018091DB01808346
+:103CE000E0910E01F0910F0190818091DA01892B12
+:103CF0008083E0910E01F0910F0190818091D901B4
+:103D0000892B80838091C801882361F0E0910E01A6
+:103D1000F0910F019081892B80830E94581E8111A0
+:103D20001092C80180910E0190910F010C9497138D
+:103D300020E0009739F0AC014150510984239523CC
+:103D40002F5FF7CF822F0895CF92DF92EF92FF92ED
+:103D50006C01EE24FF24C114D104E104F10421F02C
+:103D6000C701B60120E101C020E0C72ED82EE92E00
+:103D7000FF24C114D104E104F10419F0285FC70144
+:103D8000B6016B017C0154E0F694E794D794C79494
+:103D90005A95D1F7C114D104E104F10419F02C5F54
+:103DA000C701B6016B017C0142E0F694E794D79419
+:103DB000C7944A95D1F7C114D104E104F10419F074
+:103DC0002E5FC701B601DC01CB01B695A79597958B
+:103DD0008795892B8A2B8B2B09F02F5F822FFF90E1
+:103DE000EF90DF90CF9008958091F301843021F11E
+:103DF0001092DD0120E488E190E00FB6F894A895D8
+:103E0000809360000FBE2093600080E00E94840CCD
+:103E100083B7817F846083BF83B7816083BF7894D9
+:103E2000889583B78E7F83BF88E10FB6F89480931F
+:103E30006000109260000FBE0895089508950E94DA
+:103E40001D1F0E94F8040E941E1F0E94ED0591E0B4
+:103E5000811101C090E0892F08950E9424180E94CA
+:103E60008B130C94840C82E084BD93E095BD9AEF93
+:103E700097BD80936E0008952FB7F8948091DE016E
+:103E80009091DF01A091E001B091E1012FBF089571
+:103E9000CF92DF92EF92FF920F931F932FB7F89478
+:103EA0004091DE015091DF016091E0017091E101EC
+:103EB0002FBF6A017B01EE24FF248C0120E030E05B
+:103EC000C016D106E206F30610F4415051099A01DA
+:103ED000281B390BC9011F910F91FF90EF90DF90C4
+:103EE000CF9008951F920F920FB60F9211248F93C7
+:103EF0009F93AF93BF938091DE019091DF01A091DA
+:103F0000E001B091E1010196A11DB11D8093DE0198
+:103F10009093DF01A093E001B093E101BF91AF91D5
+:103F20009F918F910F900FBE0F901F9018950E9438
+:103F30008810F8942FEF87EA91E621508040904056
+:103F4000E1F700C0000087E090EBDC018093FD0109
+:103F50009093FE01A093FF01B09300029CE088E1E2
+:103F60000FB6F894A895809360000FBE9093600000
+:103F7000FFCFEF92FF920F931F93CF93DF93D82F32
+:103F8000CDE08C2F0E94E60505E010E0E82EF12C34
+:103F9000C701002E02C0959587950A94E2F780FF2D
+:103FA00009C0602F7C2F80E00E949409D81302C0C2
+:103FB00081E006C00150110958F7C15010F780E0A8
+:103FC000DF91CF911F910F91FF90EF900895CF93C4
+:103FD000C82F8CE20E94B91F882321F08C2FCF912B
+:103FE0000C94B91F80E0CF910895CF930E943C219B
+:103FF000811102C00E942221C5E6C15049F00E94F1
+:10400000F8048FE39CE90197F1F700C00000F5CFB9
+:1040100089E20E94E71F811113C18AE20E94E71F13
+:1040200081110E94222185E00E94E71F81110E94D8
+:10403000971F0E9447218093DC0187E00E94E71FC1
+:104040008823A9F18BE10E94E71F882351F080911A
+:10405000DC0181FB222720F991E0922790FB81F976
+:104060000EC08EE00E94E71F882361F08091DC0182
+:1040700082FB222720F991E0922790FB82F980931E
+:10408000DC0115C080E10E94E71F9091DC018823CC
+:1040900041F093FB222720F981E0822780FB93F9EE
+:1040A00004C0892F809580FB90F99093DC0180916A
+:1040B000DC010E944B210E9459218093FC0180EE7B
+:1040C0000E94E71F882341F08091FC01982F909572
+:1040D00090FB80F98093FC0189E30E94E71F88230D
+:1040E00059F08091FC0181FB222720F991E0922771
+:1040F00090FB81F98093FC0182EE0E94E71F8823E8
+:1041000059F08091FC0182FB222720F991E092274F
+:1041100090FB82F98093FC0186EE0E94E71F8823C2
+:1041200059F08091FC0183FB222720F991E092272E
+:1041300090FB83F98093FC0183EE0E94E71F8823A4
+:1041400059F08091FC0184FB222720F991E092270D
+:1041500090FB84F98093FC0185E30E94E71F88238C
+:1041600059F08091FC0185FB222720F991E09227EC
+:1041700090FB85F98093FC0181E30E94E71F88236F
+:1041800059F08091FC0186FB222720F991E09227CB
+:1041900090FB86F98093FC0181E10E94E71F882350
+:1041A00059F08091FC0187FB222720F991E09227AA
+:1041B00090FB87F98093FC018091FC010E945D21B6
+:1041C0008091FC0187FB882780F980930D0187E2AD
+:1041D0000E94E71FC82F8EE10E94E71F8111C26075
+:1041E0008FE10E94E71F8111C46080E20E94E71FF7
+:1041F0008111C86081E20E94E71F8111C06182E2E3
+:104200000E94E71F8111C06283E20E94E71F8111B3
+:10421000C06484E20E94E71F882311F0C06802C0D6
+:10422000CC2329F08C2F0E9454216C2F03C00E94B4
+:104230005021682F70E080E090E0CF910C94E41B57
+:10424000CF9108956DEE7EEF80E090E00E948E2782
+:1042500060E082E090E00E947C2760E083E090E0F4
+:104260000E947C2760E084E090E00E947C2760E070
+:1042700085E090E00C947C2780E090E00E94762717
+:1042800021E08D3E9E4F09F020E0822F089582E0CC
+:1042900090E00C946E27682F82E090E00C947C27CD
+:1042A00083E090E00C946E27682F83E090E00C94FC
+:1042B0007C2784E090E00C946E27682F84E090E0E7
+:1042C0000C947C278091E40180FF0BC06091130166
+:1042D00085E0689FB0011124759567957595679580
+:1042E0002BC081FF09C06091130185E0689FB00178
+:1042F00011247595679520C082FF07C06091130156
+:1043000085E0689FB001112417C09091E5019923C1
+:10431000D1F060911201961788F72091130185E082
+:10432000289F90011124929FA001939F500D11246A
+:1043300070E0CA010E9440276038710540F46115A1
+:10434000710539F002C065E070E0862F08958FE7AF
+:10435000089581E008958091E40180FF08C0609194
+:10436000110170E0759567957595679521C081FF7E
+:1043700006C06091110170E07595679519C082FFC4
+:1043800004C06091110170E010C09091E501992383
+:10439000C1F0609110019617A0F780911101899FDB
+:1043A000C001112470E00E9440276038710528F494
+:1043B0006115710521F0862F08958FE7089581E03A
+:1043C000089561E070E0F4CF803F21F40E94622103
+:1043D000819504C0813F29F40E9462218093E80105
+:1043E0000895823F21F40E946221819504C0833F99
+:1043F00029F40E9462218093E7010895893F19F40E
+:104400000E94AB2105C08A3F31F40E94AB21819507
+:104410008093E90108958B3F21F40E94AB2181959F
+:1044200004C08C3F29F40E94AB218093EA010895D7
+:10443000843F21F48091E601816017C0853F21F41B
+:104440008091E601826011C0863F21F48091E601EF
+:1044500084600BC0873F21F48091E601886005C02D
+:10446000883F31F48091E60180618093E6010895F0
+:104470008D3F21F48091E40181600BC08E3F21F4D7
+:104480008091E401826005C08F3F29F48091E401AE
+:1044900084608093E4010895803F39F48091E801BD
+:1044A00087FF6CC01092E80169C0813F29F48091B8
+:1044B000E8011816BCF362C09091E701823F29F42D
+:1044C00097FF5CC01092E70159C0833F19F4191699
+:1044D000CCF354C0893F41F48091E90118160CF0E7
+:1044E0004DC01092E9014AC08A3F29F48091E90148
+:1044F00087FF44C0F6CF8B3F39F48091EA0187FFF4
+:104500003DC01092EA013AC08C3F29F48091EA0143
+:104510001816BCF333C0843F21F48091E6018E7FEE
+:1045200017C0853F21F48091E6018D7F11C0863F41
+:1045300021F48091E6018B7F0BC0873F21F48091AD
+:10454000E601877F05C0883F31F48091E6018F7EC8
+:104550008093E60113C08D3F21F48091E4018E7FAA
+:104560000BC08E3F21F48091E4018D7F05C08F3F09
+:1045700029F48091E4018B7F8093E4018091E7012D
+:1045800081110EC08091E80181110AC08091E9017A
+:10459000811106C08091EA01811102C01092E501EB
+:1045A000089586EE91E00E94A2130E943C1F909312
+:1045B000E3018093E20108951F93CF93DF938091ED
+:1045C000E2019091E3010E94481FAC019091E50146
+:1045D000992321F02091140130E006C020911501AB
+:1045E0008AE0289F900111244217530708F486C0DF
+:1045F0008091E701C091E801D091E9011091EA01B1
+:10460000811107C0C11176C0D11174C0111172C0DF
+:1046100075C09F3F19F09F5F9093E501181624F431
+:104620000E9462218093E7018091E70187FF05C026
+:104630000E94622181958093E7011C1624F40E9458
+:1046400062218093E8018091E80187FF05C00E9404
+:10465000622181958093E8016091E701662339F139
+:10466000C091E801CC2319F1772767FD7095872F5A
+:10467000972F0E94512623E333E343E35FE30E9435
+:10468000B5260E941E266093E7016C2F772767FDF1
+:104690007095872F972F0E94512623E333E343E33E
+:1046A0005FE30E94B5260E941E266093E8011D1656
+:1046B00024F40E94AB218093E9018091E90187FFF6
+:1046C00005C00E94AB2181958093E901111624F465
+:1046D0000E94AB218093EA018091EA0187FF05C027
+:1046E0000E94AB2181958093EA01DF91CF911F91C8
+:1046F0000C94D1229F3F09F08ECF96CFDF91CF91BE
+:104700001F910895E6EEF1E085E0DF011D928A95A4
+:10471000E9F71092E5011092E4010895833081F1E8
+:1047200028F4813059F08230D1F00895853009F4B1
+:1047300049C0B8F1863009F456C00895809115013A
+:10474000262F30E0280F311D2F3F310524F4680F4C
+:104750006093150108958FEF80931501089580915E
+:104760001401262F30E0280F311D2F3F310524F48E
+:10477000680F6093140108958FEF809314010895DA
+:1047800080911301262F30E0280F311D2F3F310576
+:1047900024F4680F6093130108958FEF8093130141
+:1047A000089580911201262F30E0280F311D2F3FF0
+:1047B000310524F4680F6093120108958FEF809300
+:1047C0001201089580911101262F30E0280F311D2C
+:1047D0002F3F310524F4680F6093110108958FEF86
+:1047E00080931101089580911001262F30E0280F49
+:1047F000311D2F3F310524F4680F60931001089597
+:104800008FEF809310010895833011F128F48130E7
+:1048100049F0823091F00895853081F120F18630A1
+:10482000C1F1089580911501681720F4861B8093CB
+:1048300015010895109215010895809114016817CB
+:1048400020F4861B8093140108951092140108959A
+:1048500080911301681720F4861B8093130108953B
+:1048600010921301089580911201681720F4861B9D
+:104870008093120108951092120108958091110100
+:10488000681720F4861B809311010895109211017E
+:10489000089580911001681720F4861B8093100101
+:1048A00008951092100108950F931F938D3109F40C
+:1048B0006BC008F03FC08E3009F47FC0C0F4873071
+:1048C00009F469C068F4863009F0B1C08091DC0158
+:1048D000817F8E7F8093DC0181E08093EC01A8C012
+:1048E000883009F4A2C08B3009F49FC0A0C0863183
+:1048F00009F49BC078F4803109F472C0813109F069
+:1049000096C00E94241890910D0181E08927809320
+:104910000D018BC0893109F488C08B3109F087C043
+:104920008091DC0181FB222720F991E0922790FB06
+:1049300081F94CC0853309F470C048F4873209F41A
+:104940006CC008F459C0893209F467C070C0833460
+:1049500038F48A3308F04EC0883309F466C067C063
+:10496000833409F45AC0883409F061C00E942418C5
+:104970000FEF13ED20E3015010402040E1F700C09D
+:1049800000000E94971F51C00E94D8250E948B13DF
+:104990000E94840C4AC09091DC01892F809581701F
+:1049A00080FB90F929F0966098609093DC0140C0FC
+:1049B000997F977F9093DC0138C08091DC0182FB66
+:1049C000222720F991E0922790FB82F98093DC0165
+:1049D000992359F18091DC0181608093DC0125C02D
+:1049E0008091DC0183FB222720F991E0922790FB44
+:1049F00083F9ECCF895301C08D5141E050E060E074
+:104A000070E08A019B0104C0000F111F221F331F99
+:104A10008A95D2F7C901B80104C061E070E080E076
+:104A200090E00E94E41B0E94241881E001C080E015
+:104A30001F910F91089580E0089580E00895CF932D
+:104A4000C82F8091EC01813079F018F08230E9F1C3
+:104A500087C0E0910E01F0910F018081813169F0F2
+:104A6000823209F07FC009C0E0910E01F0910F0180
+:104A70008081813111F0823261F48C2F0E941B25DC
+:104A8000811104C08C2F0E9454241DC081E090E04D
+:104A90001AC08C2F0E941D25811114C0C43179F0D9
+:104AA00048F4CB3079F0C03109F060C082E08093E7
+:104AB000EC0108C0C93219F0C83321F057C0109278
+:104AC000EC0154C081E0817053C0C93289F118F5FE
+:104AD000C43171F1A8F4C73009F046C08AE0809370
+:104AE000150194E19093140193E090931301809346
+:104AF000120188E08093110188E28093100134C094
+:104B0000CE51C63088F5EC2FF0E0E65DFE4F808197
+:104B10008093EB0129C0CE34E9F020F4CB3421F5A9
+:104B20006AE013C0C13579F0C235F1F461E00DC01F
+:104B30008091EB01882319F01092EB0115C081E000
+:104B40008093EC0115C061E006C08091EB010E94EA
+:104B50008E230AC06AE08091EB010E94042404C005
+:104B60001092EC0180E004C081E002C080E0ABCF95
+:104B7000CF910895E1E8F0E08081886080838081B2
+:104B8000816080838FB7F89493E09093890090EDD3
+:104B9000909388008FBF0895EFE6F0E080818260F7
+:104BA00080830895EFE6F0E080818D7F8083089513
+:104BB000EFE6F0E0908182E08927808308951F92DC
+:104BC0000F920FB60F9211242F933F934F935F9341
+:104BD0006F937F938F939F93AF93BF93EF93FF93C5
+:104BE0008091ED019091EE0101969093EE018093FA
+:104BF000ED01811103C082E00E94840CE091EE017E
+:104C0000E695E695F0E0E25FF74FE4918091ED01E3
+:104C10008E1303C080E00E94840CFF91EF91BF913E
+:104C2000AF919F918F917F916F915F914F913F9144
+:104C30002F910F900FBE0F901F90189504D068947D
+:104C4000B1118DC0089570D088F09F5790F0B92FA2
+:104C50009927B751A0F0D1F0660F771F881F991FD1
+:104C60001AF0BA95C9F712C0B13081F077D0B1E02F
+:104C7000089574C0672F782F8827B85F39F0B93F3F
+:104C8000CCF3869577956795B395D9F73EF49095D3
+:104C90008095709561957F4F8F4F9F4F0895E89451
+:104CA00009C097FB3EF490958095709561957F4F74
+:104CB0008F4F9F4F9923A9F0F92F96E9BB27939522
+:104CC000F695879577956795B795F111F8CFFAF432
+:104CD000BB0F11F460FF1BC06F5F7F4F8F4F9F4F63
+:104CE00016C0882311F096E911C0772321F09EE8C1
+:104CF000872F762F05C0662371F096E8862F70E027
+:104D000060E02AF09A95660F771F881FDAF7880F00
+:104D10009695879597F9089557FD9058440F551F1C
+:104D200059F05F3F71F04795880F97FB991F61F02D
+:104D30009F3F79F087950895121613061406551FA4
+:104D4000F2CF4695F1DF08C0161617061806991F10
+:104D5000F1CF86957105610508940895E894BB2705
+:104D600066277727CB0197F908950BD078C069D0D3
+:104D700028F06ED018F0952309F05AC05FC01124B6
+:104D8000EECFCADFA0F3959FD1F3950F50E0551FEA
+:104D9000629FF001729FBB27F00DB11D639FAA2790
+:104DA000F00DB11DAA1F649F6627B00DA11D661FDF
+:104DB000829F2227B00DA11D621F739FB00DA11D00
+:104DC000621F839FA00D611D221F749F3327A00DBA
+:104DD000611D231F849F600D211D822F762F6A2F56
+:104DE00011249F5750408AF0E1F088234AF0EE0FDB
+:104DF000FF1FBB1F661F771F881F91505040A9F7E8
+:104E00009E3F510570F014C0AACF5F3FECF3983E6F
+:104E1000DCF3869577956795B795F795E7959F5F4E
+:104E2000C1F7FE2B880F911D9695879597F90895E8
+:104E300097F99F6780E870E060E008959FEF80EC4D
+:104E4000089500240A9416161706180609060895F0
+:104E500000240A9412161306140605060895092E56
+:104E60000394000C11F4882352F0BB0F40F4BF2BC5
+:104E700011F460FF04C06F5F7F4F8F4F9F4F089505
+:104E800097FB072E16F4009407D077FD09D00E94F7
+:104E90005A2707FC05D03EF4909581959F4F0895C1
+:104EA000709561957F4F0895EE0FFF1F0590F49167
+:104EB000E02D0994AA1BBB1B51E107C0AA1FBB1F11
+:104EC000A617B70710F0A61BB70B881F991F5A9596
+:104ED000A9F780959095BC01CD010895F999FECF71
+:104EE00092BD81BDF89A992780B50895A8E1B0E0F8
+:104EF00042E050E00C949627262FF999FECF92BD00
+:104F000081BDF89A019700B4021639F01FBA20BD8E
+:104F10000FB6F894FA9AF99A0FBE08950196272FC2
+:104F20000E947D270C947C27DC01CB01FC01F999C0
+:104F3000FECF06C0F2BDE1BDF89A319600B40D92E5
+:0C4F400041505040B8F70895F894FFCF9E
+:104F4C000220860C140DF10CBD0C890C0101C90159
+:104F5C0028080A03140A3F4D3639CF0782074C073D
+:104F6C001307A606BF06D806F106010203040506C0
+:044F7C000708090019
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/german-manuneo/keymap.c b/keyboards/ergodox_ez/keymaps/german-manuneo/keymap.c new file mode 100644 index 000000000..5fcc14d51 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/german-manuneo/keymap.c @@ -0,0 +1,783 @@ +#include "ergodox_ez.h" +#include "action_layer.h" +#include "keymap.h" +#include "keymap_german.h" + +#define UC_ASYMPTOTICALLY_EQUAL_TO 0 +#define UC_DIVISION_SIGN 1 +#define UC_DOWNWARDS_ARROW 2 +#define UC_ELEMENT_OF 3 +#define UC_EMPTY_SET 4 +#define UC_FOR_ALL 5 +#define UC_GREEK_CAPITAL_LETTER_ALPHA 6 +#define UC_GREEK_CAPITAL_LETTER_BETA 7 +#define UC_GREEK_CAPITAL_LETTER_CHI 8 +#define UC_GREEK_CAPITAL_LETTER_DELTA 9 +#define UC_GREEK_CAPITAL_LETTER_EPSILON 10 +#define UC_GREEK_CAPITAL_LETTER_ETA 11 +#define UC_GREEK_CAPITAL_LETTER_GAMMA 12 +#define UC_GREEK_CAPITAL_LETTER_IOTA 13 +#define UC_GREEK_CAPITAL_LETTER_KAPPA 14 +#define UC_GREEK_CAPITAL_LETTER_LAMDA 15 +#define UC_GREEK_CAPITAL_LETTER_MU 16 +#define UC_GREEK_CAPITAL_LETTER_NU 17 +#define UC_GREEK_CAPITAL_LETTER_OMEGA 18 +#define UC_GREEK_CAPITAL_LETTER_OMICRON 19 +#define UC_GREEK_CAPITAL_LETTER_PHI 20 +#define UC_GREEK_CAPITAL_LETTER_PI 21 +#define UC_GREEK_CAPITAL_LETTER_PSI 22 +#define UC_GREEK_CAPITAL_LETTER_RHO 23 +#define UC_GREEK_CAPITAL_LETTER_SIGMA 24 +#define UC_GREEK_CAPITAL_LETTER_TAU 25 +#define UC_GREEK_CAPITAL_LETTER_THETA 26 +#define UC_GREEK_CAPITAL_LETTER_UPSILON 27 +#define UC_GREEK_CAPITAL_LETTER_XI 28 +#define UC_GREEK_CAPITAL_LETTER_ZETA 29 +#define UC_GREEK_SMALL_LETTER_ALPHA 30 +#define UC_GREEK_SMALL_LETTER_BETA 31 +#define UC_GREEK_SMALL_LETTER_CHI 32 +#define UC_GREEK_SMALL_LETTER_DELTA 33 +#define UC_GREEK_SMALL_LETTER_EPSILON 34 +#define UC_GREEK_SMALL_LETTER_ETA 35 +#define UC_GREEK_SMALL_LETTER_FINAL_SIGMA 36 +#define UC_GREEK_SMALL_LETTER_GAMMA 37 +#define UC_GREEK_SMALL_LETTER_IOTA 38 +#define UC_GREEK_SMALL_LETTER_KAPPA 39 +#define UC_GREEK_SMALL_LETTER_LAMDA 40 +#define UC_GREEK_SMALL_LETTER_MU 41 +#define UC_GREEK_SMALL_LETTER_NU 42 +#define UC_GREEK_SMALL_LETTER_OMEGA 43 +#define UC_GREEK_SMALL_LETTER_OMICRON 44 +#define UC_GREEK_SMALL_LETTER_PHI 45 +#define UC_GREEK_SMALL_LETTER_PI 46 +#define UC_GREEK_SMALL_LETTER_PSI 47 +#define UC_GREEK_SMALL_LETTER_RHO 48 +#define UC_GREEK_SMALL_LETTER_SIGMA 49 +#define UC_GREEK_SMALL_LETTER_TAU 50 +#define UC_GREEK_SMALL_LETTER_THETA 51 +#define UC_GREEK_SMALL_LETTER_UPSILON 52 +#define UC_GREEK_SMALL_LETTER_XI 53 +#define UC_GREEK_SMALL_LETTER_ZETA 54 +#define UC_INFINITY 55 +#define UC_LEFTWARDS_ARROW 56 +#define UC_MULTIPLICATION_SIGN 57 +#define UC_NOT_AN_ELEMENT_OF 58 +#define UC_NOT_EQUAL_TO 59 +#define UC_PLUS_MINUS_SIGN 60 +#define UC_RIGHTWARDS_ARROW 61 +#define UC_SUBSCRIPT_EIGHT 62 +#define UC_SUBSCRIPT_FIVE 63 +#define UC_SUBSCRIPT_FOUR 64 +#define UC_SUBSCRIPT_NINE 65 +#define UC_SUBSCRIPT_ONE 66 +#define UC_SUBSCRIPT_SEVEN 67 +#define UC_SUBSCRIPT_SIX 68 +#define UC_SUBSCRIPT_THREE 69 +#define UC_SUBSCRIPT_TWO 70 +#define UC_SUBSCRIPT_ZERO 71 +#define UC_SUPERSCRIPT_EIGHT 72 +#define UC_SUPERSCRIPT_FIVE 73 +#define UC_SUPERSCRIPT_FOUR 74 +#define UC_SUPERSCRIPT_LATIN_SMALL_LETTER_N 75 +#define UC_SUPERSCRIPT_NINE 76 +#define UC_SUPERSCRIPT_ONE 77 +#define UC_SUPERSCRIPT_SEVEN 78 +#define UC_SUPERSCRIPT_SIX 79 +#define UC_SUPERSCRIPT_THREE 80 +#define UC_SUPERSCRIPT_TWO 81 +#define UC_SUPERSCRIPT_ZERO 82 +#define UC_THERE_DOES_NOT_EXIST 83 +#define UC_THERE_EXISTS 84 +#define UC_UPWARDS_ARROW 85 +#define UC_VULGAR_FRACTION_ONE_EIGHTH 86 +#define UC_VULGAR_FRACTION_ONE_FIFTH 87 +#define UC_VULGAR_FRACTION_ONE_HALF 88 +#define UC_VULGAR_FRACTION_ONE_QUARTER 89 +#define UC_VULGAR_FRACTION_ONE_SIXTH 90 +#define UC_VULGAR_FRACTION_ONE_THIRD 91 +#define UC_VULGAR_FRACTION_THREE_QUARTERS 92 +#define UC_VULGAR_FRACTION_TWO_THIRDS 93 +#define UM 94 + +#define L0 0 // layer_0 +#define L1 1 // layer_1 +#define L2 2 // layer_2 +#define L3 3 // layer_3 +#define L4 4 // layer_4 +#define L5 5 // layer_5 +#define L6 6 // layer_6 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* + * .------------------------------------.------------------------------------. + * |MO(5)| 1 | 2 | 3 | 4 | 5 |ACUT | GRV | 6 | 7 | 8 | 9 | 0 |CIRC | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * |MO(4)| X | P | F | W | G |HOME |TG(2)| H | J | K | L | Q | Z | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * |MO(1)| U | I | A | E | O |-----!-----! S | N | R | T | D | SS | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * |MO(3)| UE | OE | AE | C | V |END | TAB | B | M |COMM| DOT| UP | Y | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | |LGUI|LALT|LCTL| !RCTL|RALT|LEFT|DOWN|RGHT| + * '------------------------' '------------------------' + * .-----------. .-----------. + * |INS |TG(2)| !M(UM)|DELT | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | APP | ! PGUP| ! ! + * ! ! !-----! !-----! ! ! + * |BSPC |LSFT | ESC | ! PGDN|ENTER|SPACE| + * '-----------------' '-----------------' + */ +[L0] = KEYMAP( + MO(5), DE_1, DE_2, DE_3, DE_4, DE_5, DE_ACUT, + MO(4), DE_X, DE_P, DE_F, DE_W, DE_G, KC_HOME, + MO(1), DE_U, DE_I, DE_A, DE_E, DE_O, + MO(3), DE_UE, DE_OE, DE_AE, DE_C, DE_V, KC_END, + KC_TRNS, KC_TRNS, KC_LGUI, KC_LALT, KC_LCTL, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_INS, TG(2), + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_APP, + /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, KC_LSFT, KC_ESC, + DE_GRV, DE_6, DE_7, DE_8, DE_9, DE_0, DE_CIRC, + TG(2), DE_H, DE_J, DE_K, DE_L, DE_Q, DE_Z, + /*-*/ DE_S, DE_N, DE_R, DE_T, DE_D, DE_SS, + KC_TAB, DE_B, DE_M, DE_COMM, DE_DOT, KC_UP, DE_Y, + /*-*/ /*-*/ KC_RCTL, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT, + M(UM), KC_DELT, + KC_PGUP, + KC_PGDN, KC_ENTER, KC_SPACE +), +/* + * .------------------------------------.------------------------------------. + * | |EXLM|DQOT|PARA| | | | | | | | |RING| | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | |ASTR|PIPE|SLSH|LCBR|RCBR| | |HASH|LESS|MORE| |DQOT| | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | |UNDS|MINS|AMPR|LBRC|RBRC|-----!-----!DLR |LPRN|RPRN|TILD|QUOT| QST | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | |PLUS|EQL | | | | |BSLS|PERC|SCLN|COLN| ↑ | | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | ← | ↓ | → | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' + */ +[L1] = KEYMAP( + KC_TRNS, DE_EXLM, DE_DQOT, DE_PARA, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, DE_ASTR, DE_PIPE, DE_SLSH, DE_LCBR, DE_RCBR, KC_TRNS, + KC_TRNS, DE_UNDS, DE_MINS, DE_AMPR, DE_LBRC, DE_RBRC, + KC_TRNS, KC_TRNS, DE_PLUS, DE_EQL, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_RING, KC_TRNS, + KC_TRNS, DE_HASH, DE_LESS, DE_MORE, KC_TRNS, DE_DQOT, KC_TRNS, + /*-*/ DE_DLR, DE_LPRN, DE_RPRN, DE_TILD, DE_QUOT, DE_QST, + KC_TRNS, DE_BSLS, DE_PERC, DE_SCLN, DE_COLN, M(UC_UPWARDS_ARROW), KC_TRNS, + /*-*/ /*-*/ KC_TRNS, KC_TRNS, M(UC_LEFTWARDS_ARROW), M(UC_DOWNWARDS_ARROW), M(UC_RIGHTWARDS_ARROW), + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* + * .------------------------------------.------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | F11 | F12 | F6 | F7 | F8 | F9 |F10 |PEQL | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | | | | | | | | | P7 | P8 | P9 |PAST|PSLS | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | | | | |-----!-----! | P4 | P5 | P6 |PMNS|PMNS | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | | | | | | NLCK| | P1 | P2 | P3 |PPLS|PPLS | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! P0 |PCMM|PDOT|PENT|PENT| + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' + */ +[L2] = KEYMAP( + 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, + KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PEQL, + KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PAST, KC_PSLS, + /*-*/ KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PMNS, + KC_NLCK, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_PPLS, + /*-*/ /*-*/ KC_P0, KC_PCMM, KC_PDOT, KC_PENT, KC_PENT, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* + * .------------------------------------.------------------------------------. + * | | ¹ | ² | ³ | ⁴ | ⁵ | ∀ | | ⁶ | ⁷ | ⁸ | ⁹ | ⁰ | | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | × | ½ | ÷ | ¼ | ⅕ | | | ⅙ | | ⅛ | | | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | ± | AT |EURO| ∅ |-----!-----! ∞ | ⁿ | ∃ | ∈ | | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | ⅓ | ≠ | ⅔ | ¾ | ≃ | | |EXLM| | ∄ | ∉ | | | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' + */ +[L3] = KEYMAP( + KC_TRNS, M(UC_SUPERSCRIPT_ONE), M(UC_SUPERSCRIPT_TWO), M(UC_SUPERSCRIPT_THREE), M(UC_SUPERSCRIPT_FOUR), M(UC_SUPERSCRIPT_FIVE), M(UC_FOR_ALL), + KC_TRNS, M(UC_MULTIPLICATION_SIGN), M(UC_VULGAR_FRACTION_ONE_HALF), M(UC_DIVISION_SIGN), M(UC_VULGAR_FRACTION_ONE_QUARTER), M(UC_VULGAR_FRACTION_ONE_FIFTH), KC_TRNS, + KC_TRNS, KC_TRNS, M(UC_PLUS_MINUS_SIGN), DE_AT, DE_EURO, M(UC_EMPTY_SET), + KC_TRNS, M(UC_VULGAR_FRACTION_ONE_THIRD), M(UC_NOT_EQUAL_TO), M(UC_VULGAR_FRACTION_TWO_THIRDS), M(UC_VULGAR_FRACTION_THREE_QUARTERS), M(UC_ASYMPTOTICALLY_EQUAL_TO), KC_TRNS, + 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(UC_SUPERSCRIPT_SIX), M(UC_SUPERSCRIPT_SEVEN), M(UC_SUPERSCRIPT_EIGHT), M(UC_SUPERSCRIPT_NINE), M(UC_SUPERSCRIPT_ZERO), KC_TRNS, + KC_TRNS, M(UC_VULGAR_FRACTION_ONE_SIXTH), KC_TRNS, M(UC_VULGAR_FRACTION_ONE_EIGHTH), KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ M(UC_INFINITY), M(UC_SUPERSCRIPT_LATIN_SMALL_LETTER_N), M(UC_THERE_EXISTS), M(UC_ELEMENT_OF), KC_TRNS, KC_TRNS, + KC_TRNS, DE_EXLM, KC_TRNS, M(UC_THERE_DOES_NOT_EXIST), M(UC_NOT_AN_ELEMENT_OF), KC_TRNS, KC_TRNS, + /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* + * .------------------------------------.------------------------------------. + * | | ₁ | ₂ | ₃ | ₄ | ₅ | | | ₆ | ₇ | ₈ | ₉ | ₀ | | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | χ | π | φ | ω | γ | | | η | ξ | κ | λ | | ζ | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | υ | ι | α | ε | ο |-----!-----! σ | ν | ρ | τ | δ | ς | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | θ | | | | | | β | μ | | | | ψ | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' + */ +[L4] = KEYMAP( + KC_TRNS, M(UC_SUBSCRIPT_ONE), M(UC_SUBSCRIPT_TWO), M(UC_SUBSCRIPT_THREE), M(UC_SUBSCRIPT_FOUR), M(UC_SUBSCRIPT_FIVE), KC_TRNS, + KC_TRNS, M(UC_GREEK_SMALL_LETTER_CHI), M(UC_GREEK_SMALL_LETTER_PI), M(UC_GREEK_SMALL_LETTER_PHI), M(UC_GREEK_SMALL_LETTER_OMEGA), M(UC_GREEK_SMALL_LETTER_GAMMA), KC_TRNS, + KC_TRNS, M(UC_GREEK_SMALL_LETTER_UPSILON), M(UC_GREEK_SMALL_LETTER_IOTA), M(UC_GREEK_SMALL_LETTER_ALPHA), M(UC_GREEK_SMALL_LETTER_EPSILON), M(UC_GREEK_SMALL_LETTER_OMICRON), + KC_TRNS, KC_TRNS, M(UC_GREEK_SMALL_LETTER_THETA), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + 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(UC_SUBSCRIPT_SIX), M(UC_SUBSCRIPT_SEVEN), M(UC_SUBSCRIPT_EIGHT), M(UC_SUBSCRIPT_NINE), M(UC_SUBSCRIPT_ZERO), KC_TRNS, + KC_TRNS, M(UC_GREEK_SMALL_LETTER_ETA), M(UC_GREEK_SMALL_LETTER_XI), M(UC_GREEK_SMALL_LETTER_KAPPA), M(UC_GREEK_SMALL_LETTER_LAMDA), KC_TRNS, M(UC_GREEK_SMALL_LETTER_ZETA), + /*-*/ M(UC_GREEK_SMALL_LETTER_SIGMA), M(UC_GREEK_SMALL_LETTER_NU), M(UC_GREEK_SMALL_LETTER_RHO), M(UC_GREEK_SMALL_LETTER_TAU), M(UC_GREEK_SMALL_LETTER_DELTA), M(UC_GREEK_SMALL_LETTER_FINAL_SIGMA), + KC_TRNS, M(UC_GREEK_SMALL_LETTER_BETA), M(UC_GREEK_SMALL_LETTER_MU), KC_TRNS, KC_TRNS, KC_TRNS, M(UC_GREEK_SMALL_LETTER_PSI), + /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* + * .------------------------------------.------------------------------------. + * | | | | | | | | | | | | | | | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | Χ | Π | Φ | Ω | Γ | | | Η | Ξ | Κ | Λ | | Ζ | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | Υ | Ι | Α | Ε | Ο |-----!-----! Σ | Ν | Ρ | Τ | Δ | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | Θ | | | | | | Β | Μ | | | | Ψ | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' + */ +[L5] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_CHI), M(UC_GREEK_CAPITAL_LETTER_PI), M(UC_GREEK_CAPITAL_LETTER_PHI), M(UC_GREEK_CAPITAL_LETTER_OMEGA), M(UC_GREEK_CAPITAL_LETTER_GAMMA), KC_TRNS, + KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_UPSILON), M(UC_GREEK_CAPITAL_LETTER_IOTA), M(UC_GREEK_CAPITAL_LETTER_ALPHA), M(UC_GREEK_CAPITAL_LETTER_EPSILON), M(UC_GREEK_CAPITAL_LETTER_OMICRON), + KC_TRNS, KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_THETA), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ 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(UC_GREEK_CAPITAL_LETTER_ETA), M(UC_GREEK_CAPITAL_LETTER_XI), M(UC_GREEK_CAPITAL_LETTER_KAPPA), M(UC_GREEK_CAPITAL_LETTER_LAMDA), KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_ZETA), + /*-*/ M(UC_GREEK_CAPITAL_LETTER_SIGMA), M(UC_GREEK_CAPITAL_LETTER_NU), M(UC_GREEK_CAPITAL_LETTER_RHO), M(UC_GREEK_CAPITAL_LETTER_TAU), M(UC_GREEK_CAPITAL_LETTER_DELTA), KC_TRNS, + KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_BETA), M(UC_GREEK_CAPITAL_LETTER_MU), KC_TRNS, KC_TRNS, KC_TRNS, M(UC_GREEK_CAPITAL_LETTER_PSI), + /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* + * .------------------------------------.------------------------------------. + * | | | | | | | | | | | | | | | + * !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + * | | | | | | | | | | | | | | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | | | | |-----!-----! | | | | | | + * !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + * | | | | | | | | | | | | | | | + * '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + * | | | | | | ! | | | | | + * '------------------------' '------------------------' + * .-----------. .-----------. + * | | | ! | | + * .-----+-----+-----! !-----+-----+-----. + * ! ! | | ! | ! ! + * ! ! !-----! !-----! ! ! + * | | | | ! | | | + * '-----------------' '-----------------' + */ +[L6] = 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 +), +}; + +const uint16_t PROGMEM fn_actions[] = {}; + +#define UC_MODE_WIN 0 +#define UC_MODE_LINUX 1 +#define UC_MODE_OSX 2 + +// TODO: allow default mode to be configured +static uint16_t unicode_mode = UC_MODE_WIN; + +uint16_t hextokeycode(uint8_t hex) { + if (hex == 0x0) { + return KC_P0; + } + if (hex < 0xA) { + return KC_P1 + (hex - 0x1); + } + return KC_A + (hex - 0xA); +} + +void unicode_action_function(uint16_t hi, uint16_t lo) { + switch (unicode_mode) { + case UC_MODE_WIN: + register_code(KC_LALT); + + register_code(KC_PPLS); + unregister_code(KC_PPLS); + + register_code(hextokeycode((hi & 0xF0) >> 4)); + unregister_code(hextokeycode((hi & 0xF0) >> 4)); + register_code(hextokeycode((hi & 0x0F))); + unregister_code(hextokeycode((hi & 0x0F))); + register_code(hextokeycode((lo & 0xF0) >> 4)); + unregister_code(hextokeycode((lo & 0xF0) >> 4)); + register_code(hextokeycode((lo & 0x0F))); + unregister_code(hextokeycode((lo & 0x0F))); + + unregister_code(KC_LALT); + break; + case UC_MODE_LINUX: + register_code(KC_LCTL); + register_code(KC_LSFT); + + register_code(KC_U); + unregister_code(KC_U); + + register_code(hextokeycode((hi & 0xF0) >> 4)); + unregister_code(hextokeycode((hi & 0xF0) >> 4)); + register_code(hextokeycode((hi & 0x0F))); + unregister_code(hextokeycode((hi & 0x0F))); + register_code(hextokeycode((lo & 0xF0) >> 4)); + unregister_code(hextokeycode((lo & 0xF0) >> 4)); + register_code(hextokeycode((lo & 0x0F))); + unregister_code(hextokeycode((lo & 0x0F))); + + unregister_code(KC_LCTL); + unregister_code(KC_LSFT); + break; + case UC_MODE_OSX: + break; + } +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + if (!record->event.pressed) { + return MACRO_NONE; + } + // MACRODOWN only works in this function + switch(id) { + case UM: + unicode_mode = (unicode_mode + 1) % 2; + break; + +case UC_GREEK_SMALL_LETTER_OMICRON: + unicode_action_function(0x03, 0xbf); + break; +case UC_LEFTWARDS_ARROW: + unicode_action_function(0x21, 0x90); + break; +case UC_GREEK_CAPITAL_LETTER_RHO: + unicode_action_function(0x03, 0xa1); + break; +case UC_SUBSCRIPT_THREE: + unicode_action_function(0x20, 0x83); + break; +case UC_VULGAR_FRACTION_ONE_EIGHTH: + unicode_action_function(0x21, 0x5b); + break; +case UC_GREEK_SMALL_LETTER_LAMDA: + unicode_action_function(0x03, 0xbb); + break; +case UC_VULGAR_FRACTION_ONE_THIRD: + unicode_action_function(0x21, 0x53); + break; +case UC_GREEK_SMALL_LETTER_XI: + unicode_action_function(0x03, 0xbe); + break; +case UC_THERE_DOES_NOT_EXIST: + unicode_action_function(0x22, 0x04); + break; +case UC_SUPERSCRIPT_ONE: + unicode_action_function(0x00, 0xb9); + break; +case UC_GREEK_SMALL_LETTER_BETA: + unicode_action_function(0x03, 0xb2); + break; +case UC_SUBSCRIPT_FIVE: + unicode_action_function(0x20, 0x85); + break; +case UC_GREEK_CAPITAL_LETTER_IOTA: + unicode_action_function(0x03, 0x99); + break; +case UC_VULGAR_FRACTION_ONE_FIFTH: + unicode_action_function(0x21, 0x55); + break; +case UC_GREEK_SMALL_LETTER_PSI: + unicode_action_function(0x03, 0xc8); + break; +case UC_SUBSCRIPT_NINE: + unicode_action_function(0x20, 0x89); + break; +case UC_SUPERSCRIPT_FOUR: + unicode_action_function(0x20, 0x74); + break; +case UC_RIGHTWARDS_ARROW: + unicode_action_function(0x21, 0x92); + break; +case UC_SUPERSCRIPT_SIX: + unicode_action_function(0x20, 0x76); + break; +case UC_DOWNWARDS_ARROW: + unicode_action_function(0x21, 0x93); + break; +case UC_GREEK_SMALL_LETTER_PI: + unicode_action_function(0x03, 0xc0); + break; +case UC_SUPERSCRIPT_TWO: + unicode_action_function(0x00, 0xb2); + break; +case UC_GREEK_CAPITAL_LETTER_OMEGA: + unicode_action_function(0x03, 0xa9); + break; +case UC_GREEK_CAPITAL_LETTER_PSI: + unicode_action_function(0x03, 0xa8); + break; +case UC_SUBSCRIPT_FOUR: + unicode_action_function(0x20, 0x84); + break; +case UC_GREEK_CAPITAL_LETTER_NU: + unicode_action_function(0x03, 0x9d); + break; +case UC_DIVISION_SIGN: + unicode_action_function(0x00, 0xf7); + break; +case UC_GREEK_SMALL_LETTER_SIGMA: + unicode_action_function(0x03, 0xc3); + break; +case UC_GREEK_SMALL_LETTER_RHO: + unicode_action_function(0x03, 0xc1); + break; +case UC_VULGAR_FRACTION_ONE_SIXTH: + unicode_action_function(0x21, 0x59); + break; +case UC_GREEK_SMALL_LETTER_GAMMA: + unicode_action_function(0x03, 0xb3); + break; +case UC_VULGAR_FRACTION_TWO_THIRDS: + unicode_action_function(0x21, 0x54); + break; +case UC_GREEK_SMALL_LETTER_NU: + unicode_action_function(0x03, 0xbd); + break; +case UC_GREEK_SMALL_LETTER_ZETA: + unicode_action_function(0x03, 0xb6); + break; +case UC_GREEK_SMALL_LETTER_EPSILON: + unicode_action_function(0x03, 0xb5); + break; +case UC_GREEK_SMALL_LETTER_KAPPA: + unicode_action_function(0x03, 0xba); + break; +case UC_SUPERSCRIPT_SEVEN: + unicode_action_function(0x20, 0x77); + break; +case UC_GREEK_CAPITAL_LETTER_PI: + unicode_action_function(0x03, 0xa0); + break; +case UC_GREEK_SMALL_LETTER_FINAL_SIGMA: + unicode_action_function(0x03, 0xc2); + break; +case UC_GREEK_CAPITAL_LETTER_XI: + unicode_action_function(0x03, 0x9e); + break; +case UC_GREEK_SMALL_LETTER_THETA: + unicode_action_function(0x03, 0xb8); + break; +case UC_GREEK_SMALL_LETTER_ETA: + unicode_action_function(0x03, 0xb7); + break; +case UC_SUBSCRIPT_TWO: + unicode_action_function(0x20, 0x82); + break; +case UC_ASYMPTOTICALLY_EQUAL_TO: + unicode_action_function(0x22, 0x43); + break; +case UC_GREEK_SMALL_LETTER_ALPHA: + unicode_action_function(0x03, 0xb1); + break; +case UC_GREEK_CAPITAL_LETTER_PHI: + unicode_action_function(0x03, 0xa6); + break; +case UC_GREEK_SMALL_LETTER_PHI: + unicode_action_function(0x03, 0xc6); + break; +case UC_INFINITY: + unicode_action_function(0x22, 0x1e); + break; +case UC_GREEK_CAPITAL_LETTER_OMICRON: + unicode_action_function(0x03, 0x9f); + break; +case UC_ELEMENT_OF: + unicode_action_function(0x22, 0x08); + break; +case UC_MULTIPLICATION_SIGN: + unicode_action_function(0x00, 0xd7); + break; +case UC_SUBSCRIPT_ZERO: + unicode_action_function(0x20, 0x80); + break; +case UC_GREEK_CAPITAL_LETTER_SIGMA: + unicode_action_function(0x03, 0xa3); + break; +case UC_GREEK_SMALL_LETTER_OMEGA: + unicode_action_function(0x03, 0xc9); + break; +case UC_SUBSCRIPT_ONE: + unicode_action_function(0x20, 0x81); + break; +case UC_GREEK_CAPITAL_LETTER_ZETA: + unicode_action_function(0x03, 0x96); + break; +case UC_GREEK_SMALL_LETTER_TAU: + unicode_action_function(0x03, 0xc4); + break; +case UC_SUPERSCRIPT_FIVE: + unicode_action_function(0x20, 0x75); + break; +case UC_THERE_EXISTS: + unicode_action_function(0x22, 0x03); + break; +case UC_PLUS_MINUS_SIGN: + unicode_action_function(0x00, 0xb1); + break; +case UC_VULGAR_FRACTION_THREE_QUARTERS: + unicode_action_function(0x00, 0xbe); + break; +case UC_SUPERSCRIPT_THREE: + unicode_action_function(0x00, 0xb3); + break; +case UC_EMPTY_SET: + unicode_action_function(0x22, 0x05); + break; +case UC_UPWARDS_ARROW: + unicode_action_function(0x21, 0x91); + break; +case UC_SUPERSCRIPT_NINE: + unicode_action_function(0x20, 0x79); + break; +case UC_GREEK_SMALL_LETTER_DELTA: + unicode_action_function(0x03, 0xb4); + break; +case UC_GREEK_SMALL_LETTER_MU: + unicode_action_function(0x03, 0xbc); + break; +case UC_GREEK_CAPITAL_LETTER_KAPPA: + unicode_action_function(0x03, 0x9a); + break; +case UC_SUBSCRIPT_EIGHT: + unicode_action_function(0x20, 0x88); + break; +case UC_GREEK_CAPITAL_LETTER_ALPHA: + unicode_action_function(0x03, 0x91); + break; +case UC_SUBSCRIPT_SEVEN: + unicode_action_function(0x20, 0x87); + break; +case UC_GREEK_CAPITAL_LETTER_BETA: + unicode_action_function(0x03, 0x92); + break; +case UC_GREEK_CAPITAL_LETTER_ETA: + unicode_action_function(0x03, 0x97); + break; +case UC_SUPERSCRIPT_EIGHT: + unicode_action_function(0x20, 0x78); + break; +case UC_SUPERSCRIPT_ZERO: + unicode_action_function(0x20, 0x70); + break; +case UC_NOT_AN_ELEMENT_OF: + unicode_action_function(0x22, 0x09); + break; +case UC_GREEK_SMALL_LETTER_UPSILON: + unicode_action_function(0x03, 0xc5); + break; +case UC_NOT_EQUAL_TO: + unicode_action_function(0x22, 0x60); + break; +case UC_GREEK_CAPITAL_LETTER_CHI: + unicode_action_function(0x03, 0xa7); + break; +case UC_FOR_ALL: + unicode_action_function(0x22, 0x00); + break; +case UC_GREEK_CAPITAL_LETTER_TAU: + unicode_action_function(0x03, 0xa4); + break; +case UC_VULGAR_FRACTION_ONE_QUARTER: + unicode_action_function(0x00, 0xbc); + break; +case UC_GREEK_SMALL_LETTER_CHI: + unicode_action_function(0x03, 0xc7); + break; +case UC_GREEK_CAPITAL_LETTER_THETA: + unicode_action_function(0x03, 0x98); + break; +case UC_GREEK_SMALL_LETTER_IOTA: + unicode_action_function(0x03, 0xb9); + break; +case UC_GREEK_CAPITAL_LETTER_LAMDA: + unicode_action_function(0x03, 0x9b); + break; +case UC_SUPERSCRIPT_LATIN_SMALL_LETTER_N: + unicode_action_function(0x20, 0x7f); + break; +case UC_GREEK_CAPITAL_LETTER_UPSILON: + unicode_action_function(0x03, 0xa5); + break; +case UC_GREEK_CAPITAL_LETTER_MU: + unicode_action_function(0x03, 0x9c); + break; +case UC_GREEK_CAPITAL_LETTER_EPSILON: + unicode_action_function(0x03, 0x95); + break; +case UC_GREEK_CAPITAL_LETTER_GAMMA: + unicode_action_function(0x03, 0x93); + break; +case UC_SUBSCRIPT_SIX: + unicode_action_function(0x20, 0x86); + break; +case UC_GREEK_CAPITAL_LETTER_DELTA: + unicode_action_function(0x03, 0x94); + break; +case UC_VULGAR_FRACTION_ONE_HALF: + unicode_action_function(0x00, 0xbd); + break; + default: + 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 L1: + ergodox_right_led_1_on(); + break; + case L2: + ergodox_right_led_2_on(); + break; + case L3: + ergodox_right_led_3_on(); + break; + case L4: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + break; + case L5: + ergodox_right_led_1_on(); + ergodox_right_led_3_on(); + break; + // case L6: + // ergodox_right_led_2_on(); + // ergodox_right_led_3_on(); + // break; + // case L7: + // ergodox_right_led_1_on(); + // ergodox_right_led_2_on(); + // ergodox_right_led_3_on(); + // break; + default: + ergodox_board_led_off(); + break; + } +}; diff --git a/keyboards/ergodox_ez/keymaps/german-manuneo/keymap.md b/keyboards/ergodox_ez/keymaps/german-manuneo/keymap.md new file mode 100644 index 000000000..2c9e0a837 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/german-manuneo/keymap.md @@ -0,0 +1,188 @@ +# ManuNeo Ergodox Keyboard Layout + +Compile this file to a `keymap.c` file using `compile_keymap.py` + + python compile_keymap.py keymaps/german-manuneo/keymap.md + +Tested with python 2.7 and python 3.4 + + +# Layout Config + + { + "layout": "ergodox_ez", + "keymaps_includes": [ + "ergodox_ez.h", + "action_layer.h", + "keymap_common.h", + "keymap_extras/keymap_german.h", + ], + "key_prefixes": ["DE_", "KC_"], + "macros": { + // TODO: implement macros + // "MUC": "", + }, + // TODO: implement default unicode mode + } + + +# Layers + + +## Layer 0 + + .------------------------------------.------------------------------------. + |MO(5)| 1 | 2 | 3 | 4 | 5 |ACUT | GRV | 6 | 7 | 8 | 9 | 0 |CIRC | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + |MO(4)| X | P | F | W | G |HOME |TG(2)| H | J | K | L | Q | Z | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + |MO(1)| U | I | A | E | O |-----!-----! S | N | R | T | D | SS | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + |MO(3)| UE | OE | AE | C | V |END | TAB | B | M |COMM| DOT| UP | Y | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | |LGUI|LALT|LCTL| !RCTL|RALT|LEFT|DOWN|RGHT| + '------------------------' '------------------------' + .-----------. .-----------. + |INS |TG(2)| !M(UM)|DELT | + .-----+-----+-----! !-----+-----+-----. + ! ! | APP | ! PGUP| ! ! + ! ! !-----! !-----! ! ! + |BSPC |LSFT | ESC | ! PGDN|ENTER|SPACE| + '-----------------' '-----------------' + + +## Layer 1 + + .------------------------------------.------------------------------------. + | |EXLM|DQOT|PARA| | | | | | | | |RING| | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | |ASTR|PIPE|SLSH|LCBR|RCBR| | |HASH|LESS|MORE| |DQOT| | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | |UNDS|MINS|AMPR|LBRC|RBRC|-----!-----!DLR |LPRN|RPRN|TILD|QUOT| QST | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | |PLUS|EQL | | | | |BSLS|PERC|SCLN|COLN| ↑ | | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | ← | ↓ | → | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + + +## Layer 2 + + .------------------------------------.------------------------------------. + | | F1 | F2 | F3 | F4 | F5 | F11 | F12 | F6 | F7 | F8 | F9 |F10 |PEQL | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | | | | | | | | | P7 | P8 | P9 |PAST|PSLS | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | |-----!-----! | P4 | P5 | P6 |PMNS|PMNS | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | | | NLCK| | P1 | P2 | P3 |PPLS|PPLS | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! P0 |PCMM|PDOT|PENT|PENT| + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + + + +## Layer 3 + +http://symbolcodes.tlt.psu.edu/bylanguage/mathchart.html + + .------------------------------------.------------------------------------. + | | ¹ | ² | ³ | ⁴ | ⁵ | ∀ | | ⁶ | ⁷ | ⁸ | ⁹ | ⁰ | | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | × | ½ | ÷ | ¼ | ⅕ | | | ⅙ | | ⅛ | | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | ± | AT |EURO| ∅ |-----!-----! ∞ | ⁿ | ∃ | ∈ | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | ⅓ | ≠ | ⅔ | ¾ | ≃ | | |EXLM| | ∄ | ∉ | | | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + + +## Layer 4 + + + .------------------------------------.------------------------------------. + | | ₁ | ₂ | ₃ | ₄ | ₅ | | | ₆ | ₇ | ₈ | ₉ | ₀ | | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | χ | π | φ | ω | γ | | | η | ξ | κ | λ | | ζ | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | υ | ι | α | ε | ο |-----!-----! σ | ν | ρ | τ | δ | ς | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | θ | | | | | | β | μ | | | | ψ | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + + +## Layer 5 + + .------------------------------------.------------------------------------. + | | | | | | | | | | | | | | | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | Χ | Π | Φ | Ω | Γ | | | Η | Ξ | Κ | Λ | | Ζ | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | Υ | Ι | Α | Ε | Ο |-----!-----! Σ | Ν | Ρ | Τ | Δ | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | Θ | | | | | | Β | Μ | | | | Ψ | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + + +## Layer 6 + + .------------------------------------.------------------------------------. + | | | | | | | | | | | | | | | + !-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! + | | | | | | | | | | | | | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | |-----!-----! | | | | | | + !-----+----+----+----x----x----! ! !----x----x----+----+----+-----! + | | | | | | | | | | | | | | | + '-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' + diff --git a/keyboards/ergodox_ez/keymaps/german/compiled.hex b/keyboards/ergodox_ez/keymaps/german/compiled.hex new file mode 100644 index 000000000..3979ad8c9 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/german/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4
+:100010000C94BE020C94BE020C94BE020C94BE0260
+:100020000C94BE020C94BE020C94640D0C94360E1B
+:100030000C94BE020C94BE020C94BE020C94BE0240
+:100040000C94BE020C9440220C94BE020C94BE028E
+:100050000C94BE020C94D31B0C94BE020C94BE02F2
+:100060000C94BE020C94BE020C94BE020C94BE0210
+:100070000C94BE020C94BE020C94BE020C94BE0200
+:100080000C94BE020C94BE020C94BE020C94BE02F0
+:100090000C94BE020C94BE020C94BE020C94BE02E0
+:1000A0000C94BE020C94BE020C94BE02A30EC50EAC
+:1000B000B30FC50EB30F0A0F2D0FB30F820F950F9D
+:1000C0006412641293129312C912E9121A141A14C8
+:1000D000F4121A14A413A4130B141A141A141414DB
+:1000E000B113B113B113B113B113B113B113B113F0
+:1000F000B113B113B113B113B113B113B113B113E0
+:10010000C313D013D713DE13E8130000F0A12302AA
+:100110004C003900E100644100001E00140004009E
+:100120001D0031714D001F001A0016001B002E002B
+:100130002A00200008000700060038002C002100DB
+:1001400015000900190030004A00220017000A00BB
+:10015000050000006574AE0001540000007F00003F
+:10016000E300AB000254000000770000E20023002F
+:100170001C000B00110000002971240018000D0064
+:10018000100050004B0025000C000E0036005100FE
+:100190002800260012000F00370052002B00270015
+:1001A0001300330038714F004E002D002F003442F1
+:1001B000E500C10000000100010001000100010094
+:1001C00000003A001E0231002202010001003B0043
+:1001D000141421023500010001003C002414250202
+:1001E0002514010001003D002714260226140100F9
+:1001F00001003E0064142E023014000001000100D2
+:1002000001000000010000000100010001000000E9
+:100210000100000001003F005200510023020000D5
+:1002200001004000240021001E00010001004100E7
+:10023000250022001F003700010042002600230095
+:100240002000270001004300300230002D14270257
+:100250000100440045000100010001000000010010
+:10026000010001000100010000003A000100F70058
+:10027000FB00010001003B00F400F200FA00FD0069
+:10028000F5003C00F000F100F900FE00F4003D0034
+:10029000F500F300FC00FF0001003E000100F80043
+:1002A000F600000001000100010000000100000054
+:1002B00001000100010000000100000001003F00FA
+:1002C00001000100B400000001004000AA00AC00E1
+:1002D000B600010001004100A800AD00B50001001A
+:1002E000B7004200A900AE00B9000100B60043000B
+:1002F0000100AB00B700010001004400450001000F
+:1003000001000100000016034500720067006F0045
+:1003100044006F007800200045005A0000001603DA
+:100320004500720067006F0044006F0078002000F5
+:1003300045005A0000000403090409026D0004018D
+:1003400000A0FA09040000010301010009211101C4
+:100350000001223F000705810308000A090401008B
+:100360000103010200092111010001224D000705CE
+:10037000820308000A0904020001030000000921A9
+:10038000110100012236000705830308000A090451
+:1003900003000103000000092111010001223900BE
+:1003A000070584031000011201100100000008ED90
+:1003B000FE071301000102000105010906A1010564
+:1003C0000719E029E7150025019508750181020547
+:1003D000081901290595057501910295017503918B
+:1003E0000105071900297715002501957875018108
+:1003F00002C005010980A101850216010026B7008F
+:100400001A01002AB700751095018100C0050C097A
+:1004100001A1018503160100269C021A01002A9CF5
+:1004200002751095018100C005010902A1010901B1
+:10043000A10005091901290515002501950575017A
+:10044000810295017503810105010930093115818A
+:10045000257F95027508810609381581257F95014C
+:1004600075088106050C0A38021581257F950175EE
+:10047000088106C0C005010906A101050719E02988
+:10048000E715002501950875018102950175088120
+:100490000105081901290595057501910295017558
+:1004A0000391010507190029FF150025FF95067521
+:1004B000088100C0000000000000000000000001F2
+:1004C0000204060A0F17202C3A4A5D71879DB3C7B4
+:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF
+:1004E0003A2C20170F0A0604020100000000000049
+:1004F0000000000011241FBECFEFDAE0DEBFCDBF49
+:1005000004B603FE24C08091FB019091FC01A091F0
+:10051000FD01B091FE018730904BA740B04BB9F47C
+:100520001092FB011092FC011092FD011092FE014D
+:1005300014BE84B7877F84BF88E10FB6F894809398
+:100540006000109260000FBEE0E0FFE3099511E04B
+:10055000A0E0B1E0EEE0F8E402C005900D92A43313
+:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0
+:10057000B107E1F70E94A80A0C9405240C9400002E
+:100580001092B9008AE08093B800089594EA90939D
+:10059000BC009091BC0097FFFCCF9091B900987F70
+:1005A000983021F0903111F081E008958093BB00E4
+:1005B00084E88093BC008091BC0087FFFCCF8091D1
+:1005C000B900887F883111F0803471F780E0089598
+:1005D00084E98093BC008091BC0084FDFCCF089529
+:1005E0008093BB0084E88093BC008091BC0087FFAF
+:1005F000FCCF9091B900987F81E0983209F480E0B7
+:10060000089584E88093BC008091BC0087FFFCCFF4
+:100610008091BB00089580910101811115C080E493
+:100620000E94C6028093010181110CC082E10E94E8
+:10063000F00280930101811105C08FEF0E94F0024A
+:10064000809301010E94E80284B1807F84B985B162
+:10065000807F85B98AB1837F8AB98BB1837F8BB95B
+:100660003E98469808950E94C604809301010E9416
+:100670000B0380B38C7080BB81B3836F81BBA5E318
+:10068000B1E0E3E4F1E08EE08E0F11921D928E1343
+:10069000FCCF0C94B004BF92CF92DF92EF92FF9206
+:1006A0000F931F93CF93DF9380910101882379F0FB
+:1006B000809134018F5F80933401811108C00E94C2
+:1006C000C60480930101811102C00E94580405E311
+:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407
+:1006E000E394F12CC730D10500F58091010181110F
+:1006F00064C080E40E94C60280930101811112C08F
+:1007000082E10E94F0028093010181110BC0C701B8
+:100710000C2E01C0880F0A94EAF780950E94F0021F
+:10072000809301010E94E80248C0CA30A1F028F479
+:10073000C83059F0C93061F005C0CC3089F070F094
+:10074000CD3089F0209A289810C0219A29980DC0A0
+:10075000229A2A980AC0239A2B9807C0529A01C05D
+:10076000539A5B9802C03E9A469890EA9A95F1F7A0
+:100770009FB1799902C082E001C080E091709D250F
+:10078000982B7C9902C084E001C080E0892B7D9980
+:1007900002C038E001C030E0832B7E9902C020E126
+:1007A00001C020E0822B9FB19095991F9927991F36
+:1007B0009295990F907E892B0FC080910101811134
+:1007C00049C080E40E94C60280930101882379F128
+:1007D000B12C0E94E8028B2DF8019081981719F036
+:1007E0008083C09200010E940B0321960F5F1F4F70
+:1007F000CE30D10509F076CF80910001882361F1D8
+:10080000815080930001882339F08FE99FE00197A0
+:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F
+:10082000CF01825F91919D938E13FCCF15C083E120
+:100830000E94F002809301018111CACF81E40E94DD
+:10084000C602809301018111C3CF0E940103B82E1B
+:10085000B094BFCF80E0C0CF0E94560481E0DF910A
+:10086000CF911F910F91FF90EF90DF90CF90BF90AD
+:100870000895E82FF0E0ED5BFE4F80810895089524
+:100880000F931F93CF93DF93C3E4D1E010E00C2FBD
+:10089000025F899190E00E94F91A180F0C13F9CFAA
+:1008A000812FDF91CF911F910F9108950C94260510
+:1008B00056985E9825982D9826982E9827982F98C8
+:1008C0008FEF90E0909389008093880090938B0045
+:1008D00080938A0090938D0080938C00259A2D9AA6
+:1008E0002FEF80E792E0215080409040E1F700C078
+:1008F0000000269A2E9A2FEF80E792E02150804048
+:100900009040E1F700C00000279A2F9A2FEF80E770
+:1009100092E0215080409040E1F700C0000025980F
+:100920002D982FEF80E792E0215080409040E1F732
+:1009300000C0000026982E982FEF80E792E021500B
+:1009400080409040E1F700C0000027982F9856980B
+:100950005E9825982D9826982E9827982F98089578
+:1009600089EA8093800089E08093810024982C9804
+:100970003F988AB18F748AB96E98479A8BB1806B11
+:100980008BB9769A0E9458040C94250580E28093D6
+:1009900001018091510181110EC00E94C00281E0CD
+:1009A000809351012FEF83ED90E3215080409040E0
+:1009B000E1F700C0000080E40E94C60280930101BC
+:1009C00081112EC00E94F00280930101811128C084
+:1009D0000E94F00280930101811122C08FE30E94E6
+:1009E000F0028093010181111BC00E94E80280E4A3
+:1009F0000E94C60280930101811112C08CE00E9406
+:100A0000F0028093010181110BC00E94F0028093DB
+:100A10000101811105C08FE30E94F0028093010162
+:100A20000E94E80280910101089561110BC0FC0150
+:100A30008281882321F085EE0E94081103C085EE93
+:100A40000E94D01180E090E0089508956091BD016A
+:100A50007091BE018091BF019091C0010E94051B61
+:100A600056985E9825982D9826982E9827982F9816
+:100A7000813029F0823031F4269A2E9A0895259AF1
+:100A80002D9A089556985E98089581E0089581E022
+:100A900008950C94470508950F931F93CF93DF9308
+:100AA0008C01FC01C081D181CE010E947E19BE0162
+:100AB0000E94F505EC01B8010E944905882309F45C
+:100AC0008DC0F8018281882309F44AC080915D01BC
+:100AD00081111FC0C431F0E5DF0709F051C00E9449
+:100AE0004B0581E080935D010E949D1B90935C010A
+:100AF00080935B011092540110925601109255019F
+:100B0000109258011092570110925A0110925901F7
+:100B100065C080915B0190915C010E94A91B883C9B
+:100B2000910570F480915401E82FF0E0EE0FFF1F63
+:100B3000EB5AFE4FD183C0838F5F809354014EC028
+:100B4000C43880E5D80721F0C538D04501F13AC056
+:100B5000F8018281882341F01092520182E01EC088
+:100B6000C438E0E5DE0759F580915201811106C0D5
+:100B700086E20E94081186E20E94D01182E01CC029
+:100B8000C438F0E5DF0741F3C538D045D9F4F801A2
+:100B90008281882331F01092530180E20E941F125B
+:100BA0001DC080915301811106C087E20E94081187
+:100BB00087E20E94D01180E20E9426120FC0C53841
+:100BC000D04529F381E08093520180935301C801FD
+:100BD000DF91CF911F910F910C94450580E0DF913B
+:100BE000CF911F910F910895089596E0799FF0019C
+:100BF000112494E5899FE00DF11D1124E60FF11DEC
+:100C0000EE0FFF1FE25FFE4F859194910895880FCC
+:100C1000991FFC01E657F040859194910895880F43
+:100C2000991FFC01E65FFE4F8591949108950F9303
+:100C30001F93CF93DF93EC01811520E3920750F5CA
+:100C4000C11580E2D80708F0C3C0CB3BD10590F4B2
+:100C5000C83AD10508F06AC0C53AD10508F05BC0B2
+:100C6000C430D10508F0D0C1219709F0CAC101E014
+:100C700010E00AC2CF3FD10511F008F0C5C1C03F56
+:100C8000D10508F0A2C0CE01805E9109089708F452
+:100C9000BBC1B7C1C13090E5D90709F4A2C020F5A6
+:100CA000C0318FE4D80770F4C11590E4D90708F07B
+:100CB00094C0C11521E3D20708F0A3C1DD278E013E
+:100CC000106CE2C1C115D04509F09BC10E9485148A
+:100CD0008FEF94E32CE0815090402040E1F700C07A
+:100CE00000000E94F81BD0C1C11597E5D90758F440
+:100CF000C03121E5D20708F01CC1C43180E5D80716
+:100D000008F475C07EC1CE0190578115904108F05E
+:100D100078C1DF7073C1C53AD10509F477C1C63A0D
+:100D2000D10509F076C102E810E4AEC1C83AD10598
+:100D300009F472C1C93AD10509F471C1CA3AD105A1
+:100D400009F470C1CB3AD10509F46FC1CC3AD10591
+:100D500009F46EC1CD3AD10509F46DC1C03BD1058E
+:100D600009F46CC1CE3AD10509F46BC1CF3AD10573
+:100D700009F46AC1C13BD10509F469C1C23BD1057F
+:100D800009F468C1C33BD10509F467C1C43BD1056F
+:100D900009F466C1C53BD10509F465C1C63BD1055F
+:100DA00009F464C1C73BD10509F463C1C83BD1054F
+:100DB00009F462C1C93BD10509F461C1CA3BD1053F
+:100DC00009F460C100E014E45FC18E0110655CC1EC
+:100DD000CE019F700E940F0658C1DF708E01106A0D
+:100DE00053C18091DA0181608093DA014DC10E9484
+:100DF0009D1D811102C00E94831D0E94BA1D90E0BA
+:100E00009093FB018093FA01C23080E5D80721F46A
+:100E10008091FA01816086C0C43090E5D90721F441
+:100E20008091FA0182607EC0C63020E5D20721F4AD
+:100E30008091FA01846076C0C83080E5D80719F443
+:100E40008091FA0127C0CA3090E5D90721F480913A
+:100E5000FA01806167C0CC3020E5D20721F480918F
+:100E6000FA0180625FC0CE3080E5D80721F480911E
+:100E7000FA01806457C0C03190E5D90721F4809110
+:100E8000FA0180684FC0C23120E5D20729F4809171
+:100E9000FA018460886046C0C33080E5D80721F439
+:100EA0008091FA018E7F3EC0C53090E5D90721F4CC
+:100EB0008091FA018D7F36C0C73020E5D20721F43A
+:100EC0008091FA018B7F2EC0C93080E5D80719F4D4
+:100ED0008091FA0126C0CB3090E5D90721F48091AA
+:100EE000FA018F7E1FC0CD3020E5D20721F480911A
+:100EF000FA018F7D17C0CF3080E5D80721F48091AB
+:100F0000FA018F7B0FC0C13190E5D90721F48091A0
+:100F1000FA018F7707C0C331D04531F48091FA01CF
+:100F20008B7F877F8093FA018091FA010E94BE1D1A
+:100F3000ABC08D2F99278F70992781309105D9F4F7
+:100F40009E012370332702C0880F991F2A95E2F76C
+:100F50009C688E0144E0000F111F4A95E1F70027BD
+:100F60001370802B912B53E0CC0FDD1F5A95E1F7C6
+:100F7000C076DD272FC08230910531F4DC2FCC27DD
+:100F80008E01016F106A80C08330910569F4CE0133
+:100F90008370992701E010E002C0000F111F8A95AD
+:100FA000E2F7C8019C680FC084309105B9F4CE0106
+:100FB0008370992701E010E002C0000F111F8A958D
+:100FC000E2F7C8019A6823E0CC0FDD1F2A95E1F70C
+:100FD000C07ED7708C010C2B1D2B56C0853091051F
+:100FE00031F4DC2FCC278E01046F106A4DC00697B8
+:100FF00009F04AC0CF71DD27DC2FCC278E011062AB
+:1010000043C000E010E040C08E013EC001E810E4A3
+:101010003BC003E810E438C002EE14E435C009EE2A
+:1010200014E432C00AEE14E42FC005EB14E42CC023
+:1010300006EB14E429C007EB14E426C00CEC14E41E
+:1010400023C00DEC14E420C003E815E41DC00AE839
+:1010500015E41AC002E915E417C004E915E414C048
+:1010600001E216E411C003E216E40EC004E216E445
+:101070000BC005E216E408C006E216E405C007E26C
+:1010800016E402C00AE216E4C801DF91CF911F9175
+:101090000F91089596E0799FF001112494E5899FBE
+:1010A000E00DF11D1124E60FF11DEE0FFF1FE25FB1
+:1010B000FE4F85919491803E9105E0F4803C91052E
+:1010C00058F58133910509F46FC048F489329105D0
+:1010D00009F463C08A32910509F46DC072C0893386
+:1010E0009105E9F082389105D1F08533910509F435
+:1010F0004DC067C0833E910581F138F4803E910573
+:10110000B9F0823E9105D9F05CC0863E910561F14F
+:10111000873E9105A1F155C00E94070608952091D0
+:10112000FA0120FD02C021FF4CC080EE90E049C0D2
+:101130008091FA0180FFF9CF89E390E042C080916D
+:10114000FA0182FF0EC08091FA0184FF03C080E0A3
+:1011500090E037C083EE90E034C08091FA0182FFC6
+:10116000F2CF82EE90E02DC08091FA0183FF0BC098
+:101170008091FA0184FDEBCF87EE90E022C0809150
+:10118000FA0183FFF5CF86EE90E01BC08091FA0153
+:1011900085FF07C089E290E014C08091FA0185FFC5
+:1011A000F9CF85E390E00DC08091FA0186FF07C07A
+:1011B0008AE290E006C08091FA0186FFF9CF81E3D0
+:1011C00090E00E941706089508950C94E408809119
+:1011D0006E010895CF93DF9300D01F92CDB7DEB795
+:1011E0009C018091F101843019F593E099833B8350
+:1011F0002A839093E9008FEF9091E800815095FD4C
+:1012000006C095ED9A95F1F700008111F5CF809118
+:10121000E80085FF0DC040E050E063E070E0CE01E3
+:1012200001960E94540B8091E8008E778093E8002D
+:101230000F900F900F90DF91CF910895CF93DF9390
+:1012400000D01F92CDB7DEB72091F101243021F5F7
+:1012500022E029839B838A8383E08093E9008FEFD8
+:101260009091E800815095FD06C095ED9A95F1F7B3
+:1012700000008111F5CF8091E80085FF0DC040E0AE
+:1012800050E063E070E0CE0101960E94540B809123
+:10129000E8008E778093E8000F900F900F90DF9119
+:1012A000CF9108952091F1012430F1F422E02093B0
+:1012B000E9002FEF3091E800215035FD06C035EDF3
+:1012C0003A95F1F700002111F5CF2091E80025FFB4
+:1012D0000BC040E050E065E070E00E94540B80914C
+:1012E000E8008E778093E8000895CF93DF93EC01B8
+:1012F0009091F101943009F046C080910C0188234F
+:10130000D9F080910D018823B9F09093E9008FEF17
+:101310009091E800815095FD06C095E19A95F1F70E
+:1013200000008111F5CF8091E80085FF2CC040E0DE
+:1013300050E060E170E017C081E08093E9008FEF3A
+:101340009091E800815095FD06C095ED9A95F1F7D2
+:1013500000008111F5CF8091E80085FF14C040E0C6
+:1013600050E068E070E0CE010E94540B8091E800EC
+:101370008E778093E80080E1FE01AEE5B1E0019058
+:101380000D928A95E1F7DF91CF9108958091F00158
+:10139000811109C00E94E90C0E94460D8091E20073
+:1013A00084608093E20008951092F00108950895FA
+:1013B0000C942D220E948E1B0E9433220E94EC0F5F
+:1013C0000C94E50842E061EC81E00E94630C42E08D
+:1013D00061EC82E00E94630C42E061EC83E00E94D9
+:1013E000630C42E161EC84E00C94630C8091F301A6
+:1013F000833009F455C030F4813071F0823009F443
+:101400008EC008958A3009F47AC08B3009F460C028
+:10141000893009F09CC020C08091F201813A09F026
+:1014200096C08091E800877F8093E8008091F60164
+:101430009091F701892B21F460E18EE591E003C0E2
+:1014400060E080E090E070E00E949F0B8091E800F7
+:101450008B778093E80008958091F201813209F042
+:1014600076C08091F6019091F701009719F00397EB
+:1014700009F06DC08091E800877F8093E80080913B
+:10148000E80082FD05C08091F1018111F8CF5FC0B5
+:101490008091F10080936E018091E8008B7753C0BA
+:1014A0008091F201813A09F052C08091F601909149
+:1014B000F701892B09F04BC08091E800877F80936A
+:1014C000E8008091E80080FFFCCF80910C0136C0DD
+:1014D0008091F2018132D9F58091F6019091F70166
+:1014E000892BA9F58091E800877F8093E8000E940E
+:1014F000980C8091F40180930C010C9485148091D8
+:10150000F201813221F58091E800877F8093E80025
+:101510000E94980C8091F50180936F01089580914D
+:10152000F201813AA1F48091E800877F8093E8007E
+:101530008091E80080FFFCCF80916F018093F100E3
+:101540008091E8008E778093E8000C94980C0895C1
+:1015500084B7877F84BF88E10FB6F89480936000DA
+:10156000109260000FBE90E080E80FB6F894809370
+:101570006100909361000FBE0E943B100E94E90C35
+:101580000E94460D8091E20084608093E20078948E
+:101590000E94CC0F0E943D1082E091E00E94E70F74
+:1015A0000E941B228091F101853069F40E94551B35
+:1015B0008091EF018823B1F30E94801B882391F36F
+:1015C0000E943E0BEFCF0E944310ECCF292F332710
+:1015D00023303105C9F064F42130310581F0223027
+:1015E000310509F043C08DE690E02AE333E042C0C4
+:1015F00021323105F1F02232310541F137C082E16B
+:1016000090E027EA33E036C099278130910541F018
+:101610008230910541F0892B49F5E6E3F3E005C0FE
+:10162000EEE1F3E002C0E6E0F3E0849190E09F0198
+:1016300021C06430D8F4E62FF0E0EE0FFF1FEE5D1E
+:10164000FE4F2081318189E090E014C0643070F455
+:1016500070E0FB01EE0FFF1FE65EFE4F208131813F
+:10166000FB01EA5EFE4F808190E004C080E090E0E4
+:1016700020E030E0FA0131832083089580E189BDC4
+:1016800082E189BD09B400FEFDCF8091D8008F7D35
+:101690008093D8008091E00082608093E000809188
+:1016A000E00081FDFCCF0895CF92DF92EF92FF9290
+:1016B0000F931F93CF93DF93EC018B016A010E947C
+:1016C000B70C811133C0C114D10439F0F601808107
+:1016D0009181081B190BC80FD91FE12CF12C0115A2
+:1016E000110519F18091E80085FD16C08091E80090
+:1016F0008E778093E800C114D10449F0F60180810F
+:101700009181E80EF91EF182E08285E00FC00E940F
+:10171000B70C882321F30AC089918093F10001500E
+:101720001109FFEFEF1AFF0ADACF80E0DF91CF91C6
+:101730001F910F91FF90EF90DF90CF90089520912F
+:10174000F8013091F9012617370748F06115710546
+:1017500039F42091E8002E772093E80001C0B90108
+:1017600040E061157105A9F12091F101222309F4EE
+:1017700043C0253009F442C02091E80023FD40C059
+:101780002091E80022FD32C02091E80020FFE9CF3F
+:101790004091F3002091F20030E0342BFC01CF01A6
+:1017A0006115710559F02830310540F4819180931D
+:1017B000F100615071092F5F3F4FF1CF41E02830B8
+:1017C000310509F040E02091E8002E772093E800F1
+:1017D000C8CF4111C9CF0AC08091F101882361F0BF
+:1017E000853061F08091E80083FD0AC08091E800B7
+:1017F00082FFF2CF80E0089582E0089583E00895AB
+:1018000081E008952091F8013091F90126173707FA
+:1018100048F06115710539F42091E8002E77209386
+:10182000E80001C0B901FC0120E06115710591F1EA
+:101830008091F101882309F440C0853009F43FC04C
+:101840008091E80083FD3DC08091E80082FD2FC0BB
+:101850008091E80080FFE9CF2091F3008091F200B1
+:1018600090E0922B6115710559F08830910540F494
+:1018700024912093F1003196615071090196F2CFC5
+:1018800021E0089709F020E08091E8008E778093AE
+:10189000E800CBCF2111CCCF0AC08091F101882381
+:1018A00061F0853061F08091E80083FD0AC080918D
+:1018B000E80082FFF2CF80E0089582E0089583E09F
+:1018C000089581E00895982F973058F59093E90096
+:1018D000981739F07091EC002091ED005091F000D4
+:1018E00003C0242F762F50E021FF19C03091EB0068
+:1018F0003E7F3093EB003091ED003D7F3093ED0063
+:101900003091EB0031603093EB007093EC0020934A
+:10191000ED005093F0002091EE0027FF07C09F5F7D
+:10192000D3CF8F708093E90081E0089580E008951F
+:101930008091F20187FF11C08091E80082FD05C00F
+:101940008091F1018111F8CF11C08091E8008B776F
+:101950000BC08091F101882349F08091E80080FF5D
+:10196000F8CF8091E8008E778093E8000895209169
+:10197000E4003091E50095E64091EC00842F817001
+:1019800040FF22C08091E80080FD1CC08091F101E1
+:10199000882391F0853091F08091EB0085FD10C097
+:1019A0004091E4005091E5004217530729F39A0152
+:1019B000915011F784E0089582E0089583E008953E
+:1019C00081E0089580E008954091E80042FFDECF75
+:1019D00008950E94570D0E945F0DE0EEF0E08081B7
+:1019E00081608083E8EDF0E080818F77808319BC8F
+:1019F000A7EDB0E08C918E7F8C9380818F7E808369
+:101A00001092F00108950F931F93CF93DF930E94DC
+:101A1000570D0E945F0DC8EDD0E088818F778883D5
+:101A200088818068888388818F7D888319BC109223
+:101A3000F1011092ED011092EF011092EE0100EE13
+:101A400010E0F80180818B7F8083888181608883AA
+:101A500042E060E080E00E94630CE1EEF0E0808113
+:101A60008E7F8083E2EEF0E08081816080838081E0
+:101A700088608083F80180818E7F80838881806187
+:101A80008883DF91CF911F910F910895E8EDF0E0E9
+:101A900080818F7E8083E7EDF0E0808181608083AC
+:101AA00084E082BF81E08093F0010C94030DE8EDA7
+:101AB000F0E080818E7F80831092E2000895109282
+:101AC000DA001092E10008951F920F920FB60F9264
+:101AD00011242F933F934F935F936F937F938F9333
+:101AE0009F93AF93BF93EF93FF938091E10082FFA9
+:101AF0000BC08091E20082FF07C08091E1008B7FE4
+:101B00008093E1000E94CB0F8091DA0080FF1FC01C
+:101B10008091D80080FF1BC08091DA008E7F809377
+:101B2000DA008091D90080FF0DC080E189BD82E19B
+:101B300089BD09B400FEFDCF81E08093F1010E94D0
+:101B4000C60905C019BC1092F1010E94D409809108
+:101B5000E10080FF19C08091E20080FF15C08091F4
+:101B6000E2008E7F8093E2008091E20080618093AA
+:101B7000E2008091D80080628093D80019BC85E093
+:101B80008093F1010E94D8098091E10084FF30C068
+:101B90008091E20084FF2CC080E189BD82E189BD93
+:101BA00009B400FEFDCF8091D8008F7D8093D800CE
+:101BB0008091E1008F7E8093E1008091E2008F7E32
+:101BC0008093E2008091E20081608093E200809146
+:101BD000ED01882311F084E007C08091E30087FDC8
+:101BE00002C081E001C083E08093F1010E94DA0924
+:101BF0008091E10083FF29C08091E20083FF25C02E
+:101C00008091E100877F8093E10082E08093F10181
+:101C10001092ED018091E1008E7F8093E100809130
+:101C2000E2008E7F8093E2008091E20080618093E9
+:101C3000E20042E060E080E00E94630C8091F000EE
+:101C400088608093F0000E94D709FF91EF91BF91C7
+:101C5000AF919F918F917F916F915F914F913F9144
+:101C60002F910F900FBE0F901F9018951F920F92FB
+:101C70000FB60F9211242F933F934F935F936F935F
+:101C80007F938F939F93AF93BF93CF93DF93EF9304
+:101C9000FF93C091E900CF708091EC00D82FD170F4
+:101CA00080FDD0E81092E9008091F000877F80935A
+:101CB000F00078940E947A0E1092E9008091F00072
+:101CC00088608093F000CD2BCF70C093E900FF9126
+:101CD000EF91DF91CF91BF91AF919F918F917F91C4
+:101CE0006F915F914F913F912F910F900FBE0F9089
+:101CF0001F9018951F93CF93DF93CDB7DEB7AA97A8
+:101D00000FB6F894DEBF0FBECDBFE2EFF1E088E082
+:101D10008E0F9091F10091938E13FBCF0E94F609E4
+:101D20008091E80083FF1FC18091F2019091F3013F
+:101D3000492F50E04A30510508F015C1FA01EA5A1E
+:101D4000FF4F0C94B523803881F0823809F00BC125
+:101D50008091F6018F708093E9008091EB0085FB04
+:101D6000882780F91092E90006C08091EE019091D9
+:101D7000EF01911182609091E800977F9093E800C5
+:101D80008093F1001092F100C8C0282F2D7F09F038
+:101D9000EAC0882319F0823061F0E5C08091F40137
+:101DA000813009F0E0C0933009F080E08093EF01CA
+:101DB0002BC08091F401811127C08091F6018F70B2
+:101DC00009F4D1C08093E9002091EB0020FF1CC0F2
+:101DD000933021F48091EB00806214C09091EB006D
+:101DE00090619093EB0021E030E0A90102C0440F24
+:101DF000551F8A95E2F74093EA001092EA0080911D
+:101E0000EB0088608093EB001092E9008091E8007D
+:101E1000877F86C08111A7C01091F4011F77809140
+:101E2000E3008078812B8093E3008091E800877F36
+:101E30008093E8000E94980C8091E80080FFFCCF1E
+:101E40008091E30080688093E300111102C082E07A
+:101E500001C083E08093F10186C08058823008F091
+:101E600082C08091F4019091F5018C3D53E095077B
+:101E700079F583E08A838AE289834FB7F894DE019B
+:101E8000139620E03EE051E2E32FF0E0509357003C
+:101E9000E49120FF03C0E295EF703F5FEF708E2F5B
+:101EA00090E0EA3010F0C79601C0C0968D939D93E4
+:101EB0002F5F243149F74FBF8091E800877F8093DF
+:101EC000E8006AE270E0CE0101960E949F0B14C008
+:101ED000AE014F5F5F4F6091F6010E94E60ABC01C0
+:101EE000009709F440C09091E800977F9093E80034
+:101EF00089819A810E94020C8091E8008B778093FF
+:101F0000E80031C0803879F58091E800877F8093C0
+:101F1000E8008091ED018093F1008091E8008E77D8
+:101F20008093E8000E94980C1EC081111CC0909103
+:101F3000F4019230C0F48091E800877F8093E8003C
+:101F40009093ED010E94980C8091ED01811106C0E3
+:101F50008091E30087FD02C081E001C084E08093AE
+:101F6000F1010E94E2098091E80083FF0AC080919C
+:101F7000E800877F8093E8008091EB008062809387
+:101F8000EB00AA960FB6F894DEBF0FBECDBFDF916F
+:101F9000CF911F9108950895CF938091F1018823E7
+:101FA000A1F0C091E900CF709091EC00892F817071
+:101FB00090FD80E8C82B1092E9008091E80083FD35
+:101FC0000E947A0ECF70C093E900CF91089590934C
+:101FD0007501809374010895E0917401F091750189
+:101FE000309721F00190F081E02D099480E0089570
+:101FF000E0917401F0917501309721F00280F38136
+:10200000E02D09940895E0917401F09175013097E5
+:1020100021F00480F581E02D09940895209172014A
+:10202000309173018217930771F09093730180933D
+:102030007201E0917401F0917501309721F00680F2
+:10204000F781E02D0994089520917001309171017C
+:102050008217930771F09093710180937001E09162
+:102060007401F0917501309721F00084F185E02D25
+:102070000994089508950C943A100E94941B0E94AC
+:1020800033030C94561C9F92AF92BF92CF92DF9273
+:10209000EF92FF920F931F93CF93DF9300D000D066
+:1020A00000D0CDB7DEB70E944B030DE010E0AA24AC
+:1020B000A394B12C902E802F0E94390498012958A6
+:1020C0003E4F6901F901F080F826A1F40150110991
+:1020D00088F78FEF89838A831B820E949D1B816012
+:1020E000782F9D838C8349815A816B818D810E94D9
+:1020F000DA102FC09091DA0191FF04C08E830E9404
+:102100003F048E8125E030E0A501022E01C0440F7E
+:102110000A94EAF7E42E4F21C1F029839A828E2196
+:1021200091E009F490E09B830E949D1B8160782FD1
+:102130009D838C8349815A816B818D810E94DA1045
+:10214000F6018081E826E08204C021503109E0F6E2
+:10215000BDCF0E943D1F109176010E94EC0F181711
+:10216000B9F00E94EC0F8093760126960FB6F89492
+:10217000DEBF0FBECDBFDF91CF911F910F91FF90BA
+:10218000EF90DF90CF90BF90AF909F900C94E508B8
+:1021900026960FB6F894DEBF0FBECDBFDF91CF916C
+:1021A0001F910F91FF90EF90DF90CF90BF90AF9075
+:1021B0009F900895CF93DF93CDB7DEB72B970FB6DF
+:1021C000F894DEBF0FBECDBF4F83588769877A87EB
+:1021D0008B87DE01119686E0FD0111928A95E9F761
+:1021E00085E0FE01379601900D928A95E1F74981CD
+:1021F0005A816B817C818D819E810E9423172B9651
+:102200000FB6F894DEBF0FBECDBFDF91CF9108951A
+:10221000CF93882309F4C2C0C82F823859F40E9492
+:10222000EC0F81FDBBC089E30E94FD190E94CA1A10
+:1022300089E30CC0833879F40E94EC0F80FDAEC0B6
+:1022400083E50E94FD190E94CA1A83E50E943F1A85
+:10225000CF910C94CA1A843859F40E94EC0F82FD75
+:102260009DC087E40E94FD190E94CA1A87E4EECF40
+:102270008CEF8C0F813A48F48C2F0E9480218111C1
+:102280008DC08C2F0E94FD19E3CF80E28C0F883027
+:1022900048F4C77081E001C0880FCA95EAF70E9430
+:1022A000831AD6CF8BE58C0F833078F4C53A29F0AA
+:1022B000C63A31F083E890E005C081E890E002C0C2
+:1022C00082E890E0CF910C940E1088E58C0F83315A
+:1022D00008F064C0C83A39F1C93A41F1CA3A49F143
+:1022E000CB3A51F1CC3A59F1CD3A61F1C03B69F1A9
+:1022F000CE3A71F1CF3A79F1C13B81F1C23B89F11C
+:10230000C33B91F1C43B99F1C53BA1F1C63BA9F197
+:10231000C73BB1F1C83BB9F1C93BC1F1CA3BC9F1F7
+:1023200080E090E038C082EE90E035C089EE90E029
+:1023300032C08AEE90E02FC085EB90E02CC086EB97
+:1023400090E029C087EB90E026C08CEC90E023C0A1
+:102350008DEC90E020C083E891E01DC08AE891E018
+:102360001AC082E991E017C084E991E014C081E2CB
+:1023700092E011C083E292E00EC084E292E00BC0D2
+:1023800085E292E008C086E292E005C087E292E032
+:1023900002C08AE292E0CF910C942410CF9108956C
+:1023A000882309F44BC0823859F40E94EC0F81FF56
+:1023B00045C089E30E94FD190E94CA1A89E30CC036
+:1023C000833871F40E94EC0F80FF38C083E50E94CF
+:1023D000FD190E94CA1A83E50E943F1A0C94CA1A7A
+:1023E000843859F40E94EC0F82FF28C087E40E94D1
+:1023F000FD190E94CA1A87E4EFCF9CEF980F913A1B
+:1024000058F390E2980F983050F4877091E001C033
+:10241000990F8A95EAF7892F0E94891ADFCF9BE5E9
+:10242000980F933020F480E090E00C940E10885ABE
+:10243000833120F480E090E00C94241008958823E8
+:1024400021F00E94831A0C94CA1A0895882321F05F
+:102450000E94891A0C94CA1A08957F928F929F92B3
+:10246000AF92BF92CF92DF92EF92FF920F931F93A2
+:10247000CF93DF931F92CDB7DEB77C01C62E772EA8
+:10248000FC01058102950F70128111110E94A01AA2
+:102490000E94F619882379F0112369F080E28C0DEF
+:1024A000883048F082E00E94DF190E94F61991E01E
+:1024B000D82ED92601C0D12CE72DE295EF70F0E09F
+:1024C000E05AFF4F0C94B523872D807F072D0F70A6
+:1024D000882311F00295007F112389F0002309F46D
+:1024E00090C180E28C0D883020F4802F0E94831AE6
+:1024F00003C0802F0E94931A0E94CA1A82C18C2D99
+:102500000E94D011002309F495C180E28C0D88301F
+:1025100020F4802F0E94891A03C0802F0E94991AEC
+:102520000E94CA1A87C1972D907F872D8F70903295
+:1025300011F08295807FCC2021F0F1E0CF16B1F030
+:102540001EC0112349F0002309F414C1013009F021
+:1025500011C10E94B31A6EC1002319F0013009F4B1
+:1025600069C189830E94B61A89810AC1112321F0A9
+:10257000023008F05FC1FEC001115CC101C111232E
+:1025800021F0002309F4F6C03CC1002309F4F8C08F
+:102590003EC1872D86958695837090E0009719F04F
+:1025A000019761F047C1112321F08C2D972D937075
+:1025B00002C080E090E00E940E103CC1112321F087
+:1025C0008C2D972D937002C080E090E00E94241023
+:1025D00031C18C2D112319F00E94451E02C00E94AA
+:1025E000AD1E0E94321F26C1872D837009F052C094
+:1025F000111120C18C2D829586958770880F880FC8
+:102600009C2D9F70892E912CA12CB12C082E04C0DA
+:10261000880C991CAA1CBB1C0A94D2F7C4FE14C0D7
+:102620000FE010E020E030E0B901A80104C0440F41
+:10263000551F661F771F8A95D2F7CB01BA016095A7
+:1026400070958095909503C060E070E0CB01272DD8
+:1026500026952695237030E02230310569F023302D
+:10266000310589F0682979298A299B29213031058A
+:1026700071F00E946B18DEC0682979298A299B298C
+:102680000E948718D7C00E946B18C501B4010E9430
+:102690004F18D0C0112319F0872D817001C0869585
+:1026A000882309F4C7C08C2D829586958770880F82
+:1026B000880F9C2D9F70892E912CA12CB12C082E57
+:1026C00004C0880C991CAA1CBB1C0A94D2F7C4FE37
+:1026D00014C00FE010E020E030E0B901A80104C010
+:1026E000440F551F661F771F8A95D2F7CB01BA0199
+:1026F000609570958095909503C060E070E0CB0187
+:10270000272D269526952370422F50E04230510503
+:1027100069F04330510589F0682979298A299B2974
+:102720004130510571F00E94451984C0682979290A
+:102730008A299B290E9461197DC00E944519C50103
+:10274000B4010E94291976C08C2D90E0FC01E05E56
+:10275000F109E531F10508F050C0E059FF4F0C9444
+:10276000B5230C2D0F70872D8F71112331F00E942E
+:10277000C218802F0E941F125DC00E94E318802F94
+:102780000E94261257C0112339F0011153C0872D22
+:102790008F710E9408194EC0023008F04BC0F7CF6D
+:1027A000112339F0872D8F710E94C21843C0112365
+:1027B000C9F3872D8F710E94E3183CC0112329F0C3
+:1027C000872D8F710E94AD1835C00E94A31832C0AA
+:1027D000112351F0172D1F71812F0E94C21863E041
+:1027E000812F0E94D61926C081E00E94DF19023095
+:1027F00008F182E00E94DF191DC0112331F000238F
+:1028000089F28C2D0E94081115C0002391F28C2DA5
+:102810000E94D0110FC0472D4F706C2DC7010E9430
+:1028200015050E94C71706C0472D4F706C2DC701B4
+:102830000E94F405DD20F9F00E94D21980FD1BC032
+:10284000F70112820E94CC190E94C218C7010E948F
+:102850004A140E94CC190F90DF91CF911F910F91D4
+:10286000FF90EF90DF90CF90BF90AF909F908F90B0
+:102870007F900C94E3180F90DF91CF911F910F91EF
+:10288000FF90EF90DF90CF90BF90AF909F908F9090
+:102890007F9008950F931F93CF93DF93EC0188816E
+:1028A00099812B813C81232BB9F09F3F11F48F3FFD
+:1028B00099F0CE010E944C05882371F068817981DE
+:1028C0008A810E94C8198C010E947D190E944418B7
+:1028D000B801CE010E942D12DF91CF911F910F916F
+:1028E00008950E94A01A0E94B01A0E94751A0E94B0
+:1028F000CA1A0E94E31F0E94321F80E090E00E94EB
+:102900000E1080E090E00C9424100E94901A0C9419
+:1029100071140E94BD19292F22952F7030E02C30A0
+:1029200031054CF42A3031056CF422503109223043
+:102930003105A8F407C02C30310569F02F3031057E
+:1029400051F00DC0803F69F018F4803E40F409C09A
+:10295000843F29F406C093FB882780F9089580E01E
+:10296000089581E00895CF93DF9300D000D01F92A7
+:10297000CDB7DEB70F900F900F900F900F90DF91B3
+:10298000CF910895CF93DF9300D000D000D0CDB782
+:10299000DEB726960FB6F894DEBF0FBECDBFDF912F
+:1029A000CF9108951F93CF93DF93C091850116E0D7
+:1029B00080918601C81799F0D0E01C9FF0011D9FFF
+:1029C000F00D1124E957FE4F4081518162817381DE
+:1029D000848195810E94C2142196C770E9CFDF914E
+:1029E000CF911F9108954091B7015091B801609126
+:1029F000B9017091BA018091BB019091BC010C9416
+:102A0000C2148091BC0182958F7009F054C08091EE
+:102A1000B901882309F44FC080918501A0918601F6
+:102A20006091B7017091B8014091BA015091BB011A
+:102A3000B6E08A1709F43FC090E041155105C1F195
+:102A40007F3F11F46F3FA1F1B89FF001B99FF00DE6
+:102A50001124E957FE4F218172132AC0208162138D
+:102A600027C02281211124C02381348124173507F6
+:102A700010F421503109241B350B283C3105C0F4DA
+:102A80002091BC012F7020612093BC0126E0289F7B
+:102A9000F001299FF00D1124E457FE4F80818F70C3
+:102AA0008061808387EB91E00E944A140C94D214D9
+:102AB00001968770BECF0895CF92DF92EF92FF927A
+:102AC0000F931F93CF93DF93CDB7DEB762970FB607
+:102AD000F894DEBF0FBECDBF8C0185E0F801DE01AA
+:102AE0001D9601900D928A95E1F7D8014C911196AF
+:102AF0005C91119712966C9112971396CD90DC9081
+:102B000014973091B7017091B8018091BA019091FA
+:102B1000BB01009709F46BC17F3F19F43F3F09F4F3
+:102B200066C1E090B901EE2009F4C0C02091BC015B
+:102B3000C816D90628F0F601E81BF90BCF0104C02E
+:102B4000809590958C0D9D1DFF24F394883C9105F4
+:102B500078F0F12C207F09F0C6C07C2DD98AC88A74
+:102B600089890E94B31487EB91E00E944A14B1C096
+:102B7000822F807F09F046C0751314C0341312C031
+:102B8000611110C02F7020612093BC010E94F314CA
+:102B900087EB91E00E944A148091BC01D801159600
+:102BA0008C932EC0CD2819F15F3F11F44F3FF9F0FF
+:102BB000F62E61111CC0809185012091860136E0BE
+:102BC000821709F45AC090E0389FF001399FF00D48
+:102BD0001124E957FE4F7181571306C070814713C6
+:102BE00003C07281711103C001968770E9CFF62E80
+:102BF000662309F418C18091BC0181608093BC01F7
+:102C0000F12C11C1751308C0341306C0611104C042
+:102C10008091BC01D801C3C04D875E878D859E859C
+:102C20006A8B0E9489146A898823E1F16623D1F1B5
+:102C30002091BC01822F82958F7090E0029774F0F2
+:102C40008091B7019091B80198878F831986DB86B0
+:102C5000CA862C87CE0107960E944A1486E0F801A6
+:102C6000A7EBB1E001900D928A95E1F70E94011562
+:102C70000E94F314FF24F394D6C04D875E878D85A0
+:102C80009E850E94BD19292F22952F7030E0223099
+:102C900031050CF0BCC09F7009F0B6C0805E883072
+:102CA00008F4C1C0C8010E944A14E4CFC816D9066E
+:102CB00008F453C0F601E81BF90BCF01883C9105DD
+:102CC00008F450C0F12C7C2DD98AC88A89890E94C9
+:102CD000B314E7EBF1E086E0DF011D928A95E9F796
+:102CE0000E94F314A0C0751314C0341312C06111F4
+:102CF00010C08091BC01F8018583C8010E944A146C
+:102D000086E0E7EBF1E0DF011D928A95E9F7FE2C02
+:102D10008AC04D875E878D859E856A8B0E94891447
+:102D20006A89882309F4BECF662309F4BBCF2091BA
+:102D3000BC01822F82958F7090E002970CF48ECFA9
+:102D40008091B7019091B8019A8389831B82DD82BB
+:102D5000CC822E83CE0101967FCF809590958C0DED
+:102D60009D1DACCFF62E662309F49CCF75132EC0A3
+:102D700034132CC02091BC0120FD1FC0822F8295EE
+:102D80008F70D9F0D80115962C9315978F3049F094
+:102D90008F5F982F9295907F822F8F70892B159639
+:102DA0008C93C8010E944A1486E0F801A7EBB1E0B9
+:102DB00001900D928A95E1F793CF86E0F801A7EB99
+:102DC000B1E001900D928A95E1F72DC04D875E87A5
+:102DD0008D859E850E948914811140CF8091BC0110
+:102DE00081608093BC01C8010E944A141CC0662304
+:102DF00009F458CF4D875E878D859E850E94891482
+:102E0000882309F44FCF2ACF811148CF0CC024303A
+:102E100031050CF047CF9F7009F440CFF801958140
+:102E2000907F09F03BCF8F2D62960FB6F894DEBFEE
+:102E30000FBECDBFDF91CF911F910F91FF90EF900B
+:102E4000DF90CF9008951F93CF93DF93CDB7DEB778
+:102E50002C970FB6F894DEBF0FBECDBF4F835887B7
+:102E600069877A878B879C87CE0107960E945C15BD
+:102E7000882369F08F8198852A853B85232BF1F182
+:102E80009F3F09F063C08F3F09F060C037C086E004
+:102E9000FE013796DE01119601900D928A95E1F7B9
+:102EA0006F817885EA85FB85309741F17F3F11F48A
+:102EB0006F3F21F12091860130E0C90101968770B2
+:102EC00099274091850150E08417950709F447C080
+:102ED00069837A83FD83EC8396E0929FD001939F70
+:102EE000B00D1124A957BE4FFE01319601900D92ED
+:102EF0009A95E1F7809386010E94D21416E08091A2
+:102F00008501909186018917C1F1189FC001112494
+:102F100089579E4F0E945C15882379F1E0918501C5
+:102F20001E9FF0011124E957FE4F408151816281BB
+:102F30007381848195810E94C2148091850190E003
+:102F400001968770992780938501D9CF4F81588545
+:102F500069857A858B859C850E94C214CFCF0E949B
+:102F600085141092860110928501E7EBF1E086E06E
+:102F7000DF011D928A95E9F7C1CF2C960FB6F89420
+:102F8000DEBF0FBECDBFDF91CF911F910895EF92AD
+:102F9000FF920F931F93CF93DF938C01009709F457
+:102FA0006CC0F12CEE24E394E8012196F8018491A1
+:102FB000843740F4843008F051C0813081F0823091
+:102FC00019F15BC0853709F444C0A8F19CE7980F5C
+:102FD000903708F052C08F770E94D01141C00E5F29
+:102FE0001F4FFE01C49180E28C0F883048F4C770F7
+:102FF0008E2D01C0880FCA95EAF70E94A31A14C04B
+:103000008C2F0E9408112DC00E5F1F4FFE01C4912E
+:1030100080E28C0F883058F4C7708E2D01C0880F65
+:10302000CA95EAF70E94A91A0E94CA1A1AC08C2FE0
+:103030000E94D01116C00E5F1F4FFE01C491CC2319
+:1030400081F08FE99FE00197F1F700C00000C150C7
+:10305000F6CF0E5F1F4FFE01F49003C00E940811CF
+:103060008E018F2D882309F49FCFEFE9FFE0319780
+:10307000F1F700C000008150F5CFDF91CF911F9193
+:103080000F91FF90EF90089508956093C1017093A0
+:10309000C2018093C3019093C4010C9471140F93E7
+:1030A0001F930091C1011091C2012091C301309181
+:1030B000C401DC01CB01802B912BA22BB32B80937D
+:1030C000C1019093C201A093C301B093C4011F91A9
+:1030D0000F910C9471140F931F930091C1011091E3
+:1030E000C2012091C3013091C401DC01CB018023D6
+:1030F0009123A223B3238093C1019093C201A09393
+:10310000C301B093C4011F910F910C9471140F93DC
+:103110001F930091C1011091C2012091C301309110
+:10312000C401DC01CB0180279127A227B32780931C
+:10313000C1019093C201A093C301B093C4011F9138
+:103140000F910C9471141092BD011092BE01109257
+:10315000BF011092C0010C94711441E050E060E096
+:1031600070E004C0440F551F661F771F8A95D2F781
+:103170004093BD015093BE016093BF017093C001A5
+:103180000C94711441E050E060E070E004C0440F22
+:10319000551F661F771F8A95D2F78091BD019091C8
+:1031A000BE01A091BF01B091C001482B592B6A2BE1
+:1031B0007B2B4093BD015093BE016093BF01709380
+:1031C000C0010C94711441E050E060E070E004C074
+:1031D000440F551F661F771F8A95D2F7409550956B
+:1031E000609570958091BD019091BE01A091BF0145
+:1031F000B091C001482359236A237B234093BD012A
+:103200005093BE016093BF017093C0010C94711480
+:1032100041E050E060E070E004C0440F551F661FBD
+:10322000771F8A95D2F78091BD019091BE01A09140
+:10323000BF01B091C001482759276A277B274093D7
+:10324000BD015093BE016093BF017093C0010C9407
+:1032500071140F931F930091BD011091BE01209135
+:10326000BF013091C001DC01CB01802B912BA22B3F
+:10327000B32B8093BD019093BE01A093BF01B09387
+:10328000C0011F910F910C9471140F931F93009123
+:10329000BD011091BE012091BF013091C001DC0140
+:1032A000CB0180239123A223B3238093BD0190936C
+:1032B000BE01A093BF01B093C0011F910F910C9468
+:1032C00071140F931F930091BD011091BE012091C5
+:1032D000BF013091C001DC01CB0180279127A227DB
+:1032E000B3278093BD019093BE01A093BF01B0931B
+:1032F000C0011F910F910C9471140895CF92DF9229
+:10330000EF92FF920F931F93CF93DF938C01C090A6
+:10331000C101D090C201E090C301F090C40180913E
+:10332000BD019091BE01A091BF01B091C001C82A1A
+:10333000D92AEA2AFB2ACFE1D0E0D701C6010C2E18
+:1033400004C0B695A795979587950A94D2F780FF04
+:1033500006C0B8018C2F0E944A08019721F42197DA
+:1033600060F780E001C08C2FDF91CF911F910F910A
+:10337000FF90EF90DF90CF900895CF93DF93EC0113
+:103380000E947E19BE010E944A08DF91CF910895E4
+:10339000CB010E94BD1908958091C5018595859541
+:1033A000859508958091C5018770089598E0899F5B
+:1033B00090011124262B2093C5010C94C218209152
+:1033C000C501809582238093C501982F977069F479
+:1033D00030E0482F552747FD50952417350729F031
+:1033E0008595859585950C94E31808959091C50170
+:1033F000977081E009F480E0089590910C01992381
+:1034000021F090910D01911109C020910E01309190
+:103410000F01F90132969FEF40E01FC0982F96955B
+:10342000969596959F3050F5E0910E01F0910F0121
+:10343000E90FF11D877021E030E0A90102C0440FBF
+:10344000551F8A95E2F7CA019181892B81830895DE
+:103450009F3F39F04F5F4E3041F051915813F8CFF4
+:103460000DC05111F7CF942FF5CF9F3F39F0F901DF
+:10347000E90FF11D97FDFA958283089508959091C3
+:103480000C01992321F090910D01911109C0209117
+:103490000E0130910F01F9013296205F3F4F1FC09E
+:1034A000982F9695969596959F30F0F4E0910E01A1
+:1034B000F0910F01E90FF11D877021E030E0A901C3
+:1034C00002C0440F551F8A95E2F7CA018095918189
+:1034D0008923818308953196E217F30729F09081BB
+:1034E0009813F9CF1082F7CF089581E090E0E09132
+:1034F0000E01F0910F01E80FF91F10820196803143
+:103500009105A9F708959091D901892B8093D9014C
+:10351000089580959091D90189238093D9010895C8
+:103520001092D90108959091D801892B8093D801E8
+:10353000089580959091D80189238093D8010895AA
+:103540001092D80108959091D701892B8093D701CB
+:10355000089580959091D70189238093D70108958C
+:103560001092D70108958093C60108951092C60164
+:10357000089580910E0190910F01FC0131969C01FC
+:10358000205F3F4F80E0919191118F5FE217F30729
+:10359000D1F70895E0910E01F0910F018091D901CA
+:1035A0008083E0910E01F0910F0190818091D8010C
+:1035B000892B8083E0910E01F0910F019081809121
+:1035C000D701892B80838091C601882361F0E09127
+:1035D0000E01F0910F019081892B80830E94B91A0E
+:1035E00081111092C60180910E0190910F010C94EF
+:1035F000F80F20E0009739F0AC01415051098423C5
+:1036000095232F5FF7CF822F0895CF92DF92EF920D
+:10361000FF926C01EE24FF24C114D104E104F104F3
+:1036200021F0C701B60120E101C020E0C72ED82E4D
+:10363000E92EFF24C114D104E104F10419F0285F3C
+:10364000C701B6016B017C0154E0F694E794D7946E
+:10365000C7945A95D1F7C114D104E104F10419F0CB
+:103660002C5FC701B6016B017C0142E0F694E79440
+:10367000D794C7944A95D1F7C114D104E104F10459
+:1036800019F02E5FC701B601DC01CB01B695A795F5
+:1036900097958795892B8A2B8B2B09F02F5F822F8B
+:1036A000FF90EF90DF90CF9008958091F1018430EA
+:1036B00021F11092DB0120E488E190E00FB6F8944C
+:1036C000A895809360000FBE2093600080E00E9468
+:1036D000E50883B7817F846083BF83B7816083BF40
+:1036E0007894889583B78E7F83BF88E10FB6F8946E
+:1036F00080936000109260000FBE089508950895B1
+:103700000E947E1B0E944B030E947F1B0E9440046C
+:1037100091E0811101C090E0892F08950E948514E5
+:103720000E94EC0F0C94E50882E084BD93E095BD07
+:103730009AEF97BD80936E0008952FB7F89480910B
+:10374000DC019091DD01A091DE01B091DF012FBF7E
+:103750000895CF92DF92EF92FF920F931F932FB7AE
+:10376000F8944091DC015091DD016091DE0170918F
+:10377000DF012FBF6A017B01EE24FF248C0120E0D2
+:1037800030E0C016D106E206F30610F441505109AC
+:103790009A01281B390BC9011F910F91FF90EF90DF
+:1037A000DF90CF9008951F920F920FB60F921124C1
+:1037B0008F939F93AF93BF938091DC019091DD0134
+:1037C000A091DE01B091DF010196A11DB11D809392
+:1037D000DC019093DD01A093DE01B093DF01BF9186
+:1037E000AF919F918F910F900FBE0F901F901895E2
+:1037F0000E94E90CF8942FEF87EA91E6215080406F
+:103800009040E1F700C0000087E090EBDC0180937E
+:10381000FB019093FC01A093FD01B093FE019CE09D
+:1038200088E10FB6F894A895809360000FBE90933E
+:103830006000FFCFEF92FF920F931F93CF93DF9320
+:10384000D82FCDE08C2F0E94390405E010E0E82E3F
+:10385000F12CC701002E02C0959587950A94E2F7D6
+:1038600080FF09C0602F7C2F80E00E94F505D813EF
+:1038700002C081E006C00150110958F7C15010F78D
+:1038800080E0DF91CF911F910F91FF90EF9008950D
+:10389000CF93C82F8CE20E941A1C882321F08C2F12
+:1038A000CF910C941A1C80E0CF910895CF930E9481
+:1038B0009D1D811102C00E94831DC5E6C15049F0C3
+:1038C0000E944B038FE39CE90197F1F700C00000D1
+:1038D000F5CF89E20E94481C811113C18AE20E943F
+:1038E000481C81110E94831D85E00E94481C8111A3
+:1038F0000E94F81B0E94A81D8093DA0187E00E94B5
+:10390000481C8823A9F18BE10E94481C882351F0B0
+:103910008091DA0181FB222720F991E0922790FB28
+:1039200081F90EC08EE00E94481C882361F08091CE
+:10393000DA0182FB222720F991E0922790FB82F99D
+:103940008093DA0115C080E10E94481C9091DA0151
+:10395000882341F093FB222720F981E0822780FB16
+:1039600093F904C0892F809580FB90F99093DA0138
+:103970008091DA010E94AC1D0E94BA1D8093FA0169
+:1039800080EE0E94481C882341F08091FA01982F14
+:10399000909590FB80F98093FA0189E30E94481C7E
+:1039A000882359F08091FA0181FB222720F991E0C8
+:1039B000922790FB81F98093FA0182EE0E94481CC5
+:1039C000882359F08091FA0182FB222720F991E0A7
+:1039D000922790FB82F98093FA0186EE0E94481CA0
+:1039E000882359F08091FA0183FB222720F991E086
+:1039F000922790FB83F98093FA0183EE0E94481C82
+:103A0000882359F08091FA0184FB222720F991E064
+:103A1000922790FB84F98093FA0185E30E94481C69
+:103A2000882359F08091FA0185FB222720F991E043
+:103A3000922790FB85F98093FA0181E30E94481C4C
+:103A4000882359F08091FA0186FB222720F991E022
+:103A5000922790FB86F98093FA0181E10E94481C2D
+:103A6000882359F08091FA0187FB222720F991E001
+:103A7000922790FB87F98093FA018091FA010E94C6
+:103A8000BE1D8091FA0187FB882780F980930D0184
+:103A900087E20E94481CC82F8EE10E94481C8111B9
+:103AA000C2608FE10E94481C8111C46080E20E94C4
+:103AB000481C8111C86081E20E94481C8111C061CC
+:103AC00082E20E94481C8111C06283E20E94481C6D
+:103AD0008111C06484E20E94481C882311F0C068F0
+:103AE00002C0CC2329F08C2F0E94B51D6C2F03C07F
+:103AF0000E94B11D682F70E080E090E0CF910C949F
+:103B00004518CF9108956DEE7EEF80E090E00E9421
+:103B1000EF2360E082E090E00E94DD2360E083E03C
+:103B200090E00E94DD2360E084E090E00E94DD23CD
+:103B300060E085E090E00C94DD2380E090E00E945E
+:103B4000D72321E08D3E9E4F09F020E0822F08957B
+:103B500082E090E00C94CF23682F82E090E00C94F8
+:103B6000DD2383E090E00C94CF23682F83E090E086
+:103B70000C94DD2384E090E00C94CF23682F84E044
+:103B800090E00C94DD238091E20180FF0BC06091F6
+:103B9000130185E0689FB0011124759567957595AF
+:103BA00067952BC081FF09C06091130185E0689F74
+:103BB000B00111247595679520C082FF07C0609100
+:103BC000130185E0689FB001112417C09091E301B3
+:103BD0009923D1F060911201961788F72091130173
+:103BE00085E0289F90011124929FA001939F500D82
+:103BF000112470E0CA010E94A1236038710540F4CD
+:103C00006115710539F002C065E070E0862F0895F6
+:103C10008FE7089581E008958091E20180FF08C058
+:103C20006091110170E0759567957595679521C054
+:103C300081FF06C06091110170E07595679519C00C
+:103C400082FF04C06091110170E010C09091E30107
+:103C50009923C1F0609110019617A0F7809111018E
+:103C6000899FC001112470E00E94A1236038710572
+:103C700028F46115710521F0862F08958FE70895C6
+:103C800081E0089561E070E0F4CF803F21F40E946C
+:103C9000C31D819504C0813F29F40E94C31D8093F8
+:103CA000E6010895823F21F40E94C31D819504C05E
+:103CB000833F29F40E94C31D8093E5010895893F45
+:103CC00019F40E940C1E05C08A3F31F40E940C1E9C
+:103CD00081958093E70108958B3F21F40E940C1E8B
+:103CE000819504C08C3F29F40E940C1E8093E8014A
+:103CF0000895843F21F48091E401816017C0853FDD
+:103D000021F48091E401826011C0863F21F480910A
+:103D1000E40184600BC0873F21F48091E401886056
+:103D200005C0883F31F48091E40180618093E40113
+:103D300008958D3F21F48091E20181600BC08E3F98
+:103D400021F48091E201826005C08F3F29F48091C7
+:103D5000E20184608093E2010895803F39F480910C
+:103D6000E60187FF6CC01092E60169C0813F29F42B
+:103D70008091E6011816BCF362C09091E501823F84
+:103D800029F497FF5CC01092E50159C0833F19F4F4
+:103D90001916CCF354C0893F41F48091E7011816FD
+:103DA0000CF04DC01092E7014AC08A3F29F480917F
+:103DB000E70187FF44C0F6CF8B3F39F48091E801DB
+:103DC00087FF3DC01092E8013AC08C3F29F48091F2
+:103DD000E8011816BCF333C0843F21F48091E4015C
+:103DE0008E7F17C0853F21F48091E4018D7F11C043
+:103DF000863F21F48091E4018B7F0BC0873F21F443
+:103E00008091E401877F05C0883F31F48091E4010F
+:103E10008F7E8093E40113C08D3F21F48091E201F5
+:103E20008E7F0BC08E3F21F48091E2018D7F05C013
+:103E30008F3F29F48091E2018B7F8093E201809192
+:103E4000E50181110EC08091E60181110AC08091C7
+:103E5000E701811106C08091E801811102C0109232
+:103E6000E301089584EE91E00E9403100E949D1BDF
+:103E70009093E1018093E00108951F93CF93DF9326
+:103E80008091E0019091E1010E94A91BAC01909109
+:103E9000E301992321F02091140130E006C0209124
+:103EA00015018AE0289F900111244217530708F456
+:103EB00086C08091E501C091E601D091E7011091A3
+:103EC000E801811107C0C11176C0D11174C0111170
+:103ED00072C075C09F3F19F09F5F9093E301181661
+:103EE00024F40E94C31D8093E5018091E50187FFC2
+:103EF00005C00E94C31D81958093E5011C1624F422
+:103F00000E94C31D8093E6018091E60187FF05C0F2
+:103F10000E94C31D81958093E6016091E5016623AF
+:103F200039F1C091E601CC2319F1772767FD70952F
+:103F3000872F972F0E94B22223E333E343E35FE30B
+:103F40000E9416230E947F226093E5016C2F772741
+:103F500067FD7095872F972F0E94B22223E333E3EA
+:103F600043E35FE30E9416230E947F226093E601F1
+:103F70001D1624F40E940C1E8093E7018091E70136
+:103F800087FF05C00E940C1E81958093E7011116E2
+:103F900024F40E940C1E8093E8018091E80187FFC1
+:103FA00005C00E940C1E81958093E801DF91CF919E
+:103FB0001F910C94321F9F3F09F08ECF96CFDF9157
+:103FC000CF911F910895E4EEF1E085E0DF011D92AD
+:103FD0008A95E9F71092E3011092E2010895833087
+:103FE00081F128F4813059F08230D1F00895853084
+:103FF00009F449C0B8F1863009F456C0089580919B
+:104000001501262F30E0280F311D2F3F310524F4F4
+:10401000680F6093150108958FEF8093150108953F
+:1040200080911401262F30E0280F311D2F3F3105DC
+:1040300024F4680F6093140108958FEF80931401A6
+:10404000089580911301262F30E0280F311D2F3F56
+:10405000310524F4680F6093130108958FEF809366
+:104060001301089580911201262F30E0280F311D91
+:104070002F3F310524F4680F6093120108958FEFEC
+:1040800080931201089580911101262F30E0280FAE
+:10409000311D2F3F310524F4680F609311010895FD
+:1040A0008FEF80931101089580911001262F30E049
+:1040B000280F311D2F3F310524F4680F6093100144
+:1040C00008958FEF809310010895833011F128F443
+:1040D000813049F0823091F00895853081F120F1EE
+:1040E0008630C1F1089580911501681720F4861B70
+:1040F000809315010895109215010895809114017F
+:10410000681720F4861B80931401089510921401FF
+:10411000089580911301681720F4861B8093130182
+:10412000089510921301089580911201681720F4E8
+:10413000861B8093120108951092120108958091B8
+:104140001101681720F4861B8093110108951092C5
+:104150001101089580911001681720F4861B809347
+:10416000100108951092100108950F931F938D313F
+:1041700009F46BC008F03FC08E3009F47FC0C0F472
+:10418000873009F469C068F4863009F0B1C08091C5
+:10419000DA01817F8E7F8093DA0181E08093EA01EA
+:1041A000A8C0883009F4A2C08B3009F49FC0A0C019
+:1041B000863109F49BC078F4803109F472C08131F2
+:1041C00009F096C00E94851490910D0181E0892725
+:1041D00080930D018BC0893109F488C08B3109F0BF
+:1041E00087C08091DA0181FB222720F991E0922794
+:1041F00090FB81F94CC0853309F470C048F48732D4
+:1042000009F46CC008F459C0893209F467C070C061
+:10421000833438F48A3308F04EC0883309F466C01A
+:1042200067C0833409F45AC0883409F061C00E9421
+:1042300085140FEF13ED20E3015010402040E1F70B
+:1042400000C000000E94F81B51C00E9439220E9449
+:10425000EC0F0E94E5084AC09091DA01892F809501
+:10426000817080FB90F929F0966098609093DA0154
+:1042700040C0997F977F9093DA0138C08091DA012E
+:1042800082FB222720F991E0922790FB82F980930C
+:10429000DA01992359F18091DA0181608093DA0182
+:1042A00025C08091DA0183FB222720F991E0922733
+:1042B00090FB83F9ECCF895301C08D5141E050E070
+:1042C00060E070E08A019B0104C0000F111F221FF3
+:1042D000331F8A95D2F7C901B80104C061E070E0CC
+:1042E00080E090E00E9445180E94851481E001C0A2
+:1042F00080E01F910F91089580E0089580E0089577
+:10430000CF93C82F8091EA01813079F018F0823084
+:10431000E9F187C0E0910E01F0910F0180818131B8
+:1043200069F0823209F07FC009C0E0910E01F0917E
+:104330000F018081813111F0823261F48C2F0E9453
+:104340007C21811104C08C2F0E94B5201DC081E00A
+:1043500090E01AC08C2F0E947E21811114C0C431BC
+:1043600079F048F4CB3079F0C03109F060C082E0D8
+:104370008093EA0108C0C93219F0C83321F057C050
+:104380001092EA0154C081E0817053C0C93289F1B2
+:1043900018F5C43171F1A8F4C73009F046C08AE0BD
+:1043A0008093150194E19093140193E0909313018D
+:1043B0008093120188E08093110188E280931001BC
+:1043C00034C0CE51C63088F5EC2FF0E0E65DFE4FEC
+:1043D00080818093E90129C0CE34E9F020F4CB3408
+:1043E00021F56AE013C0C13579F0C235F1F461E01E
+:1043F0000DC08091E901882319F01092E90115C0E0
+:1044000081E08093EA0115C061E006C08091E90176
+:104410000E94EF1F0AC06AE08091E9010E946520B6
+:1044200004C01092EA0180E004C081E002C080E094
+:10443000ABCFCF910895E1E8F0E080818860808380
+:104440008081816080838FB7F89493E09093890096
+:1044500090ED909388008FBF0895EFE6F0E08081A3
+:10446000826080830895EFE6F0E080818D7F808315
+:104470000895EFE6F0E0908182E089278083089537
+:104480001F920F920FB60F9211242F933F934F93C9
+:104490005F936F937F938F939F93AF93BF93EF93AC
+:1044A000FF938091EB019091EC0101969093EC01C8
+:1044B0008093EB01811103C082E00E94E508E09146
+:1044C000EC01E695E695F0E0EC54FB4FE491809129
+:1044D000EB018E1303C080E00E94E508FF91EF918D
+:1044E000BF91AF919F918F917F916F915F914F910C
+:1044F0003F912F910F900FBE0F901F90189504D0F1
+:104500006894B1118DC0089570D088F09F5790F0D5
+:10451000B92F9927B751A0F0D1F0660F771F881FE8
+:10452000991F1AF0BA95C9F712C0B13081F077D04F
+:10453000B1E0089574C0672F782F8827B85F39F0ED
+:10454000B93FCCF3869577956795B395D9F73EF447
+:1045500090958095709561957F4F8F4F9F4F0895EF
+:10456000E89409C097FB3EF490958095709561950D
+:104570007F4F8F4F9F4F9923A9F0F92F96E9BB27C3
+:104580009395F695879577956795B795F111F8CF3F
+:10459000FAF4BB0F11F460FF1BC06F5F7F4F8F4FAA
+:1045A0009F4F16C0882311F096E911C0772321F0A0
+:1045B0009EE8872F762F05C0662371F096E8862F38
+:1045C00070E060E02AF09A95660F771F881FDAF78F
+:1045D000880F9695879597F9089557FD9058440F41
+:1045E000551F59F05F3F71F04795880F97FB991F52
+:1045F00061F09F3F79F0879508951216130614060F
+:10460000551FF2CF4695F1DF08C01616170618069B
+:10461000991FF1CF86957105610508940895E89476
+:10462000BB2766277727CB0197F908950BD078C071
+:1046300069D028F06ED018F0952309F05AC05FC0F9
+:104640001124EECFCADFA0F3959FD1F3950F50E070
+:10465000551F629FF001729FBB27F00DB11D639F34
+:10466000AA27F00DB11DAA1F649F6627B00DA11DDA
+:10467000661F829F2227B00DA11D621F739FB00D80
+:10468000A11D621F839FA00D611D221F749F3327F0
+:10469000A00D611D231F849F600D211D822F762F89
+:1046A0006A2F11249F5750408AF0E1F088234AF086
+:1046B000EE0FFF1FBB1F661F771F881F91505040D2
+:1046C000A9F79E3F510570F014C0AACF5F3FECF3ED
+:1046D000983EDCF3869577956795B795F795E795BE
+:1046E0009F5FC1F7FE2B880F911D9695879597F9CF
+:1046F000089597F99F6780E870E060E008959FEF64
+:1047000080EC089500240A94161617061806090668
+:10471000089500240A941216130614060506089537
+:10472000092E0394000C11F4882352F0BB0F40F4BF
+:10473000BF2B11F460FF04C06F5F7F4F8F4F9F4FFF
+:10474000089597FB072E16F4009407D077FD09D043
+:104750000E94BB2307FC05D03EF4909581959F4FA6
+:104760000895709561957F4F0895EE0FFF1F059096
+:10477000F491E02D0994AA1BBB1B51E107C0AA1FAD
+:10478000BB1FA617B70710F0A61BB70B881F991FF2
+:104790005A95A9F780959095BC01CD010895F99996
+:1047A000FECF92BD81BDF89A992780B50895A8E102
+:1047B000B0E042E050E00C94F723262FF999FECFA9
+:1047C00092BD81BDF89A019700B4021639F01FBA64
+:1047D00020BD0FB6F894FA9AF99A0FBE0895019683
+:1047E000272F0E94DE230C94DD23DC01CB01FC018A
+:1047F000F999FECF06C0F2BDE1BDF89A319600B43A
+:0E4800000D9241505040B8F70895F894FFCF44
+:10480E000220E708750952091E09EA080101C701CD
+:10481E0028080A03140A3F4D363975042804F2039A
+:10482E00B9034C0365037E039703010203040506D7
+:04483E00070809005E
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/german/keymap.c b/keyboards/ergodox_ez/keymaps/german/keymap.c new file mode 100644 index 000000000..3eab51f0e --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/german/keymap.c @@ -0,0 +1,185 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_german.h" + +// Layer names +#define BASE 0 // default layer +#define SYMB 1 // symbol layer +#define MDIA 2 // media keys + +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 | ß | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Del | Q | W | E | R | T | L1 | | L2 | Z | U | I | O | P | Ü | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Caps | A | S | D | F | G |------| |------| H | J | K | L | Ö | Ä/L2 | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift | Y | X | C | V | B | | | | N | M | , | . |-/Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | </L1 |#/Ctrl| ´ | - | + | | Right| Down | Up | Left | ~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_CIRC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MPLY, + KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, DE_Y, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), + LT(SYMB,DE_LESS),CTL_T(DE_HASH), DE_ACUT, DE_MINS, DE_PLUS, + ALT_T(KC_APP), KC_LGUI, + KC_HOME, + KC_SPC,KC_BSPC,KC_END, + // right hand + KC_MNXT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(2), DE_Z, KC_U, KC_I, KC_O, KC_P, DE_UE, + KC_H, KC_J, KC_K, KC_L, DE_OE, LT(MDIA,DE_AE), + MEH_T(KC_NO),KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(DE_MINS), KC_RSFT, + KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, 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,DE_EXLM,DE_AT, DE_LCBR,DE_RCBR,DE_PIPE,KC_TRNS, + KC_TRNS,DE_HASH,DE_DLR, DE_LPRN,DE_RPRN,DE_GRV, + KC_TRNS,DE_PERC,DE_CIRC,DE_LBRC,DE_RBRC,DE_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, DE_ASTR, KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, DE_PLUS, KC_TRNS, + KC_TRNS, DE_AMPR, KC_1, KC_2, KC_3, DE_BSLS, KC_TRNS, + KC_TRNS,KC_DOT, KC_0, DE_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | Lclk | MsUp | Rclk | | | | | |VolDwn| Mute |VolUp | | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | Btn4 |MsLeft|MsDown|MsRght| Btn5 |------| |------| | Prev | Stop | Play | Next | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | |WhRght|WhDown| WhUp |WhLeft|WhClk | | | |BwSrch|BwBack|BwHome|BwRefr|BwFwd | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | |MsAcl0|MsAcl1|MsAcl2| | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | |Brwser|Brwser| + * | Lclk | Rclk |------| |------|Back |Forwd | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[MDIA] = KEYMAP( + KC_TRNS, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_TRNS, + KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS, + KC_TRNS, KC_BTN4, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN5, + KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_BTN3, KC_TRNS, + KC_TRNS, KC_TRNS, KC_ACL0, KC_ACL1, KC_ACL2, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_BTN1, KC_BTN2, KC_TRNS, + // right hand + KC_TRNS, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11, + KC_TRNS, KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_F12, + KC_TRNS, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, KC_TRNS, + KC_TRNS, KC_WSCH, KC_WBAK, KC_WHOM, KC_WREF, KC_WFWD, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_WBAK, KC_WFWD +), +}; + +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) { + case SYMB: + ergodox_right_led_1_on(); + break; + case MDIA: + ergodox_right_led_2_on(); + break; + default: + ergodox_board_led_off(); + break; + } + +}; diff --git a/keyboards/ergodox_ez/keymaps/j3rn/compiled.hex b/keyboards/ergodox_ez/keymaps/j3rn/compiled.hex new file mode 100644 index 000000000..d92538340 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/j3rn/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947B020C94BF020C94BF020C94BF02B0
+:100010000C94BF020C94BF020C94BF020C94BF025C
+:100020000C94BF020C94BF020C94630D0C94350E1B
+:100030000C94BF020C94BF020C94BF020C94BF023C
+:100040000C94BF020C943F220C94BF020C94BF028C
+:100050000C94BF020C94D21B0C94BF020C94BF02F0
+:100060000C94BF020C94BF020C94BF020C94BF020C
+:100070000C94BF020C94BF020C94BF020C94BF02FC
+:100080000C94BF020C94BF020C94BF020C94BF02EC
+:100090000C94BF020C94BF020C94BF020C94BF02DC
+:1000A0000C94BF020C94BF020C94BF02A20EC40EAB
+:1000B000B20FC40EB20F090F2C0FB20F810F940FA5
+:1000C0006312631292129212C812E81219141914D0
+:1000D000F3121914A313A3130A14191419141314E3
+:1000E000B013B013B013B013B013B013B013B013F8
+:1000F000B013B013B013B013B013B013B013B013E8
+:10010000C213CF13D613DD13E7130000F0A1F0A242
+:1001100035002B002971E100C10000001E00140011
+:1001200004421D71C200E1001F001A0016001B00EE
+:10013000E104E300200008000700060050002C0046
+:1001400021001500090019004F004D002200170082
+:100150000A000500000065742F002D000000007FDC
+:1001600000004A0030002E000000007700004B0025
+:1001700023001C000B00110000002971240018004E
+:100180000D00100052004E0025000C000E0036003D
+:1001900051002800260012000F0037002F002B000E
+:1001A00027001300330038713000E2002A003100CC
+:1001B0003400E500C1000000010001000100010061
+:1001C000010000003A001E0220022202010001008C
+:1001D0003B001F0221022302010001003C002F020C
+:1001E00026022F00010001003D00300227023000EE
+:1001F000010001003E00310235003502000001001F
+:1002000001000100000001000000010001000100E8
+:1002100000000100000001003F00520051002402D4
+:10022000000001004000240021001E000100010028
+:100230004100250022001F00370001004200260077
+:100240002300200027000100430025022E02310078
+:100250002E000100440045000100010001000000E3
+:100260000100010001000100010000000100010087
+:100270000100010001000100010001000100010076
+:100280000100010001000100010001000100010066
+:100290000100010001000100010001000100010056
+:1002A0000100010000000100010001000000010048
+:1002B0000000010001000100000001000000010039
+:1002C00001000100F2000100000001000100010036
+:1002D000F1000100A90001000100F400F000AC00F1
+:1002E000AA00B6000100F500F300AB00A800010071
+:1002F00001000100010001000100010001000100F6
+:10030000AE00010001000000160345007200670006
+:100310006F0044006F007800200045005A00000084
+:1003200016034500720067006F0044006F007800FC
+:10033000200045005A0000000403090409026D0072
+:10034000040100A0FA0904000001030101000921D1
+:1003500011010001223F000705810308000A09047A
+:1003600001000103010200092111010001224D00D9
+:100370000705820308000A090402000103000000C7
+:100380000921110100012236000705830308000A34
+:1003900009040300010300000009211101000122EA
+:1003A000390007058403100001120110010000004C
+:1003B00008EDFE071301000102000105010906A175
+:1003C00001050719E029E715002501950875018148
+:1003D0000205081901290595057501910295017518
+:1003E00003910105071900297715002501957875F6
+:1003F000018102C005010980A101850216010026C4
+:10040000B7001A01002AB700751095018100C005D8
+:100410000C0901A1018503160100269C021A0100A6
+:100420002A9C02751095018100C005010902A101F5
+:100430000901A100050919012905150025019505E6
+:1004400075018102950175038101050109300931AA
+:100450001581257F95027508810609381581257F4C
+:10046000950175088106050C0A38021581257F95CE
+:100470000175088106C0C005010906A1010507191B
+:10048000E029E715002501950875018102950175A0
+:100490000881010508190129059505750191029545
+:1004A00001750391010507190029FF150025FF9526
+:1004B0000675088100C00000000000000000000078
+:1004C00000010204060A0F17202C3A4A5D71879D2D
+:1004D000B3C7DAE9F5FCFFFCF5E9DAC7B39D87712C
+:1004E0005D4A3A2C20170F0A0604020100000000A2
+:1004F00000000000000011241FBECFEFDAE0DEBFD5
+:10050000CDBF04B603FE24C08091FB019091FC0195
+:10051000A091FD01B091FE018730904BA740B04BF8
+:10052000B9F41092FB011092FC011092FD0110929F
+:10053000FE0114BE84B7877F84BF88E10FB6F894AC
+:1005400080936000109260000FBEE0E0FFE3099529
+:1005500011E0A0E0B1E0ECE0F8E402C005900D92FB
+:10056000A433B107D9F711E0A4E3B1E001C01D92B3
+:10057000AB3FB107E1F70E94A70A0C9404240C9446
+:1005800000001092B9008AE08093B800089594EAC0
+:100590009093BC009091BC0097FFFCCF9091B90064
+:1005A000987F983021F0903111F081E00895809388
+:1005B000BB0084E88093BC008091BC0087FFFCCF27
+:1005C0008091B900887F883111F0803471F780E024
+:1005D000089584E98093BC008091BC0084FDFCCF29
+:1005E00008958093BB0084E88093BC008091BC0098
+:1005F00087FFFCCF9091B900987F81E0983209F491
+:1006000080E0089584E88093BC008091BC0087FF5F
+:10061000FCCF8091BB00089580910101811115C02C
+:1006200080E40E94C7028093010181110CC082E125
+:100630000E94F10280930101811105C08FEF0E9499
+:10064000F102809301010E94E90284B1807F84B9A4
+:1006500085B1807F85B98AB1837F8AB98BB1837F69
+:100660008BB93E98469808950E94C7048093010173
+:100670000E940C0380B38C7080BB81B3836F81BBFD
+:10068000A5E3B1E0E3E4F1E08EE08E0F11921D925C
+:100690008E13FCCF0C94B104BF92CF92DF92EF92F5
+:1006A000FF920F931F93CF93DF93809101018823D3
+:1006B00079F0809134018F5F80933401811108C0FB
+:1006C0000E94C70480930101811102C00E94590455
+:1006D00005E311E0C0E0D0E0DD24D39482E0C82E31
+:1006E000EE24E394F12CC730D10500F5809101018F
+:1006F000811164C080E40E94C702809301018111CE
+:1007000012C082E10E94F1028093010181110BC0AD
+:10071000C7010C2E01C0880F0A94EAF780950E9449
+:10072000F102809301010E94E90248C0CA30A1F0A1
+:1007300028F4C83059F0C93061F005C0CC3089F0D8
+:1007400070F0CD3089F0209A289810C0219A29980D
+:100750000DC0229A2A980AC0239A2B9807C0529A51
+:1007600001C0539A5B9802C03E9A469890EA9A95C7
+:10077000F1F79FB1799902C082E001C080E09170E9
+:100780009D25982B7C9902C084E001C080E0892BD4
+:100790007D9902C038E001C030E0832B7E9902C011
+:1007A00020E101C020E0822B9FB19095991F9927ED
+:1007B000991F9295990F907E892B0FC0809101010E
+:1007C000811149C080E40E94C702809301018823FF
+:1007D00079F1B12C0E94E9028B2DF80190819817D4
+:1007E00019F08083C09200010E940C0321960F5FD4
+:1007F0001F4FCE30D10509F076CF809100018823BC
+:1008000061F1815080930001882339F08FE99FE0E6
+:100810000197F1F700C0000020C0A3E4B1E0E5E3D8
+:10082000F1E0CF01825F91919D938E13FCCF15C0B3
+:1008300083E10E94F102809301018111CACF81E41A
+:100840000E94C702809301018111C3CF0E9402035D
+:10085000B82EB094BFCF80E0C0CF0E94570481E093
+:10086000DF91CF911F910F91FF90EF90DF90CF908C
+:10087000BF900895E82FF0E0ED5BFE4F8081089572
+:1008800008950F931F93CF93DF93C3E4D1E010E05B
+:100890000C2F025F899190E00E94F81A180F0C1338
+:1008A000F9CF812FDF91CF911F910F9108950C9473
+:1008B000270556985E9825982D9826982E98279863
+:1008C0002F988FEF90E09093890080938800909309
+:1008D0008B0080938A0090938D0080938C00259AE2
+:1008E0002D9A2FEF80E792E0215080409040E1F771
+:1008F00000C00000269A2E9A2FEF80E792E0215048
+:1009000080409040E1F700C00000279A2F9A2FEF17
+:1009100080E792E0215080409040E1F700C0000065
+:1009200025982D982FEF80E792E02150804090404D
+:10093000E1F700C0000026982E982FEF80E792E0A4
+:10094000215080409040E1F700C0000027982F9888
+:1009500056985E9825982D9826982E9827982F9827
+:10096000089589EA8093800089E08093810024982B
+:100970002C983F988AB18F748AB96E98479A8BB138
+:10098000806B8BB9769A0E9459040C94260580E2FC
+:10099000809301018091510181110EC00E94C1021A
+:1009A00081E0809351012FEF83ED90E3215080404F
+:1009B0009040E1F700C0000080E40E94C7028093ED
+:1009C000010181112EC00E94F10280930101811169
+:1009D00028C00E94F10280930101811122C08FE39F
+:1009E0000E94F1028093010181111BC00E94E90263
+:1009F00080E40E94C70280930101811112C08CE043
+:100A00000E94F1028093010181110BC00E94F1024A
+:100A100080930101811105C08FE30E94F102809350
+:100A200001010E94E90280910101089561110BC04A
+:100A3000FC018281882321F085EE0E94071103C00A
+:100A400085EE0E94CF1180E090E0089508956091B6
+:100A5000BD017091BE018091BF019091C0010E94C3
+:100A6000041B56985E9825982D9826982E982798BE
+:100A70002F98813019F0823021F00895259A2D9A0F
+:100A80000895269A2E9A089581E0089581E00895A8
+:100A90000C94460508950F931F93CF93DF938C0119
+:100AA000FC01C081D181CE010E947D19BE010E944E
+:100AB000F405EC01B8010E944805882309F48DC0B3
+:100AC000F8018281882309F44AC080915D01811177
+:100AD0001FC0C431F0E5DF0709F051C00E944A058C
+:100AE00081E080935D010E949C1B90935C01809348
+:100AF0005B01109254011092560110925501109210
+:100B000058011092570110925A011092590165C074
+:100B100080915B0190915C010E94A81B883C91052B
+:100B200070F480915401E82FF0E0EE0FFF1FEB5AB4
+:100B3000FE4FD183C0838F5F809354014EC0C43871
+:100B400080E5D80721F0C538D04501F13AC0F80159
+:100B50008281882341F01092520182E01EC0C43885
+:100B6000E0E5DE0759F580915201811106C086E269
+:100B70000E94071186E20E94CF1182E01CC0C43897
+:100B8000F0E5DF0741F3C538D045D9F4F80182819B
+:100B9000882331F01092530180E20E941E121DC082
+:100BA00080915301811106C087E20E94071187E2FC
+:100BB0000E94CF1180E20E9425120FC0C538D04597
+:100BC00029F381E08093520180935301C801DF91A2
+:100BD000CF911F910F910C94440580E0DF91CF914C
+:100BE0001F910F910895089596E0799FF0011124C7
+:100BF00094E5899FE00DF11D1124E60FF11DEE0F24
+:100C0000FF1FE05FFE4F859194910895880F991F13
+:100C1000FC01E657F040859194910895880F991F43
+:100C2000FC01E65FFE4F8591949108950F931F9309
+:100C3000CF93DF93EC01811520E3920750F5C115A6
+:100C400080E2D80708F0C3C0CB3BD10590F4C83A86
+:100C5000D10508F06AC0C53AD10508F05BC0C430C0
+:100C6000D10508F0D0C1219709F0CAC101E010E018
+:100C70000AC2CF3FD10511F008F0C5C1C03FD10570
+:100C800008F0A2C0CE01805E9109089708F4BBC1AC
+:100C9000B7C1C13090E5D90709F4A2C020F5C03131
+:100CA0008FE4D80770F4C11590E4D90708F094C018
+:100CB000C11521E3D20708F0A3C1DD278E01106C16
+:100CC000E2C1C115D04509F09BC10E9484148FEF89
+:100CD00094E32CE0815090402040E1F700C00000F8
+:100CE0000E94F71BD0C1C11597E5D90758F4C03150
+:100CF00021E5D20708F01CC1C43180E5D80708F40B
+:100D000075C07EC1CE0190578115904108F078C121
+:100D1000DF7073C1C53AD10509F477C1C63AD10570
+:100D200009F076C102E810E4AEC1C83AD10509F471
+:100D300072C1C93AD10509F471C1CA3AD10509F4A1
+:100D400070C1CB3AD10509F46FC1CC3AD10509F491
+:100D50006EC1CD3AD10509F46DC1C03BD10509F48E
+:100D60006CC1CE3AD10509F46BC1CF3AD10509F473
+:100D70006AC1C13BD10509F469C1C23BD10509F47F
+:100D800068C1C33BD10509F467C1C43BD10509F46F
+:100D900066C1C53BD10509F465C1C63BD10509F45F
+:100DA00064C1C73BD10509F463C1C83BD10509F44F
+:100DB00062C1C93BD10509F461C1CA3BD10509F43F
+:100DC00060C100E014E45FC18E0110655CC1CE011A
+:100DD0009F700E940E0658C1DF708E01106A53C1C9
+:100DE0008091DA0181608093DA014DC10E949C1DDF
+:100DF000811102C00E94821D0E94B91D90E0909353
+:100E0000FB018093FA01C23080E5D80721F480917C
+:100E1000FA01816086C0C43090E5D90721F4809141
+:100E2000FA0182607EC0C63020E5D20721F48091AD
+:100E3000FA01846076C0C83080E5D80719F4809143
+:100E4000FA0127C0CA3090E5D90721F48091FA0150
+:100E5000806167C0CC3020E5D20721F48091FA018F
+:100E600080625FC0CE3080E5D80721F48091FA011E
+:100E7000806457C0C03190E5D90721F48091FA0110
+:100E800080684FC0C23120E5D20729F48091FA0171
+:100E90008460886046C0C33080E5D80721F4809123
+:100EA000FA018E7F3EC0C53090E5D90721F48091CC
+:100EB000FA018D7F36C0C73020E5D20721F480913A
+:100EC000FA018B7F2EC0C93080E5D80719F48091D4
+:100ED000FA0126C0CB3090E5D90721F48091FA01C0
+:100EE0008F7E1FC0CD3020E5D20721F48091FA011A
+:100EF0008F7D17C0CF3080E5D80721F48091FA01AB
+:100F00008F7B0FC0C13190E5D90721F48091FA01A0
+:100F10008F7707C0C331D04531F48091FA018B7FC0
+:100F2000877F8093FA018091FA010E94BD1DABC0BA
+:100F30008D2F99278F70992781309105D9F49E01C3
+:100F40002370332702C0880F991F2A95E2F79C6807
+:100F50008E0144E0000F111F4A95E1F7002713703E
+:100F6000802B912B53E0CC0FDD1F5A95E1F7C07613
+:100F7000DD272FC08230910531F4DC2FCC278E0184
+:100F8000016F106A80C08330910569F4CE018370CF
+:100F9000992701E010E002C0000F111F8A95E2F7C7
+:100FA000C8019C680FC084309105B9F4CE018370EC
+:100FB000992701E010E002C0000F111F8A95E2F7A7
+:100FC000C8019A6823E0CC0FDD1F2A95E1F7C07EA7
+:100FD000D7708C010C2B1D2B56C08530910531F438
+:100FE000DC2FCC278E01046F106A4DC0069709F0E4
+:100FF0004AC0CF71DD27DC2FCC278E01106243C0A1
+:1010000000E010E040C08E013EC001E810E43BC0AB
+:1010100003E810E438C002EE14E435C009EE14E42D
+:1010200032C00AEE14E42FC005EB14E42CC006EB2A
+:1010300014E429C007EB14E426C00CEC14E423C02C
+:101040000DEC14E420C003E815E41DC00AE815E423
+:101050001AC002E915E417C004E915E414C001E25E
+:1010600016E411C003E216E40EC004E216E40BC05D
+:1010700005E216E408C006E216E405C007E216E43D
+:1010800002C00AE216E4C801DF91CF911F910F91CF
+:10109000089596E0799FF001112494E5899FE00D71
+:1010A000F11D1124E60FF11DEE0FFF1FE05FFE4F53
+:1010B00085919491803E9105E0F4803C910558F52E
+:1010C0008133910509F46FC048F48932910509F420
+:1010D00063C08A32910509F46DC072C089339105ED
+:1010E000E9F082389105D1F08533910509F44DC0BE
+:1010F00067C0833E910581F138F4803E9105B9F0D7
+:10110000823E9105D9F05CC0863E910561F1873E33
+:101110009105A1F155C00E94060608952091FA019B
+:1011200020FD02C021FF4CC080EE90E049C08091BC
+:10113000FA0180FFF9CF89E390E042C08091FA0183
+:1011400082FF0EC08091FA0184FF03C080E090E02E
+:1011500037C083EE90E034C08091FA0182FFF2CF75
+:1011600082EE90E02DC08091FA0183FF0BC0809148
+:10117000FA0184FDEBCF87EE90E022C08091FA0166
+:1011800083FFF5CF86EE90E01BC08091FA0185FFCA
+:1011900007C089E290E014C08091FA0185FFF9CF81
+:1011A00085E390E00DC08091FA0186FF07C08AE2D6
+:1011B00090E006C08091FA0186FFF9CF81E390E0CC
+:1011C0000E941606089508950C94E30880916E011C
+:1011D0000895CF93DF9300D01F92CDB7DEB79C0167
+:1011E0008091F101843019F593E099833B832A8340
+:1011F0009093E9008FEF9091E800815095FD06C033
+:1012000095ED9A95F1F700008111F5CF8091E800F6
+:1012100085FF0DC040E050E063E070E0CE01019634
+:101220000E94530B8091E8008E778093E8000F9026
+:101230000F900F90DF91CF910895CF93DF9300D05F
+:101240001F92CDB7DEB72091F101243021F522E0C5
+:1012500029839B838A8383E08093E9008FEF9091B9
+:10126000E800815095FD06C095ED9A95F1F70000D4
+:101270008111F5CF8091E80085FF0DC040E050E07E
+:1012800063E070E0CE0101960E94530B8091E8006C
+:101290008E778093E8000F900F900F90DF91CF91A1
+:1012A00008952091F1012430F1F422E02093E90027
+:1012B0002FEF3091E800215035FD06C035ED3A950D
+:1012C000F1F700002111F5CF2091E80025FF0BC0B8
+:1012D00040E050E065E070E00E94530B8091E80030
+:1012E0008E778093E8000895CF93DF93EC0190917F
+:1012F000F101943009F046C080910C018823D9F0A7
+:1013000080910D018823B9F09093E9008FEF9091BF
+:10131000E800815095FD06C095E19A95F1F700002F
+:101320008111F5CF8091E80085FF2CC040E050E0AE
+:1013300060E170E017C081E08093E9008FEF909149
+:10134000E800815095FD06C095ED9A95F1F70000F3
+:101350008111F5CF8091E80085FF14C040E050E096
+:1013600068E070E0CE010E94530B8091E8008E7718
+:101370008093E80080E1FE01AEE5B1E001900D92BE
+:101380008A95E1F7DF91CF9108958091F001811165
+:1013900009C00E94E80C0E94450D8091E200846023
+:1013A0008093E20008951092F001089508950C943E
+:1013B0002C220E948D1B0E9432220E94EB0F0C9463
+:1013C000E40842E061EC81E00E94620C42E061ECE2
+:1013D00082E00E94620C42E061EC83E00E94620CB9
+:1013E00042E161EC84E00C94620C8091F301833063
+:1013F00009F455C030F4813071F0823009F48EC0A8
+:1014000008958A3009F47AC08B3009F460C08930BD
+:1014100009F09CC020C08091F201813A09F096C089
+:101420008091E800877F8093E8008091F601909199
+:10143000F701892B21F460E18EE591E003C060E0C3
+:1014400080E090E070E00E949E0B8091E8008B7736
+:101450008093E80008958091F201813209F076C00E
+:101460008091F6019091F701009719F0039709F028
+:101470006DC08091E800877F8093E8008091E8004C
+:1014800082FD05C08091F1018111F8CF5FC080918C
+:10149000F10080936E018091E8008B7753C08091BA
+:1014A000F201813A09F052C08091F6019091F70162
+:1014B000892B09F04BC08091E800877F8093E8007A
+:1014C0008091E80080FFFCCF80910C0136C08091B4
+:1014D000F2018132D9F58091F6019091F701892BC3
+:1014E000A9F58091E800877F8093E8000E94970C1F
+:1014F0008091F40180930C010C9484148091F2018A
+:10150000813221F58091E800877F8093E8000E9476
+:10151000970C8091F50180936F0108958091F201FD
+:10152000813AA1F48091E800877F8093E800809160
+:10153000E80080FFFCCF80916F018093F1008091E3
+:10154000E8008E778093E8000C94970C089584B798
+:10155000877F84BF88E10FB6F89480936000109273
+:1015600060000FBE90E080E80FB6F89480936100B1
+:10157000909361000FBE0E943A100E94E80C0E94F6
+:10158000450D8091E20084608093E20078940E948F
+:10159000CB0F0E943C1082E091E00E94E60F0E9477
+:1015A0001A228091F101853069F40E94541B8091C8
+:1015B000EF018823B1F30E947F1B882391F30E94DF
+:1015C0003D0BEFCF0E944210ECCF292F3327233061
+:1015D0003105C9F064F42130310581F02230310544
+:1015E00009F043C08DE690E02CE333E042C02132A5
+:1015F0003105F1F02232310541F137C082E190E04E
+:1016000029EA33E036C099278130910541F08230D4
+:10161000910541F0892B49F5E8E3F3E005C0E0E2EC
+:10162000F3E002C0E8E0F3E0849190E09F0121C084
+:101630006430D8F4E62FF0E0EE0FFF1FEE5DFE4FB2
+:101640002081318189E090E014C0643070F470E052
+:10165000FB01EE0FFF1FE65EFE4F20813181FB0193
+:10166000EA5EFE4F808190E004C080E090E020E0E0
+:1016700030E0FA0131832083089580E189BD82E161
+:1016800089BD09B400FEFDCF8091D8008F7D809385
+:10169000D8008091E00082608093E0008091E000BB
+:1016A00081FDFCCF0895CF92DF92EF92FF920F93CE
+:1016B0001F93CF93DF93EC018B016A010E94B60C5C
+:1016C000811133C0C114D10439F0F60180819181B8
+:1016D000081B190BC80FD91FE12CF12C011511059E
+:1016E00019F18091E80085FD16C08091E8008E77A1
+:1016F0008093E800C114D10449F0F6018081918102
+:10170000E80EF91EF182E08285E00FC00E94B60C5F
+:10171000882321F30AC089918093F10001501109B7
+:10172000FFEFEF1AFF0ADACF80E0DF91CF911F9130
+:101730000F91FF90EF90DF90CF9008952091F801E6
+:101740003091F9012617370748F06115710539F412
+:101750002091E8002E772093E80001C0B90140E015
+:1017600061157105A9F12091F101222309F443C00B
+:10177000253009F442C02091E80023FD40C02091AB
+:10178000E80022FD32C02091E80020FFE9CF40911F
+:10179000F3002091F20030E0342BFC01CF01611501
+:1017A000710559F02830310540F481918093F100A2
+:1017B000615071092F5F3F4FF1CF41E02830310573
+:1017C00009F040E02091E8002E772093E800C8CF90
+:1017D0004111C9CF0AC08091F101882361F08530A1
+:1017E00061F08091E80083FD0AC08091E80082FFEB
+:1017F000F2CF80E0089582E0089583E0089581E0CB
+:1018000008952091F8013091F9012617370748F023
+:101810006115710539F42091E8002E772093E800D6
+:1018200001C0B901FC0120E06115710591F18091C1
+:10183000F101882309F440C0853009F43FC080914C
+:10184000E80083FD3DC08091E80082FD2FC08091BB
+:10185000E80080FFE9CF2091F3008091F20090E052
+:10186000922B6115710559F08830910540F424914F
+:101870002093F1003196615071090196F2CF21E079
+:10188000089709F020E08091E8008E778093E800C7
+:10189000CBCF2111CCCF0AC08091F101882361F018
+:1018A000853061F08091E80083FD0AC08091E800F6
+:1018B00082FFF2CF80E0089582E0089583E00895EA
+:1018C00081E00895982F973058F59093E900981784
+:1018D00039F07091EC002091ED005091F00003C0C0
+:1018E000242F762F50E021FF19C03091EB003E7F6E
+:1018F0003093EB003091ED003D7F3093ED0030915F
+:10190000EB0031603093EB007093EC002093ED001E
+:101910005093F0002091EE0027FF07C09F5FD3CFC8
+:101920008F708093E90081E0089580E008958091B0
+:10193000F20187FF11C08091E80082FD05C080910F
+:10194000F1018111F8CF11C08091E8008B770BC0B5
+:101950008091F101882349F08091E80080FFF8CF61
+:101960008091E8008E778093E80008952091E4004C
+:101970003091E50095E64091EC00842F817040FFA6
+:1019800022C08091E80080FD1CC08091F101882375
+:1019900091F0853091F08091EB0085FD10C0409171
+:1019A000E4005091E5004217530729F39A01915042
+:1019B00011F784E0089582E0089583E0089581E0BE
+:1019C000089580E008954091E80042FFDECF089539
+:1019D0000E94560D0E945E0DE0EEF0E08081816075
+:1019E0008083E8EDF0E080818F77808319BCA7EDDC
+:1019F000B0E08C918E7F8C9380818F7E808310925B
+:101A0000F00108950F931F93CF93DF930E94560D1B
+:101A10000E945E0DC8EDD0E088818F778883888131
+:101A20008068888388818F7D888319BC1092F1013A
+:101A30001092ED011092EF011092EE0100EE10E015
+:101A4000F80180818B7F808388818160888342E078
+:101A500060E080E00E94620CE1EEF0E080818E7F29
+:101A60008083E2EEF0E08081816080838081886005
+:101A70008083F80180818E7F808388818061888364
+:101A8000DF91CF911F910F910895E8EDF0E08081F3
+:101A90008F7E8083E7EDF0E080818160808384E049
+:101AA00082BF81E08093F0010C94020DE8EDF0E03C
+:101AB00080818E7F80831092E20008951092DA0078
+:101AC0001092E10008951F920F920FB60F92112409
+:101AD0002F933F934F935F936F937F938F939F9336
+:101AE000AF93BF93EF93FF938091E10082FF0BC010
+:101AF0008091E20082FF07C08091E1008B7F80939C
+:101B0000E1000E94CA0F8091DA0080FF1FC080911F
+:101B1000D80080FF1BC08091DA008E7F8093DA00AE
+:101B20008091D90080FF0DC080E189BD82E189BD2F
+:101B300009B400FEFDCF81E08093F1010E94C50948
+:101B400005C019BC1092F1010E94D3098091E100F7
+:101B500080FF19C08091E20080FF15C08091E200F3
+:101B60008E7F8093E2008091E20080618093E200AA
+:101B70008091D80080628093D80019BC85E0809362
+:101B8000F1010E94D7098091E10084FF30C080916B
+:101B9000E20084FF2CC080E189BD82E189BD09B4E7
+:101BA00000FEFDCF8091D8008F7D8093D80080917A
+:101BB000E1008F7E8093E1008091E2008F7E809330
+:101BC000E2008091E20081608093E2008091ED016B
+:101BD000882311F084E007C08091E30087FD02C0F4
+:101BE00081E001C083E08093F1010E94D9098091D6
+:101BF000E10083FF29C08091E20083FF25C080912E
+:101C0000E100877F8093E10082E08093F1011092F0
+:101C1000ED018091E1008E7F8093E1008091E200F0
+:101C20008E7F8093E2008091E20080618093E200E9
+:101C300042E060E080E00E94620C8091F0008860E9
+:101C40008093F0000E94D609FF91EF91BF91AF9170
+:101C50009F918F917F916F915F914F913F912F91C4
+:101C60000F900FBE0F901F9018951F920F920FB6F6
+:101C70000F9211242F933F934F935F936F937F9312
+:101C80008F939F93AF93BF93CF93DF93EF93FF9384
+:101C9000C091E900CF708091EC00D82FD17080FD09
+:101CA000D0E81092E9008091F000877F8093F000E7
+:101CB00078940E94790E1092E9008091F00088607B
+:101CC0008093F000CD2BCF70C093E900FF91EF918E
+:101CD000DF91CF91BF91AF919F918F917F916F9144
+:101CE0005F914F913F912F910F900FBE0F901F90DA
+:101CF00018951F93CF93DF93CDB7DEB7AA970FB692
+:101D0000F894DEBF0FBECDBFE2EFF1E088E08E0FAA
+:101D10009091F10091938E13FBCF0E94F509809171
+:101D2000E80083FF1FC18091F2019091F301492FD8
+:101D300050E04A30510508F015C1FA01EA5AFF4F48
+:101D40000C94B423803881F0823809F00BC1809163
+:101D5000F6018F708093E9008091EB0085FB882766
+:101D600080F91092E90006C08091EE019091EF0198
+:101D7000911182609091E800977F9093E8008093A2
+:101D8000F1001092F100C8C0282F2D7F09F0EAC0A1
+:101D9000882319F0823061F0E5C08091F401813030
+:101DA00009F0E0C0933009F080E08093EF012BC090
+:101DB0008091F401811127C08091F6018F7009F4A0
+:101DC000D1C08093E9002091EB0020FF1CC093302C
+:101DD00021F48091EB00806214C09091EB0090613F
+:101DE0009093EB0021E030E0A90102C0440F551FA1
+:101DF0008A95E2F74093EA001092EA008091EB00A6
+:101E000088608093EB001092E9008091E800877F62
+:101E100086C08111A7C01091F4011F778091E30063
+:101E20008078812B8093E3008091E800877F809306
+:101E3000E8000E94970C8091E80080FFFCCF809121
+:101E4000E30080688093E300111102C082E001C0CA
+:101E500083E08093F10186C08058823008F082C010
+:101E60008091F4019091F5018C3D53E0950779F54F
+:101E700083E08A838AE289834FB7F894DE01139660
+:101E800020E03EE051E2E32FF0E050935700E49170
+:101E900020FF03C0E295EF703F5FEF708E2F90E060
+:101EA000EA3010F0C79601C0C0968D939D932F5FC6
+:101EB000243149F74FBF8091E800877F8093E80085
+:101EC0006AE270E0CE0101960E949E0B14C0AE0142
+:101ED0004F5F5F4F6091F6010E94E50ABC010097D9
+:101EE00009F440C09091E800977F9093E8008981C1
+:101EF0009A810E94010C8091E8008B778093E80022
+:101F000031C0803879F58091E800877F8093E800C0
+:101F10008091ED018093F1008091E8008E778093AD
+:101F2000E8000E94970C1EC081111CC09091F40122
+:101F30009230C0F48091E800877F8093E80090930E
+:101F4000ED010E94970C8091ED01811106C08091F6
+:101F5000E30087FD02C081E001C084E08093F101CD
+:101F60000E94E1098091E80083FF0AC08091E800A7
+:101F7000877F8093E8008091EB0080628093EB0084
+:101F8000AA960FB6F894DEBF0FBECDBFDF91CF91FA
+:101F90001F9108950895CF938091F1018823A1F0B6
+:101FA000C091E900CF709091EC00892F817090FD75
+:101FB00080E8C82B1092E9008091E80083FD0E9420
+:101FC000790ECF70C093E900CF9108959093750179
+:101FD000809374010895E0917401F0917501309738
+:101FE00021F00190F081E02D099480E00895E091C6
+:101FF0007401F0917501309721F00280F381E02D9A
+:1020000009940895E0917401F0917501309721F0E1
+:102010000480F581E02D099408952091720130919A
+:1020200073018217930771F090937301809372018B
+:10203000E0917401F0917501309721F00680F781ED
+:10204000E02D09940895209170013091710182175B
+:10205000930771F09093710180937001E091740186
+:10206000F0917501309721F00084F185E02D0994FD
+:10207000089508950C9439100E94931B0E94340314
+:102080000C94551C9F92AF92BF92CF92DF92EF9229
+:10209000FF920F931F93CF93DF9300D000D000D017
+:1020A000CDB7DEB70E944C030DE010E0AA24A39444
+:1020B000B12C902E802F0E943A04980129583E4F4F
+:1020C0006901F901F080F826A1F40150110988F79F
+:1020D0008FEF89838A831B820E949C1B8160782FEB
+:1020E0009D838C8349815A816B818D810E94D91097
+:1020F0002FC09091DA0191FF04C08E830E944004AA
+:102100008E8125E030E0A501022E01C0440F0A9423
+:10211000EAF7E42E4F21C1F029839A828E2191E0C3
+:1021200009F490E09B830E949C1B8160782F9D8323
+:102130008C8349815A816B818D810E94D910F6016F
+:102140008081E826E08204C021503109E0F6BDCF4D
+:102150000E943C1F109176010E94EB0F1817B9F0F6
+:102160000E94EB0F8093760126960FB6F894DEBF9F
+:102170000FBECDBFDF91CF911F910F91FF90EF90D8
+:10218000DF90CF90BF90AF909F900C94E40826967C
+:102190000FB6F894DEBF0FBECDBFDF91CF911F9178
+:1021A0000F91FF90EF90DF90CF90BF90AF909F90F6
+:1021B0000895CF93DF93CDB7DEB72B970FB6F89482
+:1021C000DEBF0FBECDBF4F83588769877A878B8765
+:1021D000DE01119686E0FD0111928A95E9F785E00E
+:1021E000FE01379601900D928A95E1F749815A8157
+:1021F0006B817C818D819E810E9422172B960FB668
+:10220000F894DEBF0FBECDBFDF91CF910895CF937D
+:10221000882309F4C2C0C82F823859F40E94EB0FFA
+:1022200081FDBBC089E30E94FC190E94C91A89E3A1
+:102230000CC0833879F40E94EB0F80FDAEC083E5BB
+:102240000E94FC190E94C91A83E50E943E1ACF9190
+:102250000C94C91A843859F40E94EB0F82FD9DC07A
+:1022600087E40E94FC190E94C91A87E4EECF8CEF24
+:102270008C0F813A48F48C2F0E947F2181118DC0F0
+:102280008C2F0E94FC19E3CF80E28C0F883048F439
+:10229000C77081E001C0880FCA95EAF70E94821AD0
+:1022A000D6CF8BE58C0F833078F4C53A29F0C63A47
+:1022B00031F083E890E005C081E890E002C082E858
+:1022C00090E0CF910C940D1088E58C0F833108F0CD
+:1022D00064C0C83A39F1C93A41F1CA3A49F1CB3A36
+:1022E00051F1CC3A59F1CD3A61F1C03B69F1CE3AA6
+:1022F00071F1CF3A79F1C13B81F1C23B89F1C33B26
+:1023000091F1C43B99F1C53BA1F1C63BA9F1C73B93
+:10231000B1F1C83BB9F1C93BC1F1CA3BC9F180E099
+:1023200090E038C082EE90E035C089EE90E032C097
+:102330008AEE90E02FC085EB90E02CC086EB90E019
+:1023400029C087EB90E026C08CEC90E023C08DEC98
+:1023500090E020C083E891E01DC08AE891E01AC0B7
+:1023600082E991E017C084E991E014C081E292E033
+:1023700011C083E292E00EC084E292E00BC085E2DD
+:1023800092E008C086E292E005C087E292E002C0D7
+:102390008AE292E0CF910C942310CF910895882384
+:1023A00009F44BC0823859F40E94EB0F81FF45C0FD
+:1023B00089E30E94FC190E94C91A89E30CC0833882
+:1023C00071F40E94EB0F80FF38C083E50E94FC1976
+:1023D0000E94C91A83E50E943E1A0C94C91A8438D7
+:1023E00059F40E94EB0F82FF28C087E40E94FC1979
+:1023F0000E94C91A87E4EFCF9CEF980F913A58F3E7
+:1024000090E2980F983050F4877091E001C0990FD6
+:102410008A95EAF7892F0E94881ADFCF9BE5980FEB
+:10242000933020F480E090E00C940D10885A8331B2
+:1024300020F480E090E00C9423100895882321F08C
+:102440000E94821A0C94C91A0895882321F00E94D0
+:10245000881A0C94C91A08957F928F929F92AF9216
+:10246000BF92CF92DF92EF92FF920F931F93CF9381
+:10247000DF931F92CDB7DEB77C01C62E772EFC010D
+:10248000058102950F70128111110E949F1A0E94FE
+:10249000F519882379F0112369F080E28C0D8830DA
+:1024A00048F082E00E94DE190E94F51991E0D82ED2
+:1024B000D92601C0D12CE72DE295EF70F0E0E05A6B
+:1024C000FF4F0C94B423872D807F072D0F70882336
+:1024D00011F00295007F112389F0002309F490C1C7
+:1024E00080E28C0D883020F4802F0E94821A03C075
+:1024F000802F0E94921A0E94C91A82C18C2D0E94BC
+:10250000CF11002309F495C180E28C0D883020F4AE
+:10251000802F0E94881A03C0802F0E94981A0E9460
+:10252000C91A87C1972D907F872D8F70903211F037
+:102530008295807FCC2021F0F1E0CF16B1F01EC053
+:10254000112349F0002309F414C1013009F011C12D
+:102550000E94B21A6EC1002319F0013009F469C15A
+:1025600089830E94B51A89810AC1112321F00230A2
+:1025700008F05FC1FEC001115CC101C1112321F04F
+:10258000002309F4F6C03CC1002309F4F8C03EC1A1
+:10259000872D86958695837090E0009719F00197B6
+:1025A00061F047C1112321F08C2D972D937002C04B
+:1025B00080E090E00E940D103CC1112321F08C2D91
+:1025C000972D937002C080E090E00E94231031C1EB
+:1025D0008C2D112319F00E94441E02C00E94AC1ED3
+:1025E0000E94311F26C1872D837009F052C011113E
+:1025F00020C18C2D829586958770880F880F9C2D21
+:102600009F70892E912CA12CB12C082E04C0880C0F
+:10261000991CAA1CBB1C0A94D2F7C4FE14C00FE07C
+:1026200010E020E030E0B901A80104C0440F551FBC
+:10263000661F771F8A95D2F7CB01BA016095709516
+:102640008095909503C060E070E0CB01272D269522
+:102650002695237030E02230310569F023303105B2
+:1026600089F0682979298A299B292130310571F05F
+:102670000E946A18DEC0682979298A299B290E944C
+:102680008618D7C00E946A18C501B4010E944E186E
+:10269000D0C0112319F0872D817001C08695882341
+:1026A00009F4C7C08C2D829586958770880F880F96
+:1026B0009C2D9F70892E912CA12CB12C082E04C02A
+:1026C000880C991CAA1CBB1C0A94D2F7C4FE14C027
+:1026D0000FE010E020E030E0B901A80104C0440F91
+:1026E000551F661F771F8A95D2F7CB01BA016095F7
+:1026F00070958095909503C060E070E0CB01272D28
+:10270000269526952370422F50E04230510569F0FE
+:102710004330510589F0682979298A299B2941305C
+:10272000510571F00E94441984C0682979298A29C9
+:102730009B290E9460197DC00E944419C501B40103
+:102740000E94281976C08C2D90E0FC01E05EF10912
+:10275000E531F10508F050C0E059FF4F0C94B42367
+:102760000C2D0F70872D8F71112331F00E94C1182D
+:10277000802F0E941E125DC00E94E218802F0E94CE
+:10278000251257C0112339F0011153C0872D8F71C5
+:102790000E9407194EC0023008F04BC0F7CF11233A
+:1027A00039F0872D8F710E94C11843C01123C9F3DE
+:1027B000872D8F710E94E2183CC0112329F0872DCC
+:1027C0008F710E94AC1835C00E94A21832C011232C
+:1027D00051F0172D1F71812F0E94C11863E0812FC6
+:1027E0000E94D51926C081E00E94DE19023008F14E
+:1027F00082E00E94DE191DC0112331F0002389F20E
+:102800008C2D0E94071115C0002391F28C2D0E947F
+:10281000CF110FC0472D4F706C2DC7010E941605B8
+:102820000E94C61706C0472D4F706C2DC7010E942D
+:10283000F305DD20F9F00E94D11980FD1BC0F701DE
+:1028400012820E94CB190E94C118C7010E9449142C
+:102850000E94CB190F90DF91CF911F910F91FF90A4
+:10286000EF90DF90CF90BF90AF909F908F907F9030
+:102870000C94E2180F90DF91CF911F910F91FF9070
+:10288000EF90DF90CF90BF90AF909F908F907F9010
+:1028900008950F931F93CF93DF93EC018881998163
+:1028A0002B813C81232BB9F09F3F11F48F3F99F08E
+:1028B000CE010E944B05882371F0688179818A815D
+:1028C0000E94C7198C010E947C190E944318B8010C
+:1028D000CE010E942C12DF91CF911F910F9108958C
+:1028E0000E949F1A0E94AF1A0E94741A0E94C91A6D
+:1028F0000E94E21F0E94311F80E090E00E940D10B4
+:1029000080E090E00C9423100E948F1A0C947014B5
+:102910000E94BC19292F22952F7030E02C303105F0
+:102920004CF42A3031056CF4225031092230310543
+:10293000A8F407C02C30310569F02F30310551F073
+:102940000DC0803F69F018F4803E40F409C0843F18
+:1029500029F406C093FB882780F9089580E0089544
+:1029600081E00895CF93DF9300D000D01F92CDB7C0
+:10297000DEB70F900F900F900F900F90DF91CF91D7
+:102980000895CF93DF9300D000D000D0CDB7DEB74D
+:1029900026960FB6F894DEBF0FBECDBFDF91CF9164
+:1029A00008951F93CF93DF93C091850116E0809126
+:1029B0008601C81799F0D0E01C9FF0011D9FF00D13
+:1029C0001124E957FE4F40815181628173818481D6
+:1029D00095810E94C1142196C770E9CFDF91CF91F4
+:1029E0001F9108954091B7015091B8016091B901CC
+:1029F0007091BA018091BB019091BC010C94C114FB
+:102A00008091BC0182958F7009F054C08091B9010A
+:102A1000882309F44FC080918501A09186016091BF
+:102A2000B7017091B8014091BA015091BB01B6E075
+:102A30008A1709F43FC090E041155105C1F17F3F6D
+:102A400011F46F3FA1F1B89FF001B99FF00D11246F
+:102A5000E957FE4F218172132AC02081621327C0DB
+:102A60002281211124C0238134812417350710F4D9
+:102A700021503109241B350B283C3105C0F420912D
+:102A8000BC012F7020612093BC0126E0289FF0013B
+:102A9000299FF00D1124E457FE4F80818F708061D3
+:102AA000808387EB91E00E9449140C94D114019625
+:102AB0008770BECF0895CF92DF92EF92FF920F936F
+:102AC0001F93CF93DF93CDB7DEB762970FB6F8941D
+:102AD000DEBF0FBECDBF8C0185E0F801DE011D9683
+:102AE00001900D928A95E1F7D8014C9111965C9175
+:102AF000119712966C9112971396CD90DC901497C3
+:102B00003091B7017091B8018091BA019091BB01E9
+:102B1000009709F46BC17F3F19F43F3F09F466C188
+:102B2000E090B901EE2009F4C0C02091BC01C816A4
+:102B3000D90628F0F601E81BF90BCF0104C08095F7
+:102B400090958C0D9D1DFF24F394883C910578F0A1
+:102B5000F12C207F09F0C6C07C2DD98AC88A8989CA
+:102B60000E94B21487EB91E00E944914B1C0822FF9
+:102B7000807F09F046C0751314C0341312C0611170
+:102B800010C02F7020612093BC010E94F21487EBCB
+:102B900091E00E9449148091BC01D80115968C9354
+:102BA0002EC0CD2819F15F3F11F44F3FF9F0F62EFA
+:102BB00061111CC0809185012091860136E0821749
+:102BC00009F45AC090E0389FF001399FF00D1124AC
+:102BD000E957FE4F7181571306C07081471303C038
+:102BE0007281711103C001968770E9CFF62E6623BA
+:102BF00009F418C18091BC0181608093BC01F12C63
+:102C000011C1751308C0341306C0611104C080914E
+:102C1000BC01D801C3C04D875E878D859E856A8BB8
+:102C20000E9488146A898823E1F16623D1F12091FA
+:102C3000BC01822F82958F7090E0029774F0809192
+:102C4000B7019091B80198878F831986DB86CA8671
+:102C50002C87CE0107960E94491486E0F801A7EB65
+:102C6000B1E001900D928A95E1F70E9400150E9453
+:102C7000F214FF24F394D6C04D875E878D859E8520
+:102C80000E94BC19292F22952F7030E02230310587
+:102C90000CF0BCC09F7009F0B6C0805E883008F4AC
+:102CA000C1C0C8010E944914E4CFC816D90608F46F
+:102CB00053C0F601E81BF90BCF01883C910508F4DD
+:102CC00050C0F12C7C2DD98AC88A89890E94B214FF
+:102CD000E7EBF1E086E0DF011D928A95E9F70E94BB
+:102CE000F214A0C0751314C0341312C0611110C0C7
+:102CF0008091BC01F8018583C8010E94491486E0D7
+:102D0000E7EBF1E0DF011D928A95E9F7FE2C8AC01E
+:102D10004D875E878D859E856A8B0E9488146A899F
+:102D2000882309F4BECF662309F4BBCF2091BC01F0
+:102D3000822F82958F7090E002970CF48ECF809155
+:102D4000B7019091B8019A8389831B82DD82CC827E
+:102D50002E83CE0101967FCF809590958C0D9D1D81
+:102D6000ACCFF62E662309F49CCF75132EC0341316
+:102D70002CC02091BC0120FD1FC0822F82958F7036
+:102D8000D9F0D80115962C9315978F3049F08F5FA5
+:102D9000982F9295907F822F8F70892B15968C9308
+:102DA000C8010E94491486E0F801A7EBB1E0019048
+:102DB0000D928A95E1F793CF86E0F801A7EBB1E099
+:102DC00001900D928A95E1F72DC04D875E878D8524
+:102DD0009E850E948814811140CF8091BC01816042
+:102DE0008093BC01C8010E9449141CC0662309F4E9
+:102DF00058CF4D875E878D859E850E9488148823D5
+:102E000009F44FCF2ACF811148CF0CC024303105AF
+:102E10000CF047CF9F7009F440CFF8019581907F67
+:102E200009F03BCF8F2D62960FB6F894DEBF0FBE30
+:102E3000CDBFDF91CF911F910F91FF90EF90DF9069
+:102E4000CF9008951F93CF93DF93CDB7DEB72C9724
+:102E50000FB6F894DEBF0FBECDBF4F83588769878A
+:102E60007A878B879C87CE0107960E945B15882303
+:102E700069F08F8198852A853B85232BF1F19F3F4F
+:102E800009F063C08F3F09F060C037C086E0FE01E3
+:102E90003796DE01119601900D928A95E1F76F81C8
+:102EA0007885EA85FB85309741F17F3F11F46F3FCC
+:102EB00021F12091860130E0C901019687709927A0
+:102EC0004091850150E08417950709F447C0698354
+:102ED0007A83FD83EC8396E0929FD001939FB00D9F
+:102EE0001124A957BE4FFE01319601900D929A957B
+:102EF000E1F7809386010E94D11416E0809185014C
+:102F0000909186018917C1F1189FC001112489573A
+:102F10009E4F0E945B15882379F1E09185011E9FE9
+:102F2000F0011124E957FE4F408151816281738184
+:102F3000848195810E94C1148091850190E0019661
+:102F40008770992780938501D9CF4F8158856985EE
+:102F50007A858B859C850E94C114CFCF0E948414F2
+:102F60001092860110928501E7EBF1E086E0DF0127
+:102F70001D928A95E9F7C1CF2C960FB6F894DEBF63
+:102F80000FBECDBFDF91CF911F910895EF92FF92B9
+:102F90000F931F93CF93DF938C01009709F46CC0BC
+:102FA000F12CEE24E394E8012196F8018491843712
+:102FB00040F4843008F051C0813081F0823019F142
+:102FC0005BC0853709F444C0A8F19CE7980F90379F
+:102FD00008F052C08F770E94CF1141C00E5F1F4F83
+:102FE000FE01C49180E28C0F883048F4C7708E2DAA
+:102FF00001C0880FCA95EAF70E94A21A14C08C2F4C
+:103000000E9407112DC00E5F1F4FFE01C49180E288
+:103010008C0F883058F4C7708E2D01C0880FCA9568
+:10302000EAF70E94A81A0E94C91A1AC08C2F0E949F
+:10303000CF1116C00E5F1F4FFE01C491CC2381F04B
+:103040008FE99FE00197F1F700C00000C150F6CF73
+:103050000E5F1F4FFE01F49003C00E9407118E0106
+:103060008F2D882309F49FCFEFE9FFE03197F1F727
+:1030700000C000008150F5CFDF91CF911F910F91DB
+:10308000FF90EF90089508956093C1017093C2017D
+:103090008093C3019093C4010C9470140F931F93F9
+:1030A0000091C1011091C2012091C3013091C4016E
+:1030B000DC01CB01802B912BA22BB32B8093C10180
+:1030C0009093C201A093C301B093C4011F910F91CB
+:1030D0000C9470140F931F930091C1011091C201C1
+:1030E0002091C3013091C401DC01CB0180239123E5
+:1030F000A223B3238093C1019093C201A093C30183
+:10310000B093C4011F910F910C9470140F931F93EF
+:103110000091C1011091C2012091C3013091C401FD
+:10312000DC01CB0180279127A227B3278093C1011F
+:103130009093C201A093C301B093C4011F910F915A
+:103140000C9470141092BD011092BE011092BF0138
+:103150001092C0010C94701441E050E060E070E007
+:1031600004C0440F551F661F771F8A95D2F74093FE
+:10317000BD015093BE016093BF017093C0010C94D8
+:10318000701441E050E060E070E004C0440F551F4F
+:10319000661F771F8A95D2F78091BD019091BE017D
+:1031A000A091BF01B091C001482B592B6A2B7B2BFA
+:1031B0004093BD015093BE016093BF017093C00165
+:1031C0000C94701441E050E060E070E004C0440FE3
+:1031D000551F661F771F8A95D2F7409550956095C9
+:1031E00070958091BD019091BE01A091BF01B091F9
+:1031F000C001482359236A237B234093BD01509388
+:10320000BE016093BF017093C0010C94701441E043
+:1032100050E060E070E004C0440F551F661F771F48
+:103220008A95D2F78091BD019091BE01A091BF0116
+:10323000B091C001482759276A277B274093BD01D9
+:103240005093BE016093BF017093C0010C94701441
+:103250000F931F930091BD011091BE012091BF01FA
+:103260003091C001DC01CB01802B912BA22BB32B21
+:103270008093BD019093BE01A093BF01B093C001A4
+:103280001F910F910C9470140F931F930091BD0127
+:103290001091BE012091BF013091C001DC01CB0132
+:1032A00080239123A223B3238093BD019093BE0179
+:1032B000A093BF01B093C0011F910F910C947014A3
+:1032C0000F931F930091BD011091BE012091BF018A
+:1032D0003091C001DC01CB0180279127A227B327C1
+:1032E0008093BD019093BE01A093BF01B093C00134
+:1032F0001F910F910C9470140895CF92DF92EF926A
+:10330000FF920F931F93CF93DF938C01C090C10165
+:10331000D090C201E090C301F090C4018091BD0142
+:103320009091BE01A091BF01B091C001C82AD92AD5
+:10333000EA2AFB2ACFE1D0E0D701C6010C2E04C057
+:10334000B695A795979587950A94D2F780FF06C002
+:10335000B8018C2F0E944908019721F4219760F74A
+:1033600080E001C08C2FDF91CF911F910F91FF90D2
+:10337000EF90DF90CF900895CF93DF93EC010E9400
+:103380007D19BE010E944908DF91CF910895CB01BC
+:103390000E94BC1908958091C501859585958595F4
+:1033A00008958091C5018770089598E0899F9001E4
+:1033B0001124262B2093C5010C94C1182091C5011E
+:1033C000809582238093C501982F977069F430E02F
+:1033D000482F552747FD50952417350729F0859527
+:1033E000859585950C94E21808959091C501977084
+:1033F00081E009F480E0089590910C01992321F077
+:1034000090910D01911109C020910E0130910F0191
+:10341000F90132969FEF40E01FC0982F9695969540
+:1034200096959F3050F5E0910E01F0910F01E90F54
+:10343000F11D877021E030E0A90102C0440F551F43
+:103440008A95E2F7CA019181892B818308959F3F74
+:1034500039F04F5F4E3041F051915813F8CF0DC005
+:103460005111F7CF942FF5CF9F3F39F0F901E90FB4
+:10347000F11D97FDFA9582830895089590910C01AE
+:10348000992321F090910D01911109C020910E0115
+:1034900030910F01F9013296205F3F4F1FC0982FE6
+:1034A0009695969596959F30F0F4E0910E01F091E7
+:1034B0000F01E90FF11D877021E030E0A90102C082
+:1034C000440F551F8A95E2F7CA018095918189239F
+:1034D000818308953196E217F30729F090819813BC
+:1034E000F9CF1082F7CF089581E090E0E0910E01CE
+:1034F000F0910F01E80FF91F1082019680319105BC
+:10350000A9F708959091D901892B8093D901089545
+:1035100080959091D90189238093D90108951092C3
+:10352000D90108959091D801892B8093D8010895ED
+:1035300080959091D80189238093D80108951092A5
+:10354000D80108959091D701892B8093D7010895D0
+:1035500080959091D70189238093D7010895109287
+:10356000D70108958093C60108951092C601089569
+:1035700080910E0190910F01FC0131969C01205F1A
+:103580003F4F80E0919191118F5FE217F307D1F7E0
+:103590000895E0910E01F0910F018091D90180838F
+:1035A000E0910E01F0910F0190818091D801892B5B
+:1035B0008083E0910E01F0910F0190818091D701FD
+:1035C000892B80838091C601882361F0E0910E01F0
+:1035D000F0910F019081892B80830E94B81A81118C
+:1035E0001092C60180910E0190910F010C94F70F7B
+:1035F00020E0009739F0AC01415051098423952314
+:103600002F5FF7CF822F0895CF92DF92EF92FF9234
+:103610006C01EE24FF24C114D104E104F10421F073
+:10362000C701B60120E101C020E0C72ED82EE92E47
+:10363000FF24C114D104E104F10419F0285FC7018B
+:10364000B6016B017C0154E0F694E794D794C794DB
+:103650005A95D1F7C114D104E104F10419F02C5F9B
+:10366000C701B6016B017C0142E0F694E794D79460
+:10367000C7944A95D1F7C114D104E104F10419F0BB
+:103680002E5FC701B601DC01CB01B695A7959795D2
+:103690008795892B8A2B8B2B09F02F5F822FFF9028
+:1036A000EF90DF90CF9008958091F101843021F167
+:1036B0001092DB0120E488E190E00FB6F894A89521
+:1036C000809360000FBE2093600080E00E94E408B9
+:1036D00083B7817F846083BF83B7816083BF789421
+:1036E000889583B78E7F83BF88E10FB6F894809367
+:1036F0006000109260000FBE0895089508950E9422
+:103700007D1B0E944C030E947E1B0E94410491E09D
+:10371000811101C090E0892F08950E9484140E94B5
+:10372000EB0F0C94E40882E084BD93E095BD9AEF22
+:1037300097BD80936E0008952FB7F8948091DC01B7
+:103740009091DD01A091DE01B091DF012FBF0895BE
+:10375000CF92DF92EF92FF920F931F932FB7F894BF
+:103760004091DC015091DD016091DE017091DF013B
+:103770002FBF6A017B01EE24FF248C0120E030E0A2
+:10378000C016D106E206F30610F4415051099A0121
+:10379000281B390BC9011F910F91FF90EF90DF900B
+:1037A000CF9008951F920F920FB60F9211248F930E
+:1037B0009F93AF93BF938091DC019091DD01A09125
+:1037C000DE01B091DF010196A11DB11D8093DC01E6
+:1037D0009093DD01A093DE01B093DF01BF91AF9123
+:1037E0009F918F910F900FBE0F901F9018950E9480
+:1037F000E80CF8942FEF87EA91E621508040904042
+:10380000E1F700C0000087E090EBDC018093FB0152
+:103810009093FC01A093FD01B093FE019CE088E130
+:103820000FB6F894A895809360000FBE9093600047
+:10383000FFCFEF92FF920F931F93CF93DF93D82F79
+:10384000CDE08C2F0E943A0405E010E0E82EF12C28
+:10385000C701002E02C0959587950A94E2F780FF74
+:1038600009C0602F7C2F80E00E94F405D81302C0AD
+:1038700081E006C00150110958F7C15010F780E0EF
+:10388000DF91CF911F910F91FF90EF900895CF930B
+:10389000C82F8CE20E94191C882321F08C2FCF9115
+:1038A0000C94191C80E0CF910895CF930E949C1D29
+:1038B000811102C00E94821DC5E6C15049F00E94DC
+:1038C0004C038FE39CE90197F1F700C00000F5CFAE
+:1038D00089E20E94471C811113C18AE20E94471CA1
+:1038E00081110E94821D85E00E94471C81110E9467
+:1038F000F71B0E94A71D8093DA0187E00E94471CF6
+:103900008823A9F18BE10E94471C882351F0809104
+:10391000DA0181FB222720F991E0922790FB81F9BF
+:103920000EC08EE00E94471C882361F08091DA016E
+:1039300082FB222720F991E0922790FB82F9809365
+:10394000DA0115C080E10E94471C9091DA018823BA
+:1039500041F093FB222720F981E0822780FB93F935
+:1039600004C0892F809580FB90F99093DA018091B3
+:10397000DA010E94AB1D0E94B91D8093FA0180EE0E
+:103980000E94471C882341F08091FA01982F90955E
+:1039900090FB80F98093FA0189E30E94471C8823F9
+:1039A00059F08091FA0181FB222720F991E09227BA
+:1039B00090FB81F98093FA0182EE0E94471C8823D4
+:1039C00059F08091FA0182FB222720F991E0922799
+:1039D00090FB82F98093FA0186EE0E94471C8823AF
+:1039E00059F08091FA0183FB222720F991E0922778
+:1039F00090FB83F98093FA0183EE0E94471C882391
+:103A000059F08091FA0184FB222720F991E0922756
+:103A100090FB84F98093FA0185E30E94471C882378
+:103A200059F08091FA0185FB222720F991E0922735
+:103A300090FB85F98093FA0181E30E94471C88235B
+:103A400059F08091FA0186FB222720F991E0922714
+:103A500090FB86F98093FA0181E10E94471C88233C
+:103A600059F08091FA0187FB222720F991E09227F3
+:103A700090FB87F98093FA018091FA010E94BD1DA5
+:103A80008091FA0187FB882780F980930D0187E2F6
+:103A90000E94471CC82F8EE10E94471C8111C26002
+:103AA0008FE10E94471C8111C46080E20E94471C84
+:103AB0008111C86081E20E94471C8111C06182E2CD
+:103AC0000E94471C8111C06283E20E94471C811141
+:103AD000C06484E20E94471C882311F0C06802C0C1
+:103AE000CC2329F08C2F0E94B41D6C2F03C00E94A0
+:103AF000B01D682F70E080E090E0CF910C944418E6
+:103B0000CF9108956DEE7EEF80E090E00E94EE236D
+:103B100060E082E090E00E94DC2360E083E090E0DF
+:103B20000E94DC2360E084E090E00E94DC2360E0FF
+:103B300085E090E00C94DC2380E090E00E94D623A6
+:103B400021E08D3E9E4F09F020E0822F089582E013
+:103B500090E00C94CE23682F82E090E00C94DC235C
+:103B600083E090E00C94CE23682F83E090E00C94E7
+:103B7000DC2384E090E00C94CE23682F84E090E076
+:103B80000C94DC238091E20180FF0BC06091130153
+:103B900085E0689FB00111247595679575956795C7
+:103BA0002BC081FF09C06091130185E0689FB001BF
+:103BB00011247595679520C082FF07C0609113019D
+:103BC00085E0689FB001112417C09091E30199230B
+:103BD000D1F060911201961788F72091130185E0CA
+:103BE000289F90011124929FA001939F500D1124B2
+:103BF00070E0CA010E94A0236038710540F461158D
+:103C0000710539F002C065E070E0862F08958FE7F6
+:103C1000089581E008958091E20180FF08C06091DD
+:103C2000110170E0759567957595679521C081FFC5
+:103C300006C06091110170E07595679519C082FF0B
+:103C400004C06091110170E010C09091E3019923CC
+:103C5000C1F0609110019617A0F780911101899F22
+:103C6000C001112470E00E94A0236038710528F47F
+:103C70006115710521F0862F08958FE7089581E081
+:103C8000089561E070E0F4CF803F21F40E94C21DEE
+:103C9000819504C0813F29F40E94C21D8093E601F2
+:103CA0000895823F21F40E94C21D819504C0833F84
+:103CB00029F40E94C21D8093E5010895893F19F4FB
+:103CC0000E940B1E05C08A3F31F40E940B1E819595
+:103CD0008093E70108958B3F21F40E940B1E81958C
+:103CE00004C08C3F29F40E940B1E8093E8010895C4
+:103CF000843F21F48091E401816017C0853F21F465
+:103D00008091E401826011C0863F21F48091E4013A
+:103D100084600BC0873F21F48091E401886005C076
+:103D2000883F31F48091E40180618093E40108953B
+:103D30008D3F21F48091E20181600BC08E3F21F420
+:103D40008091E201826005C08F3F29F48091E201F9
+:103D500084608093E2010895803F39F48091E60108
+:103D600087FF6CC01092E60169C0813F29F4809101
+:103D7000E6011816BCF362C09091E501823F29F478
+:103D800097FF5CC01092E50159C0833F19F41916E2
+:103D9000CCF354C0893F41F48091E70118160CF030
+:103DA0004DC01092E7014AC08A3F29F48091E70193
+:103DB00087FF44C0F6CF8B3F39F48091E80187FF3D
+:103DC0003DC01092E8013AC08C3F29F48091E8018F
+:103DD0001816BCF333C0843F21F48091E4018E7F38
+:103DE00017C0853F21F48091E4018D7F11C0863F8B
+:103DF00021F48091E4018B7F0BC0873F21F48091F7
+:103E0000E401877F05C0883F31F48091E4018F7E13
+:103E10008093E40113C08D3F21F48091E2018E7FF5
+:103E20000BC08E3F21F48091E2018D7F05C08F3F52
+:103E300029F48091E2018B7F8093E2018091E5017A
+:103E400081110EC08091E60181110AC08091E701C5
+:103E5000811106C08091E801811102C01092E30136
+:103E6000089584EE91E00E9402100E949C1B9093A2
+:103E7000E1018093E00108951F93CF93DF93809138
+:103E8000E0019091E1010E94A81BAC019091E30137
+:103E9000992321F02091140130E006C020911501F2
+:103EA0008AE0289F900111244217530708F486C026
+:103EB0008091E501C091E601D091E7011091E80100
+:103EC000811107C0C11176C0D11174C0111172C027
+:103ED00075C09F3F19F09F5F9093E301181624F47B
+:103EE0000E94C21D8093E5018091E50187FF05C016
+:103EF0000E94C21D81958093E5011C1624F40E9446
+:103F0000C21D8093E6018091E60187FF05C00E94F3
+:103F1000C21D81958093E6016091E501662339F128
+:103F2000C091E601CC2319F1772767FD7095872FA3
+:103F3000972F0E94B12223E333E343E35FE30E9420
+:103F400015230E947E226093E5016C2F772767FD81
+:103F50007095872F972F0E94B12223E333E343E329
+:103F60005FE30E9415230E947E226093E6011D16E6
+:103F700024F40E940B1E8093E7018091E70187FFE4
+:103F800005C00E940B1E81958093E701111624F451
+:103F90000E940B1E8093E8018091E80187FF05C015
+:103FA0000E940B1E81958093E801DF91CF911F91B4
+:103FB0000C94311F9F3F09F08ECF96CFDF91CF91A8
+:103FC0001F910895E4EEF1E085E0DF011D928A95EE
+:103FD000E9F71092E3011092E2010895833081F134
+:103FE00028F4813059F08230D1F00895853009F4F9
+:103FF00049C0B8F1863009F456C008958091150182
+:10400000262F30E0280F311D2F3F310524F4680F93
+:104010006093150108958FEF8093150108958091A5
+:104020001401262F30E0280F311D2F3F310524F4D5
+:10403000680F6093140108958FEF80931401089521
+:1040400080911301262F30E0280F311D2F3F3105BD
+:1040500024F4680F6093130108958FEF8093130188
+:10406000089580911201262F30E0280F311D2F3F37
+:10407000310524F4680F6093120108958FEF809347
+:104080001201089580911101262F30E0280F311D73
+:104090002F3F310524F4680F6093110108958FEFCD
+:1040A00080931101089580911001262F30E0280F90
+:1040B000311D2F3F310524F4680F609310010895DE
+:1040C0008FEF809310010895833011F128F481302F
+:1040D00049F0823091F00895853081F120F18630E9
+:1040E000C1F1089580911501681720F4861B809313
+:1040F0001501089510921501089580911401681713
+:1041000020F4861B809314010895109214010895E1
+:1041100080911301681720F4861B80931301089582
+:1041200010921301089580911201681720F4861BE4
+:104130008093120108951092120108958091110147
+:10414000681720F4861B80931101089510921101C5
+:10415000089580911001681720F4861B8093100148
+:1041600008951092100108950F931F938D3109F453
+:104170006BC008F03FC08E3009F47FC0C0F48730B8
+:1041800009F469C068F4863009F0B1C08091DA01A1
+:10419000817F8E7F8093DA0181E08093EA01A8C05D
+:1041A000883009F4A2C08B3009F49FC0A0C08631CA
+:1041B00009F49BC078F4803109F472C0813109F0B0
+:1041C00096C00E94841490910D0181E0892780930C
+:1041D0000D018BC0893109F488C08B3109F087C08B
+:1041E0008091DA0181FB222720F991E0922790FB50
+:1041F00081F94CC0853309F470C048F4873209F462
+:104200006CC008F459C0893209F467C070C08334A7
+:1042100038F48A3308F04EC0883309F466C067C0AA
+:10422000833409F45AC0883409F061C00E948414B0
+:104230000FEF13ED20E3015010402040E1F700C0E4
+:1042400000000E94F71B51C00E9438220E94EB0F11
+:104250000E94E4084AC09091DA01892F809581700C
+:1042600080FB90F929F0966098609093DA0140C045
+:10427000997F977F9093DA0138C08091DA0182FBB1
+:10428000222720F991E0922790FB82F98093DA01AE
+:10429000992359F18091DA0181608093DA0125C078
+:1042A0008091DA0183FB222720F991E0922790FB8D
+:1042B00083F9ECCF895301C08D5141E050E060E0BB
+:1042C00070E08A019B0104C0000F111F221F331FE1
+:1042D0008A95D2F7C901B80104C061E070E080E0BE
+:1042E00090E00E9444180E94841481E001C080E0A4
+:1042F0001F910F91089580E0089580E00895CF9375
+:10430000C82F8091EA01813079F018F08230E9F10C
+:1043100087C0E0910E01F0910F018081813169F039
+:10432000823209F07FC009C0E0910E01F0910F01C7
+:104330008081813111F0823261F48C2F0E947B21C7
+:10434000811104C08C2F0E94B4201DC081E090E038
+:104350001AC08C2F0E947D21811114C0C43179F0C4
+:1043600048F4CB3079F0C03109F060C082E080932E
+:10437000EA0108C0C93219F0C83321F057C01092C1
+:10438000EA0154C081E0817053C0C93289F118F547
+:10439000C43171F1A8F4C73009F046C08AE08093B7
+:1043A000150194E19093140193E09093130180938D
+:1043B000120188E08093110188E28093100134C0DB
+:1043C000CE51C63088F5EC2FF0E0E65DFE4F8081DF
+:1043D0008093E90129C0CE34E9F020F4CB3421F5F3
+:1043E0006AE013C0C13579F0C235F1F461E00DC067
+:1043F0008091E901882319F01092E90115C081E04C
+:104400008093EA0115C061E006C08091E9010E9435
+:10441000EE1F0AC06AE08091E9010E94642004C096
+:104420001092EA0180E004C081E002C080E0ABCFDE
+:10443000CF910895E1E8F0E08081886080838081F9
+:10444000816080838FB7F89493E09093890090ED1A
+:10445000909388008FBF0895EFE6F0E0808182603E
+:1044600080830895EFE6F0E080818D7F808308955A
+:10447000EFE6F0E0908182E08927808308951F9223
+:104480000F920FB60F9211242F933F934F935F9388
+:104490006F937F938F939F93AF93BF93EF93FF930C
+:1044A0008091EB019091EC0101969093EC01809347
+:1044B000EB01811103C082E00E94E408E091EC016D
+:1044C000E695E695F0E0EA54FB4FE4918091EB012C
+:1044D0008E1303C080E00E94E408FF91EF91BF912A
+:1044E000AF919F918F917F916F915F914F913F918C
+:1044F0002F910F900FBE0F901F90189504D06894C5
+:10450000B1118DC0089570D088F09F5790F0B92FE9
+:104510009927B751A0F0D1F0660F771F881F991F18
+:104520001AF0BA95C9F712C0B13081F077D0B1E076
+:10453000089574C0672F782F8827B85F39F0B93F86
+:10454000CCF3869577956795B395D9F73EF490951A
+:104550008095709561957F4F8F4F9F4F0895E89498
+:1045600009C097FB3EF490958095709561957F4FBB
+:104570008F4F9F4F9923A9F0F92F96E9BB27939569
+:10458000F695879577956795B795F111F8CFFAF479
+:10459000BB0F11F460FF1BC06F5F7F4F8F4F9F4FAA
+:1045A00016C0882311F096E911C0772321F09EE808
+:1045B000872F762F05C0662371F096E8862F70E06E
+:1045C00060E02AF09A95660F771F881FDAF7880F48
+:1045D0009695879597F9089557FD9058440F551F64
+:1045E00059F05F3F71F04795880F97FB991F61F075
+:1045F0009F3F79F087950895121613061406551FEC
+:10460000F2CF4695F1DF08C0161617061806991F57
+:10461000F1CF86957105610508940895E894BB274C
+:1046200066277727CB0197F908950BD078C069D01A
+:1046300028F06ED018F0952309F05AC05FC01124FD
+:10464000EECFCADFA0F3959FD1F3950F50E0551F31
+:10465000629FF001729FBB27F00DB11D639FAA27D7
+:10466000F00DB11DAA1F649F6627B00DA11D661F26
+:10467000829F2227B00DA11D621F739FB00DA11D47
+:10468000621F839FA00D611D221F749F3327A00D01
+:10469000611D231F849F600D211D822F762F6A2F9D
+:1046A00011249F5750408AF0E1F088234AF0EE0F22
+:1046B000FF1FBB1F661F771F881F91505040A9F72F
+:1046C0009E3F510570F014C0AACF5F3FECF3983EB7
+:1046D000DCF3869577956795B795F795E7959F5F96
+:1046E000C1F7FE2B880F911D9695879597F9089530
+:1046F00097F99F6780E870E060E008959FEF80EC95
+:10470000089500240A941616170618060906089537
+:1047100000240A9412161306140605060895092E9D
+:104720000394000C11F4882352F0BB0F40F4BF2B0C
+:1047300011F460FF04C06F5F7F4F8F4F9F4F08954C
+:1047400097FB072E16F4009407D077FD09D00E943E
+:10475000BA2307FC05D03EF4909581959F4F0895AC
+:10476000709561957F4F0895EE0FFF1F0590F491AE
+:10477000E02D0994AA1BBB1B51E107C0AA1FBB1F58
+:10478000A617B70710F0A61BB70B881F991F5A95DD
+:10479000A9F780959095BC01CD010895F999FECFB8
+:1047A00092BD81BDF89A992780B50895A8E1B0E03F
+:1047B00042E050E00C94F623262FF999FECF92BDEB
+:1047C00081BDF89A019700B4021639F01FBA20BDD6
+:1047D0000FB6F894FA9AF99A0FBE08950196272F0A
+:1047E0000E94DD230C94DC23DC01CB01FC01F99950
+:1047F000FECF06C0F2BDE1BDF89A319600B40D922D
+:0C48000041505040B8F70895F894FFCFE5
+:10480C000220E608740951091D09E9080101C701D4
+:10481C0028080A03140A3F4D363977042A04F40396
+:10482C00BB034E03670380039903010203040506CF
+:04483C000708090060
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/j3rn/keymap.c b/keyboards/ergodox_ez/keymaps/j3rn/keymap.c new file mode 100644 index 000000000..6e271321d --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/j3rn/keymap.c @@ -0,0 +1,187 @@ +#include "ergodox_ez.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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Grv | 1 | 2 | 3 | 4 | 5 | [ | | ] | 6 | 7 | 8 | 9 | 0 | BkSp | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | - | | = | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * |Ctrl/Esc|A / L2| S | D | F | G |------| |------| H | J | K | L | ; | ' | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | ~L1 | ~L2 |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | Home | | PgUp |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | End | | PgDn | | | + * |Space | LGui |------| |------| Tab |Enter | + * | | |Shift | | 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_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, + + ALT_T(KC_APP), KC_HOME, + KC_END, + KC_SPC, KC_LGUI, KC_LSHIFT, + // 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, + + KC_PGUP, CTL_T(KC_ESC), + KC_PGDN, + 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, 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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | Lclk | Rclk | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------|MsLeft|MsDown| MsUp |MsRght| | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | |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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, + 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, + 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) + [2] = ACTION_LAYER_TAP_TOGGLE(MDIA) // FN2 - Momentary Layer 2 (Media) +}; + +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/j3rn/readme.md b/keyboards/ergodox_ez/keymaps/j3rn/readme.md new file mode 100644 index 000000000..fc4b64042 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/j3rn/readme.md @@ -0,0 +1,29 @@ +# J3RN's Mac-centric ErgoDox EZ keymap + +## Motivation + +Essentially, I wanted to switch to a layout that was less jarring than the default ErgoDox EZ layout, and did not require finger gymnastics to perform common OS X shortcuts (most of which involve the CMD (LGui) key). + +## How is it different from the default ErgoDox EZ layout? + +This layout more closely resembles that of the Mac keyboard, and has some other goodness baked in. Here is a rundown of what that means: + +### Mac-like changes + +- **The key to the left of "1" is "~" instead of "=".** +- **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.** + +### Other changes + +- **The button to the left of "A" is Ctrl/Esc instead of Backspace.** This is actually how I have the keyboard on my Macbook set up to be, since it's loads more convenient than a CAPS LOCK key. This is the Ctrl key I find myself using most. +- **Mouse uses Vim-style navigation**. To activate "Media mode," hold the 'a' key. This allows you to move the mouse around with hjkl just like in Vim. Additionally, right and left click are the conveniently placed 'i' and 'o' keys. +- **The key to the right of "5" and the key to left of "6" are "[" and "]", respectively, instead of Left and Right.** There is a more convenient set of Left and Right already present. Truth be told, I don't really use these keys, as they are a stretch to reach. +- **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. + + +**I'm always open to feedback and/or suggestions!** diff --git a/keyboards/ergodox_ez/keymaps/jack/compiled.hex b/keyboards/ergodox_ez/keymaps/jack/compiled.hex new file mode 100644 index 000000000..b5f54dd92 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/jack/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4
+:100010000C94BE020C94BE020C94BE020C94BE0260
+:100020000C94BE020C94BE020C94620D0C94340E1F
+:100030000C94BE020C94BE020C94BE020C94BE0240
+:100040000C94BE020C943E220C94BE020C94BE0290
+:100050000C94BE020C94D11B0C94BE020C94BE02F4
+:100060000C94BE020C94BE020C94BE020C94BE0210
+:100070000C94BE020C94BE020C94BE020C94BE0200
+:100080000C94BE020C94BE020C94BE020C94BE02F0
+:100090000C94BE020C94BE020C94BE020C94BE02E0
+:1000A0000C94BE020C94BE020C94BE02A10EC30EB0
+:1000B000B10FC30EB10F080F2B0FB10F800F930FAD
+:1000C0006212621291129112C712E71218141814D8
+:1000D000F2121814A213A2130914181418141214EB
+:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300
+:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0
+:10010000C113CE13D513DC13E6130000F0A10000D9
+:100110002B002900E100000000001E001400040074
+:100120001D00E0004D001F001A0016001B00E20039
+:100130002C002000080007000600E3002C0021002E
+:1001400015000900190002524A00220017000A0097
+:1001500005000000657400000000000000000000C1
+:10016000E300000000000000000000000000230089
+:100170001C000B00110000000000240018000D00FE
+:10018000100001524B0025000C000E0036005000FC
+:100190002C00260012000F00370051002C00270011
+:1001A00013003300380052004E0000002A003400D3
+:1001B00028004F000000010035000100010001008F
+:1001C00000003A001E003A004000010001003B0020
+:1001D0001F003B004100010001003C0020003C00EA
+:1001E0004200010001003D0021003D0043000100EC
+:1001F00001003E0022003E0044000000010001001A
+:1002000001000000010000000100010001000000E9
+:100210000100000001003F0023003F0045000000F6
+:100220000100400024002D000000010001004100F9
+:1002300025002E000000AB000100420026002F0028
+:100240000000AA0001004300270030000050A90070
+:10025000010044002A0031000100AE00000001004E
+:100260003502010001000100000001001E023A00F9
+:1002700040000100010001001F023B00410001009D
+:100280000100010020023C004200010001000100C9
+:1002900021023D00430001000100010022023E0056
+:1002A0004400000001000100010000000100000006
+:1002B0000100010001000000010000000100010038
+:1002C00023023F00450000000100010024022D022E
+:1002D000000001000100010025022E020000AB0019
+:1002E0000100010026022F020000AA000100010007
+:1002F000270230020050A900010001002A0031024B
+:100300000100AE00000016034500720067006F0098
+:1003100044006F007800200045005A0000001603DA
+:100320004500720067006F0044006F0078002000F5
+:1003300045005A0000000403090409026D0004018D
+:1003400000A0FA09040000010301010009211101C4
+:100350000001223F000705810308000A090401008B
+:100360000103010200092111010001224D000705CE
+:10037000820308000A0904020001030000000921A9
+:10038000110100012236000705830308000A090451
+:1003900003000103000000092111010001223900BE
+:1003A000070584031000011201100100000008ED90
+:1003B000FE071301000102000105010906A1010564
+:1003C0000719E029E7150025019508750181020547
+:1003D000081901290595057501910295017503918B
+:1003E0000105071900297715002501957875018108
+:1003F00002C005010980A101850216010026B7008F
+:100400001A01002AB700751095018100C0050C097A
+:1004100001A1018503160100269C021A01002A9CF5
+:1004200002751095018100C005010902A1010901B1
+:10043000A10005091901290515002501950575017A
+:10044000810295017503810105010930093115818A
+:10045000257F95027508810609381581257F95014C
+:1004600075088106050C0A38021581257F950175EE
+:10047000088106C0C005010906A101050719E02988
+:10048000E715002501950875018102950175088120
+:100490000105081901290595057501910295017558
+:1004A0000391010507190029FF150025FF95067521
+:1004B000088100C0000000000000000000000001F2
+:1004C0000204060A0F17202C3A4A5D71879DB3C7B4
+:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF
+:1004E0003A2C20170F0A0604020100000000000049
+:1004F0000000000011241FBECFEFDAE0DEBFCDBF49
+:1005000004B603FE24C08091FB019091FC01A091F0
+:10051000FD01B091FE018730904BA740B04BB9F47C
+:100520001092FB011092FC011092FD011092FE014D
+:1005300014BE84B7877F84BF88E10FB6F894809398
+:100540006000109260000FBEE0E0FFE3099511E04B
+:10055000A0E0B1E0EAE0F8E402C005900D92A43317
+:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0
+:10057000B107E1F70E94A60A0C9403240C94000032
+:100580001092B9008AE08093B800089594EA90939D
+:10059000BC009091BC0097FFFCCF9091B900987F70
+:1005A000983021F0903111F081E008958093BB00E4
+:1005B00084E88093BC008091BC0087FFFCCF8091D1
+:1005C000B900887F883111F0803471F780E0089598
+:1005D00084E98093BC008091BC0084FDFCCF089529
+:1005E0008093BB0084E88093BC008091BC0087FFAF
+:1005F000FCCF9091B900987F81E0983209F480E0B7
+:10060000089584E88093BC008091BC0087FFFCCFF4
+:100610008091BB00089580910101811115C080E493
+:100620000E94C6028093010181110CC082E10E94E8
+:10063000F00280930101811105C08FEF0E94F0024A
+:10064000809301010E94E80284B1807F84B985B162
+:10065000807F85B98AB1837F8AB98BB1837F8BB95B
+:100660003E98469808950E94C604809301010E9416
+:100670000B0380B38C7080BB81B3836F81BBA5E318
+:10068000B1E0E3E4F1E08EE08E0F11921D928E1343
+:10069000FCCF0C94B004BF92CF92DF92EF92FF9206
+:1006A0000F931F93CF93DF9380910101882379F0FB
+:1006B000809134018F5F80933401811108C00E94C2
+:1006C000C60480930101811102C00E94580405E311
+:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407
+:1006E000E394F12CC730D10500F58091010181110F
+:1006F00064C080E40E94C60280930101811112C08F
+:1007000082E10E94F0028093010181110BC0C701B8
+:100710000C2E01C0880F0A94EAF780950E94F0021F
+:10072000809301010E94E80248C0CA30A1F028F479
+:10073000C83059F0C93061F005C0CC3089F070F094
+:10074000CD3089F0209A289810C0219A29980DC0A0
+:10075000229A2A980AC0239A2B9807C0529A01C05D
+:10076000539A5B9802C03E9A469890EA9A95F1F7A0
+:100770009FB1799902C082E001C080E091709D250F
+:10078000982B7C9902C084E001C080E0892B7D9980
+:1007900002C038E001C030E0832B7E9902C020E126
+:1007A00001C020E0822B9FB19095991F9927991F36
+:1007B0009295990F907E892B0FC080910101811134
+:1007C00049C080E40E94C60280930101882379F128
+:1007D000B12C0E94E8028B2DF8019081981719F036
+:1007E0008083C09200010E940B0321960F5F1F4F70
+:1007F000CE30D10509F076CF80910001882361F1D8
+:10080000815080930001882339F08FE99FE00197A0
+:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F
+:10082000CF01825F91919D938E13FCCF15C083E120
+:100830000E94F002809301018111CACF81E40E94DD
+:10084000C602809301018111C3CF0E940103B82E1B
+:10085000B094BFCF80E0C0CF0E94560481E0DF910A
+:10086000CF911F910F91FF90EF90DF90CF90BF90AD
+:100870000895E82FF0E0ED5BFE4F80810895089524
+:100880000F931F93CF93DF93C3E4D1E010E00C2FBD
+:10089000025F899190E00E94F71A180F0C13F9CFAC
+:1008A000812FDF91CF911F910F9108950C94260510
+:1008B00056985E9825982D9826982E9827982F98C8
+:1008C0008FEF90E0909389008093880090938B0045
+:1008D00080938A0090938D0080938C00259A2D9AA6
+:1008E0002FEF80E792E0215080409040E1F700C078
+:1008F0000000269A2E9A2FEF80E792E02150804048
+:100900009040E1F700C00000279A2F9A2FEF80E770
+:1009100092E0215080409040E1F700C0000025980F
+:100920002D982FEF80E792E0215080409040E1F732
+:1009300000C0000026982E982FEF80E792E021500B
+:1009400080409040E1F700C0000027982F9856980B
+:100950005E9825982D9826982E9827982F98089578
+:1009600089EA8093800089E08093810024982C9804
+:100970003F988AB18F748AB96E98479A8BB1806B11
+:100980008BB9769A0E9458040C94250580E28093D6
+:1009900001018091510181110EC00E94C00281E0CD
+:1009A000809351012FEF83ED90E3215080409040E0
+:1009B000E1F700C0000080E40E94C60280930101BC
+:1009C00081112EC00E94F00280930101811128C084
+:1009D0000E94F00280930101811122C08FE30E94E6
+:1009E000F0028093010181111BC00E94E80280E4A3
+:1009F0000E94C60280930101811112C08CE00E9406
+:100A0000F0028093010181110BC00E94F0028093DB
+:100A10000101811105C08FE30E94F0028093010162
+:100A20000E94E80280910101089561110BC0FC0150
+:100A30008281882321F085EE0E94061103C085EE95
+:100A40000E94CE1180E090E0089508956091BD016C
+:100A50007091BE018091BF019091C0010E94031B63
+:100A600056985E9825982D9826982E9827982F9816
+:100A7000813019F0823021F00895259A2D9A089539
+:100A8000269A2E9A089581E0089581E008950C94A5
+:100A9000450508950F931F93CF93DF938C01FC01BD
+:100AA000C081D181CE010E947C19BE010E94F30554
+:100AB000EC01B8010E944705882309F48DC0F801B4
+:100AC0008281882309F44AC080915D0181111FC091
+:100AD000C431F0E5DF0709F051C00E94490581E00B
+:100AE00080935D010E949B1B90935C0180935B014E
+:100AF0001092540110925601109255011092580113
+:100B00001092570110925A011092590165C08091BC
+:100B10005B0190915C010E94A71B883C910570F4D9
+:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB
+:100B3000D183C0838F5F809354014EC0C43880E559
+:100B4000D80721F0C538D04501F13AC0F8018281BB
+:100B5000882341F01092520182E01EC0C438E0E5C3
+:100B6000DE0759F580915201811106C086E20E948C
+:100B7000061186E20E94CE1182E01CC0C438F0E566
+:100B8000DF0741F3C538D045D9F4F80182818823C5
+:100B900031F01092530180E20E941D121DC080911D
+:100BA0005301811106C087E20E94061187E20E946C
+:100BB000CE1180E20E9424120FC0C538D04529F31F
+:100BC00081E08093520180935301C801DF91CF915E
+:100BD0001F910F910C94430580E0DF91CF911F91FD
+:100BE0000F910895089596E0799FF001112494E5FE
+:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F
+:100C0000E25FFE4F859194910895880F991FFC0132
+:100C1000E657F040859194910895880F991FFC0143
+:100C2000E65FFE4F8591949108950F931F93CF93A4
+:100C3000DF93EC01811520E3920750F5C11580E2A6
+:100C4000D80708F0C3C0CB3BD10590F4C83AD10512
+:100C500008F06AC0C53AD10508F05BC0C430D105C0
+:100C600008F0D0C1219709F0CAC101E010E00AC222
+:100C7000CF3FD10511F008F0C5C1C03FD10508F044
+:100C8000A2C0CE01805E9109089708F4BBC1B7C12C
+:100C9000C13090E5D90709F4A2C020F5C0318FE436
+:100CA000D80770F4C11590E4D90708F094C0C115B5
+:100CB00021E3D20708F0A3C1DD278E01106CE2C149
+:100CC000C115D04509F09BC10E9483148FEF94E3B6
+:100CD0002CE0815090402040E1F700C000000E94CD
+:100CE000F61BD0C1C11597E5D90758F4C03121E5ED
+:100CF000D20708F01CC1C43180E5D80708F475C0DC
+:100D00007EC1CE0190578115904108F078C1DF7007
+:100D100073C1C53AD10509F477C1C63AD10509F0C6
+:100D200076C102E810E4AEC1C83AD10509F472C137
+:100D3000C93AD10509F471C1CA3AD10509F470C1A3
+:100D4000CB3AD10509F46FC1CC3AD10509F46EC193
+:100D5000CD3AD10509F46DC1C03BD10509F46CC190
+:100D6000CE3AD10509F46BC1CF3AD10509F46AC175
+:100D7000C13BD10509F469C1C23BD10509F468C181
+:100D8000C33BD10509F467C1C43BD10509F466C171
+:100D9000C53BD10509F465C1C63BD10509F464C161
+:100DA000C73BD10509F463C1C83BD10509F462C151
+:100DB000C93BD10509F461C1CA3BD10509F460C141
+:100DC00000E014E45FC18E0110655CC1CE019F702C
+:100DD0000E940D0658C1DF708E01106A53C18091C8
+:100DE000DA0181608093DA014DC10E949B1D81115F
+:100DF00002C00E94811D0E94B81D90E09093FB01EB
+:100E00008093FA01C23080E5D80721F48091FA017D
+:100E1000816086C0C43090E5D90721F48091FA0141
+:100E200082607EC0C63020E5D20721F48091FA01AD
+:100E3000846076C0C83080E5D80719F48091FA0143
+:100E400027C0CA3090E5D90721F48091FA0180616A
+:100E500067C0CC3020E5D20721F48091FA0180628E
+:100E60005FC0CE3080E5D80721F48091FA0180641C
+:100E700057C0C03190E5D90721F48091FA0180680C
+:100E80004FC0C23120E5D20729F48091FA01846075
+:100E9000886046C0C33080E5D80721F48091FA010C
+:100EA0008E7F3EC0C53090E5D90721F48091FA01CC
+:100EB0008D7F36C0C73020E5D20721F48091FA013A
+:100EC0008B7F2EC0C93080E5D80719F48091FA01D4
+:100ED00026C0CB3090E5D90721F48091FA018F7EAE
+:100EE0001FC0CD3020E5D20721F48091FA018F7D1B
+:100EF00017C0CF3080E5D80721F48091FA018F7BAD
+:100F00000FC0C13190E5D90721F48091FA018F77A4
+:100F100007C0C331D04531F48091FA018B7F877FC0
+:100F20008093FA018091FA010E94BC1DABC08D2F05
+:100F300099278F70992781309105D9F49E012370EC
+:100F4000332702C0880F991F2A95E2F79C688E010B
+:100F500044E0000F111F4A95E1F700271370802B22
+:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA
+:100F70002FC08230910531F4DC2FCC278E01016F18
+:100F8000106A80C08330910569F4CE01837099277F
+:100F900001E010E002C0000F111F8A95E2F7C801BE
+:100FA0009C680FC084309105B9F4CE0183709927F5
+:100FB00001E010E002C0000F111F8A95E2F7C8019E
+:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029
+:100FD0008C010C2B1D2B56C08530910531F4DC2F74
+:100FE000CC278E01046F106A4DC0069709F04AC0E5
+:100FF000CF71DD27DC2FCC278E01106243C000E0CB
+:1010000010E040C08E013EC001E810E43BC003E8A0
+:1010100010E438C002EE14E435C009EE14E432C026
+:101020000AEE14E42FC005EB14E42CC006EB14E424
+:1010300029C007EB14E426C00CEC14E423C00DEC2B
+:1010400014E420C003E815E41DC00AE815E41AC042
+:1010500002E915E417C004E915E414C001E216E43E
+:1010600011C003E216E40EC004E216E40BC005E270
+:1010700016E408C006E216E405C007E216E402C062
+:101080000AE216E4C801DF91CF911F910F910895F4
+:1010900096E0799FF001112494E5899FE00DF11D00
+:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149
+:1010B0009491803E9105E0F4803C910558F5813390
+:1010C000910509F46FC048F48932910509F463C0B1
+:1010D0008A32910509F46DC072C089339105E9F037
+:1010E00082389105D1F08533910509F44DC067C070
+:1010F000833E910581F138F4803E9105B9F0823E3E
+:101100009105D9F05CC0863E910561F1873E91055D
+:10111000A1F155C00E94050608952091FA0120FD15
+:1011200002C021FF4CC080EE90E049C08091FA01DE
+:1011300080FFF9CF89E390E042C08091FA0182FFFD
+:101140000EC08091FA0184FF03C080E090E037C0B8
+:1011500083EE90E034C08091FA0182FFF2CF82EEFC
+:1011600090E02DC08091FA0183FF0BC08091FA01BD
+:1011700084FDEBCF87EE90E022C08091FA0183FFDF
+:10118000F5CF86EE90E01BC08091FA0185FF07C085
+:1011900089E290E014C08091FA0185FFF9CF85E3E0
+:1011A00090E00DC08091FA0186FF07C08AE290E0CE
+:1011B00006C08091FA0186FFF9CF81E390E00E949A
+:1011C0001506089508950C94E20880916E01089523
+:1011D000CF93DF9300D01F92CDB7DEB79C018091F3
+:1011E000F101843019F593E099833B832A8390932E
+:1011F000E9008FEF9091E800815095FD06C095EDD4
+:101200009A95F1F700008111F5CF8091E80085FFF4
+:101210000DC040E050E063E070E0CE0101960E9416
+:10122000520B8091E8008E778093E8000F900F902A
+:101230000F90DF91CF910895CF93DF9300D01F924D
+:10124000CDB7DEB72091F101243021F522E02983CA
+:101250009B838A8383E08093E9008FEF9091E8007D
+:10126000815095FD06C095ED9A95F1F7000081112A
+:10127000F5CF8091E80085FF0DC040E050E063E0CD
+:1012800070E0CE0101960E94520B8091E8008E77AB
+:101290008093E8000F900F900F90DF91CF91089509
+:1012A0002091F1012430F1F422E02093E9002FEFA6
+:1012B0003091E800215035FD06C035ED3A95F1F743
+:1012C00000002111F5CF2091E80025FF0BC040E080
+:1012D00050E065E070E00E94520B8091E8008E774C
+:1012E0008093E8000895CF93DF93EC019091F10192
+:1012F000943009F046C080910C018823D9F0809188
+:101300000D018823B9F09093E9008FEF9091E800E8
+:10131000815095FD06C095E19A95F1F70000811185
+:10132000F5CF8091E80085FF2CC040E050E060E1FF
+:1013300070E017C081E08093E9008FEF9091E800A2
+:10134000815095FD06C095ED9A95F1F70000811149
+:10135000F5CF8091E80085FF14C040E050E068E0E0
+:1013600070E0CE010E94520B8091E8008E7780934E
+:10137000E80080E1FE01AEE5B1E001900D928A95B2
+:10138000E1F7DF91CF9108958091F001811109C0BB
+:101390000E94E70C0E94440D8091E20084608093DB
+:1013A000E20008951092F001089508950C942B2204
+:1013B0000E948C1B0E9431220E94EA0F0C94E308C9
+:1013C00042E061EC81E00E94610C42E061EC82E06D
+:1013D0000E94610C42E061EC83E00E94610C42E1FA
+:1013E00061EC84E00C94610C8091F301833009F48A
+:1013F00055C030F4813071F0823009F48EC0089508
+:101400008A3009F47AC08B3009F460C0893009F061
+:101410009CC020C08091F201813A09F096C0809171
+:10142000E800877F8093E8008091F6019091F701B2
+:10143000892B21F460E18EE591E003C060E080E05B
+:1014400090E070E00E949D0B8091E8008B77809384
+:10145000E80008958091F201813209F076C0809110
+:10146000F6019091F701009719F0039709F06DC00C
+:101470008091E800877F8093E8008091E80082FDFA
+:1014800005C08091F1018111F8CF5FC08091F1001A
+:1014900080936E018091E8008B7753C08091F201B8
+:1014A000813A09F052C08091F6019091F701892BA1
+:1014B00009F04BC08091E800877F8093E80080911D
+:1014C000E80080FFFCCF80910C0136C08091F201D2
+:1014D0008132D9F58091F6019091F701892BA9F518
+:1014E0008091E800877F8093E8000E94960C8091AD
+:1014F000F40180930C010C9483148091F2018132E9
+:1015000021F58091E800877F8093E8000E94960C87
+:101510008091F50180936F0108958091F201813AE5
+:10152000A1F48091E800877F8093E8008091E80033
+:1015300080FFFCCF80916F018093F1008091E800E3
+:101540008E778093E8000C94960C089584B7877F7B
+:1015500084BF88E10FB6F894809360001092600019
+:101560000FBE90E080E80FB6F894809361009093EE
+:1015700061000FBE0E9439100E94E70C0E94440DCA
+:101580008091E20084608093E20078940E94CA0F08
+:101590000E943B1082E091E00E94E50F0E94192218
+:1015A0008091F101853069F40E94531B8091EF0115
+:1015B0008823B1F30E947E1B882391F30E943C0B89
+:1015C000EFCF0E944110ECCF292F33272330310574
+:1015D000C9F064F42130310581F02230310509F081
+:1015E00043C08DE690E02AE333E042C0213231056A
+:1015F000F1F02232310541F137C082E190E027EA73
+:1016000033E036C099278130910541F08230910551
+:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4
+:1016200002C0E6E0F3E0849190E09F0121C06430C5
+:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5
+:10164000318189E090E014C0643070F470E0FB01F7
+:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47
+:10166000FE4F808190E004C080E090E020E030E018
+:10167000FA0131832083089580E189BD82E189BD2B
+:1016800009B400FEFDCF8091D8008F7D8093D800F3
+:101690008091E00082608093E0008091E00081FD15
+:1016A000FCCF0895CF92DF92EF92FF920F931F939A
+:1016B000CF93DF93EC018B016A010E94B50C81117D
+:1016C00033C0C114D10439F0F60180819181081B27
+:1016D000190BC80FD91FE12CF12C0115110519F1B7
+:1016E0008091E80085FD16C08091E8008E77809398
+:1016F000E800C114D10449F0F60180819181E80E1F
+:10170000F91EF182E08285E00FC00E94B50C8823AB
+:1017100021F30AC089918093F10001501109FFEF74
+:10172000EF1AFF0ADACF80E0DF91CF911F910F917E
+:10173000FF90EF90DF90CF9008952091F8013091C5
+:10174000F9012617370748F06115710539F4209122
+:10175000E8002E772093E80001C0B90140E0611550
+:101760007105A9F12091F101222309F443C025302C
+:1017700009F442C02091E80023FD40C02091E80018
+:1017800022FD32C02091E80020FFE9CF4091F30014
+:101790002091F20030E0342BFC01CF01611571057E
+:1017A00059F02830310540F481918093F100615067
+:1017B00071092F5F3F4FF1CF41E02830310509F02B
+:1017C00040E02091E8002E772093E800C8CF411137
+:1017D000C9CF0AC08091F101882361F0853061F0A2
+:1017E0008091E80083FD0AC08091E80082FFF2CF7B
+:1017F00080E0089582E0089583E0089581E00895EF
+:101800002091F8013091F9012617370748F061154A
+:10181000710539F42091E8002E772093E80001C08B
+:10182000B901FC0120E06115710591F18091F10190
+:10183000882309F440C0853009F43FC08091E80056
+:1018400083FD3DC08091E80082FD2FC08091E800BB
+:1018500080FFE9CF2091F3008091F20090E0922B7D
+:101860006115710559F08830910540F42491209359
+:10187000F1003196615071090196F2CF21E008978D
+:1018800009F020E08091E8008E778093E800CBCFCC
+:101890002111CCCF0AC08091F101882361F08530FD
+:1018A00061F08091E80083FD0AC08091E80082FF2A
+:1018B000F2CF80E0089582E0089583E0089581E00A
+:1018C0000895982F973058F59093E900981739F0BC
+:1018D0007091EC002091ED005091F00003C0242F96
+:1018E000762F50E021FF19C03091EB003E7F3093FE
+:1018F000EB003091ED003D7F3093ED003091EB0037
+:1019000031603093EB007093EC002093ED00509326
+:10191000F0002091EE0027FF07C09F5FD3CF8F70AC
+:101920008093E90081E0089580E008958091F201BC
+:1019300087FF11C08091E80082FD05C08091F10110
+:101940008111F8CF11C08091E8008B770BC0809196
+:10195000F101882349F08091E80080FFF8CF809161
+:10196000E8008E778093E80008952091E40030919C
+:10197000E50095E64091EC00842F817040FF22C085
+:101980008091E80080FD1CC08091F101882391F0D6
+:10199000853091F08091EB0085FD10C04091E4000E
+:1019A0005091E5004217530729F39A01915011F71E
+:1019B00084E0089582E0089583E0089581E0089529
+:1019C00080E008954091E80042FFDECF08950E9434
+:1019D000550D0E945D0DE0EEF0E080818160808316
+:1019E000E8EDF0E080818F77808319BCA7EDB0E04F
+:1019F0008C918E7F8C9380818F7E80831092F001FA
+:101A000008950F931F93CF93DF930E94550D0E946B
+:101A10005D0DC8EDD0E088818F77888388818068EC
+:101A2000888388818F7D888319BC1092F101109280
+:101A3000ED011092EF011092EE0100EE10E0F801BE
+:101A400080818B7F808388818160888342E060E031
+:101A500080E00E94610CE1EEF0E080818E7F808367
+:101A6000E2EEF0E080818160808380818860808305
+:101A7000F80180818E7F8083888180618883DF91F7
+:101A8000CF911F910F910895E8EDF0E080818F7E56
+:101A90008083E7EDF0E080818160808384E082BF15
+:101AA00081E08093F0010C94010DE8EDF0E080817D
+:101AB0008E7F80831092E20008951092DA001092D7
+:101AC000E10008951F920F920FB60F9211242F93E9
+:101AD0003F934F935F936F937F938F939F93AF93B6
+:101AE000BF93EF93FF938091E10082FF0BC0809141
+:101AF000E20082FF07C08091E1008B7F8093E100CC
+:101B00000E94C90F8091DA0080FF1FC08091D80029
+:101B100080FF1BC08091DA008E7F8093DA00809175
+:101B2000D90080FF0DC080E189BD82E189BD09B483
+:101B300000FEFDCF81E08093F1010E94C40905C041
+:101B400019BC1092F1010E94D2098091E10080FF3E
+:101B500019C08091E20080FF15C08091E2008E7F65
+:101B60008093E2008091E20080618093E2008091A6
+:101B7000D80080628093D80019BC85E08093F10181
+:101B80000E94D6098091E10084FF30C08091E2007C
+:101B900084FF2CC080E189BD82E189BD09B400FECB
+:101BA000FDCF8091D8008F7D8093D8008091E10097
+:101BB0008F7E8093E1008091E2008F7E8093E2002F
+:101BC0008091E20081608093E2008091ED018823A2
+:101BD00011F084E007C08091E30087FD02C081E03E
+:101BE00001C083E08093F1010E94D8098091E10057
+:101BF00083FF29C08091E20083FF25C08091E1002E
+:101C0000877F8093E10082E08093F1011092ED01E3
+:101C10008091E1008E7F8093E1008091E2008E7FD1
+:101C20008093E2008091E20080618093E20042E0D4
+:101C300060E080E00E94610C8091F00088608093F9
+:101C4000F0000E94D509FF91EF91BF91AF919F9154
+:101C50008F917F916F915F914F913F912F910F9055
+:101C60000FBE0F901F9018951F920F920FB60F92F4
+:101C700011242F933F934F935F936F937F938F9391
+:101C80009F93AF93BF93CF93DF93EF93FF93C09155
+:101C9000E900CF708091EC00D82FD17080FDD0E8A2
+:101CA0001092E9008091F000877F8093F000789493
+:101CB0000E94780E1092E9008091F0008860809375
+:101CC000F000CD2BCF70C093E900FF91EF91DF9131
+:101CD000CF91BF91AF919F918F917F916F915F91C4
+:101CE0004F913F912F910F900FBE0F901F9018951D
+:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3
+:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115
+:101D1000F10091938E13FBCF0E94F4098091E800AB
+:101D200083FF1FC18091F2019091F301492F50E090
+:101D30004A30510508F015C1FA01EA5AFF4F0C94D8
+:101D4000B323803881F0823809F00BC18091F6010D
+:101D50008F708093E9008091EB0085FB882780F9E4
+:101D60001092E90006C08091EE019091EF0191116F
+:101D700082609091E800977F9093E8008093F10053
+:101D80001092F100C8C0282F2D7F09F0EAC08823E7
+:101D900019F0823061F0E5C08091F401813009F0E2
+:101DA000E0C0933009F080E08093EF012BC0809178
+:101DB000F401811127C08091F6018F7009F4D1C020
+:101DC0008093E9002091EB0020FF1CC0933021F4A8
+:101DD0008091EB00806214C09091EB009061909331
+:101DE000EB0021E030E0A90102C0440F551F8A95A5
+:101DF000E2F74093EA001092EA008091EB008860DD
+:101E00008093EB001092E9008091E800877F86C004
+:101E10008111A7C01091F4011F778091E3008078B1
+:101E2000812B8093E3008091E800877F8093E80016
+:101E30000E94960C8091E80080FFFCCF8091E30027
+:101E400080688093E300111102C082E001C083E04A
+:101E50008093F10186C08058823008F082C0809162
+:101E6000F4019091F5018C3D53E0950779F583E0FD
+:101E70008A838AE289834FB7F894DE01139620E0C3
+:101E80003EE051E2E32FF0E050935700E49120FF51
+:101E900003C0E295EF703F5FEF708E2F90E0EA3065
+:101EA00010F0C79601C0C0968D939D932F5F24318B
+:101EB00049F74FBF8091E800877F8093E8006AE28E
+:101EC00070E0CE0101960E949D0B14C0AE014F5FE1
+:101ED0005F4F6091F6010E94E40ABC01009709F48B
+:101EE00040C09091E800977F9093E80089819A81A3
+:101EF0000E94000C8091E8008B778093E80031C04D
+:101F0000803879F58091E800877F8093E8008091A0
+:101F1000ED018093F1008091E8008E778093E800D6
+:101F20000E94960C1EC081111CC09091F401923049
+:101F3000C0F48091E800877F8093E8009093ED01E2
+:101F40000E94960C8091ED01811106C08091E30002
+:101F500087FD02C081E001C084E08093F1010E940E
+:101F6000E0098091E80083FF0AC08091E800877F44
+:101F70008093E8008091EB0080628093EB00AA964A
+:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A
+:101F900008950895CF938091F1018823A1F0C09115
+:101FA000E900CF709091EC00892F817090FD80E85E
+:101FB000C82B1092E9008091E80083FD0E94780E02
+:101FC000CF70C093E900CF910895909375018093ED
+:101FD00074010895E0917401F0917501309721F03A
+:101FE0000190F081E02D099480E00895E091740162
+:101FF000F0917501309721F00280F381E02D099472
+:102000000895E0917401F0917501309721F00480FA
+:10201000F581E02D099408952091720130917301AA
+:102020008217930771F09093730180937201E0918E
+:102030007401F0917501309721F00680F781E02D51
+:1020400009940895209170013091710182179307CE
+:1020500071F09093710180937001E0917401F0919F
+:102060007501309721F00084F185E02D09940895E1
+:1020700008950C9438100E94921B0E9433030C9414
+:10208000541C9F92AF92BF92CF92DF92EF92FF9239
+:102090000F931F93CF93DF9300D000D000D0CDB724
+:1020A000DEB70E944B030DE010E0AA24A394B12CEC
+:1020B000902E802F0E943904980129583E4F6901C3
+:1020C000F901F080F826A1F40150110988F78FEF8B
+:1020D00089838A831B820E949B1B8160782F9D834A
+:1020E0008C8349815A816B818D810E94D8102FC0C9
+:1020F0009091DA0191FF04C08E830E943F048E818B
+:1021000025E030E0A501022E01C0440F0A94EAF751
+:10211000E42E4F21C1F029839A828E2191E009F4A7
+:1021200090E09B830E949B1B8160782F9D838C8312
+:1021300049815A816B818D810E94D810F60180817E
+:10214000E826E08204C021503109E0F6BDCF0E94AC
+:102150003B1F109176010E94EA0F1817B9F00E94F8
+:10216000EA0F8093760126960FB6F894DEBF0FBE75
+:10217000CDBFDF91CF911F910F91FF90EF90DF9036
+:10218000CF90BF90AF909F900C94E30826960FB627
+:10219000F894DEBF0FBECDBFDF91CF911F910F919D
+:1021A000FF90EF90DF90CF90BF90AF909F900895F9
+:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82
+:1021C0000FBECDBF4F83588769877A878B87DE0123
+:1021D000119686E0FD0111928A95E9F785E0FE01EE
+:1021E000379601900D928A95E1F749815A816B816A
+:1021F0007C818D819E810E9421172B960FB6F894C9
+:10220000DEBF0FBECDBFDF91CF910895CF9388235E
+:1022100009F4C2C0C82F823859F40E94EA0F81FD28
+:10222000BBC089E30E94FB190E94C81A89E30CC055
+:10223000833879F40E94EA0F80FDAEC083E50E94E6
+:10224000FB190E94C81A83E50E943D1ACF910C9495
+:10225000C81A843859F40E94EA0F82FD9DC087E4B1
+:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6
+:10227000813A48F48C2F0E947E2181118DC08C2FD1
+:102280000E94FB19E3CF80E28C0F883048F4C770BE
+:1022900081E001C0880FCA95EAF70E94811AD6CF63
+:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB
+:1022B00083E890E005C081E890E002C082E890E009
+:1022C000CF910C940C1088E58C0F833108F064C01A
+:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118
+:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186
+:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106
+:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173
+:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB
+:1023200038C082EE90E035C089EE90E032C08AEE8F
+:1023300090E02FC085EB90E02CC086EB90E029C0A8
+:1023400087EB90E026C08CEC90E023C08DEC90E011
+:1023500020C083E891E01DC08AE891E01AC082E9BC
+:1023600091E017C084E991E014C081E292E011C0CD
+:1023700083E292E00EC084E292E00BC085E292E03C
+:1023800008C086E292E005C087E292E002C08AE2DD
+:1023900092E0CF910C942210CF910895882309F4F4
+:1023A0004BC0823859F40E94EA0F81FF45C089E38F
+:1023B0000E94FB190E94C81A89E30CC0833871F48B
+:1023C0000E94EA0F80FF38C083E50E94FB190E943B
+:1023D000C81A83E50E943D1A0C94C81A843859F42F
+:1023E0000E94EA0F82FF28C087E40E94FB190E9426
+:1023F000C81A87E4EFCF9CEF980F913A58F390E218
+:10240000980F983050F4877091E001C0990F8A9529
+:10241000EAF7892F0E94871ADFCF9BE5980F933048
+:1024200020F480E090E00C940C10885A833120F462
+:1024300080E090E00C9422100895882321F00E94FF
+:10244000811A0C94C81A0895882321F00E94871AD3
+:102450000C94C81A08957F928F929F92AF92BF9268
+:10246000CF92DF92EF92FF920F931F93CF93DF9360
+:102470001F92CDB7DEB77C01C62E772EFC010581F9
+:1024800002950F70128111110E949E1A0E94F41978
+:10249000882379F0112369F080E28C0D883048F0B0
+:1024A00082E00E94DD190E94F41991E0D82ED9260D
+:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C
+:1024C0000C94B323872D807F072D0F70882311F084
+:1024D0000295007F112389F0002309F490C180E266
+:1024E0008C0D883020F4802F0E94811A03C0802F29
+:1024F0000E94911A0E94C81A82C18C2D0E94CE118E
+:10250000002309F495C180E28C0D883020F4802FDF
+:102510000E94871A03C0802F0E94971A0E94C81A2F
+:1025200087C1972D907F872D8F70903211F0829503
+:10253000807FCC2021F0F1E0CF16B1F01EC0112336
+:1025400049F0002309F414C1013009F011C10E94BF
+:10255000B11A6EC1002319F0013009F469C18983F1
+:102560000E94B41A89810AC1112321F0023008F0B7
+:102570005FC1FEC001115CC101C1112321F0002324
+:1025800009F4F6C03CC1002309F4F8C03EC1872D10
+:1025900086958695837090E0009719F0019761F019
+:1025A00047C1112321F08C2D972D937002C080E03C
+:1025B00090E00E940C103CC1112321F08C2D972D2E
+:1025C000937002C080E090E00E94221031C18C2DF7
+:1025D000112319F00E94431E02C00E94AB1E0E94EC
+:1025E000301F26C1872D837009F052C0111120C100
+:1025F0008C2D829586958770880F880F9C2D9F70F3
+:10260000892E912CA12CB12C082E04C0880C991C69
+:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041
+:1026200020E030E0B901A80104C0440F551F661F27
+:10263000771F8A95D2F7CB01BA0160957095809586
+:10264000909503C060E070E0CB01272D269526957C
+:10265000237030E02230310569F02330310589F0F4
+:10266000682979298A299B292130310571F00E9436
+:102670006918DEC0682979298A299B290E94851852
+:10268000D7C00E946918C501B4010E944D18D0C07E
+:10269000112319F0872D817001C08695882309F4D4
+:1026A000C7C08C2D829586958770880F880F9C2DCA
+:1026B0009F70892E912CA12CB12C082E04C0880C5F
+:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC
+:1026D00010E020E030E0B901A80104C0440F551F0C
+:1026E000661F771F8A95D2F7CB01BA016095709566
+:1026F0008095909503C060E070E0CB01272D269572
+:1027000026952370422F50E04230510569F0433046
+:10271000510589F0682979298A299B294130510579
+:1027200071F00E94431984C0682979298A299B295C
+:102730000E945F197DC00E944319C501B4010E9427
+:10274000271976C08C2D90E0FC01E05EF109E5319F
+:10275000F10508F050C0E059FF4F0C94B3230C2D45
+:102760000F70872D8F71112331F00E94C018802FB8
+:102770000E941D125DC00E94E118802F0E94241249
+:1027800057C0112339F0011153C0872D8F710E945A
+:1027900006194EC0023008F04BC0F7CF112339F0B4
+:1027A000872D8F710E94C01843C01123C9F3872D54
+:1027B0008F710E94E1183CC0112329F0872D8F7181
+:1027C0000E94AB1835C00E94A11832C0112351F0ED
+:1027D000172D1F71812F0E94C01863E0812F0E9466
+:1027E000D41926C081E00E94DD19023008F182E090
+:1027F0000E94DD191DC0112331F0002389F28C2DB8
+:102800000E94061115C0002391F28C2D0E94CE115A
+:102810000FC0472D4F706C2DC7010E9415050E94F7
+:10282000C51706C0472D4F706C2DC7010E94F205D9
+:10283000DD20F9F00E94D01980FD1BC0F701128243
+:102840000E94CA190E94C018C7010E9448140E9421
+:10285000CA190F90DF91CF911F910F91FF90EF90C8
+:10286000DF90CF90BF90AF909F908F907F900C940F
+:10287000E1180F90DF91CF911F910F91FF90EF9092
+:10288000DF90CF90BF90AF909F908F907F900895F2
+:102890000F931F93CF93DF93EC01888199812B8154
+:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B
+:1028B0000E944A05882371F0688179818A810E948B
+:1028C000C6198C010E947B190E944218B801CE01E2
+:1028D0000E942B12DF91CF911F910F9108950E94BA
+:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471
+:1028F000E11F0E94301F80E090E00E940C1080E0F9
+:1029000090E00C9422100E948E1A0C946F140E9476
+:10291000BB19292F22952F7030E02C3031054CF453
+:102920002A3031056CF42250310922303105A8F4E7
+:1029300007C02C30310569F02F30310551F00DC042
+:10294000803F69F018F4803E40F409C0843F29F4C8
+:1029500006C093FB882780F9089580E0089581E000
+:102960000895CF93DF9300D000D01F92CDB7DEB78C
+:102970000F900F900F900F900F90DF91CF910895CF
+:10298000CF93DF9300D000D000D0CDB7DEB726962E
+:102990000FB6F894DEBF0FBECDBFDF91CF91089583
+:1029A0001F93CF93DF93C091850116E0809186013C
+:1029B000C81799F0D0E01C9FF0011D9FF00D112465
+:1029C000E957FE4F408151816281738184819581F5
+:1029D0000E94C0142196C770E9CFDF91CF911F915B
+:1029E00008954091B7015091B8016091B90170917B
+:1029F000BA018091BB019091BC010C94C0148091EC
+:102A0000BC0182958F7009F054C08091B901882370
+:102A100009F44FC080918501A09186016091B701B2
+:102A20007091B8014091BA015091BB01B6E08A178C
+:102A300009F43FC090E041155105C1F17F3F11F409
+:102A40006F3FA1F1B89FF001B99FF00D1124E95734
+:102A5000FE4F218172132AC02081621327C0228178
+:102A6000211124C0238134812417350710F421500B
+:102A70003109241B350B283C3105C0F42091BC01E1
+:102A80002F7020612093BC0126E0289FF001299F30
+:102A9000F00D1124E457FE4F80818F708061808398
+:102AA00087EB91E00E9448140C94D0140196877033
+:102AB000BECF0895CF92DF92EF92FF920F931F93B4
+:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32
+:102AD0000FBECDBF8C0185E0F801DE011D9601908F
+:102AE0000D928A95E1F7D8014C9111965C9111975E
+:102AF00012966C9112971396CD90DC9014973091AA
+:102B0000B7017091B8018091BA019091BB01009713
+:102B100009F46BC17F3F19F43F3F09F466C1E090AF
+:102B2000B901EE2009F4C0C02091BC01C816D90635
+:102B300028F0F601E81BF90BCF0104C080959095B1
+:102B40008C0D9D1DFF24F394883C910578F0F12CA9
+:102B5000207F09F0C6C07C2DD98AC88A89890E9445
+:102B6000B11487EB91E00E944814B1C0822F807F9E
+:102B700009F046C0751314C0341312C0611110C09F
+:102B80002F7020612093BC010E94F11487EB91E02B
+:102B90000E9448148091BC01D80115968C932EC0D8
+:102BA000CD2819F15F3F11F44F3FF9F0F62E611176
+:102BB0001CC0809185012091860136E0821709F4BE
+:102BC0005AC090E0389FF001399FF00D1124E95769
+:102BD000FE4F7181571306C07081471303C0728185
+:102BE000711103C001968770E9CFF62E662309F4B0
+:102BF00018C18091BC0181608093BC01F12C11C18E
+:102C0000751308C0341306C0611104C08091BC0163
+:102C1000D801C3C04D875E878D859E856A8B0E94D3
+:102C200087146A898823E1F16623D1F12091BC01E0
+:102C3000822F82958F7090E0029774F08091B70197
+:102C40009091B80198878F831986DB86CA862C8776
+:102C5000CE0107960E94481486E0F801A7EBB1E088
+:102C600001900D928A95E1F70E94FF140E94F114E1
+:102C7000FF24F394D6C04D875E878D859E850E9484
+:102C8000BB19292F22952F7030E0223031050CF02E
+:102C9000BCC09F7009F0B6C0805E883008F4C1C027
+:102CA000C8010E944814E4CFC816D90608F453C0DE
+:102CB000F601E81BF90BCF01883C910508F450C0E0
+:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E
+:102CD000F1E086E0DF011D928A95E9F70E94F11488
+:102CE000A0C0751314C0341312C0611110C08091BC
+:102CF000BC01F8018583C8010E94481486E0E7EB17
+:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C
+:102D10005E878D859E856A8B0E9487146A898823C9
+:102D200009F4BECF662309F4BBCF2091BC01822FEA
+:102D300082958F7090E002970CF48ECF8091B7014E
+:102D40009091B8019A8389831B82DD82CC822E8385
+:102D5000CE0101967FCF809590958C0D9D1DACCFB7
+:102D6000F62E662309F49CCF75132EC034132CC0A5
+:102D70002091BC0120FD1FC0822F82958F70D9F059
+:102D8000D80115962C9315978F3049F08F5F982FA7
+:102D90009295907F822F8F70892B15968C93C80106
+:102DA0000E94481486E0F801A7EBB1E001900D9273
+:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7
+:102DC0000D928A95E1F72DC04D875E878D859E8592
+:102DD0000E948714811140CF8091BC018160809353
+:102DE000BC01C8010E9448141CC0662309F458CFD6
+:102DF0004D875E878D859E850E948714882309F400
+:102E00004FCF2ACF811148CF0CC0243031050CF0B0
+:102E100047CF9F7009F440CFF8019581907F09F06A
+:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D
+:102E3000DF91CF911F910F91FF90EF90DF90CF9096
+:102E400008951F93CF93DF93CDB7DEB72C970FB6BE
+:102E5000F894DEBF0FBECDBF4F83588769877A874E
+:102E60008B879C87CE0107960E945A15882369F0AC
+:102E70008F8198852A853B85232BF1F19F3F09F0AF
+:102E800063C08F3F09F060C037C086E0FE0137960F
+:102E9000DE01119601900D928A95E1F76F81788598
+:102EA000EA85FB85309741F17F3F11F46F3F21F1B7
+:102EB0002091860130E0C9010196877099274091E1
+:102EC000850150E08417950709F447C069837A8328
+:102ED000FD83EC8396E0929FD001939FB00D112467
+:102EE000A957BE4FFE01319601900D929A95E1F7D8
+:102EF000809386010E94D01416E080918501909104
+:102F000086018917C1F1189FC001112489579E4F6E
+:102F10000E945A15882379F1E09185011E9FF001E6
+:102F20001124E957FE4F4081518162817381848170
+:102F300095810E94C0148091850190E00196877070
+:102F4000992780938501D9CF4F81588569857A85E6
+:102F50008B859C850E94C014CFCF0E948314109251
+:102F6000860110928501E7EBF1E086E0DF011D921A
+:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45
+:102F8000CDBFDF91CF911F910895EF92FF920F93E4
+:102F90001F93CF93DF938C01009709F46CC0F12C41
+:102FA000EE24E394E8012196F8018491843740F4FB
+:102FB000843008F051C0813081F0823019F15BC05B
+:102FC000853709F444C0A8F19CE7980F903708F0C2
+:102FD00052C08F770E94CE1141C00E5F1F4FFE017D
+:102FE000C49180E28C0F883048F4C7708E2D01C0E8
+:102FF000880FCA95EAF70E94A11A14C08C2F0E946C
+:1030000006112DC00E5F1F4FFE01C49180E28C0F90
+:10301000883058F4C7708E2D01C0880FCA95EAF722
+:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3
+:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3
+:103040009FE00197F1F700C00000C150F6CF0E5F7E
+:103050001F4FFE01F49003C00E9406118E018F2DB8
+:10306000882309F49FCFEFE9FFE03197F1F700C023
+:1030700000008150F5CFDF91CF911F910F91FF900C
+:10308000EF90089508956093C1017093C2018093F9
+:10309000C3019093C4010C946F140F931F9300917C
+:1030A000C1011091C2012091C3013091C401DC0122
+:1030B000CB01802B912BA22BB32B8093C10190933A
+:1030C000C201A093C301B093C4011F910F910C944E
+:1030D0006F140F931F930091C1011091C2012091B1
+:1030E000C3013091C401DC01CB0180239123A223D1
+:1030F000B3238093C1019093C201A093C301B09305
+:10310000C4011F910F910C946F140F931F930091A2
+:10311000C1011091C2012091C3013091C401DC01B1
+:10312000CB0180279127A227B3278093C1019093D9
+:10313000C201A093C301B093C4011F910F910C94DD
+:103140006F141092BD011092BE011092BF01109237
+:10315000C0010C946F1441E050E060E070E004C0E6
+:10316000440F551F661F771F8A95D2F74093BD0104
+:103170005093BE016093BF017093C0010C946F1413
+:1031800041E050E060E070E004C0440F551F661F4E
+:10319000771F8A95D2F78091BD019091BE01A091D1
+:1031A000BF01B091C001482B592B6A2B7B2B409358
+:1031B000BD015093BE016093BF017093C0010C9498
+:1031C0006F1441E050E060E070E004C0440F551F10
+:1031D000661F771F8A95D2F7409550956095709538
+:1031E0008091BD019091BE01A091BF01B091C0013D
+:1031F000482359236A237B234093BD015093BE018A
+:103200006093BF017093C0010C946F1441E050E0D3
+:1032100060E070E004C0440F551F661F771F8A9559
+:10322000D2F78091BD019091BE01A091BF01B091F4
+:10323000C001482759276A277B274093BD01509337
+:10324000BE016093BF017093C0010C946F140F9383
+:103250001F930091BD011091BE012091BF013091DB
+:10326000C001DC01CB01802B912BA22BB32B8093CF
+:10327000BD019093BE01A093BF01B093C0011F9107
+:103280000F910C946F140F931F930091BD01109137
+:10329000BE012091BF013091C001DC01CB01802330
+:1032A0009123A223B3238093BD019093BE01A093E9
+:1032B000BF01B093C0011F910F910C946F140F9335
+:1032C0001F930091BD011091BE012091BF0130916B
+:1032D000C001DC01CB0180279127A227B32780936F
+:1032E000BD019093BE01A093BF01B093C0011F9197
+:1032F0000F910C946F140895CF92DF92EF92FF928A
+:103300000F931F93CF93DF938C01C090C101D09096
+:10331000C201E090C301F090C4018091BD01909181
+:10332000BE01A091BF01B091C001C82AD92AEA2AE2
+:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520
+:10334000A795979587950A94D2F780FF06C0B80194
+:103350008C2F0E944808019721F4219760F780E0A4
+:1033600001C08C2FDF91CF911F910F91FF90EF90B3
+:10337000DF90CF900895CF93DF93EC010E947C19EA
+:10338000BE010E944808DF91CF910895CB010E94B1
+:10339000BB1908958091C5018595859585950895FA
+:1033A0008091C5018770089598E0899F900111244C
+:1033B000262B2093C5010C94C0182091C50180953F
+:1033C00082238093C501982F977069F430E0482FCD
+:1033D000552747FD50952417350729F08595859584
+:1033E00085950C94E11808959091C501977081E03E
+:1033F00009F480E0089590910C01992321F09091B7
+:103400000D01911109C020910E0130910F01F901B8
+:1034100032969FEF40E01FC0982F9695969596950F
+:103420009F3050F5E0910E01F0910F01E90FF11D71
+:10343000877021E030E0A90102C0440F551F8A9532
+:10344000E2F7CA019181892B818308959F3F39F06A
+:103450004F5F4E3041F051915813F8CF0DC05111CC
+:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08
+:1034700097FDFA9582830895089590910C01992300
+:1034800021F090910D01911109C020910E01309110
+:103490000F01F9013296205F3F4F1FC0982F96957C
+:1034A000969596959F30F0F4E0910E01F0910F0102
+:1034B000E90FF11D877021E030E0A90102C0440F3F
+:1034C000551F8A95E2F7CA018095918189238183EE
+:1034D00008953196E217F30729F090819813F9CFF8
+:1034E0001082F7CF089581E090E0E0910E01F09115
+:1034F0000F01E80FF91F1082019680319105A9F79D
+:1035000008959091D901892B8093D90108958095D0
+:103510009091D90189238093D90108951092D901FE
+:1035200008959091D801892B8093D80108958095B2
+:103530009091D80189238093D80108951092D801E1
+:1035400008959091D701892B8093D7010895809594
+:103550009091D70189238093D70108951092D701C4
+:1035600008958093C60108951092C6010895809130
+:103570000E0190910F01FC0131969C01205F3F4F9D
+:1035800080E0919191118F5FE217F307D1F70895D1
+:10359000E0910E01F0910F018091D9018083E091BB
+:1035A0000E01F0910F0190818091D801892B8083C9
+:1035B000E0910E01F0910F0190818091D701892B4C
+:1035C00080838091C601882361F0E0910E01F09123
+:1035D0000F019081892B80830E94B71A811110926C
+:1035E000C60180910E0190910F010C94F60F20E01E
+:1035F000009739F0AC0141505109842395232F5F86
+:10360000F7CF822F0895CF92DF92EF92FF926C0155
+:10361000EE24FF24C114D104E104F10421F0C70118
+:10362000B60120E101C020E0C72ED82EE92EFF24EC
+:10363000C114D104E104F10419F0285FC701B601F7
+:103640006B017C0154E0F694E794D794C7945A95A3
+:10365000D1F7C114D104E104F10419F02C5FC701C2
+:10366000B6016B017C0142E0F694E794D794C794CD
+:103670004A95D1F7C114D104E104F10419F02E5F89
+:10368000C701B601DC01CB01B695A7959795879543
+:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5
+:1036A000DF90CF9008958091F101843021F1109244
+:1036B000DB0120E488E190E00FB6F894A8958093B0
+:1036C00060000FBE2093600080E00E94E30883B793
+:1036D000817F846083BF83B7816083BF789488953E
+:1036E00083B78E7F83BF88E10FB6F8948093600024
+:1036F000109260000FBE0895089508950E947C1BEB
+:103700000E944B030E947D1B0E94400491E08111A6
+:1037100001C090E0892F08950E9483140E94EA0F4F
+:103720000C94E30882E084BD93E095BD9AEF97BDC9
+:1037300080936E0008952FB7F8948091DC019091EA
+:10374000DD01A091DE01B091DF012FBF0895CF927E
+:10375000DF92EF92FF920F931F932FB7F89440914F
+:10376000DC015091DD016091DE017091DF012FBF1E
+:103770006A017B01EE24FF248C0120E030E0C016BA
+:10378000D106E206F30610F4415051099A01281BB4
+:10379000390BC9011F910F91FF90EF90DF90CF90EF
+:1037A00008951F920F920FB60F9211248F939F933B
+:1037B000AF93BF938091DC019091DD01A091DE0178
+:1037C000B091DF010196A11DB11D8093DC019093A2
+:1037D000DD01A093DE01B093DF01BF91AF919F9116
+:1037E0008F910F900FBE0F901F9018950E94E70CBD
+:1037F000F8942FEF87EA91E6215080409040E1F75E
+:1038000000C0000087E090EBDC018093FB01909307
+:10381000FC01A093FD01B093FE019CE088E10FB68E
+:10382000F894A895809360000FBE90936000FFCF3E
+:10383000EF92FF920F931F93CF93DF93D82FCDE09A
+:103840008C2F0E94390405E010E0E82EF12CC7010E
+:10385000002E02C0959587950A94E2F780FF09C073
+:10386000602F7C2F80E00E94F305D81302C081E016
+:1038700006C00150110958F7C15010F780E0DF91E0
+:10388000CF911F910F91FF90EF900895CF93C82F84
+:103890008CE20E94181C882321F08C2FCF910C946D
+:1038A000181C80E0CF910895CF930E949B1D811139
+:1038B00002C00E94811DC5E6C15049F00E944B0321
+:1038C0008FE39CE90197F1F700C00000F5CF89E292
+:1038D0000E94461C811113C18AE20E94461C81117C
+:1038E0000E94811D85E00E94461C81110E94F61BEA
+:1038F0000E94A61D8093DA0187E00E94461C88235F
+:10390000A9F18BE10E94461C882351F08091DA01D5
+:1039100081FB222720F991E0922790FB81F90EC0CC
+:103920008EE00E94461C882361F08091DA0182FBC0
+:10393000222720F991E0922790FB82F98093DA0107
+:1039400015C080E10E94461C9091DA01882341F065
+:1039500093FB222720F981E0822780FB93F904C0A2
+:10396000892F809580FB90F99093DA018091DA019C
+:103970000E94AA1D0E94B81D8093FA0180EE0E9449
+:10398000461C882341F08091FA01982F909590FB76
+:1039900080F98093FA0189E30E94461C882359F03C
+:1039A0008091FA0181FB222720F991E0922790FB78
+:1039B00081F98093FA0182EE0E94461C882359F017
+:1039C0008091FA0182FB222720F991E0922790FB57
+:1039D00082F98093FA0186EE0E94461C882359F0F2
+:1039E0008091FA0183FB222720F991E0922790FB36
+:1039F00083F98093FA0183EE0E94461C882359F0D4
+:103A00008091FA0184FB222720F991E0922790FB14
+:103A100084F98093FA0185E30E94461C882359F0BB
+:103A20008091FA0185FB222720F991E0922790FBF3
+:103A300085F98093FA0181E30E94461C882359F09E
+:103A40008091FA0186FB222720F991E0922790FBD2
+:103A500086F98093FA0181E10E94461C882359F07F
+:103A60008091FA0187FB222720F991E0922790FBB1
+:103A700087F98093FA018091FA010E94BC1D809120
+:103A8000FA0187FB882780F980930D0187E20E9465
+:103A9000461CC82F8EE10E94461C8111C2608FE136
+:103AA0000E94461C8111C46080E20E94461C811164
+:103AB000C86081E20E94461C8111C06182E20E94BE
+:103AC000461C8111C06283E20E94461C8111C064C1
+:103AD00084E20E94461C882311F0C06802C0CC23F7
+:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4
+:103AF000682F70E080E090E0CF910C944318CF9154
+:103B000008956DEE7EEF80E090E00E94ED2360E08E
+:103B100082E090E00E94DB2360E083E090E00E947E
+:103B2000DB2360E084E090E00E94DB2360E085E03E
+:103B300090E00C94DB2380E090E00E94D52321E00C
+:103B40008D3E9E4F09F020E0822F089582E090E0A4
+:103B50000C94CD23682F82E090E00C94DB2383E06B
+:103B600090E00C94CD23682F83E090E00C94DB234D
+:103B700084E090E00C94CD23682F84E090E00C94D6
+:103B8000DB238091E20180FF0BC06091130185E08F
+:103B9000689FB001112475956795759567952BC041
+:103BA00081FF09C06091130185E0689FB001112475
+:103BB0007595679520C082FF07C06091130185E06D
+:103BC000689FB001112417C09091E3019923D1F0AF
+:103BD00060911201961788F72091130185E0289FC4
+:103BE00090011124929FA001939F500D112470E029
+:103BF000CA010E949F236038710540F46115710568
+:103C000039F002C065E070E0862F08958FE70895CF
+:103C100081E008958091E20180FF08C06091110168
+:103C200070E0759567957595679521C081FF06C011
+:103C30006091110170E07595679519C082FF04C00D
+:103C40006091110170E010C09091E3019923C1F0DF
+:103C5000609110019617A0F780911101899FC00112
+:103C6000112470E00E949F236038710528F46115CB
+:103C7000710521F0862F08958FE7089581E008955A
+:103C800061E070E0F4CF803F21F40E94C11D819576
+:103C900004C0813F29F40E94C11D8093E60108956C
+:103CA000823F21F40E94C11D819504C0833F29F405
+:103CB0000E94C11D8093E5010895893F19F40E9477
+:103CC0000A1E05C08A3F31F40E940A1E8195809326
+:103CD000E70108958B3F21F40E940A1E819504C0DC
+:103CE0008C3F29F40E940A1E8093E8010895843FC6
+:103CF00021F48091E401816017C0853F21F4809117
+:103D0000E401826011C0863F21F48091E401846067
+:103D10000BC0873F21F48091E401886005C0883F93
+:103D200031F48091E40180618093E40108958D3F36
+:103D300021F48091E20181600BC08E3F21F48091DB
+:103D4000E201826005C08F3F29F48091E201846026
+:103D50008093E2010895803F39F48091E60187FF66
+:103D60006CC01092E60169C0813F29F48091E601A0
+:103D70001816BCF362C09091E501823F29F497FFC9
+:103D80005CC01092E50159C0833F19F41916CCF3B9
+:103D900054C0893F41F48091E70118160CF04DC0E2
+:103DA0001092E7014AC08A3F29F48091E70187FF1A
+:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6
+:103DC0001092E8013AC08C3F29F48091E80118165E
+:103DD000BCF333C0843F21F48091E4018E7F17C08F
+:103DE000853F21F48091E4018D7F11C0863F21F44D
+:103DF0008091E4018B7F0BC0873F21F48091E40127
+:103E0000877F05C0883F31F48091E4018F7E8093E5
+:103E1000E40113C08D3F21F48091E2018E7F0BC03D
+:103E20008E3F21F48091E2018D7F05C08F3F29F400
+:103E30008091E2018B7F8093E2018091E501811105
+:103E40000EC08091E60181110AC08091E7018111C5
+:103E500006C08091E801811102C01092E30108952B
+:103E600084EE91E00E9401100E949B1B9093E1015F
+:103E70008093E00108951F93CF93DF938091E00139
+:103E80009091E1010E94A71BAC019091E30199235D
+:103E900021F02091140130E006C0209115018AE044
+:103EA000289F900111244217530708F486C080917F
+:103EB000E501C091E601D091E7011091E80181117F
+:103EC00007C0C11176C0D11174C0111172C075C084
+:103ED0009F3F19F09F5F9093E301181624F40E940E
+:103EE000C11D8093E5018091E50187FF05C00E9417
+:103EF000C11D81958093E5011C1624F40E94C11D0B
+:103F00008093E6018091E60187FF05C00E94C11DF4
+:103F100081958093E6016091E501662339F1C091B6
+:103F2000E601CC2319F1772767FD7095872F972F2E
+:103F30000E94B02223E333E343E35FE30E941423B0
+:103F40000E947D226093E5016C2F772767FD7095B5
+:103F5000872F972F0E94B02223E333E343E35FE3ED
+:103F60000E9414230E947D226093E6011D1624F412
+:103F70000E940A1E8093E7018091E70187FF05C038
+:103F80000E940A1E81958093E701111624F40E9475
+:103F90000A1E8093E8018091E80187FF05C00E9416
+:103FA0000A1E81958093E801DF91CF911F910C94B7
+:103FB000301F9F3F09F08ECF96CFDF91CF911F9199
+:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE
+:103FD0001092E3011092E2010895833081F128F4F8
+:103FE000813059F08230D1F00895853009F449C00C
+:103FF000B8F1863009F456C0089580911501262F36
+:1040000030E0280F311D2F3F310524F4680F6093F5
+:10401000150108958FEF8093150108958091140183
+:10402000262F30E0280F311D2F3F310524F4680F73
+:104030006093140108958FEF809314010895809187
+:104040001301262F30E0280F311D2F3F310524F4B6
+:10405000680F6093130108958FEF80931301089503
+:1040600080911201262F30E0280F311D2F3F31059E
+:1040700024F4680F6093120108958FEF809312016A
+:10408000089580911101262F30E0280F311D2F3F18
+:10409000310524F4680F6093110108958FEF809328
+:1040A0001101089580911001262F30E0280F311D55
+:1040B0002F3F310524F4680F6093100108958FEFAE
+:1040C000809310010895833011F128F4813049F074
+:1040D000823091F00895853081F120F18630C1F170
+:1040E000089580911501681720F4861B80931501AF
+:1040F000089510921501089580911401681720F415
+:10410000861B8093140108951092140108958091E4
+:104110001301681720F4861B8093130108951092F1
+:104120001301089580911201681720F4861B809373
+:1041300012010895109212010895809111016817DB
+:1041400020F4861B809311010895109211010895A7
+:1041500080911001681720F4861B80931001089548
+:104160001092100108950F931F938D3109F46BC0C5
+:1041700008F03FC08E3009F47FC0C0F4873009F4E6
+:1041800069C068F4863009F0B1C08091DA01817F9E
+:104190008E7F8093DA0181E08093EA01A8C08830A5
+:1041A00009F4A2C08B3009F49FC0A0C0863109F485
+:1041B0009BC078F4803109F472C0813109F096C057
+:1041C0000E94831490910D0181E0892780930D0155
+:1041D0008BC0893109F488C08B3109F087C0809188
+:1041E000DA0181FB222720F991E0922790FB81F9E7
+:1041F0004CC0853309F470C048F4873209F46CC0B0
+:1042000008F459C0893209F467C070C0833438F4A7
+:104210008A3308F04EC0883309F466C067C083341F
+:1042200009F45AC0883409F061C00E9483140FEF6A
+:1042300013ED20E3015010402040E1F700C00000E2
+:104240000E94F61B51C00E9437220E94EA0F0E9472
+:10425000E3084AC09091DA01892F8095817080FB34
+:1042600090F929F0966098609093DA0140C0997FA8
+:10427000977F9093DA0138C08091DA0182FB222780
+:1042800020F991E0922790FB82F98093DA0199233B
+:1042900059F18091DA0181608093DA0125C0809123
+:1042A000DA0183FB222720F991E0922790FB83F922
+:1042B000ECCF895301C08D5141E050E060E070E0E7
+:1042C0008A019B0104C0000F111F221F331F8A9512
+:1042D000D2F7C901B80104C061E070E080E090E06D
+:1042E0000E9443180E94831481E001C080E01F9166
+:1042F0000F91089580E0089580E00895CF93C82F2E
+:104300008091EA01813079F018F08230E9F187C0BC
+:10431000E0910E01F0910F018081813169F08232CC
+:1043200009F07FC009C0E0910E01F0910F0180817A
+:10433000813111F0823261F48C2F0E947A21811137
+:1043400004C08C2F0E94B3201DC081E090E01AC0F1
+:104350008C2F0E947C21811114C0C43179F048F463
+:10436000CB3079F0C03109F060C082E08093EA017F
+:1043700008C0C93219F0C83321F057C01092EA01C1
+:1043800054C081E0817053C0C93289F118F5C4313D
+:1043900071F1A8F4C73009F046C08AE08093150196
+:1043A00094E19093140193E0909313018093120190
+:1043B00088E08093110188E28093100134C0CE51CF
+:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB
+:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC
+:1043E00013C0C13579F0C235F1F461E00DC08091A0
+:1043F000E901882319F01092E90115C081E080934A
+:10440000EA0115C061E006C08091E9010E94ED1F3C
+:104410000AC06AE08091E9010E94632004C0109202
+:10442000EA0180E004C081E002C080E0ABCFCF9120
+:104430000895E1E8F0E08081886080838081816078
+:1044400080838FB7F89493E09093890090ED9093D8
+:1044500088008FBF0895EFE6F0E08081826080835E
+:104460000895EFE6F0E080818D7F80830895EFE688
+:10447000F0E0908182E08927808308951F920F9257
+:104480000FB60F9211242F933F934F935F936F9327
+:104490007F938F939F93AF93BF93EF93FF938091FD
+:1044A000EB019091EC0101969093EC018093EB016C
+:1044B000811103C082E00E94E308E091EC01E695DF
+:1044C000E695F0E0EC54FB4FE4918091EB018E1304
+:1044D00003C080E00E94E308FF91EF91BF91AF918C
+:1044E0009F918F917F916F915F914F913F912F910C
+:1044F0000F900FBE0F901F90189504D06894B111C3
+:104500008DC0089570D088F09F5790F0B92F9927EB
+:10451000B751A0F0D1F0660F771F881F991F1AF0CE
+:10452000BA95C9F712C0B13081F077D0B1E00895E3
+:1045300074C0672F782F8827B85F39F0B93FCCF364
+:10454000869577956795B395D9F73EF490958095C4
+:10455000709561957F4F8F4F9F4F0895E89409C0E4
+:1045600097FB3EF490958095709561957F4F8F4FA6
+:104570009F4F9923A9F0F92F96E9BB279395F695BC
+:10458000879577956795B795F111F8CFFAF4BB0F3A
+:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E
+:1045A000882311F096E911C0772321F09EE8872F28
+:1045B000762F05C0662371F096E8862F70E060E0E4
+:1045C0002AF09A95660F771F881FDAF7880F96955D
+:1045D000879597F9089557FD9058440F551F59F046
+:1045E0005F3F71F04795880F97FB991F61F09F3FE0
+:1045F00079F087950895121613061406551FF2CF09
+:104600004695F1DF08C0161617061806991FF1CF58
+:1046100086957105610508940895E894BB2766277F
+:104620007727CB0197F908950BD078C069D028F08F
+:104630006ED018F0952309F05AC05FC01124EECF58
+:10464000CADFA0F3959FD1F3950F50E0551F629FED
+:10465000F001729FBB27F00DB11D639FAA27F00DDB
+:10466000B11DAA1F649F6627B00DA11D661F829F02
+:104670002227B00DA11D621F739FB00DA11D621FE7
+:10468000839FA00D611D221F749F3327A00D611D04
+:10469000231F849F600D211D822F762F6A2F1124E6
+:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39
+:1046B000BB1F661F771F881F91505040A9F79E3F70
+:1046C000510570F014C0AACF5F3FECF3983EDCF3C5
+:1046D000869577956795B795F795E7959F5FC1F7AD
+:1046E000FE2B880F911D9695879597F9089597F958
+:1046F0009F6780E870E060E008959FEF80EC089588
+:1047000000240A94161617061806090608950024B0
+:104710000A9412161306140605060895092E03942A
+:10472000000C11F4882352F0BB0F40F4BF2B11F49E
+:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF
+:10474000072E16F4009407D077FD09D00E94B923F4
+:1047500007FC05D03EF4909581959F4F0895709584
+:1047600061957F4F0895EE0FFF1F0590F491E02DA6
+:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8
+:10478000B70710F0A61BB70B881F991F5A95A9F7FA
+:1047900080959095BC01CD010895F999FECF92BD09
+:1047A00081BDF89A992780B50895A8E1B0E042E06C
+:1047B00050E00C94F523262FF999FECF92BD81BDD0
+:1047C000F89A019700B4021639F01FBA20BD0FB64F
+:1047D000F894FA9AF99A0FBE08950196272F0E942D
+:1047E000DC230C94DB23DC01CB01FC01F999FECF27
+:1047F00006C0F2BDE1BDF89A319600B40D92415069
+:0A4800005040B8F70895F894FFCF78
+:10480A000220E508730950091C09E8080101C701DB
+:10481A0028080A03140A3F4D363975042804F2039E
+:10482A00B9034C0365037E039703010203040506DB
+:04483A000708090062
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/jack/keymap.c b/keyboards/ergodox_ez/keymaps/jack/keymap.c new file mode 100644 index 000000000..80bf9d535 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/jack/keymap.c @@ -0,0 +1,118 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +// TODO: Define layer names that make sense for the ErgoDox EZ. +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[BASE] = KEYMAP( // layer 0 : default + // left hand + KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, + 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_NO, + KC_NO, KC_LCTL, KC_LALT,KC_LGUI, MO(2), + ALT_T(KC_APP), KC_LGUI, + 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, 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 + ), +[SYMB] = KEYMAP( + // left hand + KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, + KC_TRNS, 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_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_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + KC_TRNS, KC_F12, KC_NO, KC_NO, KC_NO, RESET, KC_TRNS, + KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +[MDIA] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TRNS, + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, + KC_TRNS, 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_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_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + KC_TRNS, KC_F12, KC_NO, KC_NO, KC_NO, RESET, KC_TRNS, + KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, + 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_ez/keymaps/jacobono/README.md b/keyboards/ergodox_ez/keymaps/jacobono/README.md new file mode 100644 index 000000000..48de0509f --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/jacobono/README.md @@ -0,0 +1,34 @@ +# Default Layer # + +I'm using the colemak layer -- customized a bit to work a bit better when using spacemacs as my editor. + +![default-layer](img/colemak-default-layer.png) + +## Special Keys ## + +`SC1` => `LGUI + TAB` + +`SC2` => `LGUI + SPACE + TAB` + +`L1` => Switch to QWERTY Layout + +`T(L2)` => Toggle Symbol Layer + +`T(L3)` => Toggle Number and D-Pad Layer + +# QWERTY # + +Nothing special here -- just need this layer tucked away for the `WASD`. Which is literally the only reason I use it. +Just have the same button to toggle back to colemak. + +# Symbol Layer # + +![symbol-layer](img/symbol-layer.png) + +This is just putting matching closing symbols next to each other -- useful when editing lisp. + +# Number and D-Pad Layer # + +Just a basic number layer with a D-PAD on the other side. + +![number-dpad-layer](img/number-dpad-layer.png) diff --git a/keyboards/ergodox_ez/keymaps/jacobono/compiled.hex b/keyboards/ergodox_ez/keymaps/jacobono/compiled.hex new file mode 100644 index 000000000..bfa00ed2e --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/jacobono/compiled.hex @@ -0,0 +1,1179 @@ +:100000000C9422030C9466030C9466030C94660310
+:100010000C9466030C9466030C9466030C946603BC
+:100020000C9466030C9466030C940A0E0C94DC0E7C
+:100030000C9466030C9466030C9466030C9466039C
+:100040000C9466030C94E6220C9466030C946603ED
+:100050000C9466030C94791C0C9466030C94660350
+:100060000C9466030C9466030C9466030C9466036C
+:100070000C9466030C9466030C9466030C9466035C
+:100080000C9466030C9466030C9466030C9466034C
+:100090000C9466030C9466030C9466030C9466033C
+:1000A0000C9466030C9466030C946603490F6B0F63
+:1000B00059106B0F5910B00FD30F591028103B1067
+:1000C0000A130A13391339136F138F13C014C01492
+:1000D0009A13C0144A144A14B114C014C014BA14A8
+:1000E00057145714571457145714571457145714B8
+:1000F00057145714571457145714571457145714A8
+:10010000691476147D1484148E140000F0A201008A
+:100110002B002A00E100015400001E00140004001E
+:100120001D71010003521F001A0015001B00010081
+:100130002800200009001600060052002C002100B3
+:1001400013001700190002522C0A22000A000700AF
+:1001500005000000E3005000010000000100000065
+:1001600065004F00010000002B08000029712300EA
+:100170000D000B000E000000E20024000F00110033
+:10018000100002522C0A2500180008003600510009
+:100190002C0026001C000C0037000100280027005E
+:1001A000330012003871E60003524C002B004C0063
+:1001B000E500E70000002A002B00E000E10001005C
+:1001C00000001E00140004001D7134004D001F00CB
+:1001D0001A0016001B00E104E300200008000700DD
+:1001E000060050002C0021001500090019000252E1
+:1001F0004A00220017000A00050000002B005000F2
+:1002000001000000E20000004C004F00010000006F
+:10021000E6000000E20023001C000B0011000000BB
+:100220002971240018000D00100002524B00250017
+:100230000C000E00360051002800260012000F00AE
+:1002400037002F00E70027001300334438713000D7
+:100250004E004C003100E400E500C1000000010048
+:10026000010001000100010000003A00010031021C
+:100270000100010001003B001F021E0222020100DA
+:1002800001003C0025022E022302010001003D0076
+:100290002E002D002102010001003E002D0234023B
+:1002A0002402000001000100010000000100000024
+:1002B00001000100010000000100000001003F00FA
+:1002C0003502340233000000010040002F022602F4
+:1002D0002F00010001004100300227023000010020
+:1002E00001004200200234003100010001004300FF
+:1002F00033023500380001000100440045000100D0
+:1003000001000100000001000100010001000100E6
+:1003100000000100010001000100010001000100D6
+:1003200001005000010001000100010052005100D5
+:10033000010001000100010001004F000100010067
+:1003400001000100010001000100000001000100A6
+:100350000100000001000000010001000100000098
+:10036000010000000100010021022E002402000013
+:1003700001000100240021001E00360001000100E0
+:10038000250022001F002700010001002600230095
+:1003900020003700010001002E022D002502380048
+:1003A0000100010001000100010001000000010046
+:1003B0000100010001000100000001000100010036
+:1003C00001000100010001000100F2000100010034
+:1003D00001000100F000F1000100F4000100010043
+:1003E0000100F3000100F50001000100010001001F
+:1003F00001000000010001000100000001000000F8
+:1004000001000100010000000100000001000100E6
+:1004100001000100010000000100010001000100D5
+:100420000100A9000100010001000100AC00AA00C8
+:10043000B600010001000100AB00A80001000100AE
+:100440000100010001000100010001000100AE00F7
+:1004500001000100000016034500720067006F00F4
+:1004600044006F007800200045005A000000160389
+:100470004500720067006F0044006F0078002000A4
+:1004800045005A0000000403090409026D0004013C
+:1004900000A0FA0904000001030101000921110173
+:1004A0000001223F000705810308000A090401003A
+:1004B0000103010200092111010001224D0007057D
+:1004C000820308000A090402000103000000092158
+:1004D000110100012236000705830308000A090400
+:1004E000030001030000000921110100012239006D
+:1004F000070584031000011201100100000008ED3F
+:10050000FE071301000102000105010906A1010512
+:100510000719E029E71500250195087501810205F5
+:100520000819012905950575019102950175039139
+:1005300001050719002977150025019578750181B6
+:1005400002C005010980A101850216010026B7003D
+:100550001A01002AB700751095018100C0050C0929
+:1005600001A1018503160100269C021A01002A9CA4
+:1005700002751095018100C005010902A101090160
+:10058000A100050919012905150025019505750129
+:100590008102950175038101050109300931158139
+:1005A000257F95027508810609381581257F9501FB
+:1005B00075088106050C0A38021581257F9501759D
+:1005C000088106C0C005010906A101050719E02937
+:1005D000E7150025019508750181029501750881CF
+:1005E0000105081901290595057501910295017507
+:1005F0000391010507190029FF150025FF950675D0
+:10060000088100C0000000000000000000000001A0
+:100610000204060A0F17202C3A4A5D71879DB3C762
+:10062000DAE9F5FCFFFCF5E9DAC7B39D87715D4AAD
+:100630003A2C20170F0A06040201000000000000F7
+:100640000000000011241FBECFEFDAE0DEBFCDBFF7
+:1006500004B603FE24C08091FB019091FC01A0919F
+:10066000FD01B091FE018730904BA740B04BB9F42B
+:100670001092FB011092FC011092FD011092FE01FC
+:1006800014BE84B7877F84BF88E10FB6F894809347
+:100690006000109260000FBEE0E0FFE3099511E0FA
+:1006A000A0E0B1E0EAE5F9E402C005900D92A433C0
+:1006B000B107D9F711E0A4E3B1E001C01D92AB3F4F
+:1006C000B107E1F70E944E0B0C94AB240C94000090
+:1006D0001092B9008AE08093B800089594EA90934C
+:1006E000BC009091BC0097FFFCCF9091B900987F1F
+:1006F000983021F0903111F081E008958093BB0093
+:1007000084E88093BC008091BC0087FFFCCF80917F
+:10071000B900887F883111F0803471F780E0089546
+:1007200084E98093BC008091BC0084FDFCCF0895D7
+:100730008093BB0084E88093BC008091BC0087FF5D
+:10074000FCCF9091B900987F81E0983209F480E065
+:10075000089584E88093BC008091BC0087FFFCCFA3
+:100760008091BB00089580910101811115C080E442
+:100770000E946E038093010181110CC082E10E94EE
+:10078000980380930101811105C08FEF0E949803A7
+:10079000809301010E94900384B1807F84B985B168
+:1007A000807F85B98AB1837F8AB98BB1837F8BB90A
+:1007B0003E98469808950E946E05809301010E941C
+:1007C000B30380B38C7080BB81B3836F81BBA5E31F
+:1007D000B1E0E3E4F1E08EE08E0F11921D928E13F2
+:1007E000FCCF0C945805BF92CF92DF92EF92FF920C
+:1007F0000F931F93CF93DF9380910101882379F0AA
+:10080000809134018F5F80933401811108C00E9470
+:100810006E0580930101811102C00E94000505E36D
+:1008200011E0C0E0D0E0DD24D39482E0C82EEE24B5
+:10083000E394F12CC730D10500F5809101018111BD
+:1008400064C080E40E946E0380930101811112C094
+:1008500082E10E9498038093010181110BC0C701BE
+:100860000C2E01C0880F0A94EAF780950E94980325
+:10087000809301010E94900348C0CA30A1F028F47F
+:10088000C83059F0C93061F005C0CC3089F070F043
+:10089000CD3089F0209A289810C0219A29980DC04F
+:1008A000229A2A980AC0239A2B9807C0529A01C00C
+:1008B000539A5B9802C03E9A469890EA9A95F1F74F
+:1008C0009FB1799902C082E001C080E091709D25BE
+:1008D000982B7C9902C084E001C080E0892B7D992F
+:1008E00002C038E001C030E0832B7E9902C020E1D5
+:1008F00001C020E0822B9FB19095991F9927991FE5
+:100900009295990F907E892B0FC0809101018111E2
+:1009100049C080E40E946E0380930101882379F12D
+:10092000B12C0E9490038B2DF8019081981719F03B
+:100930008083C09200010E94B30321960F5F1F4F76
+:10094000CE30D10509F076CF80910001882361F186
+:10095000815080930001882339F08FE99FE001974F
+:10096000F1F700C0000020C0A3E4B1E0E5E3F1E04E
+:10097000CF01825F91919D938E13FCCF15C083E1CF
+:100980000E949803809301018111CACF81E40E94E3
+:100990006E03809301018111C3CF0E94A903B82E79
+:1009A000B094BFCF80E0C0CF0E94FE0481E0DF9111
+:1009B000CF911F910F91FF90EF90DF90CF90BF905C
+:1009C0000895E82FF0E0ED5BFE4F808108950895D3
+:1009D0000F931F93CF93DF93C3E4D1E010E00C2F6C
+:1009E000025F899190E00E949F1B180F0C13F9CFB2
+:1009F000812FDF91CF911F910F9108950C94CE0517
+:100A000056985E9825982D9826982E9827982F9876
+:100A10008FEF90E0909389008093880090938B00F3
+:100A200080938A0090938D0080938C00259A2D9A54
+:100A30002FEF80E792E0215080409040E1F700C026
+:100A40000000269A2E9A2FEF80E792E021508040F6
+:100A50009040E1F700C00000279A2F9A2FEF80E71F
+:100A600092E0215080409040E1F700C000002598BE
+:100A70002D982FEF80E792E0215080409040E1F7E1
+:100A800000C0000026982E982FEF80E792E02150BA
+:100A900080409040E1F700C0000027982F985698BA
+:100AA0005E9825982D9826982E9827982F98089527
+:100AB00089EA8093800089E08093810024982C98B3
+:100AC0003F988AB18F748AB96E98479A8BB1806BC0
+:100AD0008BB9769A0E9400050C94CD0580E2809334
+:100AE00001018091510181110EC00E94680381E0D3
+:100AF000809351012FEF83ED90E32150804090408F
+:100B0000E1F700C0000080E40E946E0380930101C1
+:100B100081112EC00E94980380930101811128C089
+:100B20000E94980380930101811122C08FE30E94EB
+:100B300098038093010181111BC00E94900380E4FF
+:100B40000E946E0380930101811112C08CE00E940B
+:100B500098038093010181110BC00E949803809338
+:100B60000101811105C08FE30E9498038093010168
+:100B70000E94900380910101089561110BC0FC0156
+:100B80008281882321F085EE0E94AE1103C085EE9C
+:100B90000E94761280E090E0089508956091BD0172
+:100BA0007091BE018091BF019091C0010E94AB1B6A
+:100BB00056985E9825982D9826982E9827982F98C5
+:100BC000813019F0823021F00895259A2D9A0895E8
+:100BD000269A2E9A089581E0089581E008950C9454
+:100BE000ED0508950F931F93CF93DF938C01FC01C4
+:100BF000C081D181CE010E94241ABE010E949B06B1
+:100C0000EC01B8010E94EF05882309F48DC0F801BA
+:100C10008281882309F44AC080915D0181111FC03F
+:100C2000C431F0E5DF0709F051C00E94F10581E011
+:100C300080935D010E94431C90935C0180935B0153
+:100C400010925401109256011092550110925801C1
+:100C50001092570110925A011092590165C080916B
+:100C60005B0190915C010E944F1C883C910570F4DF
+:100C700080915401E82FF0E0EE0FFF1FEB5AFE4F7A
+:100C8000D183C0838F5F809354014EC0C43880E508
+:100C9000D80721F0C538D04501F13AC0F80182816A
+:100CA000882341F01092520182E01EC0C438E0E572
+:100CB000DE0759F580915201811106C086E20E943B
+:100CC000AE1186E20E94761282E01CC0C438F0E5C4
+:100CD000DF0741F3C538D045D9F4F8018281882374
+:100CE00031F01092530180E20E94C5121DC0809124
+:100CF0005301811106C087E20E94AE1187E20E9473
+:100D0000761280E20E94CC120FC0C538D04529F37C
+:100D100081E08093520180935301C801DF91CF910C
+:100D20001F910F910C94EB0580E0DF91CF911F9103
+:100D30000F910895089596E0799FF001112494E5AC
+:100D4000899FE00DF11D1124E60FF11DEE0FFF1F2D
+:100D5000E25FFE4F859194910895880F991FFC01E1
+:100D6000E657F040859194910895880F991FFC01F2
+:100D7000E65FFE4F8591949108950F931F93CF9353
+:100D8000DF93EC01811520E3920750F5C11580E255
+:100D9000D80708F0C3C0CB3BD10590F4C83AD105C1
+:100DA00008F06AC0C53AD10508F05BC0C430D1056F
+:100DB00008F0D0C1219709F0CAC101E010E00AC2D1
+:100DC000CF3FD10511F008F0C5C1C03FD10508F0F3
+:100DD000A2C0CE01805E9109089708F4BBC1B7C1DB
+:100DE000C13090E5D90709F4A2C020F5C0318FE4E5
+:100DF000D80770F4C11590E4D90708F094C0C11564
+:100E000021E3D20708F0A3C1DD278E01106CE2C1F7
+:100E1000C115D04509F09BC10E942B158FEF94E3BB
+:100E20002CE0815090402040E1F700C000000E947B
+:100E30009E1CD0C1C11597E5D90758F4C03121E5F2
+:100E4000D20708F01CC1C43180E5D80708F475C08A
+:100E50007EC1CE0190578115904108F078C1DF70B6
+:100E600073C1C53AD10509F477C1C63AD10509F075
+:100E700076C102E810E4AEC1C83AD10509F472C1E6
+:100E8000C93AD10509F471C1CA3AD10509F470C152
+:100E9000CB3AD10509F46FC1CC3AD10509F46EC142
+:100EA000CD3AD10509F46DC1C03BD10509F46CC13F
+:100EB000CE3AD10509F46BC1CF3AD10509F46AC124
+:100EC000C13BD10509F469C1C23BD10509F468C130
+:100ED000C33BD10509F467C1C43BD10509F466C120
+:100EE000C53BD10509F465C1C63BD10509F464C110
+:100EF000C73BD10509F463C1C83BD10509F462C100
+:100F0000C93BD10509F461C1CA3BD10509F460C1EF
+:100F100000E014E45FC18E0110655CC1CE019F70DA
+:100F20000E94B50658C1DF708E01106A53C18091CE
+:100F3000DA0181608093DA014DC10E94431E811164
+:100F400002C00E94291E0E94601E90E09093FB0147
+:100F50008093FA01C23080E5D80721F48091FA012C
+:100F6000816086C0C43090E5D90721F48091FA01F0
+:100F700082607EC0C63020E5D20721F48091FA015C
+:100F8000846076C0C83080E5D80719F48091FA01F2
+:100F900027C0CA3090E5D90721F48091FA01806119
+:100FA00067C0CC3020E5D20721F48091FA0180623D
+:100FB0005FC0CE3080E5D80721F48091FA018064CB
+:100FC00057C0C03190E5D90721F48091FA018068BB
+:100FD0004FC0C23120E5D20729F48091FA01846024
+:100FE000886046C0C33080E5D80721F48091FA01BB
+:100FF0008E7F3EC0C53090E5D90721F48091FA017B
+:101000008D7F36C0C73020E5D20721F48091FA01E8
+:101010008B7F2EC0C93080E5D80719F48091FA0182
+:1010200026C0CB3090E5D90721F48091FA018F7E5C
+:101030001FC0CD3020E5D20721F48091FA018F7DC9
+:1010400017C0CF3080E5D80721F48091FA018F7B5B
+:101050000FC0C13190E5D90721F48091FA018F7753
+:1010600007C0C331D04531F48091FA018B7F877F6F
+:101070008093FA018091FA010E94641EABC08D2F0B
+:1010800099278F70992781309105D9F49E0123709B
+:10109000332702C0880F991F2A95E2F79C688E01BA
+:1010A00044E0000F111F4A95E1F700271370802BD1
+:1010B000912B53E0CC0FDD1F5A95E1F7C076DD2769
+:1010C0002FC08230910531F4DC2FCC278E01016FC7
+:1010D000106A80C08330910569F4CE01837099272E
+:1010E00001E010E002C0000F111F8A95E2F7C8016D
+:1010F0009C680FC084309105B9F4CE0183709927A4
+:1011000001E010E002C0000F111F8A95E2F7C8014C
+:101110009A6823E0CC0FDD1F2A95E1F7C07ED770D7
+:101120008C010C2B1D2B56C08530910531F4DC2F22
+:10113000CC278E01046F106A4DC0069709F04AC093
+:10114000CF71DD27DC2FCC278E01106243C000E079
+:1011500010E040C08E013EC001E810E43BC003E84F
+:1011600010E438C002EE14E435C009EE14E432C0D5
+:101170000AEE14E42FC005EB14E42CC006EB14E4D3
+:1011800029C007EB14E426C00CEC14E423C00DECDA
+:1011900014E420C003E815E41DC00AE815E41AC0F1
+:1011A00002E915E417C004E915E414C001E216E4ED
+:1011B00011C003E216E40EC004E216E40BC005E21F
+:1011C00016E408C006E216E405C007E216E402C011
+:1011D0000AE216E4C801DF91CF911F910F910895A3
+:1011E00096E0799FF001112494E5899FE00DF11DAF
+:1011F0001124E60FF11DEE0FFF1FE25FFE4F8591F8
+:101200009491803E9105E0F4803C910558F581333E
+:10121000910509F46FC048F48932910509F463C05F
+:101220008A32910509F46DC072C089339105E9F0E5
+:1012300082389105D1F08533910509F44DC067C01E
+:10124000833E910581F138F4803E9105B9F0823EEC
+:101250009105D9F05CC0863E910561F1873E91050C
+:10126000A1F155C00E94AD0608952091FA0120FD1C
+:1012700002C021FF4CC080EE90E049C08091FA018D
+:1012800080FFF9CF89E390E042C08091FA0182FFAC
+:101290000EC08091FA0184FF03C080E090E037C067
+:1012A00083EE90E034C08091FA0182FFF2CF82EEAB
+:1012B00090E02DC08091FA0183FF0BC08091FA016C
+:1012C00084FDEBCF87EE90E022C08091FA0183FF8E
+:1012D000F5CF86EE90E01BC08091FA0185FF07C034
+:1012E00089E290E014C08091FA0185FFF9CF85E38F
+:1012F00090E00DC08091FA0186FF07C08AE290E07D
+:1013000006C08091FA0186FFF9CF81E390E00E9448
+:10131000BD06089508950C948A0980916E01089580
+:10132000CF93DF9300D01F92CDB7DEB79C018091A1
+:10133000F101843019F593E099833B832A839093DC
+:10134000E9008FEF9091E800815095FD06C095ED82
+:101350009A95F1F700008111F5CF8091E80085FFA3
+:101360000DC040E050E063E070E0CE0101960E94C5
+:10137000FA0B8091E8008E778093E8000F900F9031
+:101380000F90DF91CF910895CF93DF9300D01F92FC
+:10139000CDB7DEB72091F101243021F522E0298379
+:1013A0009B838A8383E08093E9008FEF9091E8002C
+:1013B000815095FD06C095ED9A95F1F700008111D9
+:1013C000F5CF8091E80085FF0DC040E050E063E07C
+:1013D00070E0CE0101960E94FA0B8091E8008E77B2
+:1013E0008093E8000F900F900F90DF91CF910895B8
+:1013F0002091F1012430F1F422E02093E9002FEF55
+:101400003091E800215035FD06C035ED3A95F1F7F1
+:1014100000002111F5CF2091E80025FF0BC040E02E
+:1014200050E065E070E00E94FA0B8091E8008E7752
+:101430008093E8000895CF93DF93EC019091F10140
+:10144000943009F046C080910C018823D9F0809136
+:101450000D018823B9F09093E9008FEF9091E80097
+:10146000815095FD06C095E19A95F1F70000811134
+:10147000F5CF8091E80085FF2CC040E050E060E1AE
+:1014800070E017C081E08093E9008FEF9091E80051
+:10149000815095FD06C095ED9A95F1F700008111F8
+:1014A000F5CF8091E80085FF14C040E050E068E08F
+:1014B00070E0CE010E94FA0B8091E8008E77809355
+:1014C000E80080E1FE01AEE5B1E001900D928A9561
+:1014D000E1F7DF91CF9108958091F001811109C06A
+:1014E0000E948F0D0E94EC0D8091E2008460809339
+:1014F000E20008951092F001089508950C94D3220B
+:101500000E94341C0E94D9220E9492100C948B09D4
+:1015100042E061EC81E00E94090D42E061EC82E072
+:101520000E94090D42E061EC83E00E94090D42E156
+:1015300061EC84E00C94090D8091F301833009F48F
+:1015400055C030F4813071F0823009F48EC00895B6
+:101550008A3009F47AC08B3009F460C0893009F010
+:101560009CC020C08091F201813A09F096C0809120
+:10157000E800877F8093E8008091F6019091F70161
+:10158000892B21F460E18EE591E003C060E080E00A
+:1015900090E070E00E94450C8091E8008B7780938A
+:1015A000E80008958091F201813209F076C08091BF
+:1015B000F6019091F701009719F0039709F06DC0BB
+:1015C0008091E800877F8093E8008091E80082FDA9
+:1015D00005C08091F1018111F8CF5FC08091F100C9
+:1015E00080936E018091E8008B7753C08091F20167
+:1015F000813A09F052C08091F6019091F701892B50
+:1016000009F04BC08091E800877F8093E8008091CB
+:10161000E80080FFFCCF80910C0136C08091F20180
+:101620008132D9F58091F6019091F701892BA9F5C6
+:101630008091E800877F8093E8000E943E0D8091B2
+:10164000F40180930C010C942B158091F2018132EE
+:1016500021F58091E800877F8093E8000E943E0D8D
+:101660008091F50180936F0108958091F201813A94
+:10167000A1F48091E800877F8093E8008091E800E2
+:1016800080FFFCCF80916F018093F1008091E80092
+:101690008E778093E8000C943E0D089584B7877F81
+:1016A00084BF88E10FB6F8948093600010926000C8
+:1016B0000FBE90E080E80FB6F8948093610090939D
+:1016C00061000FBE0E94E1100E948F0D0E94EC0D80
+:1016D0008091E20084608093E20078940E9472100E
+:1016E0000E94E31082E091E00E948D100E94C122CE
+:1016F0008091F101853069F40E94FB1B8091EF011C
+:101700008823B1F30E94261C882391F30E94E40BE6
+:10171000EFCF0E94E910ECCF292F3327233031057A
+:10172000C9F064F42130310581F02230310509F02F
+:1017300043C08DE690E02AE834E042C02132310512
+:10174000F1F02232310541F137C082E190E027EF1C
+:1017500034E036C099278130910541F082309105FF
+:1017600041F0892B49F5E6E8F4E005C0EEE6F4E047
+:1017700002C0E6E5F4E0849190E09F0121C064306E
+:10178000D8F4E62FF0E0EE0FFF1FEE5DFE4F208154
+:10179000318189E090E014C0643070F470E0FB01A6
+:1017A000EE0FFF1FE65EFE4F20813181FB01EA5EF6
+:1017B000FE4F808190E004C080E090E020E030E0C7
+:1017C000FA0131832083089580E189BD82E189BDDA
+:1017D00009B400FEFDCF8091D8008F7D8093D800A2
+:1017E0008091E00082608093E0008091E00081FDC4
+:1017F000FCCF0895CF92DF92EF92FF920F931F9349
+:10180000CF93DF93EC018B016A010E945D0D811182
+:1018100033C0C114D10439F0F60180819181081BD5
+:10182000190BC80FD91FE12CF12C0115110519F165
+:101830008091E80085FD16C08091E8008E77809346
+:10184000E800C114D10449F0F60180819181E80ECD
+:10185000F91EF182E08285E00FC00E945D0D8823B1
+:1018600021F30AC089918093F10001501109FFEF23
+:10187000EF1AFF0ADACF80E0DF91CF911F910F912D
+:10188000FF90EF90DF90CF9008952091F801309174
+:10189000F9012617370748F06115710539F42091D1
+:1018A000E8002E772093E80001C0B90140E06115FF
+:1018B0007105A9F12091F101222309F443C02530DB
+:1018C00009F442C02091E80023FD40C02091E800C7
+:1018D00022FD32C02091E80020FFE9CF4091F300C3
+:1018E0002091F20030E0342BFC01CF01611571052D
+:1018F00059F02830310540F481918093F100615016
+:1019000071092F5F3F4FF1CF41E02830310509F0D9
+:1019100040E02091E8002E772093E800C8CF4111E5
+:10192000C9CF0AC08091F101882361F0853061F050
+:101930008091E80083FD0AC08091E80082FFF2CF29
+:1019400080E0089582E0089583E0089581E008959D
+:101950002091F8013091F9012617370748F06115F9
+:10196000710539F42091E8002E772093E80001C03A
+:10197000B901FC0120E06115710591F18091F1013F
+:10198000882309F440C0853009F43FC08091E80005
+:1019900083FD3DC08091E80082FD2FC08091E8006A
+:1019A00080FFE9CF2091F3008091F20090E0922B2C
+:1019B0006115710559F08830910540F42491209308
+:1019C000F1003196615071090196F2CF21E008973C
+:1019D00009F020E08091E8008E778093E800CBCF7B
+:1019E0002111CCCF0AC08091F101882361F08530AC
+:1019F00061F08091E80083FD0AC08091E80082FFD9
+:101A0000F2CF80E0089582E0089583E0089581E0B8
+:101A10000895982F973058F59093E900981739F06A
+:101A20007091EC002091ED005091F00003C0242F44
+:101A3000762F50E021FF19C03091EB003E7F3093AC
+:101A4000EB003091ED003D7F3093ED003091EB00E5
+:101A500031603093EB007093EC002093ED005093D5
+:101A6000F0002091EE0027FF07C09F5FD3CF8F705B
+:101A70008093E90081E0089580E008958091F2016B
+:101A800087FF11C08091E80082FD05C08091F101BF
+:101A90008111F8CF11C08091E8008B770BC0809145
+:101AA000F101882349F08091E80080FFF8CF809110
+:101AB000E8008E778093E80008952091E40030914B
+:101AC000E50095E64091EC00842F817040FF22C034
+:101AD0008091E80080FD1CC08091F101882391F085
+:101AE000853091F08091EB0085FD10C04091E400BD
+:101AF0005091E5004217530729F39A01915011F7CD
+:101B000084E0089582E0089583E0089581E00895D7
+:101B100080E008954091E80042FFDECF08950E94E2
+:101B2000FD0D0E94050EE0EEF0E080818160808373
+:101B3000E8EDF0E080818F77808319BCA7EDB0E0FD
+:101B40008C918E7F8C9380818F7E80831092F001A8
+:101B500008950F931F93CF93DF930E94FD0D0E9472
+:101B6000050EC8EDD0E088818F77888388818068F2
+:101B7000888388818F7D888319BC1092F10110922F
+:101B8000ED011092EF011092EE0100EE10E0F8016D
+:101B900080818B7F808388818160888342E060E0E0
+:101BA00080E00E94090DE1EEF0E080818E7F80836D
+:101BB000E2EEF0E0808181608083808188608083B4
+:101BC000F80180818E7F8083888180618883DF91A6
+:101BD000CF911F910F910895E8EDF0E080818F7E05
+:101BE0008083E7EDF0E080818160808384E082BFC4
+:101BF00081E08093F0010C94A90DE8EDF0E0808184
+:101C00008E7F80831092E20008951092DA00109285
+:101C1000E10008951F920F920FB60F9211242F9397
+:101C20003F934F935F936F937F938F939F93AF9364
+:101C3000BF93EF93FF938091E10082FF0BC08091EF
+:101C4000E20082FF07C08091E1008B7F8093E1007A
+:101C50000E9471108091DA0080FF1FC08091D8002F
+:101C600080FF1BC08091DA008E7F8093DA00809124
+:101C7000D90080FF0DC080E189BD82E189BD09B432
+:101C800000FEFDCF81E08093F1010E946C0A05C047
+:101C900019BC1092F1010E947A0A8091E10080FF44
+:101CA00019C08091E20080FF15C08091E2008E7F14
+:101CB0008093E2008091E20080618093E200809155
+:101CC000D80080628093D80019BC85E08093F10130
+:101CD0000E947E0A8091E10084FF30C08091E20082
+:101CE00084FF2CC080E189BD82E189BD09B400FE7A
+:101CF000FDCF8091D8008F7D8093D8008091E10046
+:101D00008F7E8093E1008091E2008F7E8093E200DD
+:101D10008091E20081608093E2008091ED01882350
+:101D200011F084E007C08091E30087FD02C081E0EC
+:101D300001C083E08093F1010E94800A8091E1005C
+:101D400083FF29C08091E20083FF25C08091E100DC
+:101D5000877F8093E10082E08093F1011092ED0192
+:101D60008091E1008E7F8093E1008091E2008E7F80
+:101D70008093E2008091E20080618093E20042E083
+:101D800060E080E00E94090D8091F00088608093FF
+:101D9000F0000E947D0AFF91EF91BF91AF919F915A
+:101DA0008F917F916F915F914F913F912F910F9004
+:101DB0000FBE0F901F9018951F920F920FB60F92A3
+:101DC00011242F933F934F935F936F937F938F9340
+:101DD0009F93AF93BF93CF93DF93EF93FF93C09104
+:101DE000E900CF708091EC00D82FD17080FDD0E851
+:101DF0001092E9008091F000877F8093F000789442
+:101E00000E94200F1092E9008091F000886080937A
+:101E1000F000CD2BCF70C093E900FF91EF91DF91DF
+:101E2000CF91BF91AF919F918F917F916F915F9172
+:101E30004F913F912F910F900FBE0F901F901895CB
+:101E40001F93CF93DF93CDB7DEB7AA970FB6F89461
+:101E5000DEBF0FBECDBFE2EFF1E088E08E0F9091C4
+:101E6000F10091938E13FBCF0E949C0A8091E800B1
+:101E700083FF1FC18091F2019091F301492F50E03F
+:101E80004A30510508F015C1FA01EA5AFF4F0C9487
+:101E90005B24803881F0823809F00BC18091F60113
+:101EA0008F708093E9008091EB0085FB882780F993
+:101EB0001092E90006C08091EE019091EF0191111E
+:101EC00082609091E800977F9093E8008093F10002
+:101ED0001092F100C8C0282F2D7F09F0EAC0882396
+:101EE00019F0823061F0E5C08091F401813009F091
+:101EF000E0C0933009F080E08093EF012BC0809127
+:101F0000F401811127C08091F6018F7009F4D1C0CE
+:101F10008093E9002091EB0020FF1CC0933021F456
+:101F20008091EB00806214C09091EB0090619093DF
+:101F3000EB0021E030E0A90102C0440F551F8A9553
+:101F4000E2F74093EA001092EA008091EB0088608B
+:101F50008093EB001092E9008091E800877F86C0B3
+:101F60008111A7C01091F4011F778091E300807860
+:101F7000812B8093E3008091E800877F8093E800C5
+:101F80000E943E0D8091E80080FFFCCF8091E3002D
+:101F900080688093E300111102C082E001C083E0F9
+:101FA0008093F10186C08058823008F082C0809111
+:101FB000F4019091F5018C3D53E0950779F583E0AC
+:101FC0008A838AE289834FB7F894DE01139620E072
+:101FD0003EE051E2E32FF0E050935700E49120FF00
+:101FE00003C0E295EF703F5FEF708E2F90E0EA3014
+:101FF00010F0C79601C0C0968D939D932F5F24313A
+:1020000049F74FBF8091E800877F8093E8006AE23C
+:1020100070E0CE0101960E94450C14C0AE014F5FE6
+:102020005F4F6091F6010E948C0BBC01009709F490
+:1020300040C09091E800977F9093E80089819A8151
+:102040000E94A80C8091E8008B778093E80031C053
+:10205000803879F58091E800877F8093E80080914F
+:10206000ED018093F1008091E8008E778093E80085
+:102070000E943E0D1EC081111CC09091F40192304F
+:10208000C0F48091E800877F8093E8009093ED0191
+:102090000E943E0D8091ED01811106C08091E30008
+:1020A00087FD02C081E001C084E08093F1010E94BD
+:1020B000880A8091E80083FF0AC08091E800877F4A
+:1020C0008093E8008091EB0080628093EB00AA96F9
+:1020D0000FB6F894DEBF0FBECDBFDF91CF911F9139
+:1020E00008950895CF938091F1018823A1F0C091C4
+:1020F000E900CF709091EC00892F817090FD80E80D
+:10210000C82B1092E9008091E80083FD0E94200F07
+:10211000CF70C093E900CF9108959093750180939B
+:1021200074010895E0917401F0917501309721F0E8
+:102130000190F081E02D099480E00895E091740110
+:10214000F0917501309721F00280F381E02D099420
+:102150000895E0917401F0917501309721F00480A9
+:10216000F581E02D09940895209172013091730159
+:102170008217930771F09093730180937201E0913D
+:102180007401F0917501309721F00680F781E02D00
+:10219000099408952091700130917101821793077D
+:1021A00071F09093710180937001E0917401F0914E
+:1021B0007501309721F00084F185E02D0994089590
+:1021C00008950C94E0100E943A1C0E94DB030C94CA
+:1021D000FC1C9F92AF92BF92CF92DF92EF92FF9240
+:1021E0000F931F93CF93DF9300D000D000D0CDB7D3
+:1021F000DEB70E94F3030DE010E0AA24A394B12CF3
+:10220000902E802F0E94E104980129583E4F6901C9
+:10221000F901F080F826A1F40150110988F78FEF39
+:1022200089838A831B820E94431C8160782F9D834F
+:102230008C8349815A816B818D810E9480112FC0CE
+:102240009091DA0191FF04C08E830E94E7048E8191
+:1022500025E030E0A501022E01C0440F0A94EAF700
+:10226000E42E4F21C1F029839A828E2191E009F456
+:1022700090E09B830E94431C8160782F9D838C8318
+:1022800049815A816B818D810E948011F601808184
+:10229000E826E08204C021503109E0F6BDCF0E945B
+:1022A000E31F109176010E9492101817B9F00E9456
+:1022B00092108093760126960FB6F894DEBF0FBE7B
+:1022C000CDBFDF91CF911F910F91FF90EF90DF90E5
+:1022D000CF90BF90AF909F900C948B0926960FB62D
+:1022E000F894DEBF0FBECDBFDF91CF911F910F914C
+:1022F000FF90EF90DF90CF90BF90AF909F900895A8
+:10230000CF93DF93CDB7DEB72B970FB6F894DEBF30
+:102310000FBECDBF4F83588769877A878B87DE01D1
+:10232000119686E0FD0111928A95E9F785E0FE019C
+:10233000379601900D928A95E1F749815A816B8118
+:102340007C818D819E810E94C9172B960FB6F894CF
+:10235000DEBF0FBECDBFDF91CF910895CF9388230D
+:1023600009F4C2C0C82F823859F40E94921081FD2E
+:10237000BBC089E30E94A31A0E94701B89E30CC0B2
+:10238000833879F40E94921080FDAEC083E50E94EC
+:10239000A31A0E94701B83E50E94E51ACF910C944A
+:1023A000701B843859F40E94921082FD9DC087E40E
+:1023B0000E94A31A0E94701B87E4EECF8CEF8C0F53
+:1023C000813A48F48C2F0E94262281118DC08C2FD7
+:1023D0000E94A31AE3CF80E28C0F883048F4C770C4
+:1023E00081E001C0880FCA95EAF70E94291BD6CF69
+:1023F0008BE58C0F833078F4C53A29F0C63A31F07A
+:1024000083E890E005C081E890E002C082E890E0B7
+:10241000CF910C94B41088E58C0F833108F064C020
+:10242000C83A39F1C93A41F1CA3A49F1CB3A51F1C6
+:10243000CC3A59F1CD3A61F1C03B69F1CE3A71F134
+:10244000CF3A79F1C13B81F1C23B89F1C33B91F1B4
+:10245000C43B99F1C53BA1F1C63BA9F1C73BB1F122
+:10246000C83BB9F1C93BC1F1CA3BC9F180E090E07A
+:1024700038C082EE90E035C089EE90E032C08AEE3E
+:1024800090E02FC085EB90E02CC086EB90E029C057
+:1024900087EB90E026C08CEC90E023C08DEC90E0C0
+:1024A00020C083E891E01DC08AE891E01AC082E96B
+:1024B00091E017C084E991E014C081E292E011C07C
+:1024C00083E292E00EC084E292E00BC085E292E0EB
+:1024D00008C086E292E005C087E292E002C08AE28C
+:1024E00092E0CF910C94CA10CF910895882309F4FB
+:1024F0004BC0823859F40E94921081FF45C089E395
+:102500000E94A31A0E94701B89E30CC0833871F4E7
+:102510000E94921080FF38C083E50E94A31A0E9497
+:10252000701B83E50E94E51A0C94701B843859F4E3
+:102530000E94921082FF28C087E40E94A31A0E9482
+:10254000701B87E4EFCF9CEF980F913A58F390E21D
+:10255000980F983050F4877091E001C0990F8A95D8
+:10256000EAF7892F0E942F1BDFCF9BE5980F93304E
+:1025700020F480E090E00C94B410885A833120F469
+:1025800080E090E00C94CA100895882321F00E9406
+:10259000291B0C94701B0895882321F00E942F1B87
+:1025A0000C94701B08957F928F929F92AF92BF926E
+:1025B000CF92DF92EF92FF920F931F93CF93DF930F
+:1025C0001F92CDB7DEB77C01C62E772EFC010581A8
+:1025D00002950F70128111110E94461B0E949C1AD5
+:1025E000882379F0112369F080E28C0D883048F05F
+:1025F00082E00E94851A0E949C1A91E0D82ED9266A
+:1026000001C0D12CE72DE295EF70F0E0E05AFF4FCA
+:102610000C945B24872D807F072D0F70882311F089
+:102620000295007F112389F0002309F490C180E214
+:102630008C0D883020F4802F0E94291B03C0802F2E
+:102640000E94391B0E94701B82C18C2D0E94761241
+:10265000002309F495C180E28C0D883020F4802F8E
+:102660000E942F1B03C0802F0E943F1B0E94701BE3
+:1026700087C1972D907F872D8F70903211F08295B2
+:10268000807FCC2021F0F1E0CF16B1F01EC01123E5
+:1026900049F0002309F414C1013009F011C10E946E
+:1026A000591B6EC1002319F0013009F469C18983F7
+:1026B0000E945C1B89810AC1112321F0023008F0BD
+:1026C0005FC1FEC001115CC101C1112321F00023D3
+:1026D00009F4F6C03CC1002309F4F8C03EC1872DBF
+:1026E00086958695837090E0009719F0019761F0C8
+:1026F00047C1112321F08C2D972D937002C080E0EB
+:1027000090E00E94B4103CC1112321F08C2D972D34
+:10271000937002C080E090E00E94CA1031C18C2DFD
+:10272000112319F00E94EB1E02C00E94531F0E9449
+:10273000D81F26C1872D837009F052C0111120C106
+:102740008C2D829586958770880F880F9C2D9F70A1
+:10275000892E912CA12CB12C082E04C0880C991C18
+:10276000AA1CBB1C0A94D2F7C4FE14C00FE010E0F0
+:1027700020E030E0B901A80104C0440F551F661FD6
+:10278000771F8A95D2F7CB01BA0160957095809535
+:10279000909503C060E070E0CB01272D269526952B
+:1027A000237030E02230310569F02330310589F0A3
+:1027B000682979298A299B292130310571F00E94E5
+:1027C0001119DEC0682979298A299B290E942D19AF
+:1027D000D7C00E941119C501B4010E94F518D0C0DC
+:1027E000112319F0872D817001C08695882309F483
+:1027F000C7C08C2D829586958770880F880F9C2D79
+:102800009F70892E912CA12CB12C082E04C0880C0D
+:10281000991CAA1CBB1C0A94D2F7C4FE14C00FE07A
+:1028200010E020E030E0B901A80104C0440F551FBA
+:10283000661F771F8A95D2F7CB01BA016095709514
+:102840008095909503C060E070E0CB01272D269520
+:1028500026952370422F50E04230510569F04330F5
+:10286000510589F0682979298A299B294130510528
+:1028700071F00E94EB1984C0682979298A299B2963
+:102880000E94071A7DC00E94EB19C501B4010E9485
+:10289000CF1976C08C2D90E0FC01E05EF109E531A6
+:1028A000F10508F050C0E059FF4F0C945B240C2D4B
+:1028B0000F70872D8F71112331F00E946819802FBE
+:1028C0000E94C5125DC00E948919802F0E94CC12FF
+:1028D00057C0112339F0011153C0872D8F710E9409
+:1028E000AE194EC0023008F04BC0F7CF112339F0BB
+:1028F000872D8F710E94681943C01123C9F3872D5A
+:102900008F710E9489193CC0112329F0872D8F7186
+:102910000E94531935C00E94491932C0112351F049
+:10292000172D1F71812F0E94681963E0812F0E946B
+:102930007C1A26C081E00E94851A023008F182E0EC
+:102940000E94851A1DC0112331F0002389F28C2DBD
+:102950000E94AE1115C0002391F28C2D0E947612B8
+:102960000FC0472D4F706C2DC7010E94BD050E94FE
+:102970006D1806C0472D4F706C2DC7010E949A0636
+:10298000DD20F9F00E94781A80FD1BC0F701128249
+:102990000E94721A0E946819C7010E94F0140E94D6
+:1029A000721A0F90DF91CF911F910F91FF90EF90CE
+:1029B000DF90CF90BF90AF909F908F907F900C94BE
+:1029C00089190F90DF91CF911F910F91FF90EF9098
+:1029D000DF90CF90BF90AF909F908F907F900895A1
+:1029E0000F931F93CF93DF93EC01888199812B8103
+:1029F0003C81232BB9F09F3F11F48F3F99F0CE011A
+:102A00000E94F205882371F0688179818A810E9491
+:102A10006E1A8C010E94231A0E94EA18B801CE0196
+:102A20000E94D312DF91CF911F910F9108950E94C0
+:102A3000461B0E94561B0E941B1B0E94701B0E947B
+:102A400089200E94D81F80E090E00E94B41080E0AE
+:102A500090E00C94CA100E94361B0C9417150E942B
+:102A6000631A292F22952F7030E02C3031054CF459
+:102A70002A3031056CF42250310922303105A8F496
+:102A800007C02C30310569F02F30310551F00DC0F1
+:102A9000803F69F018F4803E40F409C0843F29F477
+:102AA00006C093FB882780F9089580E0089581E0AF
+:102AB0000895CF93DF9300D000D01F92CDB7DEB73B
+:102AC0000F900F900F900F900F90DF91CF9108957E
+:102AD000CF93DF9300D000D000D0CDB7DEB72696DD
+:102AE0000FB6F894DEBF0FBECDBFDF91CF91089532
+:102AF0001F93CF93DF93C091850116E080918601EB
+:102B0000C81799F0D0E01C9FF0011D9FF00D112413
+:102B1000E957FE4F408151816281738184819581A3
+:102B20000E9468152196C770E9CFDF91CF911F9160
+:102B300008954091B7015091B8016091B901709129
+:102B4000BA018091BB019091BC010C9468158091F1
+:102B5000BC0182958F7009F054C08091B90188231F
+:102B600009F44FC080918501A09186016091B70161
+:102B70007091B8014091BA015091BB01B6E08A173B
+:102B800009F43FC090E041155105C1F17F3F11F4B8
+:102B90006F3FA1F1B89FF001B99FF00D1124E957E3
+:102BA000FE4F218172132AC02081621327C0228127
+:102BB000211124C0238134812417350710F42150BA
+:102BC0003109241B350B283C3105C0F42091BC0190
+:102BD0002F7020612093BC0126E0289FF001299FDF
+:102BE000F00D1124E457FE4F80818F708061808347
+:102BF00087EB91E00E94F0140C9478150196877091
+:102C0000BECF0895CF92DF92EF92FF920F931F9362
+:102C1000CF93DF93CDB7DEB762970FB6F894DEBFE0
+:102C20000FBECDBF8C0185E0F801DE011D9601903D
+:102C30000D928A95E1F7D8014C9111965C9111970C
+:102C400012966C9112971396CD90DC901497309158
+:102C5000B7017091B8018091BA019091BB010097C2
+:102C600009F46BC17F3F19F43F3F09F466C1E0905E
+:102C7000B901EE2009F4C0C02091BC01C816D906E4
+:102C800028F0F601E81BF90BCF0104C08095909560
+:102C90008C0D9D1DFF24F394883C910578F0F12C58
+:102CA000207F09F0C6C07C2DD98AC88A89890E94F4
+:102CB000591587EB91E00E94F014B1C0822F807FFC
+:102CC00009F046C0751314C0341312C0611110C04E
+:102CD0002F7020612093BC010E94991587EB91E031
+:102CE0000E94F0148091BC01D80115968C932EC0DF
+:102CF000CD2819F15F3F11F44F3FF9F0F62E611125
+:102D00001CC0809185012091860136E0821709F46C
+:102D10005AC090E0389FF001399FF00D1124E95717
+:102D2000FE4F7181571306C07081471303C0728133
+:102D3000711103C001968770E9CFF62E662309F45E
+:102D400018C18091BC0181608093BC01F12C11C13C
+:102D5000751308C0341306C0611104C08091BC0112
+:102D6000D801C3C04D875E878D859E856A8B0E9482
+:102D70002F156A898823E1F16623D1F12091BC01E6
+:102D8000822F82958F7090E0029774F08091B70146
+:102D90009091B80198878F831986DB86CA862C8725
+:102DA000CE0107960E94F01486E0F801A7EBB1E08F
+:102DB00001900D928A95E1F70E94A7150E9499153E
+:102DC000FF24F394D6C04D875E878D859E850E9433
+:102DD000631A292F22952F7030E0223031050CF034
+:102DE000BCC09F7009F0B6C0805E883008F4C1C0D6
+:102DF000C8010E94F014E4CFC816D90608F453C0E5
+:102E0000F601E81BF90BCF01883C910508F450C08E
+:102E1000F12C7C2DD98AC88A89890E945915E7EB43
+:102E2000F1E086E0DF011D928A95E9F70E9499158D
+:102E3000A0C0751314C0341312C0611110C080916A
+:102E4000BC01F8018583C8010E94F01486E0E7EB1D
+:102E5000F1E0DF011D928A95E9F7FE2C8AC04D87CB
+:102E60005E878D859E856A8B0E942F156A898823CF
+:102E700009F4BECF662309F4BBCF2091BC01822F99
+:102E800082958F7090E002970CF48ECF8091B701FD
+:102E90009091B8019A8389831B82DD82CC822E8334
+:102EA000CE0101967FCF809590958C0D9D1DACCF66
+:102EB000F62E662309F49CCF75132EC034132CC054
+:102EC0002091BC0120FD1FC0822F82958F70D9F008
+:102ED000D80115962C9315978F3049F08F5F982F56
+:102EE0009295907F822F8F70892B15968C93C801B5
+:102EF0000E94F01486E0F801A7EBB1E001900D927A
+:102F00008A95E1F793CF86E0F801A7EBB1E0019055
+:102F10000D928A95E1F72DC04D875E878D859E8540
+:102F20000E942F15811140CF8091BC018160809358
+:102F3000BC01C8010E94F0141CC0662309F458CFDC
+:102F40004D875E878D859E850E942F15882309F405
+:102F50004FCF2ACF811148CF0CC0243031050CF05F
+:102F600047CF9F7009F440CFF8019581907F09F019
+:102F70003BCF8F2D62960FB6F894DEBF0FBECDBF4C
+:102F8000DF91CF911F910F91FF90EF90DF90CF9045
+:102F900008951F93CF93DF93CDB7DEB72C970FB66D
+:102FA000F894DEBF0FBECDBF4F83588769877A87FD
+:102FB0008B879C87CE0107960E940216882369F0B2
+:102FC0008F8198852A853B85232BF1F19F3F09F05E
+:102FD00063C08F3F09F060C037C086E0FE013796BE
+:102FE000DE01119601900D928A95E1F76F81788547
+:102FF000EA85FB85309741F17F3F11F46F3F21F166
+:103000002091860130E0C90101968770992740918F
+:10301000850150E08417950709F447C069837A83D6
+:10302000FD83EC8396E0929FD001939FB00D112415
+:10303000A957BE4FFE01319601900D929A95E1F786
+:10304000809386010E94781516E080918501909109
+:1030500086018917C1F1189FC001112489579E4F1D
+:103060000E940216882379F1E09185011E9FF001EC
+:103070001124E957FE4F408151816281738184811F
+:1030800095810E9468158091850190E00196877076
+:10309000992780938501D9CF4F81588569857A8595
+:1030A0008B859C850E946815CFCF0E942B151092AE
+:1030B000860110928501E7EBF1E086E0DF011D92C9
+:1030C0008A95E9F7C1CF2C960FB6F894DEBF0FBEF4
+:1030D000CDBFDF91CF911F910895EF92FF920F9393
+:1030E0001F93CF93DF938C01009709F46CC0F12CF0
+:1030F000EE24E394E8012196F8018491843740F4AA
+:10310000843008F051C0813081F0823019F15BC009
+:10311000853709F444C0A8F19CE7980F903708F070
+:1031200052C08F770E94761241C00E5F1F4FFE0182
+:10313000C49180E28C0F883048F4C7708E2D01C096
+:10314000880FCA95EAF70E94491B14C08C2F0E9471
+:10315000AE112DC00E5F1F4FFE01C49180E28C0F97
+:10316000883058F4C7708E2D01C0880FCA95EAF7D1
+:103170000E944F1B0E94701B1AC08C2F0E94761257
+:1031800016C00E5F1F4FFE01C491CC2381F08FE962
+:103190009FE00197F1F700C00000C150F6CF0E5F2D
+:1031A0001F4FFE01F49003C00E94AE118E018F2DBF
+:1031B000882309F49FCFEFE9FFE03197F1F700C0D2
+:1031C00000008150F5CFDF91CF911F910F91FF90BB
+:1031D000EF90089508956093C1017093C2018093A8
+:1031E000C3019093C4010C9417150F931F93009182
+:1031F000C1011091C2012091C3013091C401DC01D1
+:10320000CB01802B912BA22BB32B8093C1019093E8
+:10321000C201A093C301B093C4011F910F910C94FC
+:1032200017150F931F930091C1011091C2012091B6
+:10323000C3013091C401DC01CB0180239123A2237F
+:10324000B3238093C1019093C201A093C301B093B3
+:10325000C4011F910F910C9417150F931F930091A8
+:10326000C1011091C2012091C3013091C401DC0160
+:10327000CB0180279127A227B3278093C101909388
+:10328000C201A093C301B093C4011F910F910C948C
+:1032900017151092BD011092BE011092BF0110923D
+:1032A000C0010C94171541E050E060E070E004C0EC
+:1032B000440F551F661F771F8A95D2F74093BD01B3
+:1032C0005093BE016093BF017093C0010C94171519
+:1032D00041E050E060E070E004C0440F551F661FFD
+:1032E000771F8A95D2F78091BD019091BE01A09180
+:1032F000BF01B091C001482B592B6A2B7B2B409307
+:10330000BD015093BE016093BF017093C0010C9446
+:10331000171541E050E060E070E004C0440F551F15
+:10332000661F771F8A95D2F74095509560957095E6
+:103330008091BD019091BE01A091BF01B091C001EB
+:10334000482359236A237B234093BD015093BE0138
+:103350006093BF017093C0010C94171541E050E0D9
+:1033600060E070E004C0440F551F661F771F8A9508
+:10337000D2F78091BD019091BE01A091BF01B091A3
+:10338000C001482759276A277B274093BD015093E6
+:10339000BE016093BF017093C0010C9417150F9389
+:1033A0001F930091BD011091BE012091BF0130918A
+:1033B000C001DC01CB01802B912BA22BB32B80937E
+:1033C000BD019093BE01A093BF01B093C0011F91B6
+:1033D0000F910C9417150F931F930091BD0110913D
+:1033E000BE012091BF013091C001DC01CB018023DF
+:1033F0009123A223B3238093BD019093BE01A09398
+:10340000BF01B093C0011F910F910C9417150F933A
+:103410001F930091BD011091BE012091BF01309119
+:10342000C001DC01CB0180279127A227B32780931D
+:10343000BD019093BE01A093BF01B093C0011F9145
+:103440000F910C9417150895CF92DF92EF92FF928F
+:103450000F931F93CF93DF938C01C090C101D09045
+:10346000C201E090C301F090C4018091BD01909130
+:10347000BE01A091BF01B091C001C82AD92AEA2A91
+:10348000FB2ACFE1D0E0D701C6010C2E04C0B695CF
+:10349000A795979587950A94D2F780FF06C0B80143
+:1034A0008C2F0E94F008019721F4219760F780E0AB
+:1034B00001C08C2FDF91CF911F910F91FF90EF9062
+:1034C000DF90CF900895CF93DF93EC010E94241AF0
+:1034D000BE010E94F008DF91CF910895CB010E94B8
+:1034E000631A08958091C501859585958595089500
+:1034F0008091C5018770089598E0899F90011124FB
+:10350000262B2093C5010C9468192091C501809544
+:1035100082238093C501982F977069F430E0482F7B
+:10352000552747FD50952417350729F08595859532
+:1035300085950C94891908959091C501977081E043
+:1035400009F480E0089590910C01992321F0909165
+:103550000D01911109C020910E0130910F01F90167
+:1035600032969FEF40E01FC0982F969596959695BE
+:103570009F3050F5E0910E01F0910F01E90FF11D20
+:10358000877021E030E0A90102C0440F551F8A95E1
+:10359000E2F7CA019181892B818308959F3F39F019
+:1035A0004F5F4E3041F051915813F8CF0DC051117B
+:1035B000F7CF942FF5CF9F3F39F0F901E90FF11DB7
+:1035C00097FDFA9582830895089590910C019923AF
+:1035D00021F090910D01911109C020910E013091BF
+:1035E0000F01F9013296205F3F4F1FC0982F96952B
+:1035F000969596959F30F0F4E0910E01F0910F01B1
+:10360000E90FF11D877021E030E0A90102C0440FED
+:10361000551F8A95E2F7CA0180959181892381839C
+:1036200008953196E217F30729F090819813F9CFA6
+:103630001082F7CF089581E090E0E0910E01F091C3
+:103640000F01E80FF91F1082019680319105A9F74B
+:1036500008959091D901892B8093D901089580957F
+:103660009091D90189238093D90108951092D901AD
+:1036700008959091D801892B8093D8010895809561
+:103680009091D80189238093D80108951092D80190
+:1036900008959091D701892B8093D7010895809543
+:1036A0009091D70189238093D70108951092D70173
+:1036B00008958093C60108951092C60108958091DF
+:1036C0000E0190910F01FC0131969C01205F3F4F4C
+:1036D00080E0919191118F5FE217F307D1F7089580
+:1036E000E0910E01F0910F018091D9018083E0916A
+:1036F0000E01F0910F0190818091D801892B808378
+:10370000E0910E01F0910F0190818091D701892BFA
+:1037100080838091C601882361F0E0910E01F091D1
+:103720000F019081892B80830E945F1B8111109271
+:10373000C60180910E0190910F010C949E1020E023
+:10374000009739F0AC0141505109842395232F5F34
+:10375000F7CF822F0895CF92DF92EF92FF926C0104
+:10376000EE24FF24C114D104E104F10421F0C701C7
+:10377000B60120E101C020E0C72ED82EE92EFF249B
+:10378000C114D104E104F10419F0285FC701B601A6
+:103790006B017C0154E0F694E794D794C7945A9552
+:1037A000D1F7C114D104E104F10419F02C5FC70171
+:1037B000B6016B017C0142E0F694E794D794C7947C
+:1037C0004A95D1F7C114D104E104F10419F02E5F38
+:1037D000C701B601DC01CB01B695A79597958795F2
+:1037E000892B8A2B8B2B09F02F5F822FFF90EF9074
+:1037F000DF90CF9008958091F101843021F11092F3
+:10380000DB0120E488E190E00FB6F894A89580935E
+:1038100060000FBE2093600080E00E948B0983B798
+:10382000817F846083BF83B7816083BF78948895EC
+:1038300083B78E7F83BF88E10FB6F89480936000D2
+:10384000109260000FBE0895089508950E94241CF0
+:103850000E94F3030E94251C0E94E80491E081115C
+:1038600001C090E0892F08950E942B150E949210AC
+:103870000C948B0982E084BD93E095BD9AEF97BDCF
+:1038800080936E0008952FB7F8948091DC01909199
+:10389000DD01A091DE01B091DF012FBF0895CF922D
+:1038A000DF92EF92FF920F931F932FB7F8944091FE
+:1038B000DC015091DD016091DE017091DF012FBFCD
+:1038C0006A017B01EE24FF248C0120E030E0C01669
+:1038D000D106E206F30610F4415051099A01281B63
+:1038E000390BC9011F910F91FF90EF90DF90CF909E
+:1038F00008951F920F920FB60F9211248F939F93EA
+:10390000AF93BF938091DC019091DD01A091DE0126
+:10391000B091DF010196A11DB11D8093DC01909350
+:10392000DD01A093DE01B093DF01BF91AF919F91C4
+:103930008F910F900FBE0F901F9018950E948F0DC2
+:10394000F8942FEF87EA91E6215080409040E1F70C
+:1039500000C0000087E090EBDC018093FB019093B6
+:10396000FC01A093FD01B093FE019CE088E10FB63D
+:10397000F894A895809360000FBE90936000FFCFED
+:10398000EF92FF920F931F93CF93DF93D82FCDE049
+:103990008C2F0E94E10405E010E0E82EF12CC70115
+:1039A000002E02C0959587950A94E2F780FF09C022
+:1039B000602F7C2F80E00E949B06D81302C081E01C
+:1039C00006C00150110958F7C15010F780E0DF918F
+:1039D000CF911F910F91FF90EF900895CF93C82F33
+:1039E0008CE20E94C01C882321F08C2FCF910C9474
+:1039F000C01C80E0CF910895CF930E94431E811197
+:103A000002C00E94291EC5E6C15049F00E94F3037E
+:103A10008FE39CE90197F1F700C00000F5CF89E240
+:103A20000E94EE1C811113C18AE20E94EE1C8111DA
+:103A30000E94291E85E00E94EE1C81110E949E1C9E
+:103A40000E944E1E8093DA0187E00E94EE1C8823BC
+:103A5000A9F18BE10E94EE1C882351F08091DA01DC
+:103A600081FB222720F991E0922790FB81F90EC07B
+:103A70008EE00E94EE1C882361F08091DA0182FBC7
+:103A8000222720F991E0922790FB82F98093DA01B6
+:103A900015C080E10E94EE1C9091DA01882341F06C
+:103AA00093FB222720F981E0822780FB93F904C051
+:103AB000892F809580FB90F99093DA018091DA014B
+:103AC0000E94521E0E94601E8093FA0180EE0E94A6
+:103AD000EE1C882341F08091FA01982F909590FB7D
+:103AE00080F98093FA0189E30E94EE1C882359F043
+:103AF0008091FA0181FB222720F991E0922790FB27
+:103B000081F98093FA0182EE0E94EE1C882359F01D
+:103B10008091FA0182FB222720F991E0922790FB05
+:103B200082F98093FA0186EE0E94EE1C882359F0F8
+:103B30008091FA0183FB222720F991E0922790FBE4
+:103B400083F98093FA0183EE0E94EE1C882359F0DA
+:103B50008091FA0184FB222720F991E0922790FBC3
+:103B600084F98093FA0185E30E94EE1C882359F0C2
+:103B70008091FA0185FB222720F991E0922790FBA2
+:103B800085F98093FA0181E30E94EE1C882359F0A5
+:103B90008091FA0186FB222720F991E0922790FB81
+:103BA00086F98093FA0181E10E94EE1C882359F086
+:103BB0008091FA0187FB222720F991E0922790FB60
+:103BC00087F98093FA018091FA010E94641E809126
+:103BD000FA0187FB882780F980930D0187E20E9414
+:103BE000EE1CC82F8EE10E94EE1C8111C2608FE195
+:103BF0000E94EE1C8111C46080E20E94EE1C8111C3
+:103C0000C86081E20E94EE1C8111C06182E20E94C4
+:103C1000EE1C8111C06283E20E94EE1C8111C0641F
+:103C200084E20E94EE1C882311F0C06802C0CC23FD
+:103C300029F08C2F0E945B1E6C2F03C00E94571E20
+:103C4000682F70E080E090E0CF910C94EB18CF915A
+:103C500008956DEE7EEF80E090E00E94952460E094
+:103C600082E090E00E94832460E083E090E00E9484
+:103C7000832460E084E090E00E94832460E085E09B
+:103C800090E00C94832480E090E00E947D2421E069
+:103C90008D3E9E4F09F020E0822F089582E090E053
+:103CA0000C947524682F82E090E00C94832483E0C8
+:103CB00090E00C947524682F83E090E00C948324AA
+:103CC00084E090E00C947524682F84E090E00C94DC
+:103CD00083248091E20180FF0BC06091130185E095
+:103CE000689FB001112475956795759567952BC0F0
+:103CF00081FF09C06091130185E0689FB001112424
+:103D00007595679520C082FF07C06091130185E01B
+:103D1000689FB001112417C09091E3019923D1F05D
+:103D200060911201961788F72091130185E0289F72
+:103D300090011124929FA001939F500D112470E0D7
+:103D4000CA010E9447246038710540F4611571056D
+:103D500039F002C065E070E0862F08958FE708957E
+:103D600081E008958091E20180FF08C06091110117
+:103D700070E0759567957595679521C081FF06C0C0
+:103D80006091110170E07595679519C082FF04C0BC
+:103D90006091110170E010C09091E3019923C1F08E
+:103DA000609110019617A0F780911101899FC001C1
+:103DB000112470E00E9447246038710528F46115D1
+:103DC000710521F0862F08958FE7089581E0089509
+:103DD00061E070E0F4CF803F21F40E94691E81957C
+:103DE00004C0813F29F40E94691E8093E601089572
+:103DF000823F21F40E94691E819504C0833F29F40B
+:103E00000E94691E8093E5010895893F19F40E947C
+:103E1000B21E05C08A3F31F40E94B21E8195809384
+:103E2000E70108958B3F21F40E94B21E819504C0E2
+:103E30008C3F29F40E94B21E8093E8010895843FCC
+:103E400021F48091E401816017C0853F21F48091C5
+:103E5000E401826011C0863F21F48091E401846016
+:103E60000BC0873F21F48091E401886005C0883F42
+:103E700031F48091E40180618093E40108958D3FE5
+:103E800021F48091E20181600BC08E3F21F480918A
+:103E9000E201826005C08F3F29F48091E2018460D5
+:103EA0008093E2010895803F39F48091E60187FF15
+:103EB0006CC01092E60169C0813F29F48091E6014F
+:103EC0001816BCF362C09091E501823F29F497FF78
+:103ED0005CC01092E50159C0833F19F41916CCF368
+:103EE00054C0893F41F48091E70118160CF04DC091
+:103EF0001092E7014AC08A3F29F48091E70187FFC9
+:103F000044C0F6CF8B3F39F48091E80187FF3DC074
+:103F10001092E8013AC08C3F29F48091E80118160C
+:103F2000BCF333C0843F21F48091E4018E7F17C03D
+:103F3000853F21F48091E4018D7F11C0863F21F4FB
+:103F40008091E4018B7F0BC0873F21F48091E401D5
+:103F5000877F05C0883F31F48091E4018F7E809394
+:103F6000E40113C08D3F21F48091E2018E7F0BC0EC
+:103F70008E3F21F48091E2018D7F05C08F3F29F4AF
+:103F80008091E2018B7F8093E2018091E5018111B4
+:103F90000EC08091E60181110AC08091E701811174
+:103FA00006C08091E801811102C01092E3010895DA
+:103FB00084EE91E00E94A9100E94431C9093E101BD
+:103FC0008093E00108951F93CF93DF938091E001E8
+:103FD0009091E1010E944F1CAC019091E301992363
+:103FE00021F02091140130E006C0209115018AE0F3
+:103FF000289F900111244217530708F486C080912E
+:10400000E501C091E601D091E7011091E80181112D
+:1040100007C0C11176C0D11174C0111172C075C032
+:104020009F3F19F09F5F9093E301181624F40E94BC
+:10403000691E8093E5018091E50187FF05C00E941C
+:10404000691E81958093E5011C1624F40E94691E67
+:104050008093E6018091E60187FF05C00E94691EFA
+:1040600081958093E6016091E501662339F1C09165
+:10407000E601CC2319F1772767FD7095872F972FDD
+:104080000E94582323E333E343E35FE30E94BC230E
+:104090000E9425236093E5016C2F772767FD7095BB
+:1040A000872F972F0E94582323E333E343E35FE3F3
+:1040B0000E94BC230E9425236093E6011D1624F470
+:1040C0000E94B21E8093E7018091E70187FF05C03F
+:1040D0000E94B21E81958093E701111624F40E947C
+:1040E000B21E8093E8018091E80187FF05C00E941D
+:1040F000B21E81958093E801DF91CF911F910C94BE
+:10410000D81F9F3F09F08ECF96CFDF91CF911F919F
+:104110000895E4EEF1E085E0DF011D928A95E9F76C
+:104120001092E3011092E2010895833081F128F4A6
+:10413000813059F08230D1F00895853009F449C0BA
+:10414000B8F1863009F456C0089580911501262FE4
+:1041500030E0280F311D2F3F310524F4680F6093A4
+:10416000150108958FEF8093150108958091140132
+:10417000262F30E0280F311D2F3F310524F4680F22
+:104180006093140108958FEF809314010895809136
+:104190001301262F30E0280F311D2F3F310524F465
+:1041A000680F6093130108958FEF809313010895B2
+:1041B00080911201262F30E0280F311D2F3F31054D
+:1041C00024F4680F6093120108958FEF8093120119
+:1041D000089580911101262F30E0280F311D2F3FC7
+:1041E000310524F4680F6093110108958FEF8093D7
+:1041F0001101089580911001262F30E0280F311D04
+:104200002F3F310524F4680F6093100108958FEF5C
+:10421000809310010895833011F128F4813049F022
+:10422000823091F00895853081F120F18630C1F11E
+:10423000089580911501681720F4861B809315015D
+:10424000089510921501089580911401681720F4C3
+:10425000861B809314010895109214010895809193
+:104260001301681720F4861B8093130108951092A0
+:104270001301089580911201681720F4861B809322
+:10428000120108951092120108958091110168178A
+:1042900020F4861B80931101089510921101089556
+:1042A00080911001681720F4861B809310010895F7
+:1042B0001092100108950F931F938D3109F46BC074
+:1042C00008F03FC08E3009F47FC0C0F4873009F495
+:1042D00069C068F4863009F0B1C08091DA01817F4D
+:1042E0008E7F8093DA0181E08093EA01A8C0883054
+:1042F00009F4A2C08B3009F49FC0A0C0863109F434
+:104300009BC078F4803109F472C0813109F096C005
+:104310000E942B1590910D0181E0892780930D015A
+:104320008BC0893109F488C08B3109F087C0809136
+:10433000DA0181FB222720F991E0922790FB81F995
+:104340004CC0853309F470C048F4873209F46CC05E
+:1043500008F459C0893209F467C070C0833438F456
+:104360008A3308F04EC0883309F466C067C08334CE
+:1043700009F45AC0883409F061C00E942B150FEF70
+:1043800013ED20E3015010402040E1F700C0000091
+:104390000E949E1C51C00E94DF220E9492100E9427
+:1043A0008B094AC09091DA01892F8095817080FB3A
+:1043B00090F929F0966098609093DA0140C0997F57
+:1043C000977F9093DA0138C08091DA0182FB22272F
+:1043D00020F991E0922790FB82F98093DA019923EA
+:1043E00059F18091DA0181608093DA0125C08091D2
+:1043F000DA0183FB222720F991E0922790FB83F9D1
+:10440000ECCF895301C08D5141E050E060E070E095
+:104410008A019B0104C0000F111F221F331F8A95C0
+:10442000D2F7C901B80104C061E070E080E090E01B
+:104430000E94EB180E942B1581E001C080E01F91C3
+:104440000F91089580E0089580E00895CF93C82FDC
+:104450008091EA01813079F018F08230E9F187C06B
+:10446000E0910E01F0910F018081813169F082327B
+:1044700009F07FC009C0E0910E01F0910F01808129
+:10448000813111F0823261F48C2F0E94222281113D
+:1044900004C08C2F0E945B211DC081E090E01AC0F7
+:1044A0008C2F0E942422811114C0C43179F048F469
+:1044B000CB3079F0C03109F060C082E08093EA012E
+:1044C00008C0C93219F0C83321F057C01092EA0170
+:1044D00054C081E0817053C0C93289F118F5C431EC
+:1044E00071F1A8F4C73009F046C08AE08093150145
+:1044F00094E19093140193E090931301809312013F
+:1045000088E08093110188E28093100134C0CE517D
+:10451000C63088F5EC2FF0E0E65DFE4F8081809399
+:10452000E90129C0CE34E9F020F4CB3421F56AE06A
+:1045300013C0C13579F0C235F1F461E00DC080914E
+:10454000E901882319F01092E90115C081E08093F8
+:10455000EA0115C061E006C08091E9010E94952042
+:104560000AC06AE08091E9010E940B2104C0109208
+:10457000EA0180E004C081E002C080E0ABCFCF91CF
+:104580000895E1E8F0E08081886080838081816027
+:1045900080838FB7F89493E09093890090ED909387
+:1045A00088008FBF0895EFE6F0E08081826080830D
+:1045B0000895EFE6F0E080818D7F80830895EFE637
+:1045C000F0E0908182E08927808308951F920F9206
+:1045D0000FB60F9211242F933F934F935F936F93D6
+:1045E0007F938F939F93AF93BF93EF93FF938091AC
+:1045F000EB019091EC0101969093EC018093EB011B
+:10460000811103C082E00E948B09E091EC01E695E4
+:10461000E695F0E0EC5FF94FE4918091EB018E13A9
+:1046200003C080E00E948B09FF91EF91BF91AF9191
+:104630009F918F917F916F915F914F913F912F91BA
+:104640000F900FBE0F901F90189504D06894B11171
+:104650008DC0089570D088F09F5790F0B92F99279A
+:10466000B751A0F0D1F0660F771F881F991F1AF07D
+:10467000BA95C9F712C0B13081F077D0B1E0089592
+:1046800074C0672F782F8827B85F39F0B93FCCF313
+:10469000869577956795B395D9F73EF49095809573
+:1046A000709561957F4F8F4F9F4F0895E89409C093
+:1046B00097FB3EF490958095709561957F4F8F4F55
+:1046C0009F4F9923A9F0F92F96E9BB279395F6956B
+:1046D000879577956795B795F111F8CFFAF4BB0FE9
+:1046E00011F460FF1BC06F5F7F4F8F4F9F4F16C04D
+:1046F000882311F096E911C0772321F09EE8872FD7
+:10470000762F05C0662371F096E8862F70E060E092
+:104710002AF09A95660F771F881FDAF7880F96950B
+:10472000879597F9089557FD9058440F551F59F0F4
+:104730005F3F71F04795880F97FB991F61F09F3F8E
+:1047400079F087950895121613061406551FF2CFB7
+:104750004695F1DF08C0161617061806991FF1CF07
+:1047600086957105610508940895E894BB2766272E
+:104770007727CB0197F908950BD078C069D028F03E
+:104780006ED018F0952309F05AC05FC01124EECF07
+:10479000CADFA0F3959FD1F3950F50E0551F629F9C
+:1047A000F001729FBB27F00DB11D639FAA27F00D8A
+:1047B000B11DAA1F649F6627B00DA11D661F829FB1
+:1047C0002227B00DA11D621F739FB00DA11D621F96
+:1047D000839FA00D611D221F749F3327A00D611DB3
+:1047E000231F849F600D211D822F762F6A2F112495
+:1047F0009F5750408AF0E1F088234AF0EE0FFF1FE8
+:10480000BB1F661F771F881F91505040A9F79E3F1E
+:10481000510570F014C0AACF5F3FECF3983EDCF373
+:10482000869577956795B795F795E7959F5FC1F75B
+:10483000FE2B880F911D9695879597F9089597F906
+:104840009F6780E870E060E008959FEF80EC089536
+:1048500000240A941616170618060906089500245F
+:104860000A9412161306140605060895092E0394D9
+:10487000000C11F4882352F0BB0F40F4BF2B11F44D
+:1048800060FF04C06F5F7F4F8F4F9F4F089597FB6E
+:10489000072E16F4009407D077FD09D00E946124FA
+:1048A00007FC05D03EF4909581959F4F0895709533
+:1048B00061957F4F0895EE0FFF1F0590F491E02D55
+:1048C0000994AA1BBB1B51E107C0AA1FBB1FA61757
+:1048D000B70710F0A61BB70B881F991F5A95A9F7A9
+:1048E00080959095BC01CD010895F999FECF92BDB8
+:1048F00081BDF89A992780B50895A8E1B0E042E01B
+:1049000050E00C949D24262FF999FECF92BD81BDD5
+:10491000F89A019700B4021639F01FBA20BD0FB6FD
+:10492000F894FA9AF99A0FBE08950196272F0E94DB
+:1049300084240C948324DC01CB01FC01F999FECF83
+:1049400006C0F2BDE1BDF89A319600B40D92415017
+:0A4950005040B8F70895F894FFCF27
+:10495A0002208D091B0AF809C40990090101C7013F
+:10496A0028080A03140A3F4D3639C5057805420559
+:10497A0009059C04B504CE04E704010203040506F4
+:04498A000708090011
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/jacobono/img/colemak-default-layer.png b/keyboards/ergodox_ez/keymaps/jacobono/img/colemak-default-layer.png Binary files differnew file mode 100644 index 000000000..06f63c496 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/jacobono/img/colemak-default-layer.png diff --git a/keyboards/ergodox_ez/keymaps/jacobono/img/number-dpad-layer.png b/keyboards/ergodox_ez/keymaps/jacobono/img/number-dpad-layer.png Binary files differnew file mode 100644 index 000000000..4dd718278 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/jacobono/img/number-dpad-layer.png diff --git a/keyboards/ergodox_ez/keymaps/jacobono/img/symbol-layer.png b/keyboards/ergodox_ez/keymaps/jacobono/img/symbol-layer.png Binary files differnew file mode 100644 index 000000000..ee224cf0c --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/jacobono/img/symbol-layer.png diff --git a/keyboards/ergodox_ez/keymaps/jacobono/keymap.c b/keyboards/ergodox_ez/keymaps/jacobono/keymap.c new file mode 100644 index 000000000..6b19800af --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/jacobono/keymap.c @@ -0,0 +1,273 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define COLEMAK 0 // new colemak layout +#define QWERTY 1 // default layer +#define SYMB 2 // symbols +#define NUMPAD 3 // number pad +#define MDIA 4 // media keys + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap 0: Basic COLEMAK layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | F | P | G | | | | J | L | U | Y | ; | TAB | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | A | R | S | T | D |------| |------| H | N | E | I | O | DEL | + * |--------+------+------+------+------+------| | LGUI(TAB)------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | K | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | L1 | | | UP |MO(L2)| |MO(L2)| Down | | ALT | RGUI | + * `----------------------------------' `------------------------------------' + * ,-------------. ,---------------. + * | LGUI | App | |Ctrl/Esc| Alt | + * ,------|------|------| |--------+--------+------. + * | | |QUKSL | | QUKSL | | | + * |Space |ENTER |------| |--------| ENTER |Space | + * | | |MO(L3)| | MO(L3) | | | + * `--------------------' `------------------------' + */ + + // If it accepts an argument (i.e, is a function), it doesn't need KC_. + // Otherwise, it needs KC_* + [COLEMAK] = KEYMAP( // layer 0 : Colemak layout default layer + // left hand + KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_TRNS, + KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, + KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_TRNS, + TG(QWERTY), KC_TRNS, KC_TRNS,KC_UP, MO(SYMB), + KC_LGUI, KC_APP, + LGUI(S(KC_SPC)), + KC_SPC,KC_ENT,MO(NUMPAD), + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELT, + KC_TRNS, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_TAB, + KC_H, KC_N, KC_E, KC_I, KC_O, KC_DEL, + LGUI(KC_TAB), KC_K, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + MO(SYMB), KC_DOWN, KC_TRNS, KC_RALT, KC_RGUI, + CTL_T(KC_ESC), KC_LALT, + LGUI(S(KC_SPC)), + MO(NUMPAD), KC_ENT, KC_SPC), + + /* Keymap 1: Basic QWERTY layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | BkSp | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | DEL | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | L0 | | L0 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Ctrl | A | S | D | F | G |------| |------| H | J | K | L |; / L4| CTRL | + * |--------+------+------+------+------+------| Alt | | Alt |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L3| '" |AltShf| Left |MO(L2)| |MO(L2)| Down | [ | ] | ~L3 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,---------------. + * | Tab | BkSp | | Alt |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space| LGUI |------| |------| RGUI |Enter | + * | | | End | | PgDn | | | + * `--------------------' `----------------------' + */ + // If it accepts an argument (i.e, is a function), it doesn't need KC_. + // Otherwise, it needs KC_* + [QWERTY] = KEYMAP( // layer 1 + // left hand + KC_BSPC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS, + KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_LALT, + KC_TRNS, KC_QUOT, LALT(KC_LSFT), KC_LEFT, MO(SYMB), + KC_TAB, KC_DELT, + KC_HOME, + KC_SPC, KC_LGUI, KC_END, + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELT, + KC_TRNS, 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_RCTRL, + KC_RALT, KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + MO(SYMB), KC_DOWN, KC_LBRC, KC_RBRC, KC_FN1, + KC_LALT, CTL_T(KC_ESC), + KC_PGUP, + KC_PGDN, KC_RGUI, KC_ENT), + + + /* Keymap 2: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | @ | * | = | _ | | | | ~ | { | } | # | : | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | ! | + | - | " |------| |------| " | ( | ) | ' | ` | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | % | ^ | $ | & | | | | ; | [ | ] | \ | / | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ + // SYMBOL + [SYMB] = KEYMAP( + // left hand + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS, KC_TRNS, KC_AT, KC_ASTR, KC_EQL, KC_UNDS, KC_TRNS, + KC_TRNS, KC_PIPE, KC_EXLM, KC_PLUS, KC_MINS, S(KC_QUOTE), + KC_TRNS, KC_TRNS, KC_PERC, KC_CIRC, KC_DLR, KC_AMPR, 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_TILD, KC_LCBR, KC_RCBR, KC_HASH, S(KC_SCLN), KC_F12, + S(KC_QUOTE),KC_LPRN, KC_RPRN, KC_QUOTE, KC_GRV, KC_TRNS, + KC_TRNS, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, 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 3: Numpad Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | UP | | | | | | $ | 7 | 8 | 9 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | LEFT | DOWN | RIGHT| |------| |------| = | 4 | 5 | 6 | - | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | 1 | 2 | 3 | * | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | , | 0 | . | / | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ + // Numpad + [NUMPAD] = KEYMAP( + // left hand + 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_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_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_DLR, KC_7, KC_8, KC_9, KC_PLUS, KC_TRNS, + KC_EQL, KC_4, KC_5, KC_6, KC_MINS, KC_TRNS, + KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_ASTR, KC_TRNS, + KC_COMMA,KC_0, KC_DOT, KC_SLSH, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), + + /* Keymap 4: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | | |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ + // MEDIA AND MOUSE + 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) { + 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/jgarr/compiled.hex b/keyboards/ergodox_ez/keymaps/jgarr/compiled.hex new file mode 100644 index 000000000..d45298399 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/jgarr/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4
+:100010000C94BE020C94BE020C94BE020C94BE0260
+:100020000C94BE020C94BE020C94620D0C94340E1F
+:100030000C94BE020C94BE020C94BE020C94BE0240
+:100040000C94BE020C943E220C94BE020C94BE0290
+:100050000C94BE020C94D11B0C94BE020C94BE02F4
+:100060000C94BE020C94BE020C94BE020C94BE0210
+:100070000C94BE020C94BE020C94BE020C94BE0200
+:100080000C94BE020C94BE020C94BE020C94BE02F0
+:100090000C94BE020C94BE020C94BE020C94BE02E0
+:1000A0000C94BE020C94BE020C94BE02A10EC30EB0
+:1000B000B10FC30EB10F080F2B0FB10F800F930FAD
+:1000C0006212621291129112C712E71218141814D8
+:1000D000F2121814A213A2130914181418141214EB
+:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300
+:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0
+:10010000C113CE13D513DC13E6130000F0A13500A4
+:100110002B002971E100E00000001E003400040003
+:100120003371E3004D001F00360012001400E2009E
+:100130002A002000370008000D0050002C0021008C
+:10014000130018000E004F004A0022001C000C0093
+:100150001B000000E1044C0001540000007F00007F
+:10016000E3002A000154000000770000E2002300B1
+:100170000900070005000000C10024000A000B0070
+:10018000100052004B002500060017001A00510015
+:100190002C0026001500110019002F002800270050
+:1001A0000F0016421D7130004E00310038002D0046
+:1001B000E5002E0000000100010001000100010027
+:1001C00000003A001E0220022202010001003B0052
+:1001D0001F0221022302010001003C002F0226021F
+:1001E0002F00010001003D00300227023000010015
+:1001F00001003E003102350035020000010001001F
+:1002000001000000010000000100010001000000E9
+:100210000100000001003F005200510024020000D4
+:1002200001004000240021001E00010001004100E7
+:10023000250022001F003700010042002600230095
+:10024000200027000100430025022E0231002E006D
+:100250000100440045000100010001000000010010
+:100260000100010001000100000001000100010087
+:1002700001000100010001000100F2000100010085
+:1002800001000100F000F1000100F4000100010094
+:100290000100F3000100F500010001000100010070
+:1002A0000100000001000100010000000100000049
+:1002B0000100010001000000010000000100010038
+:1002C0000100010001000000010001000100010027
+:1002D0000100A9000100010001000100AC00AA001A
+:1002E000B600010001000100AB00A8000100010000
+:1002F0000100010001000100010001000100AE0049
+:1003000001000100000016034500720067006F0045
+:1003100044006F007800200045005A0000001603DA
+:100320004500720067006F0044006F0078002000F5
+:1003300045005A0000000403090409026D0004018D
+:1003400000A0FA09040000010301010009211101C4
+:100350000001223F000705810308000A090401008B
+:100360000103010200092111010001224D000705CE
+:10037000820308000A0904020001030000000921A9
+:10038000110100012236000705830308000A090451
+:1003900003000103000000092111010001223900BE
+:1003A000070584031000011201100100000008ED90
+:1003B000FE071301000102000105010906A1010564
+:1003C0000719E029E7150025019508750181020547
+:1003D000081901290595057501910295017503918B
+:1003E0000105071900297715002501957875018108
+:1003F00002C005010980A101850216010026B7008F
+:100400001A01002AB700751095018100C0050C097A
+:1004100001A1018503160100269C021A01002A9CF5
+:1004200002751095018100C005010902A1010901B1
+:10043000A10005091901290515002501950575017A
+:10044000810295017503810105010930093115818A
+:10045000257F95027508810609381581257F95014C
+:1004600075088106050C0A38021581257F950175EE
+:10047000088106C0C005010906A101050719E02988
+:10048000E715002501950875018102950175088120
+:100490000105081901290595057501910295017558
+:1004A0000391010507190029FF150025FF95067521
+:1004B000088100C0000000000000000000000001F2
+:1004C0000204060A0F17202C3A4A5D71879DB3C7B4
+:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF
+:1004E0003A2C20170F0A0604020100000000000049
+:1004F0000000000011241FBECFEFDAE0DEBFCDBF49
+:1005000004B603FE24C08091FB019091FC01A091F0
+:10051000FD01B091FE018730904BA740B04BB9F47C
+:100520001092FB011092FC011092FD011092FE014D
+:1005300014BE84B7877F84BF88E10FB6F894809398
+:100540006000109260000FBEE0E0FFE3099511E04B
+:10055000A0E0B1E0EAE0F8E402C005900D92A43317
+:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0
+:10057000B107E1F70E94A60A0C9403240C94000032
+:100580001092B9008AE08093B800089594EA90939D
+:10059000BC009091BC0097FFFCCF9091B900987F70
+:1005A000983021F0903111F081E008958093BB00E4
+:1005B00084E88093BC008091BC0087FFFCCF8091D1
+:1005C000B900887F883111F0803471F780E0089598
+:1005D00084E98093BC008091BC0084FDFCCF089529
+:1005E0008093BB0084E88093BC008091BC0087FFAF
+:1005F000FCCF9091B900987F81E0983209F480E0B7
+:10060000089584E88093BC008091BC0087FFFCCFF4
+:100610008091BB00089580910101811115C080E493
+:100620000E94C6028093010181110CC082E10E94E8
+:10063000F00280930101811105C08FEF0E94F0024A
+:10064000809301010E94E80284B1807F84B985B162
+:10065000807F85B98AB1837F8AB98BB1837F8BB95B
+:100660003E98469808950E94C604809301010E9416
+:100670000B0380B38C7080BB81B3836F81BBA5E318
+:10068000B1E0E3E4F1E08EE08E0F11921D928E1343
+:10069000FCCF0C94B004BF92CF92DF92EF92FF9206
+:1006A0000F931F93CF93DF9380910101882379F0FB
+:1006B000809134018F5F80933401811108C00E94C2
+:1006C000C60480930101811102C00E94580405E311
+:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407
+:1006E000E394F12CC730D10500F58091010181110F
+:1006F00064C080E40E94C60280930101811112C08F
+:1007000082E10E94F0028093010181110BC0C701B8
+:100710000C2E01C0880F0A94EAF780950E94F0021F
+:10072000809301010E94E80248C0CA30A1F028F479
+:10073000C83059F0C93061F005C0CC3089F070F094
+:10074000CD3089F0209A289810C0219A29980DC0A0
+:10075000229A2A980AC0239A2B9807C0529A01C05D
+:10076000539A5B9802C03E9A469890EA9A95F1F7A0
+:100770009FB1799902C082E001C080E091709D250F
+:10078000982B7C9902C084E001C080E0892B7D9980
+:1007900002C038E001C030E0832B7E9902C020E126
+:1007A00001C020E0822B9FB19095991F9927991F36
+:1007B0009295990F907E892B0FC080910101811134
+:1007C00049C080E40E94C60280930101882379F128
+:1007D000B12C0E94E8028B2DF8019081981719F036
+:1007E0008083C09200010E940B0321960F5F1F4F70
+:1007F000CE30D10509F076CF80910001882361F1D8
+:10080000815080930001882339F08FE99FE00197A0
+:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F
+:10082000CF01825F91919D938E13FCCF15C083E120
+:100830000E94F002809301018111CACF81E40E94DD
+:10084000C602809301018111C3CF0E940103B82E1B
+:10085000B094BFCF80E0C0CF0E94560481E0DF910A
+:10086000CF911F910F91FF90EF90DF90CF90BF90AD
+:100870000895E82FF0E0ED5BFE4F80810895089524
+:100880000F931F93CF93DF93C3E4D1E010E00C2FBD
+:10089000025F899190E00E94F71A180F0C13F9CFAC
+:1008A000812FDF91CF911F910F9108950C94260510
+:1008B00056985E9825982D9826982E9827982F98C8
+:1008C0008FEF90E0909389008093880090938B0045
+:1008D00080938A0090938D0080938C00259A2D9AA6
+:1008E0002FEF80E792E0215080409040E1F700C078
+:1008F0000000269A2E9A2FEF80E792E02150804048
+:100900009040E1F700C00000279A2F9A2FEF80E770
+:1009100092E0215080409040E1F700C0000025980F
+:100920002D982FEF80E792E0215080409040E1F732
+:1009300000C0000026982E982FEF80E792E021500B
+:1009400080409040E1F700C0000027982F9856980B
+:100950005E9825982D9826982E9827982F98089578
+:1009600089EA8093800089E08093810024982C9804
+:100970003F988AB18F748AB96E98479A8BB1806B11
+:100980008BB9769A0E9458040C94250580E28093D6
+:1009900001018091510181110EC00E94C00281E0CD
+:1009A000809351012FEF83ED90E3215080409040E0
+:1009B000E1F700C0000080E40E94C60280930101BC
+:1009C00081112EC00E94F00280930101811128C084
+:1009D0000E94F00280930101811122C08FE30E94E6
+:1009E000F0028093010181111BC00E94E80280E4A3
+:1009F0000E94C60280930101811112C08CE00E9406
+:100A0000F0028093010181110BC00E94F0028093DB
+:100A10000101811105C08FE30E94F0028093010162
+:100A20000E94E80280910101089561110BC0FC0150
+:100A30008281882321F085EE0E94061103C085EE95
+:100A40000E94CE1180E090E0089508956091BD016C
+:100A50007091BE018091BF019091C0010E94031B63
+:100A600056985E9825982D9826982E9827982F9816
+:100A7000813019F0823021F00895259A2D9A089539
+:100A8000269A2E9A089581E0089581E008950C94A5
+:100A9000450508950F931F93CF93DF938C01FC01BD
+:100AA000C081D181CE010E947C19BE010E94F30554
+:100AB000EC01B8010E944705882309F48DC0F801B4
+:100AC0008281882309F44AC080915D0181111FC091
+:100AD000C431F0E5DF0709F051C00E94490581E00B
+:100AE00080935D010E949B1B90935C0180935B014E
+:100AF0001092540110925601109255011092580113
+:100B00001092570110925A011092590165C08091BC
+:100B10005B0190915C010E94A71B883C910570F4D9
+:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB
+:100B3000D183C0838F5F809354014EC0C43880E559
+:100B4000D80721F0C538D04501F13AC0F8018281BB
+:100B5000882341F01092520182E01EC0C438E0E5C3
+:100B6000DE0759F580915201811106C086E20E948C
+:100B7000061186E20E94CE1182E01CC0C438F0E566
+:100B8000DF0741F3C538D045D9F4F80182818823C5
+:100B900031F01092530180E20E941D121DC080911D
+:100BA0005301811106C087E20E94061187E20E946C
+:100BB000CE1180E20E9424120FC0C538D04529F31F
+:100BC00081E08093520180935301C801DF91CF915E
+:100BD0001F910F910C94430580E0DF91CF911F91FD
+:100BE0000F910895089596E0799FF001112494E5FE
+:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F
+:100C0000E25FFE4F859194910895880F991FFC0132
+:100C1000E657F040859194910895880F991FFC0143
+:100C2000E65FFE4F8591949108950F931F93CF93A4
+:100C3000DF93EC01811520E3920750F5C11580E2A6
+:100C4000D80708F0C3C0CB3BD10590F4C83AD10512
+:100C500008F06AC0C53AD10508F05BC0C430D105C0
+:100C600008F0D0C1219709F0CAC101E010E00AC222
+:100C7000CF3FD10511F008F0C5C1C03FD10508F044
+:100C8000A2C0CE01805E9109089708F4BBC1B7C12C
+:100C9000C13090E5D90709F4A2C020F5C0318FE436
+:100CA000D80770F4C11590E4D90708F094C0C115B5
+:100CB00021E3D20708F0A3C1DD278E01106CE2C149
+:100CC000C115D04509F09BC10E9483148FEF94E3B6
+:100CD0002CE0815090402040E1F700C000000E94CD
+:100CE000F61BD0C1C11597E5D90758F4C03121E5ED
+:100CF000D20708F01CC1C43180E5D80708F475C0DC
+:100D00007EC1CE0190578115904108F078C1DF7007
+:100D100073C1C53AD10509F477C1C63AD10509F0C6
+:100D200076C102E810E4AEC1C83AD10509F472C137
+:100D3000C93AD10509F471C1CA3AD10509F470C1A3
+:100D4000CB3AD10509F46FC1CC3AD10509F46EC193
+:100D5000CD3AD10509F46DC1C03BD10509F46CC190
+:100D6000CE3AD10509F46BC1CF3AD10509F46AC175
+:100D7000C13BD10509F469C1C23BD10509F468C181
+:100D8000C33BD10509F467C1C43BD10509F466C171
+:100D9000C53BD10509F465C1C63BD10509F464C161
+:100DA000C73BD10509F463C1C83BD10509F462C151
+:100DB000C93BD10509F461C1CA3BD10509F460C141
+:100DC00000E014E45FC18E0110655CC1CE019F702C
+:100DD0000E940D0658C1DF708E01106A53C18091C8
+:100DE000DA0181608093DA014DC10E949B1D81115F
+:100DF00002C00E94811D0E94B81D90E09093FB01EB
+:100E00008093FA01C23080E5D80721F48091FA017D
+:100E1000816086C0C43090E5D90721F48091FA0141
+:100E200082607EC0C63020E5D20721F48091FA01AD
+:100E3000846076C0C83080E5D80719F48091FA0143
+:100E400027C0CA3090E5D90721F48091FA0180616A
+:100E500067C0CC3020E5D20721F48091FA0180628E
+:100E60005FC0CE3080E5D80721F48091FA0180641C
+:100E700057C0C03190E5D90721F48091FA0180680C
+:100E80004FC0C23120E5D20729F48091FA01846075
+:100E9000886046C0C33080E5D80721F48091FA010C
+:100EA0008E7F3EC0C53090E5D90721F48091FA01CC
+:100EB0008D7F36C0C73020E5D20721F48091FA013A
+:100EC0008B7F2EC0C93080E5D80719F48091FA01D4
+:100ED00026C0CB3090E5D90721F48091FA018F7EAE
+:100EE0001FC0CD3020E5D20721F48091FA018F7D1B
+:100EF00017C0CF3080E5D80721F48091FA018F7BAD
+:100F00000FC0C13190E5D90721F48091FA018F77A4
+:100F100007C0C331D04531F48091FA018B7F877FC0
+:100F20008093FA018091FA010E94BC1DABC08D2F05
+:100F300099278F70992781309105D9F49E012370EC
+:100F4000332702C0880F991F2A95E2F79C688E010B
+:100F500044E0000F111F4A95E1F700271370802B22
+:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA
+:100F70002FC08230910531F4DC2FCC278E01016F18
+:100F8000106A80C08330910569F4CE01837099277F
+:100F900001E010E002C0000F111F8A95E2F7C801BE
+:100FA0009C680FC084309105B9F4CE0183709927F5
+:100FB00001E010E002C0000F111F8A95E2F7C8019E
+:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029
+:100FD0008C010C2B1D2B56C08530910531F4DC2F74
+:100FE000CC278E01046F106A4DC0069709F04AC0E5
+:100FF000CF71DD27DC2FCC278E01106243C000E0CB
+:1010000010E040C08E013EC001E810E43BC003E8A0
+:1010100010E438C002EE14E435C009EE14E432C026
+:101020000AEE14E42FC005EB14E42CC006EB14E424
+:1010300029C007EB14E426C00CEC14E423C00DEC2B
+:1010400014E420C003E815E41DC00AE815E41AC042
+:1010500002E915E417C004E915E414C001E216E43E
+:1010600011C003E216E40EC004E216E40BC005E270
+:1010700016E408C006E216E405C007E216E402C062
+:101080000AE216E4C801DF91CF911F910F910895F4
+:1010900096E0799FF001112494E5899FE00DF11D00
+:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149
+:1010B0009491803E9105E0F4803C910558F5813390
+:1010C000910509F46FC048F48932910509F463C0B1
+:1010D0008A32910509F46DC072C089339105E9F037
+:1010E00082389105D1F08533910509F44DC067C070
+:1010F000833E910581F138F4803E9105B9F0823E3E
+:101100009105D9F05CC0863E910561F1873E91055D
+:10111000A1F155C00E94050608952091FA0120FD15
+:1011200002C021FF4CC080EE90E049C08091FA01DE
+:1011300080FFF9CF89E390E042C08091FA0182FFFD
+:101140000EC08091FA0184FF03C080E090E037C0B8
+:1011500083EE90E034C08091FA0182FFF2CF82EEFC
+:1011600090E02DC08091FA0183FF0BC08091FA01BD
+:1011700084FDEBCF87EE90E022C08091FA0183FFDF
+:10118000F5CF86EE90E01BC08091FA0185FF07C085
+:1011900089E290E014C08091FA0185FFF9CF85E3E0
+:1011A00090E00DC08091FA0186FF07C08AE290E0CE
+:1011B00006C08091FA0186FFF9CF81E390E00E949A
+:1011C0001506089508950C94E20880916E01089523
+:1011D000CF93DF9300D01F92CDB7DEB79C018091F3
+:1011E000F101843019F593E099833B832A8390932E
+:1011F000E9008FEF9091E800815095FD06C095EDD4
+:101200009A95F1F700008111F5CF8091E80085FFF4
+:101210000DC040E050E063E070E0CE0101960E9416
+:10122000520B8091E8008E778093E8000F900F902A
+:101230000F90DF91CF910895CF93DF9300D01F924D
+:10124000CDB7DEB72091F101243021F522E02983CA
+:101250009B838A8383E08093E9008FEF9091E8007D
+:10126000815095FD06C095ED9A95F1F7000081112A
+:10127000F5CF8091E80085FF0DC040E050E063E0CD
+:1012800070E0CE0101960E94520B8091E8008E77AB
+:101290008093E8000F900F900F90DF91CF91089509
+:1012A0002091F1012430F1F422E02093E9002FEFA6
+:1012B0003091E800215035FD06C035ED3A95F1F743
+:1012C00000002111F5CF2091E80025FF0BC040E080
+:1012D00050E065E070E00E94520B8091E8008E774C
+:1012E0008093E8000895CF93DF93EC019091F10192
+:1012F000943009F046C080910C018823D9F0809188
+:101300000D018823B9F09093E9008FEF9091E800E8
+:10131000815095FD06C095E19A95F1F70000811185
+:10132000F5CF8091E80085FF2CC040E050E060E1FF
+:1013300070E017C081E08093E9008FEF9091E800A2
+:10134000815095FD06C095ED9A95F1F70000811149
+:10135000F5CF8091E80085FF14C040E050E068E0E0
+:1013600070E0CE010E94520B8091E8008E7780934E
+:10137000E80080E1FE01AEE5B1E001900D928A95B2
+:10138000E1F7DF91CF9108958091F001811109C0BB
+:101390000E94E70C0E94440D8091E20084608093DB
+:1013A000E20008951092F001089508950C942B2204
+:1013B0000E948C1B0E9431220E94EA0F0C94E308C9
+:1013C00042E061EC81E00E94610C42E061EC82E06D
+:1013D0000E94610C42E061EC83E00E94610C42E1FA
+:1013E00061EC84E00C94610C8091F301833009F48A
+:1013F00055C030F4813071F0823009F48EC0089508
+:101400008A3009F47AC08B3009F460C0893009F061
+:101410009CC020C08091F201813A09F096C0809171
+:10142000E800877F8093E8008091F6019091F701B2
+:10143000892B21F460E18EE591E003C060E080E05B
+:1014400090E070E00E949D0B8091E8008B77809384
+:10145000E80008958091F201813209F076C0809110
+:10146000F6019091F701009719F0039709F06DC00C
+:101470008091E800877F8093E8008091E80082FDFA
+:1014800005C08091F1018111F8CF5FC08091F1001A
+:1014900080936E018091E8008B7753C08091F201B8
+:1014A000813A09F052C08091F6019091F701892BA1
+:1014B00009F04BC08091E800877F8093E80080911D
+:1014C000E80080FFFCCF80910C0136C08091F201D2
+:1014D0008132D9F58091F6019091F701892BA9F518
+:1014E0008091E800877F8093E8000E94960C8091AD
+:1014F000F40180930C010C9483148091F2018132E9
+:1015000021F58091E800877F8093E8000E94960C87
+:101510008091F50180936F0108958091F201813AE5
+:10152000A1F48091E800877F8093E8008091E80033
+:1015300080FFFCCF80916F018093F1008091E800E3
+:101540008E778093E8000C94960C089584B7877F7B
+:1015500084BF88E10FB6F894809360001092600019
+:101560000FBE90E080E80FB6F894809361009093EE
+:1015700061000FBE0E9439100E94E70C0E94440DCA
+:101580008091E20084608093E20078940E94CA0F08
+:101590000E943B1082E091E00E94E50F0E94192218
+:1015A0008091F101853069F40E94531B8091EF0115
+:1015B0008823B1F30E947E1B882391F30E943C0B89
+:1015C000EFCF0E944110ECCF292F33272330310574
+:1015D000C9F064F42130310581F02230310509F081
+:1015E00043C08DE690E02AE333E042C0213231056A
+:1015F000F1F02232310541F137C082E190E027EA73
+:1016000033E036C099278130910541F08230910551
+:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4
+:1016200002C0E6E0F3E0849190E09F0121C06430C5
+:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5
+:10164000318189E090E014C0643070F470E0FB01F7
+:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47
+:10166000FE4F808190E004C080E090E020E030E018
+:10167000FA0131832083089580E189BD82E189BD2B
+:1016800009B400FEFDCF8091D8008F7D8093D800F3
+:101690008091E00082608093E0008091E00081FD15
+:1016A000FCCF0895CF92DF92EF92FF920F931F939A
+:1016B000CF93DF93EC018B016A010E94B50C81117D
+:1016C00033C0C114D10439F0F60180819181081B27
+:1016D000190BC80FD91FE12CF12C0115110519F1B7
+:1016E0008091E80085FD16C08091E8008E77809398
+:1016F000E800C114D10449F0F60180819181E80E1F
+:10170000F91EF182E08285E00FC00E94B50C8823AB
+:1017100021F30AC089918093F10001501109FFEF74
+:10172000EF1AFF0ADACF80E0DF91CF911F910F917E
+:10173000FF90EF90DF90CF9008952091F8013091C5
+:10174000F9012617370748F06115710539F4209122
+:10175000E8002E772093E80001C0B90140E0611550
+:101760007105A9F12091F101222309F443C025302C
+:1017700009F442C02091E80023FD40C02091E80018
+:1017800022FD32C02091E80020FFE9CF4091F30014
+:101790002091F20030E0342BFC01CF01611571057E
+:1017A00059F02830310540F481918093F100615067
+:1017B00071092F5F3F4FF1CF41E02830310509F02B
+:1017C00040E02091E8002E772093E800C8CF411137
+:1017D000C9CF0AC08091F101882361F0853061F0A2
+:1017E0008091E80083FD0AC08091E80082FFF2CF7B
+:1017F00080E0089582E0089583E0089581E00895EF
+:101800002091F8013091F9012617370748F061154A
+:10181000710539F42091E8002E772093E80001C08B
+:10182000B901FC0120E06115710591F18091F10190
+:10183000882309F440C0853009F43FC08091E80056
+:1018400083FD3DC08091E80082FD2FC08091E800BB
+:1018500080FFE9CF2091F3008091F20090E0922B7D
+:101860006115710559F08830910540F42491209359
+:10187000F1003196615071090196F2CF21E008978D
+:1018800009F020E08091E8008E778093E800CBCFCC
+:101890002111CCCF0AC08091F101882361F08530FD
+:1018A00061F08091E80083FD0AC08091E80082FF2A
+:1018B000F2CF80E0089582E0089583E0089581E00A
+:1018C0000895982F973058F59093E900981739F0BC
+:1018D0007091EC002091ED005091F00003C0242F96
+:1018E000762F50E021FF19C03091EB003E7F3093FE
+:1018F000EB003091ED003D7F3093ED003091EB0037
+:1019000031603093EB007093EC002093ED00509326
+:10191000F0002091EE0027FF07C09F5FD3CF8F70AC
+:101920008093E90081E0089580E008958091F201BC
+:1019300087FF11C08091E80082FD05C08091F10110
+:101940008111F8CF11C08091E8008B770BC0809196
+:10195000F101882349F08091E80080FFF8CF809161
+:10196000E8008E778093E80008952091E40030919C
+:10197000E50095E64091EC00842F817040FF22C085
+:101980008091E80080FD1CC08091F101882391F0D6
+:10199000853091F08091EB0085FD10C04091E4000E
+:1019A0005091E5004217530729F39A01915011F71E
+:1019B00084E0089582E0089583E0089581E0089529
+:1019C00080E008954091E80042FFDECF08950E9434
+:1019D000550D0E945D0DE0EEF0E080818160808316
+:1019E000E8EDF0E080818F77808319BCA7EDB0E04F
+:1019F0008C918E7F8C9380818F7E80831092F001FA
+:101A000008950F931F93CF93DF930E94550D0E946B
+:101A10005D0DC8EDD0E088818F77888388818068EC
+:101A2000888388818F7D888319BC1092F101109280
+:101A3000ED011092EF011092EE0100EE10E0F801BE
+:101A400080818B7F808388818160888342E060E031
+:101A500080E00E94610CE1EEF0E080818E7F808367
+:101A6000E2EEF0E080818160808380818860808305
+:101A7000F80180818E7F8083888180618883DF91F7
+:101A8000CF911F910F910895E8EDF0E080818F7E56
+:101A90008083E7EDF0E080818160808384E082BF15
+:101AA00081E08093F0010C94010DE8EDF0E080817D
+:101AB0008E7F80831092E20008951092DA001092D7
+:101AC000E10008951F920F920FB60F9211242F93E9
+:101AD0003F934F935F936F937F938F939F93AF93B6
+:101AE000BF93EF93FF938091E10082FF0BC0809141
+:101AF000E20082FF07C08091E1008B7F8093E100CC
+:101B00000E94C90F8091DA0080FF1FC08091D80029
+:101B100080FF1BC08091DA008E7F8093DA00809175
+:101B2000D90080FF0DC080E189BD82E189BD09B483
+:101B300000FEFDCF81E08093F1010E94C40905C041
+:101B400019BC1092F1010E94D2098091E10080FF3E
+:101B500019C08091E20080FF15C08091E2008E7F65
+:101B60008093E2008091E20080618093E2008091A6
+:101B7000D80080628093D80019BC85E08093F10181
+:101B80000E94D6098091E10084FF30C08091E2007C
+:101B900084FF2CC080E189BD82E189BD09B400FECB
+:101BA000FDCF8091D8008F7D8093D8008091E10097
+:101BB0008F7E8093E1008091E2008F7E8093E2002F
+:101BC0008091E20081608093E2008091ED018823A2
+:101BD00011F084E007C08091E30087FD02C081E03E
+:101BE00001C083E08093F1010E94D8098091E10057
+:101BF00083FF29C08091E20083FF25C08091E1002E
+:101C0000877F8093E10082E08093F1011092ED01E3
+:101C10008091E1008E7F8093E1008091E2008E7FD1
+:101C20008093E2008091E20080618093E20042E0D4
+:101C300060E080E00E94610C8091F00088608093F9
+:101C4000F0000E94D509FF91EF91BF91AF919F9154
+:101C50008F917F916F915F914F913F912F910F9055
+:101C60000FBE0F901F9018951F920F920FB60F92F4
+:101C700011242F933F934F935F936F937F938F9391
+:101C80009F93AF93BF93CF93DF93EF93FF93C09155
+:101C9000E900CF708091EC00D82FD17080FDD0E8A2
+:101CA0001092E9008091F000877F8093F000789493
+:101CB0000E94780E1092E9008091F0008860809375
+:101CC000F000CD2BCF70C093E900FF91EF91DF9131
+:101CD000CF91BF91AF919F918F917F916F915F91C4
+:101CE0004F913F912F910F900FBE0F901F9018951D
+:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3
+:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115
+:101D1000F10091938E13FBCF0E94F4098091E800AB
+:101D200083FF1FC18091F2019091F301492F50E090
+:101D30004A30510508F015C1FA01EA5AFF4F0C94D8
+:101D4000B323803881F0823809F00BC18091F6010D
+:101D50008F708093E9008091EB0085FB882780F9E4
+:101D60001092E90006C08091EE019091EF0191116F
+:101D700082609091E800977F9093E8008093F10053
+:101D80001092F100C8C0282F2D7F09F0EAC08823E7
+:101D900019F0823061F0E5C08091F401813009F0E2
+:101DA000E0C0933009F080E08093EF012BC0809178
+:101DB000F401811127C08091F6018F7009F4D1C020
+:101DC0008093E9002091EB0020FF1CC0933021F4A8
+:101DD0008091EB00806214C09091EB009061909331
+:101DE000EB0021E030E0A90102C0440F551F8A95A5
+:101DF000E2F74093EA001092EA008091EB008860DD
+:101E00008093EB001092E9008091E800877F86C004
+:101E10008111A7C01091F4011F778091E3008078B1
+:101E2000812B8093E3008091E800877F8093E80016
+:101E30000E94960C8091E80080FFFCCF8091E30027
+:101E400080688093E300111102C082E001C083E04A
+:101E50008093F10186C08058823008F082C0809162
+:101E6000F4019091F5018C3D53E0950779F583E0FD
+:101E70008A838AE289834FB7F894DE01139620E0C3
+:101E80003EE051E2E32FF0E050935700E49120FF51
+:101E900003C0E295EF703F5FEF708E2F90E0EA3065
+:101EA00010F0C79601C0C0968D939D932F5F24318B
+:101EB00049F74FBF8091E800877F8093E8006AE28E
+:101EC00070E0CE0101960E949D0B14C0AE014F5FE1
+:101ED0005F4F6091F6010E94E40ABC01009709F48B
+:101EE00040C09091E800977F9093E80089819A81A3
+:101EF0000E94000C8091E8008B778093E80031C04D
+:101F0000803879F58091E800877F8093E8008091A0
+:101F1000ED018093F1008091E8008E778093E800D6
+:101F20000E94960C1EC081111CC09091F401923049
+:101F3000C0F48091E800877F8093E8009093ED01E2
+:101F40000E94960C8091ED01811106C08091E30002
+:101F500087FD02C081E001C084E08093F1010E940E
+:101F6000E0098091E80083FF0AC08091E800877F44
+:101F70008093E8008091EB0080628093EB00AA964A
+:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A
+:101F900008950895CF938091F1018823A1F0C09115
+:101FA000E900CF709091EC00892F817090FD80E85E
+:101FB000C82B1092E9008091E80083FD0E94780E02
+:101FC000CF70C093E900CF910895909375018093ED
+:101FD00074010895E0917401F0917501309721F03A
+:101FE0000190F081E02D099480E00895E091740162
+:101FF000F0917501309721F00280F381E02D099472
+:102000000895E0917401F0917501309721F00480FA
+:10201000F581E02D099408952091720130917301AA
+:102020008217930771F09093730180937201E0918E
+:102030007401F0917501309721F00680F781E02D51
+:1020400009940895209170013091710182179307CE
+:1020500071F09093710180937001E0917401F0919F
+:102060007501309721F00084F185E02D09940895E1
+:1020700008950C9438100E94921B0E9433030C9414
+:10208000541C9F92AF92BF92CF92DF92EF92FF9239
+:102090000F931F93CF93DF9300D000D000D0CDB724
+:1020A000DEB70E944B030DE010E0AA24A394B12CEC
+:1020B000902E802F0E943904980129583E4F6901C3
+:1020C000F901F080F826A1F40150110988F78FEF8B
+:1020D00089838A831B820E949B1B8160782F9D834A
+:1020E0008C8349815A816B818D810E94D8102FC0C9
+:1020F0009091DA0191FF04C08E830E943F048E818B
+:1021000025E030E0A501022E01C0440F0A94EAF751
+:10211000E42E4F21C1F029839A828E2191E009F4A7
+:1021200090E09B830E949B1B8160782F9D838C8312
+:1021300049815A816B818D810E94D810F60180817E
+:10214000E826E08204C021503109E0F6BDCF0E94AC
+:102150003B1F109176010E94EA0F1817B9F00E94F8
+:10216000EA0F8093760126960FB6F894DEBF0FBE75
+:10217000CDBFDF91CF911F910F91FF90EF90DF9036
+:10218000CF90BF90AF909F900C94E30826960FB627
+:10219000F894DEBF0FBECDBFDF91CF911F910F919D
+:1021A000FF90EF90DF90CF90BF90AF909F900895F9
+:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82
+:1021C0000FBECDBF4F83588769877A878B87DE0123
+:1021D000119686E0FD0111928A95E9F785E0FE01EE
+:1021E000379601900D928A95E1F749815A816B816A
+:1021F0007C818D819E810E9421172B960FB6F894C9
+:10220000DEBF0FBECDBFDF91CF910895CF9388235E
+:1022100009F4C2C0C82F823859F40E94EA0F81FD28
+:10222000BBC089E30E94FB190E94C81A89E30CC055
+:10223000833879F40E94EA0F80FDAEC083E50E94E6
+:10224000FB190E94C81A83E50E943D1ACF910C9495
+:10225000C81A843859F40E94EA0F82FD9DC087E4B1
+:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6
+:10227000813A48F48C2F0E947E2181118DC08C2FD1
+:102280000E94FB19E3CF80E28C0F883048F4C770BE
+:1022900081E001C0880FCA95EAF70E94811AD6CF63
+:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB
+:1022B00083E890E005C081E890E002C082E890E009
+:1022C000CF910C940C1088E58C0F833108F064C01A
+:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118
+:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186
+:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106
+:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173
+:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB
+:1023200038C082EE90E035C089EE90E032C08AEE8F
+:1023300090E02FC085EB90E02CC086EB90E029C0A8
+:1023400087EB90E026C08CEC90E023C08DEC90E011
+:1023500020C083E891E01DC08AE891E01AC082E9BC
+:1023600091E017C084E991E014C081E292E011C0CD
+:1023700083E292E00EC084E292E00BC085E292E03C
+:1023800008C086E292E005C087E292E002C08AE2DD
+:1023900092E0CF910C942210CF910895882309F4F4
+:1023A0004BC0823859F40E94EA0F81FF45C089E38F
+:1023B0000E94FB190E94C81A89E30CC0833871F48B
+:1023C0000E94EA0F80FF38C083E50E94FB190E943B
+:1023D000C81A83E50E943D1A0C94C81A843859F42F
+:1023E0000E94EA0F82FF28C087E40E94FB190E9426
+:1023F000C81A87E4EFCF9CEF980F913A58F390E218
+:10240000980F983050F4877091E001C0990F8A9529
+:10241000EAF7892F0E94871ADFCF9BE5980F933048
+:1024200020F480E090E00C940C10885A833120F462
+:1024300080E090E00C9422100895882321F00E94FF
+:10244000811A0C94C81A0895882321F00E94871AD3
+:102450000C94C81A08957F928F929F92AF92BF9268
+:10246000CF92DF92EF92FF920F931F93CF93DF9360
+:102470001F92CDB7DEB77C01C62E772EFC010581F9
+:1024800002950F70128111110E949E1A0E94F41978
+:10249000882379F0112369F080E28C0D883048F0B0
+:1024A00082E00E94DD190E94F41991E0D82ED9260D
+:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C
+:1024C0000C94B323872D807F072D0F70882311F084
+:1024D0000295007F112389F0002309F490C180E266
+:1024E0008C0D883020F4802F0E94811A03C0802F29
+:1024F0000E94911A0E94C81A82C18C2D0E94CE118E
+:10250000002309F495C180E28C0D883020F4802FDF
+:102510000E94871A03C0802F0E94971A0E94C81A2F
+:1025200087C1972D907F872D8F70903211F0829503
+:10253000807FCC2021F0F1E0CF16B1F01EC0112336
+:1025400049F0002309F414C1013009F011C10E94BF
+:10255000B11A6EC1002319F0013009F469C18983F1
+:102560000E94B41A89810AC1112321F0023008F0B7
+:102570005FC1FEC001115CC101C1112321F0002324
+:1025800009F4F6C03CC1002309F4F8C03EC1872D10
+:1025900086958695837090E0009719F0019761F019
+:1025A00047C1112321F08C2D972D937002C080E03C
+:1025B00090E00E940C103CC1112321F08C2D972D2E
+:1025C000937002C080E090E00E94221031C18C2DF7
+:1025D000112319F00E94431E02C00E94AB1E0E94EC
+:1025E000301F26C1872D837009F052C0111120C100
+:1025F0008C2D829586958770880F880F9C2D9F70F3
+:10260000892E912CA12CB12C082E04C0880C991C69
+:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041
+:1026200020E030E0B901A80104C0440F551F661F27
+:10263000771F8A95D2F7CB01BA0160957095809586
+:10264000909503C060E070E0CB01272D269526957C
+:10265000237030E02230310569F02330310589F0F4
+:10266000682979298A299B292130310571F00E9436
+:102670006918DEC0682979298A299B290E94851852
+:10268000D7C00E946918C501B4010E944D18D0C07E
+:10269000112319F0872D817001C08695882309F4D4
+:1026A000C7C08C2D829586958770880F880F9C2DCA
+:1026B0009F70892E912CA12CB12C082E04C0880C5F
+:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC
+:1026D00010E020E030E0B901A80104C0440F551F0C
+:1026E000661F771F8A95D2F7CB01BA016095709566
+:1026F0008095909503C060E070E0CB01272D269572
+:1027000026952370422F50E04230510569F0433046
+:10271000510589F0682979298A299B294130510579
+:1027200071F00E94431984C0682979298A299B295C
+:102730000E945F197DC00E944319C501B4010E9427
+:10274000271976C08C2D90E0FC01E05EF109E5319F
+:10275000F10508F050C0E059FF4F0C94B3230C2D45
+:102760000F70872D8F71112331F00E94C018802FB8
+:102770000E941D125DC00E94E118802F0E94241249
+:1027800057C0112339F0011153C0872D8F710E945A
+:1027900006194EC0023008F04BC0F7CF112339F0B4
+:1027A000872D8F710E94C01843C01123C9F3872D54
+:1027B0008F710E94E1183CC0112329F0872D8F7181
+:1027C0000E94AB1835C00E94A11832C0112351F0ED
+:1027D000172D1F71812F0E94C01863E0812F0E9466
+:1027E000D41926C081E00E94DD19023008F182E090
+:1027F0000E94DD191DC0112331F0002389F28C2DB8
+:102800000E94061115C0002391F28C2D0E94CE115A
+:102810000FC0472D4F706C2DC7010E9415050E94F7
+:10282000C51706C0472D4F706C2DC7010E94F205D9
+:10283000DD20F9F00E94D01980FD1BC0F701128243
+:102840000E94CA190E94C018C7010E9448140E9421
+:10285000CA190F90DF91CF911F910F91FF90EF90C8
+:10286000DF90CF90BF90AF909F908F907F900C940F
+:10287000E1180F90DF91CF911F910F91FF90EF9092
+:10288000DF90CF90BF90AF909F908F907F900895F2
+:102890000F931F93CF93DF93EC01888199812B8154
+:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B
+:1028B0000E944A05882371F0688179818A810E948B
+:1028C000C6198C010E947B190E944218B801CE01E2
+:1028D0000E942B12DF91CF911F910F9108950E94BA
+:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471
+:1028F000E11F0E94301F80E090E00E940C1080E0F9
+:1029000090E00C9422100E948E1A0C946F140E9476
+:10291000BB19292F22952F7030E02C3031054CF453
+:102920002A3031056CF42250310922303105A8F4E7
+:1029300007C02C30310569F02F30310551F00DC042
+:10294000803F69F018F4803E40F409C0843F29F4C8
+:1029500006C093FB882780F9089580E0089581E000
+:102960000895CF93DF9300D000D01F92CDB7DEB78C
+:102970000F900F900F900F900F90DF91CF910895CF
+:10298000CF93DF9300D000D000D0CDB7DEB726962E
+:102990000FB6F894DEBF0FBECDBFDF91CF91089583
+:1029A0001F93CF93DF93C091850116E0809186013C
+:1029B000C81799F0D0E01C9FF0011D9FF00D112465
+:1029C000E957FE4F408151816281738184819581F5
+:1029D0000E94C0142196C770E9CFDF91CF911F915B
+:1029E00008954091B7015091B8016091B90170917B
+:1029F000BA018091BB019091BC010C94C0148091EC
+:102A0000BC0182958F7009F054C08091B901882370
+:102A100009F44FC080918501A09186016091B701B2
+:102A20007091B8014091BA015091BB01B6E08A178C
+:102A300009F43FC090E041155105C1F17F3F11F409
+:102A40006F3FA1F1B89FF001B99FF00D1124E95734
+:102A5000FE4F218172132AC02081621327C0228178
+:102A6000211124C0238134812417350710F421500B
+:102A70003109241B350B283C3105C0F42091BC01E1
+:102A80002F7020612093BC0126E0289FF001299F30
+:102A9000F00D1124E457FE4F80818F708061808398
+:102AA00087EB91E00E9448140C94D0140196877033
+:102AB000BECF0895CF92DF92EF92FF920F931F93B4
+:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32
+:102AD0000FBECDBF8C0185E0F801DE011D9601908F
+:102AE0000D928A95E1F7D8014C9111965C9111975E
+:102AF00012966C9112971396CD90DC9014973091AA
+:102B0000B7017091B8018091BA019091BB01009713
+:102B100009F46BC17F3F19F43F3F09F466C1E090AF
+:102B2000B901EE2009F4C0C02091BC01C816D90635
+:102B300028F0F601E81BF90BCF0104C080959095B1
+:102B40008C0D9D1DFF24F394883C910578F0F12CA9
+:102B5000207F09F0C6C07C2DD98AC88A89890E9445
+:102B6000B11487EB91E00E944814B1C0822F807F9E
+:102B700009F046C0751314C0341312C0611110C09F
+:102B80002F7020612093BC010E94F11487EB91E02B
+:102B90000E9448148091BC01D80115968C932EC0D8
+:102BA000CD2819F15F3F11F44F3FF9F0F62E611176
+:102BB0001CC0809185012091860136E0821709F4BE
+:102BC0005AC090E0389FF001399FF00D1124E95769
+:102BD000FE4F7181571306C07081471303C0728185
+:102BE000711103C001968770E9CFF62E662309F4B0
+:102BF00018C18091BC0181608093BC01F12C11C18E
+:102C0000751308C0341306C0611104C08091BC0163
+:102C1000D801C3C04D875E878D859E856A8B0E94D3
+:102C200087146A898823E1F16623D1F12091BC01E0
+:102C3000822F82958F7090E0029774F08091B70197
+:102C40009091B80198878F831986DB86CA862C8776
+:102C5000CE0107960E94481486E0F801A7EBB1E088
+:102C600001900D928A95E1F70E94FF140E94F114E1
+:102C7000FF24F394D6C04D875E878D859E850E9484
+:102C8000BB19292F22952F7030E0223031050CF02E
+:102C9000BCC09F7009F0B6C0805E883008F4C1C027
+:102CA000C8010E944814E4CFC816D90608F453C0DE
+:102CB000F601E81BF90BCF01883C910508F450C0E0
+:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E
+:102CD000F1E086E0DF011D928A95E9F70E94F11488
+:102CE000A0C0751314C0341312C0611110C08091BC
+:102CF000BC01F8018583C8010E94481486E0E7EB17
+:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C
+:102D10005E878D859E856A8B0E9487146A898823C9
+:102D200009F4BECF662309F4BBCF2091BC01822FEA
+:102D300082958F7090E002970CF48ECF8091B7014E
+:102D40009091B8019A8389831B82DD82CC822E8385
+:102D5000CE0101967FCF809590958C0D9D1DACCFB7
+:102D6000F62E662309F49CCF75132EC034132CC0A5
+:102D70002091BC0120FD1FC0822F82958F70D9F059
+:102D8000D80115962C9315978F3049F08F5F982FA7
+:102D90009295907F822F8F70892B15968C93C80106
+:102DA0000E94481486E0F801A7EBB1E001900D9273
+:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7
+:102DC0000D928A95E1F72DC04D875E878D859E8592
+:102DD0000E948714811140CF8091BC018160809353
+:102DE000BC01C8010E9448141CC0662309F458CFD6
+:102DF0004D875E878D859E850E948714882309F400
+:102E00004FCF2ACF811148CF0CC0243031050CF0B0
+:102E100047CF9F7009F440CFF8019581907F09F06A
+:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D
+:102E3000DF91CF911F910F91FF90EF90DF90CF9096
+:102E400008951F93CF93DF93CDB7DEB72C970FB6BE
+:102E5000F894DEBF0FBECDBF4F83588769877A874E
+:102E60008B879C87CE0107960E945A15882369F0AC
+:102E70008F8198852A853B85232BF1F19F3F09F0AF
+:102E800063C08F3F09F060C037C086E0FE0137960F
+:102E9000DE01119601900D928A95E1F76F81788598
+:102EA000EA85FB85309741F17F3F11F46F3F21F1B7
+:102EB0002091860130E0C9010196877099274091E1
+:102EC000850150E08417950709F447C069837A8328
+:102ED000FD83EC8396E0929FD001939FB00D112467
+:102EE000A957BE4FFE01319601900D929A95E1F7D8
+:102EF000809386010E94D01416E080918501909104
+:102F000086018917C1F1189FC001112489579E4F6E
+:102F10000E945A15882379F1E09185011E9FF001E6
+:102F20001124E957FE4F4081518162817381848170
+:102F300095810E94C0148091850190E00196877070
+:102F4000992780938501D9CF4F81588569857A85E6
+:102F50008B859C850E94C014CFCF0E948314109251
+:102F6000860110928501E7EBF1E086E0DF011D921A
+:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45
+:102F8000CDBFDF91CF911F910895EF92FF920F93E4
+:102F90001F93CF93DF938C01009709F46CC0F12C41
+:102FA000EE24E394E8012196F8018491843740F4FB
+:102FB000843008F051C0813081F0823019F15BC05B
+:102FC000853709F444C0A8F19CE7980F903708F0C2
+:102FD00052C08F770E94CE1141C00E5F1F4FFE017D
+:102FE000C49180E28C0F883048F4C7708E2D01C0E8
+:102FF000880FCA95EAF70E94A11A14C08C2F0E946C
+:1030000006112DC00E5F1F4FFE01C49180E28C0F90
+:10301000883058F4C7708E2D01C0880FCA95EAF722
+:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3
+:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3
+:103040009FE00197F1F700C00000C150F6CF0E5F7E
+:103050001F4FFE01F49003C00E9406118E018F2DB8
+:10306000882309F49FCFEFE9FFE03197F1F700C023
+:1030700000008150F5CFDF91CF911F910F91FF900C
+:10308000EF90089508956093C1017093C2018093F9
+:10309000C3019093C4010C946F140F931F9300917C
+:1030A000C1011091C2012091C3013091C401DC0122
+:1030B000CB01802B912BA22BB32B8093C10190933A
+:1030C000C201A093C301B093C4011F910F910C944E
+:1030D0006F140F931F930091C1011091C2012091B1
+:1030E000C3013091C401DC01CB0180239123A223D1
+:1030F000B3238093C1019093C201A093C301B09305
+:10310000C4011F910F910C946F140F931F930091A2
+:10311000C1011091C2012091C3013091C401DC01B1
+:10312000CB0180279127A227B3278093C1019093D9
+:10313000C201A093C301B093C4011F910F910C94DD
+:103140006F141092BD011092BE011092BF01109237
+:10315000C0010C946F1441E050E060E070E004C0E6
+:10316000440F551F661F771F8A95D2F74093BD0104
+:103170005093BE016093BF017093C0010C946F1413
+:1031800041E050E060E070E004C0440F551F661F4E
+:10319000771F8A95D2F78091BD019091BE01A091D1
+:1031A000BF01B091C001482B592B6A2B7B2B409358
+:1031B000BD015093BE016093BF017093C0010C9498
+:1031C0006F1441E050E060E070E004C0440F551F10
+:1031D000661F771F8A95D2F7409550956095709538
+:1031E0008091BD019091BE01A091BF01B091C0013D
+:1031F000482359236A237B234093BD015093BE018A
+:103200006093BF017093C0010C946F1441E050E0D3
+:1032100060E070E004C0440F551F661F771F8A9559
+:10322000D2F78091BD019091BE01A091BF01B091F4
+:10323000C001482759276A277B274093BD01509337
+:10324000BE016093BF017093C0010C946F140F9383
+:103250001F930091BD011091BE012091BF013091DB
+:10326000C001DC01CB01802B912BA22BB32B8093CF
+:10327000BD019093BE01A093BF01B093C0011F9107
+:103280000F910C946F140F931F930091BD01109137
+:10329000BE012091BF013091C001DC01CB01802330
+:1032A0009123A223B3238093BD019093BE01A093E9
+:1032B000BF01B093C0011F910F910C946F140F9335
+:1032C0001F930091BD011091BE012091BF0130916B
+:1032D000C001DC01CB0180279127A227B32780936F
+:1032E000BD019093BE01A093BF01B093C0011F9197
+:1032F0000F910C946F140895CF92DF92EF92FF928A
+:103300000F931F93CF93DF938C01C090C101D09096
+:10331000C201E090C301F090C4018091BD01909181
+:10332000BE01A091BF01B091C001C82AD92AEA2AE2
+:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520
+:10334000A795979587950A94D2F780FF06C0B80194
+:103350008C2F0E944808019721F4219760F780E0A4
+:1033600001C08C2FDF91CF911F910F91FF90EF90B3
+:10337000DF90CF900895CF93DF93EC010E947C19EA
+:10338000BE010E944808DF91CF910895CB010E94B1
+:10339000BB1908958091C5018595859585950895FA
+:1033A0008091C5018770089598E0899F900111244C
+:1033B000262B2093C5010C94C0182091C50180953F
+:1033C00082238093C501982F977069F430E0482FCD
+:1033D000552747FD50952417350729F08595859584
+:1033E00085950C94E11808959091C501977081E03E
+:1033F00009F480E0089590910C01992321F09091B7
+:103400000D01911109C020910E0130910F01F901B8
+:1034100032969FEF40E01FC0982F9695969596950F
+:103420009F3050F5E0910E01F0910F01E90FF11D71
+:10343000877021E030E0A90102C0440F551F8A9532
+:10344000E2F7CA019181892B818308959F3F39F06A
+:103450004F5F4E3041F051915813F8CF0DC05111CC
+:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08
+:1034700097FDFA9582830895089590910C01992300
+:1034800021F090910D01911109C020910E01309110
+:103490000F01F9013296205F3F4F1FC0982F96957C
+:1034A000969596959F30F0F4E0910E01F0910F0102
+:1034B000E90FF11D877021E030E0A90102C0440F3F
+:1034C000551F8A95E2F7CA018095918189238183EE
+:1034D00008953196E217F30729F090819813F9CFF8
+:1034E0001082F7CF089581E090E0E0910E01F09115
+:1034F0000F01E80FF91F1082019680319105A9F79D
+:1035000008959091D901892B8093D90108958095D0
+:103510009091D90189238093D90108951092D901FE
+:1035200008959091D801892B8093D80108958095B2
+:103530009091D80189238093D80108951092D801E1
+:1035400008959091D701892B8093D7010895809594
+:103550009091D70189238093D70108951092D701C4
+:1035600008958093C60108951092C6010895809130
+:103570000E0190910F01FC0131969C01205F3F4F9D
+:1035800080E0919191118F5FE217F307D1F70895D1
+:10359000E0910E01F0910F018091D9018083E091BB
+:1035A0000E01F0910F0190818091D801892B8083C9
+:1035B000E0910E01F0910F0190818091D701892B4C
+:1035C00080838091C601882361F0E0910E01F09123
+:1035D0000F019081892B80830E94B71A811110926C
+:1035E000C60180910E0190910F010C94F60F20E01E
+:1035F000009739F0AC0141505109842395232F5F86
+:10360000F7CF822F0895CF92DF92EF92FF926C0155
+:10361000EE24FF24C114D104E104F10421F0C70118
+:10362000B60120E101C020E0C72ED82EE92EFF24EC
+:10363000C114D104E104F10419F0285FC701B601F7
+:103640006B017C0154E0F694E794D794C7945A95A3
+:10365000D1F7C114D104E104F10419F02C5FC701C2
+:10366000B6016B017C0142E0F694E794D794C794CD
+:103670004A95D1F7C114D104E104F10419F02E5F89
+:10368000C701B601DC01CB01B695A7959795879543
+:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5
+:1036A000DF90CF9008958091F101843021F1109244
+:1036B000DB0120E488E190E00FB6F894A8958093B0
+:1036C00060000FBE2093600080E00E94E30883B793
+:1036D000817F846083BF83B7816083BF789488953E
+:1036E00083B78E7F83BF88E10FB6F8948093600024
+:1036F000109260000FBE0895089508950E947C1BEB
+:103700000E944B030E947D1B0E94400491E08111A6
+:1037100001C090E0892F08950E9483140E94EA0F4F
+:103720000C94E30882E084BD93E095BD9AEF97BDC9
+:1037300080936E0008952FB7F8948091DC019091EA
+:10374000DD01A091DE01B091DF012FBF0895CF927E
+:10375000DF92EF92FF920F931F932FB7F89440914F
+:10376000DC015091DD016091DE017091DF012FBF1E
+:103770006A017B01EE24FF248C0120E030E0C016BA
+:10378000D106E206F30610F4415051099A01281BB4
+:10379000390BC9011F910F91FF90EF90DF90CF90EF
+:1037A00008951F920F920FB60F9211248F939F933B
+:1037B000AF93BF938091DC019091DD01A091DE0178
+:1037C000B091DF010196A11DB11D8093DC019093A2
+:1037D000DD01A093DE01B093DF01BF91AF919F9116
+:1037E0008F910F900FBE0F901F9018950E94E70CBD
+:1037F000F8942FEF87EA91E6215080409040E1F75E
+:1038000000C0000087E090EBDC018093FB01909307
+:10381000FC01A093FD01B093FE019CE088E10FB68E
+:10382000F894A895809360000FBE90936000FFCF3E
+:10383000EF92FF920F931F93CF93DF93D82FCDE09A
+:103840008C2F0E94390405E010E0E82EF12CC7010E
+:10385000002E02C0959587950A94E2F780FF09C073
+:10386000602F7C2F80E00E94F305D81302C081E016
+:1038700006C00150110958F7C15010F780E0DF91E0
+:10388000CF911F910F91FF90EF900895CF93C82F84
+:103890008CE20E94181C882321F08C2FCF910C946D
+:1038A000181C80E0CF910895CF930E949B1D811139
+:1038B00002C00E94811DC5E6C15049F00E944B0321
+:1038C0008FE39CE90197F1F700C00000F5CF89E292
+:1038D0000E94461C811113C18AE20E94461C81117C
+:1038E0000E94811D85E00E94461C81110E94F61BEA
+:1038F0000E94A61D8093DA0187E00E94461C88235F
+:10390000A9F18BE10E94461C882351F08091DA01D5
+:1039100081FB222720F991E0922790FB81F90EC0CC
+:103920008EE00E94461C882361F08091DA0182FBC0
+:10393000222720F991E0922790FB82F98093DA0107
+:1039400015C080E10E94461C9091DA01882341F065
+:1039500093FB222720F981E0822780FB93F904C0A2
+:10396000892F809580FB90F99093DA018091DA019C
+:103970000E94AA1D0E94B81D8093FA0180EE0E9449
+:10398000461C882341F08091FA01982F909590FB76
+:1039900080F98093FA0189E30E94461C882359F03C
+:1039A0008091FA0181FB222720F991E0922790FB78
+:1039B00081F98093FA0182EE0E94461C882359F017
+:1039C0008091FA0182FB222720F991E0922790FB57
+:1039D00082F98093FA0186EE0E94461C882359F0F2
+:1039E0008091FA0183FB222720F991E0922790FB36
+:1039F00083F98093FA0183EE0E94461C882359F0D4
+:103A00008091FA0184FB222720F991E0922790FB14
+:103A100084F98093FA0185E30E94461C882359F0BB
+:103A20008091FA0185FB222720F991E0922790FBF3
+:103A300085F98093FA0181E30E94461C882359F09E
+:103A40008091FA0186FB222720F991E0922790FBD2
+:103A500086F98093FA0181E10E94461C882359F07F
+:103A60008091FA0187FB222720F991E0922790FBB1
+:103A700087F98093FA018091FA010E94BC1D809120
+:103A8000FA0187FB882780F980930D0187E20E9465
+:103A9000461CC82F8EE10E94461C8111C2608FE136
+:103AA0000E94461C8111C46080E20E94461C811164
+:103AB000C86081E20E94461C8111C06182E20E94BE
+:103AC000461C8111C06283E20E94461C8111C064C1
+:103AD00084E20E94461C882311F0C06802C0CC23F7
+:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4
+:103AF000682F70E080E090E0CF910C944318CF9154
+:103B000008956DEE7EEF80E090E00E94ED2360E08E
+:103B100082E090E00E94DB2360E083E090E00E947E
+:103B2000DB2360E084E090E00E94DB2360E085E03E
+:103B300090E00C94DB2380E090E00E94D52321E00C
+:103B40008D3E9E4F09F020E0822F089582E090E0A4
+:103B50000C94CD23682F82E090E00C94DB2383E06B
+:103B600090E00C94CD23682F83E090E00C94DB234D
+:103B700084E090E00C94CD23682F84E090E00C94D6
+:103B8000DB238091E20180FF0BC06091130185E08F
+:103B9000689FB001112475956795759567952BC041
+:103BA00081FF09C06091130185E0689FB001112475
+:103BB0007595679520C082FF07C06091130185E06D
+:103BC000689FB001112417C09091E3019923D1F0AF
+:103BD00060911201961788F72091130185E0289FC4
+:103BE00090011124929FA001939F500D112470E029
+:103BF000CA010E949F236038710540F46115710568
+:103C000039F002C065E070E0862F08958FE70895CF
+:103C100081E008958091E20180FF08C06091110168
+:103C200070E0759567957595679521C081FF06C011
+:103C30006091110170E07595679519C082FF04C00D
+:103C40006091110170E010C09091E3019923C1F0DF
+:103C5000609110019617A0F780911101899FC00112
+:103C6000112470E00E949F236038710528F46115CB
+:103C7000710521F0862F08958FE7089581E008955A
+:103C800061E070E0F4CF803F21F40E94C11D819576
+:103C900004C0813F29F40E94C11D8093E60108956C
+:103CA000823F21F40E94C11D819504C0833F29F405
+:103CB0000E94C11D8093E5010895893F19F40E9477
+:103CC0000A1E05C08A3F31F40E940A1E8195809326
+:103CD000E70108958B3F21F40E940A1E819504C0DC
+:103CE0008C3F29F40E940A1E8093E8010895843FC6
+:103CF00021F48091E401816017C0853F21F4809117
+:103D0000E401826011C0863F21F48091E401846067
+:103D10000BC0873F21F48091E401886005C0883F93
+:103D200031F48091E40180618093E40108958D3F36
+:103D300021F48091E20181600BC08E3F21F48091DB
+:103D4000E201826005C08F3F29F48091E201846026
+:103D50008093E2010895803F39F48091E60187FF66
+:103D60006CC01092E60169C0813F29F48091E601A0
+:103D70001816BCF362C09091E501823F29F497FFC9
+:103D80005CC01092E50159C0833F19F41916CCF3B9
+:103D900054C0893F41F48091E70118160CF04DC0E2
+:103DA0001092E7014AC08A3F29F48091E70187FF1A
+:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6
+:103DC0001092E8013AC08C3F29F48091E80118165E
+:103DD000BCF333C0843F21F48091E4018E7F17C08F
+:103DE000853F21F48091E4018D7F11C0863F21F44D
+:103DF0008091E4018B7F0BC0873F21F48091E40127
+:103E0000877F05C0883F31F48091E4018F7E8093E5
+:103E1000E40113C08D3F21F48091E2018E7F0BC03D
+:103E20008E3F21F48091E2018D7F05C08F3F29F400
+:103E30008091E2018B7F8093E2018091E501811105
+:103E40000EC08091E60181110AC08091E7018111C5
+:103E500006C08091E801811102C01092E30108952B
+:103E600084EE91E00E9401100E949B1B9093E1015F
+:103E70008093E00108951F93CF93DF938091E00139
+:103E80009091E1010E94A71BAC019091E30199235D
+:103E900021F02091140130E006C0209115018AE044
+:103EA000289F900111244217530708F486C080917F
+:103EB000E501C091E601D091E7011091E80181117F
+:103EC00007C0C11176C0D11174C0111172C075C084
+:103ED0009F3F19F09F5F9093E301181624F40E940E
+:103EE000C11D8093E5018091E50187FF05C00E9417
+:103EF000C11D81958093E5011C1624F40E94C11D0B
+:103F00008093E6018091E60187FF05C00E94C11DF4
+:103F100081958093E6016091E501662339F1C091B6
+:103F2000E601CC2319F1772767FD7095872F972F2E
+:103F30000E94B02223E333E343E35FE30E941423B0
+:103F40000E947D226093E5016C2F772767FD7095B5
+:103F5000872F972F0E94B02223E333E343E35FE3ED
+:103F60000E9414230E947D226093E6011D1624F412
+:103F70000E940A1E8093E7018091E70187FF05C038
+:103F80000E940A1E81958093E701111624F40E9475
+:103F90000A1E8093E8018091E80187FF05C00E9416
+:103FA0000A1E81958093E801DF91CF911F910C94B7
+:103FB000301F9F3F09F08ECF96CFDF91CF911F9199
+:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE
+:103FD0001092E3011092E2010895833081F128F4F8
+:103FE000813059F08230D1F00895853009F449C00C
+:103FF000B8F1863009F456C0089580911501262F36
+:1040000030E0280F311D2F3F310524F4680F6093F5
+:10401000150108958FEF8093150108958091140183
+:10402000262F30E0280F311D2F3F310524F4680F73
+:104030006093140108958FEF809314010895809187
+:104040001301262F30E0280F311D2F3F310524F4B6
+:10405000680F6093130108958FEF80931301089503
+:1040600080911201262F30E0280F311D2F3F31059E
+:1040700024F4680F6093120108958FEF809312016A
+:10408000089580911101262F30E0280F311D2F3F18
+:10409000310524F4680F6093110108958FEF809328
+:1040A0001101089580911001262F30E0280F311D55
+:1040B0002F3F310524F4680F6093100108958FEFAE
+:1040C000809310010895833011F128F4813049F074
+:1040D000823091F00895853081F120F18630C1F170
+:1040E000089580911501681720F4861B80931501AF
+:1040F000089510921501089580911401681720F415
+:10410000861B8093140108951092140108958091E4
+:104110001301681720F4861B8093130108951092F1
+:104120001301089580911201681720F4861B809373
+:1041300012010895109212010895809111016817DB
+:1041400020F4861B809311010895109211010895A7
+:1041500080911001681720F4861B80931001089548
+:104160001092100108950F931F938D3109F46BC0C5
+:1041700008F03FC08E3009F47FC0C0F4873009F4E6
+:1041800069C068F4863009F0B1C08091DA01817F9E
+:104190008E7F8093DA0181E08093EA01A8C08830A5
+:1041A00009F4A2C08B3009F49FC0A0C0863109F485
+:1041B0009BC078F4803109F472C0813109F096C057
+:1041C0000E94831490910D0181E0892780930D0155
+:1041D0008BC0893109F488C08B3109F087C0809188
+:1041E000DA0181FB222720F991E0922790FB81F9E7
+:1041F0004CC0853309F470C048F4873209F46CC0B0
+:1042000008F459C0893209F467C070C0833438F4A7
+:104210008A3308F04EC0883309F466C067C083341F
+:1042200009F45AC0883409F061C00E9483140FEF6A
+:1042300013ED20E3015010402040E1F700C00000E2
+:104240000E94F61B51C00E9437220E94EA0F0E9472
+:10425000E3084AC09091DA01892F8095817080FB34
+:1042600090F929F0966098609093DA0140C0997FA8
+:10427000977F9093DA0138C08091DA0182FB222780
+:1042800020F991E0922790FB82F98093DA0199233B
+:1042900059F18091DA0181608093DA0125C0809123
+:1042A000DA0183FB222720F991E0922790FB83F922
+:1042B000ECCF895301C08D5141E050E060E070E0E7
+:1042C0008A019B0104C0000F111F221F331F8A9512
+:1042D000D2F7C901B80104C061E070E080E090E06D
+:1042E0000E9443180E94831481E001C080E01F9166
+:1042F0000F91089580E0089580E00895CF93C82F2E
+:104300008091EA01813079F018F08230E9F187C0BC
+:10431000E0910E01F0910F018081813169F08232CC
+:1043200009F07FC009C0E0910E01F0910F0180817A
+:10433000813111F0823261F48C2F0E947A21811137
+:1043400004C08C2F0E94B3201DC081E090E01AC0F1
+:104350008C2F0E947C21811114C0C43179F048F463
+:10436000CB3079F0C03109F060C082E08093EA017F
+:1043700008C0C93219F0C83321F057C01092EA01C1
+:1043800054C081E0817053C0C93289F118F5C4313D
+:1043900071F1A8F4C73009F046C08AE08093150196
+:1043A00094E19093140193E0909313018093120190
+:1043B00088E08093110188E28093100134C0CE51CF
+:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB
+:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC
+:1043E00013C0C13579F0C235F1F461E00DC08091A0
+:1043F000E901882319F01092E90115C081E080934A
+:10440000EA0115C061E006C08091E9010E94ED1F3C
+:104410000AC06AE08091E9010E94632004C0109202
+:10442000EA0180E004C081E002C080E0ABCFCF9120
+:104430000895E1E8F0E08081886080838081816078
+:1044400080838FB7F89493E09093890090ED9093D8
+:1044500088008FBF0895EFE6F0E08081826080835E
+:104460000895EFE6F0E080818D7F80830895EFE688
+:10447000F0E0908182E08927808308951F920F9257
+:104480000FB60F9211242F933F934F935F936F9327
+:104490007F938F939F93AF93BF93EF93FF938091FD
+:1044A000EB019091EC0101969093EC018093EB016C
+:1044B000811103C082E00E94E308E091EC01E695DF
+:1044C000E695F0E0EC54FB4FE4918091EB018E1304
+:1044D00003C080E00E94E308FF91EF91BF91AF918C
+:1044E0009F918F917F916F915F914F913F912F910C
+:1044F0000F900FBE0F901F90189504D06894B111C3
+:104500008DC0089570D088F09F5790F0B92F9927EB
+:10451000B751A0F0D1F0660F771F881F991F1AF0CE
+:10452000BA95C9F712C0B13081F077D0B1E00895E3
+:1045300074C0672F782F8827B85F39F0B93FCCF364
+:10454000869577956795B395D9F73EF490958095C4
+:10455000709561957F4F8F4F9F4F0895E89409C0E4
+:1045600097FB3EF490958095709561957F4F8F4FA6
+:104570009F4F9923A9F0F92F96E9BB279395F695BC
+:10458000879577956795B795F111F8CFFAF4BB0F3A
+:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E
+:1045A000882311F096E911C0772321F09EE8872F28
+:1045B000762F05C0662371F096E8862F70E060E0E4
+:1045C0002AF09A95660F771F881FDAF7880F96955D
+:1045D000879597F9089557FD9058440F551F59F046
+:1045E0005F3F71F04795880F97FB991F61F09F3FE0
+:1045F00079F087950895121613061406551FF2CF09
+:104600004695F1DF08C0161617061806991FF1CF58
+:1046100086957105610508940895E894BB2766277F
+:104620007727CB0197F908950BD078C069D028F08F
+:104630006ED018F0952309F05AC05FC01124EECF58
+:10464000CADFA0F3959FD1F3950F50E0551F629FED
+:10465000F001729FBB27F00DB11D639FAA27F00DDB
+:10466000B11DAA1F649F6627B00DA11D661F829F02
+:104670002227B00DA11D621F739FB00DA11D621FE7
+:10468000839FA00D611D221F749F3327A00D611D04
+:10469000231F849F600D211D822F762F6A2F1124E6
+:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39
+:1046B000BB1F661F771F881F91505040A9F79E3F70
+:1046C000510570F014C0AACF5F3FECF3983EDCF3C5
+:1046D000869577956795B795F795E7959F5FC1F7AD
+:1046E000FE2B880F911D9695879597F9089597F958
+:1046F0009F6780E870E060E008959FEF80EC089588
+:1047000000240A94161617061806090608950024B0
+:104710000A9412161306140605060895092E03942A
+:10472000000C11F4882352F0BB0F40F4BF2B11F49E
+:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF
+:10474000072E16F4009407D077FD09D00E94B923F4
+:1047500007FC05D03EF4909581959F4F0895709584
+:1047600061957F4F0895EE0FFF1F0590F491E02DA6
+:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8
+:10478000B70710F0A61BB70B881F991F5A95A9F7FA
+:1047900080959095BC01CD010895F999FECF92BD09
+:1047A00081BDF89A992780B50895A8E1B0E042E06C
+:1047B00050E00C94F523262FF999FECF92BD81BDD0
+:1047C000F89A019700B4021639F01FBA20BD0FB64F
+:1047D000F894FA9AF99A0FBE08950196272F0E942D
+:1047E000DC230C94DB23DC01CB01FC01F999FECF27
+:1047F00006C0F2BDE1BDF89A319600B40D92415069
+:0A4800005040B8F70895F894FFCF78
+:10480A000220E508730950091C09E8080101C701DB
+:10481A0028080A03140A3F4D363975042804F2039E
+:10482A00B9034C0365037E039703010203040506DB
+:04483A000708090062
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/jgarr/keymap.c b/keyboards/ergodox_ez/keymaps/jgarr/keymap.c new file mode 100644 index 000000000..a3ad2040f --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/jgarr/keymap.c @@ -0,0 +1,184 @@ +#include "ergodox_ez.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 + * + * ,--------------------------------------------------. ,-----------------------------------------------------. + * | Grv | 1 | 2 | 3 | 4 | 5 | Del | |Backspace| 6 | 7 | 8 | 9 | 0 | \ | + * |--------+------+------+------+------+-------------| |---------+------+------+------+------+------+--------| + * | Tab | ' | , | . | P | Y | L1 | | L1 | F | G | C | R | L | / | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * |Ctrl/Esc| A | O | E | U | I |------| |---------| D | H | T | N |S / L2| - | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |:/Ctrl| Q | J | K | X | | | | B | M | W | V |Z/Ctrl| RShift | + * `--------+------+------+------+------+-------------' `----------------+------+------+------+------+--------' + * | Ctrl | LGui | Alt | Left | Right| | Up | Down | [ | ] | = | + * `----------------------------------' `----------------------------------' + * ,--------------. ,-------------. + * | AltShf| LGui | | Alt | ~L1 | + * ,------|-------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * | Space|Backsp |------| |------| 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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_DELT, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, TG(1), + CTL_T(KC_ESC), KC_A, KC_O, KC_E, KC_U, KC_I, + KC_LSFT, CTL_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, ALL_T(KC_NO), + KC_LCTL, KC_LGUI, KC_LALT, KC_LEFT, KC_RGHT, + LALT(KC_LSFT), KC_LGUI, + KC_HOME, + KC_SPC,KC_BSPC,KC_END, + // right hand + KC_BSPC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + TG(1), KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + KC_D, KC_H, KC_T, KC_N, LT(MDIA, KC_S), KC_MINS, + MEH_T(KC_NO),KC_B, KC_M, KC_W, KC_V, CTL_T(KC_Z), KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_EQL, + KC_LALT, KC_FN1, + KC_PGUP, + KC_PGDN,KC_ENT, KC_SPC + ), +/* 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| |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | | |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +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) { + 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/kastyle/compiled.hex b/keyboards/ergodox_ez/keymaps/kastyle/compiled.hex new file mode 100644 index 000000000..0a229cac5 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/kastyle/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4
+:100010000C94BE020C94BE020C94BE020C94BE0260
+:100020000C94BE020C94BE020C94620D0C94340E1F
+:100030000C94BE020C94BE020C94BE020C94BE0240
+:100040000C94BE020C943E220C94BE020C94BE0290
+:100050000C94BE020C94D11B0C94BE020C94BE02F4
+:100060000C94BE020C94BE020C94BE020C94BE0210
+:100070000C94BE020C94BE020C94BE020C94BE0200
+:100080000C94BE020C94BE020C94BE020C94BE02F0
+:100090000C94BE020C94BE020C94BE020C94BE02E0
+:1000A0000C94BE020C94BE020C94BE02A10EC30EB0
+:1000B000B10FC30EB10F080F2B0FB10F800F930FAD
+:1000C0006212621291129112C712E71218141814D8
+:1000D000F2121814A213A2130914181418141214EB
+:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300
+:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0
+:10010000C113CE13D513DC13E6130000F0A12E00AB
+:100110002B00E000E100354100001E001400040047
+:100120001D7134004D001F001A0016001B00E10471
+:100130004C00200008000700060050002A002100A3
+:100140001500090019004F004A00220017000A009C
+:10015000050000002971E30001540000007F000049
+:10016000657465000154000000770000E200230080
+:100170001C000B00110000002971240018000D0064
+:10018000100052004B0025000C000E0036005100FC
+:100190002C00260012000F0037002F002800270037
+:1001A00013003342387130004E002D00310034000E
+:1001B000E500C10000000100010001000100010094
+:1001C00000003A001E0220022202010001003B0052
+:1001D0001F0221022302010001003C002F0226021F
+:1001E0002F00010001003D00300227023000010015
+:1001F00001003E003102350035020000010001001F
+:1002000001000000010000000100010001000000E9
+:100210000100000001003F005200510024020000D4
+:1002200001004000240021001E00010001004100E7
+:10023000250022001F003700010042002600230095
+:10024000200027000100430025022E0231002E006D
+:100250000100440045000100010001000000010010
+:100260000100010001000100000001000100010087
+:1002700001000100010001000100F2000100010085
+:1002800001000100F000F1000100F4000100010094
+:100290000100F3000100F500010001000100010070
+:1002A0000100000001000100010000000100000049
+:1002B0000100010001000000010000000100010038
+:1002C0000100010001000000010001000100010027
+:1002D0000100A9000100010001000100AC00AA001A
+:1002E000B600010001000100AB00A8000100010000
+:1002F0000100010001000100010001000100AE0049
+:1003000001000100000016034500720067006F0045
+:1003100044006F007800200045005A0000001603DA
+:100320004500720067006F0044006F0078002000F5
+:1003300045005A0000000403090409026D0004018D
+:1003400000A0FA09040000010301010009211101C4
+:100350000001223F000705810308000A090401008B
+:100360000103010200092111010001224D000705CE
+:10037000820308000A0904020001030000000921A9
+:10038000110100012236000705830308000A090451
+:1003900003000103000000092111010001223900BE
+:1003A000070584031000011201100100000008ED90
+:1003B000FE071301000102000105010906A1010564
+:1003C0000719E029E7150025019508750181020547
+:1003D000081901290595057501910295017503918B
+:1003E0000105071900297715002501957875018108
+:1003F00002C005010980A101850216010026B7008F
+:100400001A01002AB700751095018100C0050C097A
+:1004100001A1018503160100269C021A01002A9CF5
+:1004200002751095018100C005010902A1010901B1
+:10043000A10005091901290515002501950575017A
+:10044000810295017503810105010930093115818A
+:10045000257F95027508810609381581257F95014C
+:1004600075088106050C0A38021581257F950175EE
+:10047000088106C0C005010906A101050719E02988
+:10048000E715002501950875018102950175088120
+:100490000105081901290595057501910295017558
+:1004A0000391010507190029FF150025FF95067521
+:1004B000088100C0000000000000000000000001F2
+:1004C0000204060A0F17202C3A4A5D71879DB3C7B4
+:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF
+:1004E0003A2C20170F0A0604020100000000000049
+:1004F0000000000011241FBECFEFDAE0DEBFCDBF49
+:1005000004B603FE24C08091FB019091FC01A091F0
+:10051000FD01B091FE018730904BA740B04BB9F47C
+:100520001092FB011092FC011092FD011092FE014D
+:1005300014BE84B7877F84BF88E10FB6F894809398
+:100540006000109260000FBEE0E0FFE3099511E04B
+:10055000A0E0B1E0EAE0F8E402C005900D92A43317
+:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0
+:10057000B107E1F70E94A60A0C9403240C94000032
+:100580001092B9008AE08093B800089594EA90939D
+:10059000BC009091BC0097FFFCCF9091B900987F70
+:1005A000983021F0903111F081E008958093BB00E4
+:1005B00084E88093BC008091BC0087FFFCCF8091D1
+:1005C000B900887F883111F0803471F780E0089598
+:1005D00084E98093BC008091BC0084FDFCCF089529
+:1005E0008093BB0084E88093BC008091BC0087FFAF
+:1005F000FCCF9091B900987F81E0983209F480E0B7
+:10060000089584E88093BC008091BC0087FFFCCFF4
+:100610008091BB00089580910101811115C080E493
+:100620000E94C6028093010181110CC082E10E94E8
+:10063000F00280930101811105C08FEF0E94F0024A
+:10064000809301010E94E80284B1807F84B985B162
+:10065000807F85B98AB1837F8AB98BB1837F8BB95B
+:100660003E98469808950E94C604809301010E9416
+:100670000B0380B38C7080BB81B3836F81BBA5E318
+:10068000B1E0E3E4F1E08EE08E0F11921D928E1343
+:10069000FCCF0C94B004BF92CF92DF92EF92FF9206
+:1006A0000F931F93CF93DF9380910101882379F0FB
+:1006B000809134018F5F80933401811108C00E94C2
+:1006C000C60480930101811102C00E94580405E311
+:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407
+:1006E000E394F12CC730D10500F58091010181110F
+:1006F00064C080E40E94C60280930101811112C08F
+:1007000082E10E94F0028093010181110BC0C701B8
+:100710000C2E01C0880F0A94EAF780950E94F0021F
+:10072000809301010E94E80248C0CA30A1F028F479
+:10073000C83059F0C93061F005C0CC3089F070F094
+:10074000CD3089F0209A289810C0219A29980DC0A0
+:10075000229A2A980AC0239A2B9807C0529A01C05D
+:10076000539A5B9802C03E9A469890EA9A95F1F7A0
+:100770009FB1799902C082E001C080E091709D250F
+:10078000982B7C9902C084E001C080E0892B7D9980
+:1007900002C038E001C030E0832B7E9902C020E126
+:1007A00001C020E0822B9FB19095991F9927991F36
+:1007B0009295990F907E892B0FC080910101811134
+:1007C00049C080E40E94C60280930101882379F128
+:1007D000B12C0E94E8028B2DF8019081981719F036
+:1007E0008083C09200010E940B0321960F5F1F4F70
+:1007F000CE30D10509F076CF80910001882361F1D8
+:10080000815080930001882339F08FE99FE00197A0
+:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F
+:10082000CF01825F91919D938E13FCCF15C083E120
+:100830000E94F002809301018111CACF81E40E94DD
+:10084000C602809301018111C3CF0E940103B82E1B
+:10085000B094BFCF80E0C0CF0E94560481E0DF910A
+:10086000CF911F910F91FF90EF90DF90CF90BF90AD
+:100870000895E82FF0E0ED5BFE4F80810895089524
+:100880000F931F93CF93DF93C3E4D1E010E00C2FBD
+:10089000025F899190E00E94F71A180F0C13F9CFAC
+:1008A000812FDF91CF911F910F9108950C94260510
+:1008B00056985E9825982D9826982E9827982F98C8
+:1008C0008FEF90E0909389008093880090938B0045
+:1008D00080938A0090938D0080938C00259A2D9AA6
+:1008E0002FEF80E792E0215080409040E1F700C078
+:1008F0000000269A2E9A2FEF80E792E02150804048
+:100900009040E1F700C00000279A2F9A2FEF80E770
+:1009100092E0215080409040E1F700C0000025980F
+:100920002D982FEF80E792E0215080409040E1F732
+:1009300000C0000026982E982FEF80E792E021500B
+:1009400080409040E1F700C0000027982F9856980B
+:100950005E9825982D9826982E9827982F98089578
+:1009600089EA8093800089E08093810024982C9804
+:100970003F988AB18F748AB96E98479A8BB1806B11
+:100980008BB9769A0E9458040C94250580E28093D6
+:1009900001018091510181110EC00E94C00281E0CD
+:1009A000809351012FEF83ED90E3215080409040E0
+:1009B000E1F700C0000080E40E94C60280930101BC
+:1009C00081112EC00E94F00280930101811128C084
+:1009D0000E94F00280930101811122C08FE30E94E6
+:1009E000F0028093010181111BC00E94E80280E4A3
+:1009F0000E94C60280930101811112C08CE00E9406
+:100A0000F0028093010181110BC00E94F0028093DB
+:100A10000101811105C08FE30E94F0028093010162
+:100A20000E94E80280910101089561110BC0FC0150
+:100A30008281882321F085EE0E94061103C085EE95
+:100A40000E94CE1180E090E0089508956091BD016C
+:100A50007091BE018091BF019091C0010E94031B63
+:100A600056985E9825982D9826982E9827982F9816
+:100A7000813019F0823021F00895259A2D9A089539
+:100A8000269A2E9A089581E0089581E008950C94A5
+:100A9000450508950F931F93CF93DF938C01FC01BD
+:100AA000C081D181CE010E947C19BE010E94F30554
+:100AB000EC01B8010E944705882309F48DC0F801B4
+:100AC0008281882309F44AC080915D0181111FC091
+:100AD000C431F0E5DF0709F051C00E94490581E00B
+:100AE00080935D010E949B1B90935C0180935B014E
+:100AF0001092540110925601109255011092580113
+:100B00001092570110925A011092590165C08091BC
+:100B10005B0190915C010E94A71B883C910570F4D9
+:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB
+:100B3000D183C0838F5F809354014EC0C43880E559
+:100B4000D80721F0C538D04501F13AC0F8018281BB
+:100B5000882341F01092520182E01EC0C438E0E5C3
+:100B6000DE0759F580915201811106C086E20E948C
+:100B7000061186E20E94CE1182E01CC0C438F0E566
+:100B8000DF0741F3C538D045D9F4F80182818823C5
+:100B900031F01092530180E20E941D121DC080911D
+:100BA0005301811106C087E20E94061187E20E946C
+:100BB000CE1180E20E9424120FC0C538D04529F31F
+:100BC00081E08093520180935301C801DF91CF915E
+:100BD0001F910F910C94430580E0DF91CF911F91FD
+:100BE0000F910895089596E0799FF001112494E5FE
+:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F
+:100C0000E25FFE4F859194910895880F991FFC0132
+:100C1000E657F040859194910895880F991FFC0143
+:100C2000E65FFE4F8591949108950F931F93CF93A4
+:100C3000DF93EC01811520E3920750F5C11580E2A6
+:100C4000D80708F0C3C0CB3BD10590F4C83AD10512
+:100C500008F06AC0C53AD10508F05BC0C430D105C0
+:100C600008F0D0C1219709F0CAC101E010E00AC222
+:100C7000CF3FD10511F008F0C5C1C03FD10508F044
+:100C8000A2C0CE01805E9109089708F4BBC1B7C12C
+:100C9000C13090E5D90709F4A2C020F5C0318FE436
+:100CA000D80770F4C11590E4D90708F094C0C115B5
+:100CB00021E3D20708F0A3C1DD278E01106CE2C149
+:100CC000C115D04509F09BC10E9483148FEF94E3B6
+:100CD0002CE0815090402040E1F700C000000E94CD
+:100CE000F61BD0C1C11597E5D90758F4C03121E5ED
+:100CF000D20708F01CC1C43180E5D80708F475C0DC
+:100D00007EC1CE0190578115904108F078C1DF7007
+:100D100073C1C53AD10509F477C1C63AD10509F0C6
+:100D200076C102E810E4AEC1C83AD10509F472C137
+:100D3000C93AD10509F471C1CA3AD10509F470C1A3
+:100D4000CB3AD10509F46FC1CC3AD10509F46EC193
+:100D5000CD3AD10509F46DC1C03BD10509F46CC190
+:100D6000CE3AD10509F46BC1CF3AD10509F46AC175
+:100D7000C13BD10509F469C1C23BD10509F468C181
+:100D8000C33BD10509F467C1C43BD10509F466C171
+:100D9000C53BD10509F465C1C63BD10509F464C161
+:100DA000C73BD10509F463C1C83BD10509F462C151
+:100DB000C93BD10509F461C1CA3BD10509F460C141
+:100DC00000E014E45FC18E0110655CC1CE019F702C
+:100DD0000E940D0658C1DF708E01106A53C18091C8
+:100DE000DA0181608093DA014DC10E949B1D81115F
+:100DF00002C00E94811D0E94B81D90E09093FB01EB
+:100E00008093FA01C23080E5D80721F48091FA017D
+:100E1000816086C0C43090E5D90721F48091FA0141
+:100E200082607EC0C63020E5D20721F48091FA01AD
+:100E3000846076C0C83080E5D80719F48091FA0143
+:100E400027C0CA3090E5D90721F48091FA0180616A
+:100E500067C0CC3020E5D20721F48091FA0180628E
+:100E60005FC0CE3080E5D80721F48091FA0180641C
+:100E700057C0C03190E5D90721F48091FA0180680C
+:100E80004FC0C23120E5D20729F48091FA01846075
+:100E9000886046C0C33080E5D80721F48091FA010C
+:100EA0008E7F3EC0C53090E5D90721F48091FA01CC
+:100EB0008D7F36C0C73020E5D20721F48091FA013A
+:100EC0008B7F2EC0C93080E5D80719F48091FA01D4
+:100ED00026C0CB3090E5D90721F48091FA018F7EAE
+:100EE0001FC0CD3020E5D20721F48091FA018F7D1B
+:100EF00017C0CF3080E5D80721F48091FA018F7BAD
+:100F00000FC0C13190E5D90721F48091FA018F77A4
+:100F100007C0C331D04531F48091FA018B7F877FC0
+:100F20008093FA018091FA010E94BC1DABC08D2F05
+:100F300099278F70992781309105D9F49E012370EC
+:100F4000332702C0880F991F2A95E2F79C688E010B
+:100F500044E0000F111F4A95E1F700271370802B22
+:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA
+:100F70002FC08230910531F4DC2FCC278E01016F18
+:100F8000106A80C08330910569F4CE01837099277F
+:100F900001E010E002C0000F111F8A95E2F7C801BE
+:100FA0009C680FC084309105B9F4CE0183709927F5
+:100FB00001E010E002C0000F111F8A95E2F7C8019E
+:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029
+:100FD0008C010C2B1D2B56C08530910531F4DC2F74
+:100FE000CC278E01046F106A4DC0069709F04AC0E5
+:100FF000CF71DD27DC2FCC278E01106243C000E0CB
+:1010000010E040C08E013EC001E810E43BC003E8A0
+:1010100010E438C002EE14E435C009EE14E432C026
+:101020000AEE14E42FC005EB14E42CC006EB14E424
+:1010300029C007EB14E426C00CEC14E423C00DEC2B
+:1010400014E420C003E815E41DC00AE815E41AC042
+:1010500002E915E417C004E915E414C001E216E43E
+:1010600011C003E216E40EC004E216E40BC005E270
+:1010700016E408C006E216E405C007E216E402C062
+:101080000AE216E4C801DF91CF911F910F910895F4
+:1010900096E0799FF001112494E5899FE00DF11D00
+:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149
+:1010B0009491803E9105E0F4803C910558F5813390
+:1010C000910509F46FC048F48932910509F463C0B1
+:1010D0008A32910509F46DC072C089339105E9F037
+:1010E00082389105D1F08533910509F44DC067C070
+:1010F000833E910581F138F4803E9105B9F0823E3E
+:101100009105D9F05CC0863E910561F1873E91055D
+:10111000A1F155C00E94050608952091FA0120FD15
+:1011200002C021FF4CC080EE90E049C08091FA01DE
+:1011300080FFF9CF89E390E042C08091FA0182FFFD
+:101140000EC08091FA0184FF03C080E090E037C0B8
+:1011500083EE90E034C08091FA0182FFF2CF82EEFC
+:1011600090E02DC08091FA0183FF0BC08091FA01BD
+:1011700084FDEBCF87EE90E022C08091FA0183FFDF
+:10118000F5CF86EE90E01BC08091FA0185FF07C085
+:1011900089E290E014C08091FA0185FFF9CF85E3E0
+:1011A00090E00DC08091FA0186FF07C08AE290E0CE
+:1011B00006C08091FA0186FFF9CF81E390E00E949A
+:1011C0001506089508950C94E20880916E01089523
+:1011D000CF93DF9300D01F92CDB7DEB79C018091F3
+:1011E000F101843019F593E099833B832A8390932E
+:1011F000E9008FEF9091E800815095FD06C095EDD4
+:101200009A95F1F700008111F5CF8091E80085FFF4
+:101210000DC040E050E063E070E0CE0101960E9416
+:10122000520B8091E8008E778093E8000F900F902A
+:101230000F90DF91CF910895CF93DF9300D01F924D
+:10124000CDB7DEB72091F101243021F522E02983CA
+:101250009B838A8383E08093E9008FEF9091E8007D
+:10126000815095FD06C095ED9A95F1F7000081112A
+:10127000F5CF8091E80085FF0DC040E050E063E0CD
+:1012800070E0CE0101960E94520B8091E8008E77AB
+:101290008093E8000F900F900F90DF91CF91089509
+:1012A0002091F1012430F1F422E02093E9002FEFA6
+:1012B0003091E800215035FD06C035ED3A95F1F743
+:1012C00000002111F5CF2091E80025FF0BC040E080
+:1012D00050E065E070E00E94520B8091E8008E774C
+:1012E0008093E8000895CF93DF93EC019091F10192
+:1012F000943009F046C080910C018823D9F0809188
+:101300000D018823B9F09093E9008FEF9091E800E8
+:10131000815095FD06C095E19A95F1F70000811185
+:10132000F5CF8091E80085FF2CC040E050E060E1FF
+:1013300070E017C081E08093E9008FEF9091E800A2
+:10134000815095FD06C095ED9A95F1F70000811149
+:10135000F5CF8091E80085FF14C040E050E068E0E0
+:1013600070E0CE010E94520B8091E8008E7780934E
+:10137000E80080E1FE01AEE5B1E001900D928A95B2
+:10138000E1F7DF91CF9108958091F001811109C0BB
+:101390000E94E70C0E94440D8091E20084608093DB
+:1013A000E20008951092F001089508950C942B2204
+:1013B0000E948C1B0E9431220E94EA0F0C94E308C9
+:1013C00042E061EC81E00E94610C42E061EC82E06D
+:1013D0000E94610C42E061EC83E00E94610C42E1FA
+:1013E00061EC84E00C94610C8091F301833009F48A
+:1013F00055C030F4813071F0823009F48EC0089508
+:101400008A3009F47AC08B3009F460C0893009F061
+:101410009CC020C08091F201813A09F096C0809171
+:10142000E800877F8093E8008091F6019091F701B2
+:10143000892B21F460E18EE591E003C060E080E05B
+:1014400090E070E00E949D0B8091E8008B77809384
+:10145000E80008958091F201813209F076C0809110
+:10146000F6019091F701009719F0039709F06DC00C
+:101470008091E800877F8093E8008091E80082FDFA
+:1014800005C08091F1018111F8CF5FC08091F1001A
+:1014900080936E018091E8008B7753C08091F201B8
+:1014A000813A09F052C08091F6019091F701892BA1
+:1014B00009F04BC08091E800877F8093E80080911D
+:1014C000E80080FFFCCF80910C0136C08091F201D2
+:1014D0008132D9F58091F6019091F701892BA9F518
+:1014E0008091E800877F8093E8000E94960C8091AD
+:1014F000F40180930C010C9483148091F2018132E9
+:1015000021F58091E800877F8093E8000E94960C87
+:101510008091F50180936F0108958091F201813AE5
+:10152000A1F48091E800877F8093E8008091E80033
+:1015300080FFFCCF80916F018093F1008091E800E3
+:101540008E778093E8000C94960C089584B7877F7B
+:1015500084BF88E10FB6F894809360001092600019
+:101560000FBE90E080E80FB6F894809361009093EE
+:1015700061000FBE0E9439100E94E70C0E94440DCA
+:101580008091E20084608093E20078940E94CA0F08
+:101590000E943B1082E091E00E94E50F0E94192218
+:1015A0008091F101853069F40E94531B8091EF0115
+:1015B0008823B1F30E947E1B882391F30E943C0B89
+:1015C000EFCF0E944110ECCF292F33272330310574
+:1015D000C9F064F42130310581F02230310509F081
+:1015E00043C08DE690E02AE333E042C0213231056A
+:1015F000F1F02232310541F137C082E190E027EA73
+:1016000033E036C099278130910541F08230910551
+:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4
+:1016200002C0E6E0F3E0849190E09F0121C06430C5
+:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5
+:10164000318189E090E014C0643070F470E0FB01F7
+:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47
+:10166000FE4F808190E004C080E090E020E030E018
+:10167000FA0131832083089580E189BD82E189BD2B
+:1016800009B400FEFDCF8091D8008F7D8093D800F3
+:101690008091E00082608093E0008091E00081FD15
+:1016A000FCCF0895CF92DF92EF92FF920F931F939A
+:1016B000CF93DF93EC018B016A010E94B50C81117D
+:1016C00033C0C114D10439F0F60180819181081B27
+:1016D000190BC80FD91FE12CF12C0115110519F1B7
+:1016E0008091E80085FD16C08091E8008E77809398
+:1016F000E800C114D10449F0F60180819181E80E1F
+:10170000F91EF182E08285E00FC00E94B50C8823AB
+:1017100021F30AC089918093F10001501109FFEF74
+:10172000EF1AFF0ADACF80E0DF91CF911F910F917E
+:10173000FF90EF90DF90CF9008952091F8013091C5
+:10174000F9012617370748F06115710539F4209122
+:10175000E8002E772093E80001C0B90140E0611550
+:101760007105A9F12091F101222309F443C025302C
+:1017700009F442C02091E80023FD40C02091E80018
+:1017800022FD32C02091E80020FFE9CF4091F30014
+:101790002091F20030E0342BFC01CF01611571057E
+:1017A00059F02830310540F481918093F100615067
+:1017B00071092F5F3F4FF1CF41E02830310509F02B
+:1017C00040E02091E8002E772093E800C8CF411137
+:1017D000C9CF0AC08091F101882361F0853061F0A2
+:1017E0008091E80083FD0AC08091E80082FFF2CF7B
+:1017F00080E0089582E0089583E0089581E00895EF
+:101800002091F8013091F9012617370748F061154A
+:10181000710539F42091E8002E772093E80001C08B
+:10182000B901FC0120E06115710591F18091F10190
+:10183000882309F440C0853009F43FC08091E80056
+:1018400083FD3DC08091E80082FD2FC08091E800BB
+:1018500080FFE9CF2091F3008091F20090E0922B7D
+:101860006115710559F08830910540F42491209359
+:10187000F1003196615071090196F2CF21E008978D
+:1018800009F020E08091E8008E778093E800CBCFCC
+:101890002111CCCF0AC08091F101882361F08530FD
+:1018A00061F08091E80083FD0AC08091E80082FF2A
+:1018B000F2CF80E0089582E0089583E0089581E00A
+:1018C0000895982F973058F59093E900981739F0BC
+:1018D0007091EC002091ED005091F00003C0242F96
+:1018E000762F50E021FF19C03091EB003E7F3093FE
+:1018F000EB003091ED003D7F3093ED003091EB0037
+:1019000031603093EB007093EC002093ED00509326
+:10191000F0002091EE0027FF07C09F5FD3CF8F70AC
+:101920008093E90081E0089580E008958091F201BC
+:1019300087FF11C08091E80082FD05C08091F10110
+:101940008111F8CF11C08091E8008B770BC0809196
+:10195000F101882349F08091E80080FFF8CF809161
+:10196000E8008E778093E80008952091E40030919C
+:10197000E50095E64091EC00842F817040FF22C085
+:101980008091E80080FD1CC08091F101882391F0D6
+:10199000853091F08091EB0085FD10C04091E4000E
+:1019A0005091E5004217530729F39A01915011F71E
+:1019B00084E0089582E0089583E0089581E0089529
+:1019C00080E008954091E80042FFDECF08950E9434
+:1019D000550D0E945D0DE0EEF0E080818160808316
+:1019E000E8EDF0E080818F77808319BCA7EDB0E04F
+:1019F0008C918E7F8C9380818F7E80831092F001FA
+:101A000008950F931F93CF93DF930E94550D0E946B
+:101A10005D0DC8EDD0E088818F77888388818068EC
+:101A2000888388818F7D888319BC1092F101109280
+:101A3000ED011092EF011092EE0100EE10E0F801BE
+:101A400080818B7F808388818160888342E060E031
+:101A500080E00E94610CE1EEF0E080818E7F808367
+:101A6000E2EEF0E080818160808380818860808305
+:101A7000F80180818E7F8083888180618883DF91F7
+:101A8000CF911F910F910895E8EDF0E080818F7E56
+:101A90008083E7EDF0E080818160808384E082BF15
+:101AA00081E08093F0010C94010DE8EDF0E080817D
+:101AB0008E7F80831092E20008951092DA001092D7
+:101AC000E10008951F920F920FB60F9211242F93E9
+:101AD0003F934F935F936F937F938F939F93AF93B6
+:101AE000BF93EF93FF938091E10082FF0BC0809141
+:101AF000E20082FF07C08091E1008B7F8093E100CC
+:101B00000E94C90F8091DA0080FF1FC08091D80029
+:101B100080FF1BC08091DA008E7F8093DA00809175
+:101B2000D90080FF0DC080E189BD82E189BD09B483
+:101B300000FEFDCF81E08093F1010E94C40905C041
+:101B400019BC1092F1010E94D2098091E10080FF3E
+:101B500019C08091E20080FF15C08091E2008E7F65
+:101B60008093E2008091E20080618093E2008091A6
+:101B7000D80080628093D80019BC85E08093F10181
+:101B80000E94D6098091E10084FF30C08091E2007C
+:101B900084FF2CC080E189BD82E189BD09B400FECB
+:101BA000FDCF8091D8008F7D8093D8008091E10097
+:101BB0008F7E8093E1008091E2008F7E8093E2002F
+:101BC0008091E20081608093E2008091ED018823A2
+:101BD00011F084E007C08091E30087FD02C081E03E
+:101BE00001C083E08093F1010E94D8098091E10057
+:101BF00083FF29C08091E20083FF25C08091E1002E
+:101C0000877F8093E10082E08093F1011092ED01E3
+:101C10008091E1008E7F8093E1008091E2008E7FD1
+:101C20008093E2008091E20080618093E20042E0D4
+:101C300060E080E00E94610C8091F00088608093F9
+:101C4000F0000E94D509FF91EF91BF91AF919F9154
+:101C50008F917F916F915F914F913F912F910F9055
+:101C60000FBE0F901F9018951F920F920FB60F92F4
+:101C700011242F933F934F935F936F937F938F9391
+:101C80009F93AF93BF93CF93DF93EF93FF93C09155
+:101C9000E900CF708091EC00D82FD17080FDD0E8A2
+:101CA0001092E9008091F000877F8093F000789493
+:101CB0000E94780E1092E9008091F0008860809375
+:101CC000F000CD2BCF70C093E900FF91EF91DF9131
+:101CD000CF91BF91AF919F918F917F916F915F91C4
+:101CE0004F913F912F910F900FBE0F901F9018951D
+:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3
+:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115
+:101D1000F10091938E13FBCF0E94F4098091E800AB
+:101D200083FF1FC18091F2019091F301492F50E090
+:101D30004A30510508F015C1FA01EA5AFF4F0C94D8
+:101D4000B323803881F0823809F00BC18091F6010D
+:101D50008F708093E9008091EB0085FB882780F9E4
+:101D60001092E90006C08091EE019091EF0191116F
+:101D700082609091E800977F9093E8008093F10053
+:101D80001092F100C8C0282F2D7F09F0EAC08823E7
+:101D900019F0823061F0E5C08091F401813009F0E2
+:101DA000E0C0933009F080E08093EF012BC0809178
+:101DB000F401811127C08091F6018F7009F4D1C020
+:101DC0008093E9002091EB0020FF1CC0933021F4A8
+:101DD0008091EB00806214C09091EB009061909331
+:101DE000EB0021E030E0A90102C0440F551F8A95A5
+:101DF000E2F74093EA001092EA008091EB008860DD
+:101E00008093EB001092E9008091E800877F86C004
+:101E10008111A7C01091F4011F778091E3008078B1
+:101E2000812B8093E3008091E800877F8093E80016
+:101E30000E94960C8091E80080FFFCCF8091E30027
+:101E400080688093E300111102C082E001C083E04A
+:101E50008093F10186C08058823008F082C0809162
+:101E6000F4019091F5018C3D53E0950779F583E0FD
+:101E70008A838AE289834FB7F894DE01139620E0C3
+:101E80003EE051E2E32FF0E050935700E49120FF51
+:101E900003C0E295EF703F5FEF708E2F90E0EA3065
+:101EA00010F0C79601C0C0968D939D932F5F24318B
+:101EB00049F74FBF8091E800877F8093E8006AE28E
+:101EC00070E0CE0101960E949D0B14C0AE014F5FE1
+:101ED0005F4F6091F6010E94E40ABC01009709F48B
+:101EE00040C09091E800977F9093E80089819A81A3
+:101EF0000E94000C8091E8008B778093E80031C04D
+:101F0000803879F58091E800877F8093E8008091A0
+:101F1000ED018093F1008091E8008E778093E800D6
+:101F20000E94960C1EC081111CC09091F401923049
+:101F3000C0F48091E800877F8093E8009093ED01E2
+:101F40000E94960C8091ED01811106C08091E30002
+:101F500087FD02C081E001C084E08093F1010E940E
+:101F6000E0098091E80083FF0AC08091E800877F44
+:101F70008093E8008091EB0080628093EB00AA964A
+:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A
+:101F900008950895CF938091F1018823A1F0C09115
+:101FA000E900CF709091EC00892F817090FD80E85E
+:101FB000C82B1092E9008091E80083FD0E94780E02
+:101FC000CF70C093E900CF910895909375018093ED
+:101FD00074010895E0917401F0917501309721F03A
+:101FE0000190F081E02D099480E00895E091740162
+:101FF000F0917501309721F00280F381E02D099472
+:102000000895E0917401F0917501309721F00480FA
+:10201000F581E02D099408952091720130917301AA
+:102020008217930771F09093730180937201E0918E
+:102030007401F0917501309721F00680F781E02D51
+:1020400009940895209170013091710182179307CE
+:1020500071F09093710180937001E0917401F0919F
+:102060007501309721F00084F185E02D09940895E1
+:1020700008950C9438100E94921B0E9433030C9414
+:10208000541C9F92AF92BF92CF92DF92EF92FF9239
+:102090000F931F93CF93DF9300D000D000D0CDB724
+:1020A000DEB70E944B030DE010E0AA24A394B12CEC
+:1020B000902E802F0E943904980129583E4F6901C3
+:1020C000F901F080F826A1F40150110988F78FEF8B
+:1020D00089838A831B820E949B1B8160782F9D834A
+:1020E0008C8349815A816B818D810E94D8102FC0C9
+:1020F0009091DA0191FF04C08E830E943F048E818B
+:1021000025E030E0A501022E01C0440F0A94EAF751
+:10211000E42E4F21C1F029839A828E2191E009F4A7
+:1021200090E09B830E949B1B8160782F9D838C8312
+:1021300049815A816B818D810E94D810F60180817E
+:10214000E826E08204C021503109E0F6BDCF0E94AC
+:102150003B1F109176010E94EA0F1817B9F00E94F8
+:10216000EA0F8093760126960FB6F894DEBF0FBE75
+:10217000CDBFDF91CF911F910F91FF90EF90DF9036
+:10218000CF90BF90AF909F900C94E30826960FB627
+:10219000F894DEBF0FBECDBFDF91CF911F910F919D
+:1021A000FF90EF90DF90CF90BF90AF909F900895F9
+:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82
+:1021C0000FBECDBF4F83588769877A878B87DE0123
+:1021D000119686E0FD0111928A95E9F785E0FE01EE
+:1021E000379601900D928A95E1F749815A816B816A
+:1021F0007C818D819E810E9421172B960FB6F894C9
+:10220000DEBF0FBECDBFDF91CF910895CF9388235E
+:1022100009F4C2C0C82F823859F40E94EA0F81FD28
+:10222000BBC089E30E94FB190E94C81A89E30CC055
+:10223000833879F40E94EA0F80FDAEC083E50E94E6
+:10224000FB190E94C81A83E50E943D1ACF910C9495
+:10225000C81A843859F40E94EA0F82FD9DC087E4B1
+:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6
+:10227000813A48F48C2F0E947E2181118DC08C2FD1
+:102280000E94FB19E3CF80E28C0F883048F4C770BE
+:1022900081E001C0880FCA95EAF70E94811AD6CF63
+:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB
+:1022B00083E890E005C081E890E002C082E890E009
+:1022C000CF910C940C1088E58C0F833108F064C01A
+:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118
+:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186
+:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106
+:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173
+:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB
+:1023200038C082EE90E035C089EE90E032C08AEE8F
+:1023300090E02FC085EB90E02CC086EB90E029C0A8
+:1023400087EB90E026C08CEC90E023C08DEC90E011
+:1023500020C083E891E01DC08AE891E01AC082E9BC
+:1023600091E017C084E991E014C081E292E011C0CD
+:1023700083E292E00EC084E292E00BC085E292E03C
+:1023800008C086E292E005C087E292E002C08AE2DD
+:1023900092E0CF910C942210CF910895882309F4F4
+:1023A0004BC0823859F40E94EA0F81FF45C089E38F
+:1023B0000E94FB190E94C81A89E30CC0833871F48B
+:1023C0000E94EA0F80FF38C083E50E94FB190E943B
+:1023D000C81A83E50E943D1A0C94C81A843859F42F
+:1023E0000E94EA0F82FF28C087E40E94FB190E9426
+:1023F000C81A87E4EFCF9CEF980F913A58F390E218
+:10240000980F983050F4877091E001C0990F8A9529
+:10241000EAF7892F0E94871ADFCF9BE5980F933048
+:1024200020F480E090E00C940C10885A833120F462
+:1024300080E090E00C9422100895882321F00E94FF
+:10244000811A0C94C81A0895882321F00E94871AD3
+:102450000C94C81A08957F928F929F92AF92BF9268
+:10246000CF92DF92EF92FF920F931F93CF93DF9360
+:102470001F92CDB7DEB77C01C62E772EFC010581F9
+:1024800002950F70128111110E949E1A0E94F41978
+:10249000882379F0112369F080E28C0D883048F0B0
+:1024A00082E00E94DD190E94F41991E0D82ED9260D
+:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C
+:1024C0000C94B323872D807F072D0F70882311F084
+:1024D0000295007F112389F0002309F490C180E266
+:1024E0008C0D883020F4802F0E94811A03C0802F29
+:1024F0000E94911A0E94C81A82C18C2D0E94CE118E
+:10250000002309F495C180E28C0D883020F4802FDF
+:102510000E94871A03C0802F0E94971A0E94C81A2F
+:1025200087C1972D907F872D8F70903211F0829503
+:10253000807FCC2021F0F1E0CF16B1F01EC0112336
+:1025400049F0002309F414C1013009F011C10E94BF
+:10255000B11A6EC1002319F0013009F469C18983F1
+:102560000E94B41A89810AC1112321F0023008F0B7
+:102570005FC1FEC001115CC101C1112321F0002324
+:1025800009F4F6C03CC1002309F4F8C03EC1872D10
+:1025900086958695837090E0009719F0019761F019
+:1025A00047C1112321F08C2D972D937002C080E03C
+:1025B00090E00E940C103CC1112321F08C2D972D2E
+:1025C000937002C080E090E00E94221031C18C2DF7
+:1025D000112319F00E94431E02C00E94AB1E0E94EC
+:1025E000301F26C1872D837009F052C0111120C100
+:1025F0008C2D829586958770880F880F9C2D9F70F3
+:10260000892E912CA12CB12C082E04C0880C991C69
+:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041
+:1026200020E030E0B901A80104C0440F551F661F27
+:10263000771F8A95D2F7CB01BA0160957095809586
+:10264000909503C060E070E0CB01272D269526957C
+:10265000237030E02230310569F02330310589F0F4
+:10266000682979298A299B292130310571F00E9436
+:102670006918DEC0682979298A299B290E94851852
+:10268000D7C00E946918C501B4010E944D18D0C07E
+:10269000112319F0872D817001C08695882309F4D4
+:1026A000C7C08C2D829586958770880F880F9C2DCA
+:1026B0009F70892E912CA12CB12C082E04C0880C5F
+:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC
+:1026D00010E020E030E0B901A80104C0440F551F0C
+:1026E000661F771F8A95D2F7CB01BA016095709566
+:1026F0008095909503C060E070E0CB01272D269572
+:1027000026952370422F50E04230510569F0433046
+:10271000510589F0682979298A299B294130510579
+:1027200071F00E94431984C0682979298A299B295C
+:102730000E945F197DC00E944319C501B4010E9427
+:10274000271976C08C2D90E0FC01E05EF109E5319F
+:10275000F10508F050C0E059FF4F0C94B3230C2D45
+:102760000F70872D8F71112331F00E94C018802FB8
+:102770000E941D125DC00E94E118802F0E94241249
+:1027800057C0112339F0011153C0872D8F710E945A
+:1027900006194EC0023008F04BC0F7CF112339F0B4
+:1027A000872D8F710E94C01843C01123C9F3872D54
+:1027B0008F710E94E1183CC0112329F0872D8F7181
+:1027C0000E94AB1835C00E94A11832C0112351F0ED
+:1027D000172D1F71812F0E94C01863E0812F0E9466
+:1027E000D41926C081E00E94DD19023008F182E090
+:1027F0000E94DD191DC0112331F0002389F28C2DB8
+:102800000E94061115C0002391F28C2D0E94CE115A
+:102810000FC0472D4F706C2DC7010E9415050E94F7
+:10282000C51706C0472D4F706C2DC7010E94F205D9
+:10283000DD20F9F00E94D01980FD1BC0F701128243
+:102840000E94CA190E94C018C7010E9448140E9421
+:10285000CA190F90DF91CF911F910F91FF90EF90C8
+:10286000DF90CF90BF90AF909F908F907F900C940F
+:10287000E1180F90DF91CF911F910F91FF90EF9092
+:10288000DF90CF90BF90AF909F908F907F900895F2
+:102890000F931F93CF93DF93EC01888199812B8154
+:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B
+:1028B0000E944A05882371F0688179818A810E948B
+:1028C000C6198C010E947B190E944218B801CE01E2
+:1028D0000E942B12DF91CF911F910F9108950E94BA
+:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471
+:1028F000E11F0E94301F80E090E00E940C1080E0F9
+:1029000090E00C9422100E948E1A0C946F140E9476
+:10291000BB19292F22952F7030E02C3031054CF453
+:102920002A3031056CF42250310922303105A8F4E7
+:1029300007C02C30310569F02F30310551F00DC042
+:10294000803F69F018F4803E40F409C0843F29F4C8
+:1029500006C093FB882780F9089580E0089581E000
+:102960000895CF93DF9300D000D01F92CDB7DEB78C
+:102970000F900F900F900F900F90DF91CF910895CF
+:10298000CF93DF9300D000D000D0CDB7DEB726962E
+:102990000FB6F894DEBF0FBECDBFDF91CF91089583
+:1029A0001F93CF93DF93C091850116E0809186013C
+:1029B000C81799F0D0E01C9FF0011D9FF00D112465
+:1029C000E957FE4F408151816281738184819581F5
+:1029D0000E94C0142196C770E9CFDF91CF911F915B
+:1029E00008954091B7015091B8016091B90170917B
+:1029F000BA018091BB019091BC010C94C0148091EC
+:102A0000BC0182958F7009F054C08091B901882370
+:102A100009F44FC080918501A09186016091B701B2
+:102A20007091B8014091BA015091BB01B6E08A178C
+:102A300009F43FC090E041155105C1F17F3F11F409
+:102A40006F3FA1F1B89FF001B99FF00D1124E95734
+:102A5000FE4F218172132AC02081621327C0228178
+:102A6000211124C0238134812417350710F421500B
+:102A70003109241B350B283C3105C0F42091BC01E1
+:102A80002F7020612093BC0126E0289FF001299F30
+:102A9000F00D1124E457FE4F80818F708061808398
+:102AA00087EB91E00E9448140C94D0140196877033
+:102AB000BECF0895CF92DF92EF92FF920F931F93B4
+:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32
+:102AD0000FBECDBF8C0185E0F801DE011D9601908F
+:102AE0000D928A95E1F7D8014C9111965C9111975E
+:102AF00012966C9112971396CD90DC9014973091AA
+:102B0000B7017091B8018091BA019091BB01009713
+:102B100009F46BC17F3F19F43F3F09F466C1E090AF
+:102B2000B901EE2009F4C0C02091BC01C816D90635
+:102B300028F0F601E81BF90BCF0104C080959095B1
+:102B40008C0D9D1DFF24F394883C910578F0F12CA9
+:102B5000207F09F0C6C07C2DD98AC88A89890E9445
+:102B6000B11487EB91E00E944814B1C0822F807F9E
+:102B700009F046C0751314C0341312C0611110C09F
+:102B80002F7020612093BC010E94F11487EB91E02B
+:102B90000E9448148091BC01D80115968C932EC0D8
+:102BA000CD2819F15F3F11F44F3FF9F0F62E611176
+:102BB0001CC0809185012091860136E0821709F4BE
+:102BC0005AC090E0389FF001399FF00D1124E95769
+:102BD000FE4F7181571306C07081471303C0728185
+:102BE000711103C001968770E9CFF62E662309F4B0
+:102BF00018C18091BC0181608093BC01F12C11C18E
+:102C0000751308C0341306C0611104C08091BC0163
+:102C1000D801C3C04D875E878D859E856A8B0E94D3
+:102C200087146A898823E1F16623D1F12091BC01E0
+:102C3000822F82958F7090E0029774F08091B70197
+:102C40009091B80198878F831986DB86CA862C8776
+:102C5000CE0107960E94481486E0F801A7EBB1E088
+:102C600001900D928A95E1F70E94FF140E94F114E1
+:102C7000FF24F394D6C04D875E878D859E850E9484
+:102C8000BB19292F22952F7030E0223031050CF02E
+:102C9000BCC09F7009F0B6C0805E883008F4C1C027
+:102CA000C8010E944814E4CFC816D90608F453C0DE
+:102CB000F601E81BF90BCF01883C910508F450C0E0
+:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E
+:102CD000F1E086E0DF011D928A95E9F70E94F11488
+:102CE000A0C0751314C0341312C0611110C08091BC
+:102CF000BC01F8018583C8010E94481486E0E7EB17
+:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C
+:102D10005E878D859E856A8B0E9487146A898823C9
+:102D200009F4BECF662309F4BBCF2091BC01822FEA
+:102D300082958F7090E002970CF48ECF8091B7014E
+:102D40009091B8019A8389831B82DD82CC822E8385
+:102D5000CE0101967FCF809590958C0D9D1DACCFB7
+:102D6000F62E662309F49CCF75132EC034132CC0A5
+:102D70002091BC0120FD1FC0822F82958F70D9F059
+:102D8000D80115962C9315978F3049F08F5F982FA7
+:102D90009295907F822F8F70892B15968C93C80106
+:102DA0000E94481486E0F801A7EBB1E001900D9273
+:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7
+:102DC0000D928A95E1F72DC04D875E878D859E8592
+:102DD0000E948714811140CF8091BC018160809353
+:102DE000BC01C8010E9448141CC0662309F458CFD6
+:102DF0004D875E878D859E850E948714882309F400
+:102E00004FCF2ACF811148CF0CC0243031050CF0B0
+:102E100047CF9F7009F440CFF8019581907F09F06A
+:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D
+:102E3000DF91CF911F910F91FF90EF90DF90CF9096
+:102E400008951F93CF93DF93CDB7DEB72C970FB6BE
+:102E5000F894DEBF0FBECDBF4F83588769877A874E
+:102E60008B879C87CE0107960E945A15882369F0AC
+:102E70008F8198852A853B85232BF1F19F3F09F0AF
+:102E800063C08F3F09F060C037C086E0FE0137960F
+:102E9000DE01119601900D928A95E1F76F81788598
+:102EA000EA85FB85309741F17F3F11F46F3F21F1B7
+:102EB0002091860130E0C9010196877099274091E1
+:102EC000850150E08417950709F447C069837A8328
+:102ED000FD83EC8396E0929FD001939FB00D112467
+:102EE000A957BE4FFE01319601900D929A95E1F7D8
+:102EF000809386010E94D01416E080918501909104
+:102F000086018917C1F1189FC001112489579E4F6E
+:102F10000E945A15882379F1E09185011E9FF001E6
+:102F20001124E957FE4F4081518162817381848170
+:102F300095810E94C0148091850190E00196877070
+:102F4000992780938501D9CF4F81588569857A85E6
+:102F50008B859C850E94C014CFCF0E948314109251
+:102F6000860110928501E7EBF1E086E0DF011D921A
+:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45
+:102F8000CDBFDF91CF911F910895EF92FF920F93E4
+:102F90001F93CF93DF938C01009709F46CC0F12C41
+:102FA000EE24E394E8012196F8018491843740F4FB
+:102FB000843008F051C0813081F0823019F15BC05B
+:102FC000853709F444C0A8F19CE7980F903708F0C2
+:102FD00052C08F770E94CE1141C00E5F1F4FFE017D
+:102FE000C49180E28C0F883048F4C7708E2D01C0E8
+:102FF000880FCA95EAF70E94A11A14C08C2F0E946C
+:1030000006112DC00E5F1F4FFE01C49180E28C0F90
+:10301000883058F4C7708E2D01C0880FCA95EAF722
+:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3
+:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3
+:103040009FE00197F1F700C00000C150F6CF0E5F7E
+:103050001F4FFE01F49003C00E9406118E018F2DB8
+:10306000882309F49FCFEFE9FFE03197F1F700C023
+:1030700000008150F5CFDF91CF911F910F91FF900C
+:10308000EF90089508956093C1017093C2018093F9
+:10309000C3019093C4010C946F140F931F9300917C
+:1030A000C1011091C2012091C3013091C401DC0122
+:1030B000CB01802B912BA22BB32B8093C10190933A
+:1030C000C201A093C301B093C4011F910F910C944E
+:1030D0006F140F931F930091C1011091C2012091B1
+:1030E000C3013091C401DC01CB0180239123A223D1
+:1030F000B3238093C1019093C201A093C301B09305
+:10310000C4011F910F910C946F140F931F930091A2
+:10311000C1011091C2012091C3013091C401DC01B1
+:10312000CB0180279127A227B3278093C1019093D9
+:10313000C201A093C301B093C4011F910F910C94DD
+:103140006F141092BD011092BE011092BF01109237
+:10315000C0010C946F1441E050E060E070E004C0E6
+:10316000440F551F661F771F8A95D2F74093BD0104
+:103170005093BE016093BF017093C0010C946F1413
+:1031800041E050E060E070E004C0440F551F661F4E
+:10319000771F8A95D2F78091BD019091BE01A091D1
+:1031A000BF01B091C001482B592B6A2B7B2B409358
+:1031B000BD015093BE016093BF017093C0010C9498
+:1031C0006F1441E050E060E070E004C0440F551F10
+:1031D000661F771F8A95D2F7409550956095709538
+:1031E0008091BD019091BE01A091BF01B091C0013D
+:1031F000482359236A237B234093BD015093BE018A
+:103200006093BF017093C0010C946F1441E050E0D3
+:1032100060E070E004C0440F551F661F771F8A9559
+:10322000D2F78091BD019091BE01A091BF01B091F4
+:10323000C001482759276A277B274093BD01509337
+:10324000BE016093BF017093C0010C946F140F9383
+:103250001F930091BD011091BE012091BF013091DB
+:10326000C001DC01CB01802B912BA22BB32B8093CF
+:10327000BD019093BE01A093BF01B093C0011F9107
+:103280000F910C946F140F931F930091BD01109137
+:10329000BE012091BF013091C001DC01CB01802330
+:1032A0009123A223B3238093BD019093BE01A093E9
+:1032B000BF01B093C0011F910F910C946F140F9335
+:1032C0001F930091BD011091BE012091BF0130916B
+:1032D000C001DC01CB0180279127A227B32780936F
+:1032E000BD019093BE01A093BF01B093C0011F9197
+:1032F0000F910C946F140895CF92DF92EF92FF928A
+:103300000F931F93CF93DF938C01C090C101D09096
+:10331000C201E090C301F090C4018091BD01909181
+:10332000BE01A091BF01B091C001C82AD92AEA2AE2
+:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520
+:10334000A795979587950A94D2F780FF06C0B80194
+:103350008C2F0E944808019721F4219760F780E0A4
+:1033600001C08C2FDF91CF911F910F91FF90EF90B3
+:10337000DF90CF900895CF93DF93EC010E947C19EA
+:10338000BE010E944808DF91CF910895CB010E94B1
+:10339000BB1908958091C5018595859585950895FA
+:1033A0008091C5018770089598E0899F900111244C
+:1033B000262B2093C5010C94C0182091C50180953F
+:1033C00082238093C501982F977069F430E0482FCD
+:1033D000552747FD50952417350729F08595859584
+:1033E00085950C94E11808959091C501977081E03E
+:1033F00009F480E0089590910C01992321F09091B7
+:103400000D01911109C020910E0130910F01F901B8
+:1034100032969FEF40E01FC0982F9695969596950F
+:103420009F3050F5E0910E01F0910F01E90FF11D71
+:10343000877021E030E0A90102C0440F551F8A9532
+:10344000E2F7CA019181892B818308959F3F39F06A
+:103450004F5F4E3041F051915813F8CF0DC05111CC
+:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08
+:1034700097FDFA9582830895089590910C01992300
+:1034800021F090910D01911109C020910E01309110
+:103490000F01F9013296205F3F4F1FC0982F96957C
+:1034A000969596959F30F0F4E0910E01F0910F0102
+:1034B000E90FF11D877021E030E0A90102C0440F3F
+:1034C000551F8A95E2F7CA018095918189238183EE
+:1034D00008953196E217F30729F090819813F9CFF8
+:1034E0001082F7CF089581E090E0E0910E01F09115
+:1034F0000F01E80FF91F1082019680319105A9F79D
+:1035000008959091D901892B8093D90108958095D0
+:103510009091D90189238093D90108951092D901FE
+:1035200008959091D801892B8093D80108958095B2
+:103530009091D80189238093D80108951092D801E1
+:1035400008959091D701892B8093D7010895809594
+:103550009091D70189238093D70108951092D701C4
+:1035600008958093C60108951092C6010895809130
+:103570000E0190910F01FC0131969C01205F3F4F9D
+:1035800080E0919191118F5FE217F307D1F70895D1
+:10359000E0910E01F0910F018091D9018083E091BB
+:1035A0000E01F0910F0190818091D801892B8083C9
+:1035B000E0910E01F0910F0190818091D701892B4C
+:1035C00080838091C601882361F0E0910E01F09123
+:1035D0000F019081892B80830E94B71A811110926C
+:1035E000C60180910E0190910F010C94F60F20E01E
+:1035F000009739F0AC0141505109842395232F5F86
+:10360000F7CF822F0895CF92DF92EF92FF926C0155
+:10361000EE24FF24C114D104E104F10421F0C70118
+:10362000B60120E101C020E0C72ED82EE92EFF24EC
+:10363000C114D104E104F10419F0285FC701B601F7
+:103640006B017C0154E0F694E794D794C7945A95A3
+:10365000D1F7C114D104E104F10419F02C5FC701C2
+:10366000B6016B017C0142E0F694E794D794C794CD
+:103670004A95D1F7C114D104E104F10419F02E5F89
+:10368000C701B601DC01CB01B695A7959795879543
+:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5
+:1036A000DF90CF9008958091F101843021F1109244
+:1036B000DB0120E488E190E00FB6F894A8958093B0
+:1036C00060000FBE2093600080E00E94E30883B793
+:1036D000817F846083BF83B7816083BF789488953E
+:1036E00083B78E7F83BF88E10FB6F8948093600024
+:1036F000109260000FBE0895089508950E947C1BEB
+:103700000E944B030E947D1B0E94400491E08111A6
+:1037100001C090E0892F08950E9483140E94EA0F4F
+:103720000C94E30882E084BD93E095BD9AEF97BDC9
+:1037300080936E0008952FB7F8948091DC019091EA
+:10374000DD01A091DE01B091DF012FBF0895CF927E
+:10375000DF92EF92FF920F931F932FB7F89440914F
+:10376000DC015091DD016091DE017091DF012FBF1E
+:103770006A017B01EE24FF248C0120E030E0C016BA
+:10378000D106E206F30610F4415051099A01281BB4
+:10379000390BC9011F910F91FF90EF90DF90CF90EF
+:1037A00008951F920F920FB60F9211248F939F933B
+:1037B000AF93BF938091DC019091DD01A091DE0178
+:1037C000B091DF010196A11DB11D8093DC019093A2
+:1037D000DD01A093DE01B093DF01BF91AF919F9116
+:1037E0008F910F900FBE0F901F9018950E94E70CBD
+:1037F000F8942FEF87EA91E6215080409040E1F75E
+:1038000000C0000087E090EBDC018093FB01909307
+:10381000FC01A093FD01B093FE019CE088E10FB68E
+:10382000F894A895809360000FBE90936000FFCF3E
+:10383000EF92FF920F931F93CF93DF93D82FCDE09A
+:103840008C2F0E94390405E010E0E82EF12CC7010E
+:10385000002E02C0959587950A94E2F780FF09C073
+:10386000602F7C2F80E00E94F305D81302C081E016
+:1038700006C00150110958F7C15010F780E0DF91E0
+:10388000CF911F910F91FF90EF900895CF93C82F84
+:103890008CE20E94181C882321F08C2FCF910C946D
+:1038A000181C80E0CF910895CF930E949B1D811139
+:1038B00002C00E94811DC5E6C15049F00E944B0321
+:1038C0008FE39CE90197F1F700C00000F5CF89E292
+:1038D0000E94461C811113C18AE20E94461C81117C
+:1038E0000E94811D85E00E94461C81110E94F61BEA
+:1038F0000E94A61D8093DA0187E00E94461C88235F
+:10390000A9F18BE10E94461C882351F08091DA01D5
+:1039100081FB222720F991E0922790FB81F90EC0CC
+:103920008EE00E94461C882361F08091DA0182FBC0
+:10393000222720F991E0922790FB82F98093DA0107
+:1039400015C080E10E94461C9091DA01882341F065
+:1039500093FB222720F981E0822780FB93F904C0A2
+:10396000892F809580FB90F99093DA018091DA019C
+:103970000E94AA1D0E94B81D8093FA0180EE0E9449
+:10398000461C882341F08091FA01982F909590FB76
+:1039900080F98093FA0189E30E94461C882359F03C
+:1039A0008091FA0181FB222720F991E0922790FB78
+:1039B00081F98093FA0182EE0E94461C882359F017
+:1039C0008091FA0182FB222720F991E0922790FB57
+:1039D00082F98093FA0186EE0E94461C882359F0F2
+:1039E0008091FA0183FB222720F991E0922790FB36
+:1039F00083F98093FA0183EE0E94461C882359F0D4
+:103A00008091FA0184FB222720F991E0922790FB14
+:103A100084F98093FA0185E30E94461C882359F0BB
+:103A20008091FA0185FB222720F991E0922790FBF3
+:103A300085F98093FA0181E30E94461C882359F09E
+:103A40008091FA0186FB222720F991E0922790FBD2
+:103A500086F98093FA0181E10E94461C882359F07F
+:103A60008091FA0187FB222720F991E0922790FBB1
+:103A700087F98093FA018091FA010E94BC1D809120
+:103A8000FA0187FB882780F980930D0187E20E9465
+:103A9000461CC82F8EE10E94461C8111C2608FE136
+:103AA0000E94461C8111C46080E20E94461C811164
+:103AB000C86081E20E94461C8111C06182E20E94BE
+:103AC000461C8111C06283E20E94461C8111C064C1
+:103AD00084E20E94461C882311F0C06802C0CC23F7
+:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4
+:103AF000682F70E080E090E0CF910C944318CF9154
+:103B000008956DEE7EEF80E090E00E94ED2360E08E
+:103B100082E090E00E94DB2360E083E090E00E947E
+:103B2000DB2360E084E090E00E94DB2360E085E03E
+:103B300090E00C94DB2380E090E00E94D52321E00C
+:103B40008D3E9E4F09F020E0822F089582E090E0A4
+:103B50000C94CD23682F82E090E00C94DB2383E06B
+:103B600090E00C94CD23682F83E090E00C94DB234D
+:103B700084E090E00C94CD23682F84E090E00C94D6
+:103B8000DB238091E20180FF0BC06091130185E08F
+:103B9000689FB001112475956795759567952BC041
+:103BA00081FF09C06091130185E0689FB001112475
+:103BB0007595679520C082FF07C06091130185E06D
+:103BC000689FB001112417C09091E3019923D1F0AF
+:103BD00060911201961788F72091130185E0289FC4
+:103BE00090011124929FA001939F500D112470E029
+:103BF000CA010E949F236038710540F46115710568
+:103C000039F002C065E070E0862F08958FE70895CF
+:103C100081E008958091E20180FF08C06091110168
+:103C200070E0759567957595679521C081FF06C011
+:103C30006091110170E07595679519C082FF04C00D
+:103C40006091110170E010C09091E3019923C1F0DF
+:103C5000609110019617A0F780911101899FC00112
+:103C6000112470E00E949F236038710528F46115CB
+:103C7000710521F0862F08958FE7089581E008955A
+:103C800061E070E0F4CF803F21F40E94C11D819576
+:103C900004C0813F29F40E94C11D8093E60108956C
+:103CA000823F21F40E94C11D819504C0833F29F405
+:103CB0000E94C11D8093E5010895893F19F40E9477
+:103CC0000A1E05C08A3F31F40E940A1E8195809326
+:103CD000E70108958B3F21F40E940A1E819504C0DC
+:103CE0008C3F29F40E940A1E8093E8010895843FC6
+:103CF00021F48091E401816017C0853F21F4809117
+:103D0000E401826011C0863F21F48091E401846067
+:103D10000BC0873F21F48091E401886005C0883F93
+:103D200031F48091E40180618093E40108958D3F36
+:103D300021F48091E20181600BC08E3F21F48091DB
+:103D4000E201826005C08F3F29F48091E201846026
+:103D50008093E2010895803F39F48091E60187FF66
+:103D60006CC01092E60169C0813F29F48091E601A0
+:103D70001816BCF362C09091E501823F29F497FFC9
+:103D80005CC01092E50159C0833F19F41916CCF3B9
+:103D900054C0893F41F48091E70118160CF04DC0E2
+:103DA0001092E7014AC08A3F29F48091E70187FF1A
+:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6
+:103DC0001092E8013AC08C3F29F48091E80118165E
+:103DD000BCF333C0843F21F48091E4018E7F17C08F
+:103DE000853F21F48091E4018D7F11C0863F21F44D
+:103DF0008091E4018B7F0BC0873F21F48091E40127
+:103E0000877F05C0883F31F48091E4018F7E8093E5
+:103E1000E40113C08D3F21F48091E2018E7F0BC03D
+:103E20008E3F21F48091E2018D7F05C08F3F29F400
+:103E30008091E2018B7F8093E2018091E501811105
+:103E40000EC08091E60181110AC08091E7018111C5
+:103E500006C08091E801811102C01092E30108952B
+:103E600084EE91E00E9401100E949B1B9093E1015F
+:103E70008093E00108951F93CF93DF938091E00139
+:103E80009091E1010E94A71BAC019091E30199235D
+:103E900021F02091140130E006C0209115018AE044
+:103EA000289F900111244217530708F486C080917F
+:103EB000E501C091E601D091E7011091E80181117F
+:103EC00007C0C11176C0D11174C0111172C075C084
+:103ED0009F3F19F09F5F9093E301181624F40E940E
+:103EE000C11D8093E5018091E50187FF05C00E9417
+:103EF000C11D81958093E5011C1624F40E94C11D0B
+:103F00008093E6018091E60187FF05C00E94C11DF4
+:103F100081958093E6016091E501662339F1C091B6
+:103F2000E601CC2319F1772767FD7095872F972F2E
+:103F30000E94B02223E333E343E35FE30E941423B0
+:103F40000E947D226093E5016C2F772767FD7095B5
+:103F5000872F972F0E94B02223E333E343E35FE3ED
+:103F60000E9414230E947D226093E6011D1624F412
+:103F70000E940A1E8093E7018091E70187FF05C038
+:103F80000E940A1E81958093E701111624F40E9475
+:103F90000A1E8093E8018091E80187FF05C00E9416
+:103FA0000A1E81958093E801DF91CF911F910C94B7
+:103FB000301F9F3F09F08ECF96CFDF91CF911F9199
+:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE
+:103FD0001092E3011092E2010895833081F128F4F8
+:103FE000813059F08230D1F00895853009F449C00C
+:103FF000B8F1863009F456C0089580911501262F36
+:1040000030E0280F311D2F3F310524F4680F6093F5
+:10401000150108958FEF8093150108958091140183
+:10402000262F30E0280F311D2F3F310524F4680F73
+:104030006093140108958FEF809314010895809187
+:104040001301262F30E0280F311D2F3F310524F4B6
+:10405000680F6093130108958FEF80931301089503
+:1040600080911201262F30E0280F311D2F3F31059E
+:1040700024F4680F6093120108958FEF809312016A
+:10408000089580911101262F30E0280F311D2F3F18
+:10409000310524F4680F6093110108958FEF809328
+:1040A0001101089580911001262F30E0280F311D55
+:1040B0002F3F310524F4680F6093100108958FEFAE
+:1040C000809310010895833011F128F4813049F074
+:1040D000823091F00895853081F120F18630C1F170
+:1040E000089580911501681720F4861B80931501AF
+:1040F000089510921501089580911401681720F415
+:10410000861B8093140108951092140108958091E4
+:104110001301681720F4861B8093130108951092F1
+:104120001301089580911201681720F4861B809373
+:1041300012010895109212010895809111016817DB
+:1041400020F4861B809311010895109211010895A7
+:1041500080911001681720F4861B80931001089548
+:104160001092100108950F931F938D3109F46BC0C5
+:1041700008F03FC08E3009F47FC0C0F4873009F4E6
+:1041800069C068F4863009F0B1C08091DA01817F9E
+:104190008E7F8093DA0181E08093EA01A8C08830A5
+:1041A00009F4A2C08B3009F49FC0A0C0863109F485
+:1041B0009BC078F4803109F472C0813109F096C057
+:1041C0000E94831490910D0181E0892780930D0155
+:1041D0008BC0893109F488C08B3109F087C0809188
+:1041E000DA0181FB222720F991E0922790FB81F9E7
+:1041F0004CC0853309F470C048F4873209F46CC0B0
+:1042000008F459C0893209F467C070C0833438F4A7
+:104210008A3308F04EC0883309F466C067C083341F
+:1042200009F45AC0883409F061C00E9483140FEF6A
+:1042300013ED20E3015010402040E1F700C00000E2
+:104240000E94F61B51C00E9437220E94EA0F0E9472
+:10425000E3084AC09091DA01892F8095817080FB34
+:1042600090F929F0966098609093DA0140C0997FA8
+:10427000977F9093DA0138C08091DA0182FB222780
+:1042800020F991E0922790FB82F98093DA0199233B
+:1042900059F18091DA0181608093DA0125C0809123
+:1042A000DA0183FB222720F991E0922790FB83F922
+:1042B000ECCF895301C08D5141E050E060E070E0E7
+:1042C0008A019B0104C0000F111F221F331F8A9512
+:1042D000D2F7C901B80104C061E070E080E090E06D
+:1042E0000E9443180E94831481E001C080E01F9166
+:1042F0000F91089580E0089580E00895CF93C82F2E
+:104300008091EA01813079F018F08230E9F187C0BC
+:10431000E0910E01F0910F018081813169F08232CC
+:1043200009F07FC009C0E0910E01F0910F0180817A
+:10433000813111F0823261F48C2F0E947A21811137
+:1043400004C08C2F0E94B3201DC081E090E01AC0F1
+:104350008C2F0E947C21811114C0C43179F048F463
+:10436000CB3079F0C03109F060C082E08093EA017F
+:1043700008C0C93219F0C83321F057C01092EA01C1
+:1043800054C081E0817053C0C93289F118F5C4313D
+:1043900071F1A8F4C73009F046C08AE08093150196
+:1043A00094E19093140193E0909313018093120190
+:1043B00088E08093110188E28093100134C0CE51CF
+:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB
+:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC
+:1043E00013C0C13579F0C235F1F461E00DC08091A0
+:1043F000E901882319F01092E90115C081E080934A
+:10440000EA0115C061E006C08091E9010E94ED1F3C
+:104410000AC06AE08091E9010E94632004C0109202
+:10442000EA0180E004C081E002C080E0ABCFCF9120
+:104430000895E1E8F0E08081886080838081816078
+:1044400080838FB7F89493E09093890090ED9093D8
+:1044500088008FBF0895EFE6F0E08081826080835E
+:104460000895EFE6F0E080818D7F80830895EFE688
+:10447000F0E0908182E08927808308951F920F9257
+:104480000FB60F9211242F933F934F935F936F9327
+:104490007F938F939F93AF93BF93EF93FF938091FD
+:1044A000EB019091EC0101969093EC018093EB016C
+:1044B000811103C082E00E94E308E091EC01E695DF
+:1044C000E695F0E0EC54FB4FE4918091EB018E1304
+:1044D00003C080E00E94E308FF91EF91BF91AF918C
+:1044E0009F918F917F916F915F914F913F912F910C
+:1044F0000F900FBE0F901F90189504D06894B111C3
+:104500008DC0089570D088F09F5790F0B92F9927EB
+:10451000B751A0F0D1F0660F771F881F991F1AF0CE
+:10452000BA95C9F712C0B13081F077D0B1E00895E3
+:1045300074C0672F782F8827B85F39F0B93FCCF364
+:10454000869577956795B395D9F73EF490958095C4
+:10455000709561957F4F8F4F9F4F0895E89409C0E4
+:1045600097FB3EF490958095709561957F4F8F4FA6
+:104570009F4F9923A9F0F92F96E9BB279395F695BC
+:10458000879577956795B795F111F8CFFAF4BB0F3A
+:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E
+:1045A000882311F096E911C0772321F09EE8872F28
+:1045B000762F05C0662371F096E8862F70E060E0E4
+:1045C0002AF09A95660F771F881FDAF7880F96955D
+:1045D000879597F9089557FD9058440F551F59F046
+:1045E0005F3F71F04795880F97FB991F61F09F3FE0
+:1045F00079F087950895121613061406551FF2CF09
+:104600004695F1DF08C0161617061806991FF1CF58
+:1046100086957105610508940895E894BB2766277F
+:104620007727CB0197F908950BD078C069D028F08F
+:104630006ED018F0952309F05AC05FC01124EECF58
+:10464000CADFA0F3959FD1F3950F50E0551F629FED
+:10465000F001729FBB27F00DB11D639FAA27F00DDB
+:10466000B11DAA1F649F6627B00DA11D661F829F02
+:104670002227B00DA11D621F739FB00DA11D621FE7
+:10468000839FA00D611D221F749F3327A00D611D04
+:10469000231F849F600D211D822F762F6A2F1124E6
+:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39
+:1046B000BB1F661F771F881F91505040A9F79E3F70
+:1046C000510570F014C0AACF5F3FECF3983EDCF3C5
+:1046D000869577956795B795F795E7959F5FC1F7AD
+:1046E000FE2B880F911D9695879597F9089597F958
+:1046F0009F6780E870E060E008959FEF80EC089588
+:1047000000240A94161617061806090608950024B0
+:104710000A9412161306140605060895092E03942A
+:10472000000C11F4882352F0BB0F40F4BF2B11F49E
+:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF
+:10474000072E16F4009407D077FD09D00E94B923F4
+:1047500007FC05D03EF4909581959F4F0895709584
+:1047600061957F4F0895EE0FFF1F0590F491E02DA6
+:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8
+:10478000B70710F0A61BB70B881F991F5A95A9F7FA
+:1047900080959095BC01CD010895F999FECF92BD09
+:1047A00081BDF89A992780B50895A8E1B0E042E06C
+:1047B00050E00C94F523262FF999FECF92BD81BDD0
+:1047C000F89A019700B4021639F01FBA20BD0FB64F
+:1047D000F894FA9AF99A0FBE08950196272F0E942D
+:1047E000DC230C94DB23DC01CB01FC01F999FECF27
+:1047F00006C0F2BDE1BDF89A319600B40D92415069
+:0A4800005040B8F70895F894FFCF78
+:10480A000220E508730950091C09E8080101C701DB
+:10481A0028080A03140A3F4D363975042804F2039E
+:10482A00B9034C0365037E039703010203040506DB
+:04483A000708090062
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/kastyle/keymap.c b/keyboards/ergodox_ez/keymaps/kastyle/keymap.c new file mode 100644 index 000000000..3982e0a19 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/kastyle/keymap.c @@ -0,0 +1,184 @@ +#include "ergodox_ez.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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | LGUI | | App | 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | LCtrl | A | S | D | F | G |------| |------| H | J | K | L |; / L2| ' | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,---------------. ,---------------. + * |Ctrl/Esc| Alt | | Alt |Ctrl/Esc| + * ,------|--------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * |Backsp| Del |------| |------| Enter | Space| + * | | | 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_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 + ), +/* 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| |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | | |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +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) { + 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/kines-ish/compiled.hex b/keyboards/ergodox_ez/keymaps/kines-ish/compiled.hex new file mode 100644 index 000000000..54524b326 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/kines-ish/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4
+:100010000C94BE020C94BE020C94BE020C94BE0260
+:100020000C94BE020C94BE020C94620D0C94340E1F
+:100030000C94BE020C94BE020C94BE020C94BE0240
+:100040000C94BE020C943E220C94BE020C94BE0290
+:100050000C94BE020C94D11B0C94BE020C94BE02F4
+:100060000C94BE020C94BE020C94BE020C94BE0210
+:100070000C94BE020C94BE020C94BE020C94BE0200
+:100080000C94BE020C94BE020C94BE020C94BE02F0
+:100090000C94BE020C94BE020C94BE020C94BE02E0
+:1000A0000C94BE020C94BE020C94BE02A10EC30EB0
+:1000B000B10FC30EB10F080F2B0FB10F800F930FAD
+:1000C0006212621291129112C712E71218141814D8
+:1000D000F2121814A213A2130914181418141214EB
+:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300
+:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0
+:10010000C113CE13D513DC13E6130000F0A12E00AB
+:100110002B003900E100290000001E00140004003B
+:100120001D0035004D001F001A0016001B0049007D
+:100130004C00200008000700060050002A002100A3
+:100140001500090019004F004A00220017000A009C
+:1001500005000000E000500001540000007F000096
+:10016000E2004F000154000000770000E30023008C
+:100170001C000B0011000000E400240018000D001A
+:10018000100052004B0025000C000E0036005100FC
+:100190002C00260012000F0037002F002800270037
+:1001A00013003300380030004E002D0031003400C1
+:1001B000E500C200000046004700480001000100C1
+:1001C00000003A001E0220022202010001003B0052
+:1001D0001F0221022302010001003C002F0226021F
+:1001E0002F00010001003D00300227023000010015
+:1001F00001003E003102350035020000010001001F
+:1002000001000000010000000100010001000000E9
+:100210000100000001003F005200510024020000D4
+:1002200001004000240021001E00010001004100E7
+:10023000250022001F003700010042002600230095
+:10024000200027000100430025022E0231002E006D
+:100250000100440045000100010001000000010010
+:100260000100010001000100000001000100010087
+:1002700001000100010001000100F2000100010085
+:1002800001000100F000F1000100F4000100010094
+:100290000100F3000100F500010001000100010070
+:1002A0000100000001000100010000000100000049
+:1002B0000100010001000000010000000100010038
+:1002C0000100010001000000010001000100010027
+:1002D0000100A9000100010001000100AC00AA001A
+:1002E000B600010001000100AB00A8000100010000
+:1002F0000100010001000100010001000100AE0049
+:1003000001000100000016034500720067006F0045
+:1003100044006F007800200045005A0000001603DA
+:100320004500720067006F0044006F0078002000F5
+:1003300045005A0000000403090409026D0004018D
+:1003400000A0FA09040000010301010009211101C4
+:100350000001223F000705810308000A090401008B
+:100360000103010200092111010001224D000705CE
+:10037000820308000A0904020001030000000921A9
+:10038000110100012236000705830308000A090451
+:1003900003000103000000092111010001223900BE
+:1003A000070584031000011201100100000008ED90
+:1003B000FE071301000102000105010906A1010564
+:1003C0000719E029E7150025019508750181020547
+:1003D000081901290595057501910295017503918B
+:1003E0000105071900297715002501957875018108
+:1003F00002C005010980A101850216010026B7008F
+:100400001A01002AB700751095018100C0050C097A
+:1004100001A1018503160100269C021A01002A9CF5
+:1004200002751095018100C005010902A1010901B1
+:10043000A10005091901290515002501950575017A
+:10044000810295017503810105010930093115818A
+:10045000257F95027508810609381581257F95014C
+:1004600075088106050C0A38021581257F950175EE
+:10047000088106C0C005010906A101050719E02988
+:10048000E715002501950875018102950175088120
+:100490000105081901290595057501910295017558
+:1004A0000391010507190029FF150025FF95067521
+:1004B000088100C0000000000000000000000001F2
+:1004C0000204060A0F17202C3A4A5D71879DB3C7B4
+:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF
+:1004E0003A2C20170F0A0604020100000000000049
+:1004F0000000000011241FBECFEFDAE0DEBFCDBF49
+:1005000004B603FE24C08091FB019091FC01A091F0
+:10051000FD01B091FE018730904BA740B04BB9F47C
+:100520001092FB011092FC011092FD011092FE014D
+:1005300014BE84B7877F84BF88E10FB6F894809398
+:100540006000109260000FBEE0E0FFE3099511E04B
+:10055000A0E0B1E0EAE0F8E402C005900D92A43317
+:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0
+:10057000B107E1F70E94A60A0C9403240C94000032
+:100580001092B9008AE08093B800089594EA90939D
+:10059000BC009091BC0097FFFCCF9091B900987F70
+:1005A000983021F0903111F081E008958093BB00E4
+:1005B00084E88093BC008091BC0087FFFCCF8091D1
+:1005C000B900887F883111F0803471F780E0089598
+:1005D00084E98093BC008091BC0084FDFCCF089529
+:1005E0008093BB0084E88093BC008091BC0087FFAF
+:1005F000FCCF9091B900987F81E0983209F480E0B7
+:10060000089584E88093BC008091BC0087FFFCCFF4
+:100610008091BB00089580910101811115C080E493
+:100620000E94C6028093010181110CC082E10E94E8
+:10063000F00280930101811105C08FEF0E94F0024A
+:10064000809301010E94E80284B1807F84B985B162
+:10065000807F85B98AB1837F8AB98BB1837F8BB95B
+:100660003E98469808950E94C604809301010E9416
+:100670000B0380B38C7080BB81B3836F81BBA5E318
+:10068000B1E0E3E4F1E08EE08E0F11921D928E1343
+:10069000FCCF0C94B004BF92CF92DF92EF92FF9206
+:1006A0000F931F93CF93DF9380910101882379F0FB
+:1006B000809134018F5F80933401811108C00E94C2
+:1006C000C60480930101811102C00E94580405E311
+:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407
+:1006E000E394F12CC730D10500F58091010181110F
+:1006F00064C080E40E94C60280930101811112C08F
+:1007000082E10E94F0028093010181110BC0C701B8
+:100710000C2E01C0880F0A94EAF780950E94F0021F
+:10072000809301010E94E80248C0CA30A1F028F479
+:10073000C83059F0C93061F005C0CC3089F070F094
+:10074000CD3089F0209A289810C0219A29980DC0A0
+:10075000229A2A980AC0239A2B9807C0529A01C05D
+:10076000539A5B9802C03E9A469890EA9A95F1F7A0
+:100770009FB1799902C082E001C080E091709D250F
+:10078000982B7C9902C084E001C080E0892B7D9980
+:1007900002C038E001C030E0832B7E9902C020E126
+:1007A00001C020E0822B9FB19095991F9927991F36
+:1007B0009295990F907E892B0FC080910101811134
+:1007C00049C080E40E94C60280930101882379F128
+:1007D000B12C0E94E8028B2DF8019081981719F036
+:1007E0008083C09200010E940B0321960F5F1F4F70
+:1007F000CE30D10509F076CF80910001882361F1D8
+:10080000815080930001882339F08FE99FE00197A0
+:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F
+:10082000CF01825F91919D938E13FCCF15C083E120
+:100830000E94F002809301018111CACF81E40E94DD
+:10084000C602809301018111C3CF0E940103B82E1B
+:10085000B094BFCF80E0C0CF0E94560481E0DF910A
+:10086000CF911F910F91FF90EF90DF90CF90BF90AD
+:100870000895E82FF0E0ED5BFE4F80810895089524
+:100880000F931F93CF93DF93C3E4D1E010E00C2FBD
+:10089000025F899190E00E94F71A180F0C13F9CFAC
+:1008A000812FDF91CF911F910F9108950C94260510
+:1008B00056985E9825982D9826982E9827982F98C8
+:1008C0008FEF90E0909389008093880090938B0045
+:1008D00080938A0090938D0080938C00259A2D9AA6
+:1008E0002FEF80E792E0215080409040E1F700C078
+:1008F0000000269A2E9A2FEF80E792E02150804048
+:100900009040E1F700C00000279A2F9A2FEF80E770
+:1009100092E0215080409040E1F700C0000025980F
+:100920002D982FEF80E792E0215080409040E1F732
+:1009300000C0000026982E982FEF80E792E021500B
+:1009400080409040E1F700C0000027982F9856980B
+:100950005E9825982D9826982E9827982F98089578
+:1009600089EA8093800089E08093810024982C9804
+:100970003F988AB18F748AB96E98479A8BB1806B11
+:100980008BB9769A0E9458040C94250580E28093D6
+:1009900001018091510181110EC00E94C00281E0CD
+:1009A000809351012FEF83ED90E3215080409040E0
+:1009B000E1F700C0000080E40E94C60280930101BC
+:1009C00081112EC00E94F00280930101811128C084
+:1009D0000E94F00280930101811122C08FE30E94E6
+:1009E000F0028093010181111BC00E94E80280E4A3
+:1009F0000E94C60280930101811112C08CE00E9406
+:100A0000F0028093010181110BC00E94F0028093DB
+:100A10000101811105C08FE30E94F0028093010162
+:100A20000E94E80280910101089561110BC0FC0150
+:100A30008281882321F085EE0E94061103C085EE95
+:100A40000E94CE1180E090E0089508956091BD016C
+:100A50007091BE018091BF019091C0010E94031B63
+:100A600056985E9825982D9826982E9827982F9816
+:100A7000813019F0823021F00895259A2D9A089539
+:100A8000269A2E9A089581E0089581E008950C94A5
+:100A9000450508950F931F93CF93DF938C01FC01BD
+:100AA000C081D181CE010E947C19BE010E94F30554
+:100AB000EC01B8010E944705882309F48DC0F801B4
+:100AC0008281882309F44AC080915D0181111FC091
+:100AD000C431F0E5DF0709F051C00E94490581E00B
+:100AE00080935D010E949B1B90935C0180935B014E
+:100AF0001092540110925601109255011092580113
+:100B00001092570110925A011092590165C08091BC
+:100B10005B0190915C010E94A71B883C910570F4D9
+:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB
+:100B3000D183C0838F5F809354014EC0C43880E559
+:100B4000D80721F0C538D04501F13AC0F8018281BB
+:100B5000882341F01092520182E01EC0C438E0E5C3
+:100B6000DE0759F580915201811106C086E20E948C
+:100B7000061186E20E94CE1182E01CC0C438F0E566
+:100B8000DF0741F3C538D045D9F4F80182818823C5
+:100B900031F01092530180E20E941D121DC080911D
+:100BA0005301811106C087E20E94061187E20E946C
+:100BB000CE1180E20E9424120FC0C538D04529F31F
+:100BC00081E08093520180935301C801DF91CF915E
+:100BD0001F910F910C94430580E0DF91CF911F91FD
+:100BE0000F910895089596E0799FF001112494E5FE
+:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F
+:100C0000E25FFE4F859194910895880F991FFC0132
+:100C1000E657F040859194910895880F991FFC0143
+:100C2000E65FFE4F8591949108950F931F93CF93A4
+:100C3000DF93EC01811520E3920750F5C11580E2A6
+:100C4000D80708F0C3C0CB3BD10590F4C83AD10512
+:100C500008F06AC0C53AD10508F05BC0C430D105C0
+:100C600008F0D0C1219709F0CAC101E010E00AC222
+:100C7000CF3FD10511F008F0C5C1C03FD10508F044
+:100C8000A2C0CE01805E9109089708F4BBC1B7C12C
+:100C9000C13090E5D90709F4A2C020F5C0318FE436
+:100CA000D80770F4C11590E4D90708F094C0C115B5
+:100CB00021E3D20708F0A3C1DD278E01106CE2C149
+:100CC000C115D04509F09BC10E9483148FEF94E3B6
+:100CD0002CE0815090402040E1F700C000000E94CD
+:100CE000F61BD0C1C11597E5D90758F4C03121E5ED
+:100CF000D20708F01CC1C43180E5D80708F475C0DC
+:100D00007EC1CE0190578115904108F078C1DF7007
+:100D100073C1C53AD10509F477C1C63AD10509F0C6
+:100D200076C102E810E4AEC1C83AD10509F472C137
+:100D3000C93AD10509F471C1CA3AD10509F470C1A3
+:100D4000CB3AD10509F46FC1CC3AD10509F46EC193
+:100D5000CD3AD10509F46DC1C03BD10509F46CC190
+:100D6000CE3AD10509F46BC1CF3AD10509F46AC175
+:100D7000C13BD10509F469C1C23BD10509F468C181
+:100D8000C33BD10509F467C1C43BD10509F466C171
+:100D9000C53BD10509F465C1C63BD10509F464C161
+:100DA000C73BD10509F463C1C83BD10509F462C151
+:100DB000C93BD10509F461C1CA3BD10509F460C141
+:100DC00000E014E45FC18E0110655CC1CE019F702C
+:100DD0000E940D0658C1DF708E01106A53C18091C8
+:100DE000DA0181608093DA014DC10E949B1D81115F
+:100DF00002C00E94811D0E94B81D90E09093FB01EB
+:100E00008093FA01C23080E5D80721F48091FA017D
+:100E1000816086C0C43090E5D90721F48091FA0141
+:100E200082607EC0C63020E5D20721F48091FA01AD
+:100E3000846076C0C83080E5D80719F48091FA0143
+:100E400027C0CA3090E5D90721F48091FA0180616A
+:100E500067C0CC3020E5D20721F48091FA0180628E
+:100E60005FC0CE3080E5D80721F48091FA0180641C
+:100E700057C0C03190E5D90721F48091FA0180680C
+:100E80004FC0C23120E5D20729F48091FA01846075
+:100E9000886046C0C33080E5D80721F48091FA010C
+:100EA0008E7F3EC0C53090E5D90721F48091FA01CC
+:100EB0008D7F36C0C73020E5D20721F48091FA013A
+:100EC0008B7F2EC0C93080E5D80719F48091FA01D4
+:100ED00026C0CB3090E5D90721F48091FA018F7EAE
+:100EE0001FC0CD3020E5D20721F48091FA018F7D1B
+:100EF00017C0CF3080E5D80721F48091FA018F7BAD
+:100F00000FC0C13190E5D90721F48091FA018F77A4
+:100F100007C0C331D04531F48091FA018B7F877FC0
+:100F20008093FA018091FA010E94BC1DABC08D2F05
+:100F300099278F70992781309105D9F49E012370EC
+:100F4000332702C0880F991F2A95E2F79C688E010B
+:100F500044E0000F111F4A95E1F700271370802B22
+:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA
+:100F70002FC08230910531F4DC2FCC278E01016F18
+:100F8000106A80C08330910569F4CE01837099277F
+:100F900001E010E002C0000F111F8A95E2F7C801BE
+:100FA0009C680FC084309105B9F4CE0183709927F5
+:100FB00001E010E002C0000F111F8A95E2F7C8019E
+:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029
+:100FD0008C010C2B1D2B56C08530910531F4DC2F74
+:100FE000CC278E01046F106A4DC0069709F04AC0E5
+:100FF000CF71DD27DC2FCC278E01106243C000E0CB
+:1010000010E040C08E013EC001E810E43BC003E8A0
+:1010100010E438C002EE14E435C009EE14E432C026
+:101020000AEE14E42FC005EB14E42CC006EB14E424
+:1010300029C007EB14E426C00CEC14E423C00DEC2B
+:1010400014E420C003E815E41DC00AE815E41AC042
+:1010500002E915E417C004E915E414C001E216E43E
+:1010600011C003E216E40EC004E216E40BC005E270
+:1010700016E408C006E216E405C007E216E402C062
+:101080000AE216E4C801DF91CF911F910F910895F4
+:1010900096E0799FF001112494E5899FE00DF11D00
+:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149
+:1010B0009491803E9105E0F4803C910558F5813390
+:1010C000910509F46FC048F48932910509F463C0B1
+:1010D0008A32910509F46DC072C089339105E9F037
+:1010E00082389105D1F08533910509F44DC067C070
+:1010F000833E910581F138F4803E9105B9F0823E3E
+:101100009105D9F05CC0863E910561F1873E91055D
+:10111000A1F155C00E94050608952091FA0120FD15
+:1011200002C021FF4CC080EE90E049C08091FA01DE
+:1011300080FFF9CF89E390E042C08091FA0182FFFD
+:101140000EC08091FA0184FF03C080E090E037C0B8
+:1011500083EE90E034C08091FA0182FFF2CF82EEFC
+:1011600090E02DC08091FA0183FF0BC08091FA01BD
+:1011700084FDEBCF87EE90E022C08091FA0183FFDF
+:10118000F5CF86EE90E01BC08091FA0185FF07C085
+:1011900089E290E014C08091FA0185FFF9CF85E3E0
+:1011A00090E00DC08091FA0186FF07C08AE290E0CE
+:1011B00006C08091FA0186FFF9CF81E390E00E949A
+:1011C0001506089508950C94E20880916E01089523
+:1011D000CF93DF9300D01F92CDB7DEB79C018091F3
+:1011E000F101843019F593E099833B832A8390932E
+:1011F000E9008FEF9091E800815095FD06C095EDD4
+:101200009A95F1F700008111F5CF8091E80085FFF4
+:101210000DC040E050E063E070E0CE0101960E9416
+:10122000520B8091E8008E778093E8000F900F902A
+:101230000F90DF91CF910895CF93DF9300D01F924D
+:10124000CDB7DEB72091F101243021F522E02983CA
+:101250009B838A8383E08093E9008FEF9091E8007D
+:10126000815095FD06C095ED9A95F1F7000081112A
+:10127000F5CF8091E80085FF0DC040E050E063E0CD
+:1012800070E0CE0101960E94520B8091E8008E77AB
+:101290008093E8000F900F900F90DF91CF91089509
+:1012A0002091F1012430F1F422E02093E9002FEFA6
+:1012B0003091E800215035FD06C035ED3A95F1F743
+:1012C00000002111F5CF2091E80025FF0BC040E080
+:1012D00050E065E070E00E94520B8091E8008E774C
+:1012E0008093E8000895CF93DF93EC019091F10192
+:1012F000943009F046C080910C018823D9F0809188
+:101300000D018823B9F09093E9008FEF9091E800E8
+:10131000815095FD06C095E19A95F1F70000811185
+:10132000F5CF8091E80085FF2CC040E050E060E1FF
+:1013300070E017C081E08093E9008FEF9091E800A2
+:10134000815095FD06C095ED9A95F1F70000811149
+:10135000F5CF8091E80085FF14C040E050E068E0E0
+:1013600070E0CE010E94520B8091E8008E7780934E
+:10137000E80080E1FE01AEE5B1E001900D928A95B2
+:10138000E1F7DF91CF9108958091F001811109C0BB
+:101390000E94E70C0E94440D8091E20084608093DB
+:1013A000E20008951092F001089508950C942B2204
+:1013B0000E948C1B0E9431220E94EA0F0C94E308C9
+:1013C00042E061EC81E00E94610C42E061EC82E06D
+:1013D0000E94610C42E061EC83E00E94610C42E1FA
+:1013E00061EC84E00C94610C8091F301833009F48A
+:1013F00055C030F4813071F0823009F48EC0089508
+:101400008A3009F47AC08B3009F460C0893009F061
+:101410009CC020C08091F201813A09F096C0809171
+:10142000E800877F8093E8008091F6019091F701B2
+:10143000892B21F460E18EE591E003C060E080E05B
+:1014400090E070E00E949D0B8091E8008B77809384
+:10145000E80008958091F201813209F076C0809110
+:10146000F6019091F701009719F0039709F06DC00C
+:101470008091E800877F8093E8008091E80082FDFA
+:1014800005C08091F1018111F8CF5FC08091F1001A
+:1014900080936E018091E8008B7753C08091F201B8
+:1014A000813A09F052C08091F6019091F701892BA1
+:1014B00009F04BC08091E800877F8093E80080911D
+:1014C000E80080FFFCCF80910C0136C08091F201D2
+:1014D0008132D9F58091F6019091F701892BA9F518
+:1014E0008091E800877F8093E8000E94960C8091AD
+:1014F000F40180930C010C9483148091F2018132E9
+:1015000021F58091E800877F8093E8000E94960C87
+:101510008091F50180936F0108958091F201813AE5
+:10152000A1F48091E800877F8093E8008091E80033
+:1015300080FFFCCF80916F018093F1008091E800E3
+:101540008E778093E8000C94960C089584B7877F7B
+:1015500084BF88E10FB6F894809360001092600019
+:101560000FBE90E080E80FB6F894809361009093EE
+:1015700061000FBE0E9439100E94E70C0E94440DCA
+:101580008091E20084608093E20078940E94CA0F08
+:101590000E943B1082E091E00E94E50F0E94192218
+:1015A0008091F101853069F40E94531B8091EF0115
+:1015B0008823B1F30E947E1B882391F30E943C0B89
+:1015C000EFCF0E944110ECCF292F33272330310574
+:1015D000C9F064F42130310581F02230310509F081
+:1015E00043C08DE690E02AE333E042C0213231056A
+:1015F000F1F02232310541F137C082E190E027EA73
+:1016000033E036C099278130910541F08230910551
+:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4
+:1016200002C0E6E0F3E0849190E09F0121C06430C5
+:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5
+:10164000318189E090E014C0643070F470E0FB01F7
+:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47
+:10166000FE4F808190E004C080E090E020E030E018
+:10167000FA0131832083089580E189BD82E189BD2B
+:1016800009B400FEFDCF8091D8008F7D8093D800F3
+:101690008091E00082608093E0008091E00081FD15
+:1016A000FCCF0895CF92DF92EF92FF920F931F939A
+:1016B000CF93DF93EC018B016A010E94B50C81117D
+:1016C00033C0C114D10439F0F60180819181081B27
+:1016D000190BC80FD91FE12CF12C0115110519F1B7
+:1016E0008091E80085FD16C08091E8008E77809398
+:1016F000E800C114D10449F0F60180819181E80E1F
+:10170000F91EF182E08285E00FC00E94B50C8823AB
+:1017100021F30AC089918093F10001501109FFEF74
+:10172000EF1AFF0ADACF80E0DF91CF911F910F917E
+:10173000FF90EF90DF90CF9008952091F8013091C5
+:10174000F9012617370748F06115710539F4209122
+:10175000E8002E772093E80001C0B90140E0611550
+:101760007105A9F12091F101222309F443C025302C
+:1017700009F442C02091E80023FD40C02091E80018
+:1017800022FD32C02091E80020FFE9CF4091F30014
+:101790002091F20030E0342BFC01CF01611571057E
+:1017A00059F02830310540F481918093F100615067
+:1017B00071092F5F3F4FF1CF41E02830310509F02B
+:1017C00040E02091E8002E772093E800C8CF411137
+:1017D000C9CF0AC08091F101882361F0853061F0A2
+:1017E0008091E80083FD0AC08091E80082FFF2CF7B
+:1017F00080E0089582E0089583E0089581E00895EF
+:101800002091F8013091F9012617370748F061154A
+:10181000710539F42091E8002E772093E80001C08B
+:10182000B901FC0120E06115710591F18091F10190
+:10183000882309F440C0853009F43FC08091E80056
+:1018400083FD3DC08091E80082FD2FC08091E800BB
+:1018500080FFE9CF2091F3008091F20090E0922B7D
+:101860006115710559F08830910540F42491209359
+:10187000F1003196615071090196F2CF21E008978D
+:1018800009F020E08091E8008E778093E800CBCFCC
+:101890002111CCCF0AC08091F101882361F08530FD
+:1018A00061F08091E80083FD0AC08091E80082FF2A
+:1018B000F2CF80E0089582E0089583E0089581E00A
+:1018C0000895982F973058F59093E900981739F0BC
+:1018D0007091EC002091ED005091F00003C0242F96
+:1018E000762F50E021FF19C03091EB003E7F3093FE
+:1018F000EB003091ED003D7F3093ED003091EB0037
+:1019000031603093EB007093EC002093ED00509326
+:10191000F0002091EE0027FF07C09F5FD3CF8F70AC
+:101920008093E90081E0089580E008958091F201BC
+:1019300087FF11C08091E80082FD05C08091F10110
+:101940008111F8CF11C08091E8008B770BC0809196
+:10195000F101882349F08091E80080FFF8CF809161
+:10196000E8008E778093E80008952091E40030919C
+:10197000E50095E64091EC00842F817040FF22C085
+:101980008091E80080FD1CC08091F101882391F0D6
+:10199000853091F08091EB0085FD10C04091E4000E
+:1019A0005091E5004217530729F39A01915011F71E
+:1019B00084E0089582E0089583E0089581E0089529
+:1019C00080E008954091E80042FFDECF08950E9434
+:1019D000550D0E945D0DE0EEF0E080818160808316
+:1019E000E8EDF0E080818F77808319BCA7EDB0E04F
+:1019F0008C918E7F8C9380818F7E80831092F001FA
+:101A000008950F931F93CF93DF930E94550D0E946B
+:101A10005D0DC8EDD0E088818F77888388818068EC
+:101A2000888388818F7D888319BC1092F101109280
+:101A3000ED011092EF011092EE0100EE10E0F801BE
+:101A400080818B7F808388818160888342E060E031
+:101A500080E00E94610CE1EEF0E080818E7F808367
+:101A6000E2EEF0E080818160808380818860808305
+:101A7000F80180818E7F8083888180618883DF91F7
+:101A8000CF911F910F910895E8EDF0E080818F7E56
+:101A90008083E7EDF0E080818160808384E082BF15
+:101AA00081E08093F0010C94010DE8EDF0E080817D
+:101AB0008E7F80831092E20008951092DA001092D7
+:101AC000E10008951F920F920FB60F9211242F93E9
+:101AD0003F934F935F936F937F938F939F93AF93B6
+:101AE000BF93EF93FF938091E10082FF0BC0809141
+:101AF000E20082FF07C08091E1008B7F8093E100CC
+:101B00000E94C90F8091DA0080FF1FC08091D80029
+:101B100080FF1BC08091DA008E7F8093DA00809175
+:101B2000D90080FF0DC080E189BD82E189BD09B483
+:101B300000FEFDCF81E08093F1010E94C40905C041
+:101B400019BC1092F1010E94D2098091E10080FF3E
+:101B500019C08091E20080FF15C08091E2008E7F65
+:101B60008093E2008091E20080618093E2008091A6
+:101B7000D80080628093D80019BC85E08093F10181
+:101B80000E94D6098091E10084FF30C08091E2007C
+:101B900084FF2CC080E189BD82E189BD09B400FECB
+:101BA000FDCF8091D8008F7D8093D8008091E10097
+:101BB0008F7E8093E1008091E2008F7E8093E2002F
+:101BC0008091E20081608093E2008091ED018823A2
+:101BD00011F084E007C08091E30087FD02C081E03E
+:101BE00001C083E08093F1010E94D8098091E10057
+:101BF00083FF29C08091E20083FF25C08091E1002E
+:101C0000877F8093E10082E08093F1011092ED01E3
+:101C10008091E1008E7F8093E1008091E2008E7FD1
+:101C20008093E2008091E20080618093E20042E0D4
+:101C300060E080E00E94610C8091F00088608093F9
+:101C4000F0000E94D509FF91EF91BF91AF919F9154
+:101C50008F917F916F915F914F913F912F910F9055
+:101C60000FBE0F901F9018951F920F920FB60F92F4
+:101C700011242F933F934F935F936F937F938F9391
+:101C80009F93AF93BF93CF93DF93EF93FF93C09155
+:101C9000E900CF708091EC00D82FD17080FDD0E8A2
+:101CA0001092E9008091F000877F8093F000789493
+:101CB0000E94780E1092E9008091F0008860809375
+:101CC000F000CD2BCF70C093E900FF91EF91DF9131
+:101CD000CF91BF91AF919F918F917F916F915F91C4
+:101CE0004F913F912F910F900FBE0F901F9018951D
+:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3
+:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115
+:101D1000F10091938E13FBCF0E94F4098091E800AB
+:101D200083FF1FC18091F2019091F301492F50E090
+:101D30004A30510508F015C1FA01EA5AFF4F0C94D8
+:101D4000B323803881F0823809F00BC18091F6010D
+:101D50008F708093E9008091EB0085FB882780F9E4
+:101D60001092E90006C08091EE019091EF0191116F
+:101D700082609091E800977F9093E8008093F10053
+:101D80001092F100C8C0282F2D7F09F0EAC08823E7
+:101D900019F0823061F0E5C08091F401813009F0E2
+:101DA000E0C0933009F080E08093EF012BC0809178
+:101DB000F401811127C08091F6018F7009F4D1C020
+:101DC0008093E9002091EB0020FF1CC0933021F4A8
+:101DD0008091EB00806214C09091EB009061909331
+:101DE000EB0021E030E0A90102C0440F551F8A95A5
+:101DF000E2F74093EA001092EA008091EB008860DD
+:101E00008093EB001092E9008091E800877F86C004
+:101E10008111A7C01091F4011F778091E3008078B1
+:101E2000812B8093E3008091E800877F8093E80016
+:101E30000E94960C8091E80080FFFCCF8091E30027
+:101E400080688093E300111102C082E001C083E04A
+:101E50008093F10186C08058823008F082C0809162
+:101E6000F4019091F5018C3D53E0950779F583E0FD
+:101E70008A838AE289834FB7F894DE01139620E0C3
+:101E80003EE051E2E32FF0E050935700E49120FF51
+:101E900003C0E295EF703F5FEF708E2F90E0EA3065
+:101EA00010F0C79601C0C0968D939D932F5F24318B
+:101EB00049F74FBF8091E800877F8093E8006AE28E
+:101EC00070E0CE0101960E949D0B14C0AE014F5FE1
+:101ED0005F4F6091F6010E94E40ABC01009709F48B
+:101EE00040C09091E800977F9093E80089819A81A3
+:101EF0000E94000C8091E8008B778093E80031C04D
+:101F0000803879F58091E800877F8093E8008091A0
+:101F1000ED018093F1008091E8008E778093E800D6
+:101F20000E94960C1EC081111CC09091F401923049
+:101F3000C0F48091E800877F8093E8009093ED01E2
+:101F40000E94960C8091ED01811106C08091E30002
+:101F500087FD02C081E001C084E08093F1010E940E
+:101F6000E0098091E80083FF0AC08091E800877F44
+:101F70008093E8008091EB0080628093EB00AA964A
+:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A
+:101F900008950895CF938091F1018823A1F0C09115
+:101FA000E900CF709091EC00892F817090FD80E85E
+:101FB000C82B1092E9008091E80083FD0E94780E02
+:101FC000CF70C093E900CF910895909375018093ED
+:101FD00074010895E0917401F0917501309721F03A
+:101FE0000190F081E02D099480E00895E091740162
+:101FF000F0917501309721F00280F381E02D099472
+:102000000895E0917401F0917501309721F00480FA
+:10201000F581E02D099408952091720130917301AA
+:102020008217930771F09093730180937201E0918E
+:102030007401F0917501309721F00680F781E02D51
+:1020400009940895209170013091710182179307CE
+:1020500071F09093710180937001E0917401F0919F
+:102060007501309721F00084F185E02D09940895E1
+:1020700008950C9438100E94921B0E9433030C9414
+:10208000541C9F92AF92BF92CF92DF92EF92FF9239
+:102090000F931F93CF93DF9300D000D000D0CDB724
+:1020A000DEB70E944B030DE010E0AA24A394B12CEC
+:1020B000902E802F0E943904980129583E4F6901C3
+:1020C000F901F080F826A1F40150110988F78FEF8B
+:1020D00089838A831B820E949B1B8160782F9D834A
+:1020E0008C8349815A816B818D810E94D8102FC0C9
+:1020F0009091DA0191FF04C08E830E943F048E818B
+:1021000025E030E0A501022E01C0440F0A94EAF751
+:10211000E42E4F21C1F029839A828E2191E009F4A7
+:1021200090E09B830E949B1B8160782F9D838C8312
+:1021300049815A816B818D810E94D810F60180817E
+:10214000E826E08204C021503109E0F6BDCF0E94AC
+:102150003B1F109176010E94EA0F1817B9F00E94F8
+:10216000EA0F8093760126960FB6F894DEBF0FBE75
+:10217000CDBFDF91CF911F910F91FF90EF90DF9036
+:10218000CF90BF90AF909F900C94E30826960FB627
+:10219000F894DEBF0FBECDBFDF91CF911F910F919D
+:1021A000FF90EF90DF90CF90BF90AF909F900895F9
+:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82
+:1021C0000FBECDBF4F83588769877A878B87DE0123
+:1021D000119686E0FD0111928A95E9F785E0FE01EE
+:1021E000379601900D928A95E1F749815A816B816A
+:1021F0007C818D819E810E9421172B960FB6F894C9
+:10220000DEBF0FBECDBFDF91CF910895CF9388235E
+:1022100009F4C2C0C82F823859F40E94EA0F81FD28
+:10222000BBC089E30E94FB190E94C81A89E30CC055
+:10223000833879F40E94EA0F80FDAEC083E50E94E6
+:10224000FB190E94C81A83E50E943D1ACF910C9495
+:10225000C81A843859F40E94EA0F82FD9DC087E4B1
+:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6
+:10227000813A48F48C2F0E947E2181118DC08C2FD1
+:102280000E94FB19E3CF80E28C0F883048F4C770BE
+:1022900081E001C0880FCA95EAF70E94811AD6CF63
+:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB
+:1022B00083E890E005C081E890E002C082E890E009
+:1022C000CF910C940C1088E58C0F833108F064C01A
+:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118
+:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186
+:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106
+:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173
+:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB
+:1023200038C082EE90E035C089EE90E032C08AEE8F
+:1023300090E02FC085EB90E02CC086EB90E029C0A8
+:1023400087EB90E026C08CEC90E023C08DEC90E011
+:1023500020C083E891E01DC08AE891E01AC082E9BC
+:1023600091E017C084E991E014C081E292E011C0CD
+:1023700083E292E00EC084E292E00BC085E292E03C
+:1023800008C086E292E005C087E292E002C08AE2DD
+:1023900092E0CF910C942210CF910895882309F4F4
+:1023A0004BC0823859F40E94EA0F81FF45C089E38F
+:1023B0000E94FB190E94C81A89E30CC0833871F48B
+:1023C0000E94EA0F80FF38C083E50E94FB190E943B
+:1023D000C81A83E50E943D1A0C94C81A843859F42F
+:1023E0000E94EA0F82FF28C087E40E94FB190E9426
+:1023F000C81A87E4EFCF9CEF980F913A58F390E218
+:10240000980F983050F4877091E001C0990F8A9529
+:10241000EAF7892F0E94871ADFCF9BE5980F933048
+:1024200020F480E090E00C940C10885A833120F462
+:1024300080E090E00C9422100895882321F00E94FF
+:10244000811A0C94C81A0895882321F00E94871AD3
+:102450000C94C81A08957F928F929F92AF92BF9268
+:10246000CF92DF92EF92FF920F931F93CF93DF9360
+:102470001F92CDB7DEB77C01C62E772EFC010581F9
+:1024800002950F70128111110E949E1A0E94F41978
+:10249000882379F0112369F080E28C0D883048F0B0
+:1024A00082E00E94DD190E94F41991E0D82ED9260D
+:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C
+:1024C0000C94B323872D807F072D0F70882311F084
+:1024D0000295007F112389F0002309F490C180E266
+:1024E0008C0D883020F4802F0E94811A03C0802F29
+:1024F0000E94911A0E94C81A82C18C2D0E94CE118E
+:10250000002309F495C180E28C0D883020F4802FDF
+:102510000E94871A03C0802F0E94971A0E94C81A2F
+:1025200087C1972D907F872D8F70903211F0829503
+:10253000807FCC2021F0F1E0CF16B1F01EC0112336
+:1025400049F0002309F414C1013009F011C10E94BF
+:10255000B11A6EC1002319F0013009F469C18983F1
+:102560000E94B41A89810AC1112321F0023008F0B7
+:102570005FC1FEC001115CC101C1112321F0002324
+:1025800009F4F6C03CC1002309F4F8C03EC1872D10
+:1025900086958695837090E0009719F0019761F019
+:1025A00047C1112321F08C2D972D937002C080E03C
+:1025B00090E00E940C103CC1112321F08C2D972D2E
+:1025C000937002C080E090E00E94221031C18C2DF7
+:1025D000112319F00E94431E02C00E94AB1E0E94EC
+:1025E000301F26C1872D837009F052C0111120C100
+:1025F0008C2D829586958770880F880F9C2D9F70F3
+:10260000892E912CA12CB12C082E04C0880C991C69
+:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041
+:1026200020E030E0B901A80104C0440F551F661F27
+:10263000771F8A95D2F7CB01BA0160957095809586
+:10264000909503C060E070E0CB01272D269526957C
+:10265000237030E02230310569F02330310589F0F4
+:10266000682979298A299B292130310571F00E9436
+:102670006918DEC0682979298A299B290E94851852
+:10268000D7C00E946918C501B4010E944D18D0C07E
+:10269000112319F0872D817001C08695882309F4D4
+:1026A000C7C08C2D829586958770880F880F9C2DCA
+:1026B0009F70892E912CA12CB12C082E04C0880C5F
+:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC
+:1026D00010E020E030E0B901A80104C0440F551F0C
+:1026E000661F771F8A95D2F7CB01BA016095709566
+:1026F0008095909503C060E070E0CB01272D269572
+:1027000026952370422F50E04230510569F0433046
+:10271000510589F0682979298A299B294130510579
+:1027200071F00E94431984C0682979298A299B295C
+:102730000E945F197DC00E944319C501B4010E9427
+:10274000271976C08C2D90E0FC01E05EF109E5319F
+:10275000F10508F050C0E059FF4F0C94B3230C2D45
+:102760000F70872D8F71112331F00E94C018802FB8
+:102770000E941D125DC00E94E118802F0E94241249
+:1027800057C0112339F0011153C0872D8F710E945A
+:1027900006194EC0023008F04BC0F7CF112339F0B4
+:1027A000872D8F710E94C01843C01123C9F3872D54
+:1027B0008F710E94E1183CC0112329F0872D8F7181
+:1027C0000E94AB1835C00E94A11832C0112351F0ED
+:1027D000172D1F71812F0E94C01863E0812F0E9466
+:1027E000D41926C081E00E94DD19023008F182E090
+:1027F0000E94DD191DC0112331F0002389F28C2DB8
+:102800000E94061115C0002391F28C2D0E94CE115A
+:102810000FC0472D4F706C2DC7010E9415050E94F7
+:10282000C51706C0472D4F706C2DC7010E94F205D9
+:10283000DD20F9F00E94D01980FD1BC0F701128243
+:102840000E94CA190E94C018C7010E9448140E9421
+:10285000CA190F90DF91CF911F910F91FF90EF90C8
+:10286000DF90CF90BF90AF909F908F907F900C940F
+:10287000E1180F90DF91CF911F910F91FF90EF9092
+:10288000DF90CF90BF90AF909F908F907F900895F2
+:102890000F931F93CF93DF93EC01888199812B8154
+:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B
+:1028B0000E944A05882371F0688179818A810E948B
+:1028C000C6198C010E947B190E944218B801CE01E2
+:1028D0000E942B12DF91CF911F910F9108950E94BA
+:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471
+:1028F000E11F0E94301F80E090E00E940C1080E0F9
+:1029000090E00C9422100E948E1A0C946F140E9476
+:10291000BB19292F22952F7030E02C3031054CF453
+:102920002A3031056CF42250310922303105A8F4E7
+:1029300007C02C30310569F02F30310551F00DC042
+:10294000803F69F018F4803E40F409C0843F29F4C8
+:1029500006C093FB882780F9089580E0089581E000
+:102960000895CF93DF9300D000D01F92CDB7DEB78C
+:102970000F900F900F900F900F90DF91CF910895CF
+:10298000CF93DF9300D000D000D0CDB7DEB726962E
+:102990000FB6F894DEBF0FBECDBFDF91CF91089583
+:1029A0001F93CF93DF93C091850116E0809186013C
+:1029B000C81799F0D0E01C9FF0011D9FF00D112465
+:1029C000E957FE4F408151816281738184819581F5
+:1029D0000E94C0142196C770E9CFDF91CF911F915B
+:1029E00008954091B7015091B8016091B90170917B
+:1029F000BA018091BB019091BC010C94C0148091EC
+:102A0000BC0182958F7009F054C08091B901882370
+:102A100009F44FC080918501A09186016091B701B2
+:102A20007091B8014091BA015091BB01B6E08A178C
+:102A300009F43FC090E041155105C1F17F3F11F409
+:102A40006F3FA1F1B89FF001B99FF00D1124E95734
+:102A5000FE4F218172132AC02081621327C0228178
+:102A6000211124C0238134812417350710F421500B
+:102A70003109241B350B283C3105C0F42091BC01E1
+:102A80002F7020612093BC0126E0289FF001299F30
+:102A9000F00D1124E457FE4F80818F708061808398
+:102AA00087EB91E00E9448140C94D0140196877033
+:102AB000BECF0895CF92DF92EF92FF920F931F93B4
+:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32
+:102AD0000FBECDBF8C0185E0F801DE011D9601908F
+:102AE0000D928A95E1F7D8014C9111965C9111975E
+:102AF00012966C9112971396CD90DC9014973091AA
+:102B0000B7017091B8018091BA019091BB01009713
+:102B100009F46BC17F3F19F43F3F09F466C1E090AF
+:102B2000B901EE2009F4C0C02091BC01C816D90635
+:102B300028F0F601E81BF90BCF0104C080959095B1
+:102B40008C0D9D1DFF24F394883C910578F0F12CA9
+:102B5000207F09F0C6C07C2DD98AC88A89890E9445
+:102B6000B11487EB91E00E944814B1C0822F807F9E
+:102B700009F046C0751314C0341312C0611110C09F
+:102B80002F7020612093BC010E94F11487EB91E02B
+:102B90000E9448148091BC01D80115968C932EC0D8
+:102BA000CD2819F15F3F11F44F3FF9F0F62E611176
+:102BB0001CC0809185012091860136E0821709F4BE
+:102BC0005AC090E0389FF001399FF00D1124E95769
+:102BD000FE4F7181571306C07081471303C0728185
+:102BE000711103C001968770E9CFF62E662309F4B0
+:102BF00018C18091BC0181608093BC01F12C11C18E
+:102C0000751308C0341306C0611104C08091BC0163
+:102C1000D801C3C04D875E878D859E856A8B0E94D3
+:102C200087146A898823E1F16623D1F12091BC01E0
+:102C3000822F82958F7090E0029774F08091B70197
+:102C40009091B80198878F831986DB86CA862C8776
+:102C5000CE0107960E94481486E0F801A7EBB1E088
+:102C600001900D928A95E1F70E94FF140E94F114E1
+:102C7000FF24F394D6C04D875E878D859E850E9484
+:102C8000BB19292F22952F7030E0223031050CF02E
+:102C9000BCC09F7009F0B6C0805E883008F4C1C027
+:102CA000C8010E944814E4CFC816D90608F453C0DE
+:102CB000F601E81BF90BCF01883C910508F450C0E0
+:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E
+:102CD000F1E086E0DF011D928A95E9F70E94F11488
+:102CE000A0C0751314C0341312C0611110C08091BC
+:102CF000BC01F8018583C8010E94481486E0E7EB17
+:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C
+:102D10005E878D859E856A8B0E9487146A898823C9
+:102D200009F4BECF662309F4BBCF2091BC01822FEA
+:102D300082958F7090E002970CF48ECF8091B7014E
+:102D40009091B8019A8389831B82DD82CC822E8385
+:102D5000CE0101967FCF809590958C0D9D1DACCFB7
+:102D6000F62E662309F49CCF75132EC034132CC0A5
+:102D70002091BC0120FD1FC0822F82958F70D9F059
+:102D8000D80115962C9315978F3049F08F5F982FA7
+:102D90009295907F822F8F70892B15968C93C80106
+:102DA0000E94481486E0F801A7EBB1E001900D9273
+:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7
+:102DC0000D928A95E1F72DC04D875E878D859E8592
+:102DD0000E948714811140CF8091BC018160809353
+:102DE000BC01C8010E9448141CC0662309F458CFD6
+:102DF0004D875E878D859E850E948714882309F400
+:102E00004FCF2ACF811148CF0CC0243031050CF0B0
+:102E100047CF9F7009F440CFF8019581907F09F06A
+:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D
+:102E3000DF91CF911F910F91FF90EF90DF90CF9096
+:102E400008951F93CF93DF93CDB7DEB72C970FB6BE
+:102E5000F894DEBF0FBECDBF4F83588769877A874E
+:102E60008B879C87CE0107960E945A15882369F0AC
+:102E70008F8198852A853B85232BF1F19F3F09F0AF
+:102E800063C08F3F09F060C037C086E0FE0137960F
+:102E9000DE01119601900D928A95E1F76F81788598
+:102EA000EA85FB85309741F17F3F11F46F3F21F1B7
+:102EB0002091860130E0C9010196877099274091E1
+:102EC000850150E08417950709F447C069837A8328
+:102ED000FD83EC8396E0929FD001939FB00D112467
+:102EE000A957BE4FFE01319601900D929A95E1F7D8
+:102EF000809386010E94D01416E080918501909104
+:102F000086018917C1F1189FC001112489579E4F6E
+:102F10000E945A15882379F1E09185011E9FF001E6
+:102F20001124E957FE4F4081518162817381848170
+:102F300095810E94C0148091850190E00196877070
+:102F4000992780938501D9CF4F81588569857A85E6
+:102F50008B859C850E94C014CFCF0E948314109251
+:102F6000860110928501E7EBF1E086E0DF011D921A
+:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45
+:102F8000CDBFDF91CF911F910895EF92FF920F93E4
+:102F90001F93CF93DF938C01009709F46CC0F12C41
+:102FA000EE24E394E8012196F8018491843740F4FB
+:102FB000843008F051C0813081F0823019F15BC05B
+:102FC000853709F444C0A8F19CE7980F903708F0C2
+:102FD00052C08F770E94CE1141C00E5F1F4FFE017D
+:102FE000C49180E28C0F883048F4C7708E2D01C0E8
+:102FF000880FCA95EAF70E94A11A14C08C2F0E946C
+:1030000006112DC00E5F1F4FFE01C49180E28C0F90
+:10301000883058F4C7708E2D01C0880FCA95EAF722
+:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3
+:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3
+:103040009FE00197F1F700C00000C150F6CF0E5F7E
+:103050001F4FFE01F49003C00E9406118E018F2DB8
+:10306000882309F49FCFEFE9FFE03197F1F700C023
+:1030700000008150F5CFDF91CF911F910F91FF900C
+:10308000EF90089508956093C1017093C2018093F9
+:10309000C3019093C4010C946F140F931F9300917C
+:1030A000C1011091C2012091C3013091C401DC0122
+:1030B000CB01802B912BA22BB32B8093C10190933A
+:1030C000C201A093C301B093C4011F910F910C944E
+:1030D0006F140F931F930091C1011091C2012091B1
+:1030E000C3013091C401DC01CB0180239123A223D1
+:1030F000B3238093C1019093C201A093C301B09305
+:10310000C4011F910F910C946F140F931F930091A2
+:10311000C1011091C2012091C3013091C401DC01B1
+:10312000CB0180279127A227B3278093C1019093D9
+:10313000C201A093C301B093C4011F910F910C94DD
+:103140006F141092BD011092BE011092BF01109237
+:10315000C0010C946F1441E050E060E070E004C0E6
+:10316000440F551F661F771F8A95D2F74093BD0104
+:103170005093BE016093BF017093C0010C946F1413
+:1031800041E050E060E070E004C0440F551F661F4E
+:10319000771F8A95D2F78091BD019091BE01A091D1
+:1031A000BF01B091C001482B592B6A2B7B2B409358
+:1031B000BD015093BE016093BF017093C0010C9498
+:1031C0006F1441E050E060E070E004C0440F551F10
+:1031D000661F771F8A95D2F7409550956095709538
+:1031E0008091BD019091BE01A091BF01B091C0013D
+:1031F000482359236A237B234093BD015093BE018A
+:103200006093BF017093C0010C946F1441E050E0D3
+:1032100060E070E004C0440F551F661F771F8A9559
+:10322000D2F78091BD019091BE01A091BF01B091F4
+:10323000C001482759276A277B274093BD01509337
+:10324000BE016093BF017093C0010C946F140F9383
+:103250001F930091BD011091BE012091BF013091DB
+:10326000C001DC01CB01802B912BA22BB32B8093CF
+:10327000BD019093BE01A093BF01B093C0011F9107
+:103280000F910C946F140F931F930091BD01109137
+:10329000BE012091BF013091C001DC01CB01802330
+:1032A0009123A223B3238093BD019093BE01A093E9
+:1032B000BF01B093C0011F910F910C946F140F9335
+:1032C0001F930091BD011091BE012091BF0130916B
+:1032D000C001DC01CB0180279127A227B32780936F
+:1032E000BD019093BE01A093BF01B093C0011F9197
+:1032F0000F910C946F140895CF92DF92EF92FF928A
+:103300000F931F93CF93DF938C01C090C101D09096
+:10331000C201E090C301F090C4018091BD01909181
+:10332000BE01A091BF01B091C001C82AD92AEA2AE2
+:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520
+:10334000A795979587950A94D2F780FF06C0B80194
+:103350008C2F0E944808019721F4219760F780E0A4
+:1033600001C08C2FDF91CF911F910F91FF90EF90B3
+:10337000DF90CF900895CF93DF93EC010E947C19EA
+:10338000BE010E944808DF91CF910895CB010E94B1
+:10339000BB1908958091C5018595859585950895FA
+:1033A0008091C5018770089598E0899F900111244C
+:1033B000262B2093C5010C94C0182091C50180953F
+:1033C00082238093C501982F977069F430E0482FCD
+:1033D000552747FD50952417350729F08595859584
+:1033E00085950C94E11808959091C501977081E03E
+:1033F00009F480E0089590910C01992321F09091B7
+:103400000D01911109C020910E0130910F01F901B8
+:1034100032969FEF40E01FC0982F9695969596950F
+:103420009F3050F5E0910E01F0910F01E90FF11D71
+:10343000877021E030E0A90102C0440F551F8A9532
+:10344000E2F7CA019181892B818308959F3F39F06A
+:103450004F5F4E3041F051915813F8CF0DC05111CC
+:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08
+:1034700097FDFA9582830895089590910C01992300
+:1034800021F090910D01911109C020910E01309110
+:103490000F01F9013296205F3F4F1FC0982F96957C
+:1034A000969596959F30F0F4E0910E01F0910F0102
+:1034B000E90FF11D877021E030E0A90102C0440F3F
+:1034C000551F8A95E2F7CA018095918189238183EE
+:1034D00008953196E217F30729F090819813F9CFF8
+:1034E0001082F7CF089581E090E0E0910E01F09115
+:1034F0000F01E80FF91F1082019680319105A9F79D
+:1035000008959091D901892B8093D90108958095D0
+:103510009091D90189238093D90108951092D901FE
+:1035200008959091D801892B8093D80108958095B2
+:103530009091D80189238093D80108951092D801E1
+:1035400008959091D701892B8093D7010895809594
+:103550009091D70189238093D70108951092D701C4
+:1035600008958093C60108951092C6010895809130
+:103570000E0190910F01FC0131969C01205F3F4F9D
+:1035800080E0919191118F5FE217F307D1F70895D1
+:10359000E0910E01F0910F018091D9018083E091BB
+:1035A0000E01F0910F0190818091D801892B8083C9
+:1035B000E0910E01F0910F0190818091D701892B4C
+:1035C00080838091C601882361F0E0910E01F09123
+:1035D0000F019081892B80830E94B71A811110926C
+:1035E000C60180910E0190910F010C94F60F20E01E
+:1035F000009739F0AC0141505109842395232F5F86
+:10360000F7CF822F0895CF92DF92EF92FF926C0155
+:10361000EE24FF24C114D104E104F10421F0C70118
+:10362000B60120E101C020E0C72ED82EE92EFF24EC
+:10363000C114D104E104F10419F0285FC701B601F7
+:103640006B017C0154E0F694E794D794C7945A95A3
+:10365000D1F7C114D104E104F10419F02C5FC701C2
+:10366000B6016B017C0142E0F694E794D794C794CD
+:103670004A95D1F7C114D104E104F10419F02E5F89
+:10368000C701B601DC01CB01B695A7959795879543
+:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5
+:1036A000DF90CF9008958091F101843021F1109244
+:1036B000DB0120E488E190E00FB6F894A8958093B0
+:1036C00060000FBE2093600080E00E94E30883B793
+:1036D000817F846083BF83B7816083BF789488953E
+:1036E00083B78E7F83BF88E10FB6F8948093600024
+:1036F000109260000FBE0895089508950E947C1BEB
+:103700000E944B030E947D1B0E94400491E08111A6
+:1037100001C090E0892F08950E9483140E94EA0F4F
+:103720000C94E30882E084BD93E095BD9AEF97BDC9
+:1037300080936E0008952FB7F8948091DC019091EA
+:10374000DD01A091DE01B091DF012FBF0895CF927E
+:10375000DF92EF92FF920F931F932FB7F89440914F
+:10376000DC015091DD016091DE017091DF012FBF1E
+:103770006A017B01EE24FF248C0120E030E0C016BA
+:10378000D106E206F30610F4415051099A01281BB4
+:10379000390BC9011F910F91FF90EF90DF90CF90EF
+:1037A00008951F920F920FB60F9211248F939F933B
+:1037B000AF93BF938091DC019091DD01A091DE0178
+:1037C000B091DF010196A11DB11D8093DC019093A2
+:1037D000DD01A093DE01B093DF01BF91AF919F9116
+:1037E0008F910F900FBE0F901F9018950E94E70CBD
+:1037F000F8942FEF87EA91E6215080409040E1F75E
+:1038000000C0000087E090EBDC018093FB01909307
+:10381000FC01A093FD01B093FE019CE088E10FB68E
+:10382000F894A895809360000FBE90936000FFCF3E
+:10383000EF92FF920F931F93CF93DF93D82FCDE09A
+:103840008C2F0E94390405E010E0E82EF12CC7010E
+:10385000002E02C0959587950A94E2F780FF09C073
+:10386000602F7C2F80E00E94F305D81302C081E016
+:1038700006C00150110958F7C15010F780E0DF91E0
+:10388000CF911F910F91FF90EF900895CF93C82F84
+:103890008CE20E94181C882321F08C2FCF910C946D
+:1038A000181C80E0CF910895CF930E949B1D811139
+:1038B00002C00E94811DC5E6C15049F00E944B0321
+:1038C0008FE39CE90197F1F700C00000F5CF89E292
+:1038D0000E94461C811113C18AE20E94461C81117C
+:1038E0000E94811D85E00E94461C81110E94F61BEA
+:1038F0000E94A61D8093DA0187E00E94461C88235F
+:10390000A9F18BE10E94461C882351F08091DA01D5
+:1039100081FB222720F991E0922790FB81F90EC0CC
+:103920008EE00E94461C882361F08091DA0182FBC0
+:10393000222720F991E0922790FB82F98093DA0107
+:1039400015C080E10E94461C9091DA01882341F065
+:1039500093FB222720F981E0822780FB93F904C0A2
+:10396000892F809580FB90F99093DA018091DA019C
+:103970000E94AA1D0E94B81D8093FA0180EE0E9449
+:10398000461C882341F08091FA01982F909590FB76
+:1039900080F98093FA0189E30E94461C882359F03C
+:1039A0008091FA0181FB222720F991E0922790FB78
+:1039B00081F98093FA0182EE0E94461C882359F017
+:1039C0008091FA0182FB222720F991E0922790FB57
+:1039D00082F98093FA0186EE0E94461C882359F0F2
+:1039E0008091FA0183FB222720F991E0922790FB36
+:1039F00083F98093FA0183EE0E94461C882359F0D4
+:103A00008091FA0184FB222720F991E0922790FB14
+:103A100084F98093FA0185E30E94461C882359F0BB
+:103A20008091FA0185FB222720F991E0922790FBF3
+:103A300085F98093FA0181E30E94461C882359F09E
+:103A40008091FA0186FB222720F991E0922790FBD2
+:103A500086F98093FA0181E10E94461C882359F07F
+:103A60008091FA0187FB222720F991E0922790FBB1
+:103A700087F98093FA018091FA010E94BC1D809120
+:103A8000FA0187FB882780F980930D0187E20E9465
+:103A9000461CC82F8EE10E94461C8111C2608FE136
+:103AA0000E94461C8111C46080E20E94461C811164
+:103AB000C86081E20E94461C8111C06182E20E94BE
+:103AC000461C8111C06283E20E94461C8111C064C1
+:103AD00084E20E94461C882311F0C06802C0CC23F7
+:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4
+:103AF000682F70E080E090E0CF910C944318CF9154
+:103B000008956DEE7EEF80E090E00E94ED2360E08E
+:103B100082E090E00E94DB2360E083E090E00E947E
+:103B2000DB2360E084E090E00E94DB2360E085E03E
+:103B300090E00C94DB2380E090E00E94D52321E00C
+:103B40008D3E9E4F09F020E0822F089582E090E0A4
+:103B50000C94CD23682F82E090E00C94DB2383E06B
+:103B600090E00C94CD23682F83E090E00C94DB234D
+:103B700084E090E00C94CD23682F84E090E00C94D6
+:103B8000DB238091E20180FF0BC06091130185E08F
+:103B9000689FB001112475956795759567952BC041
+:103BA00081FF09C06091130185E0689FB001112475
+:103BB0007595679520C082FF07C06091130185E06D
+:103BC000689FB001112417C09091E3019923D1F0AF
+:103BD00060911201961788F72091130185E0289FC4
+:103BE00090011124929FA001939F500D112470E029
+:103BF000CA010E949F236038710540F46115710568
+:103C000039F002C065E070E0862F08958FE70895CF
+:103C100081E008958091E20180FF08C06091110168
+:103C200070E0759567957595679521C081FF06C011
+:103C30006091110170E07595679519C082FF04C00D
+:103C40006091110170E010C09091E3019923C1F0DF
+:103C5000609110019617A0F780911101899FC00112
+:103C6000112470E00E949F236038710528F46115CB
+:103C7000710521F0862F08958FE7089581E008955A
+:103C800061E070E0F4CF803F21F40E94C11D819576
+:103C900004C0813F29F40E94C11D8093E60108956C
+:103CA000823F21F40E94C11D819504C0833F29F405
+:103CB0000E94C11D8093E5010895893F19F40E9477
+:103CC0000A1E05C08A3F31F40E940A1E8195809326
+:103CD000E70108958B3F21F40E940A1E819504C0DC
+:103CE0008C3F29F40E940A1E8093E8010895843FC6
+:103CF00021F48091E401816017C0853F21F4809117
+:103D0000E401826011C0863F21F48091E401846067
+:103D10000BC0873F21F48091E401886005C0883F93
+:103D200031F48091E40180618093E40108958D3F36
+:103D300021F48091E20181600BC08E3F21F48091DB
+:103D4000E201826005C08F3F29F48091E201846026
+:103D50008093E2010895803F39F48091E60187FF66
+:103D60006CC01092E60169C0813F29F48091E601A0
+:103D70001816BCF362C09091E501823F29F497FFC9
+:103D80005CC01092E50159C0833F19F41916CCF3B9
+:103D900054C0893F41F48091E70118160CF04DC0E2
+:103DA0001092E7014AC08A3F29F48091E70187FF1A
+:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6
+:103DC0001092E8013AC08C3F29F48091E80118165E
+:103DD000BCF333C0843F21F48091E4018E7F17C08F
+:103DE000853F21F48091E4018D7F11C0863F21F44D
+:103DF0008091E4018B7F0BC0873F21F48091E40127
+:103E0000877F05C0883F31F48091E4018F7E8093E5
+:103E1000E40113C08D3F21F48091E2018E7F0BC03D
+:103E20008E3F21F48091E2018D7F05C08F3F29F400
+:103E30008091E2018B7F8093E2018091E501811105
+:103E40000EC08091E60181110AC08091E7018111C5
+:103E500006C08091E801811102C01092E30108952B
+:103E600084EE91E00E9401100E949B1B9093E1015F
+:103E70008093E00108951F93CF93DF938091E00139
+:103E80009091E1010E94A71BAC019091E30199235D
+:103E900021F02091140130E006C0209115018AE044
+:103EA000289F900111244217530708F486C080917F
+:103EB000E501C091E601D091E7011091E80181117F
+:103EC00007C0C11176C0D11174C0111172C075C084
+:103ED0009F3F19F09F5F9093E301181624F40E940E
+:103EE000C11D8093E5018091E50187FF05C00E9417
+:103EF000C11D81958093E5011C1624F40E94C11D0B
+:103F00008093E6018091E60187FF05C00E94C11DF4
+:103F100081958093E6016091E501662339F1C091B6
+:103F2000E601CC2319F1772767FD7095872F972F2E
+:103F30000E94B02223E333E343E35FE30E941423B0
+:103F40000E947D226093E5016C2F772767FD7095B5
+:103F5000872F972F0E94B02223E333E343E35FE3ED
+:103F60000E9414230E947D226093E6011D1624F412
+:103F70000E940A1E8093E7018091E70187FF05C038
+:103F80000E940A1E81958093E701111624F40E9475
+:103F90000A1E8093E8018091E80187FF05C00E9416
+:103FA0000A1E81958093E801DF91CF911F910C94B7
+:103FB000301F9F3F09F08ECF96CFDF91CF911F9199
+:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE
+:103FD0001092E3011092E2010895833081F128F4F8
+:103FE000813059F08230D1F00895853009F449C00C
+:103FF000B8F1863009F456C0089580911501262F36
+:1040000030E0280F311D2F3F310524F4680F6093F5
+:10401000150108958FEF8093150108958091140183
+:10402000262F30E0280F311D2F3F310524F4680F73
+:104030006093140108958FEF809314010895809187
+:104040001301262F30E0280F311D2F3F310524F4B6
+:10405000680F6093130108958FEF80931301089503
+:1040600080911201262F30E0280F311D2F3F31059E
+:1040700024F4680F6093120108958FEF809312016A
+:10408000089580911101262F30E0280F311D2F3F18
+:10409000310524F4680F6093110108958FEF809328
+:1040A0001101089580911001262F30E0280F311D55
+:1040B0002F3F310524F4680F6093100108958FEFAE
+:1040C000809310010895833011F128F4813049F074
+:1040D000823091F00895853081F120F18630C1F170
+:1040E000089580911501681720F4861B80931501AF
+:1040F000089510921501089580911401681720F415
+:10410000861B8093140108951092140108958091E4
+:104110001301681720F4861B8093130108951092F1
+:104120001301089580911201681720F4861B809373
+:1041300012010895109212010895809111016817DB
+:1041400020F4861B809311010895109211010895A7
+:1041500080911001681720F4861B80931001089548
+:104160001092100108950F931F938D3109F46BC0C5
+:1041700008F03FC08E3009F47FC0C0F4873009F4E6
+:1041800069C068F4863009F0B1C08091DA01817F9E
+:104190008E7F8093DA0181E08093EA01A8C08830A5
+:1041A00009F4A2C08B3009F49FC0A0C0863109F485
+:1041B0009BC078F4803109F472C0813109F096C057
+:1041C0000E94831490910D0181E0892780930D0155
+:1041D0008BC0893109F488C08B3109F087C0809188
+:1041E000DA0181FB222720F991E0922790FB81F9E7
+:1041F0004CC0853309F470C048F4873209F46CC0B0
+:1042000008F459C0893209F467C070C0833438F4A7
+:104210008A3308F04EC0883309F466C067C083341F
+:1042200009F45AC0883409F061C00E9483140FEF6A
+:1042300013ED20E3015010402040E1F700C00000E2
+:104240000E94F61B51C00E9437220E94EA0F0E9472
+:10425000E3084AC09091DA01892F8095817080FB34
+:1042600090F929F0966098609093DA0140C0997FA8
+:10427000977F9093DA0138C08091DA0182FB222780
+:1042800020F991E0922790FB82F98093DA0199233B
+:1042900059F18091DA0181608093DA0125C0809123
+:1042A000DA0183FB222720F991E0922790FB83F922
+:1042B000ECCF895301C08D5141E050E060E070E0E7
+:1042C0008A019B0104C0000F111F221F331F8A9512
+:1042D000D2F7C901B80104C061E070E080E090E06D
+:1042E0000E9443180E94831481E001C080E01F9166
+:1042F0000F91089580E0089580E00895CF93C82F2E
+:104300008091EA01813079F018F08230E9F187C0BC
+:10431000E0910E01F0910F018081813169F08232CC
+:1043200009F07FC009C0E0910E01F0910F0180817A
+:10433000813111F0823261F48C2F0E947A21811137
+:1043400004C08C2F0E94B3201DC081E090E01AC0F1
+:104350008C2F0E947C21811114C0C43179F048F463
+:10436000CB3079F0C03109F060C082E08093EA017F
+:1043700008C0C93219F0C83321F057C01092EA01C1
+:1043800054C081E0817053C0C93289F118F5C4313D
+:1043900071F1A8F4C73009F046C08AE08093150196
+:1043A00094E19093140193E0909313018093120190
+:1043B00088E08093110188E28093100134C0CE51CF
+:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB
+:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC
+:1043E00013C0C13579F0C235F1F461E00DC08091A0
+:1043F000E901882319F01092E90115C081E080934A
+:10440000EA0115C061E006C08091E9010E94ED1F3C
+:104410000AC06AE08091E9010E94632004C0109202
+:10442000EA0180E004C081E002C080E0ABCFCF9120
+:104430000895E1E8F0E08081886080838081816078
+:1044400080838FB7F89493E09093890090ED9093D8
+:1044500088008FBF0895EFE6F0E08081826080835E
+:104460000895EFE6F0E080818D7F80830895EFE688
+:10447000F0E0908182E08927808308951F920F9257
+:104480000FB60F9211242F933F934F935F936F9327
+:104490007F938F939F93AF93BF93EF93FF938091FD
+:1044A000EB019091EC0101969093EC018093EB016C
+:1044B000811103C082E00E94E308E091EC01E695DF
+:1044C000E695F0E0EC54FB4FE4918091EB018E1304
+:1044D00003C080E00E94E308FF91EF91BF91AF918C
+:1044E0009F918F917F916F915F914F913F912F910C
+:1044F0000F900FBE0F901F90189504D06894B111C3
+:104500008DC0089570D088F09F5790F0B92F9927EB
+:10451000B751A0F0D1F0660F771F881F991F1AF0CE
+:10452000BA95C9F712C0B13081F077D0B1E00895E3
+:1045300074C0672F782F8827B85F39F0B93FCCF364
+:10454000869577956795B395D9F73EF490958095C4
+:10455000709561957F4F8F4F9F4F0895E89409C0E4
+:1045600097FB3EF490958095709561957F4F8F4FA6
+:104570009F4F9923A9F0F92F96E9BB279395F695BC
+:10458000879577956795B795F111F8CFFAF4BB0F3A
+:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E
+:1045A000882311F096E911C0772321F09EE8872F28
+:1045B000762F05C0662371F096E8862F70E060E0E4
+:1045C0002AF09A95660F771F881FDAF7880F96955D
+:1045D000879597F9089557FD9058440F551F59F046
+:1045E0005F3F71F04795880F97FB991F61F09F3FE0
+:1045F00079F087950895121613061406551FF2CF09
+:104600004695F1DF08C0161617061806991FF1CF58
+:1046100086957105610508940895E894BB2766277F
+:104620007727CB0197F908950BD078C069D028F08F
+:104630006ED018F0952309F05AC05FC01124EECF58
+:10464000CADFA0F3959FD1F3950F50E0551F629FED
+:10465000F001729FBB27F00DB11D639FAA27F00DDB
+:10466000B11DAA1F649F6627B00DA11D661F829F02
+:104670002227B00DA11D621F739FB00DA11D621FE7
+:10468000839FA00D611D221F749F3327A00D611D04
+:10469000231F849F600D211D822F762F6A2F1124E6
+:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39
+:1046B000BB1F661F771F881F91505040A9F79E3F70
+:1046C000510570F014C0AACF5F3FECF3983EDCF3C5
+:1046D000869577956795B795F795E7959F5FC1F7AD
+:1046E000FE2B880F911D9695879597F9089597F958
+:1046F0009F6780E870E060E008959FEF80EC089588
+:1047000000240A94161617061806090608950024B0
+:104710000A9412161306140605060895092E03942A
+:10472000000C11F4882352F0BB0F40F4BF2B11F49E
+:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF
+:10474000072E16F4009407D077FD09D00E94B923F4
+:1047500007FC05D03EF4909581959F4F0895709584
+:1047600061957F4F0895EE0FFF1F0590F491E02DA6
+:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8
+:10478000B70710F0A61BB70B881F991F5A95A9F7FA
+:1047900080959095BC01CD010895F999FECF92BD09
+:1047A00081BDF89A992780B50895A8E1B0E042E06C
+:1047B00050E00C94F523262FF999FECF92BD81BDD0
+:1047C000F89A019700B4021639F01FBA20BD0FB64F
+:1047D000F894FA9AF99A0FBE08950196272F0E942D
+:1047E000DC230C94DB23DC01CB01FC01F999FECF27
+:1047F00006C0F2BDE1BDF89A319600B40D92415069
+:0A4800005040B8F70895F894FFCF78
+:10480A000220E508730950091C09E8080101C701DB
+:10481A0028080A03140A3F4D363975042804F2039E
+:10482A00B9034C0365037E039703010203040506DB
+:04483A000708090062
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/kines-ish/keymap.c b/keyboards/ergodox_ez/keymaps/kines-ish/keymap.c new file mode 100644 index 000000000..5063c99f2 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/kines-ish/keymap.c @@ -0,0 +1,184 @@ +#include "ergodox_ez.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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Caps | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Esc | Grv |Insert| Left | Right| | Up | Down | [ | ] | L2 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Ctrl | Alt | | LGui | Ctrl | + * ,------|------|------| |------+------+------. + * | | | Home | | PgUp | | | + * |Backsp| Del |------| |------| 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_LEFT, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), + KC_CAPS, 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_ESC, KC_GRV, KC_INS, KC_LEFT, KC_RGHT, + KC_LCTL,KC_LALT, + KC_HOME, + KC_BSPC,KC_DEL,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, KC_SCLN, KC_QUOT, + MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_FN2, + KC_LGUI, KC_RCTL, + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | PrScr | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | ScrLk | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Pause | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | . | 0 | = | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + 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, + 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) { + 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/kines-ish/readme.md b/keyboards/ergodox_ez/keymaps/kines-ish/readme.md new file mode 100644 index 000000000..5d39a0590 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/kines-ish/readme.md @@ -0,0 +1,19 @@ +This keymap attempts to match the Kinesis Contoured (aka Advantage) default +layout as closely as possible. See +http://www.kinesis-ergo.com/wp-content/uploads/2013/06/advantage_layout_win.pdf + +Apart from the obvious mappings, this keymap also: + +* removes the dual-purpose momentary layer/normal keys: Z, /, and Grv; + because the author--coming from a Kinesis keyboard--finds the delays and + accidental modifiers to be more disconcerting than helpful. + +* puts Esc in the bottom left since there's no place for it in the top + left to match the Kinesis. + +* changes the bottom-right key into an L2 toggle since there's otherwise no + way to get to L2. + +* adds PrScr, ScrLk and Pause to the L1 keymap, down the left side, since + they're present on the Kinesis but not available in the default + ergodox_ez keymap. diff --git a/keyboards/ergodox_ez/keymaps/mpiechotka/compiled.hex b/keyboards/ergodox_ez/keymaps/mpiechotka/compiled.hex new file mode 100644 index 000000000..35a56dd4c --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/mpiechotka/compiled.hex @@ -0,0 +1,1181 @@ +:100000000C9402030C9446030C9446030C94460390
+:100010000C9446030C9446030C9446030C9446033C
+:100020000C9446030C9446030C941C0E0C94EE0E98
+:100030000C9446030C9446030C9446030C9446031C
+:100040000C9446030C94F8220C9446030C9446033B
+:100050000C9446030C948B1C0C9446030C9446039E
+:100060000C9446030C9446030C9446030C944603EC
+:100070000C9446030C9446030C9446030C944603DC
+:100080000C9446030C9446030C9446030C944603CC
+:100090000C9446030C9446030C9446030C944603BC
+:1000A0000C9446030C9446030C9446035B0F7D0F9F
+:1000B0006B107D0F6B10C20FE50F6B103A104D10D7
+:1000C0001C131C134B134B138113A113D214D21402
+:1000D000AC13D2145C145C14C314D214D214CC1418
+:1000E0006914691469146914691469146914691428
+:1000F0006914691469146914691469146914691418
+:100100007B1488148F149614A0140147024774328C
+:10011000014702477432012102217432012802286A
+:10012000000147024774320147024774320120023E
+:100130002074320128022800014702477432014727
+:1001400002477432011F021F743201280228000185
+:100150004702477432014702477432011E021E747F
+:10016000320128022800000001C002C003C004C000
+:1001700005C0018C028C2E004C002900E1003542A4
+:1001800000001E00140004001D0034004D421F003A
+:100190001A0015001B00E1042A7120000900160056
+:1001A000060050002C7221001300170019004F00A8
+:1001B0004A0022000A00070005000000E20050008B
+:1001C000025400002E00000001204F0002540000E5
+:1001D0002D000000E20023000D000B000E000000C7
+:1001E000E60024000F001100100052004B00250013
+:1001F0001800080036005100287226001C000C0070
+:1002000037002F002B7127003300120038713000A7
+:100210004E432D0031003400E500004200002E0066
+:100220004C002900E100354200001E0014000400CB
+:100230001D0034004D421F001A0016001B00E1048F
+:100240002A71200008000700060050002C722100CF
+:100250001500090019004F004A00220017000A008B
+:1002600005000000E2005000025400002E000000D3
+:1002700001204F00025400002D000000E200230086
+:100280001C000B0011000000E600240018000D0007
+:10029000100052004B0025000C000E0036005100EB
+:1002A0002872260012000F0037002F002B71270044
+:1002B00013003300387130004E432D0031003400FC
+:1002C000E500004200000100010001000100010002
+:1002D00000003A001E0220022202010001003B0041
+:1002E0001F0221022302010001003C002F0226020E
+:1002F0002F00010001003D00300227023000010004
+:1003000001003E003102350035020000010001000D
+:1003100001000000010000000100010001000000D8
+:100320000100000001003F005200510024020000C3
+:1003300001004000240021001E00010001004100D6
+:10034000250022001F003700010042002600230084
+:10035000200027000100430025022E0231002E005C
+:100360000100440045000100010001000000000000
+:100370000000000000000000000000000620022035
+:100380000000000001000000072003200000000022
+:100390000100000000000420000000000100000037
+:1003A0000000052000000000010000000000000027
+:1003B000000000000100000000000000000000003C
+:1003C000010000000000000000000000010000002B
+:1003D000000000000000000001000000000000001C
+:1003E000000000000100000000000000000000000C
+:1003F00001000000000000000000000001000000FB
+:1004000000000000000000000100000000000000EB
+:1004100000000000000016034500720067006F0036
+:1004200044006F007800200045005A0000001603C9
+:100430004500720067006F0044006F0078002000E4
+:1004400045005A0000000403090409026D0004017C
+:1004500000A0FA09040000010301010009211101B3
+:100460000001223F000705810308000A090401007A
+:100470000103010200092111010001224D000705BD
+:10048000820308000A090402000103000000092198
+:10049000110100012236000705830308000A090440
+:1004A00003000103000000092111010001223900AD
+:1004B000070584031000011201100100000008ED7F
+:1004C000FE071301000102000105010906A1010553
+:1004D0000719E029E7150025019508750181020536
+:1004E000081901290595057501910295017503917A
+:1004F00001050719002977150025019578750181F7
+:1005000002C005010980A101850216010026B7007D
+:100510001A01002AB700751095018100C0050C0969
+:1005200001A1018503160100269C021A01002A9CE4
+:1005300002751095018100C005010902A1010901A0
+:10054000A100050919012905150025019505750169
+:100550008102950175038101050109300931158179
+:10056000257F95027508810609381581257F95013B
+:1005700075088106050C0A38021581257F950175DD
+:10058000088106C0C005010906A101050719E02977
+:10059000E71500250195087501810295017508810F
+:1005A0000105081901290595057501910295017547
+:1005B0000391010507190029FF150025FF95067510
+:1005C000088100C0000000000000000000000001E1
+:1005D0000204060A0F17202C3A4A5D71879DB3C7A3
+:1005E000DAE9F5FCFFFCF5E9DAC7B39D87715D4AEE
+:1005F0003A2C20170F0A0604020100000000000038
+:100600000000000011241FBECFEFDAE0DEBFCDBF37
+:1006100004B603FE24C08091FB019091FC01A091DF
+:10062000FD01B091FE018730904BA740B04BB9F46B
+:100630001092FB011092FC011092FD011092FE013C
+:1006400014BE84B7877F84BF88E10FB6F894809387
+:100650006000109260000FBEE0E0FFE3099511E03A
+:10066000A0E0B1E0EEE7F9E402C005900D92A433FA
+:10067000B107D9F711E0A4E3B1E001C01D92AB3F8F
+:10068000B107E1F70E94600B0C94BD240C940000AC
+:100690001092B9008AE08093B800089594EA90938C
+:1006A000BC009091BC0097FFFCCF9091B900987F5F
+:1006B000983021F0903111F081E008958093BB00D3
+:1006C00084E88093BC008091BC0087FFFCCF8091C0
+:1006D000B900887F883111F0803471F780E0089587
+:1006E00084E98093BC008091BC0084FDFCCF089518
+:1006F0008093BB0084E88093BC008091BC0087FF9E
+:10070000FCCF9091B900987F81E0983209F480E0A5
+:10071000089584E88093BC008091BC0087FFFCCFE3
+:100720008091BB00089580910101811115C080E482
+:100730000E944E038093010181110CC082E10E944E
+:10074000780380930101811105C08FEF0E94780327
+:10075000809301010E94700384B1807F84B985B1C8
+:10076000807F85B98AB1837F8AB98BB1837F8BB94A
+:100770003E98469808950E944E05809301010E947C
+:10078000930380B38C7080BB81B3836F81BBA5E37F
+:10079000B1E0E3E4F1E08EE08E0F11921D928E1332
+:1007A000FCCF0C943805BF92CF92DF92EF92FF926C
+:1007B0000F931F93CF93DF9380910101882379F0EA
+:1007C000809134018F5F80933401811108C00E94B1
+:1007D0004E0580930101811102C00E94E00405E3EF
+:1007E00011E0C0E0D0E0DD24D39482E0C82EEE24F6
+:1007F000E394F12CC730D10500F5809101018111FE
+:1008000064C080E40E944E0380930101811112C0F4
+:1008100082E10E9478038093010181110BC0C7011E
+:100820000C2E01C0880F0A94EAF780950E94780385
+:10083000809301010E94700348C0CA30A1F028F4DF
+:10084000C83059F0C93061F005C0CC3089F070F083
+:10085000CD3089F0209A289810C0219A29980DC08F
+:10086000229A2A980AC0239A2B9807C0529A01C04C
+:10087000539A5B9802C03E9A469890EA9A95F1F78F
+:100880009FB1799902C082E001C080E091709D25FE
+:10089000982B7C9902C084E001C080E0892B7D996F
+:1008A00002C038E001C030E0832B7E9902C020E115
+:1008B00001C020E0822B9FB19095991F9927991F25
+:1008C0009295990F907E892B0FC080910101811123
+:1008D00049C080E40E944E0380930101882379F18E
+:1008E000B12C0E9470038B2DF8019081981719F09C
+:1008F0008083C09200010E94930321960F5F1F4FD7
+:10090000CE30D10509F076CF80910001882361F1C6
+:10091000815080930001882339F08FE99FE001978F
+:10092000F1F700C0000020C0A3E4B1E0E5E3F1E08E
+:10093000CF01825F91919D938E13FCCF15C083E10F
+:100940000E947803809301018111CACF81E40E9443
+:100950004E03809301018111C3CF0E948903B82EF9
+:10096000B094BFCF80E0C0CF0E94DE0481E0DF9171
+:10097000CF911F910F91FF90EF90DF90CF90BF909C
+:100980000895E82FF0E0ED5BFE4F80810895089513
+:100990000F931F93CF93DF93C3E4D1E010E00C2FAC
+:1009A000025F899190E00E94B11B180F0C13F9CFE0
+:1009B000812FDF91CF911F910F9108950C94E00545
+:1009C00056985E9825982D9826982E9827982F98B7
+:1009D0008FEF90E0909389008093880090938B0034
+:1009E00080938A0090938D0080938C00259A2D9A95
+:1009F0002FEF80E792E0215080409040E1F700C067
+:100A00000000269A2E9A2FEF80E792E02150804036
+:100A10009040E1F700C00000279A2F9A2FEF80E75F
+:100A200092E0215080409040E1F700C000002598FE
+:100A30002D982FEF80E792E0215080409040E1F721
+:100A400000C0000026982E982FEF80E792E02150FA
+:100A500080409040E1F700C0000027982F985698FA
+:100A60005E9825982D9826982E9827982F98089567
+:100A700089EA8093800089E08093810024982C98F3
+:100A80003F988AB18F748AB96E98479A8BB1806B00
+:100A90008BB9769A0E94E0040C94DF0580E2809383
+:100AA00001018091510181110EC00E94480381E033
+:100AB000809351012FEF83ED90E3215080409040CF
+:100AC000E1F700C0000080E40E944E038093010122
+:100AD00081112EC00E94780380930101811128C0EA
+:100AE0000E94780380930101811122C08FE30E944C
+:100AF00078038093010181111BC00E94700380E480
+:100B00000E944E0380930101811112C08CE00E946B
+:100B100078038093010181110BC00E9478038093B8
+:100B20000101811105C08FE30E94780380930101C8
+:100B30000E947003809101010895FC01623021F14F
+:100B400028F4662349F0613071F036C0643041F119
+:100B500008F1653059F130C08281882311F085EEAB
+:100B60000CC085EE0EC08281882351F085EE0E9474
+:100B7000C01185EE0E94881283EE0E94C0111CC035
+:100B800083EE0E94881218C08281811115C08FE403
+:100B900091E00895828181110FC088E391E008956A
+:100BA0008281811109C081E291E0089582818111E1
+:100BB00003C08AE091E0089580E090E008950895F0
+:100BC0006091BD017091BE018091BF019091C00103
+:100BD0000E94BD1B56985E9825982D9826982E98B1
+:100BE00027982F98823019F0833021F00895259AA4
+:100BF0002D9A0895269A2E9A089581E0089581E00D
+:100C000008950C94FF0508950F931F93CF93DF93DE
+:100C10008C01FC01C081D181CE010E94361ABE0137
+:100C20000E94AD06EC01B8010E940106882309F478
+:100C30008DC0F8018281882309F44AC080915D014A
+:100C400081111FC0C431F0E5DF0709F051C00E94D7
+:100C5000030681E080935D010E94551C90935C0126
+:100C600080935B011092540110925601109255012D
+:100C7000109258011092570110925A011092590186
+:100C800065C080915B0190915C010E94611C883C71
+:100C9000910570F480915401E82FF0E0EE0FFF1FF2
+:100CA000EB5AFE4FD183C0838F5F809354014EC0B7
+:100CB000C43880E5D80721F0C538D04501F13AC0E5
+:100CC000F8018281882341F01092520182E01EC017
+:100CD000C438E0E5DE0759F580915201811106C064
+:100CE00086E20E94C01186E20E94881282E01CC047
+:100CF000C438F0E5DF0741F3C538D045D9F4F80131
+:100D00008281882331F01092530180E20E94D71231
+:100D10001DC080915301811106C087E20E94C0115D
+:100D200087E20E94881280E20E94DE120FC0C5385E
+:100D3000D04529F381E08093520180935301C8018B
+:100D4000DF91CF911F910F910C94FD0580E0DF9111
+:100D5000CF911F910F910895089596E0799FF0012A
+:100D6000112494E5899FE00DF11D1124E60FF11D7A
+:100D7000EE0FFF1FEA58FE4F859194910895880F5A
+:100D8000991FFC01EA51F040859194910895880FD4
+:100D9000991FFC01EA59FE4F8591949108950F9394
+:100DA0001F93CF93DF93EC01811520E3920750F559
+:100DB000C11580E2D80708F0C3C0CB3BD10590F441
+:100DC000C83AD10508F06AC0C53AD10508F05BC041
+:100DD000C430D10508F0D0C1219709F0CAC101E0A3
+:100DE00010E00AC2CF3FD10511F008F0C5C1C03FE5
+:100DF000D10508F0A2C0CE01805E9109089708F4E1
+:100E0000BBC1B7C1C13090E5D90709F4A2C020F534
+:100E1000C0318FE4D80770F4C11590E4D90708F009
+:100E200094C0C11521E3D20708F0A3C1DD278E01CC
+:100E3000106CE2C1C115D04509F09BC10E943D155F
+:100E40008FEF94E32CE0815090402040E1F700C008
+:100E500000000E94B01CD0C1C11597E5D90758F415
+:100E6000C03121E5D20708F01CC1C43180E5D807A4
+:100E700008F475C07EC1CE0190578115904108F0ED
+:100E800078C1DF7073C1C53AD10509F477C1C63A9C
+:100E9000D10509F076C102E810E4AEC1C83AD10527
+:100EA00009F472C1C93AD10509F471C1CA3AD10530
+:100EB00009F470C1CB3AD10509F46FC1CC3AD10520
+:100EC00009F46EC1CD3AD10509F46DC1C03BD1051D
+:100ED00009F46CC1CE3AD10509F46BC1CF3AD10502
+:100EE00009F46AC1C13BD10509F469C1C23BD1050E
+:100EF00009F468C1C33BD10509F467C1C43BD105FE
+:100F000009F466C1C53BD10509F465C1C63BD105ED
+:100F100009F464C1C73BD10509F463C1C83BD105DD
+:100F200009F462C1C93BD10509F461C1CA3BD105CD
+:100F300009F460C100E014E45FC18E0110655CC17A
+:100F4000CE019F700E94C70658C1DF708E01106AE3
+:100F500053C18091DA0181608093DA014DC10E9412
+:100F6000551E811102C00E943B1E0E94721E90E01D
+:100F70009093FB018093FA01C23080E5D80721F4F9
+:100F80008091FA01816086C0C43090E5D90721F4D0
+:100F90008091FA0182607EC0C63020E5D20721F43C
+:100FA0008091FA01846076C0C83080E5D80719F4D2
+:100FB0008091FA0127C0CA3090E5D90721F48091C9
+:100FC000FA01806167C0CC3020E5D20721F480911E
+:100FD000FA0180625FC0CE3080E5D80721F48091AD
+:100FE000FA01806457C0C03190E5D90721F480919F
+:100FF000FA0180684FC0C23120E5D20729F4809100
+:10100000FA018460886046C0C33080E5D80721F4C7
+:101010008091FA018E7F3EC0C53090E5D90721F45A
+:101020008091FA018D7F36C0C73020E5D20721F4C8
+:101030008091FA018B7F2EC0C93080E5D80719F462
+:101040008091FA0126C0CB3090E5D90721F4809138
+:10105000FA018F7E1FC0CD3020E5D20721F48091A8
+:10106000FA018F7D17C0CF3080E5D80721F4809139
+:10107000FA018F7B0FC0C13190E5D90721F480912F
+:10108000FA018F7707C0C331D04531F48091FA015E
+:101090008B7F877F8093FA018091FA010E94761EF0
+:1010A000ABC08D2F99278F70992781309105D9F486
+:1010B0009E012370332702C0880F991F2A95E2F7FB
+:1010C0009C688E0144E0000F111F4A95E1F700274C
+:1010D0001370802B912B53E0CC0FDD1F5A95E1F755
+:1010E000C076DD272FC08230910531F4DC2FCC276C
+:1010F0008E01016F106A80C08330910569F4CE01C2
+:101100008370992701E010E002C0000F111F8A953B
+:10111000E2F7C8019C680FC084309105B9F4CE0194
+:101120008370992701E010E002C0000F111F8A951B
+:10113000E2F7C8019A6823E0CC0FDD1F2A95E1F79A
+:10114000C07ED7708C010C2B1D2B56C085309105AD
+:1011500031F4DC2FCC278E01046F106A4DC0069746
+:1011600009F04AC0CF71DD27DC2FCC278E01106239
+:1011700043C000E010E040C08E013EC001E810E432
+:101180003BC003E810E438C002EE14E435C009EEB9
+:1011900014E432C00AEE14E42FC005EB14E42CC0B2
+:1011A00006EB14E429C007EB14E426C00CEC14E4AD
+:1011B00023C00DEC14E420C003E815E41DC00AE8C8
+:1011C00015E41AC002E915E417C004E915E414C0D7
+:1011D00001E216E411C003E216E40EC004E216E4D4
+:1011E0000BC005E216E408C006E216E405C007E2FB
+:1011F00016E402C00AE216E4C801DF91CF911F9104
+:101200000F91089596E0799FF001112494E5899F4C
+:10121000E00DF11D1124E60FF11DEE0FFF1FEA583E
+:10122000FE4F85919491803E9105E0F4803C9105BC
+:1012300058F58133910509F46FC048F4893291055E
+:1012400009F463C08A32910509F46DC072C0893314
+:101250009105E9F082389105D1F08533910509F4C3
+:101260004DC067C0833E910581F138F4803E910501
+:10127000B9F0823E9105D9F05CC0863E910561F1DE
+:10128000873E9105A1F155C00E94BF0608952091A7
+:10129000FA0120FD02C021FF4CC080EE90E049C061
+:1012A0008091FA0180FFF9CF89E390E042C08091FC
+:1012B000FA0182FF0EC08091FA0184FF03C080E032
+:1012C00090E037C083EE90E034C08091FA0182FF55
+:1012D000F2CF82EE90E02DC08091FA0183FF0BC027
+:1012E0008091FA0184FDEBCF87EE90E022C08091DF
+:1012F000FA0183FFF5CF86EE90E01BC08091FA01E2
+:1013000085FF07C089E290E014C08091FA0185FF53
+:10131000F9CF85E390E00DC08091FA0186FF07C008
+:101320008AE290E006C08091FA0186FFF9CF81E35E
+:1013300090E00E94CF06089508950C949C09809136
+:101340006E010895CF93DF9300D01F92CDB7DEB723
+:101350009C018091F101843019F593E099833B83DE
+:101360002A839093E9008FEF9091E800815095FDDA
+:1013700006C095ED9A95F1F700008111F5CF8091A7
+:10138000E80085FF0DC040E050E063E070E0CE0172
+:1013900001960E940C0C8091E8008E778093E80003
+:1013A0000F900F900F90DF91CF910895CF93DF931F
+:1013B00000D01F92CDB7DEB72091F101243021F586
+:1013C00022E029839B838A8383E08093E9008FEF67
+:1013D0009091E800815095FD06C095ED9A95F1F742
+:1013E00000008111F5CF8091E80085FF0DC040E03D
+:1013F00050E063E070E0CE0101960E940C0C8091F9
+:10140000E8008E778093E8000F900F900F90DF91A7
+:10141000CF9108952091F1012430F1F422E020933E
+:10142000E9002FEF3091E800215035FD06C035ED81
+:101430003A95F1F700002111F5CF2091E80025FF42
+:101440000BC040E050E065E070E00E940C0C809121
+:10145000E8008E778093E8000895CF93DF93EC0146
+:101460009091F101943009F046C080910C018823DD
+:10147000D9F080910D018823B9F09093E9008FEFA6
+:101480009091E800815095FD06C095E19A95F1F79D
+:1014900000008111F5CF8091E80085FF2CC040E06D
+:1014A00050E060E170E017C081E08093E9008FEFC9
+:1014B0009091E800815095FD06C095ED9A95F1F761
+:1014C00000008111F5CF8091E80085FF14C040E055
+:1014D00050E068E070E0CE010E940C0C8091E800C2
+:1014E0008E778093E80080E1FE01AEE5B1E00190E7
+:1014F0000D928A95E1F7DF91CF9108958091F001E7
+:10150000811109C00E94A10D0E94FE0D8091E20090
+:1015100084608093E20008951092F0010895089588
+:101520000C94E5220E94461C0E94EB220E94A4100B
+:101530000C949D0942E061EC81E00E941B0D42E0A9
+:1015400061EC82E00E941B0D42E061EC83E00E94AE
+:101550001B0D42E161EC84E00C941B0D8091F301C2
+:10156000833009F455C030F4813071F0823009F4D1
+:101570008EC008958A3009F47AC08B3009F460C0B7
+:10158000893009F09CC020C08091F201813A09F0B5
+:1015900096C08091E800877F8093E8008091F601F3
+:1015A0009091F701892B21F460E18EE591E003C071
+:1015B00060E080E090E070E00E94570C8091E800CD
+:1015C0008B778093E80008958091F201813209F0D1
+:1015D00076C08091F6019091F701009719F003977A
+:1015E00009F06DC08091E800877F8093E8008091CA
+:1015F000E80082FD05C08091F1018111F8CF5FC044
+:101600008091F10080936E018091E8008B7753C048
+:101610008091F201813A09F052C08091F6019091D7
+:10162000F701892B09F04BC08091E800877F8093F8
+:10163000E8008091E80080FFFCCF80910C0136C06B
+:101640008091F2018132D9F58091F6019091F701F4
+:10165000892BA9F58091E800877F8093E8000E949C
+:10166000500D8091F40180930C010C943D158091F4
+:10167000F201813221F58091E800877F8093E800B4
+:101680000E94500D8091F50180936F010895809123
+:10169000F201813AA1F48091E800877F8093E8000D
+:1016A0008091E80080FFFCCF80916F018093F10072
+:1016B0008091E8008E778093E8000C94500D089597
+:1016C00084B7877F84BF88E10FB6F8948093600069
+:1016D000109260000FBE90E080E80FB6F8948093FF
+:1016E0006100909361000FBE0E94F3100E94A10D53
+:1016F0000E94FE0D8091E20084608093E200789465
+:101700000E9484100E94F51082E091E00E949F10D8
+:101710000E94D3228091F101853069F40E940D1C52
+:101720008091EF018823B1F30E94381C882391F344
+:101730000E94F60BEFCF0E94FB10ECCF292F33272E
+:1017400023303105C9F064F42130310581F02230B5
+:10175000310509F043C08DE690E02AE434E042C050
+:1017600021323105F1F02232310541F137C082E1F9
+:1017700090E027EB34E036C099278130910541F0A5
+:101780008230910541F0892B49F5E6E4F4E005C08B
+:10179000EEE2F4E002C0E6E1F4E0849190E09F0123
+:1017A00021C06430D8F4E62FF0E0EE0FFF1FEE5DAD
+:1017B000FE4F2081318189E090E014C0643070F4E4
+:1017C00070E0FB01EE0FFF1FE65EFE4F20813181CE
+:1017D000FB01EA5EFE4F808190E004C080E090E073
+:1017E00020E030E0FA0131832083089580E189BD53
+:1017F00082E189BD09B400FEFDCF8091D8008F7DC4
+:101800008093D8008091E00082608093E000809116
+:10181000E00081FDFCCF0895CF92DF92EF92FF921E
+:101820000F931F93CF93DF93EC018B016A010E940A
+:101830006F0D811133C0C114D10439F0F6018081DC
+:101840009181081B190BC80FD91FE12CF12C011530
+:10185000110519F18091E80085FD16C08091E8001E
+:101860008E778093E800C114D10449F0F60180819D
+:101870009181E80EF91EF182E08285E00FC00E949E
+:101880006F0D882321F30AC089918093F1000150E4
+:101890001109FFEFEF1AFF0ADACF80E0DF91CF9155
+:1018A0001F910F91FF90EF90DF90CF9008952091BE
+:1018B000F8013091F9012617370748F061157105D5
+:1018C00039F42091E8002E772093E80001C0B90197
+:1018D00040E061157105A9F12091F101222309F47D
+:1018E00043C0253009F442C02091E80023FD40C0E8
+:1018F0002091E80022FD32C02091E80020FFE9CFCE
+:101900004091F3002091F20030E0342BFC01CF0134
+:101910006115710559F02830310540F481918093AB
+:10192000F100615071092F5F3F4FF1CF41E0283046
+:10193000310509F040E02091E8002E772093E8007F
+:10194000C8CF4111C9CF0AC08091F101882361F04D
+:10195000853061F08091E80083FD0AC08091E80045
+:1019600082FFF2CF80E0089582E0089583E0089539
+:1019700081E008952091F8013091F9012617370789
+:1019800048F06115710539F42091E8002E77209315
+:10199000E80001C0B901FC0120E06115710591F179
+:1019A0008091F101882309F440C0853009F43FC0DB
+:1019B0008091E80083FD3DC08091E80082FD2FC04A
+:1019C0008091E80080FFE9CF2091F3008091F20040
+:1019D00090E0922B6115710559F08830910540F423
+:1019E00024912093F1003196615071090196F2CF54
+:1019F00021E0089709F020E08091E8008E7780933D
+:101A0000E800CBCF2111CCCF0AC08091F10188230F
+:101A100061F0853061F08091E80083FD0AC080911B
+:101A2000E80082FFF2CF80E0089582E0089583E02D
+:101A3000089581E00895982F973058F59093E90024
+:101A4000981739F07091EC002091ED005091F00062
+:101A500003C0242F762F50E021FF19C03091EB00F6
+:101A60003E7F3093EB003091ED003D7F3093ED00F1
+:101A70003091EB0031603093EB007093EC002093D9
+:101A8000ED005093F0002091EE0027FF07C09F5F0C
+:101A9000D3CF8F708093E90081E0089580E00895AE
+:101AA0008091F20187FF11C08091E80082FD05C09E
+:101AB0008091F1018111F8CF11C08091E8008B77FE
+:101AC0000BC08091F101882349F08091E80080FFEC
+:101AD000F8CF8091E8008E778093E80008952091F8
+:101AE000E4003091E50095E64091EC00842F817090
+:101AF00040FF22C08091E80080FD1CC08091F10170
+:101B0000882391F0853091F08091EB0085FD10C025
+:101B10004091E4005091E5004217530729F39A01E0
+:101B2000915011F784E0089582E0089583E00895CC
+:101B300081E0089580E008954091E80042FFDECF03
+:101B400008950E940F0E0E94170EE0EEF0E08081D3
+:101B500081608083E8EDF0E080818F77808319BC1D
+:101B6000A7EDB0E08C918E7F8C9380818F7E8083F7
+:101B70001092F00108950F931F93CF93DF930E946B
+:101B80000F0E0E94170EC8EDD0E088818F778883F2
+:101B900088818068888388818F7D888319BC1092B2
+:101BA000F1011092ED011092EF011092EE0100EEA2
+:101BB00010E0F80180818B7F808388818160888339
+:101BC00042E060E080E00E941B0DE1EEF0E08081E9
+:101BD0008E7F8083E2EEF0E080818160808380816F
+:101BE00088608083F80180818E7F80838881806116
+:101BF0008883DF91CF911F910F910895E8EDF0E078
+:101C000080818F7E8083E7EDF0E08081816080833A
+:101C100084E082BF81E08093F0010C94BB0DE8ED7D
+:101C2000F0E080818E7F80831092E2000895109210
+:101C3000DA001092E10008951F920F920FB60F92F2
+:101C400011242F933F934F935F936F937F938F93C1
+:101C50009F93AF93BF93EF93FF938091E10082FF37
+:101C60000BC08091E20082FF07C08091E1008B7F72
+:101C70008093E1000E9483108091DA0080FF1FC0F2
+:101C80008091D80080FF1BC08091DA008E7F809306
+:101C9000DA008091D90080FF0DC080E189BD82E12A
+:101CA00089BD09B400FEFDCF81E08093F1010E945F
+:101CB0007E0A05C019BC1092F1010E948C0A809125
+:101CC000E10080FF19C08091E20080FF15C0809183
+:101CD000E2008E7F8093E2008091E2008061809339
+:101CE000E2008091D80080628093D80019BC85E022
+:101CF0008093F1010E94900A8091E10084FF30C03E
+:101D00008091E20084FF2CC080E189BD82E189BD21
+:101D100009B400FEFDCF8091D8008F7D8093D8005C
+:101D20008091E1008F7E8093E1008091E2008F7EC0
+:101D30008093E2008091E20081608093E2008091D4
+:101D4000ED01882311F084E007C08091E30087FD56
+:101D500002C081E001C083E08093F1010E94920AF9
+:101D60008091E10083FF29C08091E20083FF25C0BC
+:101D70008091E100877F8093E10082E08093F10110
+:101D80001092ED018091E1008E7F8093E1008091BF
+:101D9000E2008E7F8093E2008091E2008061809378
+:101DA000E20042E060E080E00E941B0D8091F000C4
+:101DB00088608093F0000E948F0AFF91EF91BF919D
+:101DC000AF919F918F917F916F915F914F913F91D3
+:101DD0002F910F900FBE0F901F9018951F920F928A
+:101DE0000FB60F9211242F933F934F935F936F93EE
+:101DF0007F938F939F93AF93BF93CF93DF93EF9393
+:101E0000FF93C091E900CF708091EC00D82FD17082
+:101E100080FDD0E81092E9008091F000877F8093E8
+:101E2000F00078940E94320F1092E9008091F00047
+:101E300088608093F000CD2BCF70C093E900FF91B4
+:101E4000EF91DF91CF91BF91AF919F918F917F9152
+:101E50006F915F914F913F912F910F900FBE0F9017
+:101E60001F9018951F93CF93DF93CDB7DEB7AA9736
+:101E70000FB6F894DEBF0FBECDBFE2EFF1E088E011
+:101E80008E0F9091F10091938E13FBCF0E94AE0ABA
+:101E90008091E80083FF1FC18091F2019091F301CE
+:101EA000492F50E04A30510508F015C1FA01EA5AAD
+:101EB000FF4F0C946D24803881F0823809F00BC1FB
+:101EC0008091F6018F708093E9008091EB0085FB93
+:101ED000882780F91092E90006C08091EE01909168
+:101EE000EF01911182609091E800977F9093E80054
+:101EF0008093F1001092F100C8C0282F2D7F09F0C7
+:101F0000EAC0882319F0823061F0E5C08091F401C5
+:101F1000813009F0E0C0933009F080E08093EF0158
+:101F20002BC08091F401811127C08091F6018F7040
+:101F300009F4D1C08093E9002091EB0020FF1CC080
+:101F4000933021F48091EB00806214C09091EB00FB
+:101F500090619093EB0021E030E0A90102C0440FB2
+:101F6000551F8A95E2F74093EA001092EA008091AB
+:101F7000EB0088608093EB001092E9008091E8000C
+:101F8000877F86C08111A7C01091F4011F778091CF
+:101F9000E3008078812B8093E3008091E800877FC5
+:101FA0008093E8000E94500D8091E80080FFFCCFF4
+:101FB0008091E30080688093E300111102C082E009
+:101FC00001C083E08093F10186C08058823008F020
+:101FD00082C08091F4019091F5018C3D53E095070A
+:101FE00079F583E08A838AE289834FB7F894DE012A
+:101FF000139620E03EE051E2E32FF0E050935700CB
+:10200000E49120FF03C0E295EF703F5FEF708E2FE9
+:1020100090E0EA3010F0C79601C0C0968D939D9372
+:102020002F5F243149F74FBF8091E800877F80936D
+:10203000E8006AE270E0CE0101960E94570C14C0DD
+:10204000AE014F5F5F4F6091F6010E949E0BBC0195
+:10205000009709F440C09091E800977F9093E800C2
+:1020600089819A810E94BA0C8091E8008B778093D5
+:10207000E80031C0803879F58091E800877F80934F
+:10208000E8008091ED018093F1008091E8008E7767
+:102090008093E8000E94500D1EC081111CC09091D9
+:1020A000F4019230C0F48091E800877F8093E800CB
+:1020B0009093ED010E94500D8091ED01811106C0B9
+:1020C0008091E30087FD02C081E001C084E080933D
+:1020D000F1010E949A0A8091E80083FF0AC0809172
+:1020E000E800877F8093E8008091EB008062809316
+:1020F000EB00AA960FB6F894DEBF0FBECDBFDF91FE
+:10210000CF911F9108950895CF938091F101882375
+:10211000A1F0C091E900CF709091EC00892F8170FF
+:1021200090FD80E8C82B1092E9008091E80083FDC3
+:102130000E94320FCF70C093E900CF910895909321
+:102140007501809374010895E0917401F091750117
+:10215000309721F00190F081E02D099480E00895FE
+:10216000E0917401F0917501309721F00280F381C4
+:10217000E02D09940895E0917401F0917501309774
+:1021800021F00480F581E02D0994089520917201D9
+:10219000309173018217930771F0909373018093CC
+:1021A0007201E0917401F0917501309721F0068081
+:1021B000F781E02D0994089520917001309171010B
+:1021C0008217930771F09093710180937001E091F1
+:1021D0007401F0917501309721F00084F185E02DB4
+:1021E0000994089508950C94F2100E944C1C0E94CA
+:1021F000BB030C940E1D9F92AF92BF92CF92DF92C1
+:10220000EF92FF920F931F93CF93DF9300D000D0F4
+:1022100000D0CDB7DEB70E94D3030DE010E0AA24B2
+:10222000A394B12C902E802F0E94C10498012958AC
+:102230003E4F6901F901F080F826A1F4015011091F
+:1022400088F78FEF89838A831B820E94551C8160E7
+:10225000782F9D838C8349815A816B818D810E9467
+:1022600092112FC09091DA0191FF04C08E830E94D9
+:10227000C7048E8125E030E0A501022E01C0440F85
+:102280000A94EAF7E42E4F21C1F029839A828E2125
+:1022900091E009F490E09B830E94551C8160782FA7
+:1022A0009D838C8349815A816B818D810E9492111B
+:1022B000F6018081E826E08204C021503109E0F671
+:1022C000BDCF0E94F51F109176010E94A41018172F
+:1022D000B9F00E94A4108093760126960FB6F89468
+:1022E000DEBF0FBECDBFDF91CF911F910F91FF9049
+:1022F000EF90DF90CF90BF90AF909F900C949D098E
+:1023000026960FB6F894DEBF0FBECDBFDF91CF91FA
+:102310001F910F91FF90EF90DF90CF90BF90AF9003
+:102320009F900895CF93DF93CDB7DEB72B970FB66D
+:10233000F894DEBF0FBECDBF4F83588769877A8779
+:102340008B87DE01119686E0FD0111928A95E9F7EF
+:1023500085E0FE01379601900D928A95E1F749815B
+:102360005A816B817C818D819E810E94DB172B9627
+:102370000FB6F894DEBF0FBECDBFDF91CF910895A9
+:10238000CF93882309F4C2C0C82F823859F40E9421
+:10239000A41081FDBBC089E30E94B51A0E94821B74
+:1023A00089E30CC0833879F40E94A41080FDAEC08C
+:1023B00083E50E94B51A0E94821B83E50E94F71AEA
+:1023C000CF910C94821B843859F40E94A41082FD92
+:1023D0009DC087E40E94B51A0E94821B87E4EECF5D
+:1023E0008CEF8C0F813A48F48C2F0E943822811197
+:1023F0008DC08C2F0E94B51AE3CF80E28C0F8830FD
+:1024000048F4C77081E001C0880FCA95EAF70E94BE
+:102410003B1BD6CF8BE58C0F833078F4C53A29F07F
+:10242000C63A31F083E890E005C081E890E002C050
+:1024300082E890E0CF910C94C61088E58C0F833130
+:1024400008F064C0C83A39F1C93A41F1CA3A49F1D1
+:10245000CB3A51F1CC3A59F1CD3A61F1C03B69F137
+:10246000CE3A71F1CF3A79F1C13B81F1C23B89F1AA
+:10247000C33B91F1C43B99F1C53BA1F1C63BA9F126
+:10248000C73BB1F1C83BB9F1C93BC1F1CA3BC9F186
+:1024900080E090E038C082EE90E035C089EE90E0B8
+:1024A00032C08AEE90E02FC085EB90E02CC086EB26
+:1024B00090E029C087EB90E026C08CEC90E023C030
+:1024C0008DEC90E020C083E891E01DC08AE891E0A7
+:1024D0001AC082E991E017C084E991E014C081E25A
+:1024E00092E011C083E292E00EC084E292E00BC061
+:1024F00085E292E008C086E292E005C087E292E0C1
+:1025000002C08AE292E0CF910C94DC10CF91089542
+:10251000882309F44BC0823859F40E94A41081FF2B
+:1025200045C089E30E94B51A0E94821B89E30CC052
+:10253000833871F40E94A41080FF38C083E50E94A4
+:10254000B51A0E94821B83E50E94F71A0C94821B25
+:10255000843859F40E94A41082FF28C087E40E94A6
+:10256000B51A0E94821B87E4EFCF9CEF980F913A37
+:1025700058F390E2980F983050F4877091E001C0C2
+:10258000990F8A95EAF7892F0E94411BDFCF9BE5BF
+:10259000980F933020F480E090E00C94C610885A95
+:1025A000833120F480E090E00C94DC1008958823BF
+:1025B00021F00E943B1B0C94821B0895882321F07C
+:1025C0000E94411B0C94821B08957F928F929F92D0
+:1025D000AF92BF92CF92DF92EF92FF920F931F9331
+:1025E000CF93DF931F92CDB7DEB77C01C62E772E37
+:1025F000FC01058102950F70128111110E94581B78
+:102600000E94AE1A882379F0112369F080E28C0DC4
+:10261000883048F082E00E94971A0E94AE1A91E03A
+:10262000D82ED92601C0D12CE72DE295EF70F0E02D
+:10263000E05AFF4F0C946D24872D807F072D0F707B
+:10264000882311F00295007F112389F0002309F4FB
+:1026500090C180E28C0D883020F4802F0E943B1BBB
+:1026600003C0802F0E944B1B0E94821B82C18C2DB5
+:102670000E948812002309F495C180E28C0D8830F5
+:1026800020F4802F0E94411B03C0802F0E94511B09
+:102690000E94821B87C1972D907F872D8F7090326B
+:1026A00011F08295807FCC2021F0F1E0CF16B1F0BF
+:1026B0001EC0112349F0002309F414C1013009F0B0
+:1026C00011C10E946B1B6EC1002319F0013009F487
+:1026D00069C189830E946E1B89810AC1112321F07F
+:1026E000023008F05FC1FEC001115CC101C11123BD
+:1026F00021F0002309F4F6C03CC1002309F4F8C01E
+:102700003EC1872D86958695837090E0009719F0DD
+:10271000019761F047C1112321F08C2D972D937003
+:1027200002C080E090E00E94C6103CC1112321F05D
+:102730008C2D972D937002C080E090E00E94DC10F9
+:1027400031C18C2D112319F00E94FD1E02C00E9480
+:10275000651F0E94EA1F26C1872D837009F052C0B1
+:10276000111120C18C2D829586958770880F880F56
+:102770009C2D9F70892E912CA12CB12C082E04C069
+:10278000880C991CAA1CBB1C0A94D2F7C4FE14C066
+:102790000FE010E020E030E0B901A80104C0440FD0
+:1027A000551F661F771F8A95D2F7CB01BA01609536
+:1027B00070958095909503C060E070E0CB01272D67
+:1027C00026952695237030E02230310569F02330BC
+:1027D000310589F0682979298A299B292130310519
+:1027E00071F00E942319DEC0682979298A299B2962
+:1027F0000E943F19D7C00E942319C501B4010E944D
+:102800000719D0C0112319F0872D817001C086955A
+:10281000882309F4C7C08C2D829586958770880F10
+:10282000880F9C2D9F70892E912CA12CB12C082EE5
+:1028300004C0880C991CAA1CBB1C0A94D2F7C4FEC5
+:1028400014C00FE010E020E030E0B901A80104C09E
+:10285000440F551F661F771F8A95D2F7CB01BA0127
+:10286000609570958095909503C060E070E0CB0115
+:10287000272D269526952370422F50E04230510592
+:1028800069F04330510589F0682979298A299B2903
+:102890004130510571F00E94FD1984C068297929E1
+:1028A0008A299B290E94191A7DC00E94FD19C50121
+:1028B000B4010E94E11976C08C2D90E0FC01E05E2D
+:1028C000F109E531F10508F050C0E059FF4F0C94D3
+:1028D0006D240C2D0F70872D8F71112331F00E9404
+:1028E0007A19802F0E94D7125DC00E949B19802FF9
+:1028F0000E94DE1257C0112339F0011153C0872DF9
+:102900008F710E94C0194EC0023008F04BC0F7CF43
+:10291000112339F0872D8F710E947A1943C011233A
+:10292000C9F3872D8F710E949B193CC0112329F098
+:10293000872D8F710E94651935C00E945B1932C0C6
+:10294000112351F0172D1F71812F0E947A1963E016
+:10295000812F0E948E1A26C081E00E94971A0230B1
+:1029600008F182E00E94971A1DC0112331F0002364
+:1029700089F28C2D0E94C01115C0002391F28C2D7C
+:102980000E9488120FC0472D4F706C2DC7010E9406
+:102990009D050E947F1806C0472D4F706C2DC70102
+:1029A0000E94AC06DD20F9F00E948A1A80FD1BC04F
+:1029B000F70112820E94841A0E947A19C7010E94AC
+:1029C00002150E94841A0F90DF91CF911F910F91F1
+:1029D000FF90EF90DF90CF90BF90AF909F908F903F
+:1029E0007F900C949B190F90DF91CF911F910F91C5
+:1029F000FF90EF90DF90CF90BF90AF909F908F901F
+:102A00007F9008950F931F93CF93DF93EC018881FC
+:102A100099812B813C81232BB9F09F3F11F48F3F8B
+:102A200099F0CE010E940406882371F068817981B3
+:102A30008A810E94801A8C010E94351A0E94FC181B
+:102A4000B801CE010E94E512DF91CF911F910F9145
+:102A500008950E94581B0E94681B0E942D1B0E9413
+:102A6000821B0E949B200E94EA1F80E090E00E944F
+:102A7000C61080E090E00C94DC100E94481B0C947F
+:102A800029150E94751A292F22952F7030E02C30BD
+:102A900031054CF42A3031056CF4225031092230D2
+:102AA0003105A8F407C02C30310569F02F3031050D
+:102AB00051F00DC0803F69F018F4803E40F409C029
+:102AC000843F29F406C093FB882780F9089580E0AD
+:102AD000089581E00895CF93DF9300D000D01F9236
+:102AE000CDB7DEB70F900F900F900F900F90DF9142
+:102AF000CF910895CF93DF9300D000D000D0CDB711
+:102B0000DEB726960FB6F894DEBF0FBECDBFDF91BD
+:102B1000CF9108951F93CF93DF93C091850116E065
+:102B200080918601C81799F0D0E01C9FF0011D9F8D
+:102B3000F00D1124E957FE4F40815181628173816C
+:102B4000848195810E947A152196C770E9CFDF9123
+:102B5000CF911F9108954091B7015091B8016091B4
+:102B6000B9017091BA018091BB019091BC010C94A4
+:102B70007A158091BC0182958F7009F054C08091C4
+:102B8000B901882309F44FC080918501A091860185
+:102B90006091B7017091B8014091BA015091BB01A9
+:102BA000B6E08A1709F43FC090E041155105C1F124
+:102BB0007F3F11F46F3FA1F1B89FF001B99FF00D75
+:102BC0001124E957FE4F218172132AC0208162131C
+:102BD00027C02281211124C0238134812417350785
+:102BE00010F421503109241B350B283C3105C0F469
+:102BF0002091BC012F7020612093BC0126E0289F0A
+:102C0000F001299FF00D1124E457FE4F80818F7051
+:102C10008061808387EB91E00E9402150C948A15F5
+:102C200001968770BECF0895CF92DF92EF92FF9208
+:102C30000F931F93CF93DF93CDB7DEB762970FB695
+:102C4000F894DEBF0FBECDBF8C0185E0F801DE0138
+:102C50001D9601900D928A95E1F7D8014C9111963D
+:102C60005C91119712966C9112971396CD90DC900F
+:102C700014973091B7017091B8018091BA01909189
+:102C8000BB01009709F46BC17F3F19F43F3F09F482
+:102C900066C1E090B901EE2009F4C0C02091BC01EA
+:102CA000C816D90628F0F601E81BF90BCF0104C0BD
+:102CB000809590958C0D9D1DFF24F394883C910583
+:102CC00078F0F12C207F09F0C6C07C2DD98AC88A03
+:102CD00089890E946B1587EB91E00E940215B1C0B3
+:102CE000822F807F09F046C0751314C0341312C0C0
+:102CF000611110C02F7020612093BC010E94AB15A0
+:102D000087EB91E00E9402158091BC01D8011596D5
+:102D10008C932EC0CD2819F15F3F11F44F3FF9F08D
+:102D2000F62E61111CC0809185012091860136E04C
+:102D3000821709F45AC090E0389FF001399FF00DD6
+:102D40001124E957FE4F7181571306C07081471354
+:102D500003C07281711103C001968770E9CFF62E0E
+:102D6000662309F418C18091BC0181608093BC0185
+:102D7000F12C11C1751308C0341306C0611104C0D1
+:102D80008091BC01D801C3C04D875E878D859E852B
+:102D90006A8B0E9441156A898823E1F16623D1F18B
+:102DA0002091BC01822F82958F7090E0029774F081
+:102DB0008091B7019091B80198878F831986DB863F
+:102DC000CA862C87CE0107960E94021586E0F8017C
+:102DD000A7EBB1E001900D928A95E1F70E94B91539
+:102DE0000E94AB15FF24F394D6C04D875E878D8576
+:102DF0009E850E94751A292F22952F7030E022306F
+:102E000031050CF0BCC09F7009F0B6C0805E883000
+:102E100008F4C1C0C8010E940215E4CFC816D90643
+:102E200008F453C0F601E81BF90BCF01883C91056B
+:102E300008F450C0F12C7C2DD98AC88A89890E9457
+:102E40006B15E7EBF1E086E0DF011D928A95E9F76B
+:102E50000E94AB15A0C0751314C0341312C06111C9
+:102E600010C08091BC01F8018583C8010E94021541
+:102E700086E0E7EBF1E0DF011D928A95E9F7FE2C91
+:102E80008AC04D875E878D859E856A8B0E9441151D
+:102E90006A89882309F4BECF662309F4BBCF209149
+:102EA000BC01822F82958F7090E002970CF48ECF38
+:102EB0008091B7019091B8019A8389831B82DD824A
+:102EC000CC822E83CE0101967FCF809590958C0D7C
+:102ED0009D1DACCFF62E662309F49CCF75132EC032
+:102EE00034132CC02091BC0120FD1FC0822F82957D
+:102EF0008F70D9F0D80115962C9315978F3049F023
+:102F00008F5F982F9295907F822F8F70892B1596C7
+:102F10008C93C8010E94021586E0F801A7EBB1E08E
+:102F200001900D928A95E1F793CF86E0F801A7EB27
+:102F3000B1E001900D928A95E1F72DC04D875E8733
+:102F40008D859E850E944115811140CF8091BC01E5
+:102F500081608093BC01C8010E9402151CC06623D9
+:102F600009F458CF4D875E878D859E850E94411557
+:102F7000882309F44FCF2ACF811148CF0CC02430C9
+:102F800031050CF047CF9F7009F440CFF8019581CF
+:102F9000907F09F03BCF8F2D62960FB6F894DEBF7D
+:102FA0000FBECDBFDF91CF911F910F91FF90EF909A
+:102FB000DF90CF9008951F93CF93DF93CDB7DEB707
+:102FC0002C970FB6F894DEBF0FBECDBF4F83588746
+:102FD00069877A878B879C87CE0107960E94141693
+:102FE000882369F08F8198852A853B85232BF1F111
+:102FF0009F3F09F063C08F3F09F060C037C086E093
+:10300000FE013796DE01119601900D928A95E1F747
+:103010006F817885EA85FB85309741F17F3F11F418
+:103020006F3F21F12091860130E0C9010196877040
+:1030300099274091850150E08417950709F447C00E
+:1030400069837A83FD83EC8396E0929FD001939FFE
+:10305000B00D1124A957BE4FFE01319601900D927B
+:103060009A95E1F7809386010E948A1516E0809177
+:103070008501909186018917C1F1189FC001112423
+:1030800089579E4F0E941416882379F1E09185019B
+:103090001E9FF0011124E957FE4F4081518162814A
+:1030A0007381848195810E947A158091850190E0D9
+:1030B00001968770992780938501D9CF4F815885D4
+:1030C00069857A858B859C850E947A15CFCF0E9471
+:1030D0003D151092860110928501E7EBF1E086E044
+:1030E000DF011D928A95E9F7C1CF2C960FB6F894AF
+:1030F000DEBF0FBECDBFDF91CF911F910895EF923C
+:10310000FF920F931F93CF93DF938C01009709F4E5
+:103110006CC0F12CEE24E394E8012196F80184912F
+:10312000843740F4843008F051C0813081F082301F
+:1031300019F15BC0853709F444C0A8F19CE7980FEA
+:10314000903708F052C08F770E94881241C00E5FFE
+:103150001F4FFE01C49180E28C0F883048F4C77085
+:103160008E2D01C0880FCA95EAF70E945B1B14C020
+:103170008C2F0E94C0112DC00E5F1F4FFE01C49105
+:1031800080E28C0F883058F4C7708E2D01C0880FF4
+:10319000CA95EAF70E94611B0E94821B1AC08C2FFD
+:1031A0000E94881216C00E5F1F4FFE01C491CC23EF
+:1031B00081F08FE99FE00197F1F700C00000C15056
+:1031C000F6CF0E5F1F4FFE01F49003C00E94C011A6
+:1031D0008E018F2D882309F49FCFEFE9FFE031970F
+:1031E000F1F700C000008150F5CFDF91CF911F9122
+:1031F0000F91FF90EF90089508956093C10170932F
+:10320000C2018093C3019093C4010C9429150F93BC
+:103210001F930091C1011091C2012091C30130910F
+:10322000C401DC01CB01802B912BA22BB32B80930B
+:10323000C1019093C201A093C301B093C4011F9137
+:103240000F910C9429150F931F930091C1011091B8
+:10325000C2012091C3013091C401DC01CB01802364
+:103260009123A223B3238093C1019093C201A09321
+:10327000C301B093C4011F910F910C9429150F93B2
+:103280001F930091C1011091C2012091C30130919F
+:10329000C401DC01CB0180279127A227B3278093AB
+:1032A000C1019093C201A093C301B093C4011F91C7
+:1032B0000F910C9429151092BD011092BE0110922D
+:1032C000BF011092C0010C94291541E050E060E06C
+:1032D00070E004C0440F551F661F771F8A95D2F710
+:1032E0004093BD015093BE016093BF017093C00134
+:1032F0000C94291541E050E060E070E004C0440FF8
+:10330000551F661F771F8A95D2F78091BD01909156
+:10331000BE01A091BF01B091C001482B592B6A2B6F
+:103320007B2B4093BD015093BE016093BF0170930E
+:10333000C0010C94291541E050E060E070E004C049
+:10334000440F551F661F771F8A95D2F740955095F9
+:10335000609570958091BD019091BE01A091BF01D3
+:10336000B091C001482359236A237B234093BD01B8
+:103370005093BE016093BF017093C0010C94291556
+:1033800041E050E060E070E004C0440F551F661F4C
+:10339000771F8A95D2F78091BD019091BE01A091CF
+:1033A000BF01B091C001482759276A277B27409366
+:1033B000BD015093BE016093BF017093C0010C9496
+:1033C00029150F931F930091BD011091BE0120910B
+:1033D000BF013091C001DC01CB01802B912BA22BCE
+:1033E000B32B8093BD019093BE01A093BF01B09316
+:1033F000C0011F910F910C9429150F931F930091F9
+:10340000BD011091BE012091BF013091C001DC01CE
+:10341000CB0180239123A223B3238093BD019093FA
+:10342000BE01A093BF01B093C0011F910F910C94F6
+:1034300029150F931F930091BD011091BE0120919A
+:10344000BF013091C001DC01CB0180279127A22769
+:10345000B3278093BD019093BE01A093BF01B093A9
+:10346000C0011F910F910C9429150895CF92DF92FE
+:10347000EF92FF920F931F93CF93DF938C01C09035
+:10348000C101D090C201E090C301F090C4018091CD
+:10349000BD019091BE01A091BF01B091C001C82AA9
+:1034A000D92AEA2AFB2ACFE1D0E0D701C6010C2EA7
+:1034B00004C0B695A795979587950A94D2F780FF93
+:1034C00006C0B8018C2F0E940209019721F42197B0
+:1034D00060F780E001C08C2FDF91CF911F910F9199
+:1034E000FF90EF90DF90CF900895CF93DF93EC01A2
+:1034F0000E94361ABE010E940209DF91CF91089501
+:10350000CB010E94751A08958091C5018595859516
+:10351000859508958091C5018770089598E0899FE9
+:1035200090011124262B2093C5010C947A19209127
+:10353000C501809582238093C501982F977069F407
+:1035400030E0482F552747FD50952417350729F0BF
+:103550008595859585950C949B1908959091C50145
+:10356000977081E009F480E0089590910C0199230F
+:1035700021F090910D01911109C020910E0130911F
+:103580000F01F90132969FEF40E01FC0982F9695EA
+:10359000969596959F3050F5E0910E01F0910F01B0
+:1035A000E90FF11D877021E030E0A90102C0440F4E
+:1035B000551F8A95E2F7CA019181892B818308956D
+:1035C0009F3F39F04F5F4E3041F051915813F8CF83
+:1035D0000DC05111F7CF942FF5CF9F3F39F0F9016E
+:1035E000E90FF11D97FDFA95828308950895909152
+:1035F0000C01992321F090910D01911109C02091A6
+:103600000E0130910F01F9013296205F3F4F1FC02C
+:10361000982F9695969596959F30F0F4E0910E012F
+:10362000F0910F01E90FF11D877021E030E0A90151
+:1036300002C0440F551F8A95E2F7CA018095918117
+:103640008923818308953196E217F30729F0908149
+:103650009813F9CF1082F7CF089581E090E0E091C0
+:103660000E01F0910F01E80FF91F108201968031D1
+:103670009105A9F708959091D901892B8093D901DB
+:10368000089580959091D90189238093D901089557
+:103690001092D90108959091D801892B8093D80177
+:1036A000089580959091D80189238093D801089539
+:1036B0001092D80108959091D701892B8093D7015A
+:1036C000089580959091D70189238093D70108951B
+:1036D0001092D70108958093C60108951092C601F3
+:1036E000089580910E0190910F01FC0131969C018B
+:1036F000205F3F4F80E0919191118F5FE217F307B8
+:10370000D1F70895E0910E01F0910F018091D90158
+:103710008083E0910E01F0910F0190818091D8019A
+:10372000892B8083E0910E01F0910F0190818091AF
+:10373000D701892B80838091C601882361F0E091B5
+:103740000E01F0910F019081892B80830E94711BE3
+:1037500081111092C60180910E0190910F010C947D
+:10376000B01020E0009739F0AC014150510984239A
+:1037700095232F5FF7CF822F0895CF92DF92EF929C
+:10378000FF926C01EE24FF24C114D104E104F10482
+:1037900021F0C701B60120E101C020E0C72ED82EDC
+:1037A000E92EFF24C114D104E104F10419F0285FCB
+:1037B000C701B6016B017C0154E0F694E794D794FD
+:1037C000C7945A95D1F7C114D104E104F10419F05A
+:1037D0002C5FC701B6016B017C0142E0F694E794CF
+:1037E000D794C7944A95D1F7C114D104E104F104E8
+:1037F00019F02E5FC701B601DC01CB01B695A79584
+:1038000097958795892B8A2B8B2B09F02F5F822F19
+:10381000FF90EF90DF90CF9008958091F101843078
+:1038200021F11092DB0120E488E190E00FB6F894DA
+:10383000A895809360000FBE2093600080E00E94F6
+:103840009D0983B7817F846083BF83B7816083BF15
+:103850007894889583B78E7F83BF88E10FB6F894FC
+:1038600080936000109260000FBE0895089508953F
+:103870000E94361C0E94D3030E94371C0E94C80479
+:1038800091E0811101C090E0892F08950E943D15BB
+:103890000E94A4100C949D0982E084BD93E095BD24
+:1038A0009AEF97BD80936E0008952FB7F89480919A
+:1038B000DC019091DD01A091DE01B091DF012FBF0D
+:1038C0000895CF92DF92EF92FF920F931F932FB73D
+:1038D000F8944091DC015091DD016091DE0170911E
+:1038E000DF012FBF6A017B01EE24FF248C0120E061
+:1038F00030E0C016D106E206F30610F4415051093B
+:103900009A01281B390BC9011F910F91FF90EF906D
+:10391000DF90CF9008951F920F920FB60F9211244F
+:103920008F939F93AF93BF938091DC019091DD01C2
+:10393000A091DE01B091DF010196A11DB11D809320
+:10394000DC019093DD01A093DE01B093DF01BF9114
+:10395000AF919F918F910F900FBE0F901F90189570
+:103960000E94A10DF8942FEF87EA91E62150804044
+:103970009040E1F700C0000087E090EBDC0180930D
+:10398000FB019093FC01A093FD01B093FE019CE02C
+:1039900088E10FB6F894A895809360000FBE9093CD
+:1039A0006000FFCFEF92FF920F931F93CF93DF93AF
+:1039B000D82FCDE08C2F0E94C10405E010E0E82E46
+:1039C000F12CC701002E02C0959587950A94E2F765
+:1039D00080FF09C0602F7C2F80E00E94AD06D813C5
+:1039E00002C081E006C00150110958F7C15010F71C
+:1039F00080E0DF91CF911F910F91FF90EF9008959C
+:103A0000CF93C82F8CE20E94D21C882321F08C2FE8
+:103A1000CF910C94D21C80E0CF910895CF930E9457
+:103A2000551E811102C00E943B1EC5E6C15049F0DF
+:103A30000E94D3038FE39CE90197F1F700C00000D7
+:103A4000F5CF89E20E94001D811113C18AE20E9414
+:103A5000001D81110E943B1E85E00E94001D811106
+:103A60000E94B01C0E94601E8093DA0187E00E94D1
+:103A7000001D8823A9F18BE10E94001D882351F0CD
+:103A80008091DA0181FB222720F991E0922790FBB7
+:103A900081F90EC08EE00E94001D882361F08091A4
+:103AA000DA0182FB222720F991E0922790FB82F92C
+:103AB0008093DA0115C080E10E94001D9091DA0127
+:103AC000882341F093FB222720F981E0822780FBA5
+:103AD00093F904C0892F809580FB90F99093DA01C7
+:103AE0008091DA010E94641E0E94721E8093FA0186
+:103AF00080EE0E94001D882341F08091FA01982FEA
+:103B0000909590FB80F98093FA0189E30E94001D53
+:103B1000882359F08091FA0181FB222720F991E056
+:103B2000922790FB81F98093FA0182EE0E94001D9A
+:103B3000882359F08091FA0182FB222720F991E035
+:103B4000922790FB82F98093FA0186EE0E94001D75
+:103B5000882359F08091FA0183FB222720F991E014
+:103B6000922790FB83F98093FA0183EE0E94001D57
+:103B7000882359F08091FA0184FB222720F991E0F3
+:103B8000922790FB84F98093FA0185E30E94001D3F
+:103B9000882359F08091FA0185FB222720F991E0D2
+:103BA000922790FB85F98093FA0181E30E94001D22
+:103BB000882359F08091FA0186FB222720F991E0B1
+:103BC000922790FB86F98093FA0181E10E94001D03
+:103BD000882359F08091FA0187FB222720F991E090
+:103BE000922790FB87F98093FA018091FA010E9455
+:103BF000761E8091FA0187FB882780F980930D015A
+:103C000087E20E94001DC82F8EE10E94001D8111D5
+:103C1000C2608FE10E94001D8111C46080E20E9499
+:103C2000001D8111C86081E20E94001D8111C061E8
+:103C300082E20E94001D8111C06283E20E94001D89
+:103C40008111C06484E20E94001D882311F0C068C5
+:103C500002C0CC2329F08C2F0E946D1E6C2F03C054
+:103C60000E94691E682F70E080E090E0CF910C9474
+:103C7000FD18CF9108956DEE7EEF80E090E00E94F8
+:103C8000A72460E082E090E00E94952460E083E059
+:103C900090E00E94952460E084E090E00E949524EA
+:103CA00060E085E090E00C94952480E090E00E9434
+:103CB0008F2421E08D3E9E4F09F020E0822F089551
+:103CC00082E090E00C948724682F82E090E00C94CE
+:103CD000952483E090E00C948724682F83E090E0A3
+:103CE0000C94952484E090E00C948724682F84E061
+:103CF00090E00C9495248091E20180FF0BC06091CC
+:103D0000130185E0689FB00111247595679575953D
+:103D100067952BC081FF09C06091130185E0689F02
+:103D2000B00111247595679520C082FF07C060918E
+:103D3000130185E0689FB001112417C09091E30141
+:103D40009923D1F060911201961788F72091130101
+:103D500085E0289F90011124929FA001939F500D10
+:103D6000112470E0CA010E9459246038710540F4A2
+:103D70006115710539F002C065E070E0862F089585
+:103D80008FE7089581E008958091E20180FF08C0E7
+:103D90006091110170E0759567957595679521C0E3
+:103DA00081FF06C06091110170E07595679519C09B
+:103DB00082FF04C06091110170E010C09091E30196
+:103DC0009923C1F0609110019617A0F7809111011D
+:103DD000899FC001112470E00E9459246038710548
+:103DE00028F46115710521F0862F08958FE7089555
+:103DF00081E0089561E070E0F4CF803F21F40E94FB
+:103E00007B1E819504C0813F29F40E947B1E809314
+:103E1000E6010895823F21F40E947B1E819504C033
+:103E2000833F29F40E947B1E8093E5010895893F1A
+:103E300019F40E94C41E05C08A3F31F40E94C41EBA
+:103E400081958093E70108958B3F21F40E94C41E61
+:103E5000819504C08C3F29F40E94C41E8093E80120
+:103E60000895843F21F48091E401816017C0853F6B
+:103E700021F48091E401826011C0863F21F4809199
+:103E8000E40184600BC0873F21F48091E4018860E5
+:103E900005C0883F31F48091E40180618093E401A2
+:103EA00008958D3F21F48091E20181600BC08E3F27
+:103EB00021F48091E201826005C08F3F29F4809156
+:103EC000E20184608093E2010895803F39F480919B
+:103ED000E60187FF6CC01092E60169C0813F29F4BA
+:103EE0008091E6011816BCF362C09091E501823F13
+:103EF00029F497FF5CC01092E50159C0833F19F483
+:103F00001916CCF354C0893F41F48091E70118168B
+:103F10000CF04DC01092E7014AC08A3F29F480910D
+:103F2000E70187FF44C0F6CF8B3F39F48091E80169
+:103F300087FF3DC01092E8013AC08C3F29F4809180
+:103F4000E8011816BCF333C0843F21F48091E401EA
+:103F50008E7F17C0853F21F48091E4018D7F11C0D1
+:103F6000863F21F48091E4018B7F0BC0873F21F4D1
+:103F70008091E401877F05C0883F31F48091E4019E
+:103F80008F7E8093E40113C08D3F21F48091E20184
+:103F90008E7F0BC08E3F21F48091E2018D7F05C0A2
+:103FA0008F3F29F48091E2018B7F8093E201809121
+:103FB000E50181110EC08091E60181110AC0809156
+:103FC000E701811106C08091E801811102C01092C1
+:103FD000E301089584EE91E00E94BB100E94551CFD
+:103FE0009093E1018093E00108951F93CF93DF93B5
+:103FF0008091E0019091E1010E94611CAC019091DF
+:10400000E301992321F02091140130E006C02091B2
+:1040100015018AE0289F900111244217530708F4E4
+:1040200086C08091E501C091E601D091E701109131
+:10403000E801811107C0C11176C0D11174C01111FE
+:1040400072C075C09F3F19F09F5F9093E3011816EF
+:1040500024F40E947B1E8093E5018091E50187FF97
+:1040600005C00E947B1E81958093E5011C1624F4F7
+:104070000E947B1E8093E6018091E60187FF05C0C8
+:104080000E947B1E81958093E6016091E501662385
+:1040900039F1C091E601CC2319F1772767FD7095BE
+:1040A000872F972F0E946A2323E333E343E35FE3E1
+:1040B0000E94CE230E9437236093E5016C2F77275F
+:1040C00067FD7095872F972F0E946A2323E333E3C0
+:1040D00043E35FE30E94CE230E9437236093E6010F
+:1040E0001D1624F40E94C41E8093E7018091E7010D
+:1040F00087FF05C00E94C41E81958093E7011116B9
+:1041000024F40E94C41E8093E8018091E80187FF97
+:1041100005C00E94C41E81958093E801DF91CF9174
+:104120001F910C94EA1F9F3F09F08ECF96CFDF912D
+:10413000CF911F910895E4EEF1E085E0DF011D923B
+:104140008A95E9F71092E3011092E2010895833015
+:1041500081F128F4813059F08230D1F00895853012
+:1041600009F449C0B8F1863009F456C00895809129
+:104170001501262F30E0280F311D2F3F310524F483
+:10418000680F6093150108958FEF809315010895CE
+:1041900080911401262F30E0280F311D2F3F31056B
+:1041A00024F4680F6093140108958FEF8093140135
+:1041B000089580911301262F30E0280F311D2F3FE5
+:1041C000310524F4680F6093130108958FEF8093F5
+:1041D0001301089580911201262F30E0280F311D20
+:1041E0002F3F310524F4680F6093120108958FEF7B
+:1041F00080931201089580911101262F30E0280F3D
+:10420000311D2F3F310524F4680F6093110108958B
+:104210008FEF80931101089580911001262F30E0D7
+:10422000280F311D2F3F310524F4680F60931001D2
+:1042300008958FEF809310010895833011F128F4D1
+:10424000813049F0823091F00895853081F120F17C
+:104250008630C1F1089580911501681720F4861BFE
+:10426000809315010895109215010895809114010D
+:10427000681720F4861B809314010895109214018E
+:10428000089580911301681720F4861B8093130111
+:10429000089510921301089580911201681720F477
+:1042A000861B809312010895109212010895809147
+:1042B0001101681720F4861B809311010895109254
+:1042C0001101089580911001681720F4861B8093D6
+:1042D000100108951092100108950F931F938D31CE
+:1042E00009F46BC008F03FC08E3009F47FC0C0F401
+:1042F000873009F469C068F4863009F0B1C0809154
+:10430000DA01817F8E7F8093DA0181E08093EA0178
+:10431000A8C0883009F4A2C08B3009F49FC0A0C0A7
+:10432000863109F49BC078F4803109F472C0813180
+:1043300009F096C00E943D1590910D0181E08927FA
+:1043400080930D018BC0893109F488C08B3109F04D
+:1043500087C08091DA0181FB222720F991E0922722
+:1043600090FB81F94CC0853309F470C048F4873262
+:1043700009F46CC008F459C0893209F467C070C0F0
+:10438000833438F48A3308F04EC0883309F466C0A9
+:1043900067C0833409F45AC0883409F061C00E94B0
+:1043A0003D150FEF13ED20E3015010402040E1F7E1
+:1043B00000C000000E94B01C51C00E94F1220E9467
+:1043C000A4100E949D094AC09091DA01892F80951E
+:1043D000817080FB90F929F0966098609093DA01E3
+:1043E00040C0997F977F9093DA0138C08091DA01BD
+:1043F00082FB222720F991E0922790FB82F980939B
+:10440000DA01992359F18091DA0181608093DA0110
+:1044100025C08091DA0183FB222720F991E09227C1
+:1044200090FB83F9ECCF895301C08D5141E050E0FE
+:1044300060E070E08A019B0104C0000F111F221F81
+:10444000331F8A95D2F7C901B80104C061E070E05A
+:1044500080E090E00E94FD180E943D1581E001C0BF
+:1044600080E01F910F91089580E0089580E0089505
+:10447000CF93C82F8091EA01813079F018F0823013
+:10448000E9F187C0E0910E01F0910F018081813147
+:1044900069F0823209F07FC009C0E0910E01F0910D
+:1044A0000F018081813111F0823261F48C2F0E94E2
+:1044B0003422811104C08C2F0E946D211DC081E027
+:1044C00090E01AC08C2F0E943622811114C0C43192
+:1044D00079F048F4CB3079F0C03109F060C082E067
+:1044E0008093EA0108C0C93219F0C83321F057C0DF
+:1044F0001092EA0154C081E0817053C0C93289F141
+:1045000018F5C43171F1A8F4C73009F046C08AE04B
+:104510008093150194E19093140193E0909313011B
+:104520008093120188E08093110188E2809310014A
+:1045300034C0CE51C63088F5EC2FF0E0E65DFE4F7A
+:1045400080818093E90129C0CE34E9F020F4CB3496
+:1045500021F56AE013C0C13579F0C235F1F461E0AC
+:104560000DC08091E901882319F01092E90115C06E
+:1045700081E08093EA0115C061E006C08091E90105
+:104580000E94A7200AC06AE08091E9010E941D21D3
+:1045900004C01092EA0180E004C081E002C080E023
+:1045A000ABCFCF910895E1E8F0E08081886080830F
+:1045B0008081816080838FB7F89493E09093890025
+:1045C00090ED909388008FBF0895EFE6F0E0808132
+:1045D000826080830895EFE6F0E080818D7F8083A4
+:1045E0000895EFE6F0E0908182E0892780830895C6
+:1045F0001F920F920FB60F9211242F933F934F9358
+:104600005F936F937F938F939F93AF93BF93EF933A
+:10461000FF938091EB019091EC0101969093EC0156
+:104620008093EB01811103C082E00E949D09E0911B
+:10463000EC01E695E695F0E0EC53FA4FE4918091B9
+:10464000EB018E1303C080E00E949D09FF91EF9162
+:10465000BF91AF919F918F917F916F915F914F919A
+:104660003F912F910F900FBE0F901F90189504D07F
+:104670006894B1118DC0089570D088F09F5790F064
+:10468000B92F9927B751A0F0D1F0660F771F881F77
+:10469000991F1AF0BA95C9F712C0B13081F077D0DE
+:1046A000B1E0089574C0672F782F8827B85F39F07C
+:1046B000B93FCCF3869577956795B395D9F73EF4D6
+:1046C00090958095709561957F4F8F4F9F4F08957E
+:1046D000E89409C097FB3EF490958095709561959C
+:1046E0007F4F8F4F9F4F9923A9F0F92F96E9BB2752
+:1046F0009395F695879577956795B795F111F8CFCE
+:10470000FAF4BB0F11F460FF1BC06F5F7F4F8F4F38
+:104710009F4F16C0882311F096E911C0772321F02E
+:104720009EE8872F762F05C0662371F096E8862FC6
+:1047300070E060E02AF09A95660F771F881FDAF71D
+:10474000880F9695879597F9089557FD9058440FCF
+:10475000551F59F05F3F71F04795880F97FB991FE0
+:1047600061F09F3F79F0879508951216130614069D
+:10477000551FF2CF4695F1DF08C01616170618062A
+:10478000991FF1CF86957105610508940895E89405
+:10479000BB2766277727CB0197F908950BD078C000
+:1047A00069D028F06ED018F0952309F05AC05FC088
+:1047B0001124EECFCADFA0F3959FD1F3950F50E0FF
+:1047C000551F629FF001729FBB27F00DB11D639FC3
+:1047D000AA27F00DB11DAA1F649F6627B00DA11D69
+:1047E000661F829F2227B00DA11D621F739FB00D0F
+:1047F000A11D621F839FA00D611D221F749F33277F
+:10480000A00D611D231F849F600D211D822F762F17
+:104810006A2F11249F5750408AF0E1F088234AF014
+:10482000EE0FFF1FBB1F661F771F881F9150504060
+:10483000A9F79E3F510570F014C0AACF5F3FECF37B
+:10484000983EDCF3869577956795B795F795E7954C
+:104850009F5FC1F7FE2B880F911D9695879597F95D
+:10486000089597F99F6780E870E060E008959FEFF2
+:1048700080EC089500240A941616170618060906F7
+:10488000089500240A9412161306140605060895C6
+:10489000092E0394000C11F4882352F0BB0F40F44E
+:1048A000BF2B11F460FF04C06F5F7F4F8F4F9F4F8E
+:1048B000089597FB072E16F4009407D077FD09D0D2
+:1048C0000E94732407FC05D03EF4909581959F4F7C
+:1048D0000895709561957F4F0895EE0FFF1F059025
+:1048E000F491E02D0994AA1BBB1B51E107C0AA1F3C
+:1048F000BB1FA617B70710F0A61BB70B881F991F81
+:104900005A95A9F780959095BC01CD010895F99924
+:10491000FECF92BD81BDF89A992780B50895A8E190
+:10492000B0E042E050E00C94AF24262FF999FECF7E
+:1049300092BD81BDF89A019700B4021639F01FBAF2
+:1049400020BD0FB6F894FA9AF99A0FBE0895019611
+:10495000272F0E9496240C949524DC01CB01FC01A6
+:10496000F999FECF06C0F2BDE1BDF89A319600B4C8
+:0E4970000D9241505040B8F70895F894FFCFD3
+:10497E0002209F092D0A0A0AD609A2090101C701C0
+:10498E0028080A03140A3F4D3639850538050205F5
+:10499E00C9045C0475048E04A70401020304050611
+:0449AE0007080900ED
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/mpiechotka/keymap.c b/keyboards/ergodox_ez/keymaps/mpiechotka/keymap.c new file mode 100644 index 000000000..5bfef5995 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/mpiechotka/keymap.c @@ -0,0 +1,276 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_colemak.h" + +enum { + BASE = 0, + BASE_CM, + SYMB, + MACR +}; + +enum { + LWIN = 1, + PC1, + PC2, + PC3, + PC4, + DL_BASE, + DL_BASE_CM, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0a: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Del | Q | W | F | P | G | L1 | | L1 | J | L | U | Y | ; | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Esc | A | R | S | T | D |------| |------| H | N | E | I | O | ' | + * |--------+------+------+------+------+------| = | | - |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | K | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | LAlt | LGui | | LAlt | RAlt | + * ,------|------|------| |------+--------+------. + * | |Backsp| Home | | PgUp | | | + * | Space|ace/ |------| |------| Tab/ |Enter/| + * | /Shft|Ctrl | 1) | | 2) | Ctrl |Shift | + * `--------------------' `----------------------' + * + * 1) End/L1 + * 2) PgDown/L2 + */ +[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_F, KC_P, KC_G, TG(SYMB), + KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_EQL, + LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT, + KC_LALT, F(LWIN), + KC_HOME, + SFT_T(KC_SPC),CTL_T(KC_BSPC),LT(SYMB, KC_END), + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(SYMB), KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, + KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_MINS, KC_K, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, LT(SYMB,KC_NO), + KC_LALT, KC_RALT, + KC_PGUP, + LT(MACR,KC_PGDN),CTL_T(KC_TAB), SFT_T(KC_ENT) + ), +/* Keymap 0b: Basic layer (Colemak keycodes or QWERTY) + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Del | Q | W | F | P | G | L1 | | L1 | J | L | U | Y | ; | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Esc | A | R | S | T | D |------| |------| H | N | E | I | O | ' | + * |--------+------+------+------+------+------| = | | - |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | K | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | LAlt | LGui | | LAlt | RAlt | + * ,------|------|------| |------+--------+------. + * | |Backsp| Home | | PgUp | | | + * | Space|ace/ |------| |------| Tab/ |Enter/| + * | /Shft|Ctrl | 1) | | 2) | Ctrl |Shift | + * `--------------------' `----------------------' + * + * 1) End/L1 + * 2) PgDown/L2 + */ +[BASE_CM] = KEYMAP( // layer 0 : default + // left hand + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_DELT, CM_Q, CM_W, CM_F, CM_P, CM_G, TG(SYMB), + KC_ESC, CM_A, CM_R, CM_S, CM_T, CM_D, + KC_LSFT, CM_Z, CM_X, CM_C, CM_V, CM_B, KC_EQL, + LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT, + KC_LALT, F(LWIN), + KC_HOME, + SFT_T(KC_SPC),CTL_T(KC_BSPC),LT(SYMB, KC_END), + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(SYMB), CM_J, CM_L, CM_U, CM_Y, KC_P, /*CM_SCLN*/ KC_BSLS, + CM_H, CM_N, CM_E, CM_I, CM_O, KC_QUOT, + KC_MINS, CM_K, CM_M, CM_COMM,CM_DOT, CTL_T(CM_SLSH), KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, LT(SYMB,KC_NO), + KC_LALT, KC_RALT, + KC_PGUP, + LT(MACR,KC_PGDN),CTL_T(KC_TAB), SFT_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_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: Macros + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | DLa | DLb | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | PC1 | PC2 | PC3 | PC4 | |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MACROS +[MACR] = KEYMAP( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, F(DL_BASE),F(DL_BASE_CM),KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, F(PC1), F(PC2), F(PC3), F(PC4), KC_NO, + KC_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_TRNS,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_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_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_TRNS, KC_TRNS, KC_TRNS +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [LWIN] = ACTION_MACRO(LWIN), + [PC1] = ACTION_MACRO(PC1), + [PC2] = ACTION_MACRO(PC2), + [PC3] = ACTION_MACRO(PC3), + [PC4] = ACTION_MACRO(PC4), + [DL_BASE] = ACTION_DEFAULT_LAYER_SET(BASE), + [DL_BASE_CM] = ACTION_DEFAULT_LAYER_SET(BASE_CM) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + } else { + unregister_code(KC_RSFT); + } + break; + case LWIN: + if (record->event.pressed) { + register_code(KC_RSFT); + unregister_code(KC_RSFT); + register_code(KC_LGUI); + } else { + unregister_code(KC_LGUI); + } + break; + case PC1: + if (!record->event.pressed) { + return MACRO(T(SLCK), W(50), T(SLCK), W(50), T(1), W(50), T(ENT), END); + } + break; + case PC2: + if (!record->event.pressed) { + return MACRO(T(SLCK), W(50), T(SLCK), W(50), T(2), W(50), T(ENT), END); + } + break; + case PC3: + if (!record->event.pressed) { + return MACRO(T(SLCK), W(50), T(SLCK), W(50), T(3), W(50), T(ENT), END); + } + break; + case PC4: + if (!record->event.pressed) { + return MACRO(T(SLCK), W(50), T(SLCK), W(50), T(4), W(50), T(ENT), 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); + + 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 SYMB: + ergodox_right_led_1_on(); + break; + case MACR: + ergodox_right_led_2_on(); + break; + default: + // none + break; + } +}; diff --git a/keyboards/ergodox_ez/keymaps/mpiechotka/readme.md b/keyboards/ergodox_ez/keymaps/mpiechotka/readme.md new file mode 100644 index 000000000..785400d1d --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/mpiechotka/readme.md @@ -0,0 +1,6 @@ +# ErgoDox EZ mpiechotka Configuration + +Modification of ErgoDox EZ Colemak layout with additional QWERTY/software Colemak layer and change of the special keys. + + + diff --git a/keyboards/ergodox_ez/keymaps/msc/compiled.hex b/keyboards/ergodox_ez/keymaps/msc/compiled.hex new file mode 100644 index 000000000..b30b84d29 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/msc/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4
+:100010000C94BE020C94BE020C94BE020C94BE0260
+:100020000C94BE020C94BE020C94620D0C94340E1F
+:100030000C94BE020C94BE020C94BE020C94BE0240
+:100040000C94BE020C943E220C94BE020C94BE0290
+:100050000C94BE020C94D11B0C94BE020C94BE02F4
+:100060000C94BE020C94BE020C94BE020C94BE0210
+:100070000C94BE020C94BE020C94BE020C94BE0200
+:100080000C94BE020C94BE020C94BE020C94BE02F0
+:100090000C94BE020C94BE020C94BE020C94BE02E0
+:1000A0000C94BE020C94BE020C94BE02A10EC30EB0
+:1000B000B10FC30EB10F080F2B0FB10F800F930FAD
+:1000C0006212621291129112C712E71218141814D8
+:1000D000F2121814A213A2130914181418141214EB
+:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300
+:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0
+:10010000C113CE13D513DC13E6130000F0A12E00AB
+:100110004C002A00E100E30000001E00140004006F
+:100120001D71E2004D001F001A0016001B00E104C3
+:100130002A00200008000700060050002C002100C3
+:100140001500090019004F004A00220017000A009C
+:10015000050000006574500001540000007F00009D
+:10016000E3004F000154000000770000E20023008C
+:100170001C000B00110000002971240018000D0064
+:10018000100050004B0025000C000E0036005100FE
+:100190002800260012000F00370052002B00270015
+:1001A0001300330038714F004E002D0031003478B9
+:1001B000E5000254000001000100010001000100FF
+:1001C00000003A001E0220022202010001003B0052
+:1001D0001F0221022302010001003C002F0226021F
+:1001E0002F00010001003D00300227023000010015
+:1001F00001003E003102350035020000010001001F
+:1002000001000000010000000100010001000000E9
+:100210000100000001003F005200510024020000D4
+:1002200001004000240021001E00010001004100E7
+:10023000250022001F003700010042002600230095
+:10024000200027000100430025022E0231002E006D
+:100250000100440045000100010001000000010010
+:100260000100010001000100000001000100010087
+:1002700001000100010001000100F2000100010085
+:10028000F5000100F000F10001000100F4000100A0
+:100290000100F30001000100010001000100010064
+:1002A0000100000001000100010000000100000049
+:1002B0000100010001000000010000000100010038
+:1002C0000100010001000000010001000100010027
+:1002D000A800AC0001000100010001000100AA001B
+:1002E000B6000100010001000100A90001000100A9
+:1002F000010001000100AB00010001000100AE009F
+:1003000001000100000016034500720067006F0045
+:1003100044006F007800200045005A0000001603DA
+:100320004500720067006F0044006F0078002000F5
+:1003300045005A0000000403090409026D0004018D
+:1003400000A0FA09040000010301010009211101C4
+:100350000001223F000705810308000A090401008B
+:100360000103010200092111010001224D000705CE
+:10037000820308000A0904020001030000000921A9
+:10038000110100012236000705830308000A090451
+:1003900003000103000000092111010001223900BE
+:1003A000070584031000011201100100000008ED90
+:1003B000FE071301000102000105010906A1010564
+:1003C0000719E029E7150025019508750181020547
+:1003D000081901290595057501910295017503918B
+:1003E0000105071900297715002501957875018108
+:1003F00002C005010980A101850216010026B7008F
+:100400001A01002AB700751095018100C0050C097A
+:1004100001A1018503160100269C021A01002A9CF5
+:1004200002751095018100C005010902A1010901B1
+:10043000A10005091901290515002501950575017A
+:10044000810295017503810105010930093115818A
+:10045000257F95027508810609381581257F95014C
+:1004600075088106050C0A38021581257F950175EE
+:10047000088106C0C005010906A101050719E02988
+:10048000E715002501950875018102950175088120
+:100490000105081901290595057501910295017558
+:1004A0000391010507190029FF150025FF95067521
+:1004B000088100C0000000000000000000000001F2
+:1004C0000204060A0F17202C3A4A5D71879DB3C7B4
+:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF
+:1004E0003A2C20170F0A0604020100000000000049
+:1004F0000000000011241FBECFEFDAE0DEBFCDBF49
+:1005000004B603FE24C08091FB019091FC01A091F0
+:10051000FD01B091FE018730904BA740B04BB9F47C
+:100520001092FB011092FC011092FD011092FE014D
+:1005300014BE84B7877F84BF88E10FB6F894809398
+:100540006000109260000FBEE0E0FFE3099511E04B
+:10055000A0E0B1E0EAE0F8E402C005900D92A43317
+:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0
+:10057000B107E1F70E94A60A0C9403240C94000032
+:100580001092B9008AE08093B800089594EA90939D
+:10059000BC009091BC0097FFFCCF9091B900987F70
+:1005A000983021F0903111F081E008958093BB00E4
+:1005B00084E88093BC008091BC0087FFFCCF8091D1
+:1005C000B900887F883111F0803471F780E0089598
+:1005D00084E98093BC008091BC0084FDFCCF089529
+:1005E0008093BB0084E88093BC008091BC0087FFAF
+:1005F000FCCF9091B900987F81E0983209F480E0B7
+:10060000089584E88093BC008091BC0087FFFCCFF4
+:100610008091BB00089580910101811115C080E493
+:100620000E94C6028093010181110CC082E10E94E8
+:10063000F00280930101811105C08FEF0E94F0024A
+:10064000809301010E94E80284B1807F84B985B162
+:10065000807F85B98AB1837F8AB98BB1837F8BB95B
+:100660003E98469808950E94C604809301010E9416
+:100670000B0380B38C7080BB81B3836F81BBA5E318
+:10068000B1E0E3E4F1E08EE08E0F11921D928E1343
+:10069000FCCF0C94B004BF92CF92DF92EF92FF9206
+:1006A0000F931F93CF93DF9380910101882379F0FB
+:1006B000809134018F5F80933401811108C00E94C2
+:1006C000C60480930101811102C00E94580405E311
+:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407
+:1006E000E394F12CC730D10500F58091010181110F
+:1006F00064C080E40E94C60280930101811112C08F
+:1007000082E10E94F0028093010181110BC0C701B8
+:100710000C2E01C0880F0A94EAF780950E94F0021F
+:10072000809301010E94E80248C0CA30A1F028F479
+:10073000C83059F0C93061F005C0CC3089F070F094
+:10074000CD3089F0209A289810C0219A29980DC0A0
+:10075000229A2A980AC0239A2B9807C0529A01C05D
+:10076000539A5B9802C03E9A469890EA9A95F1F7A0
+:100770009FB1799902C082E001C080E091709D250F
+:10078000982B7C9902C084E001C080E0892B7D9980
+:1007900002C038E001C030E0832B7E9902C020E126
+:1007A00001C020E0822B9FB19095991F9927991F36
+:1007B0009295990F907E892B0FC080910101811134
+:1007C00049C080E40E94C60280930101882379F128
+:1007D000B12C0E94E8028B2DF8019081981719F036
+:1007E0008083C09200010E940B0321960F5F1F4F70
+:1007F000CE30D10509F076CF80910001882361F1D8
+:10080000815080930001882339F08FE99FE00197A0
+:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F
+:10082000CF01825F91919D938E13FCCF15C083E120
+:100830000E94F002809301018111CACF81E40E94DD
+:10084000C602809301018111C3CF0E940103B82E1B
+:10085000B094BFCF80E0C0CF0E94560481E0DF910A
+:10086000CF911F910F91FF90EF90DF90CF90BF90AD
+:100870000895E82FF0E0ED5BFE4F80810895089524
+:100880000F931F93CF93DF93C3E4D1E010E00C2FBD
+:10089000025F899190E00E94F71A180F0C13F9CFAC
+:1008A000812FDF91CF911F910F9108950C94260510
+:1008B00056985E9825982D9826982E9827982F98C8
+:1008C0008FEF90E0909389008093880090938B0045
+:1008D00080938A0090938D0080938C00259A2D9AA6
+:1008E0002FEF80E792E0215080409040E1F700C078
+:1008F0000000269A2E9A2FEF80E792E02150804048
+:100900009040E1F700C00000279A2F9A2FEF80E770
+:1009100092E0215080409040E1F700C0000025980F
+:100920002D982FEF80E792E0215080409040E1F732
+:1009300000C0000026982E982FEF80E792E021500B
+:1009400080409040E1F700C0000027982F9856980B
+:100950005E9825982D9826982E9827982F98089578
+:1009600089EA8093800089E08093810024982C9804
+:100970003F988AB18F748AB96E98479A8BB1806B11
+:100980008BB9769A0E9458040C94250580E28093D6
+:1009900001018091510181110EC00E94C00281E0CD
+:1009A000809351012FEF83ED90E3215080409040E0
+:1009B000E1F700C0000080E40E94C60280930101BC
+:1009C00081112EC00E94F00280930101811128C084
+:1009D0000E94F00280930101811122C08FE30E94E6
+:1009E000F0028093010181111BC00E94E80280E4A3
+:1009F0000E94C60280930101811112C08CE00E9406
+:100A0000F0028093010181110BC00E94F0028093DB
+:100A10000101811105C08FE30E94F0028093010162
+:100A20000E94E80280910101089561110BC0FC0150
+:100A30008281882321F085EE0E94061103C085EE95
+:100A40000E94CE1180E090E0089508956091BD016C
+:100A50007091BE018091BF019091C0010E94031B63
+:100A600056985E9825982D9826982E9827982F9816
+:100A7000813019F0823021F00895259A2D9A089539
+:100A8000269A2E9A089581E0089581E008950C94A5
+:100A9000450508950F931F93CF93DF938C01FC01BD
+:100AA000C081D181CE010E947C19BE010E94F30554
+:100AB000EC01B8010E944705882309F48DC0F801B4
+:100AC0008281882309F44AC080915D0181111FC091
+:100AD000C431F0E5DF0709F051C00E94490581E00B
+:100AE00080935D010E949B1B90935C0180935B014E
+:100AF0001092540110925601109255011092580113
+:100B00001092570110925A011092590165C08091BC
+:100B10005B0190915C010E94A71B883C910570F4D9
+:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB
+:100B3000D183C0838F5F809354014EC0C43880E559
+:100B4000D80721F0C538D04501F13AC0F8018281BB
+:100B5000882341F01092520182E01EC0C438E0E5C3
+:100B6000DE0759F580915201811106C086E20E948C
+:100B7000061186E20E94CE1182E01CC0C438F0E566
+:100B8000DF0741F3C538D045D9F4F80182818823C5
+:100B900031F01092530180E20E941D121DC080911D
+:100BA0005301811106C087E20E94061187E20E946C
+:100BB000CE1180E20E9424120FC0C538D04529F31F
+:100BC00081E08093520180935301C801DF91CF915E
+:100BD0001F910F910C94430580E0DF91CF911F91FD
+:100BE0000F910895089596E0799FF001112494E5FE
+:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F
+:100C0000E25FFE4F859194910895880F991FFC0132
+:100C1000E657F040859194910895880F991FFC0143
+:100C2000E65FFE4F8591949108950F931F93CF93A4
+:100C3000DF93EC01811520E3920750F5C11580E2A6
+:100C4000D80708F0C3C0CB3BD10590F4C83AD10512
+:100C500008F06AC0C53AD10508F05BC0C430D105C0
+:100C600008F0D0C1219709F0CAC101E010E00AC222
+:100C7000CF3FD10511F008F0C5C1C03FD10508F044
+:100C8000A2C0CE01805E9109089708F4BBC1B7C12C
+:100C9000C13090E5D90709F4A2C020F5C0318FE436
+:100CA000D80770F4C11590E4D90708F094C0C115B5
+:100CB00021E3D20708F0A3C1DD278E01106CE2C149
+:100CC000C115D04509F09BC10E9483148FEF94E3B6
+:100CD0002CE0815090402040E1F700C000000E94CD
+:100CE000F61BD0C1C11597E5D90758F4C03121E5ED
+:100CF000D20708F01CC1C43180E5D80708F475C0DC
+:100D00007EC1CE0190578115904108F078C1DF7007
+:100D100073C1C53AD10509F477C1C63AD10509F0C6
+:100D200076C102E810E4AEC1C83AD10509F472C137
+:100D3000C93AD10509F471C1CA3AD10509F470C1A3
+:100D4000CB3AD10509F46FC1CC3AD10509F46EC193
+:100D5000CD3AD10509F46DC1C03BD10509F46CC190
+:100D6000CE3AD10509F46BC1CF3AD10509F46AC175
+:100D7000C13BD10509F469C1C23BD10509F468C181
+:100D8000C33BD10509F467C1C43BD10509F466C171
+:100D9000C53BD10509F465C1C63BD10509F464C161
+:100DA000C73BD10509F463C1C83BD10509F462C151
+:100DB000C93BD10509F461C1CA3BD10509F460C141
+:100DC00000E014E45FC18E0110655CC1CE019F702C
+:100DD0000E940D0658C1DF708E01106A53C18091C8
+:100DE000DA0181608093DA014DC10E949B1D81115F
+:100DF00002C00E94811D0E94B81D90E09093FB01EB
+:100E00008093FA01C23080E5D80721F48091FA017D
+:100E1000816086C0C43090E5D90721F48091FA0141
+:100E200082607EC0C63020E5D20721F48091FA01AD
+:100E3000846076C0C83080E5D80719F48091FA0143
+:100E400027C0CA3090E5D90721F48091FA0180616A
+:100E500067C0CC3020E5D20721F48091FA0180628E
+:100E60005FC0CE3080E5D80721F48091FA0180641C
+:100E700057C0C03190E5D90721F48091FA0180680C
+:100E80004FC0C23120E5D20729F48091FA01846075
+:100E9000886046C0C33080E5D80721F48091FA010C
+:100EA0008E7F3EC0C53090E5D90721F48091FA01CC
+:100EB0008D7F36C0C73020E5D20721F48091FA013A
+:100EC0008B7F2EC0C93080E5D80719F48091FA01D4
+:100ED00026C0CB3090E5D90721F48091FA018F7EAE
+:100EE0001FC0CD3020E5D20721F48091FA018F7D1B
+:100EF00017C0CF3080E5D80721F48091FA018F7BAD
+:100F00000FC0C13190E5D90721F48091FA018F77A4
+:100F100007C0C331D04531F48091FA018B7F877FC0
+:100F20008093FA018091FA010E94BC1DABC08D2F05
+:100F300099278F70992781309105D9F49E012370EC
+:100F4000332702C0880F991F2A95E2F79C688E010B
+:100F500044E0000F111F4A95E1F700271370802B22
+:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA
+:100F70002FC08230910531F4DC2FCC278E01016F18
+:100F8000106A80C08330910569F4CE01837099277F
+:100F900001E010E002C0000F111F8A95E2F7C801BE
+:100FA0009C680FC084309105B9F4CE0183709927F5
+:100FB00001E010E002C0000F111F8A95E2F7C8019E
+:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029
+:100FD0008C010C2B1D2B56C08530910531F4DC2F74
+:100FE000CC278E01046F106A4DC0069709F04AC0E5
+:100FF000CF71DD27DC2FCC278E01106243C000E0CB
+:1010000010E040C08E013EC001E810E43BC003E8A0
+:1010100010E438C002EE14E435C009EE14E432C026
+:101020000AEE14E42FC005EB14E42CC006EB14E424
+:1010300029C007EB14E426C00CEC14E423C00DEC2B
+:1010400014E420C003E815E41DC00AE815E41AC042
+:1010500002E915E417C004E915E414C001E216E43E
+:1010600011C003E216E40EC004E216E40BC005E270
+:1010700016E408C006E216E405C007E216E402C062
+:101080000AE216E4C801DF91CF911F910F910895F4
+:1010900096E0799FF001112494E5899FE00DF11D00
+:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149
+:1010B0009491803E9105E0F4803C910558F5813390
+:1010C000910509F46FC048F48932910509F463C0B1
+:1010D0008A32910509F46DC072C089339105E9F037
+:1010E00082389105D1F08533910509F44DC067C070
+:1010F000833E910581F138F4803E9105B9F0823E3E
+:101100009105D9F05CC0863E910561F1873E91055D
+:10111000A1F155C00E94050608952091FA0120FD15
+:1011200002C021FF4CC080EE90E049C08091FA01DE
+:1011300080FFF9CF89E390E042C08091FA0182FFFD
+:101140000EC08091FA0184FF03C080E090E037C0B8
+:1011500083EE90E034C08091FA0182FFF2CF82EEFC
+:1011600090E02DC08091FA0183FF0BC08091FA01BD
+:1011700084FDEBCF87EE90E022C08091FA0183FFDF
+:10118000F5CF86EE90E01BC08091FA0185FF07C085
+:1011900089E290E014C08091FA0185FFF9CF85E3E0
+:1011A00090E00DC08091FA0186FF07C08AE290E0CE
+:1011B00006C08091FA0186FFF9CF81E390E00E949A
+:1011C0001506089508950C94E20880916E01089523
+:1011D000CF93DF9300D01F92CDB7DEB79C018091F3
+:1011E000F101843019F593E099833B832A8390932E
+:1011F000E9008FEF9091E800815095FD06C095EDD4
+:101200009A95F1F700008111F5CF8091E80085FFF4
+:101210000DC040E050E063E070E0CE0101960E9416
+:10122000520B8091E8008E778093E8000F900F902A
+:101230000F90DF91CF910895CF93DF9300D01F924D
+:10124000CDB7DEB72091F101243021F522E02983CA
+:101250009B838A8383E08093E9008FEF9091E8007D
+:10126000815095FD06C095ED9A95F1F7000081112A
+:10127000F5CF8091E80085FF0DC040E050E063E0CD
+:1012800070E0CE0101960E94520B8091E8008E77AB
+:101290008093E8000F900F900F90DF91CF91089509
+:1012A0002091F1012430F1F422E02093E9002FEFA6
+:1012B0003091E800215035FD06C035ED3A95F1F743
+:1012C00000002111F5CF2091E80025FF0BC040E080
+:1012D00050E065E070E00E94520B8091E8008E774C
+:1012E0008093E8000895CF93DF93EC019091F10192
+:1012F000943009F046C080910C018823D9F0809188
+:101300000D018823B9F09093E9008FEF9091E800E8
+:10131000815095FD06C095E19A95F1F70000811185
+:10132000F5CF8091E80085FF2CC040E050E060E1FF
+:1013300070E017C081E08093E9008FEF9091E800A2
+:10134000815095FD06C095ED9A95F1F70000811149
+:10135000F5CF8091E80085FF14C040E050E068E0E0
+:1013600070E0CE010E94520B8091E8008E7780934E
+:10137000E80080E1FE01AEE5B1E001900D928A95B2
+:10138000E1F7DF91CF9108958091F001811109C0BB
+:101390000E94E70C0E94440D8091E20084608093DB
+:1013A000E20008951092F001089508950C942B2204
+:1013B0000E948C1B0E9431220E94EA0F0C94E308C9
+:1013C00042E061EC81E00E94610C42E061EC82E06D
+:1013D0000E94610C42E061EC83E00E94610C42E1FA
+:1013E00061EC84E00C94610C8091F301833009F48A
+:1013F00055C030F4813071F0823009F48EC0089508
+:101400008A3009F47AC08B3009F460C0893009F061
+:101410009CC020C08091F201813A09F096C0809171
+:10142000E800877F8093E8008091F6019091F701B2
+:10143000892B21F460E18EE591E003C060E080E05B
+:1014400090E070E00E949D0B8091E8008B77809384
+:10145000E80008958091F201813209F076C0809110
+:10146000F6019091F701009719F0039709F06DC00C
+:101470008091E800877F8093E8008091E80082FDFA
+:1014800005C08091F1018111F8CF5FC08091F1001A
+:1014900080936E018091E8008B7753C08091F201B8
+:1014A000813A09F052C08091F6019091F701892BA1
+:1014B00009F04BC08091E800877F8093E80080911D
+:1014C000E80080FFFCCF80910C0136C08091F201D2
+:1014D0008132D9F58091F6019091F701892BA9F518
+:1014E0008091E800877F8093E8000E94960C8091AD
+:1014F000F40180930C010C9483148091F2018132E9
+:1015000021F58091E800877F8093E8000E94960C87
+:101510008091F50180936F0108958091F201813AE5
+:10152000A1F48091E800877F8093E8008091E80033
+:1015300080FFFCCF80916F018093F1008091E800E3
+:101540008E778093E8000C94960C089584B7877F7B
+:1015500084BF88E10FB6F894809360001092600019
+:101560000FBE90E080E80FB6F894809361009093EE
+:1015700061000FBE0E9439100E94E70C0E94440DCA
+:101580008091E20084608093E20078940E94CA0F08
+:101590000E943B1082E091E00E94E50F0E94192218
+:1015A0008091F101853069F40E94531B8091EF0115
+:1015B0008823B1F30E947E1B882391F30E943C0B89
+:1015C000EFCF0E944110ECCF292F33272330310574
+:1015D000C9F064F42130310581F02230310509F081
+:1015E00043C08DE690E02AE333E042C0213231056A
+:1015F000F1F02232310541F137C082E190E027EA73
+:1016000033E036C099278130910541F08230910551
+:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4
+:1016200002C0E6E0F3E0849190E09F0121C06430C5
+:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5
+:10164000318189E090E014C0643070F470E0FB01F7
+:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47
+:10166000FE4F808190E004C080E090E020E030E018
+:10167000FA0131832083089580E189BD82E189BD2B
+:1016800009B400FEFDCF8091D8008F7D8093D800F3
+:101690008091E00082608093E0008091E00081FD15
+:1016A000FCCF0895CF92DF92EF92FF920F931F939A
+:1016B000CF93DF93EC018B016A010E94B50C81117D
+:1016C00033C0C114D10439F0F60180819181081B27
+:1016D000190BC80FD91FE12CF12C0115110519F1B7
+:1016E0008091E80085FD16C08091E8008E77809398
+:1016F000E800C114D10449F0F60180819181E80E1F
+:10170000F91EF182E08285E00FC00E94B50C8823AB
+:1017100021F30AC089918093F10001501109FFEF74
+:10172000EF1AFF0ADACF80E0DF91CF911F910F917E
+:10173000FF90EF90DF90CF9008952091F8013091C5
+:10174000F9012617370748F06115710539F4209122
+:10175000E8002E772093E80001C0B90140E0611550
+:101760007105A9F12091F101222309F443C025302C
+:1017700009F442C02091E80023FD40C02091E80018
+:1017800022FD32C02091E80020FFE9CF4091F30014
+:101790002091F20030E0342BFC01CF01611571057E
+:1017A00059F02830310540F481918093F100615067
+:1017B00071092F5F3F4FF1CF41E02830310509F02B
+:1017C00040E02091E8002E772093E800C8CF411137
+:1017D000C9CF0AC08091F101882361F0853061F0A2
+:1017E0008091E80083FD0AC08091E80082FFF2CF7B
+:1017F00080E0089582E0089583E0089581E00895EF
+:101800002091F8013091F9012617370748F061154A
+:10181000710539F42091E8002E772093E80001C08B
+:10182000B901FC0120E06115710591F18091F10190
+:10183000882309F440C0853009F43FC08091E80056
+:1018400083FD3DC08091E80082FD2FC08091E800BB
+:1018500080FFE9CF2091F3008091F20090E0922B7D
+:101860006115710559F08830910540F42491209359
+:10187000F1003196615071090196F2CF21E008978D
+:1018800009F020E08091E8008E778093E800CBCFCC
+:101890002111CCCF0AC08091F101882361F08530FD
+:1018A00061F08091E80083FD0AC08091E80082FF2A
+:1018B000F2CF80E0089582E0089583E0089581E00A
+:1018C0000895982F973058F59093E900981739F0BC
+:1018D0007091EC002091ED005091F00003C0242F96
+:1018E000762F50E021FF19C03091EB003E7F3093FE
+:1018F000EB003091ED003D7F3093ED003091EB0037
+:1019000031603093EB007093EC002093ED00509326
+:10191000F0002091EE0027FF07C09F5FD3CF8F70AC
+:101920008093E90081E0089580E008958091F201BC
+:1019300087FF11C08091E80082FD05C08091F10110
+:101940008111F8CF11C08091E8008B770BC0809196
+:10195000F101882349F08091E80080FFF8CF809161
+:10196000E8008E778093E80008952091E40030919C
+:10197000E50095E64091EC00842F817040FF22C085
+:101980008091E80080FD1CC08091F101882391F0D6
+:10199000853091F08091EB0085FD10C04091E4000E
+:1019A0005091E5004217530729F39A01915011F71E
+:1019B00084E0089582E0089583E0089581E0089529
+:1019C00080E008954091E80042FFDECF08950E9434
+:1019D000550D0E945D0DE0EEF0E080818160808316
+:1019E000E8EDF0E080818F77808319BCA7EDB0E04F
+:1019F0008C918E7F8C9380818F7E80831092F001FA
+:101A000008950F931F93CF93DF930E94550D0E946B
+:101A10005D0DC8EDD0E088818F77888388818068EC
+:101A2000888388818F7D888319BC1092F101109280
+:101A3000ED011092EF011092EE0100EE10E0F801BE
+:101A400080818B7F808388818160888342E060E031
+:101A500080E00E94610CE1EEF0E080818E7F808367
+:101A6000E2EEF0E080818160808380818860808305
+:101A7000F80180818E7F8083888180618883DF91F7
+:101A8000CF911F910F910895E8EDF0E080818F7E56
+:101A90008083E7EDF0E080818160808384E082BF15
+:101AA00081E08093F0010C94010DE8EDF0E080817D
+:101AB0008E7F80831092E20008951092DA001092D7
+:101AC000E10008951F920F920FB60F9211242F93E9
+:101AD0003F934F935F936F937F938F939F93AF93B6
+:101AE000BF93EF93FF938091E10082FF0BC0809141
+:101AF000E20082FF07C08091E1008B7F8093E100CC
+:101B00000E94C90F8091DA0080FF1FC08091D80029
+:101B100080FF1BC08091DA008E7F8093DA00809175
+:101B2000D90080FF0DC080E189BD82E189BD09B483
+:101B300000FEFDCF81E08093F1010E94C40905C041
+:101B400019BC1092F1010E94D2098091E10080FF3E
+:101B500019C08091E20080FF15C08091E2008E7F65
+:101B60008093E2008091E20080618093E2008091A6
+:101B7000D80080628093D80019BC85E08093F10181
+:101B80000E94D6098091E10084FF30C08091E2007C
+:101B900084FF2CC080E189BD82E189BD09B400FECB
+:101BA000FDCF8091D8008F7D8093D8008091E10097
+:101BB0008F7E8093E1008091E2008F7E8093E2002F
+:101BC0008091E20081608093E2008091ED018823A2
+:101BD00011F084E007C08091E30087FD02C081E03E
+:101BE00001C083E08093F1010E94D8098091E10057
+:101BF00083FF29C08091E20083FF25C08091E1002E
+:101C0000877F8093E10082E08093F1011092ED01E3
+:101C10008091E1008E7F8093E1008091E2008E7FD1
+:101C20008093E2008091E20080618093E20042E0D4
+:101C300060E080E00E94610C8091F00088608093F9
+:101C4000F0000E94D509FF91EF91BF91AF919F9154
+:101C50008F917F916F915F914F913F912F910F9055
+:101C60000FBE0F901F9018951F920F920FB60F92F4
+:101C700011242F933F934F935F936F937F938F9391
+:101C80009F93AF93BF93CF93DF93EF93FF93C09155
+:101C9000E900CF708091EC00D82FD17080FDD0E8A2
+:101CA0001092E9008091F000877F8093F000789493
+:101CB0000E94780E1092E9008091F0008860809375
+:101CC000F000CD2BCF70C093E900FF91EF91DF9131
+:101CD000CF91BF91AF919F918F917F916F915F91C4
+:101CE0004F913F912F910F900FBE0F901F9018951D
+:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3
+:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115
+:101D1000F10091938E13FBCF0E94F4098091E800AB
+:101D200083FF1FC18091F2019091F301492F50E090
+:101D30004A30510508F015C1FA01EA5AFF4F0C94D8
+:101D4000B323803881F0823809F00BC18091F6010D
+:101D50008F708093E9008091EB0085FB882780F9E4
+:101D60001092E90006C08091EE019091EF0191116F
+:101D700082609091E800977F9093E8008093F10053
+:101D80001092F100C8C0282F2D7F09F0EAC08823E7
+:101D900019F0823061F0E5C08091F401813009F0E2
+:101DA000E0C0933009F080E08093EF012BC0809178
+:101DB000F401811127C08091F6018F7009F4D1C020
+:101DC0008093E9002091EB0020FF1CC0933021F4A8
+:101DD0008091EB00806214C09091EB009061909331
+:101DE000EB0021E030E0A90102C0440F551F8A95A5
+:101DF000E2F74093EA001092EA008091EB008860DD
+:101E00008093EB001092E9008091E800877F86C004
+:101E10008111A7C01091F4011F778091E3008078B1
+:101E2000812B8093E3008091E800877F8093E80016
+:101E30000E94960C8091E80080FFFCCF8091E30027
+:101E400080688093E300111102C082E001C083E04A
+:101E50008093F10186C08058823008F082C0809162
+:101E6000F4019091F5018C3D53E0950779F583E0FD
+:101E70008A838AE289834FB7F894DE01139620E0C3
+:101E80003EE051E2E32FF0E050935700E49120FF51
+:101E900003C0E295EF703F5FEF708E2F90E0EA3065
+:101EA00010F0C79601C0C0968D939D932F5F24318B
+:101EB00049F74FBF8091E800877F8093E8006AE28E
+:101EC00070E0CE0101960E949D0B14C0AE014F5FE1
+:101ED0005F4F6091F6010E94E40ABC01009709F48B
+:101EE00040C09091E800977F9093E80089819A81A3
+:101EF0000E94000C8091E8008B778093E80031C04D
+:101F0000803879F58091E800877F8093E8008091A0
+:101F1000ED018093F1008091E8008E778093E800D6
+:101F20000E94960C1EC081111CC09091F401923049
+:101F3000C0F48091E800877F8093E8009093ED01E2
+:101F40000E94960C8091ED01811106C08091E30002
+:101F500087FD02C081E001C084E08093F1010E940E
+:101F6000E0098091E80083FF0AC08091E800877F44
+:101F70008093E8008091EB0080628093EB00AA964A
+:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A
+:101F900008950895CF938091F1018823A1F0C09115
+:101FA000E900CF709091EC00892F817090FD80E85E
+:101FB000C82B1092E9008091E80083FD0E94780E02
+:101FC000CF70C093E900CF910895909375018093ED
+:101FD00074010895E0917401F0917501309721F03A
+:101FE0000190F081E02D099480E00895E091740162
+:101FF000F0917501309721F00280F381E02D099472
+:102000000895E0917401F0917501309721F00480FA
+:10201000F581E02D099408952091720130917301AA
+:102020008217930771F09093730180937201E0918E
+:102030007401F0917501309721F00680F781E02D51
+:1020400009940895209170013091710182179307CE
+:1020500071F09093710180937001E0917401F0919F
+:102060007501309721F00084F185E02D09940895E1
+:1020700008950C9438100E94921B0E9433030C9414
+:10208000541C9F92AF92BF92CF92DF92EF92FF9239
+:102090000F931F93CF93DF9300D000D000D0CDB724
+:1020A000DEB70E944B030DE010E0AA24A394B12CEC
+:1020B000902E802F0E943904980129583E4F6901C3
+:1020C000F901F080F826A1F40150110988F78FEF8B
+:1020D00089838A831B820E949B1B8160782F9D834A
+:1020E0008C8349815A816B818D810E94D8102FC0C9
+:1020F0009091DA0191FF04C08E830E943F048E818B
+:1021000025E030E0A501022E01C0440F0A94EAF751
+:10211000E42E4F21C1F029839A828E2191E009F4A7
+:1021200090E09B830E949B1B8160782F9D838C8312
+:1021300049815A816B818D810E94D810F60180817E
+:10214000E826E08204C021503109E0F6BDCF0E94AC
+:102150003B1F109176010E94EA0F1817B9F00E94F8
+:10216000EA0F8093760126960FB6F894DEBF0FBE75
+:10217000CDBFDF91CF911F910F91FF90EF90DF9036
+:10218000CF90BF90AF909F900C94E30826960FB627
+:10219000F894DEBF0FBECDBFDF91CF911F910F919D
+:1021A000FF90EF90DF90CF90BF90AF909F900895F9
+:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82
+:1021C0000FBECDBF4F83588769877A878B87DE0123
+:1021D000119686E0FD0111928A95E9F785E0FE01EE
+:1021E000379601900D928A95E1F749815A816B816A
+:1021F0007C818D819E810E9421172B960FB6F894C9
+:10220000DEBF0FBECDBFDF91CF910895CF9388235E
+:1022100009F4C2C0C82F823859F40E94EA0F81FD28
+:10222000BBC089E30E94FB190E94C81A89E30CC055
+:10223000833879F40E94EA0F80FDAEC083E50E94E6
+:10224000FB190E94C81A83E50E943D1ACF910C9495
+:10225000C81A843859F40E94EA0F82FD9DC087E4B1
+:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6
+:10227000813A48F48C2F0E947E2181118DC08C2FD1
+:102280000E94FB19E3CF80E28C0F883048F4C770BE
+:1022900081E001C0880FCA95EAF70E94811AD6CF63
+:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB
+:1022B00083E890E005C081E890E002C082E890E009
+:1022C000CF910C940C1088E58C0F833108F064C01A
+:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118
+:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186
+:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106
+:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173
+:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB
+:1023200038C082EE90E035C089EE90E032C08AEE8F
+:1023300090E02FC085EB90E02CC086EB90E029C0A8
+:1023400087EB90E026C08CEC90E023C08DEC90E011
+:1023500020C083E891E01DC08AE891E01AC082E9BC
+:1023600091E017C084E991E014C081E292E011C0CD
+:1023700083E292E00EC084E292E00BC085E292E03C
+:1023800008C086E292E005C087E292E002C08AE2DD
+:1023900092E0CF910C942210CF910895882309F4F4
+:1023A0004BC0823859F40E94EA0F81FF45C089E38F
+:1023B0000E94FB190E94C81A89E30CC0833871F48B
+:1023C0000E94EA0F80FF38C083E50E94FB190E943B
+:1023D000C81A83E50E943D1A0C94C81A843859F42F
+:1023E0000E94EA0F82FF28C087E40E94FB190E9426
+:1023F000C81A87E4EFCF9CEF980F913A58F390E218
+:10240000980F983050F4877091E001C0990F8A9529
+:10241000EAF7892F0E94871ADFCF9BE5980F933048
+:1024200020F480E090E00C940C10885A833120F462
+:1024300080E090E00C9422100895882321F00E94FF
+:10244000811A0C94C81A0895882321F00E94871AD3
+:102450000C94C81A08957F928F929F92AF92BF9268
+:10246000CF92DF92EF92FF920F931F93CF93DF9360
+:102470001F92CDB7DEB77C01C62E772EFC010581F9
+:1024800002950F70128111110E949E1A0E94F41978
+:10249000882379F0112369F080E28C0D883048F0B0
+:1024A00082E00E94DD190E94F41991E0D82ED9260D
+:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C
+:1024C0000C94B323872D807F072D0F70882311F084
+:1024D0000295007F112389F0002309F490C180E266
+:1024E0008C0D883020F4802F0E94811A03C0802F29
+:1024F0000E94911A0E94C81A82C18C2D0E94CE118E
+:10250000002309F495C180E28C0D883020F4802FDF
+:102510000E94871A03C0802F0E94971A0E94C81A2F
+:1025200087C1972D907F872D8F70903211F0829503
+:10253000807FCC2021F0F1E0CF16B1F01EC0112336
+:1025400049F0002309F414C1013009F011C10E94BF
+:10255000B11A6EC1002319F0013009F469C18983F1
+:102560000E94B41A89810AC1112321F0023008F0B7
+:102570005FC1FEC001115CC101C1112321F0002324
+:1025800009F4F6C03CC1002309F4F8C03EC1872D10
+:1025900086958695837090E0009719F0019761F019
+:1025A00047C1112321F08C2D972D937002C080E03C
+:1025B00090E00E940C103CC1112321F08C2D972D2E
+:1025C000937002C080E090E00E94221031C18C2DF7
+:1025D000112319F00E94431E02C00E94AB1E0E94EC
+:1025E000301F26C1872D837009F052C0111120C100
+:1025F0008C2D829586958770880F880F9C2D9F70F3
+:10260000892E912CA12CB12C082E04C0880C991C69
+:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041
+:1026200020E030E0B901A80104C0440F551F661F27
+:10263000771F8A95D2F7CB01BA0160957095809586
+:10264000909503C060E070E0CB01272D269526957C
+:10265000237030E02230310569F02330310589F0F4
+:10266000682979298A299B292130310571F00E9436
+:102670006918DEC0682979298A299B290E94851852
+:10268000D7C00E946918C501B4010E944D18D0C07E
+:10269000112319F0872D817001C08695882309F4D4
+:1026A000C7C08C2D829586958770880F880F9C2DCA
+:1026B0009F70892E912CA12CB12C082E04C0880C5F
+:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC
+:1026D00010E020E030E0B901A80104C0440F551F0C
+:1026E000661F771F8A95D2F7CB01BA016095709566
+:1026F0008095909503C060E070E0CB01272D269572
+:1027000026952370422F50E04230510569F0433046
+:10271000510589F0682979298A299B294130510579
+:1027200071F00E94431984C0682979298A299B295C
+:102730000E945F197DC00E944319C501B4010E9427
+:10274000271976C08C2D90E0FC01E05EF109E5319F
+:10275000F10508F050C0E059FF4F0C94B3230C2D45
+:102760000F70872D8F71112331F00E94C018802FB8
+:102770000E941D125DC00E94E118802F0E94241249
+:1027800057C0112339F0011153C0872D8F710E945A
+:1027900006194EC0023008F04BC0F7CF112339F0B4
+:1027A000872D8F710E94C01843C01123C9F3872D54
+:1027B0008F710E94E1183CC0112329F0872D8F7181
+:1027C0000E94AB1835C00E94A11832C0112351F0ED
+:1027D000172D1F71812F0E94C01863E0812F0E9466
+:1027E000D41926C081E00E94DD19023008F182E090
+:1027F0000E94DD191DC0112331F0002389F28C2DB8
+:102800000E94061115C0002391F28C2D0E94CE115A
+:102810000FC0472D4F706C2DC7010E9415050E94F7
+:10282000C51706C0472D4F706C2DC7010E94F205D9
+:10283000DD20F9F00E94D01980FD1BC0F701128243
+:102840000E94CA190E94C018C7010E9448140E9421
+:10285000CA190F90DF91CF911F910F91FF90EF90C8
+:10286000DF90CF90BF90AF909F908F907F900C940F
+:10287000E1180F90DF91CF911F910F91FF90EF9092
+:10288000DF90CF90BF90AF909F908F907F900895F2
+:102890000F931F93CF93DF93EC01888199812B8154
+:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B
+:1028B0000E944A05882371F0688179818A810E948B
+:1028C000C6198C010E947B190E944218B801CE01E2
+:1028D0000E942B12DF91CF911F910F9108950E94BA
+:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471
+:1028F000E11F0E94301F80E090E00E940C1080E0F9
+:1029000090E00C9422100E948E1A0C946F140E9476
+:10291000BB19292F22952F7030E02C3031054CF453
+:102920002A3031056CF42250310922303105A8F4E7
+:1029300007C02C30310569F02F30310551F00DC042
+:10294000803F69F018F4803E40F409C0843F29F4C8
+:1029500006C093FB882780F9089580E0089581E000
+:102960000895CF93DF9300D000D01F92CDB7DEB78C
+:102970000F900F900F900F900F90DF91CF910895CF
+:10298000CF93DF9300D000D000D0CDB7DEB726962E
+:102990000FB6F894DEBF0FBECDBFDF91CF91089583
+:1029A0001F93CF93DF93C091850116E0809186013C
+:1029B000C81799F0D0E01C9FF0011D9FF00D112465
+:1029C000E957FE4F408151816281738184819581F5
+:1029D0000E94C0142196C770E9CFDF91CF911F915B
+:1029E00008954091B7015091B8016091B90170917B
+:1029F000BA018091BB019091BC010C94C0148091EC
+:102A0000BC0182958F7009F054C08091B901882370
+:102A100009F44FC080918501A09186016091B701B2
+:102A20007091B8014091BA015091BB01B6E08A178C
+:102A300009F43FC090E041155105C1F17F3F11F409
+:102A40006F3FA1F1B89FF001B99FF00D1124E95734
+:102A5000FE4F218172132AC02081621327C0228178
+:102A6000211124C0238134812417350710F421500B
+:102A70003109241B350B283C3105C0F42091BC01E1
+:102A80002F7020612093BC0126E0289FF001299F30
+:102A9000F00D1124E457FE4F80818F708061808398
+:102AA00087EB91E00E9448140C94D0140196877033
+:102AB000BECF0895CF92DF92EF92FF920F931F93B4
+:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32
+:102AD0000FBECDBF8C0185E0F801DE011D9601908F
+:102AE0000D928A95E1F7D8014C9111965C9111975E
+:102AF00012966C9112971396CD90DC9014973091AA
+:102B0000B7017091B8018091BA019091BB01009713
+:102B100009F46BC17F3F19F43F3F09F466C1E090AF
+:102B2000B901EE2009F4C0C02091BC01C816D90635
+:102B300028F0F601E81BF90BCF0104C080959095B1
+:102B40008C0D9D1DFF24F394883C910578F0F12CA9
+:102B5000207F09F0C6C07C2DD98AC88A89890E9445
+:102B6000B11487EB91E00E944814B1C0822F807F9E
+:102B700009F046C0751314C0341312C0611110C09F
+:102B80002F7020612093BC010E94F11487EB91E02B
+:102B90000E9448148091BC01D80115968C932EC0D8
+:102BA000CD2819F15F3F11F44F3FF9F0F62E611176
+:102BB0001CC0809185012091860136E0821709F4BE
+:102BC0005AC090E0389FF001399FF00D1124E95769
+:102BD000FE4F7181571306C07081471303C0728185
+:102BE000711103C001968770E9CFF62E662309F4B0
+:102BF00018C18091BC0181608093BC01F12C11C18E
+:102C0000751308C0341306C0611104C08091BC0163
+:102C1000D801C3C04D875E878D859E856A8B0E94D3
+:102C200087146A898823E1F16623D1F12091BC01E0
+:102C3000822F82958F7090E0029774F08091B70197
+:102C40009091B80198878F831986DB86CA862C8776
+:102C5000CE0107960E94481486E0F801A7EBB1E088
+:102C600001900D928A95E1F70E94FF140E94F114E1
+:102C7000FF24F394D6C04D875E878D859E850E9484
+:102C8000BB19292F22952F7030E0223031050CF02E
+:102C9000BCC09F7009F0B6C0805E883008F4C1C027
+:102CA000C8010E944814E4CFC816D90608F453C0DE
+:102CB000F601E81BF90BCF01883C910508F450C0E0
+:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E
+:102CD000F1E086E0DF011D928A95E9F70E94F11488
+:102CE000A0C0751314C0341312C0611110C08091BC
+:102CF000BC01F8018583C8010E94481486E0E7EB17
+:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C
+:102D10005E878D859E856A8B0E9487146A898823C9
+:102D200009F4BECF662309F4BBCF2091BC01822FEA
+:102D300082958F7090E002970CF48ECF8091B7014E
+:102D40009091B8019A8389831B82DD82CC822E8385
+:102D5000CE0101967FCF809590958C0D9D1DACCFB7
+:102D6000F62E662309F49CCF75132EC034132CC0A5
+:102D70002091BC0120FD1FC0822F82958F70D9F059
+:102D8000D80115962C9315978F3049F08F5F982FA7
+:102D90009295907F822F8F70892B15968C93C80106
+:102DA0000E94481486E0F801A7EBB1E001900D9273
+:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7
+:102DC0000D928A95E1F72DC04D875E878D859E8592
+:102DD0000E948714811140CF8091BC018160809353
+:102DE000BC01C8010E9448141CC0662309F458CFD6
+:102DF0004D875E878D859E850E948714882309F400
+:102E00004FCF2ACF811148CF0CC0243031050CF0B0
+:102E100047CF9F7009F440CFF8019581907F09F06A
+:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D
+:102E3000DF91CF911F910F91FF90EF90DF90CF9096
+:102E400008951F93CF93DF93CDB7DEB72C970FB6BE
+:102E5000F894DEBF0FBECDBF4F83588769877A874E
+:102E60008B879C87CE0107960E945A15882369F0AC
+:102E70008F8198852A853B85232BF1F19F3F09F0AF
+:102E800063C08F3F09F060C037C086E0FE0137960F
+:102E9000DE01119601900D928A95E1F76F81788598
+:102EA000EA85FB85309741F17F3F11F46F3F21F1B7
+:102EB0002091860130E0C9010196877099274091E1
+:102EC000850150E08417950709F447C069837A8328
+:102ED000FD83EC8396E0929FD001939FB00D112467
+:102EE000A957BE4FFE01319601900D929A95E1F7D8
+:102EF000809386010E94D01416E080918501909104
+:102F000086018917C1F1189FC001112489579E4F6E
+:102F10000E945A15882379F1E09185011E9FF001E6
+:102F20001124E957FE4F4081518162817381848170
+:102F300095810E94C0148091850190E00196877070
+:102F4000992780938501D9CF4F81588569857A85E6
+:102F50008B859C850E94C014CFCF0E948314109251
+:102F6000860110928501E7EBF1E086E0DF011D921A
+:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45
+:102F8000CDBFDF91CF911F910895EF92FF920F93E4
+:102F90001F93CF93DF938C01009709F46CC0F12C41
+:102FA000EE24E394E8012196F8018491843740F4FB
+:102FB000843008F051C0813081F0823019F15BC05B
+:102FC000853709F444C0A8F19CE7980F903708F0C2
+:102FD00052C08F770E94CE1141C00E5F1F4FFE017D
+:102FE000C49180E28C0F883048F4C7708E2D01C0E8
+:102FF000880FCA95EAF70E94A11A14C08C2F0E946C
+:1030000006112DC00E5F1F4FFE01C49180E28C0F90
+:10301000883058F4C7708E2D01C0880FCA95EAF722
+:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3
+:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3
+:103040009FE00197F1F700C00000C150F6CF0E5F7E
+:103050001F4FFE01F49003C00E9406118E018F2DB8
+:10306000882309F49FCFEFE9FFE03197F1F700C023
+:1030700000008150F5CFDF91CF911F910F91FF900C
+:10308000EF90089508956093C1017093C2018093F9
+:10309000C3019093C4010C946F140F931F9300917C
+:1030A000C1011091C2012091C3013091C401DC0122
+:1030B000CB01802B912BA22BB32B8093C10190933A
+:1030C000C201A093C301B093C4011F910F910C944E
+:1030D0006F140F931F930091C1011091C2012091B1
+:1030E000C3013091C401DC01CB0180239123A223D1
+:1030F000B3238093C1019093C201A093C301B09305
+:10310000C4011F910F910C946F140F931F930091A2
+:10311000C1011091C2012091C3013091C401DC01B1
+:10312000CB0180279127A227B3278093C1019093D9
+:10313000C201A093C301B093C4011F910F910C94DD
+:103140006F141092BD011092BE011092BF01109237
+:10315000C0010C946F1441E050E060E070E004C0E6
+:10316000440F551F661F771F8A95D2F74093BD0104
+:103170005093BE016093BF017093C0010C946F1413
+:1031800041E050E060E070E004C0440F551F661F4E
+:10319000771F8A95D2F78091BD019091BE01A091D1
+:1031A000BF01B091C001482B592B6A2B7B2B409358
+:1031B000BD015093BE016093BF017093C0010C9498
+:1031C0006F1441E050E060E070E004C0440F551F10
+:1031D000661F771F8A95D2F7409550956095709538
+:1031E0008091BD019091BE01A091BF01B091C0013D
+:1031F000482359236A237B234093BD015093BE018A
+:103200006093BF017093C0010C946F1441E050E0D3
+:1032100060E070E004C0440F551F661F771F8A9559
+:10322000D2F78091BD019091BE01A091BF01B091F4
+:10323000C001482759276A277B274093BD01509337
+:10324000BE016093BF017093C0010C946F140F9383
+:103250001F930091BD011091BE012091BF013091DB
+:10326000C001DC01CB01802B912BA22BB32B8093CF
+:10327000BD019093BE01A093BF01B093C0011F9107
+:103280000F910C946F140F931F930091BD01109137
+:10329000BE012091BF013091C001DC01CB01802330
+:1032A0009123A223B3238093BD019093BE01A093E9
+:1032B000BF01B093C0011F910F910C946F140F9335
+:1032C0001F930091BD011091BE012091BF0130916B
+:1032D000C001DC01CB0180279127A227B32780936F
+:1032E000BD019093BE01A093BF01B093C0011F9197
+:1032F0000F910C946F140895CF92DF92EF92FF928A
+:103300000F931F93CF93DF938C01C090C101D09096
+:10331000C201E090C301F090C4018091BD01909181
+:10332000BE01A091BF01B091C001C82AD92AEA2AE2
+:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520
+:10334000A795979587950A94D2F780FF06C0B80194
+:103350008C2F0E944808019721F4219760F780E0A4
+:1033600001C08C2FDF91CF911F910F91FF90EF90B3
+:10337000DF90CF900895CF93DF93EC010E947C19EA
+:10338000BE010E944808DF91CF910895CB010E94B1
+:10339000BB1908958091C5018595859585950895FA
+:1033A0008091C5018770089598E0899F900111244C
+:1033B000262B2093C5010C94C0182091C50180953F
+:1033C00082238093C501982F977069F430E0482FCD
+:1033D000552747FD50952417350729F08595859584
+:1033E00085950C94E11808959091C501977081E03E
+:1033F00009F480E0089590910C01992321F09091B7
+:103400000D01911109C020910E0130910F01F901B8
+:1034100032969FEF40E01FC0982F9695969596950F
+:103420009F3050F5E0910E01F0910F01E90FF11D71
+:10343000877021E030E0A90102C0440F551F8A9532
+:10344000E2F7CA019181892B818308959F3F39F06A
+:103450004F5F4E3041F051915813F8CF0DC05111CC
+:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08
+:1034700097FDFA9582830895089590910C01992300
+:1034800021F090910D01911109C020910E01309110
+:103490000F01F9013296205F3F4F1FC0982F96957C
+:1034A000969596959F30F0F4E0910E01F0910F0102
+:1034B000E90FF11D877021E030E0A90102C0440F3F
+:1034C000551F8A95E2F7CA018095918189238183EE
+:1034D00008953196E217F30729F090819813F9CFF8
+:1034E0001082F7CF089581E090E0E0910E01F09115
+:1034F0000F01E80FF91F1082019680319105A9F79D
+:1035000008959091D901892B8093D90108958095D0
+:103510009091D90189238093D90108951092D901FE
+:1035200008959091D801892B8093D80108958095B2
+:103530009091D80189238093D80108951092D801E1
+:1035400008959091D701892B8093D7010895809594
+:103550009091D70189238093D70108951092D701C4
+:1035600008958093C60108951092C6010895809130
+:103570000E0190910F01FC0131969C01205F3F4F9D
+:1035800080E0919191118F5FE217F307D1F70895D1
+:10359000E0910E01F0910F018091D9018083E091BB
+:1035A0000E01F0910F0190818091D801892B8083C9
+:1035B000E0910E01F0910F0190818091D701892B4C
+:1035C00080838091C601882361F0E0910E01F09123
+:1035D0000F019081892B80830E94B71A811110926C
+:1035E000C60180910E0190910F010C94F60F20E01E
+:1035F000009739F0AC0141505109842395232F5F86
+:10360000F7CF822F0895CF92DF92EF92FF926C0155
+:10361000EE24FF24C114D104E104F10421F0C70118
+:10362000B60120E101C020E0C72ED82EE92EFF24EC
+:10363000C114D104E104F10419F0285FC701B601F7
+:103640006B017C0154E0F694E794D794C7945A95A3
+:10365000D1F7C114D104E104F10419F02C5FC701C2
+:10366000B6016B017C0142E0F694E794D794C794CD
+:103670004A95D1F7C114D104E104F10419F02E5F89
+:10368000C701B601DC01CB01B695A7959795879543
+:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5
+:1036A000DF90CF9008958091F101843021F1109244
+:1036B000DB0120E488E190E00FB6F894A8958093B0
+:1036C00060000FBE2093600080E00E94E30883B793
+:1036D000817F846083BF83B7816083BF789488953E
+:1036E00083B78E7F83BF88E10FB6F8948093600024
+:1036F000109260000FBE0895089508950E947C1BEB
+:103700000E944B030E947D1B0E94400491E08111A6
+:1037100001C090E0892F08950E9483140E94EA0F4F
+:103720000C94E30882E084BD93E095BD9AEF97BDC9
+:1037300080936E0008952FB7F8948091DC019091EA
+:10374000DD01A091DE01B091DF012FBF0895CF927E
+:10375000DF92EF92FF920F931F932FB7F89440914F
+:10376000DC015091DD016091DE017091DF012FBF1E
+:103770006A017B01EE24FF248C0120E030E0C016BA
+:10378000D106E206F30610F4415051099A01281BB4
+:10379000390BC9011F910F91FF90EF90DF90CF90EF
+:1037A00008951F920F920FB60F9211248F939F933B
+:1037B000AF93BF938091DC019091DD01A091DE0178
+:1037C000B091DF010196A11DB11D8093DC019093A2
+:1037D000DD01A093DE01B093DF01BF91AF919F9116
+:1037E0008F910F900FBE0F901F9018950E94E70CBD
+:1037F000F8942FEF87EA91E6215080409040E1F75E
+:1038000000C0000087E090EBDC018093FB01909307
+:10381000FC01A093FD01B093FE019CE088E10FB68E
+:10382000F894A895809360000FBE90936000FFCF3E
+:10383000EF92FF920F931F93CF93DF93D82FCDE09A
+:103840008C2F0E94390405E010E0E82EF12CC7010E
+:10385000002E02C0959587950A94E2F780FF09C073
+:10386000602F7C2F80E00E94F305D81302C081E016
+:1038700006C00150110958F7C15010F780E0DF91E0
+:10388000CF911F910F91FF90EF900895CF93C82F84
+:103890008CE20E94181C882321F08C2FCF910C946D
+:1038A000181C80E0CF910895CF930E949B1D811139
+:1038B00002C00E94811DC5E6C15049F00E944B0321
+:1038C0008FE39CE90197F1F700C00000F5CF89E292
+:1038D0000E94461C811113C18AE20E94461C81117C
+:1038E0000E94811D85E00E94461C81110E94F61BEA
+:1038F0000E94A61D8093DA0187E00E94461C88235F
+:10390000A9F18BE10E94461C882351F08091DA01D5
+:1039100081FB222720F991E0922790FB81F90EC0CC
+:103920008EE00E94461C882361F08091DA0182FBC0
+:10393000222720F991E0922790FB82F98093DA0107
+:1039400015C080E10E94461C9091DA01882341F065
+:1039500093FB222720F981E0822780FB93F904C0A2
+:10396000892F809580FB90F99093DA018091DA019C
+:103970000E94AA1D0E94B81D8093FA0180EE0E9449
+:10398000461C882341F08091FA01982F909590FB76
+:1039900080F98093FA0189E30E94461C882359F03C
+:1039A0008091FA0181FB222720F991E0922790FB78
+:1039B00081F98093FA0182EE0E94461C882359F017
+:1039C0008091FA0182FB222720F991E0922790FB57
+:1039D00082F98093FA0186EE0E94461C882359F0F2
+:1039E0008091FA0183FB222720F991E0922790FB36
+:1039F00083F98093FA0183EE0E94461C882359F0D4
+:103A00008091FA0184FB222720F991E0922790FB14
+:103A100084F98093FA0185E30E94461C882359F0BB
+:103A20008091FA0185FB222720F991E0922790FBF3
+:103A300085F98093FA0181E30E94461C882359F09E
+:103A40008091FA0186FB222720F991E0922790FBD2
+:103A500086F98093FA0181E10E94461C882359F07F
+:103A60008091FA0187FB222720F991E0922790FBB1
+:103A700087F98093FA018091FA010E94BC1D809120
+:103A8000FA0187FB882780F980930D0187E20E9465
+:103A9000461CC82F8EE10E94461C8111C2608FE136
+:103AA0000E94461C8111C46080E20E94461C811164
+:103AB000C86081E20E94461C8111C06182E20E94BE
+:103AC000461C8111C06283E20E94461C8111C064C1
+:103AD00084E20E94461C882311F0C06802C0CC23F7
+:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4
+:103AF000682F70E080E090E0CF910C944318CF9154
+:103B000008956DEE7EEF80E090E00E94ED2360E08E
+:103B100082E090E00E94DB2360E083E090E00E947E
+:103B2000DB2360E084E090E00E94DB2360E085E03E
+:103B300090E00C94DB2380E090E00E94D52321E00C
+:103B40008D3E9E4F09F020E0822F089582E090E0A4
+:103B50000C94CD23682F82E090E00C94DB2383E06B
+:103B600090E00C94CD23682F83E090E00C94DB234D
+:103B700084E090E00C94CD23682F84E090E00C94D6
+:103B8000DB238091E20180FF0BC06091130185E08F
+:103B9000689FB001112475956795759567952BC041
+:103BA00081FF09C06091130185E0689FB001112475
+:103BB0007595679520C082FF07C06091130185E06D
+:103BC000689FB001112417C09091E3019923D1F0AF
+:103BD00060911201961788F72091130185E0289FC4
+:103BE00090011124929FA001939F500D112470E029
+:103BF000CA010E949F236038710540F46115710568
+:103C000039F002C065E070E0862F08958FE70895CF
+:103C100081E008958091E20180FF08C06091110168
+:103C200070E0759567957595679521C081FF06C011
+:103C30006091110170E07595679519C082FF04C00D
+:103C40006091110170E010C09091E3019923C1F0DF
+:103C5000609110019617A0F780911101899FC00112
+:103C6000112470E00E949F236038710528F46115CB
+:103C7000710521F0862F08958FE7089581E008955A
+:103C800061E070E0F4CF803F21F40E94C11D819576
+:103C900004C0813F29F40E94C11D8093E60108956C
+:103CA000823F21F40E94C11D819504C0833F29F405
+:103CB0000E94C11D8093E5010895893F19F40E9477
+:103CC0000A1E05C08A3F31F40E940A1E8195809326
+:103CD000E70108958B3F21F40E940A1E819504C0DC
+:103CE0008C3F29F40E940A1E8093E8010895843FC6
+:103CF00021F48091E401816017C0853F21F4809117
+:103D0000E401826011C0863F21F48091E401846067
+:103D10000BC0873F21F48091E401886005C0883F93
+:103D200031F48091E40180618093E40108958D3F36
+:103D300021F48091E20181600BC08E3F21F48091DB
+:103D4000E201826005C08F3F29F48091E201846026
+:103D50008093E2010895803F39F48091E60187FF66
+:103D60006CC01092E60169C0813F29F48091E601A0
+:103D70001816BCF362C09091E501823F29F497FFC9
+:103D80005CC01092E50159C0833F19F41916CCF3B9
+:103D900054C0893F41F48091E70118160CF04DC0E2
+:103DA0001092E7014AC08A3F29F48091E70187FF1A
+:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6
+:103DC0001092E8013AC08C3F29F48091E80118165E
+:103DD000BCF333C0843F21F48091E4018E7F17C08F
+:103DE000853F21F48091E4018D7F11C0863F21F44D
+:103DF0008091E4018B7F0BC0873F21F48091E40127
+:103E0000877F05C0883F31F48091E4018F7E8093E5
+:103E1000E40113C08D3F21F48091E2018E7F0BC03D
+:103E20008E3F21F48091E2018D7F05C08F3F29F400
+:103E30008091E2018B7F8093E2018091E501811105
+:103E40000EC08091E60181110AC08091E7018111C5
+:103E500006C08091E801811102C01092E30108952B
+:103E600084EE91E00E9401100E949B1B9093E1015F
+:103E70008093E00108951F93CF93DF938091E00139
+:103E80009091E1010E94A71BAC019091E30199235D
+:103E900021F02091140130E006C0209115018AE044
+:103EA000289F900111244217530708F486C080917F
+:103EB000E501C091E601D091E7011091E80181117F
+:103EC00007C0C11176C0D11174C0111172C075C084
+:103ED0009F3F19F09F5F9093E301181624F40E940E
+:103EE000C11D8093E5018091E50187FF05C00E9417
+:103EF000C11D81958093E5011C1624F40E94C11D0B
+:103F00008093E6018091E60187FF05C00E94C11DF4
+:103F100081958093E6016091E501662339F1C091B6
+:103F2000E601CC2319F1772767FD7095872F972F2E
+:103F30000E94B02223E333E343E35FE30E941423B0
+:103F40000E947D226093E5016C2F772767FD7095B5
+:103F5000872F972F0E94B02223E333E343E35FE3ED
+:103F60000E9414230E947D226093E6011D1624F412
+:103F70000E940A1E8093E7018091E70187FF05C038
+:103F80000E940A1E81958093E701111624F40E9475
+:103F90000A1E8093E8018091E80187FF05C00E9416
+:103FA0000A1E81958093E801DF91CF911F910C94B7
+:103FB000301F9F3F09F08ECF96CFDF91CF911F9199
+:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE
+:103FD0001092E3011092E2010895833081F128F4F8
+:103FE000813059F08230D1F00895853009F449C00C
+:103FF000B8F1863009F456C0089580911501262F36
+:1040000030E0280F311D2F3F310524F4680F6093F5
+:10401000150108958FEF8093150108958091140183
+:10402000262F30E0280F311D2F3F310524F4680F73
+:104030006093140108958FEF809314010895809187
+:104040001301262F30E0280F311D2F3F310524F4B6
+:10405000680F6093130108958FEF80931301089503
+:1040600080911201262F30E0280F311D2F3F31059E
+:1040700024F4680F6093120108958FEF809312016A
+:10408000089580911101262F30E0280F311D2F3F18
+:10409000310524F4680F6093110108958FEF809328
+:1040A0001101089580911001262F30E0280F311D55
+:1040B0002F3F310524F4680F6093100108958FEFAE
+:1040C000809310010895833011F128F4813049F074
+:1040D000823091F00895853081F120F18630C1F170
+:1040E000089580911501681720F4861B80931501AF
+:1040F000089510921501089580911401681720F415
+:10410000861B8093140108951092140108958091E4
+:104110001301681720F4861B8093130108951092F1
+:104120001301089580911201681720F4861B809373
+:1041300012010895109212010895809111016817DB
+:1041400020F4861B809311010895109211010895A7
+:1041500080911001681720F4861B80931001089548
+:104160001092100108950F931F938D3109F46BC0C5
+:1041700008F03FC08E3009F47FC0C0F4873009F4E6
+:1041800069C068F4863009F0B1C08091DA01817F9E
+:104190008E7F8093DA0181E08093EA01A8C08830A5
+:1041A00009F4A2C08B3009F49FC0A0C0863109F485
+:1041B0009BC078F4803109F472C0813109F096C057
+:1041C0000E94831490910D0181E0892780930D0155
+:1041D0008BC0893109F488C08B3109F087C0809188
+:1041E000DA0181FB222720F991E0922790FB81F9E7
+:1041F0004CC0853309F470C048F4873209F46CC0B0
+:1042000008F459C0893209F467C070C0833438F4A7
+:104210008A3308F04EC0883309F466C067C083341F
+:1042200009F45AC0883409F061C00E9483140FEF6A
+:1042300013ED20E3015010402040E1F700C00000E2
+:104240000E94F61B51C00E9437220E94EA0F0E9472
+:10425000E3084AC09091DA01892F8095817080FB34
+:1042600090F929F0966098609093DA0140C0997FA8
+:10427000977F9093DA0138C08091DA0182FB222780
+:1042800020F991E0922790FB82F98093DA0199233B
+:1042900059F18091DA0181608093DA0125C0809123
+:1042A000DA0183FB222720F991E0922790FB83F922
+:1042B000ECCF895301C08D5141E050E060E070E0E7
+:1042C0008A019B0104C0000F111F221F331F8A9512
+:1042D000D2F7C901B80104C061E070E080E090E06D
+:1042E0000E9443180E94831481E001C080E01F9166
+:1042F0000F91089580E0089580E00895CF93C82F2E
+:104300008091EA01813079F018F08230E9F187C0BC
+:10431000E0910E01F0910F018081813169F08232CC
+:1043200009F07FC009C0E0910E01F0910F0180817A
+:10433000813111F0823261F48C2F0E947A21811137
+:1043400004C08C2F0E94B3201DC081E090E01AC0F1
+:104350008C2F0E947C21811114C0C43179F048F463
+:10436000CB3079F0C03109F060C082E08093EA017F
+:1043700008C0C93219F0C83321F057C01092EA01C1
+:1043800054C081E0817053C0C93289F118F5C4313D
+:1043900071F1A8F4C73009F046C08AE08093150196
+:1043A00094E19093140193E0909313018093120190
+:1043B00088E08093110188E28093100134C0CE51CF
+:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB
+:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC
+:1043E00013C0C13579F0C235F1F461E00DC08091A0
+:1043F000E901882319F01092E90115C081E080934A
+:10440000EA0115C061E006C08091E9010E94ED1F3C
+:104410000AC06AE08091E9010E94632004C0109202
+:10442000EA0180E004C081E002C080E0ABCFCF9120
+:104430000895E1E8F0E08081886080838081816078
+:1044400080838FB7F89493E09093890090ED9093D8
+:1044500088008FBF0895EFE6F0E08081826080835E
+:104460000895EFE6F0E080818D7F80830895EFE688
+:10447000F0E0908182E08927808308951F920F9257
+:104480000FB60F9211242F933F934F935F936F9327
+:104490007F938F939F93AF93BF93EF93FF938091FD
+:1044A000EB019091EC0101969093EC018093EB016C
+:1044B000811103C082E00E94E308E091EC01E695DF
+:1044C000E695F0E0EC54FB4FE4918091EB018E1304
+:1044D00003C080E00E94E308FF91EF91BF91AF918C
+:1044E0009F918F917F916F915F914F913F912F910C
+:1044F0000F900FBE0F901F90189504D06894B111C3
+:104500008DC0089570D088F09F5790F0B92F9927EB
+:10451000B751A0F0D1F0660F771F881F991F1AF0CE
+:10452000BA95C9F712C0B13081F077D0B1E00895E3
+:1045300074C0672F782F8827B85F39F0B93FCCF364
+:10454000869577956795B395D9F73EF490958095C4
+:10455000709561957F4F8F4F9F4F0895E89409C0E4
+:1045600097FB3EF490958095709561957F4F8F4FA6
+:104570009F4F9923A9F0F92F96E9BB279395F695BC
+:10458000879577956795B795F111F8CFFAF4BB0F3A
+:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E
+:1045A000882311F096E911C0772321F09EE8872F28
+:1045B000762F05C0662371F096E8862F70E060E0E4
+:1045C0002AF09A95660F771F881FDAF7880F96955D
+:1045D000879597F9089557FD9058440F551F59F046
+:1045E0005F3F71F04795880F97FB991F61F09F3FE0
+:1045F00079F087950895121613061406551FF2CF09
+:104600004695F1DF08C0161617061806991FF1CF58
+:1046100086957105610508940895E894BB2766277F
+:104620007727CB0197F908950BD078C069D028F08F
+:104630006ED018F0952309F05AC05FC01124EECF58
+:10464000CADFA0F3959FD1F3950F50E0551F629FED
+:10465000F001729FBB27F00DB11D639FAA27F00DDB
+:10466000B11DAA1F649F6627B00DA11D661F829F02
+:104670002227B00DA11D621F739FB00DA11D621FE7
+:10468000839FA00D611D221F749F3327A00D611D04
+:10469000231F849F600D211D822F762F6A2F1124E6
+:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39
+:1046B000BB1F661F771F881F91505040A9F79E3F70
+:1046C000510570F014C0AACF5F3FECF3983EDCF3C5
+:1046D000869577956795B795F795E7959F5FC1F7AD
+:1046E000FE2B880F911D9695879597F9089597F958
+:1046F0009F6780E870E060E008959FEF80EC089588
+:1047000000240A94161617061806090608950024B0
+:104710000A9412161306140605060895092E03942A
+:10472000000C11F4882352F0BB0F40F4BF2B11F49E
+:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF
+:10474000072E16F4009407D077FD09D00E94B923F4
+:1047500007FC05D03EF4909581959F4F0895709584
+:1047600061957F4F0895EE0FFF1F0590F491E02DA6
+:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8
+:10478000B70710F0A61BB70B881F991F5A95A9F7FA
+:1047900080959095BC01CD010895F999FECF92BD09
+:1047A00081BDF89A992780B50895A8E1B0E042E06C
+:1047B00050E00C94F523262FF999FECF92BD81BDD0
+:1047C000F89A019700B4021639F01FBA20BD0FB64F
+:1047D000F894FA9AF99A0FBE08950196272F0E942D
+:1047E000DC230C94DB23DC01CB01FC01F999FECF27
+:1047F00006C0F2BDE1BDF89A319600B40D92415069
+:0A4800005040B8F70895F894FFCF78
+:10480A000220E508730950091C09E8080101C701DB
+:10481A0028080A03140A3F4D363975042804F2039E
+:10482A00B9034C0365037E039703010203040506DB
+:04483A000708090062
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/msc/img/code_layer.png b/keyboards/ergodox_ez/keymaps/msc/img/code_layer.png Binary files differnew file mode 100644 index 000000000..7b5efaae7 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/msc/img/code_layer.png diff --git a/keyboards/ergodox_ez/keymaps/msc/img/main_layer.png b/keyboards/ergodox_ez/keymaps/msc/img/main_layer.png Binary files differnew file mode 100644 index 000000000..65f92dda1 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/msc/img/main_layer.png diff --git a/keyboards/ergodox_ez/keymaps/msc/img/media_layer.png b/keyboards/ergodox_ez/keymaps/msc/img/media_layer.png Binary files differnew file mode 100644 index 000000000..a69799b07 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/msc/img/media_layer.png diff --git a/keyboards/ergodox_ez/keymaps/msc/keymap.c b/keyboards/ergodox_ez/keymaps/msc/keymap.c new file mode 100644 index 000000000..e567e513f --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/msc/keymap.c @@ -0,0 +1,184 @@ +#include "ergodox_ez.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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 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 | ; |' / Cmd | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Cmd | Alt |AltShf| Left | Right| | Left | Down | Up |Right | L2 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | 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), + KC_LGUI,KC_LALT, 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, 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_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TG(MDIA), + 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| |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | Mute | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | Prev |VolDn |VolUp | Next | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |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_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_TRNS, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, 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_ez/keymaps/msc/readme.md b/keyboards/ergodox_ez/keymaps/msc/readme.md new file mode 100644 index 000000000..0d14fcbd2 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/msc/readme.md @@ -0,0 +1,32 @@ +# MSC Configuration + +### Based mostly on the ErgoDox EZ default layout with optimizations for coding on osx. + +#### Expecting the user to rely on Coder Layer this keymap removes some of the duplicate symbol keys in the lower portions of the board and replaces them with arrow keys and modifiers. The Media Layer is also updated to match the change in the arrow keys and the left and right click buttons are moved under the thumb position. The Media layer is now reached with toggle button in the lower right. + +### Main Layer + +![Main Layer](img/main_layer.png) + +### Code Layer + +![Code Layer](img/code_layer.png) + +### Media Layer + +![Media Layer](img/media_layer.png) + +## Changelog + +Version 1.0 + +- Changed the temp code layer key in the bottom right to toggle media layer +- Changed the temp media key to only be ";" +- Changed right hand bottom row to match vim home row nav directions +- Changed media keys to match arrow key changes +- Changed media left and right click to spacebar and backspace locations +- Changed bottom left to Cmd +- Changed single quote on left bottom row to alt + +#### Coming Soon: +- A new layer for Blender editing with a focus on left hand shortcut and a righthand num pad to control the view in Blender. diff --git a/keyboards/ergodox_ez/keymaps/naps62/README.md b/keyboards/ergodox_ez/keymaps/naps62/README.md new file mode 100644 index 000000000..14728e4cc --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/naps62/README.md @@ -0,0 +1,29 @@ +# ErgoDox EZ naps62 Configuration + +## Motivation + +I wanted a layout that suited my Linux & Vim usage. I also didn't like the lack of efficient access to some of the more common special characters used in programming. + +## Key features / changes + +### Base Layer (L1) + +* **No `MT(mod, kc)` keys (modifier when pressed, key when tapped).** Those keys work with a global timeout. When a key press is shorter than the timeout, it's considered a tap, otherwise it's a hold. I couldn't find any particular timeout that would work for me. I need to use mods extremely fast, but also want the confort of using them more slowly in other occasions. So I gave up on this feature altogether. +* **Direct access to `{}[]`.** When programming, these are used extremely often. I was still getting used to the coder layer, and I prefer the arrows on the home row, so I used the bottom-right keys for this. +* **Layer keys everywhere.** I either use my little finger or my index finger to go to L1, whichever is more confortable in any given situation. L2 is not used while coding/writing, so I don't need an extremely-optimized access to it. +* **Lang key.** This is nothing more than `Super-Space` combo, which in my systems (both Linux & Windows) is the shortcut to change the keyboard language. I'm Portuguese, so I often cycle between US layout for coding, and PT layout for writing. +* **Special chars on the right-most column.** I only use Ctrl & Shift keys on the left side, so I used the right keys to include some of the more useful special characters as well. + +### Coder Layer (L2) + +* The `=` and `-` signs where nowhere to be found. `-` was already on the base layer, but it's still useful to have a fully-featured NumPad on the coder layer. + +### Media Layer (L3) + +* **Better media keys**. Why was Play/Pause so far away? And where was Mute? I put all my media keys close to each other, including the missing ones +* **Arrow keys on home row.** I use vim, so I'm always on my home row. I use this sometimes to get around, but not as often as to need them on the base row. I'm fine with them here +* I don't use mouse keys. They're still set up, and I made some changes as an experiment, but I mostly forgot they exist by now. + +## Author + +[Miguel Palhas](https://github.com/naps62) diff --git a/keyboards/ergodox_ez/keymaps/naps62/compiled.hex b/keyboards/ergodox_ez/keymaps/naps62/compiled.hex new file mode 100644 index 000000000..02cbf8be3 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/naps62/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4
+:100010000C94BE020C94BE020C94BE020C94BE0260
+:100020000C94BE020C94BE020C94620D0C94340E1F
+:100030000C94BE020C94BE020C94BE020C94BE0240
+:100040000C94BE020C943E220C94BE020C94BE0290
+:100050000C94BE020C94D11B0C94BE020C94BE02F4
+:100060000C94BE020C94BE020C94BE020C94BE0210
+:100070000C94BE020C94BE020C94BE020C94BE0200
+:100080000C94BE020C94BE020C94BE020C94BE02F0
+:100090000C94BE020C94BE020C94BE020C94BE02E0
+:1000A0000C94BE020C94BE020C94BE02A10EC30EB0
+:1000B000B10FC30EB10F080F2B0FB10F800F930FAD
+:1000C0006212621291129112C712E71218141814D8
+:1000D000F2121814A213A2130914181418141214EB
+:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300
+:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0
+:10010000C113CE13D513DC13E6130000F0A12900B0
+:100110002B00E000E100015200001E00140004006A
+:100120001D003500E3001F001A0016001B003400FC
+:10013000E200200008000700060031002C0021002A
+:100140001500090019000252E300220017000A00FE
+:10015000050000004A002C08025200000152000075
+:100160004D00290002520000015200004B00230004
+:100170001C000B00110000004900240018000D00B5
+:1001800010002F024C0025000C000E00360030023B
+:100190002C00260012000F0037002F002800270037
+:1001A00013003300380030002A002A0031003400E8
+:1001B0002D000152000001000100010001000100BA
+:1001C00000003A001E0220022202010001003B0052
+:1001D0001F0221022302010001003C002F0226021F
+:1001E0002F00010001003D00300227023000010015
+:1001F00001003E003102350035020000010001001F
+:1002000001000000010000000100010001000000E9
+:100210000100000001003F005200510024020000D4
+:1002200001004000240021001E002E0001004100BA
+:10023000250022001F003700010042002600230095
+:10024000200027000100430025022E0231002D006E
+:1002500001004400450001000100010000000050C1
+:10026000010001000100010000000100010004087C
+:1002700001000100010001001A0816080100010038
+:10028000F50001000808070801000100F400010062
+:10029000F400F10001000100010001001708F30063
+:1002A0000100000001000100010000000100000049
+:1002B0000100010001000000010000000100010038
+:1002C0000100500001000000010001000100510088
+:1002D000AA00AE000100010001005200A900AC001C
+:1002E000B700010001004F00A800AB00B6000100FC
+:1002F00001000100010001000100010001000100F6
+:1003000001000100000016034500720067006F0045
+:1003100044006F007800200045005A0000001603DA
+:100320004500720067006F0044006F0078002000F5
+:1003300045005A0000000403090409026D0004018D
+:1003400000A0FA09040000010301010009211101C4
+:100350000001223F000705810308000A090401008B
+:100360000103010200092111010001224D000705CE
+:10037000820308000A0904020001030000000921A9
+:10038000110100012236000705830308000A090451
+:1003900003000103000000092111010001223900BE
+:1003A000070584031000011201100100000008ED90
+:1003B000FE071301000102000105010906A1010564
+:1003C0000719E029E7150025019508750181020547
+:1003D000081901290595057501910295017503918B
+:1003E0000105071900297715002501957875018108
+:1003F00002C005010980A101850216010026B7008F
+:100400001A01002AB700751095018100C0050C097A
+:1004100001A1018503160100269C021A01002A9CF5
+:1004200002751095018100C005010902A1010901B1
+:10043000A10005091901290515002501950575017A
+:10044000810295017503810105010930093115818A
+:10045000257F95027508810609381581257F95014C
+:1004600075088106050C0A38021581257F950175EE
+:10047000088106C0C005010906A101050719E02988
+:10048000E715002501950875018102950175088120
+:100490000105081901290595057501910295017558
+:1004A0000391010507190029FF150025FF95067521
+:1004B000088100C0000000000000000000000001F2
+:1004C0000204060A0F17202C3A4A5D71879DB3C7B4
+:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF
+:1004E0003A2C20170F0A0604020100000000000049
+:1004F0000000000011241FBECFEFDAE0DEBFCDBF49
+:1005000004B603FE24C08091FB019091FC01A091F0
+:10051000FD01B091FE018730904BA740B04BB9F47C
+:100520001092FB011092FC011092FD011092FE014D
+:1005300014BE84B7877F84BF88E10FB6F894809398
+:100540006000109260000FBEE0E0FFE3099511E04B
+:10055000A0E0B1E0EAE0F8E402C005900D92A43317
+:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0
+:10057000B107E1F70E94A60A0C9403240C94000032
+:100580001092B9008AE08093B800089594EA90939D
+:10059000BC009091BC0097FFFCCF9091B900987F70
+:1005A000983021F0903111F081E008958093BB00E4
+:1005B00084E88093BC008091BC0087FFFCCF8091D1
+:1005C000B900887F883111F0803471F780E0089598
+:1005D00084E98093BC008091BC0084FDFCCF089529
+:1005E0008093BB0084E88093BC008091BC0087FFAF
+:1005F000FCCF9091B900987F81E0983209F480E0B7
+:10060000089584E88093BC008091BC0087FFFCCFF4
+:100610008091BB00089580910101811115C080E493
+:100620000E94C6028093010181110CC082E10E94E8
+:10063000F00280930101811105C08FEF0E94F0024A
+:10064000809301010E94E80284B1807F84B985B162
+:10065000807F85B98AB1837F8AB98BB1837F8BB95B
+:100660003E98469808950E94C604809301010E9416
+:100670000B0380B38C7080BB81B3836F81BBA5E318
+:10068000B1E0E3E4F1E08EE08E0F11921D928E1343
+:10069000FCCF0C94B004BF92CF92DF92EF92FF9206
+:1006A0000F931F93CF93DF9380910101882379F0FB
+:1006B000809134018F5F80933401811108C00E94C2
+:1006C000C60480930101811102C00E94580405E311
+:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407
+:1006E000E394F12CC730D10500F58091010181110F
+:1006F00064C080E40E94C60280930101811112C08F
+:1007000082E10E94F0028093010181110BC0C701B8
+:100710000C2E01C0880F0A94EAF780950E94F0021F
+:10072000809301010E94E80248C0CA30A1F028F479
+:10073000C83059F0C93061F005C0CC3089F070F094
+:10074000CD3089F0209A289810C0219A29980DC0A0
+:10075000229A2A980AC0239A2B9807C0529A01C05D
+:10076000539A5B9802C03E9A469890EA9A95F1F7A0
+:100770009FB1799902C082E001C080E091709D250F
+:10078000982B7C9902C084E001C080E0892B7D9980
+:1007900002C038E001C030E0832B7E9902C020E126
+:1007A00001C020E0822B9FB19095991F9927991F36
+:1007B0009295990F907E892B0FC080910101811134
+:1007C00049C080E40E94C60280930101882379F128
+:1007D000B12C0E94E8028B2DF8019081981719F036
+:1007E0008083C09200010E940B0321960F5F1F4F70
+:1007F000CE30D10509F076CF80910001882361F1D8
+:10080000815080930001882339F08FE99FE00197A0
+:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F
+:10082000CF01825F91919D938E13FCCF15C083E120
+:100830000E94F002809301018111CACF81E40E94DD
+:10084000C602809301018111C3CF0E940103B82E1B
+:10085000B094BFCF80E0C0CF0E94560481E0DF910A
+:10086000CF911F910F91FF90EF90DF90CF90BF90AD
+:100870000895E82FF0E0ED5BFE4F80810895089524
+:100880000F931F93CF93DF93C3E4D1E010E00C2FBD
+:10089000025F899190E00E94F71A180F0C13F9CFAC
+:1008A000812FDF91CF911F910F9108950C94260510
+:1008B00056985E9825982D9826982E9827982F98C8
+:1008C0008FEF90E0909389008093880090938B0045
+:1008D00080938A0090938D0080938C00259A2D9AA6
+:1008E0002FEF80E792E0215080409040E1F700C078
+:1008F0000000269A2E9A2FEF80E792E02150804048
+:100900009040E1F700C00000279A2F9A2FEF80E770
+:1009100092E0215080409040E1F700C0000025980F
+:100920002D982FEF80E792E0215080409040E1F732
+:1009300000C0000026982E982FEF80E792E021500B
+:1009400080409040E1F700C0000027982F9856980B
+:100950005E9825982D9826982E9827982F98089578
+:1009600089EA8093800089E08093810024982C9804
+:100970003F988AB18F748AB96E98479A8BB1806B11
+:100980008BB9769A0E9458040C94250580E28093D6
+:1009900001018091510181110EC00E94C00281E0CD
+:1009A000809351012FEF83ED90E3215080409040E0
+:1009B000E1F700C0000080E40E94C60280930101BC
+:1009C00081112EC00E94F00280930101811128C084
+:1009D0000E94F00280930101811122C08FE30E94E6
+:1009E000F0028093010181111BC00E94E80280E4A3
+:1009F0000E94C60280930101811112C08CE00E9406
+:100A0000F0028093010181110BC00E94F0028093DB
+:100A10000101811105C08FE30E94F0028093010162
+:100A20000E94E80280910101089561110BC0FC0150
+:100A30008281882321F085EE0E94061103C085EE95
+:100A40000E94CE1180E090E0089508956091BD016C
+:100A50007091BE018091BF019091C0010E94031B63
+:100A600056985E9825982D9826982E9827982F9816
+:100A7000813019F0823021F00895259A2D9A089539
+:100A8000269A2E9A089581E0089581E008950C94A5
+:100A9000450508950F931F93CF93DF938C01FC01BD
+:100AA000C081D181CE010E947C19BE010E94F30554
+:100AB000EC01B8010E944705882309F48DC0F801B4
+:100AC0008281882309F44AC080915D0181111FC091
+:100AD000C431F0E5DF0709F051C00E94490581E00B
+:100AE00080935D010E949B1B90935C0180935B014E
+:100AF0001092540110925601109255011092580113
+:100B00001092570110925A011092590165C08091BC
+:100B10005B0190915C010E94A71B883C910570F4D9
+:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB
+:100B3000D183C0838F5F809354014EC0C43880E559
+:100B4000D80721F0C538D04501F13AC0F8018281BB
+:100B5000882341F01092520182E01EC0C438E0E5C3
+:100B6000DE0759F580915201811106C086E20E948C
+:100B7000061186E20E94CE1182E01CC0C438F0E566
+:100B8000DF0741F3C538D045D9F4F80182818823C5
+:100B900031F01092530180E20E941D121DC080911D
+:100BA0005301811106C087E20E94061187E20E946C
+:100BB000CE1180E20E9424120FC0C538D04529F31F
+:100BC00081E08093520180935301C801DF91CF915E
+:100BD0001F910F910C94430580E0DF91CF911F91FD
+:100BE0000F910895089596E0799FF001112494E5FE
+:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F
+:100C0000E25FFE4F859194910895880F991FFC0132
+:100C1000E657F040859194910895880F991FFC0143
+:100C2000E65FFE4F8591949108950F931F93CF93A4
+:100C3000DF93EC01811520E3920750F5C11580E2A6
+:100C4000D80708F0C3C0CB3BD10590F4C83AD10512
+:100C500008F06AC0C53AD10508F05BC0C430D105C0
+:100C600008F0D0C1219709F0CAC101E010E00AC222
+:100C7000CF3FD10511F008F0C5C1C03FD10508F044
+:100C8000A2C0CE01805E9109089708F4BBC1B7C12C
+:100C9000C13090E5D90709F4A2C020F5C0318FE436
+:100CA000D80770F4C11590E4D90708F094C0C115B5
+:100CB00021E3D20708F0A3C1DD278E01106CE2C149
+:100CC000C115D04509F09BC10E9483148FEF94E3B6
+:100CD0002CE0815090402040E1F700C000000E94CD
+:100CE000F61BD0C1C11597E5D90758F4C03121E5ED
+:100CF000D20708F01CC1C43180E5D80708F475C0DC
+:100D00007EC1CE0190578115904108F078C1DF7007
+:100D100073C1C53AD10509F477C1C63AD10509F0C6
+:100D200076C102E810E4AEC1C83AD10509F472C137
+:100D3000C93AD10509F471C1CA3AD10509F470C1A3
+:100D4000CB3AD10509F46FC1CC3AD10509F46EC193
+:100D5000CD3AD10509F46DC1C03BD10509F46CC190
+:100D6000CE3AD10509F46BC1CF3AD10509F46AC175
+:100D7000C13BD10509F469C1C23BD10509F468C181
+:100D8000C33BD10509F467C1C43BD10509F466C171
+:100D9000C53BD10509F465C1C63BD10509F464C161
+:100DA000C73BD10509F463C1C83BD10509F462C151
+:100DB000C93BD10509F461C1CA3BD10509F460C141
+:100DC00000E014E45FC18E0110655CC1CE019F702C
+:100DD0000E940D0658C1DF708E01106A53C18091C8
+:100DE000DA0181608093DA014DC10E949B1D81115F
+:100DF00002C00E94811D0E94B81D90E09093FB01EB
+:100E00008093FA01C23080E5D80721F48091FA017D
+:100E1000816086C0C43090E5D90721F48091FA0141
+:100E200082607EC0C63020E5D20721F48091FA01AD
+:100E3000846076C0C83080E5D80719F48091FA0143
+:100E400027C0CA3090E5D90721F48091FA0180616A
+:100E500067C0CC3020E5D20721F48091FA0180628E
+:100E60005FC0CE3080E5D80721F48091FA0180641C
+:100E700057C0C03190E5D90721F48091FA0180680C
+:100E80004FC0C23120E5D20729F48091FA01846075
+:100E9000886046C0C33080E5D80721F48091FA010C
+:100EA0008E7F3EC0C53090E5D90721F48091FA01CC
+:100EB0008D7F36C0C73020E5D20721F48091FA013A
+:100EC0008B7F2EC0C93080E5D80719F48091FA01D4
+:100ED00026C0CB3090E5D90721F48091FA018F7EAE
+:100EE0001FC0CD3020E5D20721F48091FA018F7D1B
+:100EF00017C0CF3080E5D80721F48091FA018F7BAD
+:100F00000FC0C13190E5D90721F48091FA018F77A4
+:100F100007C0C331D04531F48091FA018B7F877FC0
+:100F20008093FA018091FA010E94BC1DABC08D2F05
+:100F300099278F70992781309105D9F49E012370EC
+:100F4000332702C0880F991F2A95E2F79C688E010B
+:100F500044E0000F111F4A95E1F700271370802B22
+:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA
+:100F70002FC08230910531F4DC2FCC278E01016F18
+:100F8000106A80C08330910569F4CE01837099277F
+:100F900001E010E002C0000F111F8A95E2F7C801BE
+:100FA0009C680FC084309105B9F4CE0183709927F5
+:100FB00001E010E002C0000F111F8A95E2F7C8019E
+:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029
+:100FD0008C010C2B1D2B56C08530910531F4DC2F74
+:100FE000CC278E01046F106A4DC0069709F04AC0E5
+:100FF000CF71DD27DC2FCC278E01106243C000E0CB
+:1010000010E040C08E013EC001E810E43BC003E8A0
+:1010100010E438C002EE14E435C009EE14E432C026
+:101020000AEE14E42FC005EB14E42CC006EB14E424
+:1010300029C007EB14E426C00CEC14E423C00DEC2B
+:1010400014E420C003E815E41DC00AE815E41AC042
+:1010500002E915E417C004E915E414C001E216E43E
+:1010600011C003E216E40EC004E216E40BC005E270
+:1010700016E408C006E216E405C007E216E402C062
+:101080000AE216E4C801DF91CF911F910F910895F4
+:1010900096E0799FF001112494E5899FE00DF11D00
+:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149
+:1010B0009491803E9105E0F4803C910558F5813390
+:1010C000910509F46FC048F48932910509F463C0B1
+:1010D0008A32910509F46DC072C089339105E9F037
+:1010E00082389105D1F08533910509F44DC067C070
+:1010F000833E910581F138F4803E9105B9F0823E3E
+:101100009105D9F05CC0863E910561F1873E91055D
+:10111000A1F155C00E94050608952091FA0120FD15
+:1011200002C021FF4CC080EE90E049C08091FA01DE
+:1011300080FFF9CF89E390E042C08091FA0182FFFD
+:101140000EC08091FA0184FF03C080E090E037C0B8
+:1011500083EE90E034C08091FA0182FFF2CF82EEFC
+:1011600090E02DC08091FA0183FF0BC08091FA01BD
+:1011700084FDEBCF87EE90E022C08091FA0183FFDF
+:10118000F5CF86EE90E01BC08091FA0185FF07C085
+:1011900089E290E014C08091FA0185FFF9CF85E3E0
+:1011A00090E00DC08091FA0186FF07C08AE290E0CE
+:1011B00006C08091FA0186FFF9CF81E390E00E949A
+:1011C0001506089508950C94E20880916E01089523
+:1011D000CF93DF9300D01F92CDB7DEB79C018091F3
+:1011E000F101843019F593E099833B832A8390932E
+:1011F000E9008FEF9091E800815095FD06C095EDD4
+:101200009A95F1F700008111F5CF8091E80085FFF4
+:101210000DC040E050E063E070E0CE0101960E9416
+:10122000520B8091E8008E778093E8000F900F902A
+:101230000F90DF91CF910895CF93DF9300D01F924D
+:10124000CDB7DEB72091F101243021F522E02983CA
+:101250009B838A8383E08093E9008FEF9091E8007D
+:10126000815095FD06C095ED9A95F1F7000081112A
+:10127000F5CF8091E80085FF0DC040E050E063E0CD
+:1012800070E0CE0101960E94520B8091E8008E77AB
+:101290008093E8000F900F900F90DF91CF91089509
+:1012A0002091F1012430F1F422E02093E9002FEFA6
+:1012B0003091E800215035FD06C035ED3A95F1F743
+:1012C00000002111F5CF2091E80025FF0BC040E080
+:1012D00050E065E070E00E94520B8091E8008E774C
+:1012E0008093E8000895CF93DF93EC019091F10192
+:1012F000943009F046C080910C018823D9F0809188
+:101300000D018823B9F09093E9008FEF9091E800E8
+:10131000815095FD06C095E19A95F1F70000811185
+:10132000F5CF8091E80085FF2CC040E050E060E1FF
+:1013300070E017C081E08093E9008FEF9091E800A2
+:10134000815095FD06C095ED9A95F1F70000811149
+:10135000F5CF8091E80085FF14C040E050E068E0E0
+:1013600070E0CE010E94520B8091E8008E7780934E
+:10137000E80080E1FE01AEE5B1E001900D928A95B2
+:10138000E1F7DF91CF9108958091F001811109C0BB
+:101390000E94E70C0E94440D8091E20084608093DB
+:1013A000E20008951092F001089508950C942B2204
+:1013B0000E948C1B0E9431220E94EA0F0C94E308C9
+:1013C00042E061EC81E00E94610C42E061EC82E06D
+:1013D0000E94610C42E061EC83E00E94610C42E1FA
+:1013E00061EC84E00C94610C8091F301833009F48A
+:1013F00055C030F4813071F0823009F48EC0089508
+:101400008A3009F47AC08B3009F460C0893009F061
+:101410009CC020C08091F201813A09F096C0809171
+:10142000E800877F8093E8008091F6019091F701B2
+:10143000892B21F460E18EE591E003C060E080E05B
+:1014400090E070E00E949D0B8091E8008B77809384
+:10145000E80008958091F201813209F076C0809110
+:10146000F6019091F701009719F0039709F06DC00C
+:101470008091E800877F8093E8008091E80082FDFA
+:1014800005C08091F1018111F8CF5FC08091F1001A
+:1014900080936E018091E8008B7753C08091F201B8
+:1014A000813A09F052C08091F6019091F701892BA1
+:1014B00009F04BC08091E800877F8093E80080911D
+:1014C000E80080FFFCCF80910C0136C08091F201D2
+:1014D0008132D9F58091F6019091F701892BA9F518
+:1014E0008091E800877F8093E8000E94960C8091AD
+:1014F000F40180930C010C9483148091F2018132E9
+:1015000021F58091E800877F8093E8000E94960C87
+:101510008091F50180936F0108958091F201813AE5
+:10152000A1F48091E800877F8093E8008091E80033
+:1015300080FFFCCF80916F018093F1008091E800E3
+:101540008E778093E8000C94960C089584B7877F7B
+:1015500084BF88E10FB6F894809360001092600019
+:101560000FBE90E080E80FB6F894809361009093EE
+:1015700061000FBE0E9439100E94E70C0E94440DCA
+:101580008091E20084608093E20078940E94CA0F08
+:101590000E943B1082E091E00E94E50F0E94192218
+:1015A0008091F101853069F40E94531B8091EF0115
+:1015B0008823B1F30E947E1B882391F30E943C0B89
+:1015C000EFCF0E944110ECCF292F33272330310574
+:1015D000C9F064F42130310581F02230310509F081
+:1015E00043C08DE690E02AE333E042C0213231056A
+:1015F000F1F02232310541F137C082E190E027EA73
+:1016000033E036C099278130910541F08230910551
+:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4
+:1016200002C0E6E0F3E0849190E09F0121C06430C5
+:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5
+:10164000318189E090E014C0643070F470E0FB01F7
+:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47
+:10166000FE4F808190E004C080E090E020E030E018
+:10167000FA0131832083089580E189BD82E189BD2B
+:1016800009B400FEFDCF8091D8008F7D8093D800F3
+:101690008091E00082608093E0008091E00081FD15
+:1016A000FCCF0895CF92DF92EF92FF920F931F939A
+:1016B000CF93DF93EC018B016A010E94B50C81117D
+:1016C00033C0C114D10439F0F60180819181081B27
+:1016D000190BC80FD91FE12CF12C0115110519F1B7
+:1016E0008091E80085FD16C08091E8008E77809398
+:1016F000E800C114D10449F0F60180819181E80E1F
+:10170000F91EF182E08285E00FC00E94B50C8823AB
+:1017100021F30AC089918093F10001501109FFEF74
+:10172000EF1AFF0ADACF80E0DF91CF911F910F917E
+:10173000FF90EF90DF90CF9008952091F8013091C5
+:10174000F9012617370748F06115710539F4209122
+:10175000E8002E772093E80001C0B90140E0611550
+:101760007105A9F12091F101222309F443C025302C
+:1017700009F442C02091E80023FD40C02091E80018
+:1017800022FD32C02091E80020FFE9CF4091F30014
+:101790002091F20030E0342BFC01CF01611571057E
+:1017A00059F02830310540F481918093F100615067
+:1017B00071092F5F3F4FF1CF41E02830310509F02B
+:1017C00040E02091E8002E772093E800C8CF411137
+:1017D000C9CF0AC08091F101882361F0853061F0A2
+:1017E0008091E80083FD0AC08091E80082FFF2CF7B
+:1017F00080E0089582E0089583E0089581E00895EF
+:101800002091F8013091F9012617370748F061154A
+:10181000710539F42091E8002E772093E80001C08B
+:10182000B901FC0120E06115710591F18091F10190
+:10183000882309F440C0853009F43FC08091E80056
+:1018400083FD3DC08091E80082FD2FC08091E800BB
+:1018500080FFE9CF2091F3008091F20090E0922B7D
+:101860006115710559F08830910540F42491209359
+:10187000F1003196615071090196F2CF21E008978D
+:1018800009F020E08091E8008E778093E800CBCFCC
+:101890002111CCCF0AC08091F101882361F08530FD
+:1018A00061F08091E80083FD0AC08091E80082FF2A
+:1018B000F2CF80E0089582E0089583E0089581E00A
+:1018C0000895982F973058F59093E900981739F0BC
+:1018D0007091EC002091ED005091F00003C0242F96
+:1018E000762F50E021FF19C03091EB003E7F3093FE
+:1018F000EB003091ED003D7F3093ED003091EB0037
+:1019000031603093EB007093EC002093ED00509326
+:10191000F0002091EE0027FF07C09F5FD3CF8F70AC
+:101920008093E90081E0089580E008958091F201BC
+:1019300087FF11C08091E80082FD05C08091F10110
+:101940008111F8CF11C08091E8008B770BC0809196
+:10195000F101882349F08091E80080FFF8CF809161
+:10196000E8008E778093E80008952091E40030919C
+:10197000E50095E64091EC00842F817040FF22C085
+:101980008091E80080FD1CC08091F101882391F0D6
+:10199000853091F08091EB0085FD10C04091E4000E
+:1019A0005091E5004217530729F39A01915011F71E
+:1019B00084E0089582E0089583E0089581E0089529
+:1019C00080E008954091E80042FFDECF08950E9434
+:1019D000550D0E945D0DE0EEF0E080818160808316
+:1019E000E8EDF0E080818F77808319BCA7EDB0E04F
+:1019F0008C918E7F8C9380818F7E80831092F001FA
+:101A000008950F931F93CF93DF930E94550D0E946B
+:101A10005D0DC8EDD0E088818F77888388818068EC
+:101A2000888388818F7D888319BC1092F101109280
+:101A3000ED011092EF011092EE0100EE10E0F801BE
+:101A400080818B7F808388818160888342E060E031
+:101A500080E00E94610CE1EEF0E080818E7F808367
+:101A6000E2EEF0E080818160808380818860808305
+:101A7000F80180818E7F8083888180618883DF91F7
+:101A8000CF911F910F910895E8EDF0E080818F7E56
+:101A90008083E7EDF0E080818160808384E082BF15
+:101AA00081E08093F0010C94010DE8EDF0E080817D
+:101AB0008E7F80831092E20008951092DA001092D7
+:101AC000E10008951F920F920FB60F9211242F93E9
+:101AD0003F934F935F936F937F938F939F93AF93B6
+:101AE000BF93EF93FF938091E10082FF0BC0809141
+:101AF000E20082FF07C08091E1008B7F8093E100CC
+:101B00000E94C90F8091DA0080FF1FC08091D80029
+:101B100080FF1BC08091DA008E7F8093DA00809175
+:101B2000D90080FF0DC080E189BD82E189BD09B483
+:101B300000FEFDCF81E08093F1010E94C40905C041
+:101B400019BC1092F1010E94D2098091E10080FF3E
+:101B500019C08091E20080FF15C08091E2008E7F65
+:101B60008093E2008091E20080618093E2008091A6
+:101B7000D80080628093D80019BC85E08093F10181
+:101B80000E94D6098091E10084FF30C08091E2007C
+:101B900084FF2CC080E189BD82E189BD09B400FECB
+:101BA000FDCF8091D8008F7D8093D8008091E10097
+:101BB0008F7E8093E1008091E2008F7E8093E2002F
+:101BC0008091E20081608093E2008091ED018823A2
+:101BD00011F084E007C08091E30087FD02C081E03E
+:101BE00001C083E08093F1010E94D8098091E10057
+:101BF00083FF29C08091E20083FF25C08091E1002E
+:101C0000877F8093E10082E08093F1011092ED01E3
+:101C10008091E1008E7F8093E1008091E2008E7FD1
+:101C20008093E2008091E20080618093E20042E0D4
+:101C300060E080E00E94610C8091F00088608093F9
+:101C4000F0000E94D509FF91EF91BF91AF919F9154
+:101C50008F917F916F915F914F913F912F910F9055
+:101C60000FBE0F901F9018951F920F920FB60F92F4
+:101C700011242F933F934F935F936F937F938F9391
+:101C80009F93AF93BF93CF93DF93EF93FF93C09155
+:101C9000E900CF708091EC00D82FD17080FDD0E8A2
+:101CA0001092E9008091F000877F8093F000789493
+:101CB0000E94780E1092E9008091F0008860809375
+:101CC000F000CD2BCF70C093E900FF91EF91DF9131
+:101CD000CF91BF91AF919F918F917F916F915F91C4
+:101CE0004F913F912F910F900FBE0F901F9018951D
+:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3
+:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115
+:101D1000F10091938E13FBCF0E94F4098091E800AB
+:101D200083FF1FC18091F2019091F301492F50E090
+:101D30004A30510508F015C1FA01EA5AFF4F0C94D8
+:101D4000B323803881F0823809F00BC18091F6010D
+:101D50008F708093E9008091EB0085FB882780F9E4
+:101D60001092E90006C08091EE019091EF0191116F
+:101D700082609091E800977F9093E8008093F10053
+:101D80001092F100C8C0282F2D7F09F0EAC08823E7
+:101D900019F0823061F0E5C08091F401813009F0E2
+:101DA000E0C0933009F080E08093EF012BC0809178
+:101DB000F401811127C08091F6018F7009F4D1C020
+:101DC0008093E9002091EB0020FF1CC0933021F4A8
+:101DD0008091EB00806214C09091EB009061909331
+:101DE000EB0021E030E0A90102C0440F551F8A95A5
+:101DF000E2F74093EA001092EA008091EB008860DD
+:101E00008093EB001092E9008091E800877F86C004
+:101E10008111A7C01091F4011F778091E3008078B1
+:101E2000812B8093E3008091E800877F8093E80016
+:101E30000E94960C8091E80080FFFCCF8091E30027
+:101E400080688093E300111102C082E001C083E04A
+:101E50008093F10186C08058823008F082C0809162
+:101E6000F4019091F5018C3D53E0950779F583E0FD
+:101E70008A838AE289834FB7F894DE01139620E0C3
+:101E80003EE051E2E32FF0E050935700E49120FF51
+:101E900003C0E295EF703F5FEF708E2F90E0EA3065
+:101EA00010F0C79601C0C0968D939D932F5F24318B
+:101EB00049F74FBF8091E800877F8093E8006AE28E
+:101EC00070E0CE0101960E949D0B14C0AE014F5FE1
+:101ED0005F4F6091F6010E94E40ABC01009709F48B
+:101EE00040C09091E800977F9093E80089819A81A3
+:101EF0000E94000C8091E8008B778093E80031C04D
+:101F0000803879F58091E800877F8093E8008091A0
+:101F1000ED018093F1008091E8008E778093E800D6
+:101F20000E94960C1EC081111CC09091F401923049
+:101F3000C0F48091E800877F8093E8009093ED01E2
+:101F40000E94960C8091ED01811106C08091E30002
+:101F500087FD02C081E001C084E08093F1010E940E
+:101F6000E0098091E80083FF0AC08091E800877F44
+:101F70008093E8008091EB0080628093EB00AA964A
+:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A
+:101F900008950895CF938091F1018823A1F0C09115
+:101FA000E900CF709091EC00892F817090FD80E85E
+:101FB000C82B1092E9008091E80083FD0E94780E02
+:101FC000CF70C093E900CF910895909375018093ED
+:101FD00074010895E0917401F0917501309721F03A
+:101FE0000190F081E02D099480E00895E091740162
+:101FF000F0917501309721F00280F381E02D099472
+:102000000895E0917401F0917501309721F00480FA
+:10201000F581E02D099408952091720130917301AA
+:102020008217930771F09093730180937201E0918E
+:102030007401F0917501309721F00680F781E02D51
+:1020400009940895209170013091710182179307CE
+:1020500071F09093710180937001E0917401F0919F
+:102060007501309721F00084F185E02D09940895E1
+:1020700008950C9438100E94921B0E9433030C9414
+:10208000541C9F92AF92BF92CF92DF92EF92FF9239
+:102090000F931F93CF93DF9300D000D000D0CDB724
+:1020A000DEB70E944B030DE010E0AA24A394B12CEC
+:1020B000902E802F0E943904980129583E4F6901C3
+:1020C000F901F080F826A1F40150110988F78FEF8B
+:1020D00089838A831B820E949B1B8160782F9D834A
+:1020E0008C8349815A816B818D810E94D8102FC0C9
+:1020F0009091DA0191FF04C08E830E943F048E818B
+:1021000025E030E0A501022E01C0440F0A94EAF751
+:10211000E42E4F21C1F029839A828E2191E009F4A7
+:1021200090E09B830E949B1B8160782F9D838C8312
+:1021300049815A816B818D810E94D810F60180817E
+:10214000E826E08204C021503109E0F6BDCF0E94AC
+:102150003B1F109176010E94EA0F1817B9F00E94F8
+:10216000EA0F8093760126960FB6F894DEBF0FBE75
+:10217000CDBFDF91CF911F910F91FF90EF90DF9036
+:10218000CF90BF90AF909F900C94E30826960FB627
+:10219000F894DEBF0FBECDBFDF91CF911F910F919D
+:1021A000FF90EF90DF90CF90BF90AF909F900895F9
+:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82
+:1021C0000FBECDBF4F83588769877A878B87DE0123
+:1021D000119686E0FD0111928A95E9F785E0FE01EE
+:1021E000379601900D928A95E1F749815A816B816A
+:1021F0007C818D819E810E9421172B960FB6F894C9
+:10220000DEBF0FBECDBFDF91CF910895CF9388235E
+:1022100009F4C2C0C82F823859F40E94EA0F81FD28
+:10222000BBC089E30E94FB190E94C81A89E30CC055
+:10223000833879F40E94EA0F80FDAEC083E50E94E6
+:10224000FB190E94C81A83E50E943D1ACF910C9495
+:10225000C81A843859F40E94EA0F82FD9DC087E4B1
+:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6
+:10227000813A48F48C2F0E947E2181118DC08C2FD1
+:102280000E94FB19E3CF80E28C0F883048F4C770BE
+:1022900081E001C0880FCA95EAF70E94811AD6CF63
+:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB
+:1022B00083E890E005C081E890E002C082E890E009
+:1022C000CF910C940C1088E58C0F833108F064C01A
+:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118
+:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186
+:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106
+:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173
+:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB
+:1023200038C082EE90E035C089EE90E032C08AEE8F
+:1023300090E02FC085EB90E02CC086EB90E029C0A8
+:1023400087EB90E026C08CEC90E023C08DEC90E011
+:1023500020C083E891E01DC08AE891E01AC082E9BC
+:1023600091E017C084E991E014C081E292E011C0CD
+:1023700083E292E00EC084E292E00BC085E292E03C
+:1023800008C086E292E005C087E292E002C08AE2DD
+:1023900092E0CF910C942210CF910895882309F4F4
+:1023A0004BC0823859F40E94EA0F81FF45C089E38F
+:1023B0000E94FB190E94C81A89E30CC0833871F48B
+:1023C0000E94EA0F80FF38C083E50E94FB190E943B
+:1023D000C81A83E50E943D1A0C94C81A843859F42F
+:1023E0000E94EA0F82FF28C087E40E94FB190E9426
+:1023F000C81A87E4EFCF9CEF980F913A58F390E218
+:10240000980F983050F4877091E001C0990F8A9529
+:10241000EAF7892F0E94871ADFCF9BE5980F933048
+:1024200020F480E090E00C940C10885A833120F462
+:1024300080E090E00C9422100895882321F00E94FF
+:10244000811A0C94C81A0895882321F00E94871AD3
+:102450000C94C81A08957F928F929F92AF92BF9268
+:10246000CF92DF92EF92FF920F931F93CF93DF9360
+:102470001F92CDB7DEB77C01C62E772EFC010581F9
+:1024800002950F70128111110E949E1A0E94F41978
+:10249000882379F0112369F080E28C0D883048F0B0
+:1024A00082E00E94DD190E94F41991E0D82ED9260D
+:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C
+:1024C0000C94B323872D807F072D0F70882311F084
+:1024D0000295007F112389F0002309F490C180E266
+:1024E0008C0D883020F4802F0E94811A03C0802F29
+:1024F0000E94911A0E94C81A82C18C2D0E94CE118E
+:10250000002309F495C180E28C0D883020F4802FDF
+:102510000E94871A03C0802F0E94971A0E94C81A2F
+:1025200087C1972D907F872D8F70903211F0829503
+:10253000807FCC2021F0F1E0CF16B1F01EC0112336
+:1025400049F0002309F414C1013009F011C10E94BF
+:10255000B11A6EC1002319F0013009F469C18983F1
+:102560000E94B41A89810AC1112321F0023008F0B7
+:102570005FC1FEC001115CC101C1112321F0002324
+:1025800009F4F6C03CC1002309F4F8C03EC1872D10
+:1025900086958695837090E0009719F0019761F019
+:1025A00047C1112321F08C2D972D937002C080E03C
+:1025B00090E00E940C103CC1112321F08C2D972D2E
+:1025C000937002C080E090E00E94221031C18C2DF7
+:1025D000112319F00E94431E02C00E94AB1E0E94EC
+:1025E000301F26C1872D837009F052C0111120C100
+:1025F0008C2D829586958770880F880F9C2D9F70F3
+:10260000892E912CA12CB12C082E04C0880C991C69
+:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041
+:1026200020E030E0B901A80104C0440F551F661F27
+:10263000771F8A95D2F7CB01BA0160957095809586
+:10264000909503C060E070E0CB01272D269526957C
+:10265000237030E02230310569F02330310589F0F4
+:10266000682979298A299B292130310571F00E9436
+:102670006918DEC0682979298A299B290E94851852
+:10268000D7C00E946918C501B4010E944D18D0C07E
+:10269000112319F0872D817001C08695882309F4D4
+:1026A000C7C08C2D829586958770880F880F9C2DCA
+:1026B0009F70892E912CA12CB12C082E04C0880C5F
+:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC
+:1026D00010E020E030E0B901A80104C0440F551F0C
+:1026E000661F771F8A95D2F7CB01BA016095709566
+:1026F0008095909503C060E070E0CB01272D269572
+:1027000026952370422F50E04230510569F0433046
+:10271000510589F0682979298A299B294130510579
+:1027200071F00E94431984C0682979298A299B295C
+:102730000E945F197DC00E944319C501B4010E9427
+:10274000271976C08C2D90E0FC01E05EF109E5319F
+:10275000F10508F050C0E059FF4F0C94B3230C2D45
+:102760000F70872D8F71112331F00E94C018802FB8
+:102770000E941D125DC00E94E118802F0E94241249
+:1027800057C0112339F0011153C0872D8F710E945A
+:1027900006194EC0023008F04BC0F7CF112339F0B4
+:1027A000872D8F710E94C01843C01123C9F3872D54
+:1027B0008F710E94E1183CC0112329F0872D8F7181
+:1027C0000E94AB1835C00E94A11832C0112351F0ED
+:1027D000172D1F71812F0E94C01863E0812F0E9466
+:1027E000D41926C081E00E94DD19023008F182E090
+:1027F0000E94DD191DC0112331F0002389F28C2DB8
+:102800000E94061115C0002391F28C2D0E94CE115A
+:102810000FC0472D4F706C2DC7010E9415050E94F7
+:10282000C51706C0472D4F706C2DC7010E94F205D9
+:10283000DD20F9F00E94D01980FD1BC0F701128243
+:102840000E94CA190E94C018C7010E9448140E9421
+:10285000CA190F90DF91CF911F910F91FF90EF90C8
+:10286000DF90CF90BF90AF909F908F907F900C940F
+:10287000E1180F90DF91CF911F910F91FF90EF9092
+:10288000DF90CF90BF90AF909F908F907F900895F2
+:102890000F931F93CF93DF93EC01888199812B8154
+:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B
+:1028B0000E944A05882371F0688179818A810E948B
+:1028C000C6198C010E947B190E944218B801CE01E2
+:1028D0000E942B12DF91CF911F910F9108950E94BA
+:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471
+:1028F000E11F0E94301F80E090E00E940C1080E0F9
+:1029000090E00C9422100E948E1A0C946F140E9476
+:10291000BB19292F22952F7030E02C3031054CF453
+:102920002A3031056CF42250310922303105A8F4E7
+:1029300007C02C30310569F02F30310551F00DC042
+:10294000803F69F018F4803E40F409C0843F29F4C8
+:1029500006C093FB882780F9089580E0089581E000
+:102960000895CF93DF9300D000D01F92CDB7DEB78C
+:102970000F900F900F900F900F90DF91CF910895CF
+:10298000CF93DF9300D000D000D0CDB7DEB726962E
+:102990000FB6F894DEBF0FBECDBFDF91CF91089583
+:1029A0001F93CF93DF93C091850116E0809186013C
+:1029B000C81799F0D0E01C9FF0011D9FF00D112465
+:1029C000E957FE4F408151816281738184819581F5
+:1029D0000E94C0142196C770E9CFDF91CF911F915B
+:1029E00008954091B7015091B8016091B90170917B
+:1029F000BA018091BB019091BC010C94C0148091EC
+:102A0000BC0182958F7009F054C08091B901882370
+:102A100009F44FC080918501A09186016091B701B2
+:102A20007091B8014091BA015091BB01B6E08A178C
+:102A300009F43FC090E041155105C1F17F3F11F409
+:102A40006F3FA1F1B89FF001B99FF00D1124E95734
+:102A5000FE4F218172132AC02081621327C0228178
+:102A6000211124C0238134812417350710F421500B
+:102A70003109241B350B283C3105C0F42091BC01E1
+:102A80002F7020612093BC0126E0289FF001299F30
+:102A9000F00D1124E457FE4F80818F708061808398
+:102AA00087EB91E00E9448140C94D0140196877033
+:102AB000BECF0895CF92DF92EF92FF920F931F93B4
+:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32
+:102AD0000FBECDBF8C0185E0F801DE011D9601908F
+:102AE0000D928A95E1F7D8014C9111965C9111975E
+:102AF00012966C9112971396CD90DC9014973091AA
+:102B0000B7017091B8018091BA019091BB01009713
+:102B100009F46BC17F3F19F43F3F09F466C1E090AF
+:102B2000B901EE2009F4C0C02091BC01C816D90635
+:102B300028F0F601E81BF90BCF0104C080959095B1
+:102B40008C0D9D1DFF24F394883C910578F0F12CA9
+:102B5000207F09F0C6C07C2DD98AC88A89890E9445
+:102B6000B11487EB91E00E944814B1C0822F807F9E
+:102B700009F046C0751314C0341312C0611110C09F
+:102B80002F7020612093BC010E94F11487EB91E02B
+:102B90000E9448148091BC01D80115968C932EC0D8
+:102BA000CD2819F15F3F11F44F3FF9F0F62E611176
+:102BB0001CC0809185012091860136E0821709F4BE
+:102BC0005AC090E0389FF001399FF00D1124E95769
+:102BD000FE4F7181571306C07081471303C0728185
+:102BE000711103C001968770E9CFF62E662309F4B0
+:102BF00018C18091BC0181608093BC01F12C11C18E
+:102C0000751308C0341306C0611104C08091BC0163
+:102C1000D801C3C04D875E878D859E856A8B0E94D3
+:102C200087146A898823E1F16623D1F12091BC01E0
+:102C3000822F82958F7090E0029774F08091B70197
+:102C40009091B80198878F831986DB86CA862C8776
+:102C5000CE0107960E94481486E0F801A7EBB1E088
+:102C600001900D928A95E1F70E94FF140E94F114E1
+:102C7000FF24F394D6C04D875E878D859E850E9484
+:102C8000BB19292F22952F7030E0223031050CF02E
+:102C9000BCC09F7009F0B6C0805E883008F4C1C027
+:102CA000C8010E944814E4CFC816D90608F453C0DE
+:102CB000F601E81BF90BCF01883C910508F450C0E0
+:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E
+:102CD000F1E086E0DF011D928A95E9F70E94F11488
+:102CE000A0C0751314C0341312C0611110C08091BC
+:102CF000BC01F8018583C8010E94481486E0E7EB17
+:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C
+:102D10005E878D859E856A8B0E9487146A898823C9
+:102D200009F4BECF662309F4BBCF2091BC01822FEA
+:102D300082958F7090E002970CF48ECF8091B7014E
+:102D40009091B8019A8389831B82DD82CC822E8385
+:102D5000CE0101967FCF809590958C0D9D1DACCFB7
+:102D6000F62E662309F49CCF75132EC034132CC0A5
+:102D70002091BC0120FD1FC0822F82958F70D9F059
+:102D8000D80115962C9315978F3049F08F5F982FA7
+:102D90009295907F822F8F70892B15968C93C80106
+:102DA0000E94481486E0F801A7EBB1E001900D9273
+:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7
+:102DC0000D928A95E1F72DC04D875E878D859E8592
+:102DD0000E948714811140CF8091BC018160809353
+:102DE000BC01C8010E9448141CC0662309F458CFD6
+:102DF0004D875E878D859E850E948714882309F400
+:102E00004FCF2ACF811148CF0CC0243031050CF0B0
+:102E100047CF9F7009F440CFF8019581907F09F06A
+:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D
+:102E3000DF91CF911F910F91FF90EF90DF90CF9096
+:102E400008951F93CF93DF93CDB7DEB72C970FB6BE
+:102E5000F894DEBF0FBECDBF4F83588769877A874E
+:102E60008B879C87CE0107960E945A15882369F0AC
+:102E70008F8198852A853B85232BF1F19F3F09F0AF
+:102E800063C08F3F09F060C037C086E0FE0137960F
+:102E9000DE01119601900D928A95E1F76F81788598
+:102EA000EA85FB85309741F17F3F11F46F3F21F1B7
+:102EB0002091860130E0C9010196877099274091E1
+:102EC000850150E08417950709F447C069837A8328
+:102ED000FD83EC8396E0929FD001939FB00D112467
+:102EE000A957BE4FFE01319601900D929A95E1F7D8
+:102EF000809386010E94D01416E080918501909104
+:102F000086018917C1F1189FC001112489579E4F6E
+:102F10000E945A15882379F1E09185011E9FF001E6
+:102F20001124E957FE4F4081518162817381848170
+:102F300095810E94C0148091850190E00196877070
+:102F4000992780938501D9CF4F81588569857A85E6
+:102F50008B859C850E94C014CFCF0E948314109251
+:102F6000860110928501E7EBF1E086E0DF011D921A
+:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45
+:102F8000CDBFDF91CF911F910895EF92FF920F93E4
+:102F90001F93CF93DF938C01009709F46CC0F12C41
+:102FA000EE24E394E8012196F8018491843740F4FB
+:102FB000843008F051C0813081F0823019F15BC05B
+:102FC000853709F444C0A8F19CE7980F903708F0C2
+:102FD00052C08F770E94CE1141C00E5F1F4FFE017D
+:102FE000C49180E28C0F883048F4C7708E2D01C0E8
+:102FF000880FCA95EAF70E94A11A14C08C2F0E946C
+:1030000006112DC00E5F1F4FFE01C49180E28C0F90
+:10301000883058F4C7708E2D01C0880FCA95EAF722
+:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3
+:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3
+:103040009FE00197F1F700C00000C150F6CF0E5F7E
+:103050001F4FFE01F49003C00E9406118E018F2DB8
+:10306000882309F49FCFEFE9FFE03197F1F700C023
+:1030700000008150F5CFDF91CF911F910F91FF900C
+:10308000EF90089508956093C1017093C2018093F9
+:10309000C3019093C4010C946F140F931F9300917C
+:1030A000C1011091C2012091C3013091C401DC0122
+:1030B000CB01802B912BA22BB32B8093C10190933A
+:1030C000C201A093C301B093C4011F910F910C944E
+:1030D0006F140F931F930091C1011091C2012091B1
+:1030E000C3013091C401DC01CB0180239123A223D1
+:1030F000B3238093C1019093C201A093C301B09305
+:10310000C4011F910F910C946F140F931F930091A2
+:10311000C1011091C2012091C3013091C401DC01B1
+:10312000CB0180279127A227B3278093C1019093D9
+:10313000C201A093C301B093C4011F910F910C94DD
+:103140006F141092BD011092BE011092BF01109237
+:10315000C0010C946F1441E050E060E070E004C0E6
+:10316000440F551F661F771F8A95D2F74093BD0104
+:103170005093BE016093BF017093C0010C946F1413
+:1031800041E050E060E070E004C0440F551F661F4E
+:10319000771F8A95D2F78091BD019091BE01A091D1
+:1031A000BF01B091C001482B592B6A2B7B2B409358
+:1031B000BD015093BE016093BF017093C0010C9498
+:1031C0006F1441E050E060E070E004C0440F551F10
+:1031D000661F771F8A95D2F7409550956095709538
+:1031E0008091BD019091BE01A091BF01B091C0013D
+:1031F000482359236A237B234093BD015093BE018A
+:103200006093BF017093C0010C946F1441E050E0D3
+:1032100060E070E004C0440F551F661F771F8A9559
+:10322000D2F78091BD019091BE01A091BF01B091F4
+:10323000C001482759276A277B274093BD01509337
+:10324000BE016093BF017093C0010C946F140F9383
+:103250001F930091BD011091BE012091BF013091DB
+:10326000C001DC01CB01802B912BA22BB32B8093CF
+:10327000BD019093BE01A093BF01B093C0011F9107
+:103280000F910C946F140F931F930091BD01109137
+:10329000BE012091BF013091C001DC01CB01802330
+:1032A0009123A223B3238093BD019093BE01A093E9
+:1032B000BF01B093C0011F910F910C946F140F9335
+:1032C0001F930091BD011091BE012091BF0130916B
+:1032D000C001DC01CB0180279127A227B32780936F
+:1032E000BD019093BE01A093BF01B093C0011F9197
+:1032F0000F910C946F140895CF92DF92EF92FF928A
+:103300000F931F93CF93DF938C01C090C101D09096
+:10331000C201E090C301F090C4018091BD01909181
+:10332000BE01A091BF01B091C001C82AD92AEA2AE2
+:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520
+:10334000A795979587950A94D2F780FF06C0B80194
+:103350008C2F0E944808019721F4219760F780E0A4
+:1033600001C08C2FDF91CF911F910F91FF90EF90B3
+:10337000DF90CF900895CF93DF93EC010E947C19EA
+:10338000BE010E944808DF91CF910895CB010E94B1
+:10339000BB1908958091C5018595859585950895FA
+:1033A0008091C5018770089598E0899F900111244C
+:1033B000262B2093C5010C94C0182091C50180953F
+:1033C00082238093C501982F977069F430E0482FCD
+:1033D000552747FD50952417350729F08595859584
+:1033E00085950C94E11808959091C501977081E03E
+:1033F00009F480E0089590910C01992321F09091B7
+:103400000D01911109C020910E0130910F01F901B8
+:1034100032969FEF40E01FC0982F9695969596950F
+:103420009F3050F5E0910E01F0910F01E90FF11D71
+:10343000877021E030E0A90102C0440F551F8A9532
+:10344000E2F7CA019181892B818308959F3F39F06A
+:103450004F5F4E3041F051915813F8CF0DC05111CC
+:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08
+:1034700097FDFA9582830895089590910C01992300
+:1034800021F090910D01911109C020910E01309110
+:103490000F01F9013296205F3F4F1FC0982F96957C
+:1034A000969596959F30F0F4E0910E01F0910F0102
+:1034B000E90FF11D877021E030E0A90102C0440F3F
+:1034C000551F8A95E2F7CA018095918189238183EE
+:1034D00008953196E217F30729F090819813F9CFF8
+:1034E0001082F7CF089581E090E0E0910E01F09115
+:1034F0000F01E80FF91F1082019680319105A9F79D
+:1035000008959091D901892B8093D90108958095D0
+:103510009091D90189238093D90108951092D901FE
+:1035200008959091D801892B8093D80108958095B2
+:103530009091D80189238093D80108951092D801E1
+:1035400008959091D701892B8093D7010895809594
+:103550009091D70189238093D70108951092D701C4
+:1035600008958093C60108951092C6010895809130
+:103570000E0190910F01FC0131969C01205F3F4F9D
+:1035800080E0919191118F5FE217F307D1F70895D1
+:10359000E0910E01F0910F018091D9018083E091BB
+:1035A0000E01F0910F0190818091D801892B8083C9
+:1035B000E0910E01F0910F0190818091D701892B4C
+:1035C00080838091C601882361F0E0910E01F09123
+:1035D0000F019081892B80830E94B71A811110926C
+:1035E000C60180910E0190910F010C94F60F20E01E
+:1035F000009739F0AC0141505109842395232F5F86
+:10360000F7CF822F0895CF92DF92EF92FF926C0155
+:10361000EE24FF24C114D104E104F10421F0C70118
+:10362000B60120E101C020E0C72ED82EE92EFF24EC
+:10363000C114D104E104F10419F0285FC701B601F7
+:103640006B017C0154E0F694E794D794C7945A95A3
+:10365000D1F7C114D104E104F10419F02C5FC701C2
+:10366000B6016B017C0142E0F694E794D794C794CD
+:103670004A95D1F7C114D104E104F10419F02E5F89
+:10368000C701B601DC01CB01B695A7959795879543
+:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5
+:1036A000DF90CF9008958091F101843021F1109244
+:1036B000DB0120E488E190E00FB6F894A8958093B0
+:1036C00060000FBE2093600080E00E94E30883B793
+:1036D000817F846083BF83B7816083BF789488953E
+:1036E00083B78E7F83BF88E10FB6F8948093600024
+:1036F000109260000FBE0895089508950E947C1BEB
+:103700000E944B030E947D1B0E94400491E08111A6
+:1037100001C090E0892F08950E9483140E94EA0F4F
+:103720000C94E30882E084BD93E095BD9AEF97BDC9
+:1037300080936E0008952FB7F8948091DC019091EA
+:10374000DD01A091DE01B091DF012FBF0895CF927E
+:10375000DF92EF92FF920F931F932FB7F89440914F
+:10376000DC015091DD016091DE017091DF012FBF1E
+:103770006A017B01EE24FF248C0120E030E0C016BA
+:10378000D106E206F30610F4415051099A01281BB4
+:10379000390BC9011F910F91FF90EF90DF90CF90EF
+:1037A00008951F920F920FB60F9211248F939F933B
+:1037B000AF93BF938091DC019091DD01A091DE0178
+:1037C000B091DF010196A11DB11D8093DC019093A2
+:1037D000DD01A093DE01B093DF01BF91AF919F9116
+:1037E0008F910F900FBE0F901F9018950E94E70CBD
+:1037F000F8942FEF87EA91E6215080409040E1F75E
+:1038000000C0000087E090EBDC018093FB01909307
+:10381000FC01A093FD01B093FE019CE088E10FB68E
+:10382000F894A895809360000FBE90936000FFCF3E
+:10383000EF92FF920F931F93CF93DF93D82FCDE09A
+:103840008C2F0E94390405E010E0E82EF12CC7010E
+:10385000002E02C0959587950A94E2F780FF09C073
+:10386000602F7C2F80E00E94F305D81302C081E016
+:1038700006C00150110958F7C15010F780E0DF91E0
+:10388000CF911F910F91FF90EF900895CF93C82F84
+:103890008CE20E94181C882321F08C2FCF910C946D
+:1038A000181C80E0CF910895CF930E949B1D811139
+:1038B00002C00E94811DC5E6C15049F00E944B0321
+:1038C0008FE39CE90197F1F700C00000F5CF89E292
+:1038D0000E94461C811113C18AE20E94461C81117C
+:1038E0000E94811D85E00E94461C81110E94F61BEA
+:1038F0000E94A61D8093DA0187E00E94461C88235F
+:10390000A9F18BE10E94461C882351F08091DA01D5
+:1039100081FB222720F991E0922790FB81F90EC0CC
+:103920008EE00E94461C882361F08091DA0182FBC0
+:10393000222720F991E0922790FB82F98093DA0107
+:1039400015C080E10E94461C9091DA01882341F065
+:1039500093FB222720F981E0822780FB93F904C0A2
+:10396000892F809580FB90F99093DA018091DA019C
+:103970000E94AA1D0E94B81D8093FA0180EE0E9449
+:10398000461C882341F08091FA01982F909590FB76
+:1039900080F98093FA0189E30E94461C882359F03C
+:1039A0008091FA0181FB222720F991E0922790FB78
+:1039B00081F98093FA0182EE0E94461C882359F017
+:1039C0008091FA0182FB222720F991E0922790FB57
+:1039D00082F98093FA0186EE0E94461C882359F0F2
+:1039E0008091FA0183FB222720F991E0922790FB36
+:1039F00083F98093FA0183EE0E94461C882359F0D4
+:103A00008091FA0184FB222720F991E0922790FB14
+:103A100084F98093FA0185E30E94461C882359F0BB
+:103A20008091FA0185FB222720F991E0922790FBF3
+:103A300085F98093FA0181E30E94461C882359F09E
+:103A40008091FA0186FB222720F991E0922790FBD2
+:103A500086F98093FA0181E10E94461C882359F07F
+:103A60008091FA0187FB222720F991E0922790FBB1
+:103A700087F98093FA018091FA010E94BC1D809120
+:103A8000FA0187FB882780F980930D0187E20E9465
+:103A9000461CC82F8EE10E94461C8111C2608FE136
+:103AA0000E94461C8111C46080E20E94461C811164
+:103AB000C86081E20E94461C8111C06182E20E94BE
+:103AC000461C8111C06283E20E94461C8111C064C1
+:103AD00084E20E94461C882311F0C06802C0CC23F7
+:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4
+:103AF000682F70E080E090E0CF910C944318CF9154
+:103B000008956DEE7EEF80E090E00E94ED2360E08E
+:103B100082E090E00E94DB2360E083E090E00E947E
+:103B2000DB2360E084E090E00E94DB2360E085E03E
+:103B300090E00C94DB2380E090E00E94D52321E00C
+:103B40008D3E9E4F09F020E0822F089582E090E0A4
+:103B50000C94CD23682F82E090E00C94DB2383E06B
+:103B600090E00C94CD23682F83E090E00C94DB234D
+:103B700084E090E00C94CD23682F84E090E00C94D6
+:103B8000DB238091E20180FF0BC06091130185E08F
+:103B9000689FB001112475956795759567952BC041
+:103BA00081FF09C06091130185E0689FB001112475
+:103BB0007595679520C082FF07C06091130185E06D
+:103BC000689FB001112417C09091E3019923D1F0AF
+:103BD00060911201961788F72091130185E0289FC4
+:103BE00090011124929FA001939F500D112470E029
+:103BF000CA010E949F236038710540F46115710568
+:103C000039F002C065E070E0862F08958FE70895CF
+:103C100081E008958091E20180FF08C06091110168
+:103C200070E0759567957595679521C081FF06C011
+:103C30006091110170E07595679519C082FF04C00D
+:103C40006091110170E010C09091E3019923C1F0DF
+:103C5000609110019617A0F780911101899FC00112
+:103C6000112470E00E949F236038710528F46115CB
+:103C7000710521F0862F08958FE7089581E008955A
+:103C800061E070E0F4CF803F21F40E94C11D819576
+:103C900004C0813F29F40E94C11D8093E60108956C
+:103CA000823F21F40E94C11D819504C0833F29F405
+:103CB0000E94C11D8093E5010895893F19F40E9477
+:103CC0000A1E05C08A3F31F40E940A1E8195809326
+:103CD000E70108958B3F21F40E940A1E819504C0DC
+:103CE0008C3F29F40E940A1E8093E8010895843FC6
+:103CF00021F48091E401816017C0853F21F4809117
+:103D0000E401826011C0863F21F48091E401846067
+:103D10000BC0873F21F48091E401886005C0883F93
+:103D200031F48091E40180618093E40108958D3F36
+:103D300021F48091E20181600BC08E3F21F48091DB
+:103D4000E201826005C08F3F29F48091E201846026
+:103D50008093E2010895803F39F48091E60187FF66
+:103D60006CC01092E60169C0813F29F48091E601A0
+:103D70001816BCF362C09091E501823F29F497FFC9
+:103D80005CC01092E50159C0833F19F41916CCF3B9
+:103D900054C0893F41F48091E70118160CF04DC0E2
+:103DA0001092E7014AC08A3F29F48091E70187FF1A
+:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6
+:103DC0001092E8013AC08C3F29F48091E80118165E
+:103DD000BCF333C0843F21F48091E4018E7F17C08F
+:103DE000853F21F48091E4018D7F11C0863F21F44D
+:103DF0008091E4018B7F0BC0873F21F48091E40127
+:103E0000877F05C0883F31F48091E4018F7E8093E5
+:103E1000E40113C08D3F21F48091E2018E7F0BC03D
+:103E20008E3F21F48091E2018D7F05C08F3F29F400
+:103E30008091E2018B7F8093E2018091E501811105
+:103E40000EC08091E60181110AC08091E7018111C5
+:103E500006C08091E801811102C01092E30108952B
+:103E600084EE91E00E9401100E949B1B9093E1015F
+:103E70008093E00108951F93CF93DF938091E00139
+:103E80009091E1010E94A71BAC019091E30199235D
+:103E900021F02091140130E006C0209115018AE044
+:103EA000289F900111244217530708F486C080917F
+:103EB000E501C091E601D091E7011091E80181117F
+:103EC00007C0C11176C0D11174C0111172C075C084
+:103ED0009F3F19F09F5F9093E301181624F40E940E
+:103EE000C11D8093E5018091E50187FF05C00E9417
+:103EF000C11D81958093E5011C1624F40E94C11D0B
+:103F00008093E6018091E60187FF05C00E94C11DF4
+:103F100081958093E6016091E501662339F1C091B6
+:103F2000E601CC2319F1772767FD7095872F972F2E
+:103F30000E94B02223E333E343E35FE30E941423B0
+:103F40000E947D226093E5016C2F772767FD7095B5
+:103F5000872F972F0E94B02223E333E343E35FE3ED
+:103F60000E9414230E947D226093E6011D1624F412
+:103F70000E940A1E8093E7018091E70187FF05C038
+:103F80000E940A1E81958093E701111624F40E9475
+:103F90000A1E8093E8018091E80187FF05C00E9416
+:103FA0000A1E81958093E801DF91CF911F910C94B7
+:103FB000301F9F3F09F08ECF96CFDF91CF911F9199
+:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE
+:103FD0001092E3011092E2010895833081F128F4F8
+:103FE000813059F08230D1F00895853009F449C00C
+:103FF000B8F1863009F456C0089580911501262F36
+:1040000030E0280F311D2F3F310524F4680F6093F5
+:10401000150108958FEF8093150108958091140183
+:10402000262F30E0280F311D2F3F310524F4680F73
+:104030006093140108958FEF809314010895809187
+:104040001301262F30E0280F311D2F3F310524F4B6
+:10405000680F6093130108958FEF80931301089503
+:1040600080911201262F30E0280F311D2F3F31059E
+:1040700024F4680F6093120108958FEF809312016A
+:10408000089580911101262F30E0280F311D2F3F18
+:10409000310524F4680F6093110108958FEF809328
+:1040A0001101089580911001262F30E0280F311D55
+:1040B0002F3F310524F4680F6093100108958FEFAE
+:1040C000809310010895833011F128F4813049F074
+:1040D000823091F00895853081F120F18630C1F170
+:1040E000089580911501681720F4861B80931501AF
+:1040F000089510921501089580911401681720F415
+:10410000861B8093140108951092140108958091E4
+:104110001301681720F4861B8093130108951092F1
+:104120001301089580911201681720F4861B809373
+:1041300012010895109212010895809111016817DB
+:1041400020F4861B809311010895109211010895A7
+:1041500080911001681720F4861B80931001089548
+:104160001092100108950F931F938D3109F46BC0C5
+:1041700008F03FC08E3009F47FC0C0F4873009F4E6
+:1041800069C068F4863009F0B1C08091DA01817F9E
+:104190008E7F8093DA0181E08093EA01A8C08830A5
+:1041A00009F4A2C08B3009F49FC0A0C0863109F485
+:1041B0009BC078F4803109F472C0813109F096C057
+:1041C0000E94831490910D0181E0892780930D0155
+:1041D0008BC0893109F488C08B3109F087C0809188
+:1041E000DA0181FB222720F991E0922790FB81F9E7
+:1041F0004CC0853309F470C048F4873209F46CC0B0
+:1042000008F459C0893209F467C070C0833438F4A7
+:104210008A3308F04EC0883309F466C067C083341F
+:1042200009F45AC0883409F061C00E9483140FEF6A
+:1042300013ED20E3015010402040E1F700C00000E2
+:104240000E94F61B51C00E9437220E94EA0F0E9472
+:10425000E3084AC09091DA01892F8095817080FB34
+:1042600090F929F0966098609093DA0140C0997FA8
+:10427000977F9093DA0138C08091DA0182FB222780
+:1042800020F991E0922790FB82F98093DA0199233B
+:1042900059F18091DA0181608093DA0125C0809123
+:1042A000DA0183FB222720F991E0922790FB83F922
+:1042B000ECCF895301C08D5141E050E060E070E0E7
+:1042C0008A019B0104C0000F111F221F331F8A9512
+:1042D000D2F7C901B80104C061E070E080E090E06D
+:1042E0000E9443180E94831481E001C080E01F9166
+:1042F0000F91089580E0089580E00895CF93C82F2E
+:104300008091EA01813079F018F08230E9F187C0BC
+:10431000E0910E01F0910F018081813169F08232CC
+:1043200009F07FC009C0E0910E01F0910F0180817A
+:10433000813111F0823261F48C2F0E947A21811137
+:1043400004C08C2F0E94B3201DC081E090E01AC0F1
+:104350008C2F0E947C21811114C0C43179F048F463
+:10436000CB3079F0C03109F060C082E08093EA017F
+:1043700008C0C93219F0C83321F057C01092EA01C1
+:1043800054C081E0817053C0C93289F118F5C4313D
+:1043900071F1A8F4C73009F046C08AE08093150196
+:1043A00094E19093140193E0909313018093120190
+:1043B00088E08093110188E28093100134C0CE51CF
+:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB
+:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC
+:1043E00013C0C13579F0C235F1F461E00DC08091A0
+:1043F000E901882319F01092E90115C081E080934A
+:10440000EA0115C061E006C08091E9010E94ED1F3C
+:104410000AC06AE08091E9010E94632004C0109202
+:10442000EA0180E004C081E002C080E0ABCFCF9120
+:104430000895E1E8F0E08081886080838081816078
+:1044400080838FB7F89493E09093890090ED9093D8
+:1044500088008FBF0895EFE6F0E08081826080835E
+:104460000895EFE6F0E080818D7F80830895EFE688
+:10447000F0E0908182E08927808308951F920F9257
+:104480000FB60F9211242F933F934F935F936F9327
+:104490007F938F939F93AF93BF93EF93FF938091FD
+:1044A000EB019091EC0101969093EC018093EB016C
+:1044B000811103C082E00E94E308E091EC01E695DF
+:1044C000E695F0E0EC54FB4FE4918091EB018E1304
+:1044D00003C080E00E94E308FF91EF91BF91AF918C
+:1044E0009F918F917F916F915F914F913F912F910C
+:1044F0000F900FBE0F901F90189504D06894B111C3
+:104500008DC0089570D088F09F5790F0B92F9927EB
+:10451000B751A0F0D1F0660F771F881F991F1AF0CE
+:10452000BA95C9F712C0B13081F077D0B1E00895E3
+:1045300074C0672F782F8827B85F39F0B93FCCF364
+:10454000869577956795B395D9F73EF490958095C4
+:10455000709561957F4F8F4F9F4F0895E89409C0E4
+:1045600097FB3EF490958095709561957F4F8F4FA6
+:104570009F4F9923A9F0F92F96E9BB279395F695BC
+:10458000879577956795B795F111F8CFFAF4BB0F3A
+:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E
+:1045A000882311F096E911C0772321F09EE8872F28
+:1045B000762F05C0662371F096E8862F70E060E0E4
+:1045C0002AF09A95660F771F881FDAF7880F96955D
+:1045D000879597F9089557FD9058440F551F59F046
+:1045E0005F3F71F04795880F97FB991F61F09F3FE0
+:1045F00079F087950895121613061406551FF2CF09
+:104600004695F1DF08C0161617061806991FF1CF58
+:1046100086957105610508940895E894BB2766277F
+:104620007727CB0197F908950BD078C069D028F08F
+:104630006ED018F0952309F05AC05FC01124EECF58
+:10464000CADFA0F3959FD1F3950F50E0551F629FED
+:10465000F001729FBB27F00DB11D639FAA27F00DDB
+:10466000B11DAA1F649F6627B00DA11D661F829F02
+:104670002227B00DA11D621F739FB00DA11D621FE7
+:10468000839FA00D611D221F749F3327A00D611D04
+:10469000231F849F600D211D822F762F6A2F1124E6
+:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39
+:1046B000BB1F661F771F881F91505040A9F79E3F70
+:1046C000510570F014C0AACF5F3FECF3983EDCF3C5
+:1046D000869577956795B795F795E7959F5FC1F7AD
+:1046E000FE2B880F911D9695879597F9089597F958
+:1046F0009F6780E870E060E008959FEF80EC089588
+:1047000000240A94161617061806090608950024B0
+:104710000A9412161306140605060895092E03942A
+:10472000000C11F4882352F0BB0F40F4BF2B11F49E
+:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF
+:10474000072E16F4009407D077FD09D00E94B923F4
+:1047500007FC05D03EF4909581959F4F0895709584
+:1047600061957F4F0895EE0FFF1F0590F491E02DA6
+:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8
+:10478000B70710F0A61BB70B881F991F5A95A9F7FA
+:1047900080959095BC01CD010895F999FECF92BD09
+:1047A00081BDF89A992780B50895A8E1B0E042E06C
+:1047B00050E00C94F523262FF999FECF92BD81BDD0
+:1047C000F89A019700B4021639F01FBA20BD0FB64F
+:1047D000F894FA9AF99A0FBE08950196272F0E942D
+:1047E000DC230C94DB23DC01CB01FC01F999FECF27
+:1047F00006C0F2BDE1BDF89A319600B40D92415069
+:0A4800005040B8F70895F894FFCF78
+:10480A000220E508730950091C09E8080101C701DB
+:10481A0028080A03140A3F4D363975042804F2039E
+:10482A00B9034C0365037E039703010203040506DB
+:04483A000708090062
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/naps62/keymap.c b/keyboards/ergodox_ez/keymaps/naps62/keymap.c new file mode 100644 index 000000000..d8c28423c --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/naps62/keymap.c @@ -0,0 +1,187 @@ +#include "ergodox_ez.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 % | Lang | | Esc | 6 ^ | 7 & | 8 * | 9 ( | 0 ) | Bckspc | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | L2 | | L2 | Y | U | I | O | P | \ | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Ctrl | A | S | D | F | G |------| |------| H | J | K | L | ; : | ' " | + * |--------+------+------+------+------+------| L1 | | L1 |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , < | . > | / ? | - _ | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | L1 | ` ~ | ' " | \ | | L2 | | { | } | [ { | ] } | L1 | + * `----------------------------------' `----------------------------------' + * ,--------------. ,---------------. + * | Home | End | | PgUp |Insert | + * ,------|-------|------| |-------+-------+------. + * | | | LGui | | Del | | | + * | Space| Alt |------| |-------| Enter |Space | + * | | | LGui | | Bcsp | | | + * `---------------------' `----------------------' + */ +// 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, LGUI(KC_SPC), + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(2), + KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, MO(1), + MO(1), KC_GRV, KC_QUOT, KC_BSLS, MO(2), + + KC_HOME, KC_END, + KC_LGUI, + KC_SPC, KC_LALT, KC_LGUI, + + // right hand + KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + MO(2), 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(1), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_MINS, + KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, MO(1), + + KC_PGUP, KC_INS, + KC_DEL, + KC_BSPC, KC_ENT, KC_SPC +), +/* 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_EQL,KC_DOT, KC_0, KC_MINS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | |GuiUp | Expl | | Term | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | |GuiLft|GuiDwn|GuiRgt| | |------| |------| Left | Down | Up |Right | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | |Browsr| | | | |VolDwn|VolUp | Mute | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | | Play | Prev | Next | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | |Brwser|Brwser| + * | Lclk | Rclk |------| |------|Fwd |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +KEYMAP( + RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, LGUI(KC_W), LGUI(KC_E), KC_BTN1, LGUI(KC_T), KC_TRNS, + KC_TRNS, LGUI(KC_A), LGUI(KC_S), LGUI(KC_D), 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_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_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, + KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_WBAK, KC_WFWD +), +}; + +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_ez/keymaps/ordinary/compiled.hex b/keyboards/ergodox_ez/keymaps/ordinary/compiled.hex new file mode 100644 index 000000000..501f14f9f --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/ordinary/compiled.hex @@ -0,0 +1,1182 @@ +:100000000C94ED020C9431030C9431030C943103E5
+:100010000C9431030C9431030C9431030C94310390
+:100020000C9431030C9431030C94C10F0C94931075
+:100030000C9431030C9431030C9431030C94310370
+:100040000C9431030C94FD220C9431030C94310375
+:100050000C9431030C94DF1D0C9431030C94310388
+:100060000C9431030C9431030C9431030C94310340
+:100070000C9431030C9431030C9431030C94310330
+:100080000C9431030C9431030C9431030C94310320
+:100090000C9431030C9431030C9431030C94310310
+:1000A0000C9431030C9431030C943103AB05DF0540
+:1000B00004064206AB05E8052606500605070507B7
+:1000C000D406DC06E406F2060011221110122211F9
+:1000D000101267118A111012DF11F211C114C1142C
+:1000E000F014F01426154615771677165115771665
+:1000F0000116011668167716771671160E160E166B
+:100100000E160E160E160E160E160E160E160E16CF
+:100110000E160E160E160E160E160E1620162D168E
+:1001200034163B16451600000000000000000000D9
+:10013000000000000000000000000AC80BC80CC846
+:100140000DC80EC80FC810C811C80D200C200B30E8
+:100150000A30E00000001E00140004001D0000072B
+:100160004E001F001A0016001B00000F4C0020005C
+:10017000080007000600E2002A002100150009001F
+:100180001900E3004B00220017000A0005000000E0
+:100190004A0029002F0000002B0200004D002D0016
+:1001A000300000002B000000500023001C000B005A
+:1001B000110000004F00240018000D001000E7009F
+:1001C000520025000C000E003600E6002C00260030
+:1001D00012000F003700000F280027001300330023
+:1001E000380000075100112010200F200E30E400CD
+:1001F00000000100010001000100E00000003A00E1
+:100200001E0220022202000751003B001F022102B1
+:100210002302000F28003C002F0226022F00E200DC
+:100220002C003D00300227023000E30052003E0067
+:10023000240235003502000050002900360200007B
+:100240002B0000004F002D00370200002B020000A1
+:100250004A003F0031023800310000004D004000EC
+:10026000240021001E0027684B00410025002200C9
+:100270001F0037644C0042002600230020002E6F30
+:100280002A004300380025022D002E674E00010091
+:1002900001000100010028610000010001000100CF
+:1002A0000100E000000044006600A6000000000716
+:1002B000B50045001430F2001630F600000068006A
+:1002C000F000F100F100F400B60069001530F30011
+:1002D0001730F500B4006A00A900AA00A8000000C9
+:1002E000B8002900F9000000FA000000B900000081
+:1002F000F9000000FA000000AC006B00460053005B
+:1003000000000000AB006C004A0050004D0049683E
+:10031000A9006D005200510051004C64AE006E0007
+:100320004B004F004E00000FAD006F00B100B30056
+:1003300000000007AA000100010001000100E40024
+:10034000000001000100010001000100000029007F
+:100350000100010001000100010001000100010095
+:100360000100010001000100010001000100010085
+:100370000100010001000100010001000100010075
+:100380000100010001000000010001000100000067
+:100390000100000001000100010000000100000058
+:1003A0000100010001000100010000000100010046
+:1003B0000100010001000100010001000100010035
+:1003C0000100010001000100010001000100010025
+:1003D00001002A00010001000100010001000100EC
+:1003E00001000100E5000100000016034500720055
+:1003F00067006F0044006F007800200045005A003D
+:10040000000016034500720067006F0044006F0093
+:100410007800200045005A00000004030904090286
+:100420006D00040100A0FA090400000103010100AD
+:100430000921110100012240000705810308000A7B
+:100440000904010001030102000921110100012238
+:100450004D000705820308000A0904020001030099
+:10046000000009211101000122360007058303085D
+:10047000000A090403000103000000092111010022
+:100480000122390007058403100001120110010048
+:10049000000008EDFE07130100010200010501093B
+:1004A00006A101050719E029E71500250195087542
+:1004B000018102050819012905950575019102952B
+:1004C000017503910105071900297715002501958C
+:1004D0007875018102C005010980A101850216011C
+:1004E0000026B7001A01002AB70075109501810097
+:1004F000C0050C0901A1018503160100269C021A02
+:1005000001002A9C02751095018100C005010902B5
+:10051000A1010901A10005091901290515002501FD
+:100520009505750181029501750381010501093069
+:1005300009311581257F95027508810609381581D5
+:10054000257F950175088106050C0A38021581255D
+:100550007F950175088106C0C005010906A1010546
+:100560000719E029E7150025019508750181029515
+:100570000175088101050819012905950575019185
+:10058000029501750391010507190029FF15002641
+:10059000FF00950675088100C00000000000000003
+:1005A00000000000010204060A0F17202C3A4A5DE1
+:1005B00071879DB3C7DAE9F5FCFFFCF5E9DAC7B34B
+:1005C0009D87715D4A3A2C20170F0A06040201002C
+:1005D0000000000000000000000011241FBECFEF4B
+:1005E000DAE0DEBFCDBF04B603FE24C08091050271
+:1005F00090910602A0910702B09108028730904BBB
+:10060000A740B04BB9F41092050210920602109266
+:1006100007021092080214BE84B7877F84BF88E166
+:100620000FB6F89480936000109260000FBEE0E077
+:10063000FFE3099511E0A0E0B1E0E8E8F9E402C0C9
+:1006400005900D92A433B107D9F712E0A4E3B1E00D
+:1006500001C01D92A530B107E1F70E94090D0C946D
+:10066000C2240C9400001092B9008AE08093B80074
+:10067000089594EA9093BC009091BC0097FFFCCF42
+:100680009091B900987F983021F0903111F081E07D
+:1006900008958093BB0084E88093BC008091BC00E7
+:1006A00087FFFCCF8091B900887F883111F08034BA
+:1006B00071F780E0089584E98093BC008091BC00CC
+:1006C00084FDFCCF08958093BB0084E88093BC0038
+:1006D0008091BC0087FFFCCF9091B900987F81E0AA
+:1006E000983209F480E0089584E88093BC008091FA
+:1006F000BC0087FFFCCF8091BB00089580B38C7055
+:1007000080BB81B3836F81BB08958091010181110A
+:1007100015C080E40E9439038093010181110CC04F
+:1007200082E10E94630380930101811105C08FEF74
+:100730000E946303809301010E945B0384B1807F68
+:1007400084B985B1807F85B98AB1837F8AB98BB13D
+:10075000837F8BB93E98469808950E944F058093F9
+:1007600001010E9485030E947E03A5E3B1E0E3E45A
+:10077000F1E08EE08E0F11921D928E13FCCF0C943F
+:1007800039050E944F05809301010E9485030E9454
+:100790007E03A5E3B1E0E3E4F1E08EE08E0F119279
+:1007A0001D928E13FCCF0895BF92CF92DF92EF92ED
+:1007B000FF920F931F93CF93DF93809101018823C2
+:1007C00079F0809134018F5F80933401811108C0EA
+:1007D0000E944F0580930101811102C00E94E10433
+:1007E00005E311E0C0E0D0E0DD24D39482E0C82E20
+:1007F000EE24E394F12CC730D10500F5809101017E
+:10080000811164C080E40E94390380930101811149
+:1008100012C082E10E9463038093010181110BC029
+:10082000C7010C2E01C0880F0A94EAF780950E9438
+:100830006303809301010E945B0348C0CA30A1F0AA
+:1008400028F4C83059F0C93061F005C0CC3089F0C7
+:1008500070F0CD3089F0209A289810C0219A2998FC
+:100860000DC0229A2A980AC0239A2B9807C0529A40
+:1008700001C0539A5B9802C03E9A469890EA9A95B6
+:10088000F1F79FB1799902C082E001C080E09170D8
+:100890009D25982B7C9902C084E001C080E0892BC3
+:1008A0007D9902C038E001C030E0832B7E9902C000
+:1008B00020E101C020E0822B9FB19095991F9927DC
+:1008C000991F9295990F907E892B0FC080910101FD
+:1008D000811149C080E40E9439038093010188237B
+:1008E00079F1B12C0E945B038B2DF8019081981750
+:1008F00019F08083C09200010E94850321960F5F4A
+:100900001F4FCE30D10509F076CF809100018823AA
+:1009100061F1815080930001882339F08FE99FE0D5
+:100920000197F1F700C0000020C0A3E4B1E0E5E3C7
+:10093000F1E0CF01825F91919D938E13FCCF15C0A2
+:1009400083E10E946303809301018111CACF81E496
+:100950000E943903809301018111C3CF0E94740367
+:10096000B82EB094BFCF80E0C0CF0E94DF0481E0FA
+:10097000DF91CF911F910F91FF90EF90DF90CF907B
+:10098000BF900895E82FF0E0ED5BFE4F8081089561
+:1009900008950F931F93CF93DF93C3E4D1E010E04A
+:1009A0000C2F025F899190E00E94561D180F0C13C6
+:1009B000F9CF812FDF91CF911F910F9108950C9462
+:1009C000090756985E9825982D9826982E9827986E
+:1009D0002F988FEF90E090938900809388009093F8
+:1009E0008B0080938A0090938D0080938C00259AD1
+:1009F0002D9A2FEF80E792E0215080409040E1F760
+:100A000000C00000269A2E9A2FEF80E792E0215036
+:100A100080409040E1F700C00000279A2F9A2FEF06
+:100A200080E792E0215080409040E1F700C0000054
+:100A300025982D982FEF80E792E02150804090403C
+:100A4000E1F700C0000026982E982FEF80E792E093
+:100A5000215080409040E1F700C0000027982F9877
+:100A600056985E9825982D9826982E9827982F9816
+:100A7000089589EA8093800089E08093810024981A
+:100A80002C983F988AB18F748AB96E98479A8BB127
+:100A9000806B8BB9769A0E94E1040C94080780E27F
+:100AA000809301018091510181110EC00E94330396
+:100AB00081E0809351012FEF83ED90E3215080403E
+:100AC0009040E1F700C0000080E40E943903809369
+:100AD000010181112EC00E946303809301018111E5
+:100AE00028C00E94630380930101811122C08FE31B
+:100AF0000E9463038093010181111BC00E945B036C
+:100B000080E40E94390380930101811112C08CE0BE
+:100B10000E9463038093010181110BC00E94630353
+:100B200080930101811105C08FE30E9463038093CC
+:100B300001010E945B03809101010895462F50E05E
+:100B4000FA013A97EE30F10508F05FC1DC01EA5A8C
+:100B5000FF4F0C94722412962C9112978091580199
+:100B6000909159012223F9F015962C91207FD9F408
+:100B700001968330910510F082E090E09093590146
+:100B800080935801809158019091590182309105CC
+:100B900029F489E30E94651389E30EC0019709F0E7
+:100BA00034C181EEFAC001979093590180935801A6
+:100BB000892B09F02AC181EE0E942D1426C11296BC
+:100BC0002C918091560190915701222379F090C089
+:100BD00012963C91129715962C9180915601909106
+:100BE0005701207F31117AC009F09FC0019790937F
+:100BF000570180935601892B09F007C18091530159
+:100C0000811103C181E067C012963C91129715963D
+:100C10002C918091540190915501207F332361F0F4
+:100C2000222309F491C0009709F08EC0209152014F
+:100C300021118AC08BE2B1C02223B1F00097A1F448
+:100C400020915201211110C08BE2B6CF12963C9137
+:100C5000129715962C918091540190915501207F07
+:100C6000311168C009F08DC00197909355018093B0
+:100C70005401892B09F0C9C0809152018111C5C06E
+:100C800082E029C012969C91129715968C91992317
+:100C9000B1F0982F907F79F080FD0DC085E37DC085
+:100CA00012969C91129715968C91992379F0982F12
+:100CB000907F09F06FC083E00E941F1BA6C0982F91
+:100CC000907F41F080FD06C085E376CF982F907F1E
+:100CD00009F066C083E00E94401B97C0222341F0C8
+:100CE000009731F420915301211102C084E355C0D3
+:100CF00001968330910510F082E090E090935701C7
+:100D00008093560180915601909157018230910550
+:100D100029F0019709F079C081E0CECF909153017D
+:100D200081E089278093530170C0009709F05ECF5E
+:100D300084E342CF222341F0009731F42091520105
+:100D4000211102C081E329C001968330910510F082
+:100D500082E090E09093550180935401809154017A
+:100D6000909155018230910529F0019709F04DC00D
+:100D700082E0A2CF9091520181E0892780935201B5
+:100D800044C0009709F070CF2091520121116CCF1F
+:100D900081E312CF80FD8FCF8EE20E94651335C0B4
+:100DA00080FD98CF8EE208CF12968C91882311F0A7
+:100DB00080EF0FC080EF12C012968C91882311F043
+:100DC00080EF15C080EF1AC012968C91882329F00D
+:100DD00081EF0E94FC1E82EF0DC081EF0E94641F14
+:100DE00082EF0FC012968C91882339F081EF0E9418
+:100DF000FC1E83EF0E94FC1E06C081EF0E94641F50
+:100E000083EF0E94641F0E94E91F80E090E0089534
+:100E100008958091580190915901892B19F0259AD4
+:100E20002D9A0DC0E0910E01F0910F01808185FD9A
+:100E3000F6CF0E94491281FDF2CF25982D9880911E
+:100E4000C60181FF03C0269A2E9A02C026982E98CA
+:100E50008091C60182FF03C0279A2F9A0895279890
+:100E60002F98089581E0089581E008950C94340747
+:100E70000895282F882339F090E02A3010F44D96F9
+:100E800008950697089587E290E00895AF92BF9283
+:100E9000DF92EF92FF920F931F93CF93DF938C011A
+:100EA000FC01C081D181CE010E94DB1BBE010E94EA
+:100EB000B60AEC01B8010E943607882309F4C9C1BB
+:100EC000F8018281882309F4BEC0809166018111F6
+:100ED0001FC0C431F0E7DF0709F0B5C10E94380731
+:100EE00081E0809366010E94A91D90936501809323
+:100EF000640110925D0110925F0110925E011092E8
+:100F00006101109260011092630110926201A1C10F
+:100F100080916401909165010E94B51D883C910506
+:100F200070F480915D01E82FF0E0EE0FFF1FE25AB0
+:100F3000FE4FD183C0838F5F80935D018AC1C13032
+:100F400020E8D20708F451C0F8018281882309F40F
+:100F50007EC05E01E894B7F880915C01813079F041
+:100F600050F08230C1F482EE0E94651387E50E9442
+:100F7000651387E50EC082EE0E9465130CC080EEFB
+:100F80000E94651381EE0E94651388E10E9465133B
+:100F900088E10E942D148CE0E82EF12CC5010E2C66
+:100FA00002C0969587950A94E2F78F700E943907E0
+:100FB000D82E0E9465138D2D0E942D14F4E0EF1A97
+:100FC000F1082CEFE2162FEFF20641F780915C0159
+:100FD000813029F010F0823041F482EE04C080EEBE
+:100FE0000E942D1481EE0E942D14C43180E7D80791
+:100FF00068F4C23090E7D90708F046C0C115E0E7B1
+:10100000DE0771F0C130D047A1F10CC1C33320E736
+:10101000D20709F4D8C0C433D04709F4EBC002C1E9
+:10102000F8018281882309F402C10E94E216FFEFD1
+:1010300024E38CE0F15020408040E1F700C0000044
+:101040000E94041E06C1C13080E8D80770F2C43186
+:1010500020E7D20708F0B3C0C23080E7D807A0F479
+:10106000C11590E7D90709F4E2C0C130D04709F0B3
+:10107000D9C0F8018281882309F4D9C08091E301A5
+:1010800081608093E301E5C0F8018281882309F43F
+:10109000CEC00E945E1E811102C00E94441E0E94AA
+:1010A000711E90E09093F7018093F601C230F0E753
+:1010B000DF0721F48091F60181607AC0C33020E718
+:1010C000D20721F48091F601826072C0C43080E7BB
+:1010D000D80721F48091F60184606AC0C53090E79A
+:1010E000D90719F48091F60127C0C630E0E7DE0782
+:1010F00021F48091F60180615BC0C730F0E7DF0723
+:1011000021F48091F601806253C0C83020E7D207F5
+:1011100021F48091F60180644BC0C93080E7D80784
+:1011200021F48091F601806843C0CA3090E7D90766
+:1011300029F48091F601846088603AC0CB30E0E702
+:10114000DE0721F48091F6018E7F32C0CC30F0E7CB
+:10115000DF0721F48091F6018D7F2AC0CD3020E792
+:10116000D20721F48091F6018B7F22C0CE3080E738
+:10117000D80719F48091F6011AC08091F601CF309A
+:1011800090E7D90711F48F7E13C0C031E0E7DE0786
+:1011900011F48F7D0DC0C131F0E7DF0711F48F7BB3
+:1011A00007C0C231D04711F48F7702C08B7F877F91
+:1011B0008093F6018091F6010E94751E4AC0C333E8
+:1011C000F0E7DF07A1F4F8018281882321F0109273
+:1011D0005A0182E016C080915A01811106C086E250
+:1011E0000E94651386E20E942D1482E018C0C43369
+:1011F000D047C1F4F8018281882331F010925B015D
+:1012000080E20E947C1425C080915B01811106C0A0
+:1012100087E20E94651387E20E942D1480E20E94FB
+:10122000831417C081E080935A0180935B01C80149
+:10123000DF91CF911F910F91FF90EF90DF90BF90C2
+:10124000AF900C943207C130F0E8DF0708F081CE90
+:10125000CCCE80E0DF91CF911F910F91FF90EF9066
+:10126000DF90BF90AF90089526E0729FF0011124A7
+:1012700044E5849FE00DF11D1124E60FF11DEE0FF2
+:10128000FF1FE65BFE4F859194910E94C80A81156D
+:1012900060E49607B0F5811570E3970708F0DEC0AB
+:1012A000803E9105D8F4803C910508F06CC0883AE6
+:1012B000910578F4853A910508F06BC0813091056D
+:1012C00009F452C108F40FC18430910508F04CC1F3
+:1012D0000AC18B3B910508F467C005C18F3F91059A
+:1012E00009F048F4803F910508F0ADC0883E9105B3
+:1012F00008F43AC1F8C0811520E2920708F0A5C0B1
+:101300000895811543E5940790F4811562E59607E9
+:1013100008F0C8C0811571E5970708F0BEC08115B7
+:1013200020E5920708F09DC09F70906A089581158E
+:1013300045E59407D8F4811564E5960708F0C8C020
+:10134000482F4695469570E2479FA001112483706F
+:10135000992721E030E0B90102C0660F771F8A9516
+:10136000E2F7CB01842B952B9A680895811576E5D9
+:10137000970708F4B2C09C0130562115304108F09F
+:10138000B2C09F70AEC0FC01EE0FFF1FEA55F040E7
+:1013900062C0853A910509F4A9C0863A910509F021
+:1013A000A8C082E890E40895883A910509F4A4C0A1
+:1013B000893A910509F4A3C08A3A910509F4A2C0BB
+:1013C0008B3A910509F4A1C08C3A910509F4A0C0AB
+:1013D0008D3A910509F49FC0803B910509F49EC0A8
+:1013E0008E3A910509F49DC08F3A910509F49CC08D
+:1013F000813B910509F49BC0823B910509F49AC099
+:10140000833B910509F499C0843B910509F498C088
+:10141000853B910509F497C0863B910509F496C078
+:10142000873B910509F495C0883B910509F494C068
+:10143000893B910509F493C08A3B910509F492C058
+:1014400080E094E4089590650895FC01FF70EE0F2C
+:10145000FF1FEA5DFE4F8591949108959927906C46
+:101460000895482F437021E030E002C0220F331F5F
+:101470004A95E2F73C68AC0164E0569547956A9559
+:10148000E1F74370342B8F708695869560E2869FD6
+:10149000C0011124822B932B0895982F8827816FE8
+:1014A000906A0895482F4695469570E2479FA0019F
+:1014B00011248370992721E030E0B90102C0660F42
+:1014C000771F8A95E2F7CB01842B952B9C680895B2
+:1014D000982F8827846F906A08958F719927982F85
+:1014E00088279062089580E090E0089581E890E474
+:1014F000089583E890E4089582EE94E4089589EED7
+:1015000094E408958AEE94E4089585EB94E40895B4
+:1015100086EB94E4089587EB94E408958CEC94E4CE
+:1015200008958DEC94E4089583E895E408958AE89D
+:1015300095E4089582E995E4089584E995E4089591
+:1015400081E296E4089583E296E4089584E296E4C5
+:10155000089585E296E4089586E296E4089587E288
+:1015600096E408958AE296E40895089596E0799FB6
+:10157000F001112494E5899FE00DF11D1124E60F7F
+:10158000F11DEE0FFF1FE65BFE4F859194910895CC
+:101590008238910549F1B0F48133910509F458C0BE
+:1015A00048F48932910509F44EC08A32910509F454
+:1015B00054C008958533910509F440C089339105DD
+:1015C00099F00895833E910529F138F4803E910504
+:1015D00091F0823E9105A1F00895863E9105F9F0C3
+:1015E000873E910531F108952091F60120FD3AC022
+:1015F00021FD38C008958091F60180FD35C032C0CC
+:101600008091F60182FF32C08091F60184FD30C0E6
+:1016100083EE39C08091F60182FD28C0F5CF80911C
+:10162000F60183FF27C08091F60184FD21C087EE7B
+:101630002AC08091F60183FD1DC0F5CF8091F6018F
+:1016400085FD1AC01BC08091F60185FD17C014C02E
+:101650008091F60186FD14C015C08091F60186FDCB
+:1016600011C00EC080EE0FC089E30DC082EE0BC02A
+:1016700080E009C086EE07C089E205C085E303C0AB
+:101680008AE201C081E390E0089508950C94450B2F
+:10169000809177010895CF93DF9300D01F92CDB74B
+:1016A000DEB79C018091FC01843019F593E09983A9
+:1016B0003B832A839093E9008FEF9091E80081505B
+:1016C00095FD06C095ED9A95F1F700008111F5CFD3
+:1016D0008091E80085FF0DC040E050E063E070E0DD
+:1016E000CE0101960E94B10D8091E8008E77809323
+:1016F000E8000F900F900F90DF91CF910895CF9356
+:10170000DF9300D01F92CDB7DEB72091FC012430CB
+:1017100021F522E029839B838A8383E08093E9007B
+:101720008FEF9091E800815095FD06C095ED9A9558
+:10173000F1F700008111F5CF8091E80085FF0DC021
+:1017400040E050E063E070E0CE0101960E94B10DF0
+:101750008091E8008E778093E8000F900F900F90B3
+:10176000DF91CF9108952091FC012430F1F422E023
+:101770002093E9002FEF3091E800215035FD06C09D
+:1017800035ED3A95F1F700002111F5CF2091E800F1
+:1017900025FF0BC040E050E065E070E00E94B10D15
+:1017A0008091E8008E778093E8000895CF93DF93CF
+:1017B000EC019091FC01943009F046C080910C013D
+:1017C0008823D9F080910D018823B9F09093E90026
+:1017D0008FEF9091E800815095FD06C095E19A95B4
+:1017E000F1F700008111F5CF8091E80085FF2CC052
+:1017F00040E050E060E170E017C081E08093E900D4
+:101800008FEF9091E800815095FD06C095ED9A9577
+:10181000F1F700008111F5CF8091E80085FF14C039
+:1018200040E050E068E070E0CE010E94B10D809190
+:10183000E8008E778093E80080E1FE01A7E6B1E042
+:1018400001900D928A95E1F7DF91CF9108958091F3
+:10185000FB01811109C00E94460F0E94A30F8091D5
+:10186000E20084608093E20008951092FB010895E5
+:1018700008950C94EA220E949A1D0E94F0220E9470
+:1018800049120C94460B42E061EC81E00E94C00ECC
+:1018900042E061EC82E00E94C00E42E061EC83E035
+:1018A0000E94C00E42E161EC84E00C94C00E809175
+:1018B000FE01833009F455C030F4813071F082307C
+:1018C00009F48EC008958A3009F47AC08B3009F487
+:1018D00060C0893009F09CC020C08091FD01813A30
+:1018E00009F096C08091E800877F8093E80080919E
+:1018F000010290910202892B21F460E187E691E0D8
+:1019000003C060E080E090E070E00E94FC0D8091F8
+:10191000E8008B778093E80008958091FD01813283
+:1019200009F076C08091010290910202009719F0AF
+:10193000039709F06DC08091E800877F8093E800ED
+:101940008091E80082FD05C08091FC018111F8CFF3
+:101950005FC08091F100809377018091E8008B77E0
+:1019600053C08091FD01813A09F052C0809101027B
+:1019700090910202892B09F04BC08091E800877F8B
+:101980008093E8008091E80080FFFCCF80910C01FB
+:1019900036C08091FD018132D9F58091010290918C
+:1019A0000202892BA9F58091E800877F8093E800E7
+:1019B0000E94F50E8091FF0180930C010C94E216B9
+:1019C0008091FD01813221F58091E800877F80932D
+:1019D000E8000E94F50E809100028093780108953E
+:1019E0008091FD01813AA1F48091E800877F809386
+:1019F000E8008091E80080FFFCCF8091780180931F
+:101A0000F1008091E8008E778093E8000C94F50E49
+:101A1000089584B7877F84BF88E10FB6F8948093D8
+:101A20006000109260000FBE80E880936100109209
+:101A300061000E9498120E94460F0E94A30F80919D
+:101A4000E20084608093E20078940E9429120E9450
+:101A50009A1282E091E00E9444120E94D822809162
+:101A6000FC01853069F40E94621D8091FA0188238F
+:101A7000B1F30E948C1D882391F30E949B0DEFCF40
+:101A80000E94A012ECCF292F332723303105C9F053
+:101A900064F42130310581F02230310509F043C072
+:101AA0008DE690E02EE134E042C021323105F1F0C4
+:101AB0002232310541F137C082E190E02BE834E079
+:101AC00036C099278130910541F08230910541F06F
+:101AD000892B49F5EAE1F4E005C0E2E0F4E002C058
+:101AE000EAEEF3E0849190E09F0121C06430D8F4E5
+:101AF000E62FF0E0EE0FFF1FEE5DFE4F20813181FB
+:101B000089E090E014C0643070F470E0FB01EE0FE7
+:101B1000FF1FE65EFE4F20813181FB01EA5EFE4F32
+:101B2000808190E004C080E090E020E030E0FA01A5
+:101B300031832083089580E189BD82E189BD09B4A4
+:101B400000FEFDCF8091D8008F7D8093D8008091DA
+:101B5000E00082608093E0008091E00081FDFCCF96
+:101B60000895CF92DF92EF92FF920F931F93CF933E
+:101B7000DF93EC018B016A010E94140F811133C0C5
+:101B8000C114D10439F0F60180819181081B190B31
+:101B9000C80FD91FE12CF12C0115110519F1809105
+:101BA000E80085FD16C08091E8008E778093E800FC
+:101BB000C114D10449F0F60180819181E80EF91E2B
+:101BC000F182E08285E00FC00E94140F882321F388
+:101BD0000AC089918093F10001501109FFEFEF1ABB
+:101BE000FF0ADACF80E0DF91CF911F910F91FF9034
+:101BF000EF90DF90CF90089520910302309104027E
+:101C00002617370748F06115710539F42091E8006F
+:101C10002E772093E80001C0B90140E061157105FD
+:101C2000A9F12091FC01222309F443C0253009F4D5
+:101C300042C02091E80023FD40C02091E80022FD31
+:101C400032C02091E80020FFE9CF4091F3002091BD
+:101C5000F20030E0342BFC01CF016115710559F021
+:101C60002830310540F481918093F1006150710971
+:101C70002F5F3F4FF1CF41E02830310509F040E0C0
+:101C80002091E8002E772093E800C8CF4111C9CFFA
+:101C90000AC08091FC01882361F0853061F0809159
+:101CA000E80083FD0AC08091E80082FFF2CF80E067
+:101CB000089582E0089583E0089581E008952091D9
+:101CC0000302309104022617370748F061157105A9
+:101CD00039F42091E8002E772093E80001C0B90183
+:101CE000FC0120E06115710591F18091FC018823D0
+:101CF00009F440C0853009F43FC08091E80083FDBD
+:101D00003DC08091E80082FD2FC08091E80080FFF7
+:101D1000E9CF2091F3008091F20090E0922B6115C1
+:101D2000710559F08830910540F424912093F10019
+:101D30003196615071090196F2CF21E0089709F0C0
+:101D400020E08091E8008E778093E800CBCF2111CE
+:101D5000CCCF0AC08091FC01882361F0853061F00E
+:101D60008091E80083FD0AC08091E80082FFF2CFF5
+:101D700080E0089582E0089583E0089581E0089569
+:101D8000982F973058F59093E900981739F0709193
+:101D9000EC002091ED005091F00003C0242F762F2D
+:101DA00050E021FF19C03091EB003E7F3093EB00F3
+:101DB0003091ED003D7F3093ED003091EB003160CC
+:101DC0003093EB007093EC002093ED005093F00003
+:101DD0002091EE0027FF07C09F5FD3CF8F708093C5
+:101DE000E90081E0089580E008958091FD0187FF7A
+:101DF00011C08091E80082FD05C08091FC01811135
+:101E0000F8CF11C08091E8008B770BC08091FC0166
+:101E1000882349F08091E80080FFF8CF8091E800A6
+:101E20008E778093E80008952091E4003091E500DA
+:101E300095E64091EC00842F817040FF22C0809194
+:101E4000E80080FD1CC08091FC01882391F0853062
+:101E500091F08091EB0085FD10C04091E40050911D
+:101E6000E5004217530729F39A01915011F784E0D6
+:101E7000089582E0089583E0089581E0089580E068
+:101E800008954091E80042FFDECF08950E94B40F0C
+:101E90000E94BC0FE0EEF0E0808181608083E8ED7D
+:101EA000F0E080818F77808319BCA7EDB0E08C9142
+:101EB0008E7F8C9380818F7E80831092FB010895AA
+:101EC0000F931F93CF93DF930E94B40F0E94BC0F18
+:101ED000C8EDD0E088818F77888388818068888387
+:101EE00088818F7D888319BC1092FC011092F801C3
+:101EF0001092FA011092F90100EE10E0F8018081D1
+:101F00008B7F808388818160888342E060E080E00D
+:101F10000E94C00EE1EEF0E080818E7F8083E2EED1
+:101F2000F0E0808181608083808188608083F80117
+:101F300080818E7F8083888180618883DF91CF91CB
+:101F40001F910F910895E8EDF0E080818F7E8083EE
+:101F5000E7EDF0E080818160808384E082BF81E0F2
+:101F60008093FB010C94600FE8EDF0E080818E7FA0
+:101F700080831092E20008951092DA001092E1003E
+:101F800008951F920F920FB60F9211242F933F9333
+:101F90004F935F936F937F938F939F93AF93BF9371
+:101FA000EF93FF938091E10082FF0BC08091E200EC
+:101FB00082FF07C08091E1008B7F8093E1000E9447
+:101FC00028128091DA0080FF1FC08091D80080FF26
+:101FD0001BC08091DA008E7F8093DA008091D90057
+:101FE00080FF0DC080E189BD82E189BD09B400FE9A
+:101FF000FDCF81E08093FC010E94270C05C019BC35
+:102000001092FC010E94350C8091E10080FF19C004
+:102010008091E20080FF15C08091E2008E7F809366
+:10202000E2008091E20080618093E2008091D8001C
+:1020300080628093D80019BC85E08093FC010E94E7
+:10204000390C8091E10084FF30C08091E20084FF70
+:102050002CC080E189BD82E189BD09B400FEFDCFBD
+:102060008091D8008F7D8093D8008091E1008F7E91
+:102070008093E1008091E2008F7E8093E200809166
+:10208000E20081608093E2008091F801882311F0E2
+:1020900084E007C08091E30087FD02C081E001C0B9
+:1020A00083E08093FC010E943B0C8091E10083FF60
+:1020B00029C08091E20083FF25C08091E100877FE5
+:1020C0008093E10082E08093FC011092F8018091FE
+:1020D000E1008E7F8093E1008091E2008E7F80930B
+:1020E000E2008091E20080618093E20042E060E0E3
+:1020F00080E00E94C00E8091F00088608093F00024
+:102100000E94380CFF91EF91BF91AF919F918F91F9
+:102110007F916F915F914F913F912F910F900FBEE3
+:102120000F901F9018951F920F920FB60F921124C7
+:102130002F933F934F935F936F937F938F939F93CF
+:10214000AF93BF93CF93DF93EF93FF93C091E900D9
+:10215000CF708091EC00D82FD17080FDD0E8109224
+:10216000E9008091F000877F8093F00078940E94CE
+:10217000D7101092E9008091F00088608093F00001
+:10218000CD2BCF70C093E900FF91EF91DF91CF91FC
+:10219000BF91AF919F918F917F916F915F914F917F
+:1021A0003F912F910F900FBE0F901F9018951F9386
+:1021B000CF93DF93CDB7DEB7AA970FB6F894DEBF03
+:1021C0000FBECDBFEDEFF1E088E08E0F9091F100F2
+:1021D00091938E13FBCF0E94570C8091E80083FFF0
+:1021E0001FC18091FD019091FE01492F50E04A30BE
+:1021F000510508F015C1FA01EC59FF4F0C947224F7
+:10220000803881F0823809F00BC1809101028F7013
+:102210008093E9008091EB0085FB882780F910927C
+:10222000E90006C08091F9019091FA019111826054
+:102230009091E800977F9093E8008093F1001092CE
+:10224000F100C8C0282F2D7F09F0EAC0882319F0BB
+:10225000823061F0E5C08091FF01813009F0E0C07B
+:10226000933009F080E08093FA012BC08091FF0148
+:10227000811127C0809101028F7009F4D1C0809331
+:10228000E9002091EB0020FF1CC0933021F48091E5
+:10229000EB00806214C09091EB0090619093EB0092
+:1022A00021E030E0A90102C0440F551F8A95E2F7F2
+:1022B0004093EA001092EA008091EB0088608093DE
+:1022C000EB001092E9008091E800877F86C08111C1
+:1022D000A7C01091FF011F778091E3008078812BC8
+:1022E0008093E3008091E800877F8093E8000E945C
+:1022F000F50E8091E80080FFFCCF8091E3008068BC
+:102300008093E300111102C082E001C083E080935A
+:10231000FC0186C08058823008F082C08091FF01A5
+:10232000909100028C3D53E0950779F583E08A8314
+:102330008AE289834FB7F894DE01139620E03EE0ED
+:1023400051E2E32FF0E050935700E49120FF03C0E7
+:10235000E295EF703F5FEF708E2F90E0EA3010F063
+:10236000C79601C0C0968D939D932F5F243149F786
+:102370004FBF8091E800877F8093E8006AE270E0B9
+:10238000CE0101960E94FC0D14C0AE014F5F5F4F5D
+:10239000609101020E94430DBC01009709F440C006
+:1023A0009091E800977F9093E80089819A810E943C
+:1023B0005F0E8091E8008B778093E80031C0803811
+:1023C00079F58091E800877F8093E8008091F8019B
+:1023D0008093F1008091E8008E778093E8000E945E
+:1023E000F50E1EC081111CC09091FF019230C0F407
+:1023F0008091E800877F8093E8009093F8010E9425
+:10240000F50E8091F801811106C08091E30087FDEF
+:1024100002C081E001C084E08093FC010E94430C73
+:102420008091E80083FF0AC08091E800877F809355
+:10243000E8008091EB0080628093EB00AA960FB6D3
+:10244000F894DEBF0FBECDBFDF91CF911F910895ED
+:102450000895CF938091FC018823A1F0C091E900F9
+:10246000CF709091EC00892F817090FD80E8C82B8F
+:102470001092E9008091E80083FD0E94D710CF7090
+:10248000C093E900CF91089590937E0180937D01E0
+:102490000895E0917D01F0917E01309721F0019047
+:1024A000F081E02D099480E00895E0917D01F091A4
+:1024B0007E01309721F00280F381E02D0994089588
+:1024C000E0917D01F0917E01309721F00480F5814B
+:1024D000E02D0994089520917B0130917C018217B1
+:1024E000930771F090937C0180937B01E0917D01D3
+:1024F000F0917E01309721F00680F781E02D09945C
+:1025000008952091790130917A018217930771F033
+:1025100090937A0180937901E0917D01F0917E01A1
+:10252000309721F00084F185E02D099408950895F5
+:102530000C9497120E94A01D0E94AD030C94261EBD
+:102540009F92AF92BF92CF92DF92EF92FF920F9342
+:102550001F93CF93DF9300D000D000D0CDB7DEB76C
+:102560000E94D4030DE010E0AA24A394B12C902E75
+:10257000802F0E94C204980120583E4F6901F90142
+:10258000F080F826A1F40150110988F78FEF8983B4
+:102590008A831B820E94A91D8160782F9D838C8372
+:1025A00049815A816B818D810E9437132FC0909190
+:1025B000E30191FF04C08E830E94C8048E8125E050
+:1025C00030E0A501022E01C0440F0A94EAF7E42E80
+:1025D0004F21C1F029839A828E2191E009F490E085
+:1025E0009B830E94A91D8160782F9D838C834981E4
+:1025F0005A816B818D810E943713F6018081E82614
+:10260000E08204C021503109E0F6BDCF0E94F41FE2
+:1026100010917F010E9449121817B9F00E944912C7
+:1026200080937F0126960FB6F894DEBF0FBECDBF14
+:10263000DF91CF911F910F91FF90EF90DF90CF909E
+:10264000BF90AF909F900C94460B26960FB6F894CF
+:10265000DEBF0FBECDBFDF91CF911F910F91FF90D5
+:10266000EF90DF90CF90BF90AF909F900895CF9361
+:10267000DF93CDB7DEB72B970FB6F894DEBF0FBE52
+:10268000CDBF4F83588769877A878B87DE01119684
+:1026900086E0FD0111928A95E9F785E0FE01379603
+:1026A00001900D928A95E1F749815A816B817C8175
+:1026B0008D819E810E9480192B960FB6F894DEBF03
+:1026C0000FBECDBFDF91CF910895CF93882309F43A
+:1026D000C2C0C82F823859F40E94491281FDBBC084
+:1026E00089E30E945A1C0E94271D89E30CC083388D
+:1026F00079F40E94491280FDAEC083E50E945A1C05
+:102700000E94271D83E50E949C1CCF910C94271DDD
+:10271000843859F40E94491282FD9DC087E40E94CA
+:102720005A1C0E94271D87E4EECF8CEF8C0F813A54
+:1027300048F48C2F0E943E2281118DC08C2F0E9464
+:102740005A1CE3CF80E28C0F883048F4C77081E0D8
+:1027500001C0880FCA95EAF70E94E01CD6CF8BE52E
+:102760008C0F833078F4C53A29F0C63A31F083E80B
+:1027700090E005C081E890E002C082E890E0CF914F
+:102780000C946B1288E58C0F833108F064C0C83A52
+:1027900039F1C93A41F1CA3A49F1CB3A51F1CC3A4F
+:1027A00059F1CD3A61F1C03B69F1CE3A71F1CF3ABE
+:1027B00079F1C13B81F1C23B89F1C33B91F1C43B4B
+:1027C00099F1C53BA1F1C63BA9F1C73BB1F1C83BAB
+:1027D000B9F1C93BC1F1CA3BC9F180E090E038C012
+:1027E00082EE90E035C089EE90E032C08AEE90E053
+:1027F0002FC085EB90E02CC086EB90E029C087EBE2
+:1028000090E026C08CEC90E023C08DEC90E020C0DE
+:1028100083E891E01DC08AE891E01AC082E991E066
+:1028200017C084E991E014C081E292E011C083E214
+:1028300092E00EC084E292E00BC085E292E008C014
+:1028400086E292E005C087E292E002C08AE292E06E
+:10285000CF910C948112CF910895882309F44BC035
+:10286000823859F40E94491281FF45C089E30E94D1
+:102870005A1C0E94271D89E30CC0833871F40E9402
+:10288000491280FF38C083E50E945A1C0E94271D10
+:1028900083E50E949C1C0C94271D843859F40E94E7
+:1028A000491282FF28C087E40E945A1C0E94271DFB
+:1028B00087E4EFCF9CEF980F913A58F390E2980F8E
+:1028C000983050F4877091E001C0990F8A95EAF72B
+:1028D000892F0E94E61CDFCF9BE5980F933020F4F0
+:1028E00080E090E00C946B12885A833120F480E0F1
+:1028F00090E00C9481120895882321F00E94E01C3E
+:102900000C94271D0895882321F00E94E61C0C9446
+:10291000271D08957F928F929F92AF92BF92CF9280
+:10292000DF92EF92FF920F931F93CF93DF931F924B
+:10293000CDB7DEB77C01C62E772EFC01058102954E
+:102940000F70128111110E94FD1C0E94531C8823DC
+:1029500079F0112369F080E28C0D883048F082E034
+:102960000E943C1C0E94531C91E0D82ED92601C025
+:10297000D12CE72DE295EF70F0E0E259FF4F0C9477
+:102980007224872D807F072D0F70882311F0029508
+:10299000007F112389F0002309F490C180E28C0D9F
+:1029A000883020F4802F0E94E01C03C0802F0E94FA
+:1029B000F01C0E94271D82C18C2D0E942D14002323
+:1029C00009F495C180E28C0D883020F4802F0E949C
+:1029D000E61C03C0802F0E94F61C0E94271D87C1A1
+:1029E000972D907F872D8F70903211F08295807F88
+:1029F000CC2021F0F1E0CF16B1F01EC0112349F038
+:102A0000002309F414C1013009F011C10E94101D06
+:102A10006EC1002319F0013009F469C189830E9455
+:102A2000131D89810AC1112321F0023008F05FC112
+:102A3000FEC001115CC101C1112321F0002309F482
+:102A4000F6C03CC1002309F4F8C03EC1872D86952D
+:102A50008695837090E0009719F0019761F047C167
+:102A6000112321F08C2D972D937002C080E090E00F
+:102A70000E946B123CC1112321F08C2D972D937075
+:102A800002C080E090E00E94811231C18C2D1123A0
+:102A900019F00E94FC1E02C00E94641F0E94E91FE0
+:102AA00026C1872D837009F052C0111120C18C2DD1
+:102AB000829586958770880F880F9C2D9F70892E30
+:102AC000912CA12CB12C082E04C0880C991CAA1C96
+:102AD000BB1C0A94D2F7C4FE14C00FE010E020E043
+:102AE00030E0B901A80104C0440F551F661F771FCD
+:102AF0008A95D2F7CB01BA01609570958095909533
+:102B000003C060E070E0CB01272D26952695237049
+:102B100030E02230310569F02330310589F0682931
+:102B200079298A299B292130310571F00E94C81A20
+:102B3000DEC0682979298A299B290E94E41AD7C016
+:102B40000E94C81AC501B4010E94AC1AD0C011235A
+:102B500019F0872D817001C08695882309F4C7C0BC
+:102B60008C2D829586958770880F880F9C2D9F707D
+:102B7000892E912CA12CB12C082E04C0880C991CF4
+:102B8000AA1CBB1C0A94D2F7C4FE14C00FE010E0CC
+:102B900020E030E0B901A80104C0440F551F661FB2
+:102BA000771F8A95D2F7CB01BA0160957095809511
+:102BB000909503C060E070E0CB01272D2695269507
+:102BC0002370422F50E04230510569F043305105E7
+:102BD00089F0682979298A299B294130510571F0AA
+:102BE0000E94A21B84C0682979298A299B290E94F6
+:102BF000BE1B7DC00E94A21BC501B4010E94861BA2
+:102C000076C08C2D90E0FC01E05EF109E531F10524
+:102C100008F050C0E258FF4F0C9472240C2D0F7036
+:102C2000872D8F71112331F00E941F1B802F0E946E
+:102C30007C145DC00E94401B802F0E94831457C0EB
+:102C4000112339F0011153C0872D8F710E94651B2C
+:102C50004EC0023008F04BC0F7CF112339F0872D5A
+:102C60008F710E941F1B43C01123C9F3872D8F71E1
+:102C70000E94401B3CC0112329F0872D8F710E94B8
+:102C80000A1B35C00E94001B32C0112351F0172DC2
+:102C90001F71812F0E941F1B63E0812F0E94331C34
+:102CA00026C081E00E943C1C023008F182E00E94B4
+:102CB0003C1C1DC0112331F0002389F28C2D0E9491
+:102CC000651315C0002391F28C2D0E942D140FC0A6
+:102CD000472D4F706C2DC7010E949E050E94241A3B
+:102CE00006C0472D4F706C2DC7010E94B50ADD202C
+:102CF000F9F00E942F1C80FD1BC0F70112820E9478
+:102D0000291C0E941F1BC7010E94A7160E94291C94
+:102D10000F90DF91CF911F910F91FF90EF90DF9077
+:102D2000CF90BF90AF909F908F907F900C94401B5E
+:102D30000F90DF91CF911F910F91FF90EF90DF9057
+:102D4000CF90BF90AF909F908F907F9008950F93FA
+:102D50001F93CF93DF93EC01888199812B813C8174
+:102D6000232BB9F09F3F11F48F3F99F0CE010E94C1
+:102D70004607882371F0688179818A810E94251C29
+:102D80008C010E94DA1B0E94A11AB801CE010E9498
+:102D90008A14DF91CF911F910F9108950E94FD1C1D
+:102DA0000E940D1D0E94D21C0E94271D0E949A2085
+:102DB0000E94E91F80E090E00E946B1280E090E0AA
+:102DC0000C9481120E94ED1C0C94CE160E941A1CC9
+:102DD000292F22952F7030E02C3031054CF42A3009
+:102DE00031056CF42250310922303105A8F407C0B6
+:102DF0002C30310569F02F30310551F00DC0803F86
+:102E000069F018F4803E40F409C0843F29F406C0FC
+:102E100093FB882780F9089580E0089581E0089564
+:102E2000CF93DF9300D000D01F92CDB7DEB70F90C5
+:102E30000F900F900F900F90DF91CF910895CF9347
+:102E4000DF9300D000D000D0CDB7DEB726960FB606
+:102E5000F894DEBF0FBECDBFDF91CF9108951F93D1
+:102E6000CF93DF93C0918E0116E080918F01C81738
+:102E700099F0D0E01C9FF0011D9FF00D1124E05748
+:102E8000FE4F4081518162817381848195810E94CE
+:102E90001F172196C770E9CFDF91CF911F91089539
+:102EA0004091C0015091C1016091C2017091C30174
+:102EB0008091C4019091C5010C941F178091C501A8
+:102EC00082958F7009F054C08091C201882309F463
+:102ED0004FC080918E01A0918F016091C0017091CF
+:102EE000C1014091C3015091C401B6E08A1709F4B1
+:102EF0003FC090E041155105C1F17F3F11F46F3F94
+:102F0000A1F1B89FF001B99FF00D1124E057FE4FD9
+:102F1000218172132AC02081621327C022812111CE
+:102F200024C0238134812417350710F4215031093E
+:102F3000241B350B283C3105C0F42091C5012F70AE
+:102F400020612093C50126E0289FF001299FF00D04
+:102F50001124EB56FE4F80818F708061808380EC5E
+:102F600091E00E94A7160C942F1701968770BECF90
+:102F70000895CF92DF92EF92FF920F931F93CF931A
+:102F8000DF93CDB7DEB762970FB6F894DEBF0FBE02
+:102F9000CDBF8C0185E0F801DE011D9601900D92F8
+:102FA0008A95E1F7D8014C9111965C911197129690
+:102FB0006C9112971396CD90DC9014973091C001CC
+:102FC0007091C1018091C3019091C401009709F4EF
+:102FD0006BC17F3F19F43F3F09F466C1E090C20125
+:102FE000EE2009F4C0C02091C501C816D90628F00A
+:102FF000F601E81BF90BCF0104C0809590958C0D6C
+:103000009D1DFF24F394883C910578F0F12C207FDE
+:1030100009F0C6C07C2DD98AC88A89890E941017F8
+:1030200080EC91E00E94A716B1C0822F807F09F04A
+:1030300046C0751314C0341312C0611110C02F7034
+:1030400020612093C5010E94501780EC91E00E94FE
+:10305000A7168091C501D80115968C932EC0CD2856
+:1030600019F15F3F11F44F3FF9F0F62E61111CC0CA
+:1030700080918E0120918F0136E0821709F45AC0A9
+:1030800090E0389FF001399FF00D1124E057FE4F7A
+:103090007181571306C07081471303C0728171118B
+:1030A00003C001968770E9CFF62E662309F418C194
+:1030B0008091C50181608093C501F12C11C1751308
+:1030C00008C0341306C0611104C08091C501D80145
+:1030D000C3C04D875E878D859E856A8B0E94E616EC
+:1030E0006A898823E1F16623D1F12091C501822FFD
+:1030F00082958F7090E0029774F08091C00190915A
+:10310000C10198878F831986DB86CA862C87CE01FA
+:1031100007960E94A71686E0F801A0ECB1E00190A6
+:103120000D928A95E1F70E945E170E945017FF24C6
+:10313000F394D6C04D875E878D859E850E941A1CAC
+:10314000292F22952F7030E0223031050CF0BCC0C1
+:103150009F7009F0B6C0805E883008F4C1C0C80115
+:103160000E94A716E4CFC816D90608F453C0F6018A
+:10317000E81BF90BCF01883C910508F450C0F12CF5
+:103180007C2DD98AC88A89890E941017E0ECF1E069
+:1031900086E0DF011D928A95E9F70E945017A0C0D2
+:1031A000751314C0341312C0611110C08091C50191
+:1031B000F8018583C8010E94A71686E0E0ECF1E0E3
+:1031C000DF011D928A95E9F7FE2C8AC04D875E8744
+:1031D0008D859E856A8B0E94E6166A89882309F48C
+:1031E000BECF662309F4BBCF2091C501822F829503
+:1031F0008F7090E002970CF48ECF8091C001909177
+:10320000C1019A8389831B82DD82CC822E83CE0109
+:1032100001967FCF809590958C0D9D1DACCFF62E9D
+:10322000662309F49CCF75132EC034132CC0209153
+:10323000C50120FD1FC0822F82958F70D9F0D80163
+:1032400015962C9315978F3049F08F5F982F929594
+:10325000907F822F8F70892B15968C93C8010E94C6
+:10326000A71686E0F801A0ECB1E001900D928A95D6
+:10327000E1F793CF86E0F801A0ECB1E001900D9268
+:103280008A95E1F72DC04D875E878D859E850E94CA
+:10329000E616811140CF8091C50181608093C50100
+:1032A000C8010E94A7161CC0662309F458CF4D8799
+:1032B0005E878D859E850E94E616882309F44FCF90
+:1032C0002ACF811148CF0CC0243031050CF047CFF4
+:1032D0009F7009F440CFF8019581907F09F03BCFB2
+:1032E0008F2D62960FB6F894DEBF0FBECDBFDF9173
+:1032F000CF911F910F91FF90EF90DF90CF900895A5
+:103300001F93CF93DF93CDB7DEB72C970FB6F8940A
+:10331000DEBF0FBECDBF4F83588769877A878B8703
+:103320009C87CE0107960E94B917882369F08F8188
+:1033300098852A853B85232BF1F19F3F09F063C0D7
+:103340008F3F09F060C037C086E0FE013796DE018E
+:10335000119601900D928A95E1F76F817885EA8543
+:10336000FB85309741F17F3F11F46F3F21F12091B0
+:103370008F0130E0C90101968770992740918E0135
+:1033800050E08417950709F447C069837A83FD8369
+:10339000EC8396E0929FD001939FB00D1124A0572B
+:1033A000BE4FFE01319601900D929A95E1F7809300
+:1033B0008F010E942F1716E080918E0190918F014E
+:1033C0008917C1F1189FC001112480579E4F0E9498
+:1033D000B917882379F1E0918E011E9FF001112425
+:1033E000E057FE4F408151816281738184819581D4
+:1033F0000E941F1780918E0190E001968770992797
+:1034000080938E01D9CF4F81588569857A858B85C8
+:103410009C850E941F17CFCF0E94E21610928F0149
+:1034200010928E01E0ECF1E086E0DF011D928A95BA
+:10343000E9F7C1CF2C960FB6F894DEBF0FBECDBF13
+:10344000DF91CF911F910895EF92FF920F931F93F9
+:10345000CF93DF938C01009709F46CC0F12CEE241C
+:10346000E394E8012196F8018491843740F4843094
+:1034700008F051C0813081F0823019F15BC085378E
+:1034800009F444C0A8F19CE7980F903708F052C0A7
+:103490008F770E942D1441C00E5F1F4FFE01C49113
+:1034A00080E28C0F883048F4C7708E2D01C0880FE1
+:1034B000CA95EAF70E94001D14C08C2F0E94651364
+:1034C0002DC00E5F1F4FFE01C49180E28C0F88302B
+:1034D00058F4C7708E2D01C0880FCA95EAF70E9474
+:1034E000061D0E94271D1AC08C2F0E942D1416C085
+:1034F0000E5F1F4FFE01C491CC2381F08FE99FE046
+:103500000197F1F700C00000C150F6CF0E5F1F4FCA
+:10351000FE01F49003C00E9465138E018F2D882355
+:1035200009F49FCFEFE9FFE03197F1F700C0000009
+:103530008150F5CFDF91CF911F910F91FF90EF90C8
+:10354000089508956093CA017093CB018093CC01D4
+:103550009093CD010C94CE160F931F930091CA0146
+:103560001091CB012091CC013091CD01DC01CB0138
+:10357000802B912BA22BB32B8093CA019093CB016C
+:10358000A093CC01B093CD011F910F910C94CE1656
+:103590000F931F930091CA011091CB012091CC0190
+:1035A0003091CD01DC01CB0180239123A223B323F1
+:1035B0008093CA019093CB01A093CC01B093CD012D
+:1035C0001F910F910C94CE160F931F930091CA0177
+:1035D0001091CB012091CC013091CD01DC01CB01C8
+:1035E00080279127A227B3278093CA019093CB010C
+:1035F000A093CC01B093CD011F910F910C94CE16E6
+:103600001092C6011092C7011092C8011092C90110
+:103610000C94CE1641E050E060E070E004C0440F2E
+:10362000551F661F771F8A95D2F74093C6015093A6
+:10363000C7016093C8017093C9010C94CE1641E094
+:1036400050E060E070E004C0440F551F661F771F14
+:103650008A95D2F78091C6019091C701A091C801C7
+:10366000B091C901482B592B6A2B7B2B4093C60183
+:103670005093C7016093C8017093C9010C94CE1692
+:1036800041E050E060E070E004C0440F551F661F49
+:10369000771F8A95D2F740955095609570958091E7
+:1036A000C6019091C701A091C801B091C9014823FA
+:1036B00059236A237B234093C6015093C70160932B
+:1036C000C8017093C9010C94CE1641E050E060E04F
+:1036D00070E004C0440F551F661F771F8A95D2F70C
+:1036E0008091C6019091C701A091C801B091C90114
+:1036F000482759276A277B274093C6015093C70163
+:103700006093C8017093C9010C94CE160F931F9358
+:103710000091C6011091C7012091C8013091C901E3
+:10372000DC01CB01802B912BA22BB32B8093C60104
+:103730009093C701A093C801B093C9011F910F9145
+:103740000C94CE160F931F930091C6011091C701E0
+:103750002091C8013091C901DC01CB018023912364
+:10376000A223B3238093C6019093C701A093C801FD
+:10377000B093C9011F910F910C94CE160F931F9314
+:103780000091C6011091C7012091C8013091C90173
+:10379000DC01CB0180279127A227B3278093C601A4
+:1037A0009093C701A093C801B093C9011F910F91D5
+:1037B0000C94CE160895CF92DF92EF92FF920F9362
+:1037C0001F93CF93DF938C01C090CA01D090CB019F
+:1037D000E090CC01F090CD018091C6019091C7019D
+:1037E000A091C801B091C901C82AD92AEA2AFB2AA6
+:1037F000CFE1D0E0D701C6010C2E04C0B695A79545
+:10380000979587950A94D2F780FF06C0B8018C2F50
+:103810000E943409019721F4219760F780E001C0EC
+:103820008C2FDF91CF911F910F91FF90EF90DF9040
+:10383000CF900895CF93DF93EC010E94DB1BBE0174
+:103840000E943409DF91CF910895CB010E941A1C88
+:1038500008958091CE0185958595859508958091EF
+:10386000CE018770089598E0899F90011124262B3E
+:103870002093CE010C941F1B2091CE0180958223B2
+:103880008093CE01982F977069F430E0482F552728
+:1038900047FD50952417350729F085958595859521
+:1038A0000C94401B08959091CE01977081E009F42B
+:1038B00080E0089590910C01992321F090910D01E1
+:1038C000911109C020910E0130910F01F90132963A
+:1038D0009FEF40E01FC0982F9695969596959F3044
+:1038E00050F5E0910E01F0910F01E90FF11D877085
+:1038F00021E030E0A90102C0440F551F8A95E2F78C
+:10390000CA019181892B818308959F3F39F04F5FD0
+:103910004E3041F051915813F8CF0DC05111F7CFEF
+:10392000942FF5CF9F3F39F0F901E90FF11D97FD75
+:10393000FA9582830895089590910C01992321F0BE
+:1039400090910D01911109C020910E0130910F014C
+:10395000F9013296205F3F4F1FC0982F969596959C
+:1039600096959F30F0F4E0910E01F0910F01E90F70
+:10397000F11D877021E030E0A90102C0440F551FFE
+:103980008A95E2F7CA018095918189238183089500
+:103990003196E217F30729F090819813F9CF10823E
+:1039A000F7CF089581E090E0E0910E01F0910F01D2
+:1039B000E80FF91F1082019680319105A9F708954B
+:1039C0009091E201892B8093E20108958095909176
+:1039D000E20189238093E20108951092E2010895A3
+:1039E0009091E101892B8093E10108958095909158
+:1039F000E10189238093E10108951092E101089586
+:103A00009091E001892B8093E00108958095909139
+:103A1000E00189238093E00108951092E001089568
+:103A20008093CF0108951092CF01089580910E01E7
+:103A300090910F01FC0131969C01205F3F4F80E087
+:103A4000919191118F5FE217F307D1F70895E091FB
+:103A50000E01F0910F018091E2018083E0910E014F
+:103A6000F0910F0190818091E101892B8083E09199
+:103A70000E01F0910F0190818091E001892B8083EC
+:103A80008091CF01882361F0E0910E01F0910F0148
+:103A90009081892B80830E94161D81111092CF0185
+:103AA00080910E0190910F010C94551220E0009727
+:103AB00039F0AC0141505109842395232F5FF7CF92
+:103AC000822F08958091FC01843021F11092E4014D
+:103AD00020E488E190E00FB6F894A8958093600008
+:103AE0000FBE2093600080E00E94460B83B7817F69
+:103AF000846083BF83B7816083BF7894889583B7E0
+:103B00008E7F83BF88E10FB6F89480936000109297
+:103B100060000FBE089508950E94C1030E94D4035F
+:103B20000E948B1D0E94C90491E0811101C090E0A8
+:103B3000892F08950E94E2160E9449120C94460BA8
+:103B400082E084BD93E095BD9AEF97BD80936E00AF
+:103B500008952FB7F8948091E5019091E601A09126
+:103B6000E701B091E8012FBF0895CF92DF92EF9265
+:103B7000FF920F931F932FB7F8944091E501509156
+:103B8000E6016091E7017091E8012FBF6A017B01B6
+:103B9000EE24FF248C0120E030E0C016D106E206BE
+:103BA000F30610F4415051099A01281B390BC90141
+:103BB0001F910F91FF90EF90DF90CF9008951F928B
+:103BC0000F920FB60F9211248F939F93AF93BF93D1
+:103BD0008091E5019091E601A091E701B091E801A3
+:103BE0000196A11DB11D8093E5019093E601A0937C
+:103BF000E701B093E801BF91AF919F918F910F9032
+:103C00000FBE0F901F9018950E94460FF8942FEF4B
+:103C100087EA91E6215080409040E1F700C0000023
+:103C200087E090EBDC018093050290930602A0935D
+:103C30000702B09308029CE088E10FB6F894A895BB
+:103C4000809360000FBE90936000FFCF0E945E1EC5
+:103C5000811102C00E94441E0E94691E8093E301EC
+:103C60000E94711E90E09093F7018093F60187FB0C
+:103C7000882780F980930D010E946D1E682F70E0E7
+:103C800080E090E00C94A21A6DEE7EEF80E090E070
+:103C90000E94AC2460E082E090E00E949A2460E000
+:103CA00083E090E00E949A2460E084E090E00E942B
+:103CB0009A2460E085E090E00C949A2480E090E003
+:103CC0000E94942421E08D3E9E4F09F020E0822F37
+:103CD000089582E090E00C948C2483E090E00C94B2
+:103CE0008C2484E090E00C948C24682F84E090E095
+:103CF0000C949A248091EB0180FF0BC0609113011A
+:103D000085E0689FB0011124759567957595679555
+:103D10002BC081FF09C06091130185E0689FB0014D
+:103D200011247595679520C082FF07C0609113012B
+:103D300085E0689FB001112417C09091EC01992390
+:103D4000D1F060911201961788F72091130185E058
+:103D5000289F90011124929FA001939F500D112440
+:103D600070E0CA010E945E246038710540F461155C
+:103D7000710539F002C065E070E0862F08958FE785
+:103D8000089581E008958091EB0180FF08C0609163
+:103D9000110170E0759567957595679521C081FF54
+:103DA00006C06091110170E07595679519C082FF9A
+:103DB00004C06091110170E010C09091EC01992352
+:103DC000C1F0609110019617A0F780911101899FB1
+:103DD000C001112470E00E945E246038710528F44F
+:103DE0006115710521F0862F08958FE7089581E010
+:103DF000089561E070E0F4CF803F21F40E947A1EC4
+:103E0000819504C0813F29F40E947A1E8093EF01BE
+:103E10000895823F21F40E947A1E819504C0833F59
+:103E200029F40E947A1E8093EE010895893F19F4C7
+:103E30000E94C31E05C08A3F31F40E94C31E8195B3
+:103E40008093F00108958B3F21F40E94C31E819559
+:103E500004C08C3F29F40E94C31E8093F101089591
+:103E6000843F21F48091ED01816017C0853F21F4EA
+:103E70008091ED01826011C0863F21F48091ED01B7
+:103E800084600BC0873F21F48091ED01886005C0FC
+:103E9000883F31F48091ED0180618093ED010895B8
+:103EA0008D3F21F48091EB0181600BC08E3F21F4A6
+:103EB0008091EB01826005C08F3F29F48091EB0176
+:103EC00084608093EB010895803F39F48091EF0185
+:103ED00087FF6CC01092EF0169C0813F29F4809187
+:103EE000EF011816BCF362C09091EE01823F29F4F5
+:103EF00097FF5CC01092EE0159C0833F19F4191668
+:103F0000CCF354C0893F41F48091F00118160CF0B5
+:103F10004DC01092F0014AC08A3F29F48091F0010F
+:103F200087FF44C0F6CF8B3F39F48091F10187FFC2
+:103F30003DC01092F1013AC08C3F29F48091F1010B
+:103F40001816BCF333C0843F21F48091ED018E7FBD
+:103F500017C0853F21F48091ED018D7F11C0863F10
+:103F600021F48091ED018B7F0BC0873F21F480917C
+:103F7000ED01877F05C0883F31F48091ED018F7E90
+:103F80008093ED0113C08D3F21F48091EB018E7F72
+:103F90000BC08E3F21F48091EB018D7F05C08F3FD8
+:103FA00029F48091EB018B7F8093EB018091EE01EE
+:103FB00081110EC08091EF0181110AC08091F00142
+:103FC000811106C08091F101811102C01092EC01B3
+:103FD00008958DEE91E00E9460120E94A91D9093B9
+:103FE000EA018093E90108951F93CF93DF938091B5
+:103FF000E9019091EA010E94B51DAC019091EC019C
+:10400000992321F02091140130E006C02091150180
+:104010008AE0289F900111244217530708F486C0B4
+:104020008091EE01C091EF01D091F0011091F1016A
+:10403000811107C0C11176C0D11174C0111172C0B5
+:1040400075C09F3F19F09F5F9093EC01181624F400
+:104050000E947A1E8093EE018091EE0187FF05C0D9
+:104060000E947A1E81958093EE011C1624F40E9412
+:104070007A1E8093EF018091EF0187FF05C00E94B7
+:104080007A1E81958093EF016091EE01662339F1EC
+:10409000C091EF01CC2319F1772767FD7095872F29
+:1040A000972F0E946F2323E333E343E35FE30E94F0
+:1040B000D3230E943C236093EE016C2F772767FD8A
+:1040C0007095872F972F0E946F2323E333E343E3F9
+:1040D0005FE30E94D3230E943C236093EF011D16EF
+:1040E00024F40E94C31E8093F0018091F00187FFA9
+:1040F00005C00E94C31E81958093F001111624F41F
+:104100000E94C31E8093F1018091F10187FF05C0D9
+:104110000E94C31E81958093F101DF91CF911F9181
+:104120000C94E91F9F3F09F08ECF96CFDF91CF917E
+:104130001F910895EDEEF1E085E0DF011D928A9573
+:10414000E9F71092EC011092EB010895833081F1B0
+:1041500028F4813059F08230D1F00895853009F487
+:1041600049C0B8F1863009F456C008958091150110
+:10417000262F30E0280F311D2F3F310524F4680F22
+:104180006093150108958FEF809315010895809134
+:104190001401262F30E0280F311D2F3F310524F464
+:1041A000680F6093140108958FEF809314010895B0
+:1041B00080911301262F30E0280F311D2F3F31054C
+:1041C00024F4680F6093130108958FEF8093130117
+:1041D000089580911201262F30E0280F311D2F3FC6
+:1041E000310524F4680F6093120108958FEF8093D6
+:1041F0001201089580911101262F30E0280F311D02
+:104200002F3F310524F4680F6093110108958FEF5B
+:1042100080931101089580911001262F30E0280F1E
+:10422000311D2F3F310524F4680F6093100108956C
+:104230008FEF809310010895833011F128F48130BD
+:1042400049F0823091F00895853081F120F1863077
+:10425000C1F1089580911501681720F4861B8093A1
+:1042600015010895109215010895809114016817A1
+:1042700020F4861B80931401089510921401089570
+:1042800080911301681720F4861B80931301089511
+:1042900010921301089580911201681720F4861B73
+:1042A00080931201089510921201089580911101D6
+:1042B000681720F4861B8093110108951092110154
+:1042C000089580911001681720F4861B80931001D7
+:1042D00008951092100108950F931F938D3109F4E2
+:1042E00071C008F045C0803109F485C008F58730F9
+:1042F00009F46FC068F4863009F0ADC08091E30125
+:10430000817F8E7F8093E30181E08093F301A4C0DD
+:104310008B3009F49EC08E3009F09DC08091E3017E
+:1043200082FB222720F991E0922790FB82F96CC052
+:10433000863109F48EC060F4813109F08CC00E948E
+:10434000E21690910D0181E0892780930D0181C0D3
+:10435000893109F47EC08B3109F07DC08091E30181
+:1043600081FB222720F991E0922790FB81F94CC034
+:10437000853309F466C048F4873209F462C008F452
+:104380004FC0893209F45DC066C0833438F48A3383
+:1043900008F044C0883309F45CC05DC0833409F47C
+:1043A00050C0883409F057C00E94E2160FEF13ED99
+:1043B00020E3015010402040E1F700C000000E94BF
+:1043C000041E47C00E94F6220E9449120E94460B1A
+:1043D00040C09091E301892F8095817080FB90F916
+:1043E00029F0966098609093E30136C0997F977F9B
+:1043F0009093E3012EC08091E30183FB222720F9F3
+:1044000091E0922790FB83F98093E301992309F1CE
+:104410008091E30181608093E3011BC0895301C057
+:104420008D5141E050E060E070E08A019B0104C0E2
+:10443000000F111F221F331F8A95D2F7C901B8013F
+:1044400004C061E070E080E090E00E94A21A0E9447
+:10445000E21681E001C080E01F910F91089580E095
+:10446000089580E008958E518A3030F4E82FF0E00E
+:10447000E65DFE4F8081089580E00895CF93C82FB8
+:104480008091F301813079F018F08230E9F186C033
+:10449000E0910E01F0910F018081813169F082324B
+:1044A00009F07EC009C0E0910E01F0910F018081FA
+:1044B000813111F0823261F48C2F0E942F22811100
+:1044C00004C08C2F0E946C211DC081E090E01AC0B6
+:1044D0008C2F0E943122811114C0C43179F048F42C
+:1044E000CB3079F0C03109F05FC082E08093F301F6
+:1044F00008C0C93219F0C83321F056C01092F30138
+:1045000053C081E0817052C0C93281F110F5C431CD
+:1045100069F1A8F4C73009F045C08AE0809315011D
+:1045200094E19093140193E090931301809312010E
+:1045300088E08093110188E28093100133C082EEFD
+:104540008C0F863078F58C2F0E9433228093F201F5
+:1045500029C0CE34E9F020F4CB3421F56AE013C051
+:10456000C13579F0C235F1F461E00DC08091F201FE
+:10457000882319F01092F20115C081E08093F301B5
+:1045800015C061E006C08091F2010E94A6200AC019
+:104590006AE08091F2010E941C2104C01092F30194
+:1045A00080E004C081E002C080E0ACCFCF910895EC
+:1045B000E1E8F0E080818860808380818160808391
+:1045C0008FB7F89493E09093890090ED90938800D2
+:1045D0008FBF0895EFE6F0E08081826080830895C8
+:1045E000EFE6F0E080818D7F80830895EFE6F0E0D4
+:1045F000908182E08927808308951F920F920FB6E1
+:104600000F9211242F933F934F935F936F937F9358
+:104610008F939F93AF93BF93EF93FF938091F40198
+:104620009091F50101969093F5018093F401811129
+:1046300003C082E00E94460BE091F501E695E69505
+:10464000F0E0E756FA4FE4918091F4018E1303C035
+:1046500080E00E94460BFF91EF91BF91AF919F9137
+:104660008F917F916F915F914F913F912F910F901B
+:104670000FBE0F901F90189504D06894B1118DC093
+:10468000089570D088F09F5790F0B92F9927B751AF
+:10469000A0F0D1F0660F771F881F991F1AF0BA9506
+:1046A000C9F712C0B13081F077D0B1E0089574C07D
+:1046B000672F782F8827B85F39F0B93FCCF38695FC
+:1046C00077956795B395D9F73EF490958095709559
+:1046D00061957F4F8F4F9F4F0895E89409C097FBD6
+:1046E0003EF490958095709561957F4F8F4F9F4FC9
+:1046F0009923A9F0F92F96E9BB279395F69587950D
+:1047000077956795B795F111F8CFFAF4BB0F11F4CF
+:1047100060FF1BC06F5F7F4F8F4F9F4F16C0882376
+:1047200011F096E911C0772321F09EE8872F762FAC
+:1047300005C0662371F096E8862F70E060E02AF0ED
+:104740009A95660F771F881FDAF7880F96958795D9
+:1047500097F9089557FD9058440F551F59F05F3F42
+:1047600071F04795880F97FB991F61F09F3F79F093
+:1047700087950895121613061406551FF2CF469515
+:10478000F1DF08C0161617061806991FF1CF869597
+:104790007105610508940895E894BB27662777277B
+:1047A000CB0197F908950BD078C069D028F06ED06E
+:1047B00018F0952309F05AC05FC01124EECFCADF6C
+:1047C000A0F3959FD1F3950F50E0551F629FF00124
+:1047D000729FBB27F00DB11D639FAA27F00DB11D7D
+:1047E000AA1F649F6627B00DA11D661F829F222706
+:1047F000B00DA11D621F739FB00DA11D621F839F8D
+:10480000A00D611D221F749F3327A00D611D231F62
+:10481000849F600D211D822F762F6A2F11249F57B0
+:1048200050408AF0E1F088234AF0EE0FFF1FBB1FD3
+:10483000661F771F881F91505040A9F79E3F510572
+:1048400070F014C0AACF5F3FECF3983EDCF386957E
+:1048500077956795B795F795E7959F5FC1F7FE2B1D
+:10486000880F911D9695879597F9089597F99F67F9
+:1048700080E870E060E008959FEF80EC08950024E8
+:104880000A941616170618060906089500240A94B5
+:1048900012161306140605060895092E0394000C3B
+:1048A00011F4882352F0BB0F40F4BF2B11F460FFCA
+:1048B00004C06F5F7F4F8F4F9F4F089597FB072E68
+:1048C00016F4009407D077FD09D00E94782407FCE5
+:1048D00005D03EF4909581959F4F08957095619510
+:1048E0007F4F0895EE0FFF1F0590F491E02D09947E
+:1048F000AA1BBB1B51E107C0AA1FBB1FA617B70706
+:1049000010F0A61BB70B881F991F5A95A9F7809521
+:104910009095BC01CD010895F999FECF92BD81BD5E
+:10492000F89A992780B50895A8E1B0E042E050E0F8
+:104930000C94B424262FF999FECF92BD81BDF89A2C
+:10494000019700B4021639F01FBA20BD0FB6F894D3
+:10495000FA9AF99A0FBE08950196272F0E949B2478
+:104960000C949A24DC01CB01FC01F999FECF06C01E
+:10497000F2BDE1BDF89A319600B40D92415050401D
+:08498000B8F70895F894FFCF89
+:104988000220480BD60BB30B7F0B4B0B0101D00158
+:1049980028080A03140A404D363959050C05D6046F
+:1049A8009D043004490462047B04010203040506E3
+:0449B80007080900E3
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/ordinary/keymap.c b/keyboards/ergodox_ez/keymaps/ordinary/keymap.c new file mode 100644 index 000000000..778cbc63c --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/ordinary/keymap.c @@ -0,0 +1,454 @@ +#include "ergodox_ez.h" +#include "led.h" +#include "debug.h" +#include "action_layer.h" +#include "action_util.h" +#include "mousekey.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols layer +#define MDIA 2 // media layer +#define SPEC 3 // special layer + +#define LCaps 10 // left caps-shift key +#define LSymb 11 // left symbol-shift key +#define LMdia 12 // left media-shift key +#define LSpec 13 // left special-shift key +#define RCaps 14 // right caps-shift key +#define RSymb 15 // right symbol-shift key +#define RMdia 16 // right media-shift key +#define RSpec 17 // right special-shift key + +#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, 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 + */ + +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) ,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_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 ,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_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 | * | | + * |-----------+------+------+------+------+------| Tab | | Shift|------+------+------+------+------+-----------| + * | | % | ^ | [ | ] | ~ | | | -Tab| \ | 1 | 2 | 3 | - | | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | LCtrl | Meh |Hyper | LAlt | LGui | |RGui/0|RAlt/.|Hypr/=|Meh/+ |RCtrl/Ent| + * `-----------------------------------' `-------------------------------------' + * ,-------------. ,-------------. + * | Left | Right| | Home | End | + * ,------|------|------| |------+------+------. + * | | | Up | | PgUp | | | + * |Space |Enter |------| |------|BackSp| Del | + * | | | Down | | PgDn | | | + * `--------------------' `--------------------' + */ +[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_TAB +,KC_LCTL ,KC_MEH ,KC_HYPR,KC_LALT ,KC_LGUI + ,KC_LEFT ,KC_RGHT + ,KC_UP + ,KC_SPC ,KC_ENT ,KC_DOWN + // 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_TAB),KC_BSLS ,KC_1 ,KC_2 ,KC_3 ,KC_MINS ,KC_TRNS + ,GUI_T(KC_0),ALT_T(KC_DOT),ALL_T(KC_EQL),MEH_T(KC_PLUS),CTL_T(KC_ENT) + ,KC_HOME ,KC_END + ,KC_PGUP + ,KC_PGDN ,KC_BSPC ,KC_DEL +), + +/******* 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 | | | + * `------+---------+---------+---------+---------+----------------' `----------------+---------+---------+---------+---------+------' + * |LCtrl| Meh | MClick | LClick | R Click| |Cmd/Insrt|Optn/Del | Hyper | Meh |RCtrl| + * `---------------------------------------------' `---------------------------------------------' + * ,-------------. ,-------------. + * | 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_LCTL ,KC_MEH ,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 + ,GUI_T(KC_INS),ALT_T(KC_DEL),KC_HYPR ,KC_MEH ,KC_RCTL + ,KC_MPRV ,KC_MNXT + ,KC_VOLU + ,KC_VOLD ,KC_MSTP ,KC_MPLY +), + +/******* Special Layer ***************************************************************************************************** + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | | Esc | | | | | | | | | | | | Bspc | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | | | | | | | | | | | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | |------| |------| | | | | | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | | | | | | | | | | | | | | | RShift | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[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_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,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_BSPC ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_RSFT + ,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[] = { + // the faux shift keys are implemented as macro taps + [LCaps] = ACTION_MACRO_TAP(LCaps) + ,[LSymb] = ACTION_MACRO_TAP(LSymb) + ,[LMdia] = ACTION_MACRO_TAP(LMdia) + ,[LSpec] = ACTION_MACRO_TAP(LSpec) + ,[RCaps] = ACTION_MACRO_TAP(RCaps) + ,[RSymb] = ACTION_MACRO_TAP(RSymb) + ,[RMdia] = ACTION_MACRO_TAP(RMdia) + ,[RSpec] = ACTION_MACRO_TAP(RSpec) +}; + +uint16_t caps_shift = 0; +uint16_t symb_shift = 0; +uint16_t mdia_shift = 0; + +bool symb_lock = false; +bool mdia_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. If both are pressed at the same time + // then the layer is locked (or unlocked). 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 LCaps: // both caps-shift keys trigger Left Shift + case RCaps: // so they don't interfere with the magic combo + if (record->event.pressed && !record->tap.count) { + if(++caps_shift > 2) caps_shift = 2; + if(caps_shift == 2) { + register_code(KC_CAPS); + unregister_code(KC_CAPS); + } else if(caps_shift == 1) { + register_code(KC_LSFT); + } + } else { + if(--caps_shift < 0) caps_shift = 0; + if(caps_shift == 0) unregister_code(KC_LSFT); + } + break; + + case LSymb: + if (record->event.pressed) { + if(++symb_shift > 2) symb_shift = 2; + if(symb_shift == 2) { + symb_lock = !symb_lock; + } else if(symb_shift == 1) { + layer_on(SYMB); + } + } else { + if(--symb_shift < 0) symb_shift = 0; + if((symb_shift == 0) && (!symb_lock)) layer_off(SYMB); + } + break; + + case LMdia: + if (record->event.pressed) { + if (record->tap.count && (!mdia_shift) && (!mdia_lock)) { + register_code(KC_TAB); + } else { + if(++mdia_shift > 2) mdia_shift = 2; + if(mdia_shift == 2) { + mdia_lock = !mdia_lock; + } else if(mdia_shift == 1) { + layer_on(MDIA); + } + } + } else { + if(record->tap.count && (!mdia_shift) && (!mdia_lock)) { + 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) { + if (record->tap.count && !record->tap.interrupted) { + register_code(KC_GRV); + } else { + layer_on(SPEC); + } + } else { + if(record->tap.count && !record->tap.interrupted) { + unregister_code(KC_GRV); + } else { + layer_off(SPEC); + } + } + break; + + case RSymb: + if (record->event.pressed) { + if (record->tap.count && (!symb_shift) && (!symb_lock)) { + register_code(KC_QUOT); + } else { + if(++symb_shift > 2) symb_shift = 2; + if(symb_shift == 2) { + symb_lock = !symb_lock; + } else if(symb_shift == 1) { + layer_on(SYMB); + } + } + } else { + if(record->tap.count && symb_shift == 0) { + 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)) { + register_code(KC_BSLS); + } else { + if(++mdia_shift > 2) mdia_shift = 2; + if(mdia_shift == 2) { + mdia_lock = !mdia_lock; + } else if(mdia_shift == 1) { + layer_on(MDIA); + } + } + } else { + if(record->tap.count && (!mdia_shift) && (!mdia_lock)) { + 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 (record->tap.count && !record->tap.interrupted) { + register_code(KC_EQL); + } else { + layer_on(SPEC); + } + } else { + if(record->tap.count && !record->tap.interrupted) { + unregister_code(KC_EQL); + } else { + layer_off(SPEC); + } + } + 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(caps_shift || (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_ez/keymaps/ordinary/ordinary-base.png b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-base.png Binary files differnew file mode 100644 index 000000000..9c561a10a --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-base.png diff --git a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-base.txt b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-base.txt new file mode 100644 index 000000000..25731ea2e --- /dev/null +++ b/keyboards/ergodox_ez/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:"#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 Binary files differnew file mode 100644 index 000000000..99e5ed80b --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-media.png diff --git a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-media.txt b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-media.txt new file mode 100644 index 000000000..4eccc9f35 --- /dev/null +++ b/keyboards/ergodox_ez/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:"#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-special.png b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-special.png Binary files differnew file mode 100644 index 000000000..6eecf447e --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-special.png diff --git a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-special.txt b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-special.txt new file mode 100644 index 000000000..a08827c6d --- /dev/null +++ b/keyboards/ergodox_ez/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},""], +[{y:-0.875,x:5.5},"",{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:"#54d6de"},"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},""], +[{y:-0.875,x:5.5},"",{h:1.5},"",{x:4.5,h:1.5},"",""], +[{y:-0.875,w:1.5},"","",{x:14.5},"",{w:1.5},""], +[{y:-0.375,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,w:1.5},"","",{x:14.5},"",{w:1.5},""], +[{y:-0.625,x:6.5,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,w:1.5},"","",{x:14.5},"",{c:"#2277ff",w:1.5},"RShift"], +[{y:-0.375,x:3.5,c:"#cccccc"},"",{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_ez/keymaps/ordinary/ordinary-symbol.png b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-symbol.png Binary files differnew file mode 100644 index 000000000..e4de64a96 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-symbol.png diff --git a/keyboards/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt b/keyboards/ergodox_ez/keymaps/ordinary/ordinary-symbol.txt new file mode 100644 index 000000000..e199f5c59 --- /dev/null +++ b/keyboards/ergodox_ez/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:"#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 new file mode 100644 index 000000000..6465cd79e --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/ordinary/readme.md @@ -0,0 +1,103 @@ +# 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/osx_de/compiled.hex b/keyboards/ergodox_ez/keymaps/osx_de/compiled.hex new file mode 100644 index 000000000..2233a8cbf --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/osx_de/compiled.hex @@ -0,0 +1,1216 @@ +:100000000C9412040C9456040C9456040C9456044C
+:100010000C9456040C9456040C9456040C945604F8
+:100020000C9456040C9456040C9485100C9457119F
+:100030000C9456040C9456040C9456040C945604D8
+:100040000C9456040C9411240C9456040C945604ED
+:100050000C9456040C94F31E0C9456040C94560401
+:100060000C9456040C9456040C9456040C945604A8
+:100070000C9456040C9456040C9456040C94560498
+:100080000C9456040C9456040C9456040C94560488
+:100090000C9456040C9456040C9456040C94560478
+:1000A0000C9456040C9456040C9456048007EB06EA
+:1000B000970739074A07680703072D0733072707FC
+:1000C00062073E0744071B072107D106C411E6114A
+:1000D000D412E611D4122B124E12D412A312B6125D
+:1000E00085158515B415B415EA150A163B173B1787
+:1000F00015163B17C516C5162C173B173B1735179A
+:10010000D216D216D216D216D216D216D216D216AF
+:10011000D216D216D216D216D216D216D216D2169F
+:10012000E416F116F816FF16091702E002E2012E96
+:10013000022E02E10002E002E102E20001E001E140
+:1001400001E20002E001E30119021902E30002E00A
+:100150000001E00002E002E3016402640002E00248
+:10016000E30001E001E30001E10137023702E101B0
+:1001700038023801E10125022502E10002E002E136
+:10018000013102310002E002E10001E001E1000181
+:10019000E10137023702E10138023801E1010702CB
+:1001A0000702E10001350235012002200002E302CE
+:1001B000E10001E301E10001E10136023602E10163
+:1001C00038023801E10126022602E10001E101378F
+:1001D000023702E10138023801E10126022602E17C
+:1001E0000001E10136023602E10138023801E10185
+:1001F00025022502E10001E10137023702E1013861
+:10020000023801E20125022502E20001E101370284
+:100210003702E10138023801E10130023002E10029
+:1002200002E002E2013002300002E002E20001E0FE
+:1002300001E20002E001E30106020602E30002E03F
+:100240000001E00029002B00E200E1003541000040
+:100250001E00140004001D6105304D431F001A00EC
+:1002600016001B0006304C002000080007000600A6
+:1002700052002A00210015000900190051004A000F
+:10028000220017000A000500000002300430E300DD
+:100290000000E200000002530430E7000000E60026
+:1002A0000000045323001C000B00110000002E6FFF
+:1002B000240018000D00100050004B0025000C0019
+:1002C0000E0036004F002C00260012000F003700F1
+:1002D000E10828002700130033003861E1044E00D4
+:1002E0002D002F003464E5003041000001000100C2
+:1002F00001000100010000003A003500310001005A
+:10030000010001003B0035022102350001004C00D4
+:100310003C001E0224062202010001003D002D02C5
+:1003200024022404010001003E00010037001104F2
+:1003300000000100010001000000010000000100B8
+:100340000F30010000000100000068003F0024069B
+:100350002402240400004500400022042502110468
+:1003600031026900410023042602640050000100AC
+:1003700042003500250452005100010043003502BF
+:10038000260438004F006A0044001E02310021029A
+:100390000100000001000100010001000100000057
+:1003A0000100010001000100010001000100F40052
+:1003B000F200FB00010001000100F000F100FA0072
+:1003C000010001000100F500F300FC000100010044
+:1003D0000100F900FA00F600000001000100010030
+:1003E0000000010000000100A80001000000010061
+:1003F0000000010001000100A900AA0000000100A6
+:1004000001000100010001000100010001000100E4
+:100410000100AC000100B600010001000100AB00CA
+:1004200050000100010001000100520051000100D4
+:10043000AE000100010001004F00000001000100BA
+:1004400001000100010000000100010001000100A5
+:100450000100010001000100010001000100010094
+:100460000100010001000100010001000100010084
+:100470000100010001000100010001000100010074
+:100480000000010001000100000001000000010067
+:1004900007300100000001000000010008300E30AC
+:1004A0000B300100000001000C300A300D3001005B
+:1004B00001000100010009300100010001000100FC
+:1004C0000100010001000100010001000100010024
+:1004D0000100010001000100010001000100010014
+:1004E0000100000001000100010001000100000006
+:1004F00001000100010001000100010001000100F4
+:1005000050000100010001000100520051000100F3
+:1005100001000100010001004F0001000100010085
+:1005200001000100010001000000010001000100C4
+:1005300000000100000001000100010000000100B6
+:10054000000001003F0052005100230200000100A2
+:100550004000240021001E0027000100410025006A
+:1005600022001F0037000100420026002300200067
+:10057000360001004300300230002402270201004F
+:1005800044004500380001000100000001000100A6
+:10059000E1000100E0000000010001000100010095
+:1005A00001003D0001000100010001000100E00028
+:1005B000010001000100010001002C000100010008
+:1005C0000100010001003C000100010001000100E8
+:1005D00000003A00010001000000010000003B00A3
+:1005E0000F300100000001000000010001000100C7
+:1005F00001000100000001000100010001000100F4
+:1006000001000100010001000100010001000100E2
+:1006100001000100010001000100010001000100D2
+:1006200001000100010001000100010001000100C2
+:100630000100000016034500720067006F004400CF
+:100640006F007800200045005A00000016034500A6
+:10065000720067006F0044006F00780020004500C2
+:100660005A0000000403090409026D00040100A0FF
+:10067000FA09040000010301010009211101000130
+:100680002240000705810308000A09040100010354
+:10069000010200092111010001224D00070582031A
+:1006A00008000A09040200010300000009211101E9
+:1006B00000012236000705830308000A090403002D
+:1006C0000103000000092111010001223900070582
+:1006D00084031000011201100100000008EDFE0764
+:1006E0001301000102000105010906A10105071916
+:1006F000E029E71500250195087501810205081913
+:100700000129059505750191029501750391010572
+:10071000071900297715002501957875018102C018
+:1007200005010980A101850216010026B7001A0102
+:10073000002AB700751095018100C0050C0901A1C0
+:10074000018503160100269C021A01002A9C0275ED
+:100750001095018100C005010902A1010901A10054
+:100760000509190129051500250195057501810265
+:100770009501750381010501093009311581257F36
+:1007800095027508810609381581257F9501750840
+:100790008106050C0A38021581257F9501750881AF
+:1007A00006C0C005010906A101050719E029E715E2
+:1007B00000250195087501810295017508810105E3
+:1007C0000819012905950575019102950175039197
+:1007D000010507190029FF150026FF009506750879
+:1007E0008100C000000000000000000000000102C5
+:1007F00004060A0F17202C3A4A5D71879DB3C7DAA9
+:10080000E9F5FCFFFCF5E9DAC7B39D87715D4A3A6B
+:100810002C20170F0A06040201000000000000004F
+:100820000000000011241FBECFEFDAE0DEBFCDBF15
+:1008300004B603FE24C08091FF0190910002A091B4
+:100840000102B09102028730904BA740B04BB9F43F
+:100850001092FF0110920002109201021092020207
+:1008600014BE84B7877F84BF88E10FB6F894809365
+:100870006000109260000FBEE0E0FFE3099511E018
+:10088000A0E0B1E0E0EBFBE402C005900D92A433E0
+:10089000B107D9F711E0A4E3B1E001C01D92AF3F69
+:1008A000B107E1F70E94CD0D0C94D6250C94000001
+:1008B0001092B9008AE08093B800089594EA90936A
+:1008C000BC009091BC0097FFFCCF9091B900987F3D
+:1008D000983021F0903111F081E008958093BB00B1
+:1008E00084E88093BC008091BC0087FFFCCF80919E
+:1008F000B900887F883111F0803471F780E0089565
+:1009000084E98093BC008091BC0084FDFCCF0895F5
+:100910008093BB0084E88093BC008091BC0087FF7B
+:10092000FCCF9091B900987F81E0983209F480E083
+:10093000089584E88093BC008091BC0087FFFCCFC1
+:100940008091BB00089580B38C7080BB81B3836FAE
+:1009500081BB089580910101811115C080E40E943E
+:100960005E048093010181110CC082E10E94880421
+:1009700080930101811105C08FEF0E94880480934C
+:1009800001010E94800484B1807F84B985B1807F99
+:1009900085B98AB1837F8AB98BB1837F8BB93E9841
+:1009A000469808950E947406809301010E94AA044B
+:1009B0000E94A304A5E3B1E0E3E4F1E08EE08E0F32
+:1009C00011921D928E13FCCF0C945E060E94740649
+:1009D000809301010E94AA040E94A304A5E3B1E050
+:1009E000E3E4F1E08EE08E0F11921D928E13FCCFA6
+:1009F0000895BF92CF92DF92EF92FF920F931F93D1
+:100A0000CF93DF9380910101882379F080913401A5
+:100A10008F5F80933401811108C00E947406809317
+:100A20000101811102C00E94060605E311E0C0E049
+:100A3000D0E0DD24D39482E0C82EEE24E394F12CA0
+:100A4000C730D10500F580910101811164C080E4B7
+:100A50000E945E0480930101811112C082E10E9414
+:100A600088048093010181110BC0C7010C2E01C0C5
+:100A7000880F0A94EAF780950E9488048093010108
+:100A80000E94800448C0CA30A1F028F4C83059F050
+:100A9000C93061F005C0CC3089F070F0CD3089F0FC
+:100AA000209A289810C0219A29980DC0229A2A9835
+:100AB0000AC0239A2B9807C0529A01C0539A5B9898
+:100AC00002C03E9A469890EA9A95F1F79FB17999BB
+:100AD00002C082E001C080E091709D25982B7C9936
+:100AE00002C084E001C080E0892B7D9902C038E01B
+:100AF00001C030E0832B7E9902C020E101C020E0DC
+:100B0000822B9FB19095991F9927991F9295990FC4
+:100B1000907E892B0FC080910101811149C080E432
+:100B20000E945E0480930101882379F1B12C0E9418
+:100B300080048B2DF8019081981719F08083C09262
+:100B400000010E94AA0421960F5F1F4FCE30D105ED
+:100B500009F076CF80910001882361F18150809364
+:100B60000001882339F08FE99FE00197F1F700C079
+:100B7000000020C0A3E4B1E0E5E3F1E0CF01825F33
+:100B800091919D938E13FCCF15C083E10E94880440
+:100B9000809301018111CACF81E40E945E04809399
+:100BA00001018111C3CF0E949904B82EB094BFCF28
+:100BB00080E0C0CF0E94040681E0DF91CF911F91B9
+:100BC0000F91FF90EF90DF90CF90BF900895E82FA6
+:100BD000F0E0ED5BFE4F8081089508950F931F9321
+:100BE000CF93DF93C3E4D1E010E00C2F025F899133
+:100BF00090E00E941A1E180F0C13F9CF812FDF917D
+:100C0000CF911F910F9108950C94C70756985E9845
+:100C100025982D9826982E9827982F988FEF90E05A
+:100C2000909389008093880090938B0080938A0032
+:100C300090938D0080938C00259A2D9A2FEF80E75A
+:100C400092E0215080409040E1F700C00000269AD9
+:100C50002E9A2FEF80E792E0215080409040E1F7FC
+:100C600000C00000279A2F9A2FEF80E792E02150D2
+:100C700080409040E1F700C0000025982D982FEFAC
+:100C800080E792E0215080409040E1F700C00000F2
+:100C900026982E982FEF80E792E0215080409040D8
+:100CA000E1F700C0000027982F9856985E98259885
+:100CB0002D9826982E9827982F98089589EA809342
+:100CC000800089E08093810024982C983F988AB115
+:100CD0008F748AB96E98479A8BB1806B8BB9769A6C
+:100CE0000E9406060C94C60780E280930101809161
+:100CF000510181110EC00E94580481E0809351017E
+:100D00002FEF83ED90E3215080409040E1F700C049
+:100D1000000080E40E945E048093010181112EC0D6
+:100D20000E94880480930101811128C00E948804D8
+:100D300080930101811122C08FE30E948804809377
+:100D4000010181111BC00E94800480E40E945E04A6
+:100D500080930101811112C08CE00E94880480936D
+:100D6000010181110BC00E9488048093010181114F
+:100D700005C08FE30E948804809301010E948004D3
+:100D8000809101010895462F50E04031510508F04F
+:100D9000F1C0DC01FA01EA5AFF4F12968C910C94D3
+:100DA0008625882309F4E6C08091C0019091C10195
+:100DB000A091C201B091C30120E2822780729927DD
+:100DC000AA27BB278093C0019093C101A093C201C1
+:100DD000B093C301CFC0882349F00E94BD1E9093F9
+:100DE00053018093520181E492E008958091520171
+:100DF000909153010E94C91E8739910508F0AEC039
+:100E000083E392E00895882349F00E94BD1E9093E9
+:100E10005301809352018EE292E008958091520135
+:100E2000909153010E94C91E8739910508F099C01D
+:100E300080E292E00895882309F49CC08BE092E060
+:100E40000895882309F496C086EF91E008958823D9
+:100E500009F490C081EE91E00895882309F48AC0D6
+:100E60008CEC91E00895882309F484C087EB91E02D
+:100E70000895811179C08DEA91E00895882309F4DD
+:100E800079C084EA91E00895882309F473C08FE85B
+:100E900091E00895882349F00E94BD1E909353016C
+:100EA000809352018AE891E00895809152019091D7
+:100EB00053010E94C91E8739910508F058C08CE77C
+:100EC00091E00895882309F455C087E691E00895DC
+:100ED000882349F00E94BD1E9093530180935201D4
+:100EE00082E691E0089580915201909153010E9411
+:100EF000C91E8739910508F040C084E591E0089546
+:100F0000882349F00E94BD1E9093530180935201A3
+:100F100081E591E0089580915201909153010E94E2
+:100F2000C91E8739910560F583E491E0089588230F
+:100F300049F00E94BD1E90935301809352018CE3AF
+:100F400091E0089580915201909153010E94C91E31
+:100F500087399105C0F48AE291E008958EE392E02A
+:100F6000089589E292E0089582EB91E0089585E882
+:100F700091E0089580E090E008958DE591E0089576
+:100F80008EE491E0089585E391E0089508956091DD
+:100F9000C0017091C1018091C2019091C3010E9472
+:100FA000261E56985E9825982D9826982E98279854
+:100FB0002F988330C1F028F4813041F0823049F01D
+:100FC0000895843049F0853051F00895259A2D9A7E
+:100FD0000895269A2E9A0895259A2D9A04C0259A46
+:100FE0002D9A269A2E9A279A2F9A089581E008958D
+:100FF00081E008950C94F8070895282F882339F08C
+:1010000090E02A3010F44D9608950697089587E2EF
+:1010100090E00895AF92BF92DF92EF92FF920F930C
+:101020001F93CF93DF938C01FC01C081D181CE014E
+:101030000E949F1CBE010E947A0BEC01B8010E9425
+:10104000FA07882309F4C9C1F8018281882309F4C9
+:10105000BEC08091600181111FC0C431F0E7DF077D
+:1010600009F0B5C10E94FC0781E0809360010E94F5
+:10107000BD1E90935F0180935E0110925701109204
+:1010800059011092580110925B0110925A0110926E
+:101090005D0110925C01A1C180915E0190915F01A0
+:1010A0000E94C91E883C910570F480915701E82F79
+:1010B000F0E0EE0FFF1FE85AFE4FD183C0838F5F31
+:1010C000809357018AC1C13020E8D20708F451C08B
+:1010D000F8018281882309F47EC05E01E894B7F8A4
+:1010E00080915601813079F050F08230C1F482EE67
+:1010F0000E94291487E50E94291487E50EC082EE1C
+:101100000E9429140CC080EE0E94291481EE0E94D6
+:10111000291488E10E94291488E10E94F1148CE0CE
+:10112000E82EF12CC5010E2C02C0969587950A94E5
+:10113000E2F78F700E94FD07D82E0E9429148D2D92
+:101140000E94F114F4E0EF1AF1082CEFE2162FEFF1
+:10115000F20641F780915601813029F010F082307B
+:1011600041F482EE04C080EE0E94F11481EE0E94F0
+:10117000F114C43180E7D80768F4C23090E7D9078A
+:1011800008F046C0C115E0E7DE0771F0C130D04776
+:10119000A1F10CC1C33320E7D20709F4D8C0C4338E
+:1011A000D04709F4EBC002C1F8018281882309F419
+:1011B00002C10E94A617FFEF24E38CE0F15020400B
+:1011C0008040E1F700C000000E94181F06C1C13036
+:1011D00080E8D80770F2C43120E7D20708F0B3C026
+:1011E000C23080E7D807A0F4C11590E7D90709F409
+:1011F000E2C0C130D04709F0D9C0F801828188230C
+:1012000009F4D9C08091DD0181608093DD01E5C0E2
+:10121000F8018281882309F4CEC00E94721F8111D7
+:1012200002C00E94581F0E94851F90E09093F10118
+:101230008093F001C230F0E7DF0721F48091F001E4
+:1012400081607AC0C33020E7D20721F48091F00199
+:10125000826072C0C43080E7D80721F48091F00129
+:1012600084606AC0C53090E7D90719F48091F00115
+:1012700027C0C630E0E7DE0721F48091F0018061ED
+:101280005BC0C730F0E7DF0721F48091F001806296
+:1012900053C0C83020E7D20721F48091F001806468
+:1012A0004BC0C93080E7D80721F48091F0018068F5
+:1012B00043C0CA3090E7D90729F48091F0018460D7
+:1012C00088603AC0CB30E0E7DE0721F48091F0017E
+:1012D0008E7F32C0CC30F0E7DF0721F48091F0013F
+:1012E0008D7F2AC0CD3020E7D20721F48091F00114
+:1012F0008B7F22C0CE3080E7D80719F48091F001AF
+:101300001AC08091F001CF3090E7D90711F48F7E99
+:1013100013C0C031E0E7DE0711F48F7D0DC0C1318D
+:10132000F0E7DF0711F48F7B07C0C231D04711F41B
+:101330008F7702C08B7F877F8093F0018091F001CF
+:101340000E94891F4AC0C333F0E7DF07A1F4F80108
+:101350008281882321F01092540182E016C080918E
+:101360005401811106C086E20E94291486E20E947F
+:10137000F11482E018C0C433D047C1F4F80182816F
+:10138000882331F01092550180E20E94401525C05B
+:1013900080915501811106C087E20E94291487E2DD
+:1013A0000E94F11480E20E94471517C081E08093EB
+:1013B000540180935501C801DF91CF911F910F9186
+:1013C000FF90EF90DF90BF90AF900C94F607C13084
+:1013D000F0E8DF0708F081CECCCE80E0DF91CF913E
+:1013E0001F910F91FF90EF90DF90BF90AF90089505
+:1013F00026E0729FF001112444E5849FE00DF11D69
+:101400001124E60FF11DEE0FFF1FEC5BFD4F8591E0
+:1014100094910E948C0B811560E49607B0F58115BC
+:1014200070E3970708F0DEC0803E9105D8F4803C59
+:10143000910508F06CC0883A910578F4853A9105D9
+:1014400008F06BC08130910509F452C108F40FC156
+:101450008430910508F04CC10AC18B3B910508F41A
+:1014600067C005C18F3F910509F048F4803F9105A1
+:1014700008F0ADC0883E910508F43AC1F8C0811566
+:1014800020E2920708F0A5C00895811543E594076E
+:1014900090F4811562E5960708F0C8C0811571E5E2
+:1014A000970708F0BEC0811520E5920708F09DC09F
+:1014B0009F70906A0895811545E59407D8F48115C9
+:1014C00064E5960708F0C8C0482F4695469570E237
+:1014D000479FA00111248370992721E030E0B901D2
+:1014E00002C0660F771F8A95E2F7CB01842B952BFC
+:1014F0009A680895811576E5970708F4B2C09C01B3
+:1015000030562115304108F0B2C09F70AEC0FC01CA
+:10151000EE0FFF1FEC53FF4F62C0853A910509F4AF
+:10152000A9C0863A910509F0A8C082E890E4089520
+:10153000883A910509F4A4C0893A910509F4A3C039
+:101540008A3A910509F4A2C08B3A910509F4A1C029
+:101550008C3A910509F4A0C08D3A910509F49FC019
+:10156000803B910509F49EC08E3A910509F49DC017
+:101570008F3A910509F49CC0813B910509F49BC009
+:10158000823B910509F49AC0833B910509F499C007
+:10159000843B910509F498C0853B910509F497C0F7
+:1015A000863B910509F496C0873B910509F495C0E7
+:1015B000883B910509F494C0893B910509F493C0D7
+:1015C0008A3B910509F492C080E094E40895906507
+:1015D0000895FC01FF70EE0FFF1FEC5BFD4F85913E
+:1015E000949108959927906C0895482F437021E0B5
+:1015F00030E002C0220F331F4A95E2F73C68AC018D
+:1016000064E0569547956A95E1F74370342B8F70E7
+:101610008695869560E2869FC0011124822B932BCC
+:101620000895982F8827816F906A0895482F4695CE
+:10163000469570E2479FA00111248370992721E00D
+:1016400030E0B90102C0660F771F8A95E2F7CB013F
+:10165000842B952B9C680895982F8827846F906A17
+:1016600008958F719927982F88279062089580E0B8
+:1016700090E0089581E890E4089583E890E4089567
+:1016800082EE94E4089589EE94E408958AEE94E459
+:10169000089585EB94E4089586EB94E4089587EB30
+:1016A00094E408958CEC94E408958DEC94E408950A
+:1016B00083E895E408958AE895E4089582E995E43D
+:1016C000089584E995E4089581E296E4089583E21B
+:1016D00096E4089584E296E4089585E296E40895F8
+:1016E00086E296E4089587E296E408958AE296E415
+:1016F0000895089596E0799FF001112494E5899F5B
+:10170000E00DF11D1124E60FF11DEE0FFF1FEC5B44
+:10171000FD4F8591949108958238910549F1B0F477
+:101720008133910509F458C048F48932910509F4D0
+:101730004EC08A32910509F454C00895853391054D
+:1017400009F440C08933910599F00895833E9105CD
+:1017500029F138F4803E910591F0823E9105A1F087
+:101760000895863E9105F9F0873E910531F108957F
+:101770002091F00120FD3AC021FD38C008958091EC
+:10178000F00180FD35C032C08091F00182FF32C08F
+:101790008091F00184FD30C083EE39C08091F0016A
+:1017A00082FD28C0F5CF8091F00183FF27C0809192
+:1017B000F00184FD21C087EE2AC08091F00183FDF5
+:1017C0001DC0F5CF8091F00185FD1AC01BC080912E
+:1017D000F00185FD17C014C08091F00186FD14C092
+:1017E00015C08091F00186FD11C00EC080EE0FC0C3
+:1017F00089E30DC082EE0BC080E009C086EE07C011
+:1018000089E205C085E303C08AE201C081E390E07C
+:10181000089508950C94090C809171010895CF9357
+:10182000DF9300D01F92CDB7DEB79C018091F60107
+:10183000843019F593E099833B832A839093E900E0
+:101840008FEF9091E800815095FD06C095ED9A9537
+:10185000F1F700008111F5CF8091E80085FF0DC000
+:1018600040E050E063E070E0CE0101960E94750E0A
+:101870008091E8008E778093E8000F900F900F9092
+:10188000DF91CF910895CF93DF9300D01F92CDB712
+:10189000DEB72091F601243021F522E029839B83D5
+:1018A0008A8383E08093E9008FEF9091E800815074
+:1018B00095FD06C095ED9A95F1F700008111F5CFE1
+:1018C0008091E80085FF0DC040E050E063E070E0EB
+:1018D000CE0101960E94750E8091E8008E7780936C
+:1018E000E8000F900F900F90DF91CF910895209115
+:1018F000F6012430F1F422E02093E9002FEF30913B
+:10190000E800215035FD06C035ED3A95F1F70000AD
+:101910002111F5CF2091E80025FF0BC040E050E0F9
+:1019200065E070E00E94750E8091E8008E778093EC
+:10193000E8000895CF93DF93EC019091F601943085
+:1019400009F046C080910C018823D9F080910D01E7
+:101950008823B9F09093E9008FEF9091E8008150CF
+:1019600095FD06C095E19A95F1F700008111F5CF3C
+:101970008091E80085FF2CC040E050E060E170E01D
+:1019800017C081E08093E9008FEF9091E8008150CB
+:1019900095FD06C095ED9A95F1F700008111F5CF00
+:1019A0008091E80085FF14C040E050E068E070E0FE
+:1019B000CE010E94750E8091E8008E778093E8003A
+:1019C00080E1FE01A1E6B1E001900D928A95E1F778
+:1019D000DF91CF9108958091F501811109C00E9496
+:1019E0000A100E9467108091E20084608093E200F8
+:1019F00008951092F501089508950C94FE230E9415
+:101A0000AE1E0E9404240E940D130C940A0C42E0A6
+:101A100061EC81E00E94840F42E061EC82E00E9470
+:101A2000840F42E061EC83E00E94840F42E161ECAC
+:101A300084E00C94840F8091F801833009F455C040
+:101A400030F4813071F0823009F48EC008958A300C
+:101A500009F47AC08B3009F460C0893009F09CC069
+:101A600020C08091F701813A09F096C08091E8008A
+:101A7000877F8093E8008091FB019091FC01892B86
+:101A800021F460E181E691E003C060E080E090E055
+:101A900070E00E94C00E8091E8008B778093E80090
+:101AA00008958091F701813209F076C08091FB01A1
+:101AB0009091FC01009719F0039709F06DC0809197
+:101AC000E800877F8093E8008091E80082FD05C0F0
+:101AD0008091F6018111F8CF5FC08091F100809371
+:101AE00071018091E8008B7753C08091F701813AB2
+:101AF00009F052C08091FB019091FC01892B09F003
+:101B00004BC08091E800877F8093E8008091E800D7
+:101B100080FFFCCF80910C0136C08091F7018132AB
+:101B2000D9F58091FB019091FC01892BA9F5809159
+:101B3000E800877F8093E8000E94B90F8091F90147
+:101B400080930C010C94A6178091F701813221F546
+:101B50008091E800877F8093E8000E94B90F809110
+:101B6000FA018093720108958091F701813AA1F4FE
+:101B70008091E800877F8093E8008091E80080FFF3
+:101B8000FCCF809172018093F1008091E8008E7704
+:101B90008093E8000C94B90F089584B7877F84BFC1
+:101BA00088E10FB6F89480936000109260000FBE39
+:101BB00080E880936100109261000E945C130E9493
+:101BC0000A100E9467108091E20084608093E20016
+:101BD00078940E94ED120E945E1382E091E00E94D0
+:101BE00008130E94EC238091F601853069F40E946D
+:101BF000761E8091F4018823B1F30E94A01E8823F1
+:101C000091F30E945F0EEFCF0E946413ECCF292F57
+:101C1000332723303105C9F064F42130310581F0D8
+:101C20002230310509F043C08DE690E028E636E029
+:101C300042C021323105F1F02232310541F137C085
+:101C400082E190E025ED36E036C09927813091059C
+:101C500041F08230910541F0892B49F5E4E6F6E048
+:101C600005C0ECE4F6E002C0E4E3F6E0849190E025
+:101C70009F0121C06430D8F4E62FF0E0EE0FFF1F83
+:101C8000EE5DFE4F2081318189E090E014C0643028
+:101C900070F470E0FB01EE0FFF1FE65EFE4F208147
+:101CA0003181FB01EA5EFE4F808190E004C080E05C
+:101CB00090E020E030E0FA0131832083089580E154
+:101CC00089BD82E189BD09B400FEFDCF8091D800B5
+:101CD0008F7D8093D8008091E00082608093E00047
+:101CE0008091E00081FDFCCF0895CF92DF92EF92CA
+:101CF000FF920F931F93CF93DF93EC018B016A0147
+:101D00000E94D80F811133C0C114D10439F0F601FB
+:101D100080819181081B190BC80FD91FE12CF12C70
+:101D20000115110519F18091E80085FD16C080911B
+:101D3000E8008E778093E800C114D10449F0F601E1
+:101D400080819181E80EF91EF182E08285E00FC06A
+:101D50000E94D80F882321F30AC089918093F10053
+:101D600001501109FFEFEF1AFF0ADACF80E0DF918F
+:101D7000CF911F910F91FF90EF90DF90CF9008953A
+:101D80002091FD013091FE012617370748F06115BB
+:101D9000710539F42091E8002E772093E80001C006
+:101DA000B90140E061157105A9F12091F6012223E6
+:101DB00009F443C0253009F442C02091E80023FD16
+:101DC00040C02091E80022FD32C02091E80020FFB1
+:101DD000E9CF4091F3002091F20030E0342BFC0178
+:101DE000CF016115710559F02830310540F481911A
+:101DF0008093F100615071092F5F3F4FF1CF41E0B7
+:101E00002830310509F040E02091E8002E7720933A
+:101E1000E800C8CF4111C9CF0AC08091F6018823DC
+:101E200061F0853061F08091E80083FD0AC0809107
+:101E3000E80082FFF2CF80E0089582E0089583E019
+:101E4000089581E008952091FD013091FE0126174B
+:101E5000370748F06115710539F42091E8002E77B5
+:101E60002093E80001C0B901FC0120E06115710573
+:101E700091F18091F601882309F440C0853009F47E
+:101E80003FC08091E80083FD3DC08091E80082FD65
+:101E90002FC08091E80080FFE9CF2091F30080916E
+:101EA000F20090E0922B6115710559F08830910590
+:101EB00040F424912093F10031966150710901960C
+:101EC000F2CF21E0089709F020E08091E8008E77BA
+:101ED0008093E800CBCF2111CCCF0AC08091F601CE
+:101EE000882361F0853061F08091E80083FD0AC0AD
+:101EF0008091E80082FFF2CF80E0089582E00895AB
+:101F000083E0089581E00895982F973058F59093D5
+:101F1000E900981739F07091EC002091ED00509194
+:101F2000F00003C0242F762F50E021FF19C030911C
+:101F3000EB003E7F3093EB003091ED003D7F30931E
+:101F4000ED003091EB0031603093EB007093EC00CA
+:101F50002093ED005093F0002091EE0027FF07C082
+:101F60009F5FD3CF8F708093E90081E0089580E078
+:101F700008958091F70187FF11C08091E80082FDEC
+:101F800005C08091F6018111F8CF11C08091E80061
+:101F90008B770BC08091F601882349F08091E8008F
+:101FA00080FFF8CF8091E8008E778093E800089555
+:101FB0002091E4003091E50095E64091EC00842FFB
+:101FC000817040FF22C08091E80080FD1CC080919C
+:101FD000F601882391F0853091F08091EB0085FD2A
+:101FE00010C04091E4005091E5004217530729F3D7
+:101FF0009A01915011F784E0089582E0089583E0FA
+:10200000089581E0089580E008954091E80042FF3E
+:10201000DECF08950E9478100E948010E0EEF0E07C
+:10202000808181608083E8EDF0E080818F7780831C
+:1020300019BCA7EDB0E08C918E7F8C9380818F7E50
+:1020400080831092F50108950F931F93CF93DF9330
+:102050000E9478100E948010C8EDD0E088818F77B0
+:10206000888388818068888388818F7D888319BC74
+:102070001092F6011092F2011092F4011092F30105
+:1020800000EE10E0F80180818B7F80838881816081
+:10209000888342E060E080E00E94840FE1EEF0E09F
+:1020A00080818E7F8083E2EEF0E08081816080839A
+:1020B000808188608083F80180818E7F8083888121
+:1020C00080618883DF91CF911F910F910895E8ED92
+:1020D000F0E080818F7E8083E7EDF0E08081816099
+:1020E000808384E082BF81E08093F5010C9424100A
+:1020F000E8EDF0E080818E7F80831092E200089509
+:102100001092DA001092E10008951F920F920FB61C
+:102110000F9211242F933F934F935F936F937F936D
+:102120008F939F93AF93BF93EF93FF938091E100C1
+:1021300082FF0BC08091E20082FF07C08091E10026
+:102140008B7F8093E1000E94EC128091DA0080FF87
+:102150001FC08091D80080FF1BC08091DA008E7F65
+:102160008093DA008091D90080FF0DC080E189BDA5
+:1021700082E189BD09B400FEFDCF81E08093F601C4
+:102180000E94EB0C05C019BC1092F6010E94F90CDC
+:102190008091E10080FF19C08091E20080FF15C0AE
+:1021A0008091E2008E7F8093E2008091E200806166
+:1021B0008093E2008091D80080628093D80019BC9F
+:1021C00085E08093F6010E94FD0C8091E10084FF80
+:1021D00030C08091E20084FF2CC080E189BD82E1A3
+:1021E00089BD09B400FEFDCF8091D8008F7D80931A
+:1021F000D8008091E1008F7E8093E1008091E20021
+:102200008F7E8093E2008091E20081608093E20003
+:102210008091F201882311F084E007C08091E300EF
+:1022200087FD02C081E001C083E08093F6010E9437
+:10223000FF0C8091E10083FF29C08091E20083FFC1
+:1022400025C08091E100877F8093E10082E0809348
+:10225000F6011092F2018091E1008E7F8093E100FF
+:102260008091E2008E7F8093E2008091E2008061A5
+:102270008093E20042E060E080E00E94840F809161
+:10228000F00088608093F0000E94FC0CFF91EF91B9
+:10229000BF91AF919F918F917F916F915F914F917E
+:1022A0003F912F910F900FBE0F901F9018951F9286
+:1022B0000F920FB60F9211242F933F934F935F937A
+:1022C0006F937F938F939F93AF93BF93CF93DF933E
+:1022D000EF93FF93C091E900CF708091EC00D82F6D
+:1022E000D17080FDD0E81092E9008091F000877FE6
+:1022F0008093F00078940E949B111092E9008091E5
+:10230000F00088608093F000CD2BCF70C093E9007F
+:10231000FF91EF91DF91CF91BF91AF919F918F91FD
+:102320007F916F915F914F913F912F910F900FBED1
+:102330000F901F9018951F93CF93DF93CDB7DEB703
+:10234000AA970FB6F894DEBF0FBECDBFE7EFF1E05E
+:1023500088E08E0F9091F10091938E13FBCF0E9435
+:102360001B0D8091E80083FF1FC18091F7019091C0
+:10237000F801492F50E04A30510508F015C1FA0123
+:10238000EA59FF4F0C948625803881F0823809F095
+:102390000BC18091FB018F708093E9008091EB006D
+:1023A00085FB882780F91092E90006C08091F3012F
+:1023B0009091F401911182609091E800977F909341
+:1023C000E8008093F1001092F100C8C0282F2D7F03
+:1023D00009F0EAC0882319F0823061F0E5C08091ED
+:1023E000F901813009F0E0C0933009F080E080937A
+:1023F000F4012BC08091F901811127C08091FB016C
+:102400008F7009F4D1C08093E9002091EB0020FF88
+:102410001CC0933021F48091EB00806214C0909135
+:10242000EB0090619093EB0021E030E0A90102C045
+:10243000440F551F8A95E2F74093EA001092EA0094
+:102440008091EB0088608093EB001092E90080910E
+:10245000E800877F86C08111A7C01091F9011F771E
+:102460008091E3008078812B8093E3008091E800E5
+:10247000877F8093E8000E94B90F8091E80080FF79
+:10248000FCCF8091E30080688093E300111102C0CB
+:1024900082E001C083E08093F60186C080588230DC
+:1024A00008F082C08091F9019091FA018C3D53E0CF
+:1024B000950779F583E08A838AE289834FB7F89498
+:1024C000DE01139620E03EE051E2E32FF0E050936E
+:1024D0005700E49120FF03C0E295EF703F5FEF707B
+:1024E0008E2F90E0EA3010F0C79601C0C0968D9311
+:1024F0009D932F5F243149F74FBF8091E800877F7C
+:102500008093E8006AE270E0CE0101960E94C00E5E
+:1025100014C0AE014F5F5F4F6091FB010E94070E38
+:10252000BC01009709F440C09091E800977F909318
+:10253000E80089819A810E94230F8091E8008B77BF
+:102540008093E80031C0803879F58091E800877F7A
+:102550008093E8008091F2018093F1008091E8007F
+:102560008E778093E8000E94B90F1EC081111CC0B5
+:102570009091F9019230C0F48091E800877F8093B8
+:10258000E8009093F2010E94B90F8091F20181114D
+:1025900006C08091E30087FD02C081E001C084E0B5
+:1025A0008093F6010E94070D8091E80083FF0AC026
+:1025B0008091E800877F8093E8008091EB00806243
+:1025C0008093EB00AA960FB6F894DEBF0FBECDBF86
+:1025D000DF91CF911F9108950895CF938091F601D7
+:1025E0008823A1F0C091E900CF709091EC00892F71
+:1025F000817090FD80E8C82B1092E9008091E8007E
+:1026000083FD0E949B11CF70C093E900CF91089584
+:1026100090937801809377010895E0917701F0918C
+:102620007801309721F00190F081E02D099480E04D
+:102630000895E0917701F0917801309721F00280C0
+:10264000F381E02D09940895E0917701F0917801EC
+:10265000309721F00480F581E02D099408952091B0
+:102660007501309176018217930771F0909376018E
+:1026700080937501E0917701F0917801309721F016
+:102680000680F781E02D099408952091730130911F
+:1026900074018217930771F0909374018093730112
+:1026A000E0917701F0917801309721F00084F18575
+:1026B000E02D0994089508950C945B130E94B41EB4
+:1026C0000E94D2040C943A1F9F92AF92BF92CF9275
+:1026D000DF92EF92FF920F931F93CF93DF9300D07F
+:1026E00000D000D0CDB7DEB70E94F9040DE010E0B5
+:1026F000AA24A394B12C902E802F0E94E705980164
+:1027000026583E4F6901F901F080F826A1F40150E6
+:10271000110988F78FEF89838A831B820E94BD1E6F
+:102720008160782F9D838C8349815A816B818D8153
+:102730000E94FB132FC09091DD0191FF04C08E8396
+:102740000E94ED058E8125E030E0A501022E01C03A
+:10275000440F0A94EAF7E42E4F21C1F029839A82AC
+:102760008E2191E009F490E09B830E94BD1E816060
+:10277000782F9D838C8349815A816B818D810E9442
+:10278000FB13F6018081E826E08204C02150310964
+:10279000E0F6BDCF0E940821109179010E940D132F
+:1027A0001817B9F00E940D138093790126960FB681
+:1027B000F894DEBF0FBECDBFDF91CF911F910F9177
+:1027C000FF90EF90DF90CF90BF90AF909F900C94D0
+:1027D0000A0C26960FB6F894DEBF0FBECDBFDF9170
+:1027E000CF911F910F91FF90EF90DF90CF90BF900E
+:1027F000AF909F900895CF93DF93CDB7DEB72B971F
+:102800000FB6F894DEBF0FBECDBF4F8358876987E0
+:102810007A878B87DE01119686E0FD0111928A95F9
+:10282000E9F785E0FE01379601900D928A95E1F770
+:1028300049815A816B817C818D819E810E94441ADD
+:102840002B960FB6F894DEBF0FBECDBFDF91CF91B0
+:102850000895CF93882309F4C2C0C82F823859F451
+:102860000E940D1381FDBBC089E30E941E1D0E94C2
+:10287000EB1D89E30CC0833879F40E940D1380FDB1
+:10288000AEC083E50E941E1D0E94EB1D83E50E94E1
+:10289000601DCF910C94EB1D843859F40E940D13E8
+:1028A00082FD9DC087E40E941E1D0E94EB1D87E4EF
+:1028B000EECF8CEF8C0F813A48F48C2F0E9452237C
+:1028C00081118DC08C2F0E941E1DE3CF80E28C0FE2
+:1028D000883048F4C77081E001C0880FCA95EAF7D4
+:1028E0000E94A41DD6CF8BE58C0F833078F4C53AB7
+:1028F00029F0C63A31F083E890E005C081E890E025
+:1029000002C082E890E0CF910C942F1388E58C0FE1
+:10291000833108F064C0C83A39F1C93A41F1CA3A82
+:1029200049F1CB3A51F1CC3A59F1CD3A61F1C03B82
+:1029300069F1CE3A71F1CF3A79F1C13B81F1C23BF5
+:1029400089F1C33B91F1C43B99F1C53BA1F1C63B71
+:10295000A9F1C73BB1F1C83BB9F1C93BC1F1CA3BD1
+:10296000C9F180E090E038C082EE90E035C089EE99
+:1029700090E032C08AEE90E02FC085EB90E02CC052
+:1029800086EB90E029C087EB90E026C08CEC90E0CD
+:1029900023C08DEC90E020C083E891E01DC08AE860
+:1029A00091E01AC082E991E017C084E991E014C077
+:1029B00081E292E011C083E292E00EC084E292E0F4
+:1029C0000BC085E292E008C086E292E005C087E293
+:1029D00092E002C08AE292E0CF910C944513CF912D
+:1029E0000895882309F44BC0823859F40E940D13CE
+:1029F00081FF45C089E30E941E1D0E94EB1D89E3F3
+:102A00000CC0833871F40E940D1380FF38C083E539
+:102A10000E941E1D0E94EB1D83E50E94601D0C9408
+:102A2000EB1D843859F40E940D1382FF28C087E4FF
+:102A30000E941E1D0E94EB1D87E4EFCF9CEF980FB4
+:102A4000913A58F390E2980F983050F4877091E0E3
+:102A500001C0990F8A95EAF7892F0E94AA1DDFCF3E
+:102A60009BE5980F933020F480E090E00C942F13B6
+:102A7000885A833120F480E090E00C944513089547
+:102A8000882321F00E94A41D0C94EB1D0895882337
+:102A900021F00E94AA1D0C94EB1D08957F928F9245
+:102AA0009F92AF92BF92CF92DF92EF92FF920F93DD
+:102AB0001F93CF93DF931F92CDB7DEB77C01C62E55
+:102AC000772EFC01058102950F70128111110E9471
+:102AD000C11D0E94171D882379F0112369F080E23F
+:102AE0008C0D883048F082E00E94001D0E94171D66
+:102AF00091E0D82ED92601C0D12CE72DE295EF70B8
+:102B0000F0E0E059FF4F0C948625872D807F072D3C
+:102B10000F70882311F00295007F112389F00023A4
+:102B200009F490C180E28C0D883020F4802F0E943F
+:102B3000A41D03C0802F0E94B41D0E94EB1D82C102
+:102B40008C2D0E94F114002309F495C180E28C0DB4
+:102B5000883020F4802F0E94AA1D03C0802F0E947D
+:102B6000BA1D0E94EB1D87C1972D907F872D8F7016
+:102B7000903211F08295807FCC2021F0F1E0CF16C9
+:102B8000B1F01EC0112349F0002309F414C1013033
+:102B900009F011C10E94D41D6EC1002319F001304B
+:102BA00009F469C189830E94D71D89810AC1112353
+:102BB00021F0023008F05FC1FEC001115CC101C10B
+:102BC000112321F0002309F4F6C03CC1002309F4CD
+:102BD000F8C03EC1872D86958695837090E000975A
+:102BE00019F0019761F047C1112321F08C2D972D29
+:102BF000937002C080E090E00E942F133CC111232B
+:102C000021F08C2D972D937002C080E090E00E94FF
+:102C1000451331C18C2D112319F00E94102002C0E0
+:102C20000E9478200E94FD2026C1872D837009F024
+:102C300052C0111120C18C2D829586958770880F06
+:102C4000880F9C2D9F70892E912CA12CB12C082EC1
+:102C500004C0880C991CAA1CBB1C0A94D2F7C4FEA1
+:102C600014C00FE010E020E030E0B901A80104C07A
+:102C7000440F551F661F771F8A95D2F7CB01BA0103
+:102C8000609570958095909503C060E070E0CB01F1
+:102C9000272D26952695237030E02230310569F0E6
+:102CA0002330310589F0682979298A299B29213027
+:102CB000310571F00E948C1BDEC0682979298A29B0
+:102CC0009B290E94A81BD7C00E948C1BC501B40180
+:102CD0000E94701BD0C0112319F0872D817001C094
+:102CE0008695882309F4C7C08C2D829586958770B8
+:102CF000880F880F9C2D9F70892E912CA12CB12CB0
+:102D0000082E04C0880C991CAA1CBB1C0A94D2F77C
+:102D1000C4FE14C00FE010E020E030E0B901A801CB
+:102D200004C0440F551F661F771F8A95D2F7CB0149
+:102D3000BA01609570958095909503C060E070E051
+:102D4000CB01272D269526952370422F50E0423047
+:102D5000510569F04330510589F0682979298A299C
+:102D60009B294130510571F00E94661C84C068297E
+:102D700079298A299B290E94821C7DC00E94661C99
+:102D8000C501B4010E944A1C76C08C2D90E0FC0164
+:102D9000E05EF109E531F10508F050C0E058FF4F61
+:102DA0000C9486250C2D0F70872D8F71112331F017
+:102DB0000E94E31B802F0E9440155DC00E94041CEE
+:102DC000802F0E94471557C0112339F0011153C0BD
+:102DD000872D8F710E94291C4EC0023008F04BC015
+:102DE000F7CF112339F0872D8F710E94E31B43C069
+:102DF0001123C9F3872D8F710E94041C3CC011233D
+:102E000029F0872D8F710E94CE1B35C00E94C41BF4
+:102E100032C0112351F0172D1F71812F0E94E31B27
+:102E200063E0812F0E94F71C26C081E00E94001DF4
+:102E3000023008F182E00E94001D1DC0112331F014
+:102E4000002389F28C2D0E94291415C0002391F2D1
+:102E50008C2D0E94F1140FC0472D4F706C2DC701AF
+:102E60000E94C3060E94E81A06C0472D4F706C2DC1
+:102E7000C7010E94790BDD20F9F00E94F31C80FD50
+:102E80001BC0F70112820E94ED1C0E94E31BC701C8
+:102E90000E946B170E94ED1C0F90DF91CF911F9144
+:102EA0000F91FF90EF90DF90CF90BF90AF909F90E9
+:102EB0008F907F900C94041C0F90DF91CF911F9105
+:102EC0000F91FF90EF90DF90CF90BF90AF909F90C9
+:102ED0008F907F9008950F931F93CF93DF93EC0112
+:102EE000888199812B813C81232BB9F09F3F11F47C
+:102EF0008F3F99F0CE010E940A08882371F0688103
+:102F000079818A810E94E91C8C010E949E1C0E948A
+:102F1000651BB801CE010E944E15DF91CF911F9124
+:102F20000F9108950E94C11D0E94D11D0E94961DFF
+:102F30000E94EB1D0E94AE210E94FD2080E090E0E7
+:102F40000E942F1380E090E00C9445130E94B11D65
+:102F50000C9492170E94DE1C292F22952F7030E0CE
+:102F60002C3031054CF42A3031056CF422503109F3
+:102F700022303105A8F407C02C30310569F02F301C
+:102F8000310551F00DC0803F69F018F4803E40F4E7
+:102F900009C0843F29F406C093FB882780F908956F
+:102FA00080E0089581E00895CF93DF9300D000D0B2
+:102FB0001F92CDB7DEB70F900F900F900F900F902C
+:102FC000DF91CF910895CF93DF9300D000D000D050
+:102FD000CDB7DEB726960FB6F894DEBF0FBECDBFD5
+:102FE000DF91CF9108951F93CF93DF93C091880114
+:102FF00016E080918901C81799F0D0E01C9FF0017C
+:103000001D9FF00D1124E657FE4F408151816281D2
+:103010007381848195810E94E3172196C770E9CF5F
+:10302000DF91CF911F9108954091BA015091BB015A
+:103030006091BC017091BD018091BE019091BF0172
+:103040000C94E3178091BF0182958F7009F054C0F2
+:103050008091BC01882309F44FC080918801A09120
+:1030600089016091BA017091BB014091BD015091FD
+:10307000BE01B6E08A1709F43FC090E04115510542
+:10308000C1F17F3F11F46F3FA1F1B89FF001B99FEB
+:10309000F00D1124E657FE4F218172132AC02081C2
+:1030A000621327C02281211124C023813481241777
+:1030B000350710F421503109241B350B283C31050C
+:1030C000C0F42091BF012F7020612093BF0126E042
+:1030D000289FF001299FF00D1124E157FE4F8081B8
+:1030E0008F70806180838AEB91E00E946B170C9453
+:1030F000F31701968770BECF0895CF92DF92EF92BB
+:10310000FF920F931F93CF93DF93CDB7DEB76297F4
+:103110000FB6F894DEBF0FBECDBF8C0185E0F8017D
+:10312000DE011D9601900D928A95E1F7D8014C9130
+:1031300011965C91119712966C9112971396CD90FF
+:10314000DC9014973091BA017091BB018091BD0160
+:103150009091BE01009709F46BC17F3F19F43F3F86
+:1031600009F466C1E090BC01EE2009F4C0C02091D2
+:10317000BF01C816D90628F0F601E81BF90BCF01EC
+:1031800004C0809590958C0D9D1DFF24F394883C80
+:10319000910578F0F12C207F09F0C6C07C2DD98AEA
+:1031A000C88A89890E94D4178AEB91E00E946B1724
+:1031B000B1C0822F807F09F046C0751314C034134C
+:1031C00012C0611110C02F7020612093BF010E94B6
+:1031D00014188AEB91E00E946B178091BF01D8010F
+:1031E00015968C932EC0CD2819F15F3F11F44F3FF7
+:1031F000F9F0F62E61111CC080918801209189019F
+:1032000036E0821709F45AC090E0389FF001399FE8
+:10321000F00D1124E657FE4F7181571306C07081DF
+:10322000471303C07281711103C001968770E9CF03
+:10323000F62E662309F418C18091BF018160809346
+:10324000BF01F12C11C1751308C0341306C0611100
+:1032500004C08091BF01D801C3C04D875E878D85B2
+:103260009E856A8B0E94AA176A898823E1F16623EA
+:10327000D1F12091BF01822F82958F7090E002974B
+:1032800074F08091BA019091BB0198878F83198661
+:10329000DB86CA862C87CE0107960E946B1786E0D4
+:1032A000F801AAEBB1E001900D928A95E1F70E9436
+:1032B00022180E941418FF24F394D6C04D875E870D
+:1032C0008D859E850E94DE1C292F22952F7030E06F
+:1032D000223031050CF0BCC09F7009F0B6C0805E92
+:1032E000883008F4C1C0C8010E946B17E4CFC8162B
+:1032F000D90608F453C0F601E81BF90BCF01883C4E
+:10330000910508F450C0F12C7C2DD98AC88A89898E
+:103310000E94D417EAEBF1E086E0DF011D928A9566
+:10332000E9F70E941418A0C0751314C0341312C01A
+:10333000611110C08091BF01F8018583C8010E940E
+:103340006B1786E0EAEBF1E0DF011D928A95E9F761
+:10335000FE2C8AC04D875E878D859E856A8B0E9474
+:10336000AA176A89882309F4BECF662309F4BBCF64
+:103370002091BF01822F82958F7090E002970CF40C
+:103380008ECF8091BA019091BB019A8389831B8271
+:10339000DD82CC822E83CE0101967FCF80959095E1
+:1033A0008C0D9D1DACCFF62E662309F49CCF7513B2
+:1033B0002EC034132CC02091BF0120FD1FC0822FCE
+:1033C00082958F70D9F0D80115962C9315978F3070
+:1033D00049F08F5F982F9295907F822F8F70892B65
+:1033E00015968C93C8010E946B1786E0F801AAEB32
+:1033F000B1E001900D928A95E1F793CF86E0F80154
+:10340000AAEBB1E001900D928A95E1F72DC04D87AE
+:103410005E878D859E850E94AA17811140CF80917D
+:10342000BF0181608093BF01C8010E946B171CC05F
+:10343000662309F458CF4D875E878D859E850E944F
+:10344000AA17882309F44FCF2ACF811148CF0CC087
+:10345000243031050CF047CF9F7009F440CFF801BC
+:103460009581907F09F03BCF8F2D62960FB6F8942F
+:10347000DEBF0FBECDBFDF91CF911F910F91FF90A7
+:10348000EF90DF90CF9008951F93CF93DF93CDB748
+:10349000DEB72C970FB6F894DEBF0FBECDBF4F83BB
+:1034A000588769877A878B879C87CE0107960E9409
+:1034B0007D18882369F08F8198852A853B85232B89
+:1034C000F1F19F3F09F063C08F3F09F060C037C042
+:1034D00086E0FE013796DE01119601900D928A95E5
+:1034E000E1F76F817885EA85FB85309741F17F3F71
+:1034F00011F46F3F21F12091890130E0C90101965B
+:10350000877099274091880150E08417950709F446
+:1035100047C069837A83FD83EC8396E0929FD00154
+:10352000939FB00D1124A657BE4FFE013196019016
+:103530000D929A95E1F7809389010E94F31716E0A6
+:1035400080918801909189018917C1F1189FC0016C
+:10355000112486579E4F0E947D18882379F1E091AF
+:1035600088011E9FF0011124E657FE4F40815181D2
+:1035700062817381848195810E94E3178091880123
+:1035800090E001968770992780938801D9CF4F8169
+:10359000588569857A858B859C850E94E317CFCFF6
+:1035A0000E94A6171092890110928801EAEBF1E0BF
+:1035B00086E0DF011D928A95E9F7C1CF2C960FB600
+:1035C000F894DEBF0FBECDBFDF91CF911F9108955C
+:1035D000EF92FF920F931F93CF93DF938C0100978D
+:1035E00009F46CC0F12CEE24E394E8012196F80173
+:1035F0008491843740F4843008F051C0813081F0E8
+:10360000823019F15BC0853709F444C0A8F19CE70A
+:10361000980F903708F052C08F770E94F11441C084
+:103620000E5F1F4FFE01C49180E28C0F883048F47A
+:10363000C7708E2D01C0880FCA95EAF70E94C41D7D
+:1036400014C08C2F0E9429142DC00E5F1F4FFE0145
+:10365000C49180E28C0F883058F4C7708E2D01C061
+:10366000880FCA95EAF70E94CA1D0E94EB1D1AC076
+:103670008C2F0E94F11416C00E5F1F4FFE01C491E3
+:10368000CC2381F08FE99FE00197F1F700C00000A3
+:10369000C150F6CF0E5F1F4FFE01F49003C00E9491
+:1036A00029148E018F2D882309F49FCFEFE9FFE0C5
+:1036B0003197F1F700C000008150F5CFDF91CF9135
+:1036C0001F910F91FF90EF90089508956093C401AA
+:1036D0007093C5018093C6019093C7010C94921713
+:1036E0000F931F930091C4011091C5012091C60151
+:1036F0003091C701DC01CB01802B912BA22BB32B86
+:103700008093C4019093C501A093C601B093C701F3
+:103710001F910F910C9492170F931F930091C40166
+:103720001091C5012091C6013091C701DC01CB0188
+:1037300080239123A223B3238093C4019093C501D6
+:10374000A093C601B093C7011F910F910C949217DB
+:103750000F931F930091C4011091C5012091C601E0
+:103760003091C701DC01CB0180279127A227B32725
+:103770008093C4019093C501A093C601B093C70183
+:103780001F910F910C9492171092C0011092C101D9
+:103790001092C2011092C3010C94921741E050E0C4
+:1037A00060E070E004C0440F551F661F771F8A95C4
+:1037B000D2F74093C0015093C1016093C20170934E
+:1037C000C3010C94921741E050E060E070E004C047
+:1037D000440F551F661F771F8A95D2F78091C0014D
+:1037E0009091C101A091C201B091C301482B592B06
+:1037F0006A2B7B2B4093C0015093C1016093C2019F
+:103800007093C3010C94921741E050E060E070E0C7
+:1038100004C0440F551F661F771F8A95D2F7409545
+:103820005095609570958091C0019091C101A091D3
+:10383000C201B091C301482359236A237B234093DB
+:10384000C0015093C1016093C2017093C3010C94F5
+:10385000921741E050E060E070E004C0440F551F53
+:10386000661F771F8A95D2F78091C0019091C101A0
+:10387000A091C201B091C301482759276A277B272D
+:103880004093C0015093C1016093C2017093C30182
+:103890000C9492170F931F930091C0011091C101D6
+:1038A0002091C2013091C301DC01CB01802B912B0F
+:1038B000A22BB32B8093C0019093C101A093C201AE
+:1038C000B093C3011F910F910C9492170F931F9304
+:1038D0000091C0011091C1012091C2013091C3013A
+:1038E000DC01CB0180239123A223B3238093C00169
+:1038F0009093C101A093C201B093C3011F910F9196
+:103900000C9492170F931F930091C0011091C10165
+:103910002091C2013091C301DC01CB0180279127A6
+:10392000A227B3278093C0019093C101A093C20145
+:10393000B093C3011F910F910C9492170895CF92E9
+:10394000DF92EF92FF920F931F93CF93DF938C013F
+:10395000C090C401D090C501E090C601F090C701AD
+:103960008091C0019091C101A091C201B091C301A9
+:10397000C82AD92AEA2AFB2ACFE1D0E0D701C6011A
+:103980000C2E04C0B695A795979587950A94D2F703
+:1039900080FF06C0B8018C2F0E94F809019721F41E
+:1039A000219760F780E001C08C2FDF91CF911F91AC
+:1039B0000F91FF90EF90DF90CF900895CF93DF931A
+:1039C000EC010E949F1CBE010E94F809DF91CF917B
+:1039D0000895CB010E94DE1C08958091C801859551
+:1039E0008595859508958091C8018770089598E020
+:1039F000899F90011124262B2093C8010C94E31B6E
+:103A00002091C801809582238093C801982F9770D8
+:103A100069F430E0482F552747FD509524173507A6
+:103A200029F08595859585950C94041C08959091B1
+:103A3000C801977081E009F480E0089590910C012D
+:103A4000992321F090910D01911109C020910E014F
+:103A500030910F01F90132969FEF40E01FC0982F7F
+:103A60009695969596959F3050F5E0910E01F091C0
+:103A70000F01E90FF11D877021E030E0A90102C0BC
+:103A8000440F551F8A95E2F7CA019181892B8183E2
+:103A900008959F3F39F04F5F4E3041F051915813D8
+:103AA000F8CF0DC05111F7CF942FF5CF9F3F39F0CC
+:103AB000F901E90FF11D97FDFA95828308950895A4
+:103AC00090910C01992321F090910D01911109C061
+:103AD00020910E0130910F01F9013296205F3F4F86
+:103AE0001FC0982F9695969596959F30F0F4E0918B
+:103AF0000E01F0910F01E90FF11D877021E030E018
+:103B0000A90102C0440F551F8A95E2F7CA018095AA
+:103B100091818923818308953196E217F30729F073
+:103B200090819813F9CF1082F7CF089581E090E04B
+:103B3000E0910E01F0910F01E80FF91F108201963C
+:103B400080319105A9F708959091DC01892B80932C
+:103B5000DC01089580959091DC0189238093DC013C
+:103B600008951092DC0108959091DB01892B8093D8
+:103B7000DB01089580959091DB0189238093DB011F
+:103B800008951092DB0108959091DA01892B8093BA
+:103B9000DA01089580959091DA0189238093DA0102
+:103BA00008951092DA0108958093C9010895109242
+:103BB000C901089580910E0190910F01FC01319689
+:103BC0009C01205F3F4F80E0919191118F5FE21740
+:103BD000F307D1F70895E0910E01F0910F01809164
+:103BE000DC018083E0910E01F0910F0190818091C2
+:103BF000DB01892B8083E0910E01F0910F01908110
+:103C00008091DA01892B80838091C901882361F03A
+:103C1000E0910E01F0910F019081892B80830E9429
+:103C2000DA1D81111092C90180910E0190910F014E
+:103C30000C94191320E0009739F0AC014150510960
+:103C4000842395232F5FF7CF822F0895CF92DF92A1
+:103C5000EF92FF926C01EE24FF24C114D104E10421
+:103C6000F10421F0C701B60120E101C020E0C72E18
+:103C7000D82EE92EFF24C114D104E104F10419F077
+:103C8000285FC701B6016B017C0154E0F694E7940C
+:103C9000D794C7945A95D1F7C114D104E104F10423
+:103CA00019F02C5FC701B6016B017C0142E0F6946C
+:103CB000E794D794C7944A95D1F7C114D104E1048D
+:103CC000F10419F02E5FC701B601DC01CB01B695F6
+:103CD000A79597958795892B8A2B8B2B09F02F5FBA
+:103CE000822FFF90EF90DF90CF9008958091F601A2
+:103CF000843021F11092DE0120E488E190E00FB6DB
+:103D0000F894A895809360000FBE2093600080E037
+:103D10000E940A0C83B7817F846083BF83B7816070
+:103D200083BF7894889583B78E7F83BF88E10FB671
+:103D3000F89480936000109260000FBE089508957B
+:103D40000E94E6040E94F9040E949F1E0E94EE0554
+:103D500091E0811101C090E0892F08950E94A6177B
+:103D60000E940D130C940A0C82E084BD93E095BD73
+:103D70009AEF97BD80936E0008952FB7F8948091C5
+:103D8000DF019091E001A091E101B091E2012FBF2C
+:103D90000895CF92DF92EF92FF920F931F932FB768
+:103DA000F8944091DF015091E0016091E101709140
+:103DB000E2012FBF6A017B01EE24FF248C0120E089
+:103DC00030E0C016D106E206F30610F44150510966
+:103DD0009A01281B390BC9011F910F91FF90EF9099
+:103DE000DF90CF9008951F920F920FB60F9211247B
+:103DF0008F939F93AF93BF938091DF019091E001E8
+:103E0000A091E101B091E2010196A11DB11D809345
+:103E1000DF019093E001A093E101B093E201BF9133
+:103E2000AF919F918F910F900FBE0F901F9018959B
+:103E30000E940A10F8942FEF87EA91E62150804003
+:103E40009040E1F700C0000087E090EBDC01809338
+:103E5000FF0190930002A0930102B09302029CE044
+:103E600088E10FB6F894A895809360000FBE9093F8
+:103E70006000FFCF0E94721F811102C00E94581F74
+:103E80000E947D1F8093DD010E94851F90E090932A
+:103E9000F1018093F00187FB882780F980930D0161
+:103EA0000E94811F682F70E080E090E00C94661BF8
+:103EB0006DEE7EEF80E090E00E94C02560E082E041
+:103EC00090E00E94AE2560E083E090E00E94AE2585
+:103ED00060E084E090E00E94AE2560E085E090E044
+:103EE0000C94AE2580E090E00E94A82521E08D3E54
+:103EF0009E4F09F020E0822F089582E090E00C941C
+:103F0000A02583E090E00C94A02584E090E00C9440
+:103F1000A025682F84E090E00C94AE258091E50107
+:103F200080FF0BC06091130185E0689FB0011124F0
+:103F300075956795759567952BC081FF09C0609150
+:103F4000130185E0689FB00111247595679520C025
+:103F500082FF07C06091130185E0689FB0011124C2
+:103F600017C09091E6019923D1F060911201961744
+:103F700088F72091130185E0289F90011124929FDA
+:103F8000A001939F500D112470E0CA010E94722578
+:103F90006038710540F46115710539F002C065E0C3
+:103FA00070E0862F08958FE7089581E0089580914D
+:103FB000E50180FF08C06091110170E0759567957B
+:103FC0007595679521C081FF06C06091110170E071
+:103FD0007595679519C082FF04C06091110170E06A
+:103FE00010C09091E6019923C1F0609110019617DD
+:103FF000A0F780911101899FC001112470E00E94F7
+:1040000072256038710528F46115710521F0862F3D
+:1040100008958FE7089581E0089561E070E0F4CF9E
+:10402000803F21F40E948E1F819504C0813F29F4B6
+:104030000E948E1F8093E9010895823F21F40E941F
+:104040008E1F819504C0833F29F40E948E1F8093A8
+:10405000E8010895893F19F40E94D71F05C08A3FDF
+:1040600031F40E94D71F81958093EA0108958B3F18
+:1040700021F40E94D71F819504C08C3F29F40E942F
+:10408000D71F8093EB010895843F21F48091E701CD
+:10409000816017C0853F21F48091E701826011C0E3
+:1040A000863F21F48091E70184600BC0873F21F4B3
+:1040B0008091E701886005C0883F31F48091E70175
+:1040C00080618093E70108958D3F21F48091E5019F
+:1040D00081600BC08E3F21F48091E501826005C0B4
+:1040E0008F3F29F48091E50184608093E501089574
+:1040F000803F39F48091E90187FF6CC01092E9019B
+:1041000069C0813F29F48091E9011816BCF362C0AF
+:104110009091E801823F29F497FF5CC01092E8017A
+:1041200059C0833F19F41916CCF354C0893F41F4A8
+:104130008091EA0118160CF04DC01092EA014AC0B5
+:104140008A3F29F48091EA0187FF44C0F6CF8B3F74
+:1041500039F48091EB0187FF3DC01092EB013AC02A
+:104160008C3F29F48091EB011816BCF333C0843FD7
+:1041700021F48091E7018E7F17C0853F21F4809163
+:10418000E7018D7F11C0863F21F48091E7018B7F8D
+:104190000BC0873F21F48091E701877F05C0883FEE
+:1041A00031F48091E7018F7E8093E70113C08D3F4A
+:1041B00021F48091E5018E7F0BC08E3F21F4809128
+:1041C000E5018D7F05C08F3F29F48091E5018B7F4C
+:1041D0008093E5018091E80181110EC08091E90191
+:1041E00081110AC08091EA01811106C08091EB0122
+:1041F000811102C01092E601089587EE91E00E94BD
+:1042000024130E94BD1E9093E4018093E30108955E
+:104210001F93CF93DF938091E3019091E4010E947B
+:10422000C91EAC019091E601992321F0209114015F
+:1042300030E006C0209115018AE0289F90011124EA
+:104240004217530708F486C08091E801C091E90144
+:10425000D091EA011091EB01811107C0C11176C024
+:10426000D11174C0111172C075C09F3F19F09F5FCA
+:104270009093E601181624F40E948E1F8093E801A3
+:104280008091E80187FF05C00E948E1F8195809371
+:10429000E8011C1624F40E948E1F8093E90180918E
+:1042A000E90187FF05C00E948E1F81958093E90177
+:1042B0006091E801662339F1C091E901CC2319F13D
+:1042C000772767FD7095872F972F0E94832423E31C
+:1042D00033E343E35FE30E94E7240E9450246093AA
+:1042E000E8016C2F772767FD7095872F972F0E9425
+:1042F000832423E333E343E35FE30E94E7240E9444
+:1043000050246093E9011D1624F40E94D71F809366
+:10431000EA018091EA0187FF05C00E94D71F8195BD
+:104320008093EA01111624F40E94D71F8093EB01B9
+:104330008091EB0187FF05C00E94D71F8195809374
+:10434000EB01DF91CF911F910C94FD209F3F09F06D
+:104350008ECF96CFDF91CF911F910895E7EEF1E0D8
+:1043600085E0DF011D928A95E9F71092E60110922F
+:10437000E5010895833081F128F4813059F08230CD
+:10438000D1F00895853009F449C0B8F1863009F4B8
+:1043900056C0089580911501262F30E0280F311D59
+:1043A0002F3F310524F4680F6093150108958FEFB6
+:1043B00080931501089580911401262F30E0280F75
+:1043C000311D2F3F310524F4680F609314010895C7
+:1043D0008FEF80931401089580911301262F30E010
+:1043E000280F311D2F3F310524F4680F609313010E
+:1043F00008958FEF80931301089580911201262F65
+:1044000030E0280F311D2F3F310524F4680F6093F1
+:10441000120108958FEF8093120108958091110188
+:10442000262F30E0280F311D2F3F310524F4680F6F
+:104430006093110108958FEF809311010895809189
+:104440001001262F30E0280F311D2F3F310524F4B5
+:10445000680F6093100108958FEF80931001089505
+:10446000833011F128F4813049F0823091F00895C1
+:10447000853081F120F18630C1F1089580911501D8
+:10448000681720F4861B809315010895109215017A
+:10449000089580911401681720F4861B80931401FD
+:1044A000089510921401089580911301681720F463
+:1044B000861B809313010895109213010895809133
+:1044C0001201681720F4861B809312010895109240
+:1044D0001201089580911101681720F4861B8093C2
+:1044E000110108951092110108958091100168172B
+:1044F00020F4861B809310010895109210010895F6
+:104500000F931F938D3109F471C008F045C08031BD
+:1045100009F485C008F5873009F46FC068F4863067
+:1045200009F0ADC08091DD01817F8E7F8093DD0138
+:1045300081E08093ED01A4C08B3009F49EC08E30E1
+:1045400009F09DC08091DD0182FB222720F991E0D6
+:10455000922790FB82F96CC0863109F48EC060F41A
+:10456000813109F08CC00E94A61790910D0181E065
+:10457000892780930D0181C0893109F47EC08B3178
+:1045800009F07DC08091DD0181FB222720F991E0B7
+:10459000922790FB81F94CC0853309F466C048F43A
+:1045A000873209F462C008F44FC0893209F45DC053
+:1045B00066C0833438F48A3308F044C0883309F481
+:1045C0005CC05DC0833409F450C0883409F057C022
+:1045D0000E94A6170FEF13ED20E30150104020407A
+:1045E000E1F700C000000E94181F47C00E940A2483
+:1045F0000E940D130E940A0C40C09091DD01892F8A
+:104600008095817080FB90F929F096609860909376
+:10461000DD0136C0997F977F9093DD012EC0809198
+:10462000DD0183FB222720F991E0922790FB83F99B
+:104630008093DD01992309F18091DD0181608093F0
+:10464000DD011BC0895301C08D5141E050E060E0A5
+:1046500070E08A019B0104C0000F111F221F331F4D
+:104660008A95D2F7C901B80104C061E070E080E02A
+:1046700090E00E94661B0E94A61781E001C080E0C6
+:104680001F910F91089580E0089580E008958E5164
+:104690008A3030F4E82FF0E0E65DFE4F8081089527
+:1046A00080E00895CF93C82F8091ED01813079F09B
+:1046B00018F08230E9F186C0E0910E01F0910F010F
+:1046C0008081813169F0823209F07EC009C0E091B9
+:1046D0000E01F0910F018081813111F0823261F47D
+:1046E0008C2F0E944323811104C08C2F0E948022B2
+:1046F0001DC081E090E01AC08C2F0E9445238111DB
+:1047000014C0C43179F048F4CB3079F0C03109F0ED
+:104710005FC082E08093ED0108C0C93219F0C83350
+:1047200021F056C01092ED0153C081E0817052C05B
+:10473000C93281F110F5C43169F1A8F4C73009F02C
+:1047400045C08AE08093150194E19093140193E0B1
+:10475000909313018093120188E08093110188E205
+:104760008093100133C082EE8C0F863078F58C2F49
+:104770000E9447238093EC0129C0CE34E9F020F455
+:10478000CB3421F56AE013C0C13579F0C235F1F4BC
+:1047900061E00DC08091EC01882319F01092EC01CA
+:1047A00015C081E08093ED0115C061E006C08091E5
+:1047B000EC010E94BA210AC06AE08091EC010E94DB
+:1047C000302204C01092ED0180E004C081E002C0FC
+:1047D00080E0ACCFCF910895E1E8F0E0808188607F
+:1047E00080838081816080838FB7F89493E0909379
+:1047F000890090ED909388008FBF0895EFE6F0E078
+:104800008081826080830895EFE6F0E080818D7F73
+:1048100080830895EFE6F0E0908182E0892780832D
+:1048200008951F920F920FB60F9211242F933F936A
+:104830004F935F936F937F938F939F93AF93BF93A8
+:10484000EF93FF938091EE019091EF010196909389
+:10485000EF018093EE01811103C082E00E940A0CF7
+:10486000E091EF01E695E695F0E0ED51F84FE49127
+:104870008091EE018E1303C080E00E940A0CFF912C
+:10488000EF91BF91AF919F918F917F916F915F91C8
+:104890004F913F912F910F900FBE0F901F90189541
+:1048A00004D06894B1118DC0089570D088F09F57DE
+:1048B00090F0B92F9927B751A0F0D1F0660F771F6C
+:1048C000881F991F1AF0BA95C9F712C0B13081F04C
+:1048D00077D0B1E0089574C0672F782F8827B85F2C
+:1048E00039F0B93FCCF3869577956795B395D9F7AD
+:1048F0003EF490958095709561957F4F8F4F9F4FB7
+:104900000895E89409C097FB3EF4909580957095C2
+:1049100061957F4F8F4F9F4F9923A9F0F92F96E90B
+:10492000BB279395F695879577956795B795F11180
+:10493000F8CFFAF4BB0F11F460FF1BC06F5F7F4F1D
+:104940008F4F9F4F16C0882311F096E911C077232F
+:1049500021F09EE8872F762F05C0662371F096E838
+:10496000862F70E060E02AF09A95660F771F881F07
+:10497000DAF7880F9695879597F9089557FD90581F
+:10498000440F551F59F05F3F71F04795880F97FB13
+:10499000991F61F09F3F79F08795089512161306CD
+:1049A0001406551FF2CF4695F1DF08C016161706FC
+:1049B0001806991FF1CF8695710561050894089531
+:1049C000E894BB2766277727CB0197F908950BD08A
+:1049D00078C069D028F06ED018F0952309F05AC03D
+:1049E0005FC01124EECFCADFA0F3959FD1F3950FDE
+:1049F00050E0551F629FF001729FBB27F00DB11D63
+:104A0000639FAA27F00DB11DAA1F649F6627B00DF2
+:104A1000A11D661F829F2227B00DA11D621F739FDB
+:104A2000B00DA11D621F839FA00D611D221F749FE9
+:104A30003327A00D611D231F849F600D211D822F30
+:104A4000762F6A2F11249F5750408AF0E1F0882377
+:104A50004AF0EE0FFF1FBB1F661F771F881F915084
+:104A60005040A9F79E3F510570F014C0AACF5F3F98
+:104A7000ECF3983EDCF3869577956795B795F795B7
+:104A8000E7959F5FC1F7FE2B880F911D969587953F
+:104A900097F9089597F99F6780E870E060E00895BE
+:104AA0009FEF80EC089500240A9416161706180646
+:104AB0000906089500240A94121613061406050622
+:104AC0000895092E0394000C11F4882352F0BB0FB3
+:104AD00040F4BF2B11F460FF04C06F5F7F4F8F4F16
+:104AE0009F4F089597FB072E16F4009407D077FD8B
+:104AF00009D00E948C2507FC05D03EF49095819545
+:104B00009F4F0895709561957F4F0895EE0FFF1F99
+:104B10000590F491E02D0994AA1BBB1B51E107C03D
+:104B2000AA1FBB1FA617B70710F0A61BB70B881F3D
+:104B3000991F5A95A9F780959095BC01CD010895CC
+:104B4000F999FECF92BD81BDF89A992780B5089555
+:104B5000A8E1B0E042E050E00C94C825262FF99976
+:104B6000FECF92BD81BDF89A019700B4021639F0CC
+:104B70001FBA20BD0FB6F894FA9AF99A0FBE08959D
+:104B80000196272F0E94AF250C94AE25DC01CB01A6
+:104B9000FC01F999FECF06C0F2BDE1BDF89A31964D
+:104BA00000B40D9241505040B8F70895F894FFCFEB
+:104BB00002200C0C9A0C770C430C0F0C0101CA015B
+:104BC00028080A03140A404D3639A3075607200760
+:104BD000E7067A069306AC06C5060102030405063D
+:044BE00007080900B9
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/osx_de/keymap.c b/keyboards/ergodox_ez/keymaps/osx_de/keymap.c new file mode 100644 index 000000000..554813d7e --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/osx_de/keymap.c @@ -0,0 +1,364 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_german_osx.h" + +#define BASE 0 +#define SYMB 1 +#define MDIA 2 +#define SMLY 3 +#define NUMB 4 +#define EGOS 5 + +#define M_CTRL_CMDV 0 +#define M_CTRL_CMDC 1 +#define M_MEH_SH_ACUT 2 +#define M_LGUI_SHFT 3 +#define M_CTL_SFT_HASH 4 +#define M_DE_OSX_CIRC_CTRLCMD 5 +#define M_DE_OSX_PLUS_CTRLALT 6 +#define SM_SMILE 7 +#define SM_SMIRK 8 +#define SM_CRY 9 +#define SM_SAD 10 +#define SM_HEART 11 +#define SM_LAUGH 12 +#define SM_KISS 13 +#define SM_FROWN 14 +#define M_TOGGLE_5 15 + +//Layout keymap.c generated with ErgodoxLayoutGenerator V1.0BETA1 +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[BASE]=KEYMAP( +//left half + KC_ESC, DE_OSX_1, DE_OSX_2, DE_OSX_3, DE_OSX_4, DE_OSX_5, M(M_CTL_SFT_HASH), + KC_TAB, DE_OSX_Q, DE_OSX_W, DE_OSX_E, DE_OSX_R, DE_OSX_T, KC_LGUI, + KC_LALT, DE_OSX_A, DE_OSX_S, DE_OSX_D, DE_OSX_F, DE_OSX_G, + KC_LSFT, CTL_T(DE_OSX_Y), DE_OSX_X, DE_OSX_C, DE_OSX_V, DE_OSX_B, KC_LALT, + LT(SYMB,DE_OSX_LESS), M(M_DE_OSX_CIRC_CTRLCMD), M(M_DE_OSX_PLUS_CTRLALT), KC_UP, KC_DOWN, + M(M_MEH_SH_ACUT), TG(MDIA), + KC_HOME, + KC_BSPC, KC_DEL, LT(SMLY,KC_END), + //right half + M(M_CTL_SFT_HASH), DE_OSX_6, DE_OSX_7, DE_OSX_8, DE_OSX_9, DE_OSX_0, DE_OSX_SS, + KC_RGUI, DE_OSX_Z, DE_OSX_U, DE_OSX_I, DE_OSX_O, DE_OSX_P, DE_OSX_UE, + DE_OSX_H, DE_OSX_J, DE_OSX_K, DE_OSX_L, DE_OSX_OE, ALT_T(DE_OSX_AE), + KC_RALT, DE_OSX_N, DE_OSX_M, DE_OSX_COMM, DE_OSX_DOT, CTL_T(DE_OSX_MINS), KC_RSFT, + KC_LEFT, KC_RIGHT, LGUI(KC_LSFT), LALT(KC_LSFT), LT(SYMB,DE_OSX_PLUS), + TG(NUMB), ALL_T(DE_OSX_ACUT), + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC), +[SYMB]=KEYMAP( +//left half + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS, DE_OSX_LESS, DE_OSX_MORE, DE_OSX_EXLM, DE_OSX_QST, KC_TRNS, KC_TRNS, + KC_TRNS, DE_OSX_HASH, DE_OSX_DLR, DE_OSX_BSLS, DE_OSX_SLSH, KC_DOT, + KC_TRNS, KC_TRNS, DE_OSX_LESS, DE_OSX_PERC, DE_OSX_PIPE, DE_OSX_TILD, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_DEL, KC_TRNS, + //right half + M(M_TOGGLE_5), KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), DE_OSX_LESS, DE_OSX_MORE, DE_OSX_EXLM, + DE_OSX_SLSH, DE_OSX_LPRN, DE_OSX_RPRN, LALT(KC_8), LALT(KC_9), DE_OSX_HASH, + KC_TRNS, DE_OSX_PIPE, DE_OSX_TILD, DE_OSX_CIRC, KC_UP, DE_OSX_MINS, LSFT(KC_4), + DE_OSX_QUOT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, + KC_F13, KC_F12, + KC_F14, + KC_F15, KC_TRNS, KC_TRNS), +[MDIA]=KEYMAP( +//left half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, + KC_TRNS, KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_R, KC_BTN3, 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 half + KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_VOLD, KC_TRNS, KC_MPRV, KC_MNXT, KC_UP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK), +[SMLY]=KEYMAP( +//left half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 half + M(SM_SMILE), M(SM_SMIRK), M(SM_LAUGH), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, M(SM_FROWN), M(SM_SAD), M(SM_CRY), KC_TRNS, KC_TRNS, KC_TRNS, + M(SM_HEART), M(SM_KISS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), +[NUMB]=KEYMAP( +//left half + 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_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, + //right half + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_UP, KC_7, KC_8, KC_9, LSFT(KC_RBRC), KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, KC_RBRC, DE_OSX_MINS, + KC_TRNS, LSFT(KC_6), KC_1, KC_2, KC_3, LSFT(KC_7), KC_TRNS, + KC_0, KC_DOT, KC_COMM, DE_OSX_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), +[EGOS]=KEYMAP( +//left half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_TRNS, KC_TRNS, + KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_F1, KC_F2, + KC_F3, + KC_SPC, KC_LCTL, KC_F4, + //right half + M(M_TOGGLE_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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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) +{ +static uint16_t start; +switch(id) { +case M_TOGGLE_5: +//Macro: M_TOGGLE_5//----------------------- + if (record->event.pressed){ + layer_state ^= (1<<5); + layer_state &= (1<<5); + } + +break; +case M_CTRL_CMDC: +//Macro: M_CTRL_CMDC//----------------------- +if (record->event.pressed) { + start = timer_read(); + return MACRO(D(LCTRL),END); + } else { + if (timer_elapsed(start) >150) { + return MACRO(U(LCTRL),END); + } else { + return MACRO(U(LCTRL),D(LGUI),T(C),U(LGUI),END); + } + } + +break; +case M_DE_OSX_PLUS_CTRLALT: +//Macro: M_DE_OSX_PLUS_CTRLALT//----------------------- +if (record->event.pressed) { + start = timer_read(); + return MACRO(D(LCTRL),D(LALT),END); + } else { + if (timer_elapsed(start) >150) { + return MACRO(U(LCTRL),U(LALT),END); + } else { + return MACRO(U(LCTRL),U(LALT),T(RBRC),END); + } + } + +break; +case SM_KISS: +//Macro: SM_KISS//----------------------- +if (record->event.pressed) { + return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(RBRC),U(LSFT),END); + } + +break; +case SM_FROWN: +//Macro: SM_FROWN//----------------------- +if (record->event.pressed) { + return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LALT),T(8),U(LALT),END); + } + +break; +case SM_CRY: +//Macro: SM_CRY//----------------------- +if (record->event.pressed) { + return MACRO(D(LSFT),T(COMM),U(LSFT),T(SLSH),D(LSFT),T(8),U(LSFT),END); + } + +break; +case SM_SMILE: +//Macro: SM_SMILE//----------------------- +if (record->event.pressed) { + return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(9),U(LSFT),END); + } + +break; +case SM_SMIRK: +//Macro: SM_SMIRK//----------------------- +if (record->event.pressed) { + return MACRO(D(LSFT),T(COMM),U(LSFT),T(SLSH),D(LSFT),T(9),U(LSFT),END); + } + +break; +case M_LGUI_SHFT: +//Macro: M_LGUI_SHFT//----------------------- +if (record->event.pressed){ + return MACRO(D(LGUI),D(LSFT),END); + }else{ + return MACRO(U(LGUI),U(LSFT),END); + } + +break; +case SM_HEART: +//Macro: SM_HEART//----------------------- +if (record->event.pressed) { + return MACRO(T(GRV),T(3),END); + } + +break; +case SM_LAUGH: +//Macro: SM_LAUGH//----------------------- +if (record->event.pressed) { + return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(D),U(LSFT),END); + } + +break; +case M_CTL_SFT_HASH: +//Macro: M_CTL_SFT_HASH//----------------------- +if (record->event.pressed) { + start = timer_read(); + return MACRO(D(LCTRL),D(LSFT),END); + } else { + if (timer_elapsed(start) >150) { + return MACRO(U(LCTRL),U(LSFT),END); + } else { + return MACRO(U(LCTRL),U(LSFT),T(BSLS),END); + } + } + +break; +case SM_SAD: +//Macro: SM_SAD//----------------------- +if (record->event.pressed) { + return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(8),U(LSFT),END); + } + +break; +case M_DE_OSX_CIRC_CTRLCMD: +//Macro: M_DE_OSX_CIRC_CTRLCMD//----------------------- +if (record->event.pressed) { + start = timer_read(); + return MACRO(D(LCTRL),D(LGUI),END); + } else { + if (timer_elapsed(start) >150) { + return MACRO(U(LCTRL),U(LGUI),END); + } else { + return MACRO(U(LCTRL),U(LGUI),T(NUBS),END); + } + } + +break; +case M_CTRL_CMDV: +//Macro: M_CTRL_CMDV//----------------------- +if (record->event.pressed) { + start = timer_read(); + return MACRO(D(LCTRL),END); + } else { + if (timer_elapsed(start) >150) { + return MACRO(U(LCTRL),END); + } else { + return MACRO(U(LCTRL),D(LGUI),T(V),U(LGUI),END); + } + } + +break; +case M_MEH_SH_ACUT: +//Macro: M_MEH_SH_ACUT//----------------------- +if (record->event.pressed) { + start = timer_read(); + return MACRO(D(LCTRL),D(LSFT),D(LALT),END); + } else { + if (timer_elapsed(start) >150) { + return MACRO(U(LCTRL),U(LSFT),U(LALT),END); + } else { + return MACRO(U(LCTRL),U(LALT),T(EQL),U(LSFT),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); + +ergodox_board_led_off(); +ergodox_right_led_1_off(); +ergodox_right_led_2_off(); +ergodox_right_led_3_off(); +switch (layer) { + + case SYMB: + ergodox_right_led_1_on(); + + + break; + case MDIA: + + ergodox_right_led_2_on(); + + break; + case SMLY: + + + ergodox_right_led_3_on(); + break; + case NUMB: + ergodox_right_led_1_on(); + + ergodox_right_led_3_on(); + break; + case EGOS: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); + break; +default: +// none +break; +} + +}; + diff --git a/keyboards/ergodox_ez/keymaps/osx_de/osx_de_highres.png b/keyboards/ergodox_ez/keymaps/osx_de/osx_de_highres.png Binary files differnew file mode 100644 index 000000000..d442a992c --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/osx_de/osx_de_highres.png diff --git a/keyboards/ergodox_ez/keymaps/osx_de/readme.md b/keyboards/ergodox_ez/keymaps/osx_de/readme.md new file mode 100644 index 000000000..5011a9dd6 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/osx_de/readme.md @@ -0,0 +1,41 @@ +#Ergodox EZ für OSX + +Dies ist nur ein kleiner Tweak der bestehenden firmware für das ErgoDox-EZ-Keyboard. Leider passte das layout nicht wirklich für OSX, deswegen habe ich einige Anpassungen gemacht. Dabei wurden folgende features umgesetzt: + +- Die Umlaute sollten an einigermassen sinnvollen Plätzen liegen +- der Umstieg sollte dadurch erleichtert werden, dass einige Tasten an ihren "normalen" Platz zurückgewandert sind. Z.B. ESC, Tab,... +- die Leertaste ist jetzt auf der rechten seite, neben Enter. Dafür hat der linke Daumen nun Backspace und Delete. +- die CMD- und Alt-Tasten sind in der Mitte einfach erreichbar. +- es gibt eine neue Layer die für Spiele genutzt werden kann (egosooter wie Counter Strike). Dort liegen die wichtigsten Tasten auf der linken Seite, im Daumenblock z.B. space und ctrl sowie die F-Tasten 1-4. Diese Layer ist über die Symbollayer erreichbar. +- Die Symbollayer wurde dahingehend angepasst, dass die klammern, etc nun auf beiden hälften der Tastatur zu finden sind +- der Zehnerblock wurde in eine eigene Layer umgezogen +- die Meh und Hyper-Tasten wurden in die Daumenblöcke umgezogen + +# Erstellt Mit Dem ErgodoxLayoutGenerator + +Der ErgodoxLayoutGenerator ist ein kleines Werkzeug, welches die Erstellung und Pflege der eigenen Keymaps erleichtern soll. Es ist in java geschrieben und kann [hier](https://github.com/sboesebeck/ErgodoxLayoutGenerator/releases) heruntergeladen werden. Damit das Tool funktioniert sollte das offizielle Oracle JDK in aktueller Version installiert sein. +Die Dokumentation für den ELG kann man [hier](https://boesebeck.name/2016/04/16/ergodoxlayoutgenerator-documentation/) nachlesen (momentan leider nur in Englisch verfügbar). + + + +------------------------------ + +# ErgoDox EZ for OSX + +This is only a little tweak of the existing default layout for the ErgoDox keyboard. Unfortunately the default layout did not work well with german OSX, so I created som adjustments. These were the features added and changed: + +- the umlaut-keys should be at their useful place more or less +- the switching should be made more easy so some other keys (like tab, esc) were moved to their default place +- the space key can now be used with both hands +- the CMD- and ALT-Keys moved to the middle, can be reached more easily. +- there is a new layer for using the cursor-keys, placed like on the default keyboard. This makes them useable for games also +- the symbollayer now has only symbols +- the number block was moved to a special layer +- meh and hyper went down to the thumb block + +# Created Using the ErgodoxLayoutGenerator + +The ErgodoxLayoutGenerator (ELG) is a little tool, which makes the creation and maintenance of keycaps a lot easier. It was written in Java and can be downloaded [here](https://github.com/sboesebeck/ErgodoxLayoutGenerator/releases). To use the tool, you need to have a current version of Oracles JDK installed. + +The documentation of the ELG can be viewed [here](https://boesebeck.name/2016/04/16/ergodoxlayoutgenerator-documentation/). + diff --git a/keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/compiled.hex b/keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/compiled.hex new file mode 100644 index 000000000..3351a628f --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/compiled.hex @@ -0,0 +1,1152 @@ +:100000000C9421030C9465030C9465030C94650314
+:100010000C9465030C9465030C9465030C946503C0
+:100020000C9465030C9465030C94850E0C94570F87
+:100030000C9465030C9465030C9465030C946503A0
+:100040000C9465030C9411220C9465030C946503C5
+:100050000C9465030C94F31C0C9465030C946503D9
+:100060000C9465030C9465030C9465030C94650370
+:100070000C9465030C9465030C9465030C94650360
+:100080000C9465030C9465030C9465030C94650350
+:100090000C9465030C9465030C9465030C94650340
+:1000A0000C9465030C9465030C946503C40FE60F70
+:1000B000D410E60FD4102B104E10D410A310B6108D
+:1000C00085138513B413B413EA130A143B153B15B7
+:1000D00015143B15C514C5142C153B153B153515CA
+:1000E000D214D214D214D214D214D214D214D214E0
+:1000F000D214D214D214D214D214D214D214D214D0
+:10010000E414F114F814FF14091529002B0003530B
+:10011000E100354100001E000E000B001B61640071
+:100120004D001F00370004001400E1044C002000C3
+:1001300012000800340050002A00210036000C0094
+:100140002F004F004A0022001D001800330000005D
+:100150000253E000E3000000E20000002E67E4002C
+:10016000E7000000E60000002E6F230019000700E2
+:1001700005000000045324000A0017001300520079
+:100180004B002500060015001A0051002C00260027
+:100190000F0011001000E108280027002D001600B4
+:1001A0000D6130004E0038001C000942E50031416D
+:1001B00000000100010001000100010000003A0000
+:1001C000350031000100010001003B003502210231
+:1001D000640001004C003C001E02240622020100C3
+:1001E00001003D002D0224022404010001003E0014
+:1001F00001003700110400000100010001000000AF
+:1002000001000000010001000100000001000000E9
+:1002100001003F00240624022302000001004000E8
+:1002200022042502350001000100410023042602BA
+:100230003502370001004200240425041F021E027B
+:100240000100430031002604310201000100440096
+:10025000450001002D020100000001000100010025
+:10026000010001000000010001000100FB0001008D
+:10027000010001000100F200F9000100010001008D
+:10028000F000F100FA00F400010001000100F300A9
+:10029000FC00F5000100010001000100F600000073
+:1002A0000100010001000000010000000100010048
+:1002B0000100000001000000010001000100010038
+:1002C000010000000100010001000100A800A900D8
+:1002D0000100010001000100AC00AA00B60001000D
+:1002E00001000100AB00500001000100010001000D
+:1002F000520051000100AE000100010001004F005A
+:10030000000029002B000100E100354100001E0023
+:10031000140004001D6164004D001F001A00160047
+:100320001B00E1044C0020000800070006005000FC
+:100330002A0021001500090019004F004A00220080
+:1003400017000A000500000001001908E300000082
+:10035000E20000002E670608E7000000E60000004B
+:100360002E6F23001C000B00110000000100240070
+:1003700018000D00100052004B0025000C000E006C
+:10038000360051002C00260012000F003700E10853
+:100390002800270013003300386130004E002D0084
+:1003A0002F003442E500314100000100010001004E
+:1003B0000100010000000100010001000100010036
+:1003C00001000100010050000100010001000100D6
+:1003D00052005100010001000100010001004F0026
+:1003E0000100010001000100010001000100000006
+:1003F00001000100010000000100000001000100F7
+:10040000010000000100000001003F005200510007
+:100410002302000001004000240021001E002700EC
+:1004200001004100250022001F00370001004200AA
+:100430002600230020002700010043003002300086
+:1004400024022E00010044004500010001000100CB
+:10045000000016034500720067006F0044006F0043
+:100460007800200045005A00000016034500720085
+:1004700067006F0044006F007800200045005A00BC
+:1004800000000403090409026D00040100A0FA0938
+:1004900004000001030101000921110100012240B3
+:1004A000000705810308000A090401000103010295
+:1004B00000092111010001224D00070582030800F7
+:1004C0000A090402000103000000092111010001D2
+:1004D0002236000705830308000A0904030001030C
+:1004E00000000009211101000122390007058403E1
+:1004F0001000011201100100000008EDFE071301B9
+:10050000000102000105010906A101050719E02902
+:10051000E7150025019508750181020508190129D3
+:10052000059505750191029501750391010507195E
+:1005300000297715002501957875018102C0050114
+:100540000980A101850216010026B7001A01002AC0
+:10055000B700751095018100C0050C0901A1018546
+:1005600003160100269C021A01002A9C02751095B0
+:10057000018100C005010902A1010901A1000509CD
+:1005800019012905150025019505750181029501BF
+:10059000750381010501093009311581257F950217
+:1005A0007508810609381581257F95017508810632
+:1005B000050C0A38021581257F950175088106C052
+:1005C000C005010906A101050719E029E715002565
+:1005D00001950875018102950175088101050819C9
+:1005E0000129059505750191029501750391010594
+:1005F00007190029FF150026FF00950675088100E0
+:10060000C00000000000000000000000010204061D
+:100610000A0F17202C3A4A5D71879DB3C7DAE9F5B6
+:10062000FCFFFCF5E9DAC7B39D87715D4A3A2C20DF
+:10063000170F0A060402010000000000000000007D
+:10064000000011241FBECFEFDAE0DEBFCDBF04B63D
+:1006500003FE24C08091FD019091FE01A091FF0155
+:10066000B09100028730904BA740B04BB9F4109284
+:10067000FD011092FE011092FF011092000214BEC3
+:1006800084B7877F84BF88E10FB6F89480936000B9
+:10069000109260000FBEE0E0FFE3099511E0A0E0DA
+:1006A000B1E0E0EBF7E402C005900D92A433B1078E
+:1006B000D9F711E0A4E3B1E001C01D92AD3FB1074D
+:1006C000E1F70E94CD0B0C94D6230C9400001092FD
+:1006D000B9008AE08093B800089594EA9093BC0032
+:1006E0009091BC0097FFFCCF9091B900987F983013
+:1006F00021F0903111F081E008958093BB0084E8EF
+:100700008093BC008091BC0087FFFCCF8091B90032
+:10071000887F883111F0803471F780E0089584E992
+:100720008093BC008091BC0084FDFCCF0895809331
+:10073000BB0084E88093BC008091BC0087FFFCCFA5
+:100740009091B900987F81E0983209F480E0089593
+:1007500084E88093BC008091BC0087FFFCCF80912F
+:10076000BB00089580B38C7080BB81B3836F81BB65
+:10077000089580910101811115C080E40E946D03EC
+:100780008093010181110CC082E10E949703809344
+:100790000101811105C08FEF0E9497038093010131
+:1007A0000E948F0384B1807F84B985B1807F85B931
+:1007B0008AB1837F8AB98BB1837F8BB93E98469883
+:1007C00008950E948305809301010E94B9030E944D
+:1007D000B203A5E3B1E0E3E4F1E08EE08E0F119205
+:1007E0001D928E13FCCF0C946D050E94830580939F
+:1007F00001010E94B9030E94B203A5E3B1E0E3E462
+:10080000F1E08EE08E0F11921D928E13FCCF0895B1
+:10081000BF92CF92DF92EF92FF920F931F93CF93ED
+:10082000DF9380910101882379F0809134018F5FFB
+:1008300080933401811108C00E94830580930101D7
+:10084000811102C00E94150505E311E0C0E0D0E06F
+:10085000DD24D39482E0C82EEE24E394F12CC7303B
+:10086000D10500F580910101811164C080E40E94EE
+:100870006D0380930101811112C082E10E949703F0
+:100880008093010181110BC0C7010C2E01C0880F9C
+:100890000A94EAF780950E949703809301010E94D1
+:1008A0008F0348C0CA30A1F028F4C83059F0C930CD
+:1008B00061F005C0CC3089F070F0CD3089F0209A1D
+:1008C000289810C0219A29980DC0229A2A980AC007
+:1008D000239A2B9807C0529A01C0539A5B9802C082
+:1008E0003E9A469890EA9A95F1F79FB1799902C09D
+:1008F00082E001C080E091709D25982B7C9902C018
+:1009000084E001C080E0892B7D9902C038E001C0FD
+:1009100030E0832B7E9902C020E101C020E0822BD1
+:100920009FB19095991F9927991F9295990F907E45
+:10093000892B0FC080910101811149C080E40E9480
+:100940006D0380930101882379F1B12C0E948F03FC
+:100950008B2DF8019081981719F08083C0920001C7
+:100960000E94B90321960F5F1F4FCE30D10509F0C9
+:1009700076CF80910001882361F18150809300013E
+:10098000882339F08FE99FE00197F1F700C000005C
+:1009900020C0A3E4B1E0E5E3F1E0CF01825F9191F3
+:1009A0009D938E13FCCF15C083E10E949703809323
+:1009B00001018111CACF81E40E946D03809301017E
+:1009C0008111C3CF0E94A803B82EB094BFCF80E09E
+:1009D000C0CF0E94130581E0DF91CF911F910F914D
+:1009E000FF90EF90DF90CF90BF900895E82FF0E058
+:1009F000ED5BFE4F8081089508950F931F93CF9371
+:100A0000DF93C3E4D1E010E00C2F025F899190E006
+:100A10000E941A1C180F0C13F9CF812FDF91CF9170
+:100A20001F910F9108950C94E30556985E982598B0
+:100A30002D9826982E9827982F988FEF90E09093D6
+:100A400089008093880090938B0080938A00909314
+:100A50008D0080938C00259A2D9A2FEF80E792E0ED
+:100A6000215080409040E1F700C00000269A2E9A65
+:100A70002FEF80E792E0215080409040E1F700C0E6
+:100A80000000279A2F9A2FEF80E792E021508040B4
+:100A90009040E1F700C0000025982D982FEF80E7E7
+:100AA00092E0215080409040E1F700C0000026987D
+:100AB0002E982FEF80E792E0215080409040E1F7A0
+:100AC00000C0000027982F9856985E9825982D987A
+:100AD00026982E9827982F98089589EA8093800069
+:100AE00089E08093810024982C983F988AB18F7474
+:100AF0008AB96E98479A8BB1806B8BB9769A0E94AF
+:100B000015050C94E20580E280930101809151016A
+:100B100081110EC00E94670381E0809351012FEF85
+:100B200083ED90E3215080409040E1F700C0000049
+:100B300080E40E946D038093010181112EC00E9408
+:100B4000970380930101811128C00E94970380932D
+:100B50000101811122C08FE30E949703809301015C
+:100B600081111BC00E948F0380E40E946D0380935B
+:100B70000101811112C08CE00E9497038093010152
+:100B800081110BC00E94970380930101811105C060
+:100B90008FE30E949703809301010E948F0380914D
+:100BA0000101089561110BC0FC018281882321F0AD
+:100BB00085EE0E94291203C085EE0E94F11280E0AA
+:100BC00090E0089508956091BE017091BF018091F9
+:100BD000C0019091C1010E94261C56985E982598EC
+:100BE0002D9826982E9827982F98089581E008959B
+:100BF00081E008950C94F8050895282F882339F092
+:100C000090E02A3010F44D9608950697089587E2F3
+:100C100090E00895AF92BF92DF92EF92FF920F9310
+:100C20001F93CF93DF938C01FC01C081D181CE0152
+:100C30000E949F1ABE010E947A09EC01B8010E942D
+:100C4000FA05882309F4C9C1F8018281882309F4CF
+:100C5000BEC080915E0181111FC0C431F0E7DF0783
+:100C600009F0B5C10E94FC0581E080935E010E94FD
+:100C7000BD1C90935D0180935C0110925501109210
+:100C8000570110925601109259011092580110927A
+:100C90005B0110925A01A1C180915C0190915D01AC
+:100CA0000E94C91C883C910570F480915501E82F81
+:100CB000F0E0EE0FFF1FEA5AFE4FD183C0838F5F33
+:100CC000809355018AC1C13020E8D20708F451C091
+:100CD000F8018281882309F47EC05E01E894B7F8A8
+:100CE00080915401813079F050F08230C1F482EE6D
+:100CF0000E94291287E50E94291287E50EC082EE24
+:100D00000E9429120CC080EE0E94291281EE0E94DE
+:100D1000291288E10E94291288E10E94F1128CE0D8
+:100D2000E82EF12CC5010E2C02C0969587950A94E9
+:100D3000E2F78F700E94FD05D82E0E9429128D2D9A
+:100D40000E94F112F4E0EF1AF1082CEFE2162FEFF7
+:100D5000F20641F780915401813029F010F0823081
+:100D600041F482EE04C080EE0E94F11281EE0E94F6
+:100D7000F112C43180E7D80768F4C23090E7D90790
+:100D800008F046C0C115E0E7DE0771F0C130D0477A
+:100D9000A1F10CC1C33320E7D20709F4D8C0C43392
+:100DA000D04709F4EBC002C1F8018281882309F41D
+:100DB00002C10E94A615FFEF24E38CE0F150204011
+:100DC0008040E1F700C000000E94181D06C1C1303C
+:100DD00080E8D80770F2C43120E7D20708F0B3C02A
+:100DE000C23080E7D807A0F4C11590E7D90709F40D
+:100DF000E2C0C130D04709F0D9C0F8018281882310
+:100E000009F4D9C08091DB0181608093DB01E5C0EA
+:100E1000F8018281882309F4CEC00E94721D8111DD
+:100E200002C00E94581D0E94851D90E09093EF0122
+:100E30008093EE01C230F0E7DF0721F48091EE01EC
+:100E400081607AC0C33020E7D20721F48091EE019F
+:100E5000826072C0C43080E7D80721F48091EE012F
+:100E600084606AC0C53090E7D90719F48091EE011B
+:100E700027C0C630E0E7DE0721F48091EE018061F3
+:100E80005BC0C730F0E7DF0721F48091EE0180629C
+:100E900053C0C83020E7D20721F48091EE0180646E
+:100EA0004BC0C93080E7D80721F48091EE018068FB
+:100EB00043C0CA3090E7D90729F48091EE018460DD
+:100EC00088603AC0CB30E0E7DE0721F48091EE0184
+:100ED0008E7F32C0CC30F0E7DF0721F48091EE0145
+:100EE0008D7F2AC0CD3020E7D20721F48091EE011A
+:100EF0008B7F22C0CE3080E7D80719F48091EE01B5
+:100F00001AC08091EE01CF3090E7D90711F48F7E9F
+:100F100013C0C031E0E7DE0711F48F7D0DC0C13191
+:100F2000F0E7DF0711F48F7B07C0C231D04711F41F
+:100F30008F7702C08B7F877F8093EE018091EE01D7
+:100F40000E94891D4AC0C333F0E7DF07A1F4F8010E
+:100F50008281882321F01092520182E016C0809194
+:100F60005201811106C086E20E94291286E20E9487
+:100F7000F11282E018C0C433D047C1F4F801828175
+:100F8000882331F01092530180E20E94401325C063
+:100F900080915301811106C087E20E94291287E2E5
+:100FA0000E94F11280E20E94471317C081E08093F3
+:100FB000520180935301C801DF91CF911F910F918E
+:100FC000FF90EF90DF90BF90AF900C94F605C1308A
+:100FD000F0E8DF0708F081CECCCE80E0DF91CF9142
+:100FE0001F910F91FF90EF90DF90BF90AF90089509
+:100FF00026E0729FF001112444E5849FE00DF11D6D
+:101000001124E60FF11DEE0FFF1FE65FFE4F8591E5
+:1010100094910E948C09811560E49607B0F58115C2
+:1010200070E3970708F0DEC0803E9105D8F4803C5D
+:10103000910508F06CC0883A910578F4853A9105DD
+:1010400008F06BC08130910509F452C108F40FC15A
+:101050008430910508F04CC10AC18B3B910508F41E
+:1010600067C005C18F3F910509F048F4803F9105A5
+:1010700008F0ADC0883E910508F43AC1F8C081156A
+:1010800020E2920708F0A5C00895811543E5940772
+:1010900090F4811562E5960708F0C8C0811571E5E6
+:1010A000970708F0BEC0811520E5920708F09DC0A3
+:1010B0009F70906A0895811545E59407D8F48115CD
+:1010C00064E5960708F0C8C0482F4695469570E23B
+:1010D000479FA00111248370992721E030E0B901D6
+:1010E00002C0660F771F8A95E2F7CB01842B952B00
+:1010F0009A680895811576E5970708F4B2C09C01B7
+:1011000030562115304108F0B2C09F70AEC0FC01CE
+:10111000EE0FFF1FE657F04062C0853A910509F4D3
+:10112000A9C0863A910509F0A8C082E890E4089524
+:10113000883A910509F4A4C0893A910509F4A3C03D
+:101140008A3A910509F4A2C08B3A910509F4A1C02D
+:101150008C3A910509F4A0C08D3A910509F49FC01D
+:10116000803B910509F49EC08E3A910509F49DC01B
+:101170008F3A910509F49CC0813B910509F49BC00D
+:10118000823B910509F49AC0833B910509F499C00B
+:10119000843B910509F498C0853B910509F497C0FB
+:1011A000863B910509F496C0873B910509F495C0EB
+:1011B000883B910509F494C0893B910509F493C0DB
+:1011C0008A3B910509F492C080E094E4089590650B
+:1011D0000895FC01FF70EE0FFF1FE65FFE4F859143
+:1011E000949108959927906C0895482F437021E0B9
+:1011F00030E002C0220F331F4A95E2F73C68AC0191
+:1012000064E0569547956A95E1F74370342B8F70EB
+:101210008695869560E2869FC0011124822B932BD0
+:101220000895982F8827816F906A0895482F4695D2
+:10123000469570E2479FA00111248370992721E011
+:1012400030E0B90102C0660F771F8A95E2F7CB0143
+:10125000842B952B9C680895982F8827846F906A1B
+:1012600008958F719927982F88279062089580E0BC
+:1012700090E0089581E890E4089583E890E408956B
+:1012800082EE94E4089589EE94E408958AEE94E45D
+:10129000089585EB94E4089586EB94E4089587EB34
+:1012A00094E408958CEC94E408958DEC94E408950E
+:1012B00083E895E408958AE895E4089582E995E441
+:1012C000089584E995E4089581E296E4089583E21F
+:1012D00096E4089584E296E4089585E296E40895FC
+:1012E00086E296E4089587E296E408958AE296E419
+:1012F0000895089596E0799FF001112494E5899F5F
+:10130000E00DF11D1124E60FF11DEE0FFF1FE65F4A
+:10131000FE4F8591949108958238910549F1B0F47A
+:101320008133910509F458C048F48932910509F4D4
+:101330004EC08A32910509F454C008958533910551
+:1013400009F440C08933910599F00895833E9105D1
+:1013500029F138F4803E910591F0823E9105A1F08B
+:101360000895863E9105F9F0873E910531F1089583
+:101370002091EE0120FD3AC021FD38C008958091F2
+:10138000EE0180FD35C032C08091EE0182FF32C097
+:101390008091EE0184FD30C083EE39C08091EE0172
+:1013A00082FD28C0F5CF8091EE0183FF27C0809198
+:1013B000EE0184FD21C087EE2AC08091EE0183FDFD
+:1013C0001DC0F5CF8091EE0185FD1AC01BC0809134
+:1013D000EE0185FD17C014C08091EE0186FD14C09A
+:1013E00015C08091EE0186FD11C00EC080EE0FC0C9
+:1013F00089E30DC082EE0BC080E009C086EE07C015
+:1014000089E205C085E303C08AE201C081E390E080
+:10141000089508950C94090A80916F010895CF935F
+:10142000DF9300D01F92CDB7DEB79C018091F4010D
+:10143000843019F593E099833B832A839093E900E4
+:101440008FEF9091E800815095FD06C095ED9A953B
+:10145000F1F700008111F5CF8091E80085FF0DC004
+:1014600040E050E063E070E0CE0101960E94750C10
+:101470008091E8008E778093E8000F900F900F9096
+:10148000DF91CF910895CF93DF9300D01F92CDB716
+:10149000DEB72091F401243021F522E029839B83DB
+:1014A0008A8383E08093E9008FEF9091E800815078
+:1014B00095FD06C095ED9A95F1F700008111F5CFE5
+:1014C0008091E80085FF0DC040E050E063E070E0EF
+:1014D000CE0101960E94750C8091E8008E77809372
+:1014E000E8000F900F900F90DF91CF910895209119
+:1014F000F4012430F1F422E02093E9002FEF309141
+:10150000E800215035FD06C035ED3A95F1F70000B1
+:101510002111F5CF2091E80025FF0BC040E050E0FD
+:1015200065E070E00E94750C8091E8008E778093F2
+:10153000E8000895CF93DF93EC019091F40194308B
+:1015400009F046C080910C018823D9F080910D01EB
+:101550008823B9F09093E9008FEF9091E8008150D3
+:1015600095FD06C095E19A95F1F700008111F5CF40
+:101570008091E80085FF2CC040E050E060E170E021
+:1015800017C081E08093E9008FEF9091E8008150CF
+:1015900095FD06C095ED9A95F1F700008111F5CF04
+:1015A0008091E80085FF14C040E050E068E070E002
+:1015B000CE010E94750C8091E8008E778093E80040
+:1015C00080E1FE01AFE5B1E001900D928A95E1F76F
+:1015D000DF91CF9108958091F301811109C00E949C
+:1015E0000A0E0E94670E8091E20084608093E20000
+:1015F00008951092F301089508950C94FE210E941D
+:10160000AE1C0E9404220E940D110C940A0A42E0B2
+:1016100061EC81E00E94840D42E061EC82E00E9476
+:10162000840D42E061EC83E00E94840D42E161ECB4
+:1016300084E00C94840D8091F601833009F455C048
+:1016400030F4813071F0823009F48EC008958A3010
+:1016500009F47AC08B3009F460C0893009F09CC06D
+:1016600020C08091F501813A09F096C08091E80090
+:10167000877F8093E8008091F9019091FA01892B8E
+:1016800021F460E18FE591E003C060E080E090E04C
+:1016900070E00E94C00C8091E8008B778093E80096
+:1016A00008958091F501813209F076C08091F901A9
+:1016B0009091FA01009719F0039709F06DC080919D
+:1016C000E800877F8093E8008091E80082FD05C0F4
+:1016D0008091F4018111F8CF5FC08091F100809377
+:1016E0006F018091E8008B7753C08091F501813ABA
+:1016F00009F052C08091F9019091FA01892B09F00B
+:101700004BC08091E800877F8093E8008091E800DB
+:1017100080FFFCCF80910C0136C08091F5018132B1
+:10172000D9F58091F9019091FA01892BA9F5809161
+:10173000E800877F8093E8000E94B90D8091F7014F
+:1017400080930C010C94A6158091F501813221F54E
+:101750008091E800877F8093E8000E94B90D809116
+:10176000F8018093700108958091F501813AA1F408
+:101770008091E800877F8093E8008091E80080FFF7
+:10178000FCCF809170018093F1008091E8008E770A
+:101790008093E8000C94B90D089584B7877F84BFC7
+:1017A00088E10FB6F89480936000109260000FBE3D
+:1017B00080E880936100109261000E945C110E9499
+:1017C0000A0E0E94670E8091E20084608093E2001E
+:1017D00078940E94ED100E945E1182E091E00E94D8
+:1017E00008110E94EC218091F401853069F40E9477
+:1017F000761C8091F2018823B1F30E94A01C8823FB
+:1018000091F30E945F0CEFCF0E946411ECCF292F5F
+:10181000332723303105C9F064F42130310581F0DC
+:101820002230310509F043C08DE690E026E834E02F
+:1018300042C021323105F1F02232310541F137C089
+:1018400082E190E023EF34E036C0992781309105A2
+:1018500041F08230910541F0892B49F5E2E8F4E04E
+:1018600005C0EAE6F4E002C0E2E5F4E0849190E02D
+:101870009F0121C06430D8F4E62FF0E0EE0FFF1F87
+:10188000EE5DFE4F2081318189E090E014C064302C
+:1018900070F470E0FB01EE0FFF1FE65EFE4F20814B
+:1018A0003181FB01EA5EFE4F808190E004C080E060
+:1018B00090E020E030E0FA0131832083089580E158
+:1018C00089BD82E189BD09B400FEFDCF8091D800B9
+:1018D0008F7D8093D8008091E00082608093E0004B
+:1018E0008091E00081FDFCCF0895CF92DF92EF92CE
+:1018F000FF920F931F93CF93DF93EC018B016A014B
+:101900000E94D80D811133C0C114D10439F0F60101
+:1019100080819181081B190BC80FD91FE12CF12C74
+:101920000115110519F18091E80085FD16C080911F
+:10193000E8008E778093E800C114D10449F0F601E5
+:1019400080819181E80EF91EF182E08285E00FC06E
+:101950000E94D80D882321F30AC089918093F10059
+:1019600001501109FFEFEF1AFF0ADACF80E0DF9193
+:10197000CF911F910F91FF90EF90DF90CF9008953E
+:101980002091FB013091FC012617370748F06115C3
+:10199000710539F42091E8002E772093E80001C00A
+:1019A000B90140E061157105A9F12091F4012223EC
+:1019B00009F443C0253009F442C02091E80023FD1A
+:1019C00040C02091E80022FD32C02091E80020FFB5
+:1019D000E9CF4091F3002091F20030E0342BFC017C
+:1019E000CF016115710559F02830310540F481911E
+:1019F0008093F100615071092F5F3F4FF1CF41E0BB
+:101A00002830310509F040E02091E8002E7720933E
+:101A1000E800C8CF4111C9CF0AC08091F4018823E2
+:101A200061F0853061F08091E80083FD0AC080910B
+:101A3000E80082FFF2CF80E0089582E0089583E01D
+:101A4000089581E008952091FB013091FC01261753
+:101A5000370748F06115710539F42091E8002E77B9
+:101A60002093E80001C0B901FC0120E06115710577
+:101A700091F18091F401882309F440C0853009F484
+:101A80003FC08091E80083FD3DC08091E80082FD69
+:101A90002FC08091E80080FFE9CF2091F300809172
+:101AA000F20090E0922B6115710559F08830910594
+:101AB00040F424912093F100319661507109019610
+:101AC000F2CF21E0089709F020E08091E8008E77BE
+:101AD0008093E800CBCF2111CCCF0AC08091F401D4
+:101AE000882361F0853061F08091E80083FD0AC0B1
+:101AF0008091E80082FFF2CF80E0089582E00895AF
+:101B000083E0089581E00895982F973058F59093D9
+:101B1000E900981739F07091EC002091ED00509198
+:101B2000F00003C0242F762F50E021FF19C0309120
+:101B3000EB003E7F3093EB003091ED003D7F309322
+:101B4000ED003091EB0031603093EB007093EC00CE
+:101B50002093ED005093F0002091EE0027FF07C086
+:101B60009F5FD3CF8F708093E90081E0089580E07C
+:101B700008958091F50187FF11C08091E80082FDF2
+:101B800005C08091F4018111F8CF11C08091E80067
+:101B90008B770BC08091F401882349F08091E80095
+:101BA00080FFF8CF8091E8008E778093E800089559
+:101BB0002091E4003091E50095E64091EC00842FFF
+:101BC000817040FF22C08091E80080FD1CC08091A0
+:101BD000F401882391F0853091F08091EB0085FD30
+:101BE00010C04091E4005091E5004217530729F3DB
+:101BF0009A01915011F784E0089582E0089583E0FE
+:101C0000089581E0089580E008954091E80042FF42
+:101C1000DECF08950E94780E0E94800EE0EEF0E084
+:101C2000808181608083E8EDF0E080818F77808320
+:101C300019BCA7EDB0E08C918E7F8C9380818F7E54
+:101C400080831092F30108950F931F93CF93DF9336
+:101C50000E94780E0E94800EC8EDD0E088818F77B8
+:101C6000888388818068888388818F7D888319BC78
+:101C70001092F4011092F0011092F2011092F10111
+:101C800000EE10E0F80180818B7F80838881816085
+:101C9000888342E060E080E00E94840DE1EEF0E0A5
+:101CA00080818E7F8083E2EEF0E08081816080839E
+:101CB000808188608083F80180818E7F8083888125
+:101CC00080618883DF91CF911F910F910895E8ED96
+:101CD000F0E080818F7E8083E7EDF0E0808181609D
+:101CE000808384E082BF81E08093F3010C94240E12
+:101CF000E8EDF0E080818E7F80831092E20008950D
+:101D00001092DA001092E10008951F920F920FB620
+:101D10000F9211242F933F934F935F936F937F9371
+:101D20008F939F93AF93BF93EF93FF938091E100C5
+:101D300082FF0BC08091E20082FF07C08091E1002A
+:101D40008B7F8093E1000E94EC108091DA0080FF8D
+:101D50001FC08091D80080FF1BC08091DA008E7F69
+:101D60008093DA008091D90080FF0DC080E189BDA9
+:101D700082E189BD09B400FEFDCF81E08093F401CA
+:101D80000E94EB0A05C019BC1092F4010E94F90AE6
+:101D90008091E10080FF19C08091E20080FF15C0B2
+:101DA0008091E2008E7F8093E2008091E20080616A
+:101DB0008093E2008091D80080628093D80019BCA3
+:101DC00085E08093F4010E94FD0A8091E10084FF88
+:101DD00030C08091E20084FF2CC080E189BD82E1A7
+:101DE00089BD09B400FEFDCF8091D8008F7D80931E
+:101DF000D8008091E1008F7E8093E1008091E20025
+:101E00008F7E8093E2008091E20081608093E20007
+:101E10008091F001882311F084E007C08091E300F5
+:101E200087FD02C081E001C083E08093F4010E943D
+:101E3000FF0A8091E10083FF29C08091E20083FFC7
+:101E400025C08091E100877F8093E10082E080934C
+:101E5000F4011092F0018091E1008E7F8093E10007
+:101E60008091E2008E7F8093E2008091E2008061A9
+:101E70008093E20042E060E080E00E94840D809167
+:101E8000F00088608093F0000E94FC0AFF91EF91BF
+:101E9000BF91AF919F918F917F916F915F914F9182
+:101EA0003F912F910F900FBE0F901F9018951F928A
+:101EB0000F920FB60F9211242F933F934F935F937E
+:101EC0006F937F938F939F93AF93BF93CF93DF9342
+:101ED000EF93FF93C091E900CF708091EC00D82F71
+:101EE000D17080FDD0E81092E9008091F000877FEA
+:101EF0008093F00078940E949B0F1092E9008091EB
+:101F0000F00088608093F000CD2BCF70C093E90083
+:101F1000FF91EF91DF91CF91BF91AF919F918F9101
+:101F20007F916F915F914F913F912F910F900FBED5
+:101F30000F901F9018951F93CF93DF93CDB7DEB707
+:101F4000AA970FB6F894DEBF0FBECDBFE5EFF1E064
+:101F500088E08E0F9091F10091938E13FBCF0E9439
+:101F60001B0B8091E80083FF1FC18091F5019091C8
+:101F7000F601492F50E04A30510508F015C1FA0129
+:101F8000EA5AFF4F0C948623803881F0823809F09A
+:101F90000BC18091F9018F708093E9008091EB0073
+:101FA00085FB882780F91092E90006C08091F10135
+:101FB0009091F201911182609091E800977F909347
+:101FC000E8008093F1001092F100C8C0282F2D7F07
+:101FD00009F0EAC0882319F0823061F0E5C08091F1
+:101FE000F701813009F0E0C0933009F080E0809380
+:101FF000F2012BC08091F701811127C08091F90176
+:102000008F7009F4D1C08093E9002091EB0020FF8C
+:102010001CC0933021F48091EB00806214C0909139
+:10202000EB0090619093EB0021E030E0A90102C049
+:10203000440F551F8A95E2F74093EA001092EA0098
+:102040008091EB0088608093EB001092E900809112
+:10205000E800877F86C08111A7C01091F7011F7724
+:102060008091E3008078812B8093E3008091E800E9
+:10207000877F8093E8000E94B90D8091E80080FF7F
+:10208000FCCF8091E30080688093E300111102C0CF
+:1020900082E001C083E08093F40186C080588230E2
+:1020A00008F082C08091F7019091F8018C3D53E0D7
+:1020B000950779F583E08A838AE289834FB7F8949C
+:1020C000DE01139620E03EE051E2E32FF0E0509372
+:1020D0005700E49120FF03C0E295EF703F5FEF707F
+:1020E0008E2F90E0EA3010F0C79601C0C0968D9315
+:1020F0009D932F5F243149F74FBF8091E800877F80
+:102100008093E8006AE270E0CE0101960E94C00C64
+:1021100014C0AE014F5F5F4F6091F9010E94070C40
+:10212000BC01009709F440C09091E800977F90931C
+:10213000E80089819A810E94230D8091E8008B77C5
+:102140008093E80031C0803879F58091E800877F7E
+:102150008093E8008091F0018093F1008091E80085
+:102160008E778093E8000E94B90D1EC081111CC0BB
+:102170009091F7019230C0F48091E800877F8093BE
+:10218000E8009093F0010E94B90D8091F001811157
+:1021900006C08091E30087FD02C081E001C084E0B9
+:1021A0008093F4010E94070B8091E80083FF0AC02E
+:1021B0008091E800877F8093E8008091EB00806247
+:1021C0008093EB00AA960FB6F894DEBF0FBECDBF8A
+:1021D000DF91CF911F9108950895CF938091F401DD
+:1021E0008823A1F0C091E900CF709091EC00892F75
+:1021F000817090FD80E8C82B1092E9008091E80082
+:1022000083FD0E949B0FCF70C093E900CF9108958A
+:1022100090937601809375010895E0917501F09196
+:102220007601309721F00190F081E02D099480E053
+:102230000895E0917501F0917601309721F00280C8
+:10224000F381E02D09940895E0917501F0917601F4
+:10225000309721F00480F581E02D099408952091B4
+:102260007301309174018217930771F09093740198
+:1022700080937301E0917501F0917601309721F020
+:102280000680F781E02D0994089520917101309125
+:1022900072018217930771F090937201809371011C
+:1022A000E0917501F0917601309721F00084F1857D
+:1022B000E02D0994089508950C945B110E94B41CBC
+:1022C0000E94E1030C943A1D9F92AF92BF92CF926D
+:1022D000DF92EF92FF920F931F93CF93DF9300D083
+:1022E00000D000D0CDB7DEB70E9408040DE010E0AA
+:1022F000AA24A394B12C902E802F0E94F60498015A
+:1023000028583E4F6901F901F080F826A1F40150E8
+:10231000110988F78FEF89838A831B820E94BD1C75
+:102320008160782F9D838C8349815A816B818D8157
+:102330000E94FB112FC09091DB0191FF04C08E839E
+:102340000E94FC048E8125E030E0A501022E01C030
+:10235000440F0A94EAF7E42E4F21C1F029839A82B0
+:102360008E2191E009F490E09B830E94BD1C816066
+:10237000782F9D838C8349815A816B818D810E9446
+:10238000FB11F6018081E826E08204C0215031096A
+:10239000E0F6BDCF0E94081F109177010E940D1139
+:1023A0001817B9F00E940D118093770126960FB689
+:1023B000F894DEBF0FBECDBFDF91CF911F910F917B
+:1023C000FF90EF90DF90CF90BF90AF909F900C94D4
+:1023D0000A0A26960FB6F894DEBF0FBECDBFDF9176
+:1023E000CF911F910F91FF90EF90DF90CF90BF9012
+:1023F000AF909F900895CF93DF93CDB7DEB72B9723
+:102400000FB6F894DEBF0FBECDBF4F8358876987E4
+:102410007A878B87DE01119686E0FD0111928A95FD
+:10242000E9F785E0FE01379601900D928A95E1F774
+:1024300049815A816B817C818D819E810E944418E3
+:102440002B960FB6F894DEBF0FBECDBFDF91CF91B4
+:102450000895CF93882309F4C2C0C82F823859F455
+:102460000E940D1181FDBBC089E30E941E1B0E94CA
+:10247000EB1B89E30CC0833879F40E940D1180FDB9
+:10248000AEC083E50E941E1B0E94EB1B83E50E94E9
+:10249000601BCF910C94EB1B843859F40E940D11F2
+:1024A00082FD9DC087E40E941E1B0E94EB1B87E4F7
+:1024B000EECF8CEF8C0F813A48F48C2F0E94522182
+:1024C00081118DC08C2F0E941E1BE3CF80E28C0FE8
+:1024D000883048F4C77081E001C0880FCA95EAF7D8
+:1024E0000E94A41BD6CF8BE58C0F833078F4C53ABD
+:1024F00029F0C63A31F083E890E005C081E890E029
+:1025000002C082E890E0CF910C942F1188E58C0FE7
+:10251000833108F064C0C83A39F1C93A41F1CA3A86
+:1025200049F1CB3A51F1CC3A59F1CD3A61F1C03B86
+:1025300069F1CE3A71F1CF3A79F1C13B81F1C23BF9
+:1025400089F1C33B91F1C43B99F1C53BA1F1C63B75
+:10255000A9F1C73BB1F1C83BB9F1C93BC1F1CA3BD5
+:10256000C9F180E090E038C082EE90E035C089EE9D
+:1025700090E032C08AEE90E02FC085EB90E02CC056
+:1025800086EB90E029C087EB90E026C08CEC90E0D1
+:1025900023C08DEC90E020C083E891E01DC08AE864
+:1025A00091E01AC082E991E017C084E991E014C07B
+:1025B00081E292E011C083E292E00EC084E292E0F8
+:1025C0000BC085E292E008C086E292E005C087E297
+:1025D00092E002C08AE292E0CF910C944511CF9133
+:1025E0000895882309F44BC0823859F40E940D11D4
+:1025F00081FF45C089E30E941E1B0E94EB1B89E3FB
+:102600000CC0833871F40E940D1180FF38C083E53F
+:102610000E941E1B0E94EB1B83E50E94601B0C9412
+:10262000EB1B843859F40E940D1182FF28C087E407
+:102630000E941E1B0E94EB1B87E4EFCF9CEF980FBC
+:10264000913A58F390E2980F983050F4877091E0E7
+:1026500001C0990F8A95EAF7892F0E94AA1BDFCF44
+:102660009BE5980F933020F480E090E00C942F11BC
+:10267000885A833120F480E090E00C94451108954D
+:10268000882321F00E94A41B0C94EB1B089588233F
+:1026900021F00E94AA1B0C94EB1B08957F928F924D
+:1026A0009F92AF92BF92CF92DF92EF92FF920F93E1
+:1026B0001F93CF93DF931F92CDB7DEB77C01C62E59
+:1026C000772EFC01058102950F70128111110E9475
+:1026D000C11B0E94171B882379F0112369F080E247
+:1026E0008C0D883048F082E00E94001B0E94171B6E
+:1026F00091E0D82ED92601C0D12CE72DE295EF70BC
+:10270000F0E0E05AFF4F0C948623872D807F072D41
+:102710000F70882311F00295007F112389F00023A8
+:1027200009F490C180E28C0D883020F4802F0E9443
+:10273000A41B03C0802F0E94B41B0E94EB1B82C10C
+:102740008C2D0E94F112002309F495C180E28C0DBA
+:10275000883020F4802F0E94AA1B03C0802F0E9483
+:10276000BA1B0E94EB1B87C1972D907F872D8F701E
+:10277000903211F08295807FCC2021F0F1E0CF16CD
+:10278000B1F01EC0112349F0002309F414C1013037
+:1027900009F011C10E94D41B6EC1002319F0013051
+:1027A00009F469C189830E94D71B89810AC1112359
+:1027B00021F0023008F05FC1FEC001115CC101C10F
+:1027C000112321F0002309F4F6C03CC1002309F4D1
+:1027D000F8C03EC1872D86958695837090E000975E
+:1027E00019F0019761F047C1112321F08C2D972D2D
+:1027F000937002C080E090E00E942F113CC1112331
+:1028000021F08C2D972D937002C080E090E00E9403
+:10281000451131C18C2D112319F00E94101E02C0E8
+:102820000E94781E0E94FD1E26C1872D837009F02C
+:1028300052C0111120C18C2D829586958770880F0A
+:10284000880F9C2D9F70892E912CA12CB12C082EC5
+:1028500004C0880C991CAA1CBB1C0A94D2F7C4FEA5
+:1028600014C00FE010E020E030E0B901A80104C07E
+:10287000440F551F661F771F8A95D2F7CB01BA0107
+:10288000609570958095909503C060E070E0CB01F5
+:10289000272D26952695237030E02230310569F0EA
+:1028A0002330310589F0682979298A299B2921302B
+:1028B000310571F00E948C19DEC0682979298A29B6
+:1028C0009B290E94A819D7C00E948C19C501B40188
+:1028D0000E947019D0C0112319F0872D817001C09A
+:1028E0008695882309F4C7C08C2D829586958770BC
+:1028F000880F880F9C2D9F70892E912CA12CB12CB4
+:10290000082E04C0880C991CAA1CBB1C0A94D2F780
+:10291000C4FE14C00FE010E020E030E0B901A801CF
+:1029200004C0440F551F661F771F8A95D2F7CB014D
+:10293000BA01609570958095909503C060E070E055
+:10294000CB01272D269526952370422F50E042304B
+:10295000510569F04330510589F0682979298A29A0
+:102960009B294130510571F00E94661A84C0682984
+:1029700079298A299B290E94821A7DC00E94661AA1
+:10298000C501B4010E944A1A76C08C2D90E0FC016A
+:10299000E05EF109E531F10508F050C0E059FF4F64
+:1029A0000C9486230C2D0F70872D8F71112331F01D
+:1029B0000E94E319802F0E9440135DC00E94041AF8
+:1029C000802F0E94471357C0112339F0011153C0C3
+:1029D000872D8F710E94291A4EC0023008F04BC01B
+:1029E000F7CF112339F0872D8F710E94E31943C06F
+:1029F0001123C9F3872D8F710E94041A3CC0112343
+:102A000029F0872D8F710E94CE1935C00E94C419FC
+:102A100032C0112351F0172D1F71812F0E94E3192D
+:102A200063E0812F0E94F71A26C081E00E94001BFC
+:102A3000023008F182E00E94001B1DC0112331F01A
+:102A4000002389F28C2D0E94291215C0002391F2D7
+:102A50008C2D0E94F1120FC0472D4F706C2DC701B5
+:102A60000E94D2050E94E81806C0472D4F706C2DB9
+:102A7000C7010E947909DD20F9F00E94F31A80FD58
+:102A80001BC0F70112820E94ED1A0E94E319C701D0
+:102A90000E946B150E94ED1A0F90DF91CF911F914C
+:102AA0000F91FF90EF90DF90CF90BF90AF909F90ED
+:102AB0008F907F900C94041A0F90DF91CF911F910B
+:102AC0000F91FF90EF90DF90CF90BF90AF909F90CD
+:102AD0008F907F9008950F931F93CF93DF93EC0116
+:102AE000888199812B813C81232BB9F09F3F11F480
+:102AF0008F3F99F0CE010E940A06882371F0688109
+:102B000079818A810E94E91A8C010E949E1A0E9492
+:102B10006519B801CE010E944E13DF91CF911F912C
+:102B20000F9108950E94C11B0E94D11B0E94961B09
+:102B30000E94EB1B0E94AE1F0E94FD1E80E090E0F1
+:102B40000E942F1180E090E00C9445110E94B11B6F
+:102B50000C9492150E94DE1A292F22952F7030E0D6
+:102B60002C3031054CF42A3031056CF422503109F7
+:102B700022303105A8F407C02C30310569F02F3020
+:102B8000310551F00DC0803F69F018F4803E40F4EB
+:102B900009C0843F29F406C093FB882780F9089573
+:102BA00080E0089581E00895CF93DF9300D000D0B6
+:102BB0001F92CDB7DEB70F900F900F900F900F9030
+:102BC000DF91CF910895CF93DF9300D000D000D054
+:102BD000CDB7DEB726960FB6F894DEBF0FBECDBFD9
+:102BE000DF91CF9108951F93CF93DF93C09186011A
+:102BF00016E080918701C81799F0D0E01C9FF00182
+:102C00001D9FF00D1124E857FE4F408151816281D4
+:102C10007381848195810E94E3152196C770E9CF65
+:102C2000DF91CF911F9108954091B8015091B90162
+:102C30006091BA017091BB018091BC019091BD017E
+:102C40000C94E3158091BD0182958F7009F054C0FA
+:102C50008091BA01882309F44FC080918601A09128
+:102C600087016091B8017091B9014091BB01509109
+:102C7000BC01B6E08A1709F43FC090E04115510548
+:102C8000C1F17F3F11F46F3FA1F1B89FF001B99FEF
+:102C9000F00D1124E857FE4F218172132AC02081C4
+:102CA000621327C02281211124C02381348124177B
+:102CB000350710F421503109241B350B283C310510
+:102CC000C0F42091BD012F7020612093BD0126E04A
+:102CD000289FF001299FF00D1124E357FE4F8081BA
+:102CE0008F708061808388EB91E00E946B150C945B
+:102CF000F31501968770BECF0895CF92DF92EF92C1
+:102D0000FF920F931F93CF93DF93CDB7DEB76297F8
+:102D10000FB6F894DEBF0FBECDBF8C0185E0F80181
+:102D2000DE011D9601900D928A95E1F7D8014C9134
+:102D300011965C91119712966C9112971396CD9003
+:102D4000DC9014973091B8017091B9018091BB016A
+:102D50009091BC01009709F46BC17F3F19F43F3F8C
+:102D600009F466C1E090BA01EE2009F4C0C02091D8
+:102D7000BD01C816D90628F0F601E81BF90BCF01F2
+:102D800004C0809590958C0D9D1DFF24F394883C84
+:102D9000910578F0F12C207F09F0C6C07C2DD98AEE
+:102DA000C88A89890E94D41588EB91E00E946B152E
+:102DB000B1C0822F807F09F046C0751314C0341350
+:102DC00012C0611110C02F7020612093BD010E94BC
+:102DD000141688EB91E00E946B158091BD01D8011B
+:102DE00015968C932EC0CD2819F15F3F11F44F3FFB
+:102DF000F9F0F62E61111CC08091860120918701A7
+:102E000036E0821709F45AC090E0389FF001399FEC
+:102E1000F00D1124E857FE4F7181571306C07081E1
+:102E2000471303C07281711103C001968770E9CF07
+:102E3000F62E662309F418C18091BD01816080934C
+:102E4000BD01F12C11C1751308C0341306C0611106
+:102E500004C08091BD01D801C3C04D875E878D85B8
+:102E60009E856A8B0E94AA156A898823E1F16623F0
+:102E7000D1F12091BD01822F82958F7090E0029751
+:102E800074F08091B8019091B90198878F83198669
+:102E9000DB86CA862C87CE0107960E946B1586E0DA
+:102EA000F801A8EBB1E001900D928A95E1F70E943C
+:102EB00022160E941416FF24F394D6C04D875E8715
+:102EC0008D859E850E94DE1A292F22952F7030E075
+:102ED000223031050CF0BCC09F7009F0B6C0805E96
+:102EE000883008F4C1C0C8010E946B15E4CFC81631
+:102EF000D90608F453C0F601E81BF90BCF01883C52
+:102F0000910508F450C0F12C7C2DD98AC88A898992
+:102F10000E94D415E8EBF1E086E0DF011D928A956E
+:102F2000E9F70E941416A0C0751314C0341312C020
+:102F3000611110C08091BD01F8018583C8010E9414
+:102F40006B1586E0E8EBF1E0DF011D928A95E9F769
+:102F5000FE2C8AC04D875E878D859E856A8B0E9478
+:102F6000AA156A89882309F4BECF662309F4BBCF6A
+:102F70002091BD01822F82958F7090E002970CF412
+:102F80008ECF8091B8019091B9019A8389831B8279
+:102F9000DD82CC822E83CE0101967FCF80959095E5
+:102FA0008C0D9D1DACCFF62E662309F49CCF7513B6
+:102FB0002EC034132CC02091BD0120FD1FC0822FD4
+:102FC00082958F70D9F0D80115962C9315978F3074
+:102FD00049F08F5F982F9295907F822F8F70892B69
+:102FE00015968C93C8010E946B1586E0F801A8EB3A
+:102FF000B1E001900D928A95E1F793CF86E0F80158
+:10300000A8EBB1E001900D928A95E1F72DC04D87B4
+:103010005E878D859E850E94AA15811140CF809183
+:10302000BD0181608093BD01C8010E946B151CC069
+:10303000662309F458CF4D875E878D859E850E9453
+:10304000AA15882309F44FCF2ACF811148CF0CC08D
+:10305000243031050CF047CF9F7009F440CFF801C0
+:103060009581907F09F03BCF8F2D62960FB6F89433
+:10307000DEBF0FBECDBFDF91CF911F910F91FF90AB
+:10308000EF90DF90CF9008951F93CF93DF93CDB74C
+:10309000DEB72C970FB6F894DEBF0FBECDBF4F83BF
+:1030A000588769877A878B879C87CE0107960E940D
+:1030B0007D16882369F08F8198852A853B85232B8F
+:1030C000F1F19F3F09F063C08F3F09F060C037C046
+:1030D00086E0FE013796DE01119601900D928A95E9
+:1030E000E1F76F817885EA85FB85309741F17F3F75
+:1030F00011F46F3F21F12091870130E0C901019661
+:10310000877099274091860150E08417950709F44C
+:1031100047C069837A83FD83EC8396E0929FD00158
+:10312000939FB00D1124A857BE4FFE013196019018
+:103130000D929A95E1F7809387010E94F31516E0AE
+:1031400080918601909187018917C1F1189FC00174
+:10315000112488579E4F0E947D16882379F1E091B3
+:1031600086011E9FF0011124E857FE4F40815181D6
+:1031700062817381848195810E94E315809186012B
+:1031800090E001968770992780938601D9CF4F816F
+:10319000588569857A858B859C850E94E315CFCFFC
+:1031A0000E94A6151092870110928601E8EBF1E0CB
+:1031B00086E0DF011D928A95E9F7C1CF2C960FB604
+:1031C000F894DEBF0FBECDBFDF91CF911F91089560
+:1031D000EF92FF920F931F93CF93DF938C01009791
+:1031E00009F46CC0F12CEE24E394E8012196F80177
+:1031F0008491843740F4843008F051C0813081F0EC
+:10320000823019F15BC0853709F444C0A8F19CE70E
+:10321000980F903708F052C08F770E94F11241C08A
+:103220000E5F1F4FFE01C49180E28C0F883048F47E
+:10323000C7708E2D01C0880FCA95EAF70E94C41B83
+:1032400014C08C2F0E9429122DC00E5F1F4FFE014B
+:10325000C49180E28C0F883058F4C7708E2D01C065
+:10326000880FCA95EAF70E94CA1B0E94EB1B1AC07E
+:103270008C2F0E94F11216C00E5F1F4FFE01C491E9
+:10328000CC2381F08FE99FE00197F1F700C00000A7
+:10329000C150F6CF0E5F1F4FFE01F49003C00E9495
+:1032A00029128E018F2D882309F49FCFEFE9FFE0CB
+:1032B0003197F1F700C000008150F5CFDF91CF9139
+:1032C0001F910F91FF90EF90089508956093C201B0
+:1032D0007093C3018093C4019093C5010C9492151F
+:1032E0000F931F930091C2011091C3012091C4015B
+:1032F0003091C501DC01CB01802B912BA22BB32B8C
+:103300008093C2019093C301A093C401B093C501FF
+:103310001F910F910C9492150F931F930091C2016E
+:103320001091C3012091C4013091C501DC01CB0192
+:1033300080239123A223B3238093C2019093C301DE
+:10334000A093C401B093C5011F910F910C949215E5
+:103350000F931F930091C2011091C3012091C401EA
+:103360003091C501DC01CB0180279127A227B3272B
+:103370008093C2019093C301A093C401B093C5018F
+:103380001F910F910C9492151092BE011092BF01E3
+:103390001092C0011092C1010C94921541E050E0CE
+:1033A00060E070E004C0440F551F661F771F8A95C8
+:1033B000D2F74093BE015093BF016093C001709358
+:1033C000C1010C94921541E050E060E070E004C04F
+:1033D000440F551F661F771F8A95D2F78091BE0153
+:1033E0009091BF01A091C001B091C101482B592B10
+:1033F0006A2B7B2B4093BE015093BF016093C001A9
+:103400007093C1010C94921541E050E060E070E0CF
+:1034100004C0440F551F661F771F8A95D2F7409549
+:103420005095609570958091BE019091BF01A091DB
+:10343000C001B091C101482359236A237B234093E3
+:10344000BE015093BF016093C0017093C1010C9401
+:10345000921541E050E060E070E004C0440F551F59
+:10346000661F771F8A95D2F78091BE019091BF01A8
+:10347000A091C001B091C101482759276A277B2735
+:103480004093BE015093BF016093C0017093C1018E
+:103490000C9492150F931F930091BE011091BF01E0
+:1034A0002091C0013091C101DC01CB01802B912B17
+:1034B000A22BB32B8093BE019093BF01A093C001B8
+:1034C000B093C1011F910F910C9492150F931F930C
+:1034D0000091BE011091BF012091C0013091C10146
+:1034E000DC01CB0180239123A223B3238093BE016F
+:1034F0009093BF01A093C001B093C1011F910F91A0
+:103500000C9492150F931F930091BE011091BF016F
+:103510002091C0013091C101DC01CB0180279127AE
+:10352000A227B3278093BE019093BF01A093C0014F
+:10353000B093C1011F910F910C9492150895CF92F1
+:10354000DF92EF92FF920F931F93CF93DF938C0143
+:10355000C090C201D090C301E090C401F090C501B9
+:103560008091BE019091BF01A091C001B091C101B5
+:10357000C82AD92AEA2AFB2ACFE1D0E0D701C6011E
+:103580000C2E04C0B695A795979587950A94D2F707
+:1035900080FF06C0B8018C2F0E94F807019721F424
+:1035A000219760F780E001C08C2FDF91CF911F91B0
+:1035B0000F91FF90EF90DF90CF900895CF93DF931E
+:1035C000EC010E949F1ABE010E94F807DF91CF9183
+:1035D0000895CB010E94DE1A08958091C601859559
+:1035E0008595859508958091C6018770089598E026
+:1035F000899F90011124262B2093C6010C94E31976
+:103600002091C601809582238093C601982F9770E0
+:1036100069F430E0482F552747FD509524173507AA
+:1036200029F08595859585950C94041A08959091B7
+:10363000C601977081E009F480E0089590910C0133
+:10364000992321F090910D01911109C020910E0153
+:1036500030910F01F90132969FEF40E01FC0982F83
+:103660009695969596959F3050F5E0910E01F091C4
+:103670000F01E90FF11D877021E030E0A90102C0C0
+:10368000440F551F8A95E2F7CA019181892B8183E6
+:1036900008959F3F39F04F5F4E3041F051915813DC
+:1036A000F8CF0DC05111F7CF942FF5CF9F3F39F0D0
+:1036B000F901E90FF11D97FDFA95828308950895A8
+:1036C00090910C01992321F090910D01911109C065
+:1036D00020910E0130910F01F9013296205F3F4F8A
+:1036E0001FC0982F9695969596959F30F0F4E0918F
+:1036F0000E01F0910F01E90FF11D877021E030E01C
+:10370000A90102C0440F551F8A95E2F7CA018095AE
+:1037100091818923818308953196E217F30729F077
+:1037200090819813F9CF1082F7CF089581E090E04F
+:10373000E0910E01F0910F01E80FF91F1082019640
+:1037400080319105A9F708959091DA01892B809332
+:10375000DA01089580959091DA0189238093DA0146
+:1037600008951092DA0108959091D901892B8093E0
+:10377000D901089580959091D90189238093D90129
+:1037800008951092D90108959091D801892B8093C2
+:10379000D801089580959091D80189238093D8010C
+:1037A00008951092D80108958093C701089510924A
+:1037B000C701089580910E0190910F01FC0131968F
+:1037C0009C01205F3F4F80E0919191118F5FE21744
+:1037D000F307D1F70895E0910E01F0910F01809168
+:1037E000DA018083E0910E01F0910F0190818091C8
+:1037F000D901892B8083E0910E01F0910F01908116
+:103800008091D801892B80838091C701882361F042
+:10381000E0910E01F0910F019081892B80830E942D
+:10382000DA1B81111092C70180910E0190910F0156
+:103830000C94191120E0009739F0AC014150510966
+:10384000842395232F5FF7CF822F0895CF92DF92A5
+:10385000EF92FF926C01EE24FF24C114D104E10425
+:10386000F10421F0C701B60120E101C020E0C72E1C
+:10387000D82EE92EFF24C114D104E104F10419F07B
+:10388000285FC701B6016B017C0154E0F694E79410
+:10389000D794C7945A95D1F7C114D104E104F10427
+:1038A00019F02C5FC701B6016B017C0142E0F69470
+:1038B000E794D794C7944A95D1F7C114D104E10491
+:1038C000F10419F02E5FC701B601DC01CB01B695FA
+:1038D000A79597958795892B8A2B8B2B09F02F5FBE
+:1038E000822FFF90EF90DF90CF9008958091F401A8
+:1038F000843021F11092DC0120E488E190E00FB6E1
+:10390000F894A895809360000FBE2093600080E03B
+:103910000E940A0A83B7817F846083BF83B7816076
+:1039200083BF7894889583B78E7F83BF88E10FB675
+:10393000F89480936000109260000FBE089508957F
+:103940000E94F5030E9408040E949F1C0E94FD042F
+:1039500091E0811101C090E0892F08950E94A61581
+:103960000E940D110C940A0A82E084BD93E095BD7B
+:103970009AEF97BD80936E0008952FB7F8948091C9
+:10398000DD019091DE01A091DF01B091E0012FBF38
+:103990000895CF92DF92EF92FF920F931F932FB76C
+:1039A000F8944091DD015091DE016091DF0170914A
+:1039B000E0012FBF6A017B01EE24FF248C0120E08F
+:1039C00030E0C016D106E206F30610F4415051096A
+:1039D0009A01281B390BC9011F910F91FF90EF909D
+:1039E000DF90CF9008951F920F920FB60F9211247F
+:1039F0008F939F93AF93BF938091DD019091DE01F0
+:103A0000A091DF01B091E0010196A11DB11D80934D
+:103A1000DD019093DE01A093DF01B093E001BF913F
+:103A2000AF919F918F910F900FBE0F901F9018959F
+:103A30000E940A0EF8942FEF87EA91E62150804009
+:103A40009040E1F700C0000087E090EBDC0180933C
+:103A5000FD019093FE01A093FF01B09300029CE052
+:103A600088E10FB6F894A895809360000FBE9093FC
+:103A70006000FFCF0E94721D811102C00E94581D7C
+:103A80000E947D1D8093DB010E94851D90E0909334
+:103A9000EF018093EE0187FB882780F980930D0169
+:103AA0000E94811D682F70E080E090E00C94661900
+:103AB0006DEE7EEF80E090E00E94C02360E082E047
+:103AC00090E00E94AE2360E083E090E00E94AE238D
+:103AD00060E084E090E00E94AE2360E085E090E04A
+:103AE0000C94AE2380E090E00E94A82321E08D3E5C
+:103AF0009E4F09F020E0822F089582E090E00C9420
+:103B0000A02383E090E00C94A02384E090E00C9448
+:103B1000A023682F84E090E00C94AE238091E30111
+:103B200080FF0BC06091130185E0689FB0011124F4
+:103B300075956795759567952BC081FF09C0609154
+:103B4000130185E0689FB00111247595679520C029
+:103B500082FF07C06091130185E0689FB0011124C6
+:103B600017C09091E4019923D1F06091120196174A
+:103B700088F72091130185E0289F90011124929FDE
+:103B8000A001939F500D112470E0CA010E9472237E
+:103B90006038710540F46115710539F002C065E0C7
+:103BA00070E0862F08958FE7089581E00895809151
+:103BB000E30180FF08C06091110170E07595679581
+:103BC0007595679521C081FF06C06091110170E075
+:103BD0007595679519C082FF04C06091110170E06E
+:103BE00010C09091E4019923C1F0609110019617E3
+:103BF000A0F780911101899FC001112470E00E94FB
+:103C000072236038710528F46115710521F0862F43
+:103C100008958FE7089581E0089561E070E0F4CFA2
+:103C2000803F21F40E948E1D819504C0813F29F4BC
+:103C30000E948E1D8093E7010895823F21F40E9427
+:103C40008E1D819504C0833F29F40E948E1D8093B0
+:103C5000E6010895893F19F40E94D71D05C08A3FE7
+:103C600031F40E94D71D81958093E80108958B3F20
+:103C700021F40E94D71D819504C08C3F29F40E9435
+:103C8000D71D8093E9010895843F21F48091E501D7
+:103C9000816017C0853F21F48091E501826011C0E9
+:103CA000863F21F48091E50184600BC0873F21F4B9
+:103CB0008091E501886005C0883F31F48091E5017D
+:103CC00080618093E50108958D3F21F48091E301A7
+:103CD00081600BC08E3F21F48091E301826005C0BA
+:103CE0008F3F29F48091E30184608093E30108957C
+:103CF000803F39F48091E70187FF6CC01092E701A3
+:103D000069C0813F29F48091E7011816BCF362C0B5
+:103D10009091E601823F29F497FF5CC01092E60182
+:103D200059C0833F19F41916CCF354C0893F41F4AC
+:103D30008091E80118160CF04DC01092E8014AC0BD
+:103D40008A3F29F48091E80187FF44C0F6CF8B3F7A
+:103D500039F48091E90187FF3DC01092E9013AC032
+:103D60008C3F29F48091E9011816BCF333C0843FDD
+:103D700021F48091E5018E7F17C0853F21F4809169
+:103D8000E5018D7F11C0863F21F48091E5018B7F95
+:103D90000BC0873F21F48091E501877F05C0883FF4
+:103DA00031F48091E5018F7E8093E50113C08D3F52
+:103DB00021F48091E3018E7F0BC08E3F21F480912E
+:103DC000E3018D7F05C08F3F29F48091E3018B7F54
+:103DD0008093E3018091E60181110EC08091E7019B
+:103DE00081110AC08091E801811106C08091E9012A
+:103DF000811102C01092E401089585EE91E00E94C5
+:103E000024110E94BD1C9093E2018093E10108956A
+:103E10001F93CF93DF938091E1019091E2010E9483
+:103E2000C91CAC019091E401992321F02091140167
+:103E300030E006C0209115018AE0289F90011124EE
+:103E40004217530708F486C08091E601C091E7014C
+:103E5000D091E8011091E901811107C0C11176C02C
+:103E6000D11174C0111172C075C09F3F19F09F5FCE
+:103E70009093E401181624F40E948E1D8093E601AD
+:103E80008091E60187FF05C00E948E1D8195809379
+:103E9000E6011C1624F40E948E1D8093E701809198
+:103EA000E70187FF05C00E948E1D81958093E70181
+:103EB0006091E601662339F1C091E701CC2319F145
+:103EC000772767FD7095872F972F0E94832223E322
+:103ED00033E343E35FE30E94E7220E9450226093B2
+:103EE000E6016C2F772767FD7095872F972F0E942B
+:103EF000832223E333E343E35FE30E94E7220E944C
+:103F000050226093E7011D1624F40E94D71D809370
+:103F1000E8018091E80187FF05C00E94D71D8195C7
+:103F20008093E801111624F40E94D71D8093E901C3
+:103F30008091E90187FF05C00E94D71D819580937C
+:103F4000E901DF91CF911F910C94FD1E9F3F09F075
+:103F50008ECF96CFDF91CF911F910895E5EEF1E0DE
+:103F600085E0DF011D928A95E9F71092E401109235
+:103F7000E3010895833081F128F4813059F08230D3
+:103F8000D1F00895853009F449C0B8F1863009F4BC
+:103F900056C0089580911501262F30E0280F311D5D
+:103FA0002F3F310524F4680F6093150108958FEFBA
+:103FB00080931501089580911401262F30E0280F79
+:103FC000311D2F3F310524F4680F609314010895CB
+:103FD0008FEF80931401089580911301262F30E014
+:103FE000280F311D2F3F310524F4680F6093130112
+:103FF00008958FEF80931301089580911201262F69
+:1040000030E0280F311D2F3F310524F4680F6093F5
+:10401000120108958FEF809312010895809111018C
+:10402000262F30E0280F311D2F3F310524F4680F73
+:104030006093110108958FEF80931101089580918D
+:104040001001262F30E0280F311D2F3F310524F4B9
+:10405000680F6093100108958FEF80931001089509
+:10406000833011F128F4813049F0823091F00895C5
+:10407000853081F120F18630C1F1089580911501DC
+:10408000681720F4861B809315010895109215017E
+:10409000089580911401681720F4861B8093140101
+:1040A000089510921401089580911301681720F467
+:1040B000861B809313010895109213010895809137
+:1040C0001201681720F4861B809312010895109244
+:1040D0001201089580911101681720F4861B8093C6
+:1040E000110108951092110108958091100168172F
+:1040F00020F4861B809310010895109210010895FA
+:104100000F931F938D3109F471C008F045C08031C1
+:1041100009F485C008F5873009F46FC068F486306B
+:1041200009F0ADC08091DB01817F8E7F8093DB0140
+:1041300081E08093EB01A4C08B3009F49EC08E30E7
+:1041400009F09DC08091DB0182FB222720F991E0DC
+:10415000922790FB82F96CC0863109F48EC060F41E
+:10416000813109F08CC00E94A61590910D0181E06B
+:10417000892780930D0181C0893109F47EC08B317C
+:1041800009F07DC08091DB0181FB222720F991E0BD
+:10419000922790FB81F94CC0853309F466C048F43E
+:1041A000873209F462C008F44FC0893209F45DC057
+:1041B00066C0833438F48A3308F044C0883309F485
+:1041C0005CC05DC0833409F450C0883409F057C026
+:1041D0000E94A6150FEF13ED20E301501040204080
+:1041E000E1F700C000000E94181D47C00E940A228B
+:1041F0000E940D110E940A0A40C09091DB01892F94
+:104200008095817080FB90F929F09660986090937A
+:10421000DB0136C0997F977F9093DB012EC08091A0
+:10422000DB0183FB222720F991E0922790FB83F9A1
+:104230008093DB01992309F18091DB0181608093F8
+:10424000DB011BC0895301C08D5141E050E060E0AB
+:1042500070E08A019B0104C0000F111F221F331F51
+:104260008A95D2F7C901B80104C061E070E080E02E
+:1042700090E00E9466190E94A61581E001C080E0CE
+:104280001F910F91089580E0089580E008958E5168
+:104290008A3030F4E82FF0E0E65DFE4F808108952B
+:1042A00080E00895CF93C82F8091EB01813079F0A1
+:1042B00018F08230E9F186C0E0910E01F0910F0113
+:1042C0008081813169F0823209F07EC009C0E091BD
+:1042D0000E01F0910F018081813111F0823261F481
+:1042E0008C2F0E944321811104C08C2F0E948020BA
+:1042F0001DC081E090E01AC08C2F0E9445218111E1
+:1043000014C0C43179F048F4CB3079F0C03109F0F1
+:104310005FC082E08093EB0108C0C93219F0C83356
+:1043200021F056C01092EB0153C081E0817052C061
+:10433000C93281F110F5C43169F1A8F4C73009F030
+:1043400045C08AE08093150194E19093140193E0B5
+:10435000909313018093120188E08093110188E209
+:104360008093100133C082EE8C0F863078F58C2F4D
+:104370000E9447218093EA0129C0CE34E9F020F45D
+:10438000CB3421F56AE013C0C13579F0C235F1F4C0
+:1043900061E00DC08091EA01882319F01092EA01D2
+:1043A00015C081E08093EB0115C061E006C08091EB
+:1043B000EA010E94BA1F0AC06AE08091EA010E94E5
+:1043C000302004C01092EB0180E004C081E002C004
+:1043D00080E0ACCFCF910895E1E8F0E08081886083
+:1043E00080838081816080838FB7F89493E090937D
+:1043F000890090ED909388008FBF0895EFE6F0E07C
+:104400008081826080830895EFE6F0E080818D7F77
+:1044100080830895EFE6F0E0908182E08927808331
+:1044200008951F920F920FB60F9211242F933F936E
+:104430004F935F936F937F938F939F93AF93BF93AC
+:10444000EF93FF938091EC019091ED010196909391
+:10445000ED018093EC01811103C082E00E940A0A01
+:10446000E091ED01E695E695F0E0EF5FF94FE4911C
+:104470008091EC018E1303C080E00E940A0AFF9134
+:10448000EF91BF91AF919F918F917F916F915F91CC
+:104490004F913F912F910F900FBE0F901F90189545
+:1044A00004D06894B1118DC0089570D088F09F57E2
+:1044B00090F0B92F9927B751A0F0D1F0660F771F70
+:1044C000881F991F1AF0BA95C9F712C0B13081F050
+:1044D00077D0B1E0089574C0672F782F8827B85F30
+:1044E00039F0B93FCCF3869577956795B395D9F7B1
+:1044F0003EF490958095709561957F4F8F4F9F4FBB
+:104500000895E89409C097FB3EF4909580957095C6
+:1045100061957F4F8F4F9F4F9923A9F0F92F96E90F
+:10452000BB279395F695879577956795B795F11184
+:10453000F8CFFAF4BB0F11F460FF1BC06F5F7F4F21
+:104540008F4F9F4F16C0882311F096E911C0772333
+:1045500021F09EE8872F762F05C0662371F096E83C
+:10456000862F70E060E02AF09A95660F771F881F0B
+:10457000DAF7880F9695879597F9089557FD905823
+:10458000440F551F59F05F3F71F04795880F97FB17
+:10459000991F61F09F3F79F08795089512161306D1
+:1045A0001406551FF2CF4695F1DF08C01616170600
+:1045B0001806991FF1CF8695710561050894089535
+:1045C000E894BB2766277727CB0197F908950BD08E
+:1045D00078C069D028F06ED018F0952309F05AC041
+:1045E0005FC01124EECFCADFA0F3959FD1F3950FE2
+:1045F00050E0551F629FF001729FBB27F00DB11D67
+:10460000639FAA27F00DB11DAA1F649F6627B00DF6
+:10461000A11D661F829F2227B00DA11D621F739FDF
+:10462000B00DA11D621F839FA00D611D221F749FED
+:104630003327A00D611D231F849F600D211D822F34
+:10464000762F6A2F11249F5750408AF0E1F088237B
+:104650004AF0EE0FFF1FBB1F661F771F881F915088
+:104660005040A9F79E3F510570F014C0AACF5F3F9C
+:10467000ECF3983EDCF3869577956795B795F795BB
+:10468000E7959F5FC1F7FE2B880F911D9695879543
+:1046900097F9089597F99F6780E870E060E00895C2
+:1046A0009FEF80EC089500240A941616170618064A
+:1046B0000906089500240A94121613061406050626
+:1046C0000895092E0394000C11F4882352F0BB0FB7
+:1046D00040F4BF2B11F460FF04C06F5F7F4F8F4F1A
+:1046E0009F4F089597FB072E16F4009407D077FD8F
+:1046F00009D00E948C2307FC05D03EF4909581954B
+:104700009F4F0895709561957F4F0895EE0FFF1F9D
+:104710000590F491E02D0994AA1BBB1B51E107C041
+:10472000AA1FBB1FA617B70710F0A61BB70B881F41
+:10473000991F5A95A9F780959095BC01CD010895D0
+:10474000F999FECF92BD81BDF89A992780B5089559
+:10475000A8E1B0E042E050E00C94C823262FF9997C
+:10476000FECF92BD81BDF89A019700B4021639F0D0
+:104770001FBA20BD0FB6F894FA9AF99A0FBE0895A1
+:104780000196272F0E94AF230C94AE23DC01CB01AE
+:10479000FC01F999FECF06C0F2BDE1BDF89A319651
+:1047A00000B40D9241505040B8F70895F894FFCFEF
+:1047B00002200C0A9A0A770A430A0F0A0101C8016B
+:1047C00028080A03140A404D3639C10574053E0510
+:1047D00005059804B104CA04E304010203040506B4
+:0447E00007080900BD
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c b/keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c new file mode 100644 index 000000000..687a5cb8b --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/keymap.c @@ -0,0 +1,174 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#include "keymap_neo2.h" +#include "keymap_uk.h" +#include "keymap_colemak.h" +#include "keymap_french_osx.h" +#include "keymap_nordic.h" +#include "keymap_dvorak.h" +#include "keymap_german.h" +#include "keymap_norwegian.h" +#include "keymap_fr_ch.h" +#include "keymap_german_osx.h" +#include "keymap_spanish.h" +#include "keymap_bepo.h" + +#define BASE 0 +#define SYMB 1 +#define MDIA 2 +#define QWERTZ 3 +#define NUMB 4 + +#define UNUSED 0 + +//Layout keymap.c generated with ErgodoxLayoutGenerator V1.0BETA1 +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[BASE]=KEYMAP( +//left half + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LCTL, + KC_TAB, KC_K, KC_DOT, KC_O, KC_COMM, KC_Z, KC_LGUI, + TG(QWERTZ), KC_H, KC_A, KC_E, KC_I, KC_U, + KC_LSFT, CTL_T(KC_X), KC_Q, DE_AE, DE_UE, DE_OE, KC_LALT, + LT(SYMB,KC_GRV), DE_LESS, LALT(KC_LSFT), KC_LEFT, KC_RGHT, + TG(MDIA), MEH_T(LSFT(DE_ACUT)), + KC_HOME, + KC_BSPC, KC_DEL, KC_END, + //right half + KC_RCTL, KC_6, KC_7, KC_8, KC_9, KC_0, DE_OSX_MINS, + KC_RGUI, KC_V, KC_G, KC_C, KC_L, KC_MINS, KC_Y, + KC_D, KC_T, KC_R, KC_N, KC_S, LT(MDIA,KC_F), + KC_RALT, KC_B, KC_P, KC_W, KC_M, CTL_T(KC_J), KC_RSFT, + KC_UP, KC_DOWN, LGUI(KC_LSFT), KC_RBRC, LT(SYMB,KC_BSLS), + ALL_T(DE_ACUT), TG(NUMB), + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC), +[SYMB]=KEYMAP( +//left half + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS, KC_GRV, LSFT(KC_GRV), DE_EXLM, DE_QST, KC_TRNS, KC_TRNS, + KC_TRNS, DE_HASH, DE_DLR, LALT(LSFT(KC_7)), DE_SLSH, KC_DOT, + KC_TRNS, KC_TRNS, DE_LESS, DE_PERC, LALT(KC_7), LALT(KC_N), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_DEL, KC_TRNS, + //right half + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), LALT(KC_7), DE_HASH, KC_F12, + DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), KC_TRNS, + KC_TRNS, DE_AMPR, KC_GRV, LSFT(KC_GRV), DE_DQOT, DE_QUOT, DE_QST, + KC_TRNS, KC_DOT, KC_EXLM, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), +[MDIA]=KEYMAP( +//left half + 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_WH_L, KC_WH_U, KC_WH_D, KC_WH_R, KC_BTN3, 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 half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MUTE, KC_MPRV, KC_MNXT, KC_UP, KC_TRNS, + KC_VOLU, KC_VOLD, KC_LEFT, KC_DOWN, KC_RIGHT, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK), +[QWERTZ]=KEYMAP( +//left half + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, LGUI(KC_V), + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LGUI, + KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_LALT, + LT(SYMB,KC_GRV), DE_LESS, LALT(KC_LSFT), KC_LEFT, KC_RGHT, + KC_TRNS, MEH_T(LSFT(DE_ACUT)), + KC_HOME, + KC_BSPC, KC_DEL, KC_END, + //right half + LGUI(KC_C), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_RGUI, KC_Y, KC_U, KC_I, KC_O, KC_P, DE_UE, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(MDIA,DE_AE), + KC_RALT, KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + KC_UP, KC_DOWN, LGUI(KC_LSFT), KC_RBRC, LT(SYMB,KC_BSLS), + ALL_T(DE_ACUT), KC_TRNS, + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC), +[NUMB]=KEYMAP( +//left half + 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_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, + //right half + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, KC_UP, KC_7, KC_8, KC_9, LSFT(KC_RBRC), KC_F12, + KC_DOWN, KC_4, KC_5, KC_6, KC_RBRC, KC_TRNS, + KC_TRNS, LSFT(KC_6), KC_1, KC_2, KC_3, LSFT(KC_7), KC_TRNS, + KC_0, KC_DOT, KC_0, KC_EQL, 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) { +case UNUSED: +//Macro: UNUSED//----------------------- + + + + + + 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) { + +default: +// none +break; +} + +}; + diff --git a/keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png b/keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png Binary files differnew file mode 100644 index 000000000..193aa339e --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/osx_de_adnw_koy/osx_de_adnw_koy_highres.png diff --git a/keyboards/ergodox_ez/keymaps/osx_de_experimental/compiled.hex b/keyboards/ergodox_ez/keymaps/osx_de_experimental/compiled.hex new file mode 100644 index 000000000..3fe28d5e5 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/osx_de_experimental/compiled.hex @@ -0,0 +1,1228 @@ +:100000000C9446040C948A040C948A040C948A047C
+:100010000C948A040C948A040C948A040C948A0428
+:100020000C948A040C948A040C94DF100C94B11183
+:100030000C948A040C948A040C948A040C948A0408
+:100040000C948A040C946B240C948A040C948A04F7
+:100050000C948A040C944D1F0C948A040C948A040A
+:100060000C948A040C948A040C948A040C948A04D8
+:100070000C948A040C948A040C948A040C948A04C8
+:100080000C948A040C948A040C948A040C948A04B8
+:100090000C948A040C948A040C948A040C948A04A8
+:1000A0000C948A040C948A040C948A0405073F0774
+:1000B000510773078B07910797079D07A307A907A8
+:1000C000AE07B407DE07E307E807FF071E1240127A
+:1000D0002E1340122E138512A8122E13FD12101388
+:1000E000DF15DF150E160E164416641695179517B4
+:1000F0006F1695171F171F178617951795178F17C8
+:100100002C172C172C172C172C172C172C172C17D7
+:100110002C172C172C172C172C172C172C172C17C7
+:100120003E174B1752175917631702E002E2012ED0
+:10013000022E02E10002E002E102E20001E001E140
+:1001400001E20002E002E3016402640002E002E373
+:100150000001E001E30001E10137023702E101386B
+:10016000023801E10125022502E10001E101370227
+:100170003702E10138023801E10107020702E1001C
+:1001800001350235012002200002E302E102E30210
+:10019000E102E302E102E302E102E302E102E3023F
+:1001A000E102E302E102E302E102E302E102E3022F
+:1001B000E102E302E102E302E102E302E102E3021F
+:1001C000E102E302E102E302E102E302E102E3020F
+:1001D000E102E302E102E302E102E302E102E302FF
+:1001E000E102E302E102E302E102E302E102E302EF
+:1001F000E102E302E102E302E102E302E102E302DF
+:10020000E102E302E102E302E102E302E102E302CE
+:10021000E102E302E102E302E102E302E102E302BE
+:10022000E10001E301E10001E10136023602E101F2
+:1002300038023801E10126022602E10001E101371E
+:10024000023702E10138023801E10126022602E10B
+:100250000001E10136023602E10138023801E10114
+:1002600025022502E10001E10137023702E10138F0
+:10027000023801E20125022502E20001E101370214
+:100280003702E10138023801E10130023002E100B9
+:1002900002E002E2013002300002E002E20001E08E
+:1002A00001E20001E10131023102E10029002B00ED
+:1002B000E200E100354100001E00140004001D6151
+:1002C0000E304E001F001A0016001B0003304C00B9
+:1002D0002000080007000600E0022A0021001500A7
+:1002E0000900190000304B00220017000A00050029
+:1002F00000004A000230E3000000E20000004D0070
+:100300000B30E7000000E6000000500023001C0056
+:100310000B00110000004F00240018000D00100019
+:100320003167520025000C000E0036002E6F2C00A5
+:10033000260012000F003700E108280027001300F4
+:1003400033003861E10451002D002F003464E500D2
+:1003500030410000650001000100010001000000C3
+:100360003A00350031000100010001003B00350278
+:100370002102350001004C003C001E02240622022E
+:10038000010001003D002D022402240401000100AF
+:100390003E00010037001104000001003E00010092
+:1003A00000000100000001003F000100000001000A
+:1003B000000068003F0024062402240400004500D9
+:1003C0004000220425021104310269004100230487
+:1003D000260201001F020100420035002504010031
+:1003E00001000100430035022604010001306A00CB
+:1003F00044001E0231000100010000000100010064
+:1004000001000100010000000100010001000100E5
+:10041000010001000100F400F200FB0001000100F6
+:100420000100F000F100FA00010001000100F500F8
+:10043000F300FC00010001000100F900FA00F600E1
+:1004400000000100010001000000010000000100A7
+:1004500001000100000001000000AC0001000100EB
+:10046000010001000000AB000100010001000100DB
+:100470000100A90001000100010001000100AE001F
+:1004800001000100010001005000A800010001006E
+:10049000010052005100AA0001000100010001000A
+:1004A0004F000000010001000100010001000000F8
+:1004B0000100010001000100010001000100010034
+:1004C0000100010001000100010001000100010024
+:1004D0000100010001000100010001000100010014
+:1004E0000100010001000100000001000100010005
+:1004F00000000100000001000730010000000100C1
+:1005000000000100083005300A3001000000010041
+:100510000C300D30043001000100010001000630F4
+:1005200001000100010001000100010001000100C3
+:1005300001000100010001000100010001000100B3
+:1005400001000100010001000100000001000100A4
+:100550000100010001000000010001000100010094
+:100560000100010001000100500001000100010034
+:1005700001005200510001000100010001000100D2
+:100580004F00010001000100010001000100010015
+:100590000000010001000100000001000000010056
+:1005A0000100010000000100000001003F002402E2
+:1005B00024022202000001004000240021001E004D
+:1005C000270001004100250022001F003700010024
+:1005D00042002600230020003600010043003002C4
+:1005E00030000100270201004400450038000100EE
+:1005F0000100000001000100E1000100E000000036
+:10060000010001000100010001003D0001000100A6
+:10061000010001000100E0000100010001000100F3
+:1006200001002C00010001000100010001003C005C
+:10063000010001000100010000003A00010001007A
+:100640000000010000003B0001000100000001006B
+:100650000000010001000100010001000000010094
+:100660000100010001000100010001000100010082
+:100670000100010001000100010001000100010072
+:100680000100010001000100010001000130010032
+:1006900001000100010001000100000016034500F7
+:1006A000720067006F0044006F0078002000450072
+:1006B0005A00000016034500720067006F004400F6
+:1006C0006F007800200045005A0000000403090470
+:1006D00009026D00040100A0FA09040000010301F1
+:1006E00001000921110100012240000705810308D2
+:1006F000000A09040100010301020009211101009F
+:1007000001224D000705820308000A0904020001C6
+:1007100003000000092111010001223600070583B2
+:100720000308000A09040300010300000009211165
+:100730000100012239000705840310000112011095
+:100740000100000008EDFE07130100010200010591
+:10075000010906A101050719E029E7150025019502
+:100760000875018102050819012905950575019192
+:1007700002950175039101050719002977150025D8
+:1007800001957875018102C005010980A1018502EA
+:1007900016010026B7001A01002AB700751095014E
+:1007A0008100C0050C0901A1018503160100269CEA
+:1007B000021A01002A9C02751095018100C00501F2
+:1007C0000902A1010901A100050919012905150066
+:1007D00025019505750181029501750381010501CA
+:1007E000093009311581257F950275088106093880
+:1007F0001581257F950175088106050C0A380215BB
+:1008000081257F950175088106C0C005010906A1F3
+:1008100001050719E029E7150025019508750181F3
+:1008200002950175088101050819012905950575CD
+:100830000191029501750391010507190029FF1522
+:100840000026FF00950675088100C000000000002A
+:10085000000000000000010204060A0F17202C3AD5
+:100860004A5D71879DB3C7DAE9F5FCFFFCF5E9DA6B
+:10087000C7B39D87715D4A3A2C20170F0A06040200
+:1008800001000000000000000000000011241FBE55
+:10089000CFEFDAE0DEBFCDBF04B603FE24C0809107
+:1008A000FF0190910002A0910102B09102028730F5
+:1008B000904BA740B04BB9F41092FF011092000288
+:1008C000109201021092020214BE84B7877F84BF87
+:1008D00088E10FB6F89480936000109260000FBE1C
+:1008E000E0E0FFE3099511E0A0E0B1E0E4E6FCE41C
+:1008F00002C005900D92A433B107D9F711E0A4E32B
+:10090000B1E001C01D92AF3FB107E1F70E94270E91
+:100910000C9430260C9400001092B9008AE0809369
+:10092000B800089594EA9093BC009091BC0097FFA2
+:10093000FCCF9091B900987F983021F0903111F060
+:1009400081E008958093BB0084E88093BC0080918F
+:10095000BC0087FFFCCF8091B900887F883111F0FF
+:10096000803471F780E0089584E98093BC00809121
+:10097000BC0084FDFCCF08958093BB0084E8809385
+:10098000BC008091BC0087FFFCCF9091B900987F9C
+:1009900081E0983209F480E0089584E88093BC00F7
+:1009A0008091BC0087FFFCCF8091BB00089580B38D
+:1009B0008C7080BB81B3836F81BB089580910101EE
+:1009C000811115C080E40E9492048093010181117D
+:1009D0000CC082E10E94BC0480930101811105C01A
+:1009E0008FEF0E94BC04809301010E94B40484B183
+:1009F000807F84B985B1807F85B98AB1837F8AB9C8
+:100A00008BB1837F8BB93E98469808950E94A806C3
+:100A1000809301010E94DE040E94D704A5E3B1E0A7
+:100A2000E3E4F1E08EE08E0F11921D928E13FCCF65
+:100A30000C9492060E94A806809301010E94DE0495
+:100A40000E94D704A5E3B1E0E3E4F1E08EE08E0F6D
+:100A500011921D928E13FCCF0895BF92CF92DF9218
+:100A6000EF92FF920F931F93CF93DF938091010139
+:100A7000882379F0809134018F5F80933401811154
+:100A800008C00E94A80680930101811102C00E9443
+:100A90003A0605E311E0C0E0D0E0DD24D39482E023
+:100AA000C82EEE24E394F12CC730D10500F58091D7
+:100AB0000101811164C080E40E94920480930101CD
+:100AC000811112C082E10E94BC0480930101811156
+:100AD0000BC0C7010C2E01C0880F0A94EAF780955D
+:100AE0000E94BC04809301010E94B40448C0CA3033
+:100AF000A1F028F4C83059F0C93061F005C0CC30FD
+:100B000089F070F0CD3089F0209A289810C0219A91
+:100B100029980DC0229A2A980AC0239A2B9807C0B8
+:100B2000529A01C0539A5B9802C03E9A469890EA46
+:100B30009A95F1F79FB1799902C082E001C080E0F7
+:100B400091709D25982B7C9902C084E001C080E0C3
+:100B5000892B7D9902C038E001C030E0832B7E995B
+:100B600002C020E101C020E0822B9FB19095991F27
+:100B70009927991F9295990F907E892B0FC080918C
+:100B80000101811149C080E40E9492048093010117
+:100B9000882379F1B12C0E94B4048B2DF801908147
+:100BA000981719F08083C09200010E94DE042196FC
+:100BB0000F5F1F4FCE30D10509F076CF8091000135
+:100BC000882361F1815080930001882339F08FE9F7
+:100BD0009FE00197F1F700C0000020C0A3E4B1E05E
+:100BE000E5E3F1E0CF01825F91919D938E13FCCFFD
+:100BF00015C083E10E94BC04809301018111CACF1A
+:100C000081E40E949204809301018111C3CF0E946C
+:100C1000CD04B82EB094BFCF80E0C0CF0E9438067C
+:100C200081E0DF91CF911F910F91FF90EF90DF90C6
+:100C3000CF90BF900895E82FF0E0ED5BFE4F8081EC
+:100C4000089508950F931F93CF93DF93C3E4D1E0EA
+:100C500010E00C2F025F899190E00E94741E180F23
+:100C60000C13F9CF812FDF91CF911F910F91089530
+:100C70000C94260856985E9825982D9826982E98BC
+:100C800027982F988FEF90E09093890080938800A9
+:100C900090938B0080938A0090938D0080938C00BA
+:100CA000259A2D9A2FEF80E792E0215080409040C6
+:100CB000E1F700C00000269A2E9A2FEF80E792E01D
+:100CC000215080409040E1F700C00000279A2F9A01
+:100CD0002FEF80E792E0215080409040E1F700C084
+:100CE000000025982D982FEF80E792E0215080405A
+:100CF0009040E1F700C0000026982E982FEF80E783
+:100D000092E0215080409040E1F700C00000279819
+:100D10002F9856985E9825982D9826982E98279863
+:100D20002F98089589EA8093800089E0809381005C
+:100D300024982C983F988AB18F748AB96E98479AF4
+:100D40008BB1806B8BB9769A0E943A060C94250879
+:100D500080E2809301018091510181110EC00E94B7
+:100D60008C0481E0809351012FEF83ED90E32150BB
+:100D700080409040E1F700C0000080E40E949204AF
+:100D80008093010181112EC00E94BC048093010157
+:100D9000811128C00E94BC0480930101811122C0EE
+:100DA0008FE30E94BC048093010181111BC00E944B
+:100DB000B40480E40E94920480930101811112C066
+:100DC0008CE00E94BC048093010181110BC00E9441
+:100DD000BC0480930101811105C08FE30E94BC0413
+:100DE000809301010E94B404809101010895462F6F
+:100DF00050E04031510508F01FC1DC01FA01EA5A08
+:100E0000FF4F12968C910C94E0258823A9F00E9444
+:100E1000171F90935301809352018091C0019091CC
+:100E2000C101A091C201B091C30128E0822788705E
+:100E30009927AA27BB27AEC08091C0019091C1011C
+:100E4000A091C201B091C30128E082278870992740
+:100E5000AA27BB278093C0019093C101A093C20130
+:100E6000B093C30180915201909153010E94231FBE
+:100E70008739910508F0E0C083EA92E0089588235D
+:100E800009F4DAC08091C0019091C101A091C20122
+:100E9000B091C30120E2822780729927AA27BB273D
+:100EA00079C0882339F00E94171F909353018093D3
+:100EB00052010AC080915201909153010E94231F58
+:100EC0008739910508F4B8C08091C0019091C101A3
+:100ED000A091C201B091C30120E1822780719927BE
+:100EE000AA27BB2757C0882349F00E94171F909359
+:100EF0005301809352018EE992E00895809152014E
+:100F0000909153010E94231F8739910508F08EC0EC
+:100F100080E992E00895882309F48EC08BE792E07F
+:100F20000895882309F488C086E692E0089588230E
+:100F300009F482C081E592E00895882309F47CC019
+:100F40008CE392E00895882309F476C087E292E06A
+:100F5000089581116EC089E891E00895882309F40D
+:100F60006BC080E891E008958823E9F00E94171F84
+:100F700090935301809352018091C0019091C101DF
+:100F8000A091C201B091C30124E082278470992707
+:100F9000AA27BB278093C0019093C101A093C201EF
+:100FA000B093C30149C080915201909153010E94B6
+:100FB000231F8739910508F43FC0DECF8823E1F174
+:100FC0008BE691E008958823B9F186E591E00895D4
+:100FD000882349F00E94171F909353018093520178
+:100FE00081E591E0089580915201909153010E9412
+:100FF000231F8739910518F583E491E0089588232C
+:1010000049F00E94171F90935301809352018CE383
+:1010100091E0089580915201909153010E94231F05
+:101020008739910578F48AE291E0089589E992E0A0
+:10103000089582E292E0089580E090E008958CE4C3
+:1010400091E0089585E391E0089508956091C001CD
+:101050007091C1018091C2019091C3010E94801ED4
+:1010600056985E9825982D9826982E9827982F9810
+:10107000823061F018F4813031F00895843069F0E5
+:10108000853039F00895259A2D9A0895269A2E9A3A
+:101090000895259A2D9A269A2E9A279A2F9A08957E
+:1010A00081E0089581E008950C9452080895282F56
+:1010B000882339F090E02A3010F44D960895069771
+:1010C000089587E290E00895AF92BF92DF92EF9289
+:1010D000FF920F931F93CF93DF938C01FC01C0818C
+:1010E000D181CE010E94F91CBE010E94D40BEC01FB
+:1010F000B8010E945408882309F4C9C1F80182810B
+:10110000882309F4BEC08091600181111FC0C431E1
+:10111000F0E7DF0709F0B5C10E94560881E080932F
+:1011200060010E94171F90935F0180935E011092EF
+:101130005701109259011092580110925B011092C0
+:101140005A0110925D0110925C01A1C180915E0173
+:1011500090915F010E94231F883C910570F480915B
+:101160005701E82FF0E0EE0FFF1FE85AFE4FD18342
+:10117000C0838F5F809357018AC1C13020E8D207B6
+:1011800008F451C0F8018281882309F47EC05E0111
+:10119000E894B7F880915601813079F050F08230B0
+:1011A000C1F482EE0E94831487E50E94831487E5D0
+:1011B0000EC082EE0E9483140CC080EE0E94831445
+:1011C00081EE0E94831488E10E94831488E10E94CA
+:1011D0004B158CE0E82EF12CC5010E2C02C0969523
+:1011E00087950A94E2F78F700E945708D82E0E94C4
+:1011F00083148D2D0E944B15F4E0EF1AF1082CEFAB
+:10120000E2162FEFF20641F780915601813029F066
+:1012100010F0823041F482EE04C080EE0E944B1543
+:1012200081EE0E944B15C43180E7D80768F4C230C4
+:1012300090E7D90708F046C0C115E0E7DE0771F076
+:10124000C130D047A1F10CC1C33320E7D20709F464
+:10125000D8C0C433D04709F4EBC002C1F801828181
+:10126000882309F402C10E940018FFEF24E38CE0F8
+:10127000F15020408040E1F700C000000E94721F42
+:1012800006C1C13080E8D80770F2C43120E7D20728
+:1012900008F0B3C0C23080E7D807A0F4C11590E7CA
+:1012A000D90709F4E2C0C130D04709F0D9C0F8012C
+:1012B0008281882309F4D9C08091DD018160809307
+:1012C000DD01E5C0F8018281882309F4CEC00E94C7
+:1012D000CC1F811102C00E94B21F0E94DF1F90E04C
+:1012E0009093F1018093F001C230F0E7DF0721F421
+:1012F0008091F00181607AC0C33020E7D20721F4E9
+:101300008091F001826072C0C43080E7D80721F478
+:101310008091F00184606AC0C53090E7D90719F464
+:101320008091F00127C0C630E0E7DE0721F480910C
+:10133000F00180615BC0C730F0E7DF0721F48091E6
+:10134000F001806253C0C83020E7D20721F48091B9
+:10135000F00180644BC0C93080E7D80721F4809148
+:10136000F001806843C0CA3090E7D90729F4809122
+:10137000F001846088603AC0CB30E0E7DE0721F4FA
+:101380008091F0018E7F32C0CC30F0E7DF0721F48E
+:101390008091F0018D7F2AC0CD3020E7D20721F463
+:1013A0008091F0018B7F22C0CE3080E7D80719F4FE
+:1013B0008091F0011AC08091F001CF3090E7D907F9
+:1013C00011F48F7E13C0C031E0E7DE0711F48F7D8A
+:1013D0000DC0C131F0E7DF0711F48F7B07C0C231C8
+:1013E000D04711F48F7702C08B7F877F8093F00105
+:1013F0008091F0010E94E31F4AC0C333F0E7DF078A
+:10140000A1F4F8018281882321F01092540182E036
+:1014100016C080915401811106C086E20E94831497
+:1014200086E20E944B1582E018C0C433D047C1F455
+:10143000F8018281882331F01092550180E20E94E8
+:101440009A1525C080915501811106C087E20E943E
+:10145000831487E20E944B1580E20E94A11517C0F9
+:1014600081E08093540180935501C801DF91CF91B1
+:101470001F910F91FF90EF90DF90BF90AF900C9471
+:101480005008C130F0E8DF0708F081CECCCE80E014
+:10149000DF91CF911F910F91FF90EF90DF90BF9060
+:1014A000AF90089526E0729FF001112444E5849FD7
+:1014B000E00DF11D1124E60FF11DEE0FFF1FE455A5
+:1014C000FD4F859194910E94E60B811560E496078B
+:1014D000B0F5811570E3970708F0DEC0803E9105F6
+:1014E000D8F4803C910508F06CC0883A910578F4F6
+:1014F000853A910508F06BC08130910509F452C11D
+:1015000008F40FC18430910508F04CC10AC18B3B2F
+:10151000910508F467C005C18F3F910509F048F4B3
+:10152000803F910508F0ADC0883E910508F43AC1AE
+:10153000F8C0811520E2920708F0A5C00895811532
+:1015400043E5940790F4811562E5960708F0C8C05A
+:10155000811571E5970708F0BEC0811520E5920757
+:1015600008F09DC09F70906A0895811545E5940725
+:10157000D8F4811564E5960708F0C8C0482F469551
+:10158000469570E2479FA00111248370992721E0BE
+:1015900030E0B90102C0660F771F8A95E2F7CB01F0
+:1015A000842B952B9A680895811576E5970708F4A2
+:1015B000B2C09C0130562115304108F0B2C09F7076
+:1015C000AEC0FC01EE0FFF1FE45DFE4F62C0853A26
+:1015D000910509F4A9C0863A910509F0A8C082E8EE
+:1015E00090E40895883A910509F4A4C0893A9105D8
+:1015F00009F4A3C08A3A910509F4A2C08B3A910577
+:1016000009F4A1C08C3A910509F4A0C08D3A910566
+:1016100009F49FC0803B910509F49EC08E3A910564
+:1016200009F49DC08F3A910509F49CC0813B910556
+:1016300009F49BC0823B910509F49AC0833B910554
+:1016400009F499C0843B910509F498C0853B910544
+:1016500009F497C0863B910509F496C0873B910534
+:1016600009F495C0883B910509F494C0893B910524
+:1016700009F493C08A3B910509F492C080E094E498
+:10168000089590650895FC01FF70EE0FFF1FE4556B
+:10169000FD4F8591949108959927906C0895482F56
+:1016A000437021E030E002C0220F331F4A95E2F779
+:1016B0003C68AC0164E0569547956A95E1F7437044
+:1016C000342B8F708695869560E2869FC001112429
+:1016D000822B932B0895982F8827816F906A089505
+:1016E000482F4695469570E2479FA00111248370CC
+:1016F000992721E030E0B90102C0660F771F8A9573
+:10170000E2F7CB01842B952B9C680895982F8827AE
+:10171000846F906A08958F719927982F8827906217
+:10172000089580E090E0089581E890E4089583E8CA
+:1017300090E4089582EE94E4089589EE94E4089587
+:101740008AEE94E4089585EB94E4089586EB94E49E
+:10175000089587EB94E408958CEC94E408958DEC5F
+:1017600094E4089583E895E408958AE895E408955B
+:1017700082E995E4089584E995E4089581E296E488
+:10178000089583E296E4089584E296E4089585E25C
+:1017900096E4089586E296E4089587E296E4089533
+:1017A0008AE296E40895089596E0799FF001112465
+:1017B00094E5899FE00DF11D1124E60FF11DEE0F58
+:1017C000FF1FE455FD4F859194910895823891054E
+:1017D00049F1B0F48133910509F458C048F48932D5
+:1017E000910509F44EC08A32910509F454C0089558
+:1017F0008533910509F440C08933910599F0089526
+:10180000833E910529F138F4803E910591F0823EA6
+:101810009105A1F00895863E9105F9F0873E910566
+:1018200031F108952091F00120FD3AC021FD38C02A
+:1018300008958091F00180FD35C032C08091F001A3
+:1018400082FF32C08091F00184FD30C083EE39C048
+:101850008091F00182FD28C0F5CF8091F00183FFD7
+:1018600027C08091F00184FD21C087EE2AC08091BD
+:10187000F00183FD1DC0F5CF8091F00185FD1AC0F8
+:101880001BC08091F00185FD17C014C08091F0014C
+:1018900086FD14C015C08091F00186FD11C00EC0F8
+:1018A00080EE0FC089E30DC082EE0BC080E009C05E
+:1018B00086EE07C089E205C085E303C08AE201C065
+:1018C00081E390E0089508950C94630C8091710178
+:1018D0000895CF93DF9300D01F92CDB7DEB79C0160
+:1018E0008091F601843019F593E099833B832A8334
+:1018F0009093E9008FEF9091E800815095FD06C02C
+:1019000095ED9A95F1F700008111F5CF8091E800EF
+:1019100085FF0DC040E050E063E070E0CE0101962D
+:101920000E94CF0E8091E8008E778093E8000F90A0
+:101930000F900F90DF91CF910895CF93DF9300D058
+:101940001F92CDB7DEB72091F601243021F522E0B9
+:1019500029839B838A8383E08093E9008FEF9091B2
+:10196000E800815095FD06C095ED9A95F1F70000CD
+:101970008111F5CF8091E80085FF0DC040E050E077
+:1019800063E070E0CE0101960E94CF0E8091E800E6
+:101990008E778093E8000F900F900F90DF91CF919A
+:1019A00008952091F6012430F1F422E02093E9001B
+:1019B0002FEF3091E800215035FD06C035ED3A9506
+:1019C000F1F700002111F5CF2091E80025FF0BC0B1
+:1019D00040E050E065E070E00E94CF0E8091E800AA
+:1019E0008E778093E8000895CF93DF93EC01909178
+:1019F000F601943009F046C080910C018823D9F09B
+:101A000080910D018823B9F09093E9008FEF9091B8
+:101A1000E800815095FD06C095E19A95F1F7000028
+:101A20008111F5CF8091E80085FF2CC040E050E0A7
+:101A300060E170E017C081E08093E9008FEF909142
+:101A4000E800815095FD06C095ED9A95F1F70000EC
+:101A50008111F5CF8091E80085FF14C040E050E08F
+:101A600068E070E0CE010E94CF0E8091E8008E7792
+:101A70008093E80080E1FE01A1E6B1E001900D92C3
+:101A80008A95E1F7DF91CF9108958091F501811159
+:101A900009C00E9464100E94C1108091E20084601D
+:101AA0008093E20008951092F501089508950C9432
+:101AB00058240E94081F0E945E240E9467130C9401
+:101AC000640C42E061EC81E00E94DE0F42E061ECD8
+:101AD00082E00E94DE0F42E061EC83E00E94DE0FB4
+:101AE00042E161EC84E00C94DE0F8091F8018330D8
+:101AF00009F455C030F4813071F0823009F48EC0A1
+:101B000008958A3009F47AC08B3009F460C08930B6
+:101B100009F09CC020C08091F701813A09F096C07D
+:101B20008091E800877F8093E8008091FB0190918D
+:101B3000FC01892B21F460E181E691E003C060E0C3
+:101B400080E090E070E00E941A0F8091E8008B77AF
+:101B50008093E80008958091F701813209F076C002
+:101B60008091FB019091FC01009719F0039709F017
+:101B70006DC08091E800877F8093E8008091E80045
+:101B800082FD05C08091F6018111F8CF5FC0809180
+:101B9000F100809371018091E8008B7753C08091B0
+:101BA000F701813A09F052C08091FB019091FC014C
+:101BB000892B09F04BC08091E800877F8093E80073
+:101BC0008091E80080FFFCCF80910C0136C08091AD
+:101BD000F7018132D9F58091FB019091FC01892BAD
+:101BE000A9F58091E800877F8093E8000E94131098
+:101BF0008091F90180930C010C9400188091F701F9
+:101C0000813221F58091E800877F8093E8000E946F
+:101C100013108091FA018093720108958091F70169
+:101C2000813AA1F48091E800877F8093E800809159
+:101C3000E80080FFFCCF809172018093F1008091D9
+:101C4000E8008E778093E8000C941310089584B711
+:101C5000877F84BF88E10FB6F8948093600010926C
+:101C600060000FBE80E880936100109261000E94C6
+:101C7000B6130E9464100E94C1108091E20084603B
+:101C80008093E20078940E9447130E94B81382E088
+:101C900091E00E9462130E9446248091F6018530F3
+:101CA00069F40E94D01E8091F4018823B1F30E9450
+:101CB000FA1E882391F30E94B90EEFCF0E94BE1343
+:101CC000ECCF292F332723303105C9F064F42130BC
+:101CD000310581F02230310509F043C08DE690E0F6
+:101CE00020ED36E042C021323105F1F022323105DB
+:101CF00041F137C082E190E02DE337E036C099270B
+:101D00008130910541F08230910541F0892B49F5F0
+:101D1000ECECF6E005C0E4EBF6E002C0ECE9F6E03E
+:101D2000849190E09F0121C06430D8F4E62FF0E068
+:101D3000EE0FFF1FEE5DFE4F2081318189E090E0C4
+:101D400014C0643070F470E0FB01EE0FFF1FE65E1C
+:101D5000FE4F20813181FB01EA5EFE4F808190E0E1
+:101D600004C080E090E020E030E0FA01318320837D
+:101D7000089580E189BD82E189BD09B400FEFDCFEF
+:101D80008091D8008F7D8093D8008091E0008260A0
+:101D90008093E0008091E00081FDFCCF0895CF9218
+:101DA000DF92EF92FF920F931F93CF93DF93EC019B
+:101DB0008B016A010E943210811133C0C114D10419
+:101DC00039F0F60180819181081B190BC80FD91FCA
+:101DD000E12CF12C0115110519F18091E80085FD28
+:101DE00016C08091E8008E778093E800C114D1047A
+:101DF00049F0F60180819181E80EF91EF182E082BE
+:101E000085E00FC00E943210882321F30AC0899117
+:101E10008093F10001501109FFEFEF1AFF0ADACFAA
+:101E200080E0DF91CF911F910F91FF90EF90DF90B5
+:101E3000CF9008952091FD013091FE0126173707BC
+:101E400048F06115710539F42091E8002E77209350
+:101E5000E80001C0B90140E061157105A9F12091C8
+:101E6000F601222309F443C0253009F442C0209131
+:101E7000E80023FD40C02091E80022FD32C02091FF
+:101E8000E80020FFE9CF4091F3002091F20030E01C
+:101E9000342BFC01CF016115710559F02830310553
+:101EA00040F481918093F100615071092F5F3F4FA1
+:101EB000F1CF41E02830310509F040E02091E80001
+:101EC0002E772093E800C8CF4111C9CF0AC0809176
+:101ED000F601882361F0853061F08091E80083FD90
+:101EE0000AC08091E80082FFF2CF80E0089582E08E
+:101EF000089583E0089581E008952091FD013091D7
+:101F0000FE012617370748F06115710539F4209155
+:101F1000E8002E772093E80001C0B901FC0120E021
+:101F20006115710591F18091F601882309F440C093
+:101F3000853009F43FC08091E80083FD3DC0809169
+:101F4000E80082FD2FC08091E80080FFE9CF20915A
+:101F5000F3008091F20090E0922B6115710559F029
+:101F60008830910540F424912093F100319661501E
+:101F700071090196F2CF21E0089709F020E08091E5
+:101F8000E8008E778093E800CBCF2111CCCF0AC038
+:101F90008091F601882361F0853061F08091E8003E
+:101FA00083FD0AC08091E80082FFF2CF80E00895AF
+:101FB00082E0089583E0089581E00895982F973096
+:101FC00058F59093E900981739F07091EC00209142
+:101FD000ED005091F00003C0242F762F50E021FF38
+:101FE00019C03091EB003E7F3093EB003091ED0053
+:101FF0003D7F3093ED003091EB0031603093EB008A
+:102000007093EC002093ED005093F0002091EE00CF
+:1020100027FF07C09F5FD3CF8F708093E90081E0D7
+:10202000089580E008958091F70187FF11C08091A5
+:10203000E80082FD05C08091F6018111F8CF11C042
+:102040008091E8008B770BC08091F601882349F0DE
+:102050008091E80080FFF8CF8091E8008E77809330
+:10206000E80008952091E4003091E50095E6409164
+:10207000EC00842F817040FF22C08091E80080FD39
+:102080001CC08091F601882391F0853091F08091F9
+:10209000EB0085FD10C04091E4005091E50042172F
+:1020A000530729F39A01915011F784E0089582E0D3
+:1020B000089583E0089581E0089580E008954091B7
+:1020C000E80042FFDECF08950E94D2100E94DA108D
+:1020D000E0EEF0E0808181608083E8EDF0E08081D7
+:1020E0008F77808319BCA7EDB0E08C918E7F8C93A5
+:1020F00080818F7E80831092F50108950F931F9346
+:10210000CF93DF930E94D2100E94DA10C8EDD0E086
+:1021100088818F77888388818068888388818F7D94
+:10212000888319BC1092F6011092F2011092F4010A
+:102130001092F30100EE10E0F80180818B7F808324
+:1021400088818160888342E060E080E00E94DE0F49
+:10215000E1EEF0E080818E7F8083E2EEF0E080812E
+:1021600081608083808188608083F80180818E7F98
+:102170008083888180618883DF91CF911F910F9147
+:102180000895E8EDF0E080818F7E8083E7EDF0E058
+:1021900080818160808384E082BF81E08093F5014B
+:1021A0000C947E10E8EDF0E080818E7F80831092A9
+:1021B000E20008951092DA001092E10008951F9253
+:1021C0000F920FB60F9211242F933F934F935F936B
+:1021D0006F937F938F939F93AF93BF93EF93FF93EF
+:1021E0008091E10082FF0BC08091E20082FF07C076
+:1021F0008091E1008B7F8093E1000E9446138091E3
+:10220000DA0080FF1FC08091D80080FF1BC0809142
+:10221000DA008E7F8093DA008091D90080FF0DC0B4
+:1022200080E189BD82E189BD09B400FEFDCF81E076
+:102230008093F6010E94450D05C019BC1092F6016D
+:102240000E94530D8091E10080FF19C08091E2004F
+:1022500080FF15C08091E2008E7F8093E200809124
+:10226000E20080618093E2008091D80080628093D8
+:10227000D80019BC85E08093F6010E94570D80912B
+:10228000E10084FF30C08091E20084FF2CC080E137
+:1022900089BD82E189BD09B400FEFDCF8091D800DF
+:1022A0008F7D8093D8008091E1008F7E8093E10044
+:1022B0008091E2008F7E8093E2008091E200816055
+:1022C0008093E2008091F201882311F084E007C03E
+:1022D0008091E30087FD02C081E001C083E080932C
+:1022E000F6010E94590D8091E10083FF29C0809181
+:1022F000E20083FF25C08091E100877F8093E100A9
+:1023000082E08093F6011092F2018091E1008E7FCD
+:102310008093E1008091E2008E7F8093E2008091C3
+:10232000E20080618093E20042E060E080E00E9491
+:10233000DE0F8091F00088608093F0000E94560DBF
+:10234000FF91EF91BF91AF919F918F917F916F918D
+:102350005F914F913F912F910F900FBE0F901F9063
+:1023600018951F920F920FB60F9211242F933F933F
+:102370004F935F936F937F938F939F93AF93BF938D
+:10238000CF93DF93EF93FF93C091E900CF708091DB
+:10239000EC00D82FD17080FDD0E81092E900809138
+:1023A000F000877F8093F00078940E94F5111092DE
+:1023B000E9008091F00088608093F000CD2BCF7011
+:1023C000C093E900FF91EF91DF91CF91BF91AF9161
+:1023D0009F918F917F916F915F914F913F912F913D
+:1023E0000F900FBE0F901F9018951F93CF93DF9300
+:1023F000CDB7DEB7AA970FB6F894DEBF0FBECDBF3C
+:10240000E7EFF1E088E08E0F9091F10091938E1349
+:10241000FBCF0E94750D8091E80083FF1FC1809162
+:10242000F7019091F801492F50E04A30510508F02A
+:1024300015C1FA01EA59FF4F0C94E025803881F06C
+:10244000823809F00BC18091FB018F708093E90005
+:102450008091EB0085FB882780F91092E90006C087
+:102460008091F3019091F401911182609091E800C4
+:10247000977F9093E8008093F1001092F100C8C01C
+:10248000282F2D7F09F0EAC0882319F0823061F0EF
+:10249000E5C08091F901813009F0E0C0933009F086
+:1024A00080E08093F4012BC08091F901811127C055
+:1024B0008091FB018F7009F4D1C08093E9002091D5
+:1024C000EB0020FF1CC0933021F48091EB00806270
+:1024D00014C09091EB0090619093EB0021E030E00C
+:1024E000A90102C0440F551F8A95E2F74093EA0004
+:1024F0001092EA008091EB0088608093EB001092CC
+:10250000E9008091E800877F86C08111A7C0109103
+:10251000F9011F778091E3008078812B8093E3009D
+:102520008091E800877F8093E8000E9413108091DB
+:10253000E80080FFFCCF8091E30080688093E30097
+:10254000111102C082E001C083E08093F60186C0D1
+:102550008058823008F082C08091F9019091FA0190
+:102560008C3D53E0950779F583E08A838AE289837D
+:102570004FB7F894DE01139620E03EE051E2E32FDE
+:10258000F0E050935700E49120FF03C0E295EF7014
+:102590003F5FEF708E2F90E0EA3010F0C79601C0D9
+:1025A000C0968D939D932F5F243149F74FBF809143
+:1025B000E800877F8093E8006AE270E0CE01019630
+:1025C0000E941A0F14C0AE014F5F5F4F6091FB0174
+:1025D0000E94610EBC01009709F440C09091E80090
+:1025E000977F9093E80089819A810E947D0F809166
+:1025F000E8008B778093E80031C0803879F58091CE
+:10260000E800877F8093E8008091F2018093F100D9
+:102610008091E8008E778093E8000E9413101EC01E
+:1026200081111CC09091F9019230C0F48091E800B2
+:10263000877F8093E8009093F2010E9413108091AD
+:10264000F201811106C08091E30087FD02C081E0A4
+:1026500001C084E08093F6010E94610D8091E80042
+:1026600083FF0AC08091E800877F8093E800809113
+:10267000EB0080628093EB00AA960FB6F894DEBF61
+:102680000FBECDBFDF91CF911F9108950895CF93D5
+:102690008091F6018823A1F0C091E900CF7090915C
+:1026A000EC00892F817090FD80E8C82B1092E90022
+:1026B0008091E80083FD0E94F511CF70C093E9007E
+:1026C000CF91089590937801809377010895E091D8
+:1026D0007701F0917801309721F00190F081E02DA1
+:1026E000099480E00895E0917701F09178013097A6
+:1026F00021F00280F381E02D09940895E0917701A3
+:10270000F0917801309721F00480F581E02D099453
+:10271000089520917501309176018217930771F029
+:102720009093760180937501E0917701F0917801A3
+:10273000309721F00680F781E02D099408952091CB
+:102740007301309174018217930771F090937401B3
+:1027500080937301E0917701F0917801309721F037
+:102760000084F185E02D0994089508950C94B51323
+:102770000E940E1F0E9406050C94941F9F92AF9218
+:10278000BF92CF92DF92EF92FF920F931F93CF935E
+:10279000DF9300D000D000D0CDB7DEB70E942D056A
+:1027A0000DE010E0AA24A394B12C902E802F0E945B
+:1027B0001B06980126583E4F6901F901F080F82662
+:1027C000A1F40150110988F78FEF89838A831B8256
+:1027D0000E94171F8160782F9D838C8349815A81C5
+:1027E0006B818D810E9455142FC09091DD0191FF66
+:1027F00004C08E830E9421068E8125E030E0A50171
+:10280000022E01C0440F0A94EAF7E42E4F21C1F0D2
+:1028100029839A828E2191E009F490E09B830E94A3
+:10282000171F8160782F9D838C8349815A816B812A
+:102830008D810E945514F6018081E826E08204C053
+:1028400021503109E0F6BDCF0E946221109179013B
+:102850000E9467131817B9F00E94671380937901DB
+:1028600026960FB6F894DEBF0FBECDBFDF91CF9195
+:102870001F910F91FF90EF90DF90CF90BF90AF909E
+:102880009F900C94640C26960FB6F894DEBF0FBE92
+:10289000CDBFDF91CF911F910F91FF90EF90DF900F
+:1028A000CF90BF90AF909F900895CF93DF93CDB717
+:1028B000DEB72B970FB6F894DEBF0FBECDBF4F83A8
+:1028C000588769877A878B87DE01119686E0FD013C
+:1028D00011928A95E9F785E0FE01379601900D92F5
+:1028E0008A95E1F749815A816B817C818D819E8136
+:1028F0000E949E1A2B960FB6F894DEBF0FBECDBF76
+:10290000DF91CF910895CF93882309F4C2C0C82FD7
+:10291000823859F40E94671381FDBBC089E30E948D
+:10292000781D0E94451E89E30CC0833879F40E940B
+:10293000671380FDAEC083E50E94781D0E94451E8E
+:1029400083E50E94BA1DCF910C94451E843859F43A
+:102950000E94671382FD9DC087E40E94781D0E943B
+:10296000451E87E4EECF8CEF8C0F813A48F48C2F14
+:102970000E94AC2381118DC08C2F0E94781DE3CF63
+:1029800080E28C0F883048F4C77081E001C0880F66
+:10299000CA95EAF70E94FE1DD6CF8BE58C0F8330D7
+:1029A00078F4C53A29F0C63A31F083E890E005C0E2
+:1029B00081E890E002C082E890E0CF910C94891306
+:1029C00088E58C0F833108F064C0C83A39F1C93A00
+:1029D00041F1CA3A49F1CB3A51F1CC3A59F1CD3AE9
+:1029E00061F1C03B69F1CE3A71F1CF3A79F1C13B67
+:1029F00081F1C23B89F1C33B91F1C43B99F1C53BE5
+:102A0000A1F1C63BA9F1C73BB1F1C83BB9F1C93B44
+:102A1000C1F1CA3BC9F180E090E038C082EE90E09D
+:102A200035C089EE90E032C08AEE90E02FC085EB91
+:102A300090E02CC086EB90E029C087EB90E026C0A8
+:102A40008CEC90E023C08DEC90E020C083E891E016
+:102A50001DC08AE891E01AC082E991E017C084E9BC
+:102A600091E014C081E292E011C083E292E00EC0D6
+:102A700084E292E00BC085E292E008C086E292E038
+:102A800005C087E292E002C08AE292E0CF910C9406
+:102A90009F13CF910895882309F44BC0823859F4CD
+:102AA0000E94671381FF45C089E30E94781D0E9440
+:102AB000451E89E30CC0833871F40E94671380FFC0
+:102AC00038C083E50E94781D0E94451E83E50E9460
+:102AD000BA1D0C94451E843859F40E94671382FF76
+:102AE00028C087E40E94781D0E94451E87E4EFCF2E
+:102AF0009CEF980F913A58F390E2980F983050F469
+:102B0000877091E001C0990F8A95EAF7892F0E949A
+:102B1000041EDFCF9BE5980F933020F480E090E017
+:102B20000C948913885A833120F480E090E00C944F
+:102B30009F130895882321F00E94FE1D0C94451ECA
+:102B40000895882321F00E94041E0C94451E0895C8
+:102B50007F928F929F92AF92BF92CF92DF92EF922D
+:102B6000FF920F931F93CF93DF931F92CDB7DEB7E2
+:102B70007C01C62E772EFC01058102950F70128113
+:102B800011110E941B1E0E94711D882379F01123D0
+:102B900069F080E28C0D883048F082E00E945A1D76
+:102BA0000E94711D91E0D82ED92601C0D12CE72DAD
+:102BB000E295EF70F0E0E059FF4F0C94E025872D8F
+:102BC000807F072D0F70882311F00295007F11235D
+:102BD00089F0002309F490C180E28C0D883020F444
+:102BE000802F0E94FE1D03C0802F0E940E1E0E9497
+:102BF000451E82C18C2D0E944B15002309F495C1FE
+:102C000080E28C0D883020F4802F0E94041E03C0C7
+:102C1000802F0E94141E0E94451E87C1972D907F11
+:102C2000872D8F70903211F08295807FCC2021F01B
+:102C3000F1E0CF16B1F01EC0112349F0002309F4D2
+:102C400014C1013009F011C10E942E1E6EC1002373
+:102C500019F0013009F469C189830E94311E89810C
+:102C60000AC1112321F0023008F05FC1FEC001113A
+:102C70005CC101C1112321F0002309F4F6C03CC15D
+:102C8000002309F4F8C03EC1872D86958695837090
+:102C900090E0009719F0019761F047C1112321F0EE
+:102CA0008C2D972D937002C080E090E00E948913D4
+:102CB0003CC1112321F08C2D972D937002C080E030
+:102CC00090E00E949F1331C18C2D112319F00E94B6
+:102CD0006A2002C00E94D2200E94572126C1872D5F
+:102CE000837009F052C0111120C18C2D82958695F8
+:102CF0008770880F880F9C2D9F70892E912CA12C96
+:102D0000B12C082E04C0880C991CAA1CBB1C0A9468
+:102D1000D2F7C4FE14C00FE010E020E030E0B901AB
+:102D2000A80104C0440F551F661F771F8A95D2F76C
+:102D3000CB01BA01609570958095909503C060E0D5
+:102D400070E0CB01272D26952695237030E02230A8
+:102D5000310569F02330310589F0682979298A29FC
+:102D60009B292130310571F00E94E61BDEC06829E5
+:102D700079298A299B290E94021CD7C00E94E61B40
+:102D8000C501B4010E94CA1BD0C0112319F0872DC0
+:102D9000817001C08695882309F4C7C08C2D829567
+:102DA00086958770880F880F9C2D9F70892E912C97
+:102DB000A12CB12C082E04C0880C991CAA1CBB1C89
+:102DC0000A94D2F7C4FE14C00FE010E020E030E017
+:102DD000B901A80104C0440F551F661F771F8A95CB
+:102DE000D2F7CB01BA01609570958095909503C09C
+:102DF00060E070E0CB01272D269526952370422FA9
+:102E000050E04230510569F04330510589F068299E
+:102E100079298A299B294130510571F00E94C01CF3
+:102E200084C0682979298A299B290E94DC1C7DC0DD
+:102E30000E94C01CC501B4010E94A41C76C08C2D48
+:102E400090E0FC01E05EF109E531F10508F050C0C9
+:102E5000E058FF4F0C94E0250C2D0F70872D8F71DB
+:102E6000112331F00E943D1C802F0E949A155DC0F5
+:102E70000E945E1C802F0E94A11557C0112339F0BB
+:102E8000011153C0872D8F710E94831C4EC00230E8
+:102E900008F04BC0F7CF112339F0872D8F710E94B6
+:102EA0003D1C43C01123C9F3872D8F710E945E1C06
+:102EB0003CC0112329F0872D8F710E94281C35C03A
+:102EC0000E941E1C32C0112351F0172D1F71812F3B
+:102ED0000E943D1C63E0812F0E94511D26C081E0AD
+:102EE0000E945A1D023008F182E00E945A1D1DC046
+:102EF000112331F0002389F28C2D0E94831415C018
+:102F0000002391F28C2D0E944B150FC0472D4F705E
+:102F10006C2DC7010E94F7060E94421B06C0472D78
+:102F20004F706C2DC7010E94D30BDD20F9F00E9479
+:102F30004D1D80FD1BC0F70112820E94471D0E949B
+:102F40003D1CC7010E94C5170E94471D0F90DF91CD
+:102F5000CF911F910F91FF90EF90DF90CF90BF9096
+:102F6000AF909F908F907F900C945E1C0F90DF919C
+:102F7000CF911F910F91FF90EF90DF90CF90BF9076
+:102F8000AF909F908F907F9008950F931F93CF9352
+:102F9000DF93EC01888199812B813C81232BB9F04F
+:102FA0009F3F11F48F3F99F0CE010E94640888235F
+:102FB00071F0688179818A810E94431D8C010E9491
+:102FC000F81C0E94BF1BB801CE010E94A815DF911A
+:102FD000CF911F910F9108950E941B1E0E942B1EDE
+:102FE0000E94F01D0E94451E0E9408220E94572147
+:102FF00080E090E00E94891380E090E00C949F13A1
+:103000000E940B1E0C94EC170E94381D292F22954C
+:103010002F7030E02C3031054CF42A3031056CF43F
+:103020002250310922303105A8F407C02C30310577
+:1030300069F02F30310551F00DC0803F69F018F470
+:10304000803E40F409C0843F29F406C093FB8827E2
+:1030500080F9089580E0089581E00895CF93DF938B
+:1030600000D000D01F92CDB7DEB70F900F900F9019
+:103070000F900F90DF91CF910895CF93DF9300D001
+:1030800000D000D0CDB7DEB726960FB6F894DEBFDD
+:103090000FBECDBFDF91CF9108951F93CF93DF93E4
+:1030A000C091880116E080918901C81799F0D0E09D
+:1030B0001C9FF0011D9FF00D1124E657FE4F40812B
+:1030C000518162817381848195810E943D1821968E
+:1030D000C770E9CFDF91CF911F9108954091BA0158
+:1030E0005091BB016091BC017091BD018091BE0106
+:1030F0009091BF010C943D188091BF0182958F7013
+:1031000009F054C08091BC01882309F44FC080911C
+:103110008801A09189016091BA017091BB01409131
+:10312000BD015091BE01B6E08A1709F43FC090E09E
+:1031300041155105C1F17F3F11F46F3FA1F1B89FD7
+:10314000F001B99FF00D1124E657FE4F2181721353
+:103150002AC02081621327C02281211124C023812B
+:1031600034812417350710F421503109241B350B05
+:10317000283C3105C0F42091BF012F7020612093BD
+:10318000BF0126E0289FF001299FF00D1124E1578F
+:10319000FE4F80818F70806180838AEB91E00E9476
+:1031A000C5170C944D1801968770BECF0895CF9225
+:1031B000DF92EF92FF920F931F93CF93DF93CDB7E0
+:1031C000DEB762970FB6F894DEBF0FBECDBF8C019D
+:1031D00085E0F801DE011D9601900D928A95E1F7D8
+:1031E000D8014C9111965C91119712966C9112979F
+:1031F0001396CD90DC9014973091BA017091BB0179
+:103200008091BD019091BE01009709F46BC17F3F91
+:1032100019F43F3F09F466C1E090BC01EE2009F4C7
+:10322000C0C02091BF01C816D90628F0F601E81BDE
+:10323000F90BCF0104C0809590958C0D9D1DFF2446
+:10324000F394883C910578F0F12C207F09F0C6C0FA
+:103250007C2DD98AC88A89890E942E188AEB91E030
+:103260000E94C517B1C0822F807F09F046C0751338
+:1032700014C0341312C0611110C02F70206120934C
+:10328000BF010E946E188AEB91E00E94C5178091E1
+:10329000BF01D80115968C932EC0CD2819F15F3F40
+:1032A00011F44F3FF9F0F62E61111CC08091880196
+:1032B0002091890136E0821709F45AC090E0389FC6
+:1032C000F001399FF00D1124E657FE4F718157131D
+:1032D00006C07081471303C07281711103C001964B
+:1032E0008770E9CFF62E662309F418C18091BF01DB
+:1032F00081608093BF01F12C11C1751308C0341394
+:1033000006C0611104C08091BF01D801C3C04D87C0
+:103310005E878D859E856A8B0E9404186A89882342
+:10332000E1F16623D1F12091BF01822F82958F7048
+:1033300090E0029774F08091BA019091BB01988758
+:103340008F831986DB86CA862C87CE0107960E945A
+:10335000C51786E0F801AAEBB1E001900D928A95BD
+:10336000E1F70E947C180E946E18FF24F394D6C0E7
+:103370004D875E878D859E850E94381D292F229559
+:103380002F7030E0223031050CF0BCC09F7009F086
+:10339000B6C0805E883008F4C1C0C8010E94C5175D
+:1033A000E4CFC816D90608F453C0F601E81BF90BA0
+:1033B000CF01883C910508F450C0F12C7C2DD98AAE
+:1033C000C88A89890E942E18EAEBF1E086E0DF01C5
+:1033D0001D928A95E9F70E946E18A0C0751314C05B
+:1033E000341312C0611110C08091BF01F8018583B0
+:1033F000C8010E94C51786E0EAEBF1E0DF011D92EB
+:103400008A95E9F7FE2C8AC04D875E878D859E855B
+:103410006A8B0E9404186A89882309F4BECF662348
+:1034200009F4BBCF2091BF01822F82958F7090E06D
+:1034300002970CF48ECF8091BA019091BB019A83D0
+:1034400089831B82DD82CC822E83CE0101967FCFC1
+:10345000809590958C0D9D1DACCFF62E662309F4BA
+:103460009CCF75132EC034132CC02091BF0120FDBA
+:103470001FC0822F82958F70D9F0D80115962C939A
+:1034800015978F3049F08F5F982F9295907F822FFC
+:103490008F70892B15968C93C8010E94C51786E002
+:1034A000F801AAEBB1E001900D928A95E1F793CF74
+:1034B00086E0F801AAEBB1E001900D928A95E1F760
+:1034C0002DC04D875E878D859E850E9404188111D1
+:1034D00040CF8091BF0181608093BF01C8010E94ED
+:1034E000C5171CC0662309F458CF4D875E878D85AC
+:1034F0009E850E940418882309F44FCF2ACF81119A
+:1035000048CF0CC0243031050CF047CF9F7009F430
+:1035100040CFF8019581907F09F03BCF8F2D6296C7
+:103520000FB6F894DEBF0FBECDBFDF91CF911F91D4
+:103530000F91FF90EF90DF90CF9008951F93CF935E
+:10354000DF93CDB7DEB72C970FB6F894DEBF0FBE72
+:10355000CDBF4F83588769877A878B879C87CE0139
+:1035600007960E94D718882369F08F8198852A854D
+:103570003B85232BF1F19F3F09F063C08F3F09F09A
+:1035800060C037C086E0FE013796DE0111960190DB
+:103590000D928A95E1F76F817885EA85FB853097F2
+:1035A00041F17F3F11F46F3F21F12091890130E01B
+:1035B000C9010196877099274091880150E08417CE
+:1035C000950709F447C069837A83FD83EC8396E00D
+:1035D000929FD001939FB00D1124A657BE4FFE01BC
+:1035E000319601900D929A95E1F7809389010E949E
+:1035F0004D1816E080918801909189018917C1F1D9
+:10360000189FC001112486579E4F0E94D718882307
+:1036100079F1E09188011E9FF0011124E657FE4FD9
+:103620004081518162817381848195810E943D181E
+:103630008091880190E00196877099278093880196
+:10364000D9CF4F81588569857A858B859C850E9465
+:103650003D18CFCF0E940018109289011092880166
+:10366000EAEBF1E086E0DF011D928A95E9F7C1CF30
+:103670002C960FB6F894DEBF0FBECDBFDF91CF9171
+:103680001F910895EF92FF920F931F93CF93DF93B3
+:103690008C01009709F46CC0F12CEE24E394E8014E
+:1036A0002196F8018491843740F4843008F051C0A9
+:1036B000813081F0823019F15BC0853709F444C054
+:1036C000A8F19CE7980F903708F052C08F770E94BE
+:1036D0004B1541C00E5F1F4FFE01C49180E28C0F5D
+:1036E000883048F4C7708E2D01C0880FCA95EAF75C
+:1036F0000E941E1E14C08C2F0E9483142DC00E5FCA
+:103700001F4FFE01C49180E28C0F883058F4C770BF
+:103710008E2D01C0880FCA95EAF70E94241E0E94D0
+:10372000451E1AC08C2F0E944B1516C00E5F1F4FEE
+:10373000FE01C491CC2381F08FE99FE00197F1F75E
+:1037400000C00000C150F6CF0E5F1F4FFE01F49085
+:1037500003C00E9483148E018F2D882309F49FCF0C
+:10376000EFE9FFE03197F1F700C000008150F5CF9D
+:10377000DF91CF911F910F91FF90EF9008950895E1
+:103780006093C4017093C5018093C6019093C701F3
+:103790000C94EC170F931F930091C4011091C50175
+:1037A0002091C6013091C701DC01CB01802B912B08
+:1037B000A22BB32B8093C4019093C501A093C601A3
+:1037C000B093C7011F910F910C94EC170F931F93A7
+:1037D0000091C4011091C5012091C6013091C7012B
+:1037E000DC01CB0180239123A223B3238093C40166
+:1037F0009093C501A093C601B093C7011F910F918B
+:103800000C94EC170F931F930091C4011091C50104
+:103810002091C6013091C701DC01CB01802791279F
+:10382000A227B3278093C4019093C501A093C6013A
+:10383000B093C7011F910F910C94EC171092C00127
+:103840001092C1011092C2011092C3010C94EC17A6
+:1038500041E050E060E070E004C0440F551F661F77
+:10386000771F8A95D2F74093C0015093C1016093AE
+:10387000C2017093C3010C94EC1741E050E060E08A
+:1038800070E004C0440F551F661F771F8A95D2F75A
+:103890008091C0019091C101A091C201B091C3017A
+:1038A000482B592B6A2B7B2B4093C0015093C101AD
+:1038B0006093C2017093C3010C94EC1741E050E097
+:1038C00060E070E004C0440F551F661F771F8A95A3
+:1038D000D2F740955095609570958091C001909178
+:1038E000C101A091C201B091C301482359236A23A9
+:1038F0007B234093C0015093C1016093C201709338
+:10390000C3010C94EC1741E050E060E070E004C0AB
+:10391000440F551F661F771F8A95D2F78091C0010B
+:103920009091C101A091C201B091C30148275927CC
+:103930006A277B274093C0015093C1016093C20165
+:103940007093C3010C94EC170F931F930091C00167
+:103950001091C1012091C2013091C301DC01CB0162
+:10396000802B912BA22BB32B8093C0019093C1018C
+:10397000A093C201B093C3011F910F910C94EC1757
+:103980000F931F930091C0011091C1012091C201BA
+:103990003091C301DC01CB0180239123A223B32307
+:1039A0008093C0019093C101A093C201B093C30161
+:1039B0001F910F910C94EC170F931F930091C0016E
+:1039C0001091C1012091C2013091C301DC01CB01F2
+:1039D00080279127A227B3278093C0019093C1012C
+:1039E000A093C201B093C3011F910F910C94EC17E7
+:1039F0000895CF92DF92EF92FF920F931F93CF9390
+:103A0000DF938C01C090C401D090C501E090C60145
+:103A1000F090C7018091C0019091C101A091C201B5
+:103A2000B091C301C82AD92AEA2AFB2ACFE1D0E003
+:103A3000D701C6010C2E04C0B695A795979587951A
+:103A40000A94D2F780FF06C0B8018C2F0E94520A58
+:103A5000019721F4219760F780E001C08C2FDF915E
+:103A6000CF911F910F91FF90EF90DF90CF9008952D
+:103A7000CF93DF93EC010E94F91CBE010E94520A11
+:103A8000DF91CF910895CB010E94381D0895809158
+:103A9000C80185958595859508958091C8018770A1
+:103AA000089598E0899F90011124262B2093C80146
+:103AB0000C943D1C2091C801809582238093C801FD
+:103AC000982F977069F430E0482F552747FD50959F
+:103AD0002417350729F08595859585950C945E1CEE
+:103AE00008959091C801977081E009F480E00895ED
+:103AF00090910C01992321F090910D01911109C031
+:103B000020910E0130910F01F90132969FEF40E0B4
+:103B10001FC0982F9695969596959F3050F5E091F9
+:103B20000E01F0910F01E90FF11D877021E030E0E7
+:103B3000A90102C0440F551F8A95E2F7CA0191817D
+:103B4000892B818308959F3F39F04F5F4E3041F0BC
+:103B500051915813F8CF0DC05111F7CF942FF5CFD5
+:103B60009F3F39F0F901E90FF11D97FDFA95828326
+:103B70000895089590910C01992321F090910D01E1
+:103B8000911109C020910E0130910F01F901329677
+:103B9000205F3F4F1FC0982F9695969596959F3022
+:103BA000F0F4E0910E01F0910F01E90FF11D877023
+:103BB00021E030E0A90102C0440F551F8A95E2F7C9
+:103BC000CA01809591818923818308953196E217F6
+:103BD000F30729F090819813F9CF1082F7CF089559
+:103BE00081E090E0E0910E01F0910F01E80FF91FE4
+:103BF0001082019680319105A9F708959091DC011A
+:103C0000892B8093DC01089580959091DC018923B4
+:103C10008093DC0108951092DC0108959091DB01FE
+:103C2000892B8093DB01089580959091DB01892396
+:103C30008093DB0108951092DB0108959091DA01E1
+:103C4000892B8093DA01089580959091DA01892378
+:103C50008093DA0108951092DA0108958093C901E2
+:103C600008951092C901089580910E0190910F015D
+:103C7000FC0131969C01205F3F4F80E091919111B2
+:103C80008F5FE217F307D1F70895E0910E01F091ED
+:103C90000F018091DC018083E0910E01F0910F0112
+:103CA00090818091DB01892B8083E0910E01F0915E
+:103CB0000F0190818091DA01892B80838091C90165
+:103CC000882361F0E0910E01F0910F019081892B22
+:103CD00080830E94341E81111092C90180910E01CF
+:103CE00090910F010C94731320E0009739F0AC0110
+:103CF00041505109842395232F5FF7CF822F0895D8
+:103D0000CF92DF92EF92FF926C01EE24FF24C11458
+:103D1000D104E104F10421F0C701B60120E101C0A2
+:103D200020E0C72ED82EE92EFF24C114D104E104CF
+:103D3000F10419F0285FC701B6016B017C0154E062
+:103D4000F694E794D794C7945A95D1F7C114D10447
+:103D5000E104F10419F02C5FC701B6016B017C018D
+:103D600042E0F694E794D794C7944A95D1F7C114EA
+:103D7000D104E104F10419F02E5FC701B601DC01A2
+:103D8000CB01B695A79597958795892B8A2B8B2B79
+:103D900009F02F5F822FFF90EF90DF90CF90089572
+:103DA0008091F601843021F11092DE0120E488E157
+:103DB00090E00FB6F894A895809360000FBE209312
+:103DC000600080E00E94640C83B7817F846083BFC1
+:103DD00083B7816083BF7894889583B78E7F83BFD4
+:103DE00088E10FB6F89480936000109260000FBED7
+:103DF000089508950E941A050E942D050E94F91E3B
+:103E00000E94220691E0811101C090E0892F08955F
+:103E10000E9400180E9467130C94640C82E084BD19
+:103E200093E095BD9AEF97BD80936E0008952FB7EC
+:103E3000F8948091DF019091E001A091E101B091AF
+:103E4000E2012FBF0895CF92DF92EF92FF920F937E
+:103E50001F932FB7F8944091DF015091E0016091DA
+:103E6000E1017091E2012FBF6A017B01EE24FF2482
+:103E70008C0120E030E0C016D106E206F30610F413
+:103E8000415051099A01281B390BC9011F910F910B
+:103E9000FF90EF90DF90CF9008951F920F920FB692
+:103EA0000F9211248F939F93AF93BF938091DF0163
+:103EB0009091E001A091E101B091E2010196A11D74
+:103EC000B11D8093DF019093E001A093E101B093D5
+:103ED000E201BF91AF919F918F910F900FBE0F9014
+:103EE0001F9018950E946410F8942FEF87EA91E6CE
+:103EF000215080409040E1F700C0000087E090EB47
+:103F0000DC018093FF0190930002A0930102B09323
+:103F100002029CE088E10FB6F894A89580936000B7
+:103F20000FBE90936000FFCF0E94CC1F811102C092
+:103F30000E94B21F0E94D71F8093DD010E94DF1FE5
+:103F400090E09093F1018093F00187FB882780F93E
+:103F500080930D010E94DB1F682F70E080E090E0ED
+:103F60000C94C01B6DEE7EEF80E090E00E941A265C
+:103F700060E082E090E00E94082660E083E090E04C
+:103F80000E94082660E084E090E00E94082660E03D
+:103F900085E090E00C94082680E090E00E940226E4
+:103FA00021E08D3E9E4F09F020E0822F089582E0AF
+:103FB00090E00C94FA2583E090E00C94FA2584E0DC
+:103FC00090E00C94FA25682F84E090E00C94082689
+:103FD0008091E50180FF0BC06091130185E0689F2F
+:103FE000B001112475956795759567952BC081FF74
+:103FF00009C06091130185E0689FB0011124759597
+:10400000679520C082FF07C06091130185E0689F1B
+:10401000B001112417C09091E6019923D1F060916D
+:104020001201961788F72091130185E0289F9001CF
+:104030001124929FA001939F500D112470E0CA019A
+:104040000E94CC256038710540F46115710539F086
+:1040500002C065E070E0862F08958FE7089581E043
+:1040600008958091E50180FF08C06091110170E022
+:10407000759567957595679521C081FF06C060911C
+:10408000110170E07595679519C082FF04C06091B9
+:10409000110170E010C09091E6019923C1F0609188
+:1040A00010019617A0F780911101899FC00111247A
+:1040B00070E00E94CC256038710528F46115710507
+:1040C00021F0862F08958FE7089581E0089561E03B
+:1040D00070E0F4CF803F21F40E94E81F819504C076
+:1040E000813F29F40E94E81F8093E9010895823FEF
+:1040F00021F40E94E81F819504C0833F29F40E94A7
+:10410000E81F8093E8010895893F19F40E94312047
+:1041100005C08A3F31F40E94312081958093EA01E5
+:1041200008958B3F21F40E943120819504C08C3F7B
+:1041300029F40E9431208093EB010895843F21F4FB
+:104140008091E701816017C0853F21F48091E701EC
+:10415000826011C0863F21F48091E70184600BC02A
+:10416000873F21F48091E701886005C0883F31F4E2
+:104170008091E70180618093E70108958D3F21F4EC
+:104180008091E50181600BC08E3F21F48091E501B3
+:10419000826005C08F3F29F48091E501846080939F
+:1041A000E5010895803F39F48091E90187FF6CC0F3
+:1041B0001092E90169C0813F29F48091E901181644
+:1041C000BCF362C09091E801823F29F497FF5CC084
+:1041D0001092E80159C0833F19F41916CCF354C06A
+:1041E000893F41F48091EA0118160CF04DC01092FD
+:1041F000EA014AC08A3F29F48091EA0187FF44C05E
+:10420000F6CF8B3F39F48091EB0187FF3DC01092D0
+:10421000EB013AC08C3F29F48091EB011816BCF3F6
+:1042200033C0843F21F48091E7018E7F17C0853F22
+:1042300021F48091E7018D7F11C0863F21F48091A8
+:10424000E7018B7F0BC0873F21F48091E701877FD7
+:1042500005C0883F31F48091E7018F7E8093E701AC
+:1042600013C08D3F21F48091E5018E7F0BC08E3FFE
+:1042700021F48091E5018D7F05C08F3F29F4809165
+:10428000E5018B7F8093E5018091E80181110EC0EB
+:104290008091E90181110AC08091EA01811106C073
+:1042A0008091EB01811102C01092E601089587EE22
+:1042B00091E00E947E130E94171F9093E401809367
+:1042C000E30108951F93CF93DF938091E3019091D1
+:1042D000E4010E94231FAC019091E601992321F093
+:1042E0002091140130E006C0209115018AE0289F3A
+:1042F000900111244217530708F486C08091E80109
+:10430000C091E901D091EA011091EB01811107C040
+:10431000C11176C0D11174C0111172C075C09F3F18
+:1043200019F09F5F9093E601181624F40E94E81F8D
+:104330008093E8018091E80187FF05C00E94E81F93
+:1043400081958093E8011C1624F40E94E81F809355
+:10435000E9018091E90187FF05C00E94E81F81956E
+:104360008093E9016091E801662339F1C091E90188
+:10437000CC2319F1772767FD7095872F972F0E941F
+:10438000DD2423E333E343E35FE30E9441250E94FE
+:10439000AA246093E8016C2F772767FD7095872F1B
+:1043A000972F0E94DD2423E333E343E35FE30E947E
+:1043B00041250E94AA246093E9011D1624F40E945D
+:1043C00031208093EA018091EA0187FF05C00E94B5
+:1043D000312081958093EA01111624F40E94312046
+:1043E0008093EB018091EB0187FF05C00E94312093
+:1043F00081958093EB01DF91CF911F910C94572110
+:104400009F3F09F08ECF96CFDF91CF911F910895F6
+:10441000E7EEF1E085E0DF011D928A95E9F7109261
+:10442000E6011092E5010895833081F128F481308E
+:1044300059F08230D1F00895853009F449C0B8F1BF
+:10444000863009F456C0089580911501262F30E07A
+:10445000280F311D2F3F310524F4680F609315019B
+:1044600008958FEF80931501089580911401262FF0
+:1044700030E0280F311D2F3F310524F4680F609381
+:10448000140108958FEF8093140108958091130112
+:10449000262F30E0280F311D2F3F310524F4680FFF
+:1044A0006093130108958FEF809313010895809115
+:1044B0001201262F30E0280F311D2F3F310524F443
+:1044C000680F6093120108958FEF80931201089591
+:1044D00080911101262F30E0280F311D2F3F31052B
+:1044E00024F4680F6093110108958FEF80931101F8
+:1044F000089580911001262F30E0280F311D2F3FA5
+:10450000310524F4680F6093100108958FEF8093B4
+:1045100010010895833011F128F4813049F0823080
+:1045200091F00895853081F120F18630C1F1089530
+:1045300080911501681720F4861B8093150108955A
+:1045400010921501089580911401681720F4861BBC
+:10455000809314010895109214010895809113011D
+:10456000681720F4861B809313010895109213019D
+:10457000089580911201681720F4861B8093120120
+:10458000089510921201089580911101681720F486
+:10459000861B809311010895109211010895809156
+:1045A0001001681720F4861B809310010895109263
+:1045B000100108950F931F938D3109F471C008F015
+:1045C00045C0803109F485C008F5873009F46FC013
+:1045D00068F4863009F0ADC08091DD01817F8E7F67
+:1045E0008093DD0181E08093ED01A4C08B3009F45C
+:1045F0009EC08E3009F09DC08091DD0182FB222794
+:1046000020F991E0922790FB82F96CC0863109F481
+:104610008EC060F4813109F08CC00E940018909126
+:104620000D0181E0892780930D0181C0893109F452
+:104630007EC08B3109F07DC08091DD0181FB222796
+:1046400020F991E0922790FB81F94CC0853309F461
+:1046500066C048F4873209F462C008F44FC089325A
+:1046600009F45DC066C0833438F48A3308F044C06E
+:10467000883309F45CC05DC0833409F450C08834C9
+:1046800009F057C00E9400180FEF13ED20E301500E
+:1046900010402040E1F700C000000E94721F47C098
+:1046A0000E9464240E9467130E94640C40C0909191
+:1046B000DD01892F8095817080FB90F929F096604B
+:1046C00098609093DD0136C0997F977F9093DD01CC
+:1046D0002EC08091DD0183FB222720F991E09227F3
+:1046E00090FB83F98093DD01992309F18091DD012D
+:1046F00081608093DD011BC0895301C08D5141E071
+:1047000050E060E070E08A019B0104C0000F111FBF
+:10471000221F331F8A95D2F7C901B80104C061E096
+:1047200070E080E090E00E94C01B0E94001881E0D1
+:1047300001C080E01F910F91089580E0089580E00E
+:1047400008958E518A3030F4E82FF0E0E65DFE4F98
+:104750008081089580E00895CF93C82F8091ED0166
+:10476000813079F018F08230E9F186C0E0910E01D5
+:10477000F0910F018081813169F0823209F07EC0B1
+:1047800009C0E0910E01F0910F018081813111F09B
+:10479000823261F48C2F0E949D23811104C08C2FE2
+:1047A0000E94DA221DC081E090E01AC08C2F0E9486
+:1047B0009F23811114C0C43179F048F4CB3079F0D3
+:1047C000C03109F05FC082E08093ED0108C0C932BA
+:1047D00019F0C83321F056C01092ED0153C081E0AA
+:1047E000817052C0C93281F110F5C43169F1A8F469
+:1047F000C73009F045C08AE08093150194E1909399
+:10480000140193E0909313018093120188E0809348
+:10481000110188E28093100133C082EE8C0F863044
+:1048200078F58C2F0E94A1238093EC0129C0CE340F
+:10483000E9F020F4CB3421F56AE013C0C13579F0FA
+:10484000C235F1F461E00DC08091EC01882319F0CC
+:104850001092EC0115C081E08093ED0115C061E07C
+:1048600006C08091EC010E9414220AC06AE0809187
+:10487000EC010E948A2204C01092ED0180E004C085
+:1048800081E002C080E0ACCFCF910895E1E8F0E094
+:104890008081886080838081816080838FB7F89475
+:1048A00093E09093890090ED909388008FBF0895D6
+:1048B000EFE6F0E08081826080830895EFE6F0E02B
+:1048C00080818D7F80830895EFE6F0E0908182E023
+:1048D0008927808308951F920F920FB60F9211249B
+:1048E0002F933F934F935F936F937F938F939F93F8
+:1048F000AF93BF93EF93FF938091EE019091EF01FF
+:1049000001969093EF018093EE01811103C082E044
+:104910000E94640CE091EF01E695E695F0E0E55B1E
+:10492000F74FE4918091EE018E1303C080E00E9466
+:10493000640CFF91EF91BF91AF919F918F917F9107
+:104940006F915F914F913F912F910F900FBE0F90FC
+:104950001F90189504D06894B1118DC0089570D03F
+:1049600088F09F5790F0B92F9927B751A0F0D1F058
+:10497000660F771F881F991F1AF0BA95C9F712C0E2
+:10498000B13081F077D0B1E0089574C0672F782FEF
+:104990008827B85F39F0B93FCCF38695779567954E
+:1049A000B395D9F73EF490958095709561957F4FBA
+:1049B0008F4F9F4F0895E89409C097FB3EF4909560
+:1049C0008095709561957F4F8F4F9F4F9923A9F0E8
+:1049D000F92F96E9BB279395F69587957795679577
+:1049E000B795F111F8CFFAF4BB0F11F460FF1BC0BB
+:1049F0006F5F7F4F8F4F9F4F16C0882311F096E94E
+:104A000011C0772321F09EE8872F762F05C06623FB
+:104A100071F096E8862F70E060E02AF09A95660FB4
+:104A2000771F881FDAF7880F9695879597F908956D
+:104A300057FD9058440F551F59F05F3F71F047954F
+:104A4000880F97FB991F61F09F3F79F08795089534
+:104A5000121613061406551FF2CF4695F1DF08C053
+:104A6000161617061806991FF1CF86957105610570
+:104A700008940895E894BB2766277727CB0197F918
+:104A800008950BD078C069D028F06ED018F0952327
+:104A900009F05AC05FC01124EECFCADFA0F3959F82
+:104AA000D1F3950F50E0551F629FF001729FBB2715
+:104AB000F00DB11D639FAA27F00DB11DAA1F649FC1
+:104AC0006627B00DA11D661F829F2227B00DA11D74
+:104AD000621F739FB00DA11D621F839FA00D611DFA
+:104AE000221F749F3327A00D611D231F849F600D1B
+:104AF000211D822F762F6A2F11249F5750408AF054
+:104B0000E1F088234AF0EE0FFF1FBB1F661F771FDF
+:104B1000881F91505040A9F79E3F510570F014C076
+:104B2000AACF5F3FECF3983EDCF3869577956795C7
+:104B3000B795F795E7959F5FC1F7FE2B880F911DFD
+:104B40009695879597F9089597F99F6780E870E0A3
+:104B500060E008959FEF80EC089500240A941616F3
+:104B6000170618060906089500240A94121613065B
+:104B7000140605060895092E0394000C11F48823E9
+:104B800052F0BB0F40F4BF2B11F460FF04C06F5F05
+:104B90007F4F8F4F9F4F089597FB072E16F4009479
+:104BA00007D077FD09D00E94E62507FC05D03EF42A
+:104BB000909581959F4F0895709561957F4F0895C9
+:104BC000EE0FFF1F0590F491E02D0994AA1BBB1B6B
+:104BD00051E107C0AA1FBB1FA617B70710F0A61BFD
+:104BE000B70B881F991F5A95A9F780959095BC011E
+:104BF000CD010895F999FECF92BD81BDF89A99270C
+:104C000080B50895A8E1B0E042E050E00C9422267F
+:104C1000262FF999FECF92BD81BDF89A019700B475
+:104C2000021639F01FBA20BD0FB6F894FA9AF99A15
+:104C30000FBE08950196272F0E9409260C9408267E
+:104C4000DC01CB01FC01F999FECF06C0F2BDE1BD4C
+:104C5000F89A319600B40D9241505040B8F708953B
+:044C6000F894FFCFF6
+:104C64000220660CF40CD10C9D0C690C0101CA01E4
+:104C740028080A03140A404D36390B08BE07880772
+:104C84004F07E206FB0614072D070102030405067D
+:044C94000708090004
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/osx_de_experimental/keymap.c b/keyboards/ergodox_ez/keymaps/osx_de_experimental/keymap.c new file mode 100644 index 000000000..21d695894 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/osx_de_experimental/keymap.c @@ -0,0 +1,597 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_neo2.h" +#include "keymap_uk.h" +#include "keymap_colemak.h" +#include "keymap_nordic.h" +#include "keymap_dvorak.h" +#include "keymap_german.h" +#include "keymap_norwegian.h" +#include "keymap_fr_ch.h" +#include "keymap_german_osx.h" +#include "keymap_spanish.h" +#include "keymap_bepo.h" + + +/** +* This layout was generated using the ErgodoxLayoutGenerator (ELG). You can download it from https://github.com/sboesebeck/ErgodoxLayoutGenerator/releases +* documentation about it can be found here https://boesebeck.name/2016/04/16/ergodoxlayoutgenerator-documentation/ +* Thanks to the team of Erez Zukerman for building the great Ergodox-EZ! +* +* use at own risk! +**/ + +#define BASE 0 +#define SYMB 1 +#define MDIA 2 +#define SMLY 3 +#define NUMB 4 +#define EGOS 5 + +#define SMLY_TOG_QUOT 0 + +#define M_TOGGLE_5 1 + +#define TGH_NUM 2 + +#define M_DE_OSX_PLUS_CTRLALT 3 + +#define SM_KISS 4 + +#define SM_FROWN 5 + +#define SM_CRY 6 + +#define SM_SMILE 7 + +#define SM_SMIRK 8 + +#define M_LGUI_SHFT 9 + +#define SM_HEART 10 + +#define TOG_HLD_MDIA 11 + +#define SM_LAUGH 12 + +#define SM_SAD 13 + +#define M_DE_OSX_CIRC_CTRLCMD 14 + +#define M_MEH_SH_ACUT 15 + + +//Layout keymap.c generated with ErgodoxLayoutGenerator V1.0BETA1 +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/** +* Layer: BASE +* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ +* | ESC | 1 | 2 | 3 | 4 | 5 | Hold or toggle | | Hold or toggle | 6 | 7 | 8 | 9 | 0 | ß | +* | | | | | | | Layer NUMB | | Layer MDIA | | | | | | | +* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ +* | TAB | Q | W | E | R | T | Cmd | | Cmd | Z | U | I | O | P | Ü | +* | | | | | | | | | | | | | | | | +* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/\-------------------\ \-------------------\/-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ +* | Alt | A | S | D | F | G | | H | J | K | L | Ö | Ä | +* | | | | | | | | | | | | | ALT | +* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ +* | Shift | Y | X | C | V | B | Alt | | Alt | N | M | , | . | - | Shift | +* | | Ctrl | | | | | | | | | | | | Ctrl | | +* \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\ \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\ +* +* +* /-------------------//-------------------//-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------//-------------------//-------------------/ +* | < | LongPress / Type | LongPress / Type | Shift+Ctrl | Type | | # | ACUT | CMD+Shift | ALT+Shift | + | +* | SYMB | DE_OSX_CIRC_CTRLCMD| DE_OSX_PLUS_CTRAlt | | Toggle SMLY | | Meh | Hyper | | | SYMB | +* \-------------------\\-------------------\\-------------------\\-------------------\/-------------------//-------------------/ /-------------------//-------------------/ \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\ +* | HOME | END | | LEFT | RIGHT | +* | | | | | | +* \-------------------\/-------------------/ /-------------------/\-------------------\ +* | PGUP | | UP | +* | | | | +* /-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------/ +* | BSPC | DEL | PGDN | | DOWN | ENT | SPC | +* | | | | | | | | +* \-------------------\\-------------------\\-------------------\ \-------------------\\-------------------\\-------------------\ +* +* +**/ +[BASE]=KEYMAP( +//left half + KC_ESC, DE_OSX_1, DE_OSX_2, DE_OSX_3, DE_OSX_4, DE_OSX_5, M(TGH_NUM), + KC_TAB, DE_OSX_Q, DE_OSX_W, DE_OSX_E, DE_OSX_R, DE_OSX_T, KC_LGUI, + KC_LALT, DE_OSX_A, DE_OSX_S, DE_OSX_D, DE_OSX_F, DE_OSX_G, + KC_LSFT, CTL_T(DE_OSX_Y), DE_OSX_X, DE_OSX_C, DE_OSX_V, DE_OSX_B, KC_LALT, + LT(SYMB,DE_OSX_LESS), M(M_DE_OSX_CIRC_CTRLCMD), M(M_DE_OSX_PLUS_CTRLALT), LSFT(KC_LCTRL), M(SMLY_TOG_QUOT), + KC_HOME, KC_END, + KC_PGUP, + KC_BSPC, KC_DEL, KC_PGDN, + //right half + M(TOG_HLD_MDIA), DE_OSX_6, DE_OSX_7, DE_OSX_8, DE_OSX_9, DE_OSX_0, DE_OSX_SS, + KC_RGUI, DE_OSX_Z, DE_OSX_U, DE_OSX_I, DE_OSX_O, DE_OSX_P, DE_OSX_UE, + DE_OSX_H, DE_OSX_J, DE_OSX_K, DE_OSX_L, DE_OSX_OE, ALT_T(DE_OSX_AE), + KC_RALT, DE_OSX_N, DE_OSX_M, DE_OSX_COMM, DE_OSX_DOT, CTL_T(DE_OSX_MINS), KC_RSFT, + MEH_T(DE_OSX_HASH), ALL_T(DE_OSX_ACUT), LGUI(KC_LSFT), LALT(KC_LSFT), LT(SYMB,DE_OSX_PLUS), + KC_LEFT, KC_RIGHT, + KC_UP, + KC_DOWN, KC_ENT, KC_SPC), +/** +* Layer: SYMB +* /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ +* | APPLICATION| F1 | F2 | F3 | F4 | F5 | F5 | | F6 | F6 | F7 | F8 | F9 | F10 | F11 | +* | | | | | | | | | | | | | | | | +* /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ +* | | < | > | ! | ? | | | | | \ | [ | ] | < | > | ! | +* | | | | | | | | | | | | | | | | +* /-----------//-----------//-----------//-----------//-----------//-----------/\-----------\ \-----------\/-----------//-----------//-----------//-----------//-----------//-----------/ +* | | # | $ | \ | / | . | | / | ( | ) | { | } | # | +* | | | | | | | | | | | | | | +* /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ +* | | | < | % | | | ~ | | | | | | ~ | | | | | +* | | | | | | | | | | | | | | | | +* \-----------\\-----------\\-----------\\-----------\\-----------\\-----------\\-----------\ \-----------\\-----------\\-----------\\-----------\\-----------\\-----------\\-----------\ +* +* +* /-----------//-----------//-----------//-----------//-----------/ /-----------//-----------//-----------//-----------//-----------/ +* | | | | | | | ' | DQOT | | Toggle 5 | | +* | | | | | | | | | | | | +* \-----------\\-----------\\-----------\\-----------\/-----------//-----------/ /-----------//-----------/ \-----------\\-----------\\-----------\\-----------\\-----------\ +* | | | | F13 | F12 | +* | | | | | | +* \-----------\/-----------/ /-----------/\-----------\ +* | | | F14 | +* | | | | +* /-----------//-----------//-----------/ /-----------//-----------//-----------/ +* | | DEL | | | F15 | | | +* | | | | | | | | +* \-----------\\-----------\\-----------\ \-----------\\-----------\\-----------\ +* +* +**/ +[SYMB]=KEYMAP( +//left half + KC_APPLICATION, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F5, + KC_TRNS, DE_OSX_LESS, DE_OSX_MORE, DE_OSX_EXLM, DE_OSX_QST, KC_TRNS, KC_TRNS, + KC_TRNS, DE_OSX_HASH, DE_OSX_DLR, DE_OSX_BSLS, DE_OSX_SLSH, KC_DOT, + KC_TRNS, KC_TRNS, DE_OSX_LESS, DE_OSX_PERC, DE_OSX_PIPE, DE_OSX_TILD, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_DEL, KC_TRNS, + //right half + KC_F6, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, DE_OSX_BSLS, DE_OSX_LBRC, DE_OSX_RBRC, DE_OSX_LESS, DE_OSX_MORE, DE_OSX_EXLM, + DE_OSX_SLSH, DE_OSX_LPRN, DE_OSX_RPRN, DE_OSX_LCBR, DE_OSX_RCBR, DE_OSX_HASH, + KC_TRNS, DE_OSX_PIPE, DE_OSX_TILD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + DE_OSX_QUOT, DE_OSX_DQOT, KC_TRNS, M(M_TOGGLE_5), KC_TRNS, + KC_F13, KC_F12, + KC_F14, + KC_F15, KC_TRNS, KC_TRNS), +/** +* Layer: MDIA +* /-----//-----//-----//-----//-----//-----//-----/ /-----//-----//-----//-----//-----//-----//-----/ +* | | | | | | | | | | | | | | | | +* | | | | | | | | | | | | | | | | +* /-----//-----//-----//-----//-----//-----//-----/ /-----//-----//-----//-----//-----//-----//-----/ +* | | | BTN1 | U | BTN2 | U | | | | | | | | | | +* | | | | | | | | | | | | | | | | +* /-----//-----//-----//-----//-----//-----/\-----\ \-----\/-----//-----//-----//-----//-----//-----/ +* | | | L | D | R | D | | | | | | | | +* | | | | | | | | | | | | | | +* /-----//-----//-----//-----//-----//-----//-----/ /-----//-----//-----//-----//-----//-----//-----/ +* | | | L | D | R | BTN3 | | | | | | | | UP | | +* | | | | | | | | | | | | | | | | +* \-----\\-----\\-----\\-----\\-----\\-----\\-----\ \-----\\-----\\-----\\-----\\-----\\-----\\-----\ +* +* +* /-----//-----//-----//-----//-----/ /-----//-----//-----//-----//-----/ +* | | | | | | | | | LEFT | DOWN | RIGHT| +* | | | | | | | | | | | | +* \-----\\-----\\-----\\-----\/-----//-----/ /-----//-----/ \-----\\-----\\-----\\-----\\-----\ +* | | | | MPRV | MNXT | +* | | | | | | +* \-----\/-----/ /-----/\-----\ +* | | | VOLU | +* | | | | +* /-----//-----//-----/ /-----//-----//-----/ +* | | | | | VOLD | MUTE | MPLY | +* | | | | | | | | +* \-----\\-----\\-----\ \-----\\-----\\-----\ +* +* +**/ +[MDIA]=KEYMAP( +//left half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, KC_TRNS, + KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, + KC_TRNS, KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_R, KC_BTN3, 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 half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, + KC_MPRV, KC_MNXT, + KC_VOLU, + KC_VOLD, KC_MUTE, KC_MPLY), +/** +* Layer: SMLY +* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ +* | | | | | | | | | Typing | Typing | Typing | | | | | +* | | | | | | | | | SM_SMILE| SM_SMIRK| SM_LAUGH| | | | | +* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ +* | | | | | | | | | | Typing | Typing | Typing | | | | +* | | | | | | | | | | SM_FROWN| SM_SAD | SM_CRY | | | | +* /--------//--------//--------//--------//--------//--------/\--------\ \--------\/--------//--------//--------//--------//--------//--------/ +* | | | | | | | | Typing | Typing | | | | | +* | | | | | | | | SM_HEART| SM_KISS | | | | | +* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ +* | | | | | | | | | | | | | | | | +* | | | | | | | | | | | | | | | | +* \--------\\--------\\--------\\--------\\--------\\--------\\--------\ \--------\\--------\\--------\\--------\\--------\\--------\\--------\ +* +* +* /--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------/ +* | | | | | | | | | | | | +* | | | | | | | | | | | | +* \--------\\--------\\--------\\--------\/--------//--------/ /--------//--------/ \--------\\--------\\--------\\--------\\--------\ +* | | | | | | +* | | | | | | +* \--------\/--------/ /--------/\--------\ +* | | | | +* | | | | +* /--------//--------//--------/ /--------//--------//--------/ +* | | | | | | | | +* | | | | | | | | +* \--------\\--------\\--------\ \--------\\--------\\--------\ +* +* +**/ +[SMLY]=KEYMAP( +//left half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 half + M(SM_SMILE), M(SM_SMIRK), M(SM_LAUGH), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, M(SM_FROWN), M(SM_SAD), M(SM_CRY), KC_TRNS, KC_TRNS, KC_TRNS, + M(SM_HEART), M(SM_KISS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), +/** +* Layer: NUMB +* /----//----//----//----//----//----//----/ /----//----//----//----//----//----//----/ +* | | | | | | | | | | F6 | F7 | F8 | F9 | F10 | F11 | +* | | | | | | | | | | | | | | | | +* /----//----//----//----//----//----//----/ /----//----//----//----//----//----//----/ +* | | | | UP | | | | | | / | 7 | 8 | 9 | * | F12 | +* | | | | | | | | | | | | | | | | +* /----//----//----//----//----//----/\----\ \----\/----//----//----//----//----//----/ +* | | | LEFT| DOWN| RGHT| | | / | 4 | 5 | 6 | + | - | +* | | | | | | | | | | | | | | +* /----//----//----//----//----//----//----/ /----//----//----//----//----//----//----/ +* | | | | | | | | | | % | 1 | 2 | 3 | | | +* | | | | | | | | | | | | | | | | +* \----\\----\\----\\----\\----\\----\\----\ \----\\----\\----\\----\\----\\----\\----\ +* +* +* /----//----//----//----//----/ /----//----//----//----//----/ +* | | | | | | | 0 | . | , | = | | +* | | | | | | | | | | | | +* \----\\----\\----\\----\/----//----/ /----//----/ \----\\----\\----\\----\\----\ +* | | | | | | +* | | | | | | +* \----\/----/ /----/\----\ +* | | | | +* | | | | +* /----//----//----/ /----//----//----/ +* | | | | | | | | +* | | | | | | | | +* \----\\----\\----\ \----\\----\\----\ +* +* +**/ +[NUMB]=KEYMAP( +//left half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, 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, + //right half + KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_TRNS, DE_OSX_SLSH, KC_7, KC_8, KC_9, DE_OSX_ASTR, KC_F12, + DE_OSX_SLSH, KC_4, KC_5, KC_6, DE_OSX_PLUS, DE_OSX_MINS, + KC_TRNS, DE_OSX_PERC, KC_1, KC_2, KC_3, KC_TRNS, KC_TRNS, + KC_0, KC_DOT, KC_COMM, DE_OSX_EQL, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS), +/** +* Layer: EGOS +* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ +* | | | | | | | | | | | | | | | | +* | | | | | | | | | | | | | | | | +* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ +* | | | | | | | | | | | | | | | | +* | | | | | | | | | | | | | | | | +* /--------//--------//--------//--------//--------//--------/\--------\ \--------\/--------//--------//--------//--------//--------//--------/ +* | Shift | | | | | | | | | | | | | +* | | | | | | | | | | | | | | +* /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/ +* | | | | | | | | | | | | | | | | +* | | | | | | | | | | | | | | | | +* \--------\\--------\\--------\\--------\\--------\\--------\\--------\ \--------\\--------\\--------\\--------\\--------\\--------\\--------\ +* +* +* /--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------/ +* | Ctrl | | | | | | | | | Toggle 5| | +* | | | | | | | | | | | | +* \--------\\--------\\--------\\--------\/--------//--------/ /--------//--------/ \--------\\--------\\--------\\--------\\--------\ +* | F1 | F2 | | | | +* | | | | | | +* \--------\/--------/ /--------/\--------\ +* | F3 | | | +* | | | | +* /--------//--------//--------/ /--------//--------//--------/ +* | SPC | Ctrl | F4 | | | | | +* | | | | | | | | +* \--------\\--------\\--------\ \--------\\--------\\--------\ +* +* +**/ +[EGOS]=KEYMAP( +//left half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_TRNS, KC_TRNS, + KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_F1, KC_F2, + KC_F3, + KC_SPC, KC_LCTL, KC_F4, + //right half + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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(M_TOGGLE_5), 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) +{ +static uint16_t start; +switch(id) { +case SMLY_TOG_QUOT: +//Macro: SMLY_TOG_QUOT//----------------------- +if (record->event.pressed) { + start = timer_read(); + layer_state ^= (1<<SMLY); + layer_state &= (1<<SMLY); + return MACRO_NONE; } else { + layer_state ^= (1<<SMLY); + layer_state &= (1<<SMLY); + if (timer_elapsed(start) >150) { + return MACRO_NONE; + } else { + return MACRO(DOWN(KC_LSFT),TYPE(DE_OSX_HASH),UP(KC_LSFT),END); + } + } + +break; +case M_TOGGLE_5: +//Macro: M_TOGGLE_5//----------------------- + if (record->event.pressed){ + layer_state ^= (1<<5); + layer_state &= (1<<5); + } + +break; +case TGH_NUM: +//Macro: TGH_NUM//----------------------- +if (record->event.pressed){ + start = timer_read(); + layer_state ^=(1<<NUMB); + layer_state &=(1<<NUMB); + } else { + if (timer_elapsed(start) > 150) { + layer_state^=(1<<NUMB); + layer_state&=(1<<NUMB); + } + } +return MACRO_NONE; + +break; +case M_DE_OSX_PLUS_CTRLALT: +//Macro: M_DE_OSX_PLUS_CTRLALT//----------------------- +if (record->event.pressed) { + start = timer_read(); + return MACRO(DOWN(KC_LCTRL),DOWN(KC_LALT),END); + } else { + if (timer_elapsed(start) >150) { + return MACRO(U(LCTRL),U(LALT),END); + } else { + return MACRO(UP(KC_LCTRL),UP(KC_LALT),TYPE(KC_RBRC),END); + } + } + +break; +case SM_KISS: +//Macro: SM_KISS//----------------------- +if (record->event.pressed) { + return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_RBRC),UP(KC_LSFT),END); + } + +break; +case SM_FROWN: +//Macro: SM_FROWN//----------------------- +if (record->event.pressed) { + return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LALT),TYPE(KC_8),UP(KC_LALT),END); + } + +break; +case SM_CRY: +//Macro: SM_CRY//----------------------- +if (record->event.pressed) { + return MACRO(DOWN(KC_LSFT),TYPE(KC_COMM),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_8),UP(KC_LSFT),END); + } + +break; +case SM_SMILE: +//Macro: SM_SMILE//----------------------- +if (record->event.pressed) { + return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_9),UP(KC_LSFT),END); + } + +break; +case SM_SMIRK: +//Macro: SM_SMIRK//----------------------- +if (record->event.pressed) { + return MACRO(DOWN(KC_LSFT),TYPE(KC_COMM),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_9),UP(KC_LSFT),END); + } + +break; +case M_LGUI_SHFT: +//Macro: M_LGUI_SHFT//----------------------- +if (record->event.pressed){ + return MACRO(DOWN(KC_LGUI),DOWN(KC_LSFT),END); + }else{ + return MACRO(UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),U(LGUI),U(LSFT),END); + } + +break; +case SM_HEART: +//Macro: SM_HEART//----------------------- +if (record->event.pressed) { + return MACRO(TYPE(KC_GRV),TYPE(KC_3),END); + } + +break; +case TOG_HLD_MDIA: +//Macro: TOG_HLD_MDIA//----------------------- +if (record->event.pressed){ + start = timer_read(); + layer_state ^=(1<<MDIA); + layer_state &=(1<<MDIA); + } else { + if (timer_elapsed(start) > 150) { + layer_state^=(1<<MDIA); + layer_state&=(1<<MDIA); + } + } +return MACRO_NONE; + +break; +case SM_LAUGH: +//Macro: SM_LAUGH//----------------------- +if (record->event.pressed) { + return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_D),UP(KC_LSFT),END); + } + +break; +case SM_SAD: +//Macro: SM_SAD//----------------------- +if (record->event.pressed) { + return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_8),UP(KC_LSFT),END); + } + +break; +case M_DE_OSX_CIRC_CTRLCMD: +//Macro: M_DE_OSX_CIRC_CTRLCMD//----------------------- +if (record->event.pressed) { + start = timer_read(); + return MACRO(DOWN(KC_LCTRL),DOWN(KC_LGUI),END); + } else { + if (timer_elapsed(start) >150) { + return MACRO(U(LCTRL),U(LGUI),END); + } else { + return MACRO(UP(KC_LCTRL),UP(KC_LGUI),TYPE(KC_NUBS),END); + } + } + +break; +case M_MEH_SH_ACUT: +//Macro: M_MEH_SH_ACUT//----------------------- +if (record->event.pressed) { + start = timer_read(); + return MACRO(DOWN(KC_LCTRL),DOWN(KC_LSFT),DOWN(KC_LALT),END); + } else { + if (timer_elapsed(start) >150) { + return MACRO(U(LCTRL),U(LSFT),U(LALT),END); + } else { + return MACRO(UP(KC_LCTRL),UP(KC_LALT),TYPE(DE_OSX_ACUT),UP(KC_LSFT),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); + +ergodox_board_led_off(); +ergodox_right_led_1_off(); +ergodox_right_led_2_off(); +ergodox_right_led_3_off(); +switch (layer) { + + case SYMB: + ergodox_right_led_1_on(); + + + break; + case MDIA: + + ergodox_right_led_2_on(); + + break; + case NUMB: + + + ergodox_right_led_3_on(); + break; + case EGOS: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); + break; +default: +// none +break; +} + +}; + diff --git a/keyboards/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png b/keyboards/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png Binary files differnew file mode 100644 index 000000000..031d874a7 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png diff --git a/keyboards/ergodox_ez/keymaps/osx_de_experimental/readme.md b/keyboards/ergodox_ez/keymaps/osx_de_experimental/readme.md new file mode 100644 index 000000000..e6a101841 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/osx_de_experimental/readme.md @@ -0,0 +1,22 @@ + +# Ergodox und Ergodox-EZ experimentelles Layout + +dieses layout ist experimentell und wird im Lufe der Zeit viele Änderungen und Verbesserungen durchlaufen. Falls diese sich als vorteilhaft erweisen, werden sie evtl. auch in das `osx_de` layout übernommen. + + + +# Erstellt Mit Dem ErgodoxLayoutGenerator + +Der ErgodoxLayoutGenerator (ELG) ist ein kleines Werkzeug, welches die Erstellung und Pflege der eigenen Keymaps erleichtern soll. Es ist in java geschrieben und kann [hier](https://github.com/sboesebeck/ErgodoxLayoutGenerator/releases) heruntergeladen werden. Damit das Tool funktioniert sollte das offizielle Oracle JDK in aktueller Version installiert sein. +Die Dokumentation für den ELG kann man [hier](https://boesebeck.name/2016/04/16/ergodoxlayoutgenerator-documentation/) nachlesen (momentan leider nur in Englisch verfügbar). +--------------------------------------------------------------------------------------------------------------------- + +# Ergodox and Ergodox-EZ experimental layout + +This is an experimental layout which will undergo heavy changes over time. If changes prove to be good, they might also move into the `osx_de` layout. + +Created Using the ErgodoxLayoutGenerator + +The ErgodoxLayoutGenerator (ELG) is a little tool, which makes the creation and maintenance of keycaps a lot easier. It was written in Java and can be downloaded [here](https://github.com/sboesebeck/ErgodoxLayoutGenerator/releases). To use the tool, you need to have a current version of Oracles JDK installed. + +The documentation of the ELG can be viewed [here](https://boesebeck.name/2016/04/16/ergodoxlayoutgenerator-documentation/).
\ No newline at end of file diff --git a/keyboards/ergodox_ez/keymaps/osx_fr/compiled.hex b/keyboards/ergodox_ez/keymaps/osx_fr/compiled.hex new file mode 100644 index 000000000..37112ba42 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/osx_fr/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4
+:100010000C94BE020C94BE020C94BE020C94BE0260
+:100020000C94BE020C94BE020C94620D0C94340E1F
+:100030000C94BE020C94BE020C94BE020C94BE0240
+:100040000C94BE020C943E220C94BE020C94BE0290
+:100050000C94BE020C94D11B0C94BE020C94BE02F4
+:100060000C94BE020C94BE020C94BE020C94BE0210
+:100070000C94BE020C94BE020C94BE020C94BE0200
+:100080000C94BE020C94BE020C94BE020C94BE02F0
+:100090000C94BE020C94BE020C94BE020C94BE02E0
+:1000A0000C94BE020C94BE020C94BE02A10EC30EB0
+:1000B000B10FC30EB10F080F2B0FB10F800F930FAD
+:1000C0006212621291129112C712E71218141814D8
+:1000D000F2121814A213A2130914181418141214EB
+:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300
+:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0
+:10010000C113CE13D513DC13E6130000F0A12E00AB
+:100110004C002A00E100344100001E0014000400DD
+:100120001D7164004D001F001A0016001B00E10441
+:100130002A00200008000700060050002C002100C3
+:100140001500090019004F004A00220017000A009C
+:10015000050000006574500001540000007F00009D
+:10016000E3004F000154000000770000E20023008C
+:100170001C000B00110000002971240018000D0064
+:10018000100052004B0025000C000E0036425100BA
+:100190002800260012000F0037002F002B00270038
+:1001A00013003300387130004E002D003200E300A0
+:1001B000E500C10000000100010001000100010094
+:1001C00000003A00250035023402010001003B0026
+:1001D000350030002F00010001003C002204220005
+:1001E0002206010001003D002D042D002D06010016
+:1001F00001003E000F063200110400000100010062
+:1002000001000000010000000100010001000000E9
+:100210000100000001003F00520051001E000000DC
+:1002200001004000240221021E02010001004100E1
+:10023000250222021F0210000100420026022302B2
+:10024000200227020100430030023802370638003E
+:100250000100440045000100010001000000010010
+:100260000100010001000100000001000100010087
+:1002700001000100010001000100F2000100010085
+:1002800001000100F000F1000100F4000100010094
+:100290000100F3000100F500010001000100010070
+:1002A0000100000001000100010000000100000049
+:1002B0000100010001000000010000000100010038
+:1002C0000100010001000000010001000100010027
+:1002D0000100A9000100010001000100AC00AA001A
+:1002E000B600010001000100AB00A8000100010000
+:1002F0000100010001000100010001000100AE0049
+:1003000001000100000016034500720067006F0045
+:1003100044006F007800200045005A0000001603DA
+:100320004500720067006F0044006F0078002000F5
+:1003300045005A0000000403090409026D0004018D
+:1003400000A0FA09040000010301010009211101C4
+:100350000001223F000705810308000A090401008B
+:100360000103010200092111010001224D000705CE
+:10037000820308000A0904020001030000000921A9
+:10038000110100012236000705830308000A090451
+:1003900003000103000000092111010001223900BE
+:1003A000070584031000011201100100000008ED90
+:1003B000FE071301000102000105010906A1010564
+:1003C0000719E029E7150025019508750181020547
+:1003D000081901290595057501910295017503918B
+:1003E0000105071900297715002501957875018108
+:1003F00002C005010980A101850216010026B7008F
+:100400001A01002AB700751095018100C0050C097A
+:1004100001A1018503160100269C021A01002A9CF5
+:1004200002751095018100C005010902A1010901B1
+:10043000A10005091901290515002501950575017A
+:10044000810295017503810105010930093115818A
+:10045000257F95027508810609381581257F95014C
+:1004600075088106050C0A38021581257F950175EE
+:10047000088106C0C005010906A101050719E02988
+:10048000E715002501950875018102950175088120
+:100490000105081901290595057501910295017558
+:1004A0000391010507190029FF150025FF95067521
+:1004B000088100C0000000000000000000000001F2
+:1004C0000204060A0F17202C3A4A5D71879DB3C7B4
+:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF
+:1004E0003A2C20170F0A0604020100000000000049
+:1004F0000000000011241FBECFEFDAE0DEBFCDBF49
+:1005000004B603FE24C08091FB019091FC01A091F0
+:10051000FD01B091FE018730904BA740B04BB9F47C
+:100520001092FB011092FC011092FD011092FE014D
+:1005300014BE84B7877F84BF88E10FB6F894809398
+:100540006000109260000FBEE0E0FFE3099511E04B
+:10055000A0E0B1E0EAE0F8E402C005900D92A43317
+:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0
+:10057000B107E1F70E94A60A0C9403240C94000032
+:100580001092B9008AE08093B800089594EA90939D
+:10059000BC009091BC0097FFFCCF9091B900987F70
+:1005A000983021F0903111F081E008958093BB00E4
+:1005B00084E88093BC008091BC0087FFFCCF8091D1
+:1005C000B900887F883111F0803471F780E0089598
+:1005D00084E98093BC008091BC0084FDFCCF089529
+:1005E0008093BB0084E88093BC008091BC0087FFAF
+:1005F000FCCF9091B900987F81E0983209F480E0B7
+:10060000089584E88093BC008091BC0087FFFCCFF4
+:100610008091BB00089580910101811115C080E493
+:100620000E94C6028093010181110CC082E10E94E8
+:10063000F00280930101811105C08FEF0E94F0024A
+:10064000809301010E94E80284B1807F84B985B162
+:10065000807F85B98AB1837F8AB98BB1837F8BB95B
+:100660003E98469808950E94C604809301010E9416
+:100670000B0380B38C7080BB81B3836F81BBA5E318
+:10068000B1E0E3E4F1E08EE08E0F11921D928E1343
+:10069000FCCF0C94B004BF92CF92DF92EF92FF9206
+:1006A0000F931F93CF93DF9380910101882379F0FB
+:1006B000809134018F5F80933401811108C00E94C2
+:1006C000C60480930101811102C00E94580405E311
+:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407
+:1006E000E394F12CC730D10500F58091010181110F
+:1006F00064C080E40E94C60280930101811112C08F
+:1007000082E10E94F0028093010181110BC0C701B8
+:100710000C2E01C0880F0A94EAF780950E94F0021F
+:10072000809301010E94E80248C0CA30A1F028F479
+:10073000C83059F0C93061F005C0CC3089F070F094
+:10074000CD3089F0209A289810C0219A29980DC0A0
+:10075000229A2A980AC0239A2B9807C0529A01C05D
+:10076000539A5B9802C03E9A469890EA9A95F1F7A0
+:100770009FB1799902C082E001C080E091709D250F
+:10078000982B7C9902C084E001C080E0892B7D9980
+:1007900002C038E001C030E0832B7E9902C020E126
+:1007A00001C020E0822B9FB19095991F9927991F36
+:1007B0009295990F907E892B0FC080910101811134
+:1007C00049C080E40E94C60280930101882379F128
+:1007D000B12C0E94E8028B2DF8019081981719F036
+:1007E0008083C09200010E940B0321960F5F1F4F70
+:1007F000CE30D10509F076CF80910001882361F1D8
+:10080000815080930001882339F08FE99FE00197A0
+:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F
+:10082000CF01825F91919D938E13FCCF15C083E120
+:100830000E94F002809301018111CACF81E40E94DD
+:10084000C602809301018111C3CF0E940103B82E1B
+:10085000B094BFCF80E0C0CF0E94560481E0DF910A
+:10086000CF911F910F91FF90EF90DF90CF90BF90AD
+:100870000895E82FF0E0ED5BFE4F80810895089524
+:100880000F931F93CF93DF93C3E4D1E010E00C2FBD
+:10089000025F899190E00E94F71A180F0C13F9CFAC
+:1008A000812FDF91CF911F910F9108950C94260510
+:1008B00056985E9825982D9826982E9827982F98C8
+:1008C0008FEF90E0909389008093880090938B0045
+:1008D00080938A0090938D0080938C00259A2D9AA6
+:1008E0002FEF80E792E0215080409040E1F700C078
+:1008F0000000269A2E9A2FEF80E792E02150804048
+:100900009040E1F700C00000279A2F9A2FEF80E770
+:1009100092E0215080409040E1F700C0000025980F
+:100920002D982FEF80E792E0215080409040E1F732
+:1009300000C0000026982E982FEF80E792E021500B
+:1009400080409040E1F700C0000027982F9856980B
+:100950005E9825982D9826982E9827982F98089578
+:1009600089EA8093800089E08093810024982C9804
+:100970003F988AB18F748AB96E98479A8BB1806B11
+:100980008BB9769A0E9458040C94250580E28093D6
+:1009900001018091510181110EC00E94C00281E0CD
+:1009A000809351012FEF83ED90E3215080409040E0
+:1009B000E1F700C0000080E40E94C60280930101BC
+:1009C00081112EC00E94F00280930101811128C084
+:1009D0000E94F00280930101811122C08FE30E94E6
+:1009E000F0028093010181111BC00E94E80280E4A3
+:1009F0000E94C60280930101811112C08CE00E9406
+:100A0000F0028093010181110BC00E94F0028093DB
+:100A10000101811105C08FE30E94F0028093010162
+:100A20000E94E80280910101089561110BC0FC0150
+:100A30008281882321F085EE0E94061103C085EE95
+:100A40000E94CE1180E090E0089508956091BD016C
+:100A50007091BE018091BF019091C0010E94031B63
+:100A600056985E9825982D9826982E9827982F9816
+:100A7000813019F0823021F00895259A2D9A089539
+:100A8000269A2E9A089581E0089581E008950C94A5
+:100A9000450508950F931F93CF93DF938C01FC01BD
+:100AA000C081D181CE010E947C19BE010E94F30554
+:100AB000EC01B8010E944705882309F48DC0F801B4
+:100AC0008281882309F44AC080915D0181111FC091
+:100AD000C431F0E5DF0709F051C00E94490581E00B
+:100AE00080935D010E949B1B90935C0180935B014E
+:100AF0001092540110925601109255011092580113
+:100B00001092570110925A011092590165C08091BC
+:100B10005B0190915C010E94A71B883C910570F4D9
+:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB
+:100B3000D183C0838F5F809354014EC0C43880E559
+:100B4000D80721F0C538D04501F13AC0F8018281BB
+:100B5000882341F01092520182E01EC0C438E0E5C3
+:100B6000DE0759F580915201811106C086E20E948C
+:100B7000061186E20E94CE1182E01CC0C438F0E566
+:100B8000DF0741F3C538D045D9F4F80182818823C5
+:100B900031F01092530180E20E941D121DC080911D
+:100BA0005301811106C087E20E94061187E20E946C
+:100BB000CE1180E20E9424120FC0C538D04529F31F
+:100BC00081E08093520180935301C801DF91CF915E
+:100BD0001F910F910C94430580E0DF91CF911F91FD
+:100BE0000F910895089596E0799FF001112494E5FE
+:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F
+:100C0000E25FFE4F859194910895880F991FFC0132
+:100C1000E657F040859194910895880F991FFC0143
+:100C2000E65FFE4F8591949108950F931F93CF93A4
+:100C3000DF93EC01811520E3920750F5C11580E2A6
+:100C4000D80708F0C3C0CB3BD10590F4C83AD10512
+:100C500008F06AC0C53AD10508F05BC0C430D105C0
+:100C600008F0D0C1219709F0CAC101E010E00AC222
+:100C7000CF3FD10511F008F0C5C1C03FD10508F044
+:100C8000A2C0CE01805E9109089708F4BBC1B7C12C
+:100C9000C13090E5D90709F4A2C020F5C0318FE436
+:100CA000D80770F4C11590E4D90708F094C0C115B5
+:100CB00021E3D20708F0A3C1DD278E01106CE2C149
+:100CC000C115D04509F09BC10E9483148FEF94E3B6
+:100CD0002CE0815090402040E1F700C000000E94CD
+:100CE000F61BD0C1C11597E5D90758F4C03121E5ED
+:100CF000D20708F01CC1C43180E5D80708F475C0DC
+:100D00007EC1CE0190578115904108F078C1DF7007
+:100D100073C1C53AD10509F477C1C63AD10509F0C6
+:100D200076C102E810E4AEC1C83AD10509F472C137
+:100D3000C93AD10509F471C1CA3AD10509F470C1A3
+:100D4000CB3AD10509F46FC1CC3AD10509F46EC193
+:100D5000CD3AD10509F46DC1C03BD10509F46CC190
+:100D6000CE3AD10509F46BC1CF3AD10509F46AC175
+:100D7000C13BD10509F469C1C23BD10509F468C181
+:100D8000C33BD10509F467C1C43BD10509F466C171
+:100D9000C53BD10509F465C1C63BD10509F464C161
+:100DA000C73BD10509F463C1C83BD10509F462C151
+:100DB000C93BD10509F461C1CA3BD10509F460C141
+:100DC00000E014E45FC18E0110655CC1CE019F702C
+:100DD0000E940D0658C1DF708E01106A53C18091C8
+:100DE000DA0181608093DA014DC10E949B1D81115F
+:100DF00002C00E94811D0E94B81D90E09093FB01EB
+:100E00008093FA01C23080E5D80721F48091FA017D
+:100E1000816086C0C43090E5D90721F48091FA0141
+:100E200082607EC0C63020E5D20721F48091FA01AD
+:100E3000846076C0C83080E5D80719F48091FA0143
+:100E400027C0CA3090E5D90721F48091FA0180616A
+:100E500067C0CC3020E5D20721F48091FA0180628E
+:100E60005FC0CE3080E5D80721F48091FA0180641C
+:100E700057C0C03190E5D90721F48091FA0180680C
+:100E80004FC0C23120E5D20729F48091FA01846075
+:100E9000886046C0C33080E5D80721F48091FA010C
+:100EA0008E7F3EC0C53090E5D90721F48091FA01CC
+:100EB0008D7F36C0C73020E5D20721F48091FA013A
+:100EC0008B7F2EC0C93080E5D80719F48091FA01D4
+:100ED00026C0CB3090E5D90721F48091FA018F7EAE
+:100EE0001FC0CD3020E5D20721F48091FA018F7D1B
+:100EF00017C0CF3080E5D80721F48091FA018F7BAD
+:100F00000FC0C13190E5D90721F48091FA018F77A4
+:100F100007C0C331D04531F48091FA018B7F877FC0
+:100F20008093FA018091FA010E94BC1DABC08D2F05
+:100F300099278F70992781309105D9F49E012370EC
+:100F4000332702C0880F991F2A95E2F79C688E010B
+:100F500044E0000F111F4A95E1F700271370802B22
+:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA
+:100F70002FC08230910531F4DC2FCC278E01016F18
+:100F8000106A80C08330910569F4CE01837099277F
+:100F900001E010E002C0000F111F8A95E2F7C801BE
+:100FA0009C680FC084309105B9F4CE0183709927F5
+:100FB00001E010E002C0000F111F8A95E2F7C8019E
+:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029
+:100FD0008C010C2B1D2B56C08530910531F4DC2F74
+:100FE000CC278E01046F106A4DC0069709F04AC0E5
+:100FF000CF71DD27DC2FCC278E01106243C000E0CB
+:1010000010E040C08E013EC001E810E43BC003E8A0
+:1010100010E438C002EE14E435C009EE14E432C026
+:101020000AEE14E42FC005EB14E42CC006EB14E424
+:1010300029C007EB14E426C00CEC14E423C00DEC2B
+:1010400014E420C003E815E41DC00AE815E41AC042
+:1010500002E915E417C004E915E414C001E216E43E
+:1010600011C003E216E40EC004E216E40BC005E270
+:1010700016E408C006E216E405C007E216E402C062
+:101080000AE216E4C801DF91CF911F910F910895F4
+:1010900096E0799FF001112494E5899FE00DF11D00
+:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149
+:1010B0009491803E9105E0F4803C910558F5813390
+:1010C000910509F46FC048F48932910509F463C0B1
+:1010D0008A32910509F46DC072C089339105E9F037
+:1010E00082389105D1F08533910509F44DC067C070
+:1010F000833E910581F138F4803E9105B9F0823E3E
+:101100009105D9F05CC0863E910561F1873E91055D
+:10111000A1F155C00E94050608952091FA0120FD15
+:1011200002C021FF4CC080EE90E049C08091FA01DE
+:1011300080FFF9CF89E390E042C08091FA0182FFFD
+:101140000EC08091FA0184FF03C080E090E037C0B8
+:1011500083EE90E034C08091FA0182FFF2CF82EEFC
+:1011600090E02DC08091FA0183FF0BC08091FA01BD
+:1011700084FDEBCF87EE90E022C08091FA0183FFDF
+:10118000F5CF86EE90E01BC08091FA0185FF07C085
+:1011900089E290E014C08091FA0185FFF9CF85E3E0
+:1011A00090E00DC08091FA0186FF07C08AE290E0CE
+:1011B00006C08091FA0186FFF9CF81E390E00E949A
+:1011C0001506089508950C94E20880916E01089523
+:1011D000CF93DF9300D01F92CDB7DEB79C018091F3
+:1011E000F101843019F593E099833B832A8390932E
+:1011F000E9008FEF9091E800815095FD06C095EDD4
+:101200009A95F1F700008111F5CF8091E80085FFF4
+:101210000DC040E050E063E070E0CE0101960E9416
+:10122000520B8091E8008E778093E8000F900F902A
+:101230000F90DF91CF910895CF93DF9300D01F924D
+:10124000CDB7DEB72091F101243021F522E02983CA
+:101250009B838A8383E08093E9008FEF9091E8007D
+:10126000815095FD06C095ED9A95F1F7000081112A
+:10127000F5CF8091E80085FF0DC040E050E063E0CD
+:1012800070E0CE0101960E94520B8091E8008E77AB
+:101290008093E8000F900F900F90DF91CF91089509
+:1012A0002091F1012430F1F422E02093E9002FEFA6
+:1012B0003091E800215035FD06C035ED3A95F1F743
+:1012C00000002111F5CF2091E80025FF0BC040E080
+:1012D00050E065E070E00E94520B8091E8008E774C
+:1012E0008093E8000895CF93DF93EC019091F10192
+:1012F000943009F046C080910C018823D9F0809188
+:101300000D018823B9F09093E9008FEF9091E800E8
+:10131000815095FD06C095E19A95F1F70000811185
+:10132000F5CF8091E80085FF2CC040E050E060E1FF
+:1013300070E017C081E08093E9008FEF9091E800A2
+:10134000815095FD06C095ED9A95F1F70000811149
+:10135000F5CF8091E80085FF14C040E050E068E0E0
+:1013600070E0CE010E94520B8091E8008E7780934E
+:10137000E80080E1FE01AEE5B1E001900D928A95B2
+:10138000E1F7DF91CF9108958091F001811109C0BB
+:101390000E94E70C0E94440D8091E20084608093DB
+:1013A000E20008951092F001089508950C942B2204
+:1013B0000E948C1B0E9431220E94EA0F0C94E308C9
+:1013C00042E061EC81E00E94610C42E061EC82E06D
+:1013D0000E94610C42E061EC83E00E94610C42E1FA
+:1013E00061EC84E00C94610C8091F301833009F48A
+:1013F00055C030F4813071F0823009F48EC0089508
+:101400008A3009F47AC08B3009F460C0893009F061
+:101410009CC020C08091F201813A09F096C0809171
+:10142000E800877F8093E8008091F6019091F701B2
+:10143000892B21F460E18EE591E003C060E080E05B
+:1014400090E070E00E949D0B8091E8008B77809384
+:10145000E80008958091F201813209F076C0809110
+:10146000F6019091F701009719F0039709F06DC00C
+:101470008091E800877F8093E8008091E80082FDFA
+:1014800005C08091F1018111F8CF5FC08091F1001A
+:1014900080936E018091E8008B7753C08091F201B8
+:1014A000813A09F052C08091F6019091F701892BA1
+:1014B00009F04BC08091E800877F8093E80080911D
+:1014C000E80080FFFCCF80910C0136C08091F201D2
+:1014D0008132D9F58091F6019091F701892BA9F518
+:1014E0008091E800877F8093E8000E94960C8091AD
+:1014F000F40180930C010C9483148091F2018132E9
+:1015000021F58091E800877F8093E8000E94960C87
+:101510008091F50180936F0108958091F201813AE5
+:10152000A1F48091E800877F8093E8008091E80033
+:1015300080FFFCCF80916F018093F1008091E800E3
+:101540008E778093E8000C94960C089584B7877F7B
+:1015500084BF88E10FB6F894809360001092600019
+:101560000FBE90E080E80FB6F894809361009093EE
+:1015700061000FBE0E9439100E94E70C0E94440DCA
+:101580008091E20084608093E20078940E94CA0F08
+:101590000E943B1082E091E00E94E50F0E94192218
+:1015A0008091F101853069F40E94531B8091EF0115
+:1015B0008823B1F30E947E1B882391F30E943C0B89
+:1015C000EFCF0E944110ECCF292F33272330310574
+:1015D000C9F064F42130310581F02230310509F081
+:1015E00043C08DE690E02AE333E042C0213231056A
+:1015F000F1F02232310541F137C082E190E027EA73
+:1016000033E036C099278130910541F08230910551
+:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4
+:1016200002C0E6E0F3E0849190E09F0121C06430C5
+:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5
+:10164000318189E090E014C0643070F470E0FB01F7
+:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47
+:10166000FE4F808190E004C080E090E020E030E018
+:10167000FA0131832083089580E189BD82E189BD2B
+:1016800009B400FEFDCF8091D8008F7D8093D800F3
+:101690008091E00082608093E0008091E00081FD15
+:1016A000FCCF0895CF92DF92EF92FF920F931F939A
+:1016B000CF93DF93EC018B016A010E94B50C81117D
+:1016C00033C0C114D10439F0F60180819181081B27
+:1016D000190BC80FD91FE12CF12C0115110519F1B7
+:1016E0008091E80085FD16C08091E8008E77809398
+:1016F000E800C114D10449F0F60180819181E80E1F
+:10170000F91EF182E08285E00FC00E94B50C8823AB
+:1017100021F30AC089918093F10001501109FFEF74
+:10172000EF1AFF0ADACF80E0DF91CF911F910F917E
+:10173000FF90EF90DF90CF9008952091F8013091C5
+:10174000F9012617370748F06115710539F4209122
+:10175000E8002E772093E80001C0B90140E0611550
+:101760007105A9F12091F101222309F443C025302C
+:1017700009F442C02091E80023FD40C02091E80018
+:1017800022FD32C02091E80020FFE9CF4091F30014
+:101790002091F20030E0342BFC01CF01611571057E
+:1017A00059F02830310540F481918093F100615067
+:1017B00071092F5F3F4FF1CF41E02830310509F02B
+:1017C00040E02091E8002E772093E800C8CF411137
+:1017D000C9CF0AC08091F101882361F0853061F0A2
+:1017E0008091E80083FD0AC08091E80082FFF2CF7B
+:1017F00080E0089582E0089583E0089581E00895EF
+:101800002091F8013091F9012617370748F061154A
+:10181000710539F42091E8002E772093E80001C08B
+:10182000B901FC0120E06115710591F18091F10190
+:10183000882309F440C0853009F43FC08091E80056
+:1018400083FD3DC08091E80082FD2FC08091E800BB
+:1018500080FFE9CF2091F3008091F20090E0922B7D
+:101860006115710559F08830910540F42491209359
+:10187000F1003196615071090196F2CF21E008978D
+:1018800009F020E08091E8008E778093E800CBCFCC
+:101890002111CCCF0AC08091F101882361F08530FD
+:1018A00061F08091E80083FD0AC08091E80082FF2A
+:1018B000F2CF80E0089582E0089583E0089581E00A
+:1018C0000895982F973058F59093E900981739F0BC
+:1018D0007091EC002091ED005091F00003C0242F96
+:1018E000762F50E021FF19C03091EB003E7F3093FE
+:1018F000EB003091ED003D7F3093ED003091EB0037
+:1019000031603093EB007093EC002093ED00509326
+:10191000F0002091EE0027FF07C09F5FD3CF8F70AC
+:101920008093E90081E0089580E008958091F201BC
+:1019300087FF11C08091E80082FD05C08091F10110
+:101940008111F8CF11C08091E8008B770BC0809196
+:10195000F101882349F08091E80080FFF8CF809161
+:10196000E8008E778093E80008952091E40030919C
+:10197000E50095E64091EC00842F817040FF22C085
+:101980008091E80080FD1CC08091F101882391F0D6
+:10199000853091F08091EB0085FD10C04091E4000E
+:1019A0005091E5004217530729F39A01915011F71E
+:1019B00084E0089582E0089583E0089581E0089529
+:1019C00080E008954091E80042FFDECF08950E9434
+:1019D000550D0E945D0DE0EEF0E080818160808316
+:1019E000E8EDF0E080818F77808319BCA7EDB0E04F
+:1019F0008C918E7F8C9380818F7E80831092F001FA
+:101A000008950F931F93CF93DF930E94550D0E946B
+:101A10005D0DC8EDD0E088818F77888388818068EC
+:101A2000888388818F7D888319BC1092F101109280
+:101A3000ED011092EF011092EE0100EE10E0F801BE
+:101A400080818B7F808388818160888342E060E031
+:101A500080E00E94610CE1EEF0E080818E7F808367
+:101A6000E2EEF0E080818160808380818860808305
+:101A7000F80180818E7F8083888180618883DF91F7
+:101A8000CF911F910F910895E8EDF0E080818F7E56
+:101A90008083E7EDF0E080818160808384E082BF15
+:101AA00081E08093F0010C94010DE8EDF0E080817D
+:101AB0008E7F80831092E20008951092DA001092D7
+:101AC000E10008951F920F920FB60F9211242F93E9
+:101AD0003F934F935F936F937F938F939F93AF93B6
+:101AE000BF93EF93FF938091E10082FF0BC0809141
+:101AF000E20082FF07C08091E1008B7F8093E100CC
+:101B00000E94C90F8091DA0080FF1FC08091D80029
+:101B100080FF1BC08091DA008E7F8093DA00809175
+:101B2000D90080FF0DC080E189BD82E189BD09B483
+:101B300000FEFDCF81E08093F1010E94C40905C041
+:101B400019BC1092F1010E94D2098091E10080FF3E
+:101B500019C08091E20080FF15C08091E2008E7F65
+:101B60008093E2008091E20080618093E2008091A6
+:101B7000D80080628093D80019BC85E08093F10181
+:101B80000E94D6098091E10084FF30C08091E2007C
+:101B900084FF2CC080E189BD82E189BD09B400FECB
+:101BA000FDCF8091D8008F7D8093D8008091E10097
+:101BB0008F7E8093E1008091E2008F7E8093E2002F
+:101BC0008091E20081608093E2008091ED018823A2
+:101BD00011F084E007C08091E30087FD02C081E03E
+:101BE00001C083E08093F1010E94D8098091E10057
+:101BF00083FF29C08091E20083FF25C08091E1002E
+:101C0000877F8093E10082E08093F1011092ED01E3
+:101C10008091E1008E7F8093E1008091E2008E7FD1
+:101C20008093E2008091E20080618093E20042E0D4
+:101C300060E080E00E94610C8091F00088608093F9
+:101C4000F0000E94D509FF91EF91BF91AF919F9154
+:101C50008F917F916F915F914F913F912F910F9055
+:101C60000FBE0F901F9018951F920F920FB60F92F4
+:101C700011242F933F934F935F936F937F938F9391
+:101C80009F93AF93BF93CF93DF93EF93FF93C09155
+:101C9000E900CF708091EC00D82FD17080FDD0E8A2
+:101CA0001092E9008091F000877F8093F000789493
+:101CB0000E94780E1092E9008091F0008860809375
+:101CC000F000CD2BCF70C093E900FF91EF91DF9131
+:101CD000CF91BF91AF919F918F917F916F915F91C4
+:101CE0004F913F912F910F900FBE0F901F9018951D
+:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3
+:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115
+:101D1000F10091938E13FBCF0E94F4098091E800AB
+:101D200083FF1FC18091F2019091F301492F50E090
+:101D30004A30510508F015C1FA01EA5AFF4F0C94D8
+:101D4000B323803881F0823809F00BC18091F6010D
+:101D50008F708093E9008091EB0085FB882780F9E4
+:101D60001092E90006C08091EE019091EF0191116F
+:101D700082609091E800977F9093E8008093F10053
+:101D80001092F100C8C0282F2D7F09F0EAC08823E7
+:101D900019F0823061F0E5C08091F401813009F0E2
+:101DA000E0C0933009F080E08093EF012BC0809178
+:101DB000F401811127C08091F6018F7009F4D1C020
+:101DC0008093E9002091EB0020FF1CC0933021F4A8
+:101DD0008091EB00806214C09091EB009061909331
+:101DE000EB0021E030E0A90102C0440F551F8A95A5
+:101DF000E2F74093EA001092EA008091EB008860DD
+:101E00008093EB001092E9008091E800877F86C004
+:101E10008111A7C01091F4011F778091E3008078B1
+:101E2000812B8093E3008091E800877F8093E80016
+:101E30000E94960C8091E80080FFFCCF8091E30027
+:101E400080688093E300111102C082E001C083E04A
+:101E50008093F10186C08058823008F082C0809162
+:101E6000F4019091F5018C3D53E0950779F583E0FD
+:101E70008A838AE289834FB7F894DE01139620E0C3
+:101E80003EE051E2E32FF0E050935700E49120FF51
+:101E900003C0E295EF703F5FEF708E2F90E0EA3065
+:101EA00010F0C79601C0C0968D939D932F5F24318B
+:101EB00049F74FBF8091E800877F8093E8006AE28E
+:101EC00070E0CE0101960E949D0B14C0AE014F5FE1
+:101ED0005F4F6091F6010E94E40ABC01009709F48B
+:101EE00040C09091E800977F9093E80089819A81A3
+:101EF0000E94000C8091E8008B778093E80031C04D
+:101F0000803879F58091E800877F8093E8008091A0
+:101F1000ED018093F1008091E8008E778093E800D6
+:101F20000E94960C1EC081111CC09091F401923049
+:101F3000C0F48091E800877F8093E8009093ED01E2
+:101F40000E94960C8091ED01811106C08091E30002
+:101F500087FD02C081E001C084E08093F1010E940E
+:101F6000E0098091E80083FF0AC08091E800877F44
+:101F70008093E8008091EB0080628093EB00AA964A
+:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A
+:101F900008950895CF938091F1018823A1F0C09115
+:101FA000E900CF709091EC00892F817090FD80E85E
+:101FB000C82B1092E9008091E80083FD0E94780E02
+:101FC000CF70C093E900CF910895909375018093ED
+:101FD00074010895E0917401F0917501309721F03A
+:101FE0000190F081E02D099480E00895E091740162
+:101FF000F0917501309721F00280F381E02D099472
+:102000000895E0917401F0917501309721F00480FA
+:10201000F581E02D099408952091720130917301AA
+:102020008217930771F09093730180937201E0918E
+:102030007401F0917501309721F00680F781E02D51
+:1020400009940895209170013091710182179307CE
+:1020500071F09093710180937001E0917401F0919F
+:102060007501309721F00084F185E02D09940895E1
+:1020700008950C9438100E94921B0E9433030C9414
+:10208000541C9F92AF92BF92CF92DF92EF92FF9239
+:102090000F931F93CF93DF9300D000D000D0CDB724
+:1020A000DEB70E944B030DE010E0AA24A394B12CEC
+:1020B000902E802F0E943904980129583E4F6901C3
+:1020C000F901F080F826A1F40150110988F78FEF8B
+:1020D00089838A831B820E949B1B8160782F9D834A
+:1020E0008C8349815A816B818D810E94D8102FC0C9
+:1020F0009091DA0191FF04C08E830E943F048E818B
+:1021000025E030E0A501022E01C0440F0A94EAF751
+:10211000E42E4F21C1F029839A828E2191E009F4A7
+:1021200090E09B830E949B1B8160782F9D838C8312
+:1021300049815A816B818D810E94D810F60180817E
+:10214000E826E08204C021503109E0F6BDCF0E94AC
+:102150003B1F109176010E94EA0F1817B9F00E94F8
+:10216000EA0F8093760126960FB6F894DEBF0FBE75
+:10217000CDBFDF91CF911F910F91FF90EF90DF9036
+:10218000CF90BF90AF909F900C94E30826960FB627
+:10219000F894DEBF0FBECDBFDF91CF911F910F919D
+:1021A000FF90EF90DF90CF90BF90AF909F900895F9
+:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82
+:1021C0000FBECDBF4F83588769877A878B87DE0123
+:1021D000119686E0FD0111928A95E9F785E0FE01EE
+:1021E000379601900D928A95E1F749815A816B816A
+:1021F0007C818D819E810E9421172B960FB6F894C9
+:10220000DEBF0FBECDBFDF91CF910895CF9388235E
+:1022100009F4C2C0C82F823859F40E94EA0F81FD28
+:10222000BBC089E30E94FB190E94C81A89E30CC055
+:10223000833879F40E94EA0F80FDAEC083E50E94E6
+:10224000FB190E94C81A83E50E943D1ACF910C9495
+:10225000C81A843859F40E94EA0F82FD9DC087E4B1
+:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6
+:10227000813A48F48C2F0E947E2181118DC08C2FD1
+:102280000E94FB19E3CF80E28C0F883048F4C770BE
+:1022900081E001C0880FCA95EAF70E94811AD6CF63
+:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB
+:1022B00083E890E005C081E890E002C082E890E009
+:1022C000CF910C940C1088E58C0F833108F064C01A
+:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118
+:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186
+:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106
+:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173
+:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB
+:1023200038C082EE90E035C089EE90E032C08AEE8F
+:1023300090E02FC085EB90E02CC086EB90E029C0A8
+:1023400087EB90E026C08CEC90E023C08DEC90E011
+:1023500020C083E891E01DC08AE891E01AC082E9BC
+:1023600091E017C084E991E014C081E292E011C0CD
+:1023700083E292E00EC084E292E00BC085E292E03C
+:1023800008C086E292E005C087E292E002C08AE2DD
+:1023900092E0CF910C942210CF910895882309F4F4
+:1023A0004BC0823859F40E94EA0F81FF45C089E38F
+:1023B0000E94FB190E94C81A89E30CC0833871F48B
+:1023C0000E94EA0F80FF38C083E50E94FB190E943B
+:1023D000C81A83E50E943D1A0C94C81A843859F42F
+:1023E0000E94EA0F82FF28C087E40E94FB190E9426
+:1023F000C81A87E4EFCF9CEF980F913A58F390E218
+:10240000980F983050F4877091E001C0990F8A9529
+:10241000EAF7892F0E94871ADFCF9BE5980F933048
+:1024200020F480E090E00C940C10885A833120F462
+:1024300080E090E00C9422100895882321F00E94FF
+:10244000811A0C94C81A0895882321F00E94871AD3
+:102450000C94C81A08957F928F929F92AF92BF9268
+:10246000CF92DF92EF92FF920F931F93CF93DF9360
+:102470001F92CDB7DEB77C01C62E772EFC010581F9
+:1024800002950F70128111110E949E1A0E94F41978
+:10249000882379F0112369F080E28C0D883048F0B0
+:1024A00082E00E94DD190E94F41991E0D82ED9260D
+:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C
+:1024C0000C94B323872D807F072D0F70882311F084
+:1024D0000295007F112389F0002309F490C180E266
+:1024E0008C0D883020F4802F0E94811A03C0802F29
+:1024F0000E94911A0E94C81A82C18C2D0E94CE118E
+:10250000002309F495C180E28C0D883020F4802FDF
+:102510000E94871A03C0802F0E94971A0E94C81A2F
+:1025200087C1972D907F872D8F70903211F0829503
+:10253000807FCC2021F0F1E0CF16B1F01EC0112336
+:1025400049F0002309F414C1013009F011C10E94BF
+:10255000B11A6EC1002319F0013009F469C18983F1
+:102560000E94B41A89810AC1112321F0023008F0B7
+:102570005FC1FEC001115CC101C1112321F0002324
+:1025800009F4F6C03CC1002309F4F8C03EC1872D10
+:1025900086958695837090E0009719F0019761F019
+:1025A00047C1112321F08C2D972D937002C080E03C
+:1025B00090E00E940C103CC1112321F08C2D972D2E
+:1025C000937002C080E090E00E94221031C18C2DF7
+:1025D000112319F00E94431E02C00E94AB1E0E94EC
+:1025E000301F26C1872D837009F052C0111120C100
+:1025F0008C2D829586958770880F880F9C2D9F70F3
+:10260000892E912CA12CB12C082E04C0880C991C69
+:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041
+:1026200020E030E0B901A80104C0440F551F661F27
+:10263000771F8A95D2F7CB01BA0160957095809586
+:10264000909503C060E070E0CB01272D269526957C
+:10265000237030E02230310569F02330310589F0F4
+:10266000682979298A299B292130310571F00E9436
+:102670006918DEC0682979298A299B290E94851852
+:10268000D7C00E946918C501B4010E944D18D0C07E
+:10269000112319F0872D817001C08695882309F4D4
+:1026A000C7C08C2D829586958770880F880F9C2DCA
+:1026B0009F70892E912CA12CB12C082E04C0880C5F
+:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC
+:1026D00010E020E030E0B901A80104C0440F551F0C
+:1026E000661F771F8A95D2F7CB01BA016095709566
+:1026F0008095909503C060E070E0CB01272D269572
+:1027000026952370422F50E04230510569F0433046
+:10271000510589F0682979298A299B294130510579
+:1027200071F00E94431984C0682979298A299B295C
+:102730000E945F197DC00E944319C501B4010E9427
+:10274000271976C08C2D90E0FC01E05EF109E5319F
+:10275000F10508F050C0E059FF4F0C94B3230C2D45
+:102760000F70872D8F71112331F00E94C018802FB8
+:102770000E941D125DC00E94E118802F0E94241249
+:1027800057C0112339F0011153C0872D8F710E945A
+:1027900006194EC0023008F04BC0F7CF112339F0B4
+:1027A000872D8F710E94C01843C01123C9F3872D54
+:1027B0008F710E94E1183CC0112329F0872D8F7181
+:1027C0000E94AB1835C00E94A11832C0112351F0ED
+:1027D000172D1F71812F0E94C01863E0812F0E9466
+:1027E000D41926C081E00E94DD19023008F182E090
+:1027F0000E94DD191DC0112331F0002389F28C2DB8
+:102800000E94061115C0002391F28C2D0E94CE115A
+:102810000FC0472D4F706C2DC7010E9415050E94F7
+:10282000C51706C0472D4F706C2DC7010E94F205D9
+:10283000DD20F9F00E94D01980FD1BC0F701128243
+:102840000E94CA190E94C018C7010E9448140E9421
+:10285000CA190F90DF91CF911F910F91FF90EF90C8
+:10286000DF90CF90BF90AF909F908F907F900C940F
+:10287000E1180F90DF91CF911F910F91FF90EF9092
+:10288000DF90CF90BF90AF909F908F907F900895F2
+:102890000F931F93CF93DF93EC01888199812B8154
+:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B
+:1028B0000E944A05882371F0688179818A810E948B
+:1028C000C6198C010E947B190E944218B801CE01E2
+:1028D0000E942B12DF91CF911F910F9108950E94BA
+:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471
+:1028F000E11F0E94301F80E090E00E940C1080E0F9
+:1029000090E00C9422100E948E1A0C946F140E9476
+:10291000BB19292F22952F7030E02C3031054CF453
+:102920002A3031056CF42250310922303105A8F4E7
+:1029300007C02C30310569F02F30310551F00DC042
+:10294000803F69F018F4803E40F409C0843F29F4C8
+:1029500006C093FB882780F9089580E0089581E000
+:102960000895CF93DF9300D000D01F92CDB7DEB78C
+:102970000F900F900F900F900F90DF91CF910895CF
+:10298000CF93DF9300D000D000D0CDB7DEB726962E
+:102990000FB6F894DEBF0FBECDBFDF91CF91089583
+:1029A0001F93CF93DF93C091850116E0809186013C
+:1029B000C81799F0D0E01C9FF0011D9FF00D112465
+:1029C000E957FE4F408151816281738184819581F5
+:1029D0000E94C0142196C770E9CFDF91CF911F915B
+:1029E00008954091B7015091B8016091B90170917B
+:1029F000BA018091BB019091BC010C94C0148091EC
+:102A0000BC0182958F7009F054C08091B901882370
+:102A100009F44FC080918501A09186016091B701B2
+:102A20007091B8014091BA015091BB01B6E08A178C
+:102A300009F43FC090E041155105C1F17F3F11F409
+:102A40006F3FA1F1B89FF001B99FF00D1124E95734
+:102A5000FE4F218172132AC02081621327C0228178
+:102A6000211124C0238134812417350710F421500B
+:102A70003109241B350B283C3105C0F42091BC01E1
+:102A80002F7020612093BC0126E0289FF001299F30
+:102A9000F00D1124E457FE4F80818F708061808398
+:102AA00087EB91E00E9448140C94D0140196877033
+:102AB000BECF0895CF92DF92EF92FF920F931F93B4
+:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32
+:102AD0000FBECDBF8C0185E0F801DE011D9601908F
+:102AE0000D928A95E1F7D8014C9111965C9111975E
+:102AF00012966C9112971396CD90DC9014973091AA
+:102B0000B7017091B8018091BA019091BB01009713
+:102B100009F46BC17F3F19F43F3F09F466C1E090AF
+:102B2000B901EE2009F4C0C02091BC01C816D90635
+:102B300028F0F601E81BF90BCF0104C080959095B1
+:102B40008C0D9D1DFF24F394883C910578F0F12CA9
+:102B5000207F09F0C6C07C2DD98AC88A89890E9445
+:102B6000B11487EB91E00E944814B1C0822F807F9E
+:102B700009F046C0751314C0341312C0611110C09F
+:102B80002F7020612093BC010E94F11487EB91E02B
+:102B90000E9448148091BC01D80115968C932EC0D8
+:102BA000CD2819F15F3F11F44F3FF9F0F62E611176
+:102BB0001CC0809185012091860136E0821709F4BE
+:102BC0005AC090E0389FF001399FF00D1124E95769
+:102BD000FE4F7181571306C07081471303C0728185
+:102BE000711103C001968770E9CFF62E662309F4B0
+:102BF00018C18091BC0181608093BC01F12C11C18E
+:102C0000751308C0341306C0611104C08091BC0163
+:102C1000D801C3C04D875E878D859E856A8B0E94D3
+:102C200087146A898823E1F16623D1F12091BC01E0
+:102C3000822F82958F7090E0029774F08091B70197
+:102C40009091B80198878F831986DB86CA862C8776
+:102C5000CE0107960E94481486E0F801A7EBB1E088
+:102C600001900D928A95E1F70E94FF140E94F114E1
+:102C7000FF24F394D6C04D875E878D859E850E9484
+:102C8000BB19292F22952F7030E0223031050CF02E
+:102C9000BCC09F7009F0B6C0805E883008F4C1C027
+:102CA000C8010E944814E4CFC816D90608F453C0DE
+:102CB000F601E81BF90BCF01883C910508F450C0E0
+:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E
+:102CD000F1E086E0DF011D928A95E9F70E94F11488
+:102CE000A0C0751314C0341312C0611110C08091BC
+:102CF000BC01F8018583C8010E94481486E0E7EB17
+:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C
+:102D10005E878D859E856A8B0E9487146A898823C9
+:102D200009F4BECF662309F4BBCF2091BC01822FEA
+:102D300082958F7090E002970CF48ECF8091B7014E
+:102D40009091B8019A8389831B82DD82CC822E8385
+:102D5000CE0101967FCF809590958C0D9D1DACCFB7
+:102D6000F62E662309F49CCF75132EC034132CC0A5
+:102D70002091BC0120FD1FC0822F82958F70D9F059
+:102D8000D80115962C9315978F3049F08F5F982FA7
+:102D90009295907F822F8F70892B15968C93C80106
+:102DA0000E94481486E0F801A7EBB1E001900D9273
+:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7
+:102DC0000D928A95E1F72DC04D875E878D859E8592
+:102DD0000E948714811140CF8091BC018160809353
+:102DE000BC01C8010E9448141CC0662309F458CFD6
+:102DF0004D875E878D859E850E948714882309F400
+:102E00004FCF2ACF811148CF0CC0243031050CF0B0
+:102E100047CF9F7009F440CFF8019581907F09F06A
+:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D
+:102E3000DF91CF911F910F91FF90EF90DF90CF9096
+:102E400008951F93CF93DF93CDB7DEB72C970FB6BE
+:102E5000F894DEBF0FBECDBF4F83588769877A874E
+:102E60008B879C87CE0107960E945A15882369F0AC
+:102E70008F8198852A853B85232BF1F19F3F09F0AF
+:102E800063C08F3F09F060C037C086E0FE0137960F
+:102E9000DE01119601900D928A95E1F76F81788598
+:102EA000EA85FB85309741F17F3F11F46F3F21F1B7
+:102EB0002091860130E0C9010196877099274091E1
+:102EC000850150E08417950709F447C069837A8328
+:102ED000FD83EC8396E0929FD001939FB00D112467
+:102EE000A957BE4FFE01319601900D929A95E1F7D8
+:102EF000809386010E94D01416E080918501909104
+:102F000086018917C1F1189FC001112489579E4F6E
+:102F10000E945A15882379F1E09185011E9FF001E6
+:102F20001124E957FE4F4081518162817381848170
+:102F300095810E94C0148091850190E00196877070
+:102F4000992780938501D9CF4F81588569857A85E6
+:102F50008B859C850E94C014CFCF0E948314109251
+:102F6000860110928501E7EBF1E086E0DF011D921A
+:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45
+:102F8000CDBFDF91CF911F910895EF92FF920F93E4
+:102F90001F93CF93DF938C01009709F46CC0F12C41
+:102FA000EE24E394E8012196F8018491843740F4FB
+:102FB000843008F051C0813081F0823019F15BC05B
+:102FC000853709F444C0A8F19CE7980F903708F0C2
+:102FD00052C08F770E94CE1141C00E5F1F4FFE017D
+:102FE000C49180E28C0F883048F4C7708E2D01C0E8
+:102FF000880FCA95EAF70E94A11A14C08C2F0E946C
+:1030000006112DC00E5F1F4FFE01C49180E28C0F90
+:10301000883058F4C7708E2D01C0880FCA95EAF722
+:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3
+:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3
+:103040009FE00197F1F700C00000C150F6CF0E5F7E
+:103050001F4FFE01F49003C00E9406118E018F2DB8
+:10306000882309F49FCFEFE9FFE03197F1F700C023
+:1030700000008150F5CFDF91CF911F910F91FF900C
+:10308000EF90089508956093C1017093C2018093F9
+:10309000C3019093C4010C946F140F931F9300917C
+:1030A000C1011091C2012091C3013091C401DC0122
+:1030B000CB01802B912BA22BB32B8093C10190933A
+:1030C000C201A093C301B093C4011F910F910C944E
+:1030D0006F140F931F930091C1011091C2012091B1
+:1030E000C3013091C401DC01CB0180239123A223D1
+:1030F000B3238093C1019093C201A093C301B09305
+:10310000C4011F910F910C946F140F931F930091A2
+:10311000C1011091C2012091C3013091C401DC01B1
+:10312000CB0180279127A227B3278093C1019093D9
+:10313000C201A093C301B093C4011F910F910C94DD
+:103140006F141092BD011092BE011092BF01109237
+:10315000C0010C946F1441E050E060E070E004C0E6
+:10316000440F551F661F771F8A95D2F74093BD0104
+:103170005093BE016093BF017093C0010C946F1413
+:1031800041E050E060E070E004C0440F551F661F4E
+:10319000771F8A95D2F78091BD019091BE01A091D1
+:1031A000BF01B091C001482B592B6A2B7B2B409358
+:1031B000BD015093BE016093BF017093C0010C9498
+:1031C0006F1441E050E060E070E004C0440F551F10
+:1031D000661F771F8A95D2F7409550956095709538
+:1031E0008091BD019091BE01A091BF01B091C0013D
+:1031F000482359236A237B234093BD015093BE018A
+:103200006093BF017093C0010C946F1441E050E0D3
+:1032100060E070E004C0440F551F661F771F8A9559
+:10322000D2F78091BD019091BE01A091BF01B091F4
+:10323000C001482759276A277B274093BD01509337
+:10324000BE016093BF017093C0010C946F140F9383
+:103250001F930091BD011091BE012091BF013091DB
+:10326000C001DC01CB01802B912BA22BB32B8093CF
+:10327000BD019093BE01A093BF01B093C0011F9107
+:103280000F910C946F140F931F930091BD01109137
+:10329000BE012091BF013091C001DC01CB01802330
+:1032A0009123A223B3238093BD019093BE01A093E9
+:1032B000BF01B093C0011F910F910C946F140F9335
+:1032C0001F930091BD011091BE012091BF0130916B
+:1032D000C001DC01CB0180279127A227B32780936F
+:1032E000BD019093BE01A093BF01B093C0011F9197
+:1032F0000F910C946F140895CF92DF92EF92FF928A
+:103300000F931F93CF93DF938C01C090C101D09096
+:10331000C201E090C301F090C4018091BD01909181
+:10332000BE01A091BF01B091C001C82AD92AEA2AE2
+:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520
+:10334000A795979587950A94D2F780FF06C0B80194
+:103350008C2F0E944808019721F4219760F780E0A4
+:1033600001C08C2FDF91CF911F910F91FF90EF90B3
+:10337000DF90CF900895CF93DF93EC010E947C19EA
+:10338000BE010E944808DF91CF910895CB010E94B1
+:10339000BB1908958091C5018595859585950895FA
+:1033A0008091C5018770089598E0899F900111244C
+:1033B000262B2093C5010C94C0182091C50180953F
+:1033C00082238093C501982F977069F430E0482FCD
+:1033D000552747FD50952417350729F08595859584
+:1033E00085950C94E11808959091C501977081E03E
+:1033F00009F480E0089590910C01992321F09091B7
+:103400000D01911109C020910E0130910F01F901B8
+:1034100032969FEF40E01FC0982F9695969596950F
+:103420009F3050F5E0910E01F0910F01E90FF11D71
+:10343000877021E030E0A90102C0440F551F8A9532
+:10344000E2F7CA019181892B818308959F3F39F06A
+:103450004F5F4E3041F051915813F8CF0DC05111CC
+:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08
+:1034700097FDFA9582830895089590910C01992300
+:1034800021F090910D01911109C020910E01309110
+:103490000F01F9013296205F3F4F1FC0982F96957C
+:1034A000969596959F30F0F4E0910E01F0910F0102
+:1034B000E90FF11D877021E030E0A90102C0440F3F
+:1034C000551F8A95E2F7CA018095918189238183EE
+:1034D00008953196E217F30729F090819813F9CFF8
+:1034E0001082F7CF089581E090E0E0910E01F09115
+:1034F0000F01E80FF91F1082019680319105A9F79D
+:1035000008959091D901892B8093D90108958095D0
+:103510009091D90189238093D90108951092D901FE
+:1035200008959091D801892B8093D80108958095B2
+:103530009091D80189238093D80108951092D801E1
+:1035400008959091D701892B8093D7010895809594
+:103550009091D70189238093D70108951092D701C4
+:1035600008958093C60108951092C6010895809130
+:103570000E0190910F01FC0131969C01205F3F4F9D
+:1035800080E0919191118F5FE217F307D1F70895D1
+:10359000E0910E01F0910F018091D9018083E091BB
+:1035A0000E01F0910F0190818091D801892B8083C9
+:1035B000E0910E01F0910F0190818091D701892B4C
+:1035C00080838091C601882361F0E0910E01F09123
+:1035D0000F019081892B80830E94B71A811110926C
+:1035E000C60180910E0190910F010C94F60F20E01E
+:1035F000009739F0AC0141505109842395232F5F86
+:10360000F7CF822F0895CF92DF92EF92FF926C0155
+:10361000EE24FF24C114D104E104F10421F0C70118
+:10362000B60120E101C020E0C72ED82EE92EFF24EC
+:10363000C114D104E104F10419F0285FC701B601F7
+:103640006B017C0154E0F694E794D794C7945A95A3
+:10365000D1F7C114D104E104F10419F02C5FC701C2
+:10366000B6016B017C0142E0F694E794D794C794CD
+:103670004A95D1F7C114D104E104F10419F02E5F89
+:10368000C701B601DC01CB01B695A7959795879543
+:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5
+:1036A000DF90CF9008958091F101843021F1109244
+:1036B000DB0120E488E190E00FB6F894A8958093B0
+:1036C00060000FBE2093600080E00E94E30883B793
+:1036D000817F846083BF83B7816083BF789488953E
+:1036E00083B78E7F83BF88E10FB6F8948093600024
+:1036F000109260000FBE0895089508950E947C1BEB
+:103700000E944B030E947D1B0E94400491E08111A6
+:1037100001C090E0892F08950E9483140E94EA0F4F
+:103720000C94E30882E084BD93E095BD9AEF97BDC9
+:1037300080936E0008952FB7F8948091DC019091EA
+:10374000DD01A091DE01B091DF012FBF0895CF927E
+:10375000DF92EF92FF920F931F932FB7F89440914F
+:10376000DC015091DD016091DE017091DF012FBF1E
+:103770006A017B01EE24FF248C0120E030E0C016BA
+:10378000D106E206F30610F4415051099A01281BB4
+:10379000390BC9011F910F91FF90EF90DF90CF90EF
+:1037A00008951F920F920FB60F9211248F939F933B
+:1037B000AF93BF938091DC019091DD01A091DE0178
+:1037C000B091DF010196A11DB11D8093DC019093A2
+:1037D000DD01A093DE01B093DF01BF91AF919F9116
+:1037E0008F910F900FBE0F901F9018950E94E70CBD
+:1037F000F8942FEF87EA91E6215080409040E1F75E
+:1038000000C0000087E090EBDC018093FB01909307
+:10381000FC01A093FD01B093FE019CE088E10FB68E
+:10382000F894A895809360000FBE90936000FFCF3E
+:10383000EF92FF920F931F93CF93DF93D82FCDE09A
+:103840008C2F0E94390405E010E0E82EF12CC7010E
+:10385000002E02C0959587950A94E2F780FF09C073
+:10386000602F7C2F80E00E94F305D81302C081E016
+:1038700006C00150110958F7C15010F780E0DF91E0
+:10388000CF911F910F91FF90EF900895CF93C82F84
+:103890008CE20E94181C882321F08C2FCF910C946D
+:1038A000181C80E0CF910895CF930E949B1D811139
+:1038B00002C00E94811DC5E6C15049F00E944B0321
+:1038C0008FE39CE90197F1F700C00000F5CF89E292
+:1038D0000E94461C811113C18AE20E94461C81117C
+:1038E0000E94811D85E00E94461C81110E94F61BEA
+:1038F0000E94A61D8093DA0187E00E94461C88235F
+:10390000A9F18BE10E94461C882351F08091DA01D5
+:1039100081FB222720F991E0922790FB81F90EC0CC
+:103920008EE00E94461C882361F08091DA0182FBC0
+:10393000222720F991E0922790FB82F98093DA0107
+:1039400015C080E10E94461C9091DA01882341F065
+:1039500093FB222720F981E0822780FB93F904C0A2
+:10396000892F809580FB90F99093DA018091DA019C
+:103970000E94AA1D0E94B81D8093FA0180EE0E9449
+:10398000461C882341F08091FA01982F909590FB76
+:1039900080F98093FA0189E30E94461C882359F03C
+:1039A0008091FA0181FB222720F991E0922790FB78
+:1039B00081F98093FA0182EE0E94461C882359F017
+:1039C0008091FA0182FB222720F991E0922790FB57
+:1039D00082F98093FA0186EE0E94461C882359F0F2
+:1039E0008091FA0183FB222720F991E0922790FB36
+:1039F00083F98093FA0183EE0E94461C882359F0D4
+:103A00008091FA0184FB222720F991E0922790FB14
+:103A100084F98093FA0185E30E94461C882359F0BB
+:103A20008091FA0185FB222720F991E0922790FBF3
+:103A300085F98093FA0181E30E94461C882359F09E
+:103A40008091FA0186FB222720F991E0922790FBD2
+:103A500086F98093FA0181E10E94461C882359F07F
+:103A60008091FA0187FB222720F991E0922790FBB1
+:103A700087F98093FA018091FA010E94BC1D809120
+:103A8000FA0187FB882780F980930D0187E20E9465
+:103A9000461CC82F8EE10E94461C8111C2608FE136
+:103AA0000E94461C8111C46080E20E94461C811164
+:103AB000C86081E20E94461C8111C06182E20E94BE
+:103AC000461C8111C06283E20E94461C8111C064C1
+:103AD00084E20E94461C882311F0C06802C0CC23F7
+:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4
+:103AF000682F70E080E090E0CF910C944318CF9154
+:103B000008956DEE7EEF80E090E00E94ED2360E08E
+:103B100082E090E00E94DB2360E083E090E00E947E
+:103B2000DB2360E084E090E00E94DB2360E085E03E
+:103B300090E00C94DB2380E090E00E94D52321E00C
+:103B40008D3E9E4F09F020E0822F089582E090E0A4
+:103B50000C94CD23682F82E090E00C94DB2383E06B
+:103B600090E00C94CD23682F83E090E00C94DB234D
+:103B700084E090E00C94CD23682F84E090E00C94D6
+:103B8000DB238091E20180FF0BC06091130185E08F
+:103B9000689FB001112475956795759567952BC041
+:103BA00081FF09C06091130185E0689FB001112475
+:103BB0007595679520C082FF07C06091130185E06D
+:103BC000689FB001112417C09091E3019923D1F0AF
+:103BD00060911201961788F72091130185E0289FC4
+:103BE00090011124929FA001939F500D112470E029
+:103BF000CA010E949F236038710540F46115710568
+:103C000039F002C065E070E0862F08958FE70895CF
+:103C100081E008958091E20180FF08C06091110168
+:103C200070E0759567957595679521C081FF06C011
+:103C30006091110170E07595679519C082FF04C00D
+:103C40006091110170E010C09091E3019923C1F0DF
+:103C5000609110019617A0F780911101899FC00112
+:103C6000112470E00E949F236038710528F46115CB
+:103C7000710521F0862F08958FE7089581E008955A
+:103C800061E070E0F4CF803F21F40E94C11D819576
+:103C900004C0813F29F40E94C11D8093E60108956C
+:103CA000823F21F40E94C11D819504C0833F29F405
+:103CB0000E94C11D8093E5010895893F19F40E9477
+:103CC0000A1E05C08A3F31F40E940A1E8195809326
+:103CD000E70108958B3F21F40E940A1E819504C0DC
+:103CE0008C3F29F40E940A1E8093E8010895843FC6
+:103CF00021F48091E401816017C0853F21F4809117
+:103D0000E401826011C0863F21F48091E401846067
+:103D10000BC0873F21F48091E401886005C0883F93
+:103D200031F48091E40180618093E40108958D3F36
+:103D300021F48091E20181600BC08E3F21F48091DB
+:103D4000E201826005C08F3F29F48091E201846026
+:103D50008093E2010895803F39F48091E60187FF66
+:103D60006CC01092E60169C0813F29F48091E601A0
+:103D70001816BCF362C09091E501823F29F497FFC9
+:103D80005CC01092E50159C0833F19F41916CCF3B9
+:103D900054C0893F41F48091E70118160CF04DC0E2
+:103DA0001092E7014AC08A3F29F48091E70187FF1A
+:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6
+:103DC0001092E8013AC08C3F29F48091E80118165E
+:103DD000BCF333C0843F21F48091E4018E7F17C08F
+:103DE000853F21F48091E4018D7F11C0863F21F44D
+:103DF0008091E4018B7F0BC0873F21F48091E40127
+:103E0000877F05C0883F31F48091E4018F7E8093E5
+:103E1000E40113C08D3F21F48091E2018E7F0BC03D
+:103E20008E3F21F48091E2018D7F05C08F3F29F400
+:103E30008091E2018B7F8093E2018091E501811105
+:103E40000EC08091E60181110AC08091E7018111C5
+:103E500006C08091E801811102C01092E30108952B
+:103E600084EE91E00E9401100E949B1B9093E1015F
+:103E70008093E00108951F93CF93DF938091E00139
+:103E80009091E1010E94A71BAC019091E30199235D
+:103E900021F02091140130E006C0209115018AE044
+:103EA000289F900111244217530708F486C080917F
+:103EB000E501C091E601D091E7011091E80181117F
+:103EC00007C0C11176C0D11174C0111172C075C084
+:103ED0009F3F19F09F5F9093E301181624F40E940E
+:103EE000C11D8093E5018091E50187FF05C00E9417
+:103EF000C11D81958093E5011C1624F40E94C11D0B
+:103F00008093E6018091E60187FF05C00E94C11DF4
+:103F100081958093E6016091E501662339F1C091B6
+:103F2000E601CC2319F1772767FD7095872F972F2E
+:103F30000E94B02223E333E343E35FE30E941423B0
+:103F40000E947D226093E5016C2F772767FD7095B5
+:103F5000872F972F0E94B02223E333E343E35FE3ED
+:103F60000E9414230E947D226093E6011D1624F412
+:103F70000E940A1E8093E7018091E70187FF05C038
+:103F80000E940A1E81958093E701111624F40E9475
+:103F90000A1E8093E8018091E80187FF05C00E9416
+:103FA0000A1E81958093E801DF91CF911F910C94B7
+:103FB000301F9F3F09F08ECF96CFDF91CF911F9199
+:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE
+:103FD0001092E3011092E2010895833081F128F4F8
+:103FE000813059F08230D1F00895853009F449C00C
+:103FF000B8F1863009F456C0089580911501262F36
+:1040000030E0280F311D2F3F310524F4680F6093F5
+:10401000150108958FEF8093150108958091140183
+:10402000262F30E0280F311D2F3F310524F4680F73
+:104030006093140108958FEF809314010895809187
+:104040001301262F30E0280F311D2F3F310524F4B6
+:10405000680F6093130108958FEF80931301089503
+:1040600080911201262F30E0280F311D2F3F31059E
+:1040700024F4680F6093120108958FEF809312016A
+:10408000089580911101262F30E0280F311D2F3F18
+:10409000310524F4680F6093110108958FEF809328
+:1040A0001101089580911001262F30E0280F311D55
+:1040B0002F3F310524F4680F6093100108958FEFAE
+:1040C000809310010895833011F128F4813049F074
+:1040D000823091F00895853081F120F18630C1F170
+:1040E000089580911501681720F4861B80931501AF
+:1040F000089510921501089580911401681720F415
+:10410000861B8093140108951092140108958091E4
+:104110001301681720F4861B8093130108951092F1
+:104120001301089580911201681720F4861B809373
+:1041300012010895109212010895809111016817DB
+:1041400020F4861B809311010895109211010895A7
+:1041500080911001681720F4861B80931001089548
+:104160001092100108950F931F938D3109F46BC0C5
+:1041700008F03FC08E3009F47FC0C0F4873009F4E6
+:1041800069C068F4863009F0B1C08091DA01817F9E
+:104190008E7F8093DA0181E08093EA01A8C08830A5
+:1041A00009F4A2C08B3009F49FC0A0C0863109F485
+:1041B0009BC078F4803109F472C0813109F096C057
+:1041C0000E94831490910D0181E0892780930D0155
+:1041D0008BC0893109F488C08B3109F087C0809188
+:1041E000DA0181FB222720F991E0922790FB81F9E7
+:1041F0004CC0853309F470C048F4873209F46CC0B0
+:1042000008F459C0893209F467C070C0833438F4A7
+:104210008A3308F04EC0883309F466C067C083341F
+:1042200009F45AC0883409F061C00E9483140FEF6A
+:1042300013ED20E3015010402040E1F700C00000E2
+:104240000E94F61B51C00E9437220E94EA0F0E9472
+:10425000E3084AC09091DA01892F8095817080FB34
+:1042600090F929F0966098609093DA0140C0997FA8
+:10427000977F9093DA0138C08091DA0182FB222780
+:1042800020F991E0922790FB82F98093DA0199233B
+:1042900059F18091DA0181608093DA0125C0809123
+:1042A000DA0183FB222720F991E0922790FB83F922
+:1042B000ECCF895301C08D5141E050E060E070E0E7
+:1042C0008A019B0104C0000F111F221F331F8A9512
+:1042D000D2F7C901B80104C061E070E080E090E06D
+:1042E0000E9443180E94831481E001C080E01F9166
+:1042F0000F91089580E0089580E00895CF93C82F2E
+:104300008091EA01813079F018F08230E9F187C0BC
+:10431000E0910E01F0910F018081813169F08232CC
+:1043200009F07FC009C0E0910E01F0910F0180817A
+:10433000813111F0823261F48C2F0E947A21811137
+:1043400004C08C2F0E94B3201DC081E090E01AC0F1
+:104350008C2F0E947C21811114C0C43179F048F463
+:10436000CB3079F0C03109F060C082E08093EA017F
+:1043700008C0C93219F0C83321F057C01092EA01C1
+:1043800054C081E0817053C0C93289F118F5C4313D
+:1043900071F1A8F4C73009F046C08AE08093150196
+:1043A00094E19093140193E0909313018093120190
+:1043B00088E08093110188E28093100134C0CE51CF
+:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB
+:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC
+:1043E00013C0C13579F0C235F1F461E00DC08091A0
+:1043F000E901882319F01092E90115C081E080934A
+:10440000EA0115C061E006C08091E9010E94ED1F3C
+:104410000AC06AE08091E9010E94632004C0109202
+:10442000EA0180E004C081E002C080E0ABCFCF9120
+:104430000895E1E8F0E08081886080838081816078
+:1044400080838FB7F89493E09093890090ED9093D8
+:1044500088008FBF0895EFE6F0E08081826080835E
+:104460000895EFE6F0E080818D7F80830895EFE688
+:10447000F0E0908182E08927808308951F920F9257
+:104480000FB60F9211242F933F934F935F936F9327
+:104490007F938F939F93AF93BF93EF93FF938091FD
+:1044A000EB019091EC0101969093EC018093EB016C
+:1044B000811103C082E00E94E308E091EC01E695DF
+:1044C000E695F0E0EC54FB4FE4918091EB018E1304
+:1044D00003C080E00E94E308FF91EF91BF91AF918C
+:1044E0009F918F917F916F915F914F913F912F910C
+:1044F0000F900FBE0F901F90189504D06894B111C3
+:104500008DC0089570D088F09F5790F0B92F9927EB
+:10451000B751A0F0D1F0660F771F881F991F1AF0CE
+:10452000BA95C9F712C0B13081F077D0B1E00895E3
+:1045300074C0672F782F8827B85F39F0B93FCCF364
+:10454000869577956795B395D9F73EF490958095C4
+:10455000709561957F4F8F4F9F4F0895E89409C0E4
+:1045600097FB3EF490958095709561957F4F8F4FA6
+:104570009F4F9923A9F0F92F96E9BB279395F695BC
+:10458000879577956795B795F111F8CFFAF4BB0F3A
+:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E
+:1045A000882311F096E911C0772321F09EE8872F28
+:1045B000762F05C0662371F096E8862F70E060E0E4
+:1045C0002AF09A95660F771F881FDAF7880F96955D
+:1045D000879597F9089557FD9058440F551F59F046
+:1045E0005F3F71F04795880F97FB991F61F09F3FE0
+:1045F00079F087950895121613061406551FF2CF09
+:104600004695F1DF08C0161617061806991FF1CF58
+:1046100086957105610508940895E894BB2766277F
+:104620007727CB0197F908950BD078C069D028F08F
+:104630006ED018F0952309F05AC05FC01124EECF58
+:10464000CADFA0F3959FD1F3950F50E0551F629FED
+:10465000F001729FBB27F00DB11D639FAA27F00DDB
+:10466000B11DAA1F649F6627B00DA11D661F829F02
+:104670002227B00DA11D621F739FB00DA11D621FE7
+:10468000839FA00D611D221F749F3327A00D611D04
+:10469000231F849F600D211D822F762F6A2F1124E6
+:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39
+:1046B000BB1F661F771F881F91505040A9F79E3F70
+:1046C000510570F014C0AACF5F3FECF3983EDCF3C5
+:1046D000869577956795B795F795E7959F5FC1F7AD
+:1046E000FE2B880F911D9695879597F9089597F958
+:1046F0009F6780E870E060E008959FEF80EC089588
+:1047000000240A94161617061806090608950024B0
+:104710000A9412161306140605060895092E03942A
+:10472000000C11F4882352F0BB0F40F4BF2B11F49E
+:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF
+:10474000072E16F4009407D077FD09D00E94B923F4
+:1047500007FC05D03EF4909581959F4F0895709584
+:1047600061957F4F0895EE0FFF1F0590F491E02DA6
+:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8
+:10478000B70710F0A61BB70B881F991F5A95A9F7FA
+:1047900080959095BC01CD010895F999FECF92BD09
+:1047A00081BDF89A992780B50895A8E1B0E042E06C
+:1047B00050E00C94F523262FF999FECF92BD81BDD0
+:1047C000F89A019700B4021639F01FBA20BD0FB64F
+:1047D000F894FA9AF99A0FBE08950196272F0E942D
+:1047E000DC230C94DB23DC01CB01FC01F999FECF27
+:1047F00006C0F2BDE1BDF89A319600B40D92415069
+:0A4800005040B8F70895F894FFCF78
+:10480A000220E508730950091C09E8080101C701DB
+:10481A0028080A03140A3F4D363975042804F2039E
+:10482A00B9034C0365037E039703010203040506DB
+:04483A000708090062
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/osx_fr/keymap.c b/keyboards/ergodox_ez/keymaps/osx_fr/keymap.c new file mode 100644 index 000000000..de951666d --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/osx_fr/keymap.c @@ -0,0 +1,187 @@ +// French AZERTY version of the default_osx file +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_french_osx.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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | - | & | é | " | ' | ( | LEFT | | RIGHT| § | è | ! | ç | à | ) | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Del | A | Z | E | R | T | L1 | | L1 | Y | U | I | O | P | ` | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | Q | S | D | F | G |------| |------| H | J | K | L | M | LGui | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |W/Ctrl| X | C | V | B | | | | N | , |; / L2| : |=/Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | ù /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 + FR_MINS, FR_AMP, FR_EACU, FR_QUOT, FR_APOS, FR_LPRN, KC_LEFT, + KC_DELT, FR_A, FR_Z, KC_E, KC_R, KC_T, TG(1), + KC_BSPC, FR_Q, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, CTL_T(FR_W), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), + LT(SYMB,FR_UGRV), FR_LESS, 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, FR_SECT, FR_EGRV, FR_EXLM, FR_CCED, FR_AGRV, FR_RPRN, + TG(1), KC_Y, KC_U, KC_I, KC_O, KC_P, FR_GRV, + KC_H, KC_J, KC_K, KC_L, FR_M, KC_LGUI, + MEH_T(KC_NO), KC_N, FR_COMM, LT(MDIA, FR_SCLN), FR_COLN, CTL_T(FR_EQL), 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,FR_EXLM,FR_AT, FR_LCBR,FR_RCBR,FR_PIPE,KC_TRNS, + KC_TRNS,FR_HASH,FR_DLR, FR_LPRN,FR_RPRN,FR_GRV, + KC_TRNS,FR_PERC,FR_CIRC,FR_LBRC,FR_RBRC,FR_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, FR_7, FR_8, FR_9, FR_ASTR, KC_F12, + KC_DOWN, FR_4, FR_5, FR_6, FR_PLUS, KC_TRNS, + KC_TRNS, FR_AMP, FR_1, FR_2, FR_3, FR_BSLS, KC_TRNS, + KC_TRNS,FR_COMM, FR_0, FR_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 +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) { + 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; + } + +};
\ No newline at end of file diff --git a/keyboards/ergodox_ez/keymaps/osx_kinesis_pnut/compiled.hex b/keyboards/ergodox_ez/keymaps/osx_kinesis_pnut/compiled.hex new file mode 100644 index 000000000..8a7ad640d --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/osx_kinesis_pnut/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4
+:100010000C94BE020C94BE020C94BE020C94BE0260
+:100020000C94BE020C94BE020C94620D0C94340E1F
+:100030000C94BE020C94BE020C94BE020C94BE0240
+:100040000C94BE020C943E220C94BE020C94BE0290
+:100050000C94BE020C94D11B0C94BE020C94BE02F4
+:100060000C94BE020C94BE020C94BE020C94BE0210
+:100070000C94BE020C94BE020C94BE020C94BE0200
+:100080000C94BE020C94BE020C94BE020C94BE02F0
+:100090000C94BE020C94BE020C94BE020C94BE02E0
+:1000A0000C94BE020C94BE020C94BE02A10EC30EB0
+:1000B000B10FC30EB10F080F2B0FB10F800F930FAD
+:1000C0006212621291129112C712E71218141814D8
+:1000D000F2121814A213A2130914181418141214EB
+:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300
+:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0
+:10010000C113CE13D513DC13E6130000F0A13900A0
+:100110002B002900E100E10400001E00140004008F
+:100120001D7135414D001F001A0016001B003400E0
+:100130004C00200008000700060050002A002100A3
+:100140001500090019004F004A00220017000A009C
+:1001500005000000E300500001540000007F000093
+:1001600065744F00015400000077000029712300DE
+:100170001C000B0011000000E300240018000D001B
+:10018000100052002E0025000C000E003600510019
+:100190002C00260012000F0037002F002800270037
+:1001A00013003342387130002B002D003100340031
+:1001B000E500C10000000100010001000100010094
+:1001C00000003A001E0220022202010001003B0052
+:1001D0001F0221022302010001003C002F0226021F
+:1001E0002F00010001003D00300227023000010015
+:1001F00001003E003102350035020000010001001F
+:1002000001000000010000000100010001000000E9
+:100210000100000001003F005200510024020000D4
+:1002200001004000240021001E00010001004100E7
+:10023000250022001F003700010042002600230095
+:10024000200027000100430025022E0231002E006D
+:100250000100440045000100010001000000010010
+:100260000100010001000100000001000100010087
+:1002700001000100010001000100F2000100010085
+:1002800001000100F000F1000100F4000100010094
+:100290000100F3000100F500010001000100010070
+:1002A0000100000001000100010000000100000049
+:1002B0000100010001000000010000000100010038
+:1002C0000100010001000000010001000100010027
+:1002D0000100A9000100010001000100AC00AA001A
+:1002E000B600010001000100AB00A8000100010000
+:1002F0000100010001000100010001000100AE0049
+:1003000001000100000016034500720067006F0045
+:1003100044006F007800200045005A0000001603DA
+:100320004500720067006F0044006F0078002000F5
+:1003300045005A0000000403090409026D0004018D
+:1003400000A0FA09040000010301010009211101C4
+:100350000001223F000705810308000A090401008B
+:100360000103010200092111010001224D000705CE
+:10037000820308000A0904020001030000000921A9
+:10038000110100012236000705830308000A090451
+:1003900003000103000000092111010001223900BE
+:1003A000070584031000011201100100000008ED90
+:1003B000FE071301000102000105010906A1010564
+:1003C0000719E029E7150025019508750181020547
+:1003D000081901290595057501910295017503918B
+:1003E0000105071900297715002501957875018108
+:1003F00002C005010980A101850216010026B7008F
+:100400001A01002AB700751095018100C0050C097A
+:1004100001A1018503160100269C021A01002A9CF5
+:1004200002751095018100C005010902A1010901B1
+:10043000A10005091901290515002501950575017A
+:10044000810295017503810105010930093115818A
+:10045000257F95027508810609381581257F95014C
+:1004600075088106050C0A38021581257F950175EE
+:10047000088106C0C005010906A101050719E02988
+:10048000E715002501950875018102950175088120
+:100490000105081901290595057501910295017558
+:1004A0000391010507190029FF150025FF95067521
+:1004B000088100C0000000000000000000000001F2
+:1004C0000204060A0F17202C3A4A5D71879DB3C7B4
+:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF
+:1004E0003A2C20170F0A0604020100000000000049
+:1004F0000000000011241FBECFEFDAE0DEBFCDBF49
+:1005000004B603FE24C08091FB019091FC01A091F0
+:10051000FD01B091FE018730904BA740B04BB9F47C
+:100520001092FB011092FC011092FD011092FE014D
+:1005300014BE84B7877F84BF88E10FB6F894809398
+:100540006000109260000FBEE0E0FFE3099511E04B
+:10055000A0E0B1E0EAE0F8E402C005900D92A43317
+:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0
+:10057000B107E1F70E94A60A0C9403240C94000032
+:100580001092B9008AE08093B800089594EA90939D
+:10059000BC009091BC0097FFFCCF9091B900987F70
+:1005A000983021F0903111F081E008958093BB00E4
+:1005B00084E88093BC008091BC0087FFFCCF8091D1
+:1005C000B900887F883111F0803471F780E0089598
+:1005D00084E98093BC008091BC0084FDFCCF089529
+:1005E0008093BB0084E88093BC008091BC0087FFAF
+:1005F000FCCF9091B900987F81E0983209F480E0B7
+:10060000089584E88093BC008091BC0087FFFCCFF4
+:100610008091BB00089580910101811115C080E493
+:100620000E94C6028093010181110CC082E10E94E8
+:10063000F00280930101811105C08FEF0E94F0024A
+:10064000809301010E94E80284B1807F84B985B162
+:10065000807F85B98AB1837F8AB98BB1837F8BB95B
+:100660003E98469808950E94C604809301010E9416
+:100670000B0380B38C7080BB81B3836F81BBA5E318
+:10068000B1E0E3E4F1E08EE08E0F11921D928E1343
+:10069000FCCF0C94B004BF92CF92DF92EF92FF9206
+:1006A0000F931F93CF93DF9380910101882379F0FB
+:1006B000809134018F5F80933401811108C00E94C2
+:1006C000C60480930101811102C00E94580405E311
+:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407
+:1006E000E394F12CC730D10500F58091010181110F
+:1006F00064C080E40E94C60280930101811112C08F
+:1007000082E10E94F0028093010181110BC0C701B8
+:100710000C2E01C0880F0A94EAF780950E94F0021F
+:10072000809301010E94E80248C0CA30A1F028F479
+:10073000C83059F0C93061F005C0CC3089F070F094
+:10074000CD3089F0209A289810C0219A29980DC0A0
+:10075000229A2A980AC0239A2B9807C0529A01C05D
+:10076000539A5B9802C03E9A469890EA9A95F1F7A0
+:100770009FB1799902C082E001C080E091709D250F
+:10078000982B7C9902C084E001C080E0892B7D9980
+:1007900002C038E001C030E0832B7E9902C020E126
+:1007A00001C020E0822B9FB19095991F9927991F36
+:1007B0009295990F907E892B0FC080910101811134
+:1007C00049C080E40E94C60280930101882379F128
+:1007D000B12C0E94E8028B2DF8019081981719F036
+:1007E0008083C09200010E940B0321960F5F1F4F70
+:1007F000CE30D10509F076CF80910001882361F1D8
+:10080000815080930001882339F08FE99FE00197A0
+:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F
+:10082000CF01825F91919D938E13FCCF15C083E120
+:100830000E94F002809301018111CACF81E40E94DD
+:10084000C602809301018111C3CF0E940103B82E1B
+:10085000B094BFCF80E0C0CF0E94560481E0DF910A
+:10086000CF911F910F91FF90EF90DF90CF90BF90AD
+:100870000895E82FF0E0ED5BFE4F80810895089524
+:100880000F931F93CF93DF93C3E4D1E010E00C2FBD
+:10089000025F899190E00E94F71A180F0C13F9CFAC
+:1008A000812FDF91CF911F910F9108950C94260510
+:1008B00056985E9825982D9826982E9827982F98C8
+:1008C0008FEF90E0909389008093880090938B0045
+:1008D00080938A0090938D0080938C00259A2D9AA6
+:1008E0002FEF80E792E0215080409040E1F700C078
+:1008F0000000269A2E9A2FEF80E792E02150804048
+:100900009040E1F700C00000279A2F9A2FEF80E770
+:1009100092E0215080409040E1F700C0000025980F
+:100920002D982FEF80E792E0215080409040E1F732
+:1009300000C0000026982E982FEF80E792E021500B
+:1009400080409040E1F700C0000027982F9856980B
+:100950005E9825982D9826982E9827982F98089578
+:1009600089EA8093800089E08093810024982C9804
+:100970003F988AB18F748AB96E98479A8BB1806B11
+:100980008BB9769A0E9458040C94250580E28093D6
+:1009900001018091510181110EC00E94C00281E0CD
+:1009A000809351012FEF83ED90E3215080409040E0
+:1009B000E1F700C0000080E40E94C60280930101BC
+:1009C00081112EC00E94F00280930101811128C084
+:1009D0000E94F00280930101811122C08FE30E94E6
+:1009E000F0028093010181111BC00E94E80280E4A3
+:1009F0000E94C60280930101811112C08CE00E9406
+:100A0000F0028093010181110BC00E94F0028093DB
+:100A10000101811105C08FE30E94F0028093010162
+:100A20000E94E80280910101089561110BC0FC0150
+:100A30008281882321F085EE0E94061103C085EE95
+:100A40000E94CE1180E090E0089508956091BD016C
+:100A50007091BE018091BF019091C0010E94031B63
+:100A600056985E9825982D9826982E9827982F9816
+:100A7000813019F0823021F00895259A2D9A089539
+:100A8000269A2E9A089581E0089581E008950C94A5
+:100A9000450508950F931F93CF93DF938C01FC01BD
+:100AA000C081D181CE010E947C19BE010E94F30554
+:100AB000EC01B8010E944705882309F48DC0F801B4
+:100AC0008281882309F44AC080915D0181111FC091
+:100AD000C431F0E5DF0709F051C00E94490581E00B
+:100AE00080935D010E949B1B90935C0180935B014E
+:100AF0001092540110925601109255011092580113
+:100B00001092570110925A011092590165C08091BC
+:100B10005B0190915C010E94A71B883C910570F4D9
+:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB
+:100B3000D183C0838F5F809354014EC0C43880E559
+:100B4000D80721F0C538D04501F13AC0F8018281BB
+:100B5000882341F01092520182E01EC0C438E0E5C3
+:100B6000DE0759F580915201811106C086E20E948C
+:100B7000061186E20E94CE1182E01CC0C438F0E566
+:100B8000DF0741F3C538D045D9F4F80182818823C5
+:100B900031F01092530180E20E941D121DC080911D
+:100BA0005301811106C087E20E94061187E20E946C
+:100BB000CE1180E20E9424120FC0C538D04529F31F
+:100BC00081E08093520180935301C801DF91CF915E
+:100BD0001F910F910C94430580E0DF91CF911F91FD
+:100BE0000F910895089596E0799FF001112494E5FE
+:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F
+:100C0000E25FFE4F859194910895880F991FFC0132
+:100C1000E657F040859194910895880F991FFC0143
+:100C2000E65FFE4F8591949108950F931F93CF93A4
+:100C3000DF93EC01811520E3920750F5C11580E2A6
+:100C4000D80708F0C3C0CB3BD10590F4C83AD10512
+:100C500008F06AC0C53AD10508F05BC0C430D105C0
+:100C600008F0D0C1219709F0CAC101E010E00AC222
+:100C7000CF3FD10511F008F0C5C1C03FD10508F044
+:100C8000A2C0CE01805E9109089708F4BBC1B7C12C
+:100C9000C13090E5D90709F4A2C020F5C0318FE436
+:100CA000D80770F4C11590E4D90708F094C0C115B5
+:100CB00021E3D20708F0A3C1DD278E01106CE2C149
+:100CC000C115D04509F09BC10E9483148FEF94E3B6
+:100CD0002CE0815090402040E1F700C000000E94CD
+:100CE000F61BD0C1C11597E5D90758F4C03121E5ED
+:100CF000D20708F01CC1C43180E5D80708F475C0DC
+:100D00007EC1CE0190578115904108F078C1DF7007
+:100D100073C1C53AD10509F477C1C63AD10509F0C6
+:100D200076C102E810E4AEC1C83AD10509F472C137
+:100D3000C93AD10509F471C1CA3AD10509F470C1A3
+:100D4000CB3AD10509F46FC1CC3AD10509F46EC193
+:100D5000CD3AD10509F46DC1C03BD10509F46CC190
+:100D6000CE3AD10509F46BC1CF3AD10509F46AC175
+:100D7000C13BD10509F469C1C23BD10509F468C181
+:100D8000C33BD10509F467C1C43BD10509F466C171
+:100D9000C53BD10509F465C1C63BD10509F464C161
+:100DA000C73BD10509F463C1C83BD10509F462C151
+:100DB000C93BD10509F461C1CA3BD10509F460C141
+:100DC00000E014E45FC18E0110655CC1CE019F702C
+:100DD0000E940D0658C1DF708E01106A53C18091C8
+:100DE000DA0181608093DA014DC10E949B1D81115F
+:100DF00002C00E94811D0E94B81D90E09093FB01EB
+:100E00008093FA01C23080E5D80721F48091FA017D
+:100E1000816086C0C43090E5D90721F48091FA0141
+:100E200082607EC0C63020E5D20721F48091FA01AD
+:100E3000846076C0C83080E5D80719F48091FA0143
+:100E400027C0CA3090E5D90721F48091FA0180616A
+:100E500067C0CC3020E5D20721F48091FA0180628E
+:100E60005FC0CE3080E5D80721F48091FA0180641C
+:100E700057C0C03190E5D90721F48091FA0180680C
+:100E80004FC0C23120E5D20729F48091FA01846075
+:100E9000886046C0C33080E5D80721F48091FA010C
+:100EA0008E7F3EC0C53090E5D90721F48091FA01CC
+:100EB0008D7F36C0C73020E5D20721F48091FA013A
+:100EC0008B7F2EC0C93080E5D80719F48091FA01D4
+:100ED00026C0CB3090E5D90721F48091FA018F7EAE
+:100EE0001FC0CD3020E5D20721F48091FA018F7D1B
+:100EF00017C0CF3080E5D80721F48091FA018F7BAD
+:100F00000FC0C13190E5D90721F48091FA018F77A4
+:100F100007C0C331D04531F48091FA018B7F877FC0
+:100F20008093FA018091FA010E94BC1DABC08D2F05
+:100F300099278F70992781309105D9F49E012370EC
+:100F4000332702C0880F991F2A95E2F79C688E010B
+:100F500044E0000F111F4A95E1F700271370802B22
+:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA
+:100F70002FC08230910531F4DC2FCC278E01016F18
+:100F8000106A80C08330910569F4CE01837099277F
+:100F900001E010E002C0000F111F8A95E2F7C801BE
+:100FA0009C680FC084309105B9F4CE0183709927F5
+:100FB00001E010E002C0000F111F8A95E2F7C8019E
+:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029
+:100FD0008C010C2B1D2B56C08530910531F4DC2F74
+:100FE000CC278E01046F106A4DC0069709F04AC0E5
+:100FF000CF71DD27DC2FCC278E01106243C000E0CB
+:1010000010E040C08E013EC001E810E43BC003E8A0
+:1010100010E438C002EE14E435C009EE14E432C026
+:101020000AEE14E42FC005EB14E42CC006EB14E424
+:1010300029C007EB14E426C00CEC14E423C00DEC2B
+:1010400014E420C003E815E41DC00AE815E41AC042
+:1010500002E915E417C004E915E414C001E216E43E
+:1010600011C003E216E40EC004E216E40BC005E270
+:1010700016E408C006E216E405C007E216E402C062
+:101080000AE216E4C801DF91CF911F910F910895F4
+:1010900096E0799FF001112494E5899FE00DF11D00
+:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149
+:1010B0009491803E9105E0F4803C910558F5813390
+:1010C000910509F46FC048F48932910509F463C0B1
+:1010D0008A32910509F46DC072C089339105E9F037
+:1010E00082389105D1F08533910509F44DC067C070
+:1010F000833E910581F138F4803E9105B9F0823E3E
+:101100009105D9F05CC0863E910561F1873E91055D
+:10111000A1F155C00E94050608952091FA0120FD15
+:1011200002C021FF4CC080EE90E049C08091FA01DE
+:1011300080FFF9CF89E390E042C08091FA0182FFFD
+:101140000EC08091FA0184FF03C080E090E037C0B8
+:1011500083EE90E034C08091FA0182FFF2CF82EEFC
+:1011600090E02DC08091FA0183FF0BC08091FA01BD
+:1011700084FDEBCF87EE90E022C08091FA0183FFDF
+:10118000F5CF86EE90E01BC08091FA0185FF07C085
+:1011900089E290E014C08091FA0185FFF9CF85E3E0
+:1011A00090E00DC08091FA0186FF07C08AE290E0CE
+:1011B00006C08091FA0186FFF9CF81E390E00E949A
+:1011C0001506089508950C94E20880916E01089523
+:1011D000CF93DF9300D01F92CDB7DEB79C018091F3
+:1011E000F101843019F593E099833B832A8390932E
+:1011F000E9008FEF9091E800815095FD06C095EDD4
+:101200009A95F1F700008111F5CF8091E80085FFF4
+:101210000DC040E050E063E070E0CE0101960E9416
+:10122000520B8091E8008E778093E8000F900F902A
+:101230000F90DF91CF910895CF93DF9300D01F924D
+:10124000CDB7DEB72091F101243021F522E02983CA
+:101250009B838A8383E08093E9008FEF9091E8007D
+:10126000815095FD06C095ED9A95F1F7000081112A
+:10127000F5CF8091E80085FF0DC040E050E063E0CD
+:1012800070E0CE0101960E94520B8091E8008E77AB
+:101290008093E8000F900F900F90DF91CF91089509
+:1012A0002091F1012430F1F422E02093E9002FEFA6
+:1012B0003091E800215035FD06C035ED3A95F1F743
+:1012C00000002111F5CF2091E80025FF0BC040E080
+:1012D00050E065E070E00E94520B8091E8008E774C
+:1012E0008093E8000895CF93DF93EC019091F10192
+:1012F000943009F046C080910C018823D9F0809188
+:101300000D018823B9F09093E9008FEF9091E800E8
+:10131000815095FD06C095E19A95F1F70000811185
+:10132000F5CF8091E80085FF2CC040E050E060E1FF
+:1013300070E017C081E08093E9008FEF9091E800A2
+:10134000815095FD06C095ED9A95F1F70000811149
+:10135000F5CF8091E80085FF14C040E050E068E0E0
+:1013600070E0CE010E94520B8091E8008E7780934E
+:10137000E80080E1FE01AEE5B1E001900D928A95B2
+:10138000E1F7DF91CF9108958091F001811109C0BB
+:101390000E94E70C0E94440D8091E20084608093DB
+:1013A000E20008951092F001089508950C942B2204
+:1013B0000E948C1B0E9431220E94EA0F0C94E308C9
+:1013C00042E061EC81E00E94610C42E061EC82E06D
+:1013D0000E94610C42E061EC83E00E94610C42E1FA
+:1013E00061EC84E00C94610C8091F301833009F48A
+:1013F00055C030F4813071F0823009F48EC0089508
+:101400008A3009F47AC08B3009F460C0893009F061
+:101410009CC020C08091F201813A09F096C0809171
+:10142000E800877F8093E8008091F6019091F701B2
+:10143000892B21F460E18EE591E003C060E080E05B
+:1014400090E070E00E949D0B8091E8008B77809384
+:10145000E80008958091F201813209F076C0809110
+:10146000F6019091F701009719F0039709F06DC00C
+:101470008091E800877F8093E8008091E80082FDFA
+:1014800005C08091F1018111F8CF5FC08091F1001A
+:1014900080936E018091E8008B7753C08091F201B8
+:1014A000813A09F052C08091F6019091F701892BA1
+:1014B00009F04BC08091E800877F8093E80080911D
+:1014C000E80080FFFCCF80910C0136C08091F201D2
+:1014D0008132D9F58091F6019091F701892BA9F518
+:1014E0008091E800877F8093E8000E94960C8091AD
+:1014F000F40180930C010C9483148091F2018132E9
+:1015000021F58091E800877F8093E8000E94960C87
+:101510008091F50180936F0108958091F201813AE5
+:10152000A1F48091E800877F8093E8008091E80033
+:1015300080FFFCCF80916F018093F1008091E800E3
+:101540008E778093E8000C94960C089584B7877F7B
+:1015500084BF88E10FB6F894809360001092600019
+:101560000FBE90E080E80FB6F894809361009093EE
+:1015700061000FBE0E9439100E94E70C0E94440DCA
+:101580008091E20084608093E20078940E94CA0F08
+:101590000E943B1082E091E00E94E50F0E94192218
+:1015A0008091F101853069F40E94531B8091EF0115
+:1015B0008823B1F30E947E1B882391F30E943C0B89
+:1015C000EFCF0E944110ECCF292F33272330310574
+:1015D000C9F064F42130310581F02230310509F081
+:1015E00043C08DE690E02AE333E042C0213231056A
+:1015F000F1F02232310541F137C082E190E027EA73
+:1016000033E036C099278130910541F08230910551
+:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4
+:1016200002C0E6E0F3E0849190E09F0121C06430C5
+:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5
+:10164000318189E090E014C0643070F470E0FB01F7
+:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47
+:10166000FE4F808190E004C080E090E020E030E018
+:10167000FA0131832083089580E189BD82E189BD2B
+:1016800009B400FEFDCF8091D8008F7D8093D800F3
+:101690008091E00082608093E0008091E00081FD15
+:1016A000FCCF0895CF92DF92EF92FF920F931F939A
+:1016B000CF93DF93EC018B016A010E94B50C81117D
+:1016C00033C0C114D10439F0F60180819181081B27
+:1016D000190BC80FD91FE12CF12C0115110519F1B7
+:1016E0008091E80085FD16C08091E8008E77809398
+:1016F000E800C114D10449F0F60180819181E80E1F
+:10170000F91EF182E08285E00FC00E94B50C8823AB
+:1017100021F30AC089918093F10001501109FFEF74
+:10172000EF1AFF0ADACF80E0DF91CF911F910F917E
+:10173000FF90EF90DF90CF9008952091F8013091C5
+:10174000F9012617370748F06115710539F4209122
+:10175000E8002E772093E80001C0B90140E0611550
+:101760007105A9F12091F101222309F443C025302C
+:1017700009F442C02091E80023FD40C02091E80018
+:1017800022FD32C02091E80020FFE9CF4091F30014
+:101790002091F20030E0342BFC01CF01611571057E
+:1017A00059F02830310540F481918093F100615067
+:1017B00071092F5F3F4FF1CF41E02830310509F02B
+:1017C00040E02091E8002E772093E800C8CF411137
+:1017D000C9CF0AC08091F101882361F0853061F0A2
+:1017E0008091E80083FD0AC08091E80082FFF2CF7B
+:1017F00080E0089582E0089583E0089581E00895EF
+:101800002091F8013091F9012617370748F061154A
+:10181000710539F42091E8002E772093E80001C08B
+:10182000B901FC0120E06115710591F18091F10190
+:10183000882309F440C0853009F43FC08091E80056
+:1018400083FD3DC08091E80082FD2FC08091E800BB
+:1018500080FFE9CF2091F3008091F20090E0922B7D
+:101860006115710559F08830910540F42491209359
+:10187000F1003196615071090196F2CF21E008978D
+:1018800009F020E08091E8008E778093E800CBCFCC
+:101890002111CCCF0AC08091F101882361F08530FD
+:1018A00061F08091E80083FD0AC08091E80082FF2A
+:1018B000F2CF80E0089582E0089583E0089581E00A
+:1018C0000895982F973058F59093E900981739F0BC
+:1018D0007091EC002091ED005091F00003C0242F96
+:1018E000762F50E021FF19C03091EB003E7F3093FE
+:1018F000EB003091ED003D7F3093ED003091EB0037
+:1019000031603093EB007093EC002093ED00509326
+:10191000F0002091EE0027FF07C09F5FD3CF8F70AC
+:101920008093E90081E0089580E008958091F201BC
+:1019300087FF11C08091E80082FD05C08091F10110
+:101940008111F8CF11C08091E8008B770BC0809196
+:10195000F101882349F08091E80080FFF8CF809161
+:10196000E8008E778093E80008952091E40030919C
+:10197000E50095E64091EC00842F817040FF22C085
+:101980008091E80080FD1CC08091F101882391F0D6
+:10199000853091F08091EB0085FD10C04091E4000E
+:1019A0005091E5004217530729F39A01915011F71E
+:1019B00084E0089582E0089583E0089581E0089529
+:1019C00080E008954091E80042FFDECF08950E9434
+:1019D000550D0E945D0DE0EEF0E080818160808316
+:1019E000E8EDF0E080818F77808319BCA7EDB0E04F
+:1019F0008C918E7F8C9380818F7E80831092F001FA
+:101A000008950F931F93CF93DF930E94550D0E946B
+:101A10005D0DC8EDD0E088818F77888388818068EC
+:101A2000888388818F7D888319BC1092F101109280
+:101A3000ED011092EF011092EE0100EE10E0F801BE
+:101A400080818B7F808388818160888342E060E031
+:101A500080E00E94610CE1EEF0E080818E7F808367
+:101A6000E2EEF0E080818160808380818860808305
+:101A7000F80180818E7F8083888180618883DF91F7
+:101A8000CF911F910F910895E8EDF0E080818F7E56
+:101A90008083E7EDF0E080818160808384E082BF15
+:101AA00081E08093F0010C94010DE8EDF0E080817D
+:101AB0008E7F80831092E20008951092DA001092D7
+:101AC000E10008951F920F920FB60F9211242F93E9
+:101AD0003F934F935F936F937F938F939F93AF93B6
+:101AE000BF93EF93FF938091E10082FF0BC0809141
+:101AF000E20082FF07C08091E1008B7F8093E100CC
+:101B00000E94C90F8091DA0080FF1FC08091D80029
+:101B100080FF1BC08091DA008E7F8093DA00809175
+:101B2000D90080FF0DC080E189BD82E189BD09B483
+:101B300000FEFDCF81E08093F1010E94C40905C041
+:101B400019BC1092F1010E94D2098091E10080FF3E
+:101B500019C08091E20080FF15C08091E2008E7F65
+:101B60008093E2008091E20080618093E2008091A6
+:101B7000D80080628093D80019BC85E08093F10181
+:101B80000E94D6098091E10084FF30C08091E2007C
+:101B900084FF2CC080E189BD82E189BD09B400FECB
+:101BA000FDCF8091D8008F7D8093D8008091E10097
+:101BB0008F7E8093E1008091E2008F7E8093E2002F
+:101BC0008091E20081608093E2008091ED018823A2
+:101BD00011F084E007C08091E30087FD02C081E03E
+:101BE00001C083E08093F1010E94D8098091E10057
+:101BF00083FF29C08091E20083FF25C08091E1002E
+:101C0000877F8093E10082E08093F1011092ED01E3
+:101C10008091E1008E7F8093E1008091E2008E7FD1
+:101C20008093E2008091E20080618093E20042E0D4
+:101C300060E080E00E94610C8091F00088608093F9
+:101C4000F0000E94D509FF91EF91BF91AF919F9154
+:101C50008F917F916F915F914F913F912F910F9055
+:101C60000FBE0F901F9018951F920F920FB60F92F4
+:101C700011242F933F934F935F936F937F938F9391
+:101C80009F93AF93BF93CF93DF93EF93FF93C09155
+:101C9000E900CF708091EC00D82FD17080FDD0E8A2
+:101CA0001092E9008091F000877F8093F000789493
+:101CB0000E94780E1092E9008091F0008860809375
+:101CC000F000CD2BCF70C093E900FF91EF91DF9131
+:101CD000CF91BF91AF919F918F917F916F915F91C4
+:101CE0004F913F912F910F900FBE0F901F9018951D
+:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3
+:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115
+:101D1000F10091938E13FBCF0E94F4098091E800AB
+:101D200083FF1FC18091F2019091F301492F50E090
+:101D30004A30510508F015C1FA01EA5AFF4F0C94D8
+:101D4000B323803881F0823809F00BC18091F6010D
+:101D50008F708093E9008091EB0085FB882780F9E4
+:101D60001092E90006C08091EE019091EF0191116F
+:101D700082609091E800977F9093E8008093F10053
+:101D80001092F100C8C0282F2D7F09F0EAC08823E7
+:101D900019F0823061F0E5C08091F401813009F0E2
+:101DA000E0C0933009F080E08093EF012BC0809178
+:101DB000F401811127C08091F6018F7009F4D1C020
+:101DC0008093E9002091EB0020FF1CC0933021F4A8
+:101DD0008091EB00806214C09091EB009061909331
+:101DE000EB0021E030E0A90102C0440F551F8A95A5
+:101DF000E2F74093EA001092EA008091EB008860DD
+:101E00008093EB001092E9008091E800877F86C004
+:101E10008111A7C01091F4011F778091E3008078B1
+:101E2000812B8093E3008091E800877F8093E80016
+:101E30000E94960C8091E80080FFFCCF8091E30027
+:101E400080688093E300111102C082E001C083E04A
+:101E50008093F10186C08058823008F082C0809162
+:101E6000F4019091F5018C3D53E0950779F583E0FD
+:101E70008A838AE289834FB7F894DE01139620E0C3
+:101E80003EE051E2E32FF0E050935700E49120FF51
+:101E900003C0E295EF703F5FEF708E2F90E0EA3065
+:101EA00010F0C79601C0C0968D939D932F5F24318B
+:101EB00049F74FBF8091E800877F8093E8006AE28E
+:101EC00070E0CE0101960E949D0B14C0AE014F5FE1
+:101ED0005F4F6091F6010E94E40ABC01009709F48B
+:101EE00040C09091E800977F9093E80089819A81A3
+:101EF0000E94000C8091E8008B778093E80031C04D
+:101F0000803879F58091E800877F8093E8008091A0
+:101F1000ED018093F1008091E8008E778093E800D6
+:101F20000E94960C1EC081111CC09091F401923049
+:101F3000C0F48091E800877F8093E8009093ED01E2
+:101F40000E94960C8091ED01811106C08091E30002
+:101F500087FD02C081E001C084E08093F1010E940E
+:101F6000E0098091E80083FF0AC08091E800877F44
+:101F70008093E8008091EB0080628093EB00AA964A
+:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A
+:101F900008950895CF938091F1018823A1F0C09115
+:101FA000E900CF709091EC00892F817090FD80E85E
+:101FB000C82B1092E9008091E80083FD0E94780E02
+:101FC000CF70C093E900CF910895909375018093ED
+:101FD00074010895E0917401F0917501309721F03A
+:101FE0000190F081E02D099480E00895E091740162
+:101FF000F0917501309721F00280F381E02D099472
+:102000000895E0917401F0917501309721F00480FA
+:10201000F581E02D099408952091720130917301AA
+:102020008217930771F09093730180937201E0918E
+:102030007401F0917501309721F00680F781E02D51
+:1020400009940895209170013091710182179307CE
+:1020500071F09093710180937001E0917401F0919F
+:102060007501309721F00084F185E02D09940895E1
+:1020700008950C9438100E94921B0E9433030C9414
+:10208000541C9F92AF92BF92CF92DF92EF92FF9239
+:102090000F931F93CF93DF9300D000D000D0CDB724
+:1020A000DEB70E944B030DE010E0AA24A394B12CEC
+:1020B000902E802F0E943904980129583E4F6901C3
+:1020C000F901F080F826A1F40150110988F78FEF8B
+:1020D00089838A831B820E949B1B8160782F9D834A
+:1020E0008C8349815A816B818D810E94D8102FC0C9
+:1020F0009091DA0191FF04C08E830E943F048E818B
+:1021000025E030E0A501022E01C0440F0A94EAF751
+:10211000E42E4F21C1F029839A828E2191E009F4A7
+:1021200090E09B830E949B1B8160782F9D838C8312
+:1021300049815A816B818D810E94D810F60180817E
+:10214000E826E08204C021503109E0F6BDCF0E94AC
+:102150003B1F109176010E94EA0F1817B9F00E94F8
+:10216000EA0F8093760126960FB6F894DEBF0FBE75
+:10217000CDBFDF91CF911F910F91FF90EF90DF9036
+:10218000CF90BF90AF909F900C94E30826960FB627
+:10219000F894DEBF0FBECDBFDF91CF911F910F919D
+:1021A000FF90EF90DF90CF90BF90AF909F900895F9
+:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82
+:1021C0000FBECDBF4F83588769877A878B87DE0123
+:1021D000119686E0FD0111928A95E9F785E0FE01EE
+:1021E000379601900D928A95E1F749815A816B816A
+:1021F0007C818D819E810E9421172B960FB6F894C9
+:10220000DEBF0FBECDBFDF91CF910895CF9388235E
+:1022100009F4C2C0C82F823859F40E94EA0F81FD28
+:10222000BBC089E30E94FB190E94C81A89E30CC055
+:10223000833879F40E94EA0F80FDAEC083E50E94E6
+:10224000FB190E94C81A83E50E943D1ACF910C9495
+:10225000C81A843859F40E94EA0F82FD9DC087E4B1
+:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6
+:10227000813A48F48C2F0E947E2181118DC08C2FD1
+:102280000E94FB19E3CF80E28C0F883048F4C770BE
+:1022900081E001C0880FCA95EAF70E94811AD6CF63
+:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB
+:1022B00083E890E005C081E890E002C082E890E009
+:1022C000CF910C940C1088E58C0F833108F064C01A
+:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118
+:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186
+:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106
+:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173
+:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB
+:1023200038C082EE90E035C089EE90E032C08AEE8F
+:1023300090E02FC085EB90E02CC086EB90E029C0A8
+:1023400087EB90E026C08CEC90E023C08DEC90E011
+:1023500020C083E891E01DC08AE891E01AC082E9BC
+:1023600091E017C084E991E014C081E292E011C0CD
+:1023700083E292E00EC084E292E00BC085E292E03C
+:1023800008C086E292E005C087E292E002C08AE2DD
+:1023900092E0CF910C942210CF910895882309F4F4
+:1023A0004BC0823859F40E94EA0F81FF45C089E38F
+:1023B0000E94FB190E94C81A89E30CC0833871F48B
+:1023C0000E94EA0F80FF38C083E50E94FB190E943B
+:1023D000C81A83E50E943D1A0C94C81A843859F42F
+:1023E0000E94EA0F82FF28C087E40E94FB190E9426
+:1023F000C81A87E4EFCF9CEF980F913A58F390E218
+:10240000980F983050F4877091E001C0990F8A9529
+:10241000EAF7892F0E94871ADFCF9BE5980F933048
+:1024200020F480E090E00C940C10885A833120F462
+:1024300080E090E00C9422100895882321F00E94FF
+:10244000811A0C94C81A0895882321F00E94871AD3
+:102450000C94C81A08957F928F929F92AF92BF9268
+:10246000CF92DF92EF92FF920F931F93CF93DF9360
+:102470001F92CDB7DEB77C01C62E772EFC010581F9
+:1024800002950F70128111110E949E1A0E94F41978
+:10249000882379F0112369F080E28C0D883048F0B0
+:1024A00082E00E94DD190E94F41991E0D82ED9260D
+:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C
+:1024C0000C94B323872D807F072D0F70882311F084
+:1024D0000295007F112389F0002309F490C180E266
+:1024E0008C0D883020F4802F0E94811A03C0802F29
+:1024F0000E94911A0E94C81A82C18C2D0E94CE118E
+:10250000002309F495C180E28C0D883020F4802FDF
+:102510000E94871A03C0802F0E94971A0E94C81A2F
+:1025200087C1972D907F872D8F70903211F0829503
+:10253000807FCC2021F0F1E0CF16B1F01EC0112336
+:1025400049F0002309F414C1013009F011C10E94BF
+:10255000B11A6EC1002319F0013009F469C18983F1
+:102560000E94B41A89810AC1112321F0023008F0B7
+:102570005FC1FEC001115CC101C1112321F0002324
+:1025800009F4F6C03CC1002309F4F8C03EC1872D10
+:1025900086958695837090E0009719F0019761F019
+:1025A00047C1112321F08C2D972D937002C080E03C
+:1025B00090E00E940C103CC1112321F08C2D972D2E
+:1025C000937002C080E090E00E94221031C18C2DF7
+:1025D000112319F00E94431E02C00E94AB1E0E94EC
+:1025E000301F26C1872D837009F052C0111120C100
+:1025F0008C2D829586958770880F880F9C2D9F70F3
+:10260000892E912CA12CB12C082E04C0880C991C69
+:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041
+:1026200020E030E0B901A80104C0440F551F661F27
+:10263000771F8A95D2F7CB01BA0160957095809586
+:10264000909503C060E070E0CB01272D269526957C
+:10265000237030E02230310569F02330310589F0F4
+:10266000682979298A299B292130310571F00E9436
+:102670006918DEC0682979298A299B290E94851852
+:10268000D7C00E946918C501B4010E944D18D0C07E
+:10269000112319F0872D817001C08695882309F4D4
+:1026A000C7C08C2D829586958770880F880F9C2DCA
+:1026B0009F70892E912CA12CB12C082E04C0880C5F
+:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC
+:1026D00010E020E030E0B901A80104C0440F551F0C
+:1026E000661F771F8A95D2F7CB01BA016095709566
+:1026F0008095909503C060E070E0CB01272D269572
+:1027000026952370422F50E04230510569F0433046
+:10271000510589F0682979298A299B294130510579
+:1027200071F00E94431984C0682979298A299B295C
+:102730000E945F197DC00E944319C501B4010E9427
+:10274000271976C08C2D90E0FC01E05EF109E5319F
+:10275000F10508F050C0E059FF4F0C94B3230C2D45
+:102760000F70872D8F71112331F00E94C018802FB8
+:102770000E941D125DC00E94E118802F0E94241249
+:1027800057C0112339F0011153C0872D8F710E945A
+:1027900006194EC0023008F04BC0F7CF112339F0B4
+:1027A000872D8F710E94C01843C01123C9F3872D54
+:1027B0008F710E94E1183CC0112329F0872D8F7181
+:1027C0000E94AB1835C00E94A11832C0112351F0ED
+:1027D000172D1F71812F0E94C01863E0812F0E9466
+:1027E000D41926C081E00E94DD19023008F182E090
+:1027F0000E94DD191DC0112331F0002389F28C2DB8
+:102800000E94061115C0002391F28C2D0E94CE115A
+:102810000FC0472D4F706C2DC7010E9415050E94F7
+:10282000C51706C0472D4F706C2DC7010E94F205D9
+:10283000DD20F9F00E94D01980FD1BC0F701128243
+:102840000E94CA190E94C018C7010E9448140E9421
+:10285000CA190F90DF91CF911F910F91FF90EF90C8
+:10286000DF90CF90BF90AF909F908F907F900C940F
+:10287000E1180F90DF91CF911F910F91FF90EF9092
+:10288000DF90CF90BF90AF909F908F907F900895F2
+:102890000F931F93CF93DF93EC01888199812B8154
+:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B
+:1028B0000E944A05882371F0688179818A810E948B
+:1028C000C6198C010E947B190E944218B801CE01E2
+:1028D0000E942B12DF91CF911F910F9108950E94BA
+:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471
+:1028F000E11F0E94301F80E090E00E940C1080E0F9
+:1029000090E00C9422100E948E1A0C946F140E9476
+:10291000BB19292F22952F7030E02C3031054CF453
+:102920002A3031056CF42250310922303105A8F4E7
+:1029300007C02C30310569F02F30310551F00DC042
+:10294000803F69F018F4803E40F409C0843F29F4C8
+:1029500006C093FB882780F9089580E0089581E000
+:102960000895CF93DF9300D000D01F92CDB7DEB78C
+:102970000F900F900F900F900F90DF91CF910895CF
+:10298000CF93DF9300D000D000D0CDB7DEB726962E
+:102990000FB6F894DEBF0FBECDBFDF91CF91089583
+:1029A0001F93CF93DF93C091850116E0809186013C
+:1029B000C81799F0D0E01C9FF0011D9FF00D112465
+:1029C000E957FE4F408151816281738184819581F5
+:1029D0000E94C0142196C770E9CFDF91CF911F915B
+:1029E00008954091B7015091B8016091B90170917B
+:1029F000BA018091BB019091BC010C94C0148091EC
+:102A0000BC0182958F7009F054C08091B901882370
+:102A100009F44FC080918501A09186016091B701B2
+:102A20007091B8014091BA015091BB01B6E08A178C
+:102A300009F43FC090E041155105C1F17F3F11F409
+:102A40006F3FA1F1B89FF001B99FF00D1124E95734
+:102A5000FE4F218172132AC02081621327C0228178
+:102A6000211124C0238134812417350710F421500B
+:102A70003109241B350B283C3105C0F42091BC01E1
+:102A80002F7020612093BC0126E0289FF001299F30
+:102A9000F00D1124E457FE4F80818F708061808398
+:102AA00087EB91E00E9448140C94D0140196877033
+:102AB000BECF0895CF92DF92EF92FF920F931F93B4
+:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32
+:102AD0000FBECDBF8C0185E0F801DE011D9601908F
+:102AE0000D928A95E1F7D8014C9111965C9111975E
+:102AF00012966C9112971396CD90DC9014973091AA
+:102B0000B7017091B8018091BA019091BB01009713
+:102B100009F46BC17F3F19F43F3F09F466C1E090AF
+:102B2000B901EE2009F4C0C02091BC01C816D90635
+:102B300028F0F601E81BF90BCF0104C080959095B1
+:102B40008C0D9D1DFF24F394883C910578F0F12CA9
+:102B5000207F09F0C6C07C2DD98AC88A89890E9445
+:102B6000B11487EB91E00E944814B1C0822F807F9E
+:102B700009F046C0751314C0341312C0611110C09F
+:102B80002F7020612093BC010E94F11487EB91E02B
+:102B90000E9448148091BC01D80115968C932EC0D8
+:102BA000CD2819F15F3F11F44F3FF9F0F62E611176
+:102BB0001CC0809185012091860136E0821709F4BE
+:102BC0005AC090E0389FF001399FF00D1124E95769
+:102BD000FE4F7181571306C07081471303C0728185
+:102BE000711103C001968770E9CFF62E662309F4B0
+:102BF00018C18091BC0181608093BC01F12C11C18E
+:102C0000751308C0341306C0611104C08091BC0163
+:102C1000D801C3C04D875E878D859E856A8B0E94D3
+:102C200087146A898823E1F16623D1F12091BC01E0
+:102C3000822F82958F7090E0029774F08091B70197
+:102C40009091B80198878F831986DB86CA862C8776
+:102C5000CE0107960E94481486E0F801A7EBB1E088
+:102C600001900D928A95E1F70E94FF140E94F114E1
+:102C7000FF24F394D6C04D875E878D859E850E9484
+:102C8000BB19292F22952F7030E0223031050CF02E
+:102C9000BCC09F7009F0B6C0805E883008F4C1C027
+:102CA000C8010E944814E4CFC816D90608F453C0DE
+:102CB000F601E81BF90BCF01883C910508F450C0E0
+:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E
+:102CD000F1E086E0DF011D928A95E9F70E94F11488
+:102CE000A0C0751314C0341312C0611110C08091BC
+:102CF000BC01F8018583C8010E94481486E0E7EB17
+:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C
+:102D10005E878D859E856A8B0E9487146A898823C9
+:102D200009F4BECF662309F4BBCF2091BC01822FEA
+:102D300082958F7090E002970CF48ECF8091B7014E
+:102D40009091B8019A8389831B82DD82CC822E8385
+:102D5000CE0101967FCF809590958C0D9D1DACCFB7
+:102D6000F62E662309F49CCF75132EC034132CC0A5
+:102D70002091BC0120FD1FC0822F82958F70D9F059
+:102D8000D80115962C9315978F3049F08F5F982FA7
+:102D90009295907F822F8F70892B15968C93C80106
+:102DA0000E94481486E0F801A7EBB1E001900D9273
+:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7
+:102DC0000D928A95E1F72DC04D875E878D859E8592
+:102DD0000E948714811140CF8091BC018160809353
+:102DE000BC01C8010E9448141CC0662309F458CFD6
+:102DF0004D875E878D859E850E948714882309F400
+:102E00004FCF2ACF811148CF0CC0243031050CF0B0
+:102E100047CF9F7009F440CFF8019581907F09F06A
+:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D
+:102E3000DF91CF911F910F91FF90EF90DF90CF9096
+:102E400008951F93CF93DF93CDB7DEB72C970FB6BE
+:102E5000F894DEBF0FBECDBF4F83588769877A874E
+:102E60008B879C87CE0107960E945A15882369F0AC
+:102E70008F8198852A853B85232BF1F19F3F09F0AF
+:102E800063C08F3F09F060C037C086E0FE0137960F
+:102E9000DE01119601900D928A95E1F76F81788598
+:102EA000EA85FB85309741F17F3F11F46F3F21F1B7
+:102EB0002091860130E0C9010196877099274091E1
+:102EC000850150E08417950709F447C069837A8328
+:102ED000FD83EC8396E0929FD001939FB00D112467
+:102EE000A957BE4FFE01319601900D929A95E1F7D8
+:102EF000809386010E94D01416E080918501909104
+:102F000086018917C1F1189FC001112489579E4F6E
+:102F10000E945A15882379F1E09185011E9FF001E6
+:102F20001124E957FE4F4081518162817381848170
+:102F300095810E94C0148091850190E00196877070
+:102F4000992780938501D9CF4F81588569857A85E6
+:102F50008B859C850E94C014CFCF0E948314109251
+:102F6000860110928501E7EBF1E086E0DF011D921A
+:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45
+:102F8000CDBFDF91CF911F910895EF92FF920F93E4
+:102F90001F93CF93DF938C01009709F46CC0F12C41
+:102FA000EE24E394E8012196F8018491843740F4FB
+:102FB000843008F051C0813081F0823019F15BC05B
+:102FC000853709F444C0A8F19CE7980F903708F0C2
+:102FD00052C08F770E94CE1141C00E5F1F4FFE017D
+:102FE000C49180E28C0F883048F4C7708E2D01C0E8
+:102FF000880FCA95EAF70E94A11A14C08C2F0E946C
+:1030000006112DC00E5F1F4FFE01C49180E28C0F90
+:10301000883058F4C7708E2D01C0880FCA95EAF722
+:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3
+:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3
+:103040009FE00197F1F700C00000C150F6CF0E5F7E
+:103050001F4FFE01F49003C00E9406118E018F2DB8
+:10306000882309F49FCFEFE9FFE03197F1F700C023
+:1030700000008150F5CFDF91CF911F910F91FF900C
+:10308000EF90089508956093C1017093C2018093F9
+:10309000C3019093C4010C946F140F931F9300917C
+:1030A000C1011091C2012091C3013091C401DC0122
+:1030B000CB01802B912BA22BB32B8093C10190933A
+:1030C000C201A093C301B093C4011F910F910C944E
+:1030D0006F140F931F930091C1011091C2012091B1
+:1030E000C3013091C401DC01CB0180239123A223D1
+:1030F000B3238093C1019093C201A093C301B09305
+:10310000C4011F910F910C946F140F931F930091A2
+:10311000C1011091C2012091C3013091C401DC01B1
+:10312000CB0180279127A227B3278093C1019093D9
+:10313000C201A093C301B093C4011F910F910C94DD
+:103140006F141092BD011092BE011092BF01109237
+:10315000C0010C946F1441E050E060E070E004C0E6
+:10316000440F551F661F771F8A95D2F74093BD0104
+:103170005093BE016093BF017093C0010C946F1413
+:1031800041E050E060E070E004C0440F551F661F4E
+:10319000771F8A95D2F78091BD019091BE01A091D1
+:1031A000BF01B091C001482B592B6A2B7B2B409358
+:1031B000BD015093BE016093BF017093C0010C9498
+:1031C0006F1441E050E060E070E004C0440F551F10
+:1031D000661F771F8A95D2F7409550956095709538
+:1031E0008091BD019091BE01A091BF01B091C0013D
+:1031F000482359236A237B234093BD015093BE018A
+:103200006093BF017093C0010C946F1441E050E0D3
+:1032100060E070E004C0440F551F661F771F8A9559
+:10322000D2F78091BD019091BE01A091BF01B091F4
+:10323000C001482759276A277B274093BD01509337
+:10324000BE016093BF017093C0010C946F140F9383
+:103250001F930091BD011091BE012091BF013091DB
+:10326000C001DC01CB01802B912BA22BB32B8093CF
+:10327000BD019093BE01A093BF01B093C0011F9107
+:103280000F910C946F140F931F930091BD01109137
+:10329000BE012091BF013091C001DC01CB01802330
+:1032A0009123A223B3238093BD019093BE01A093E9
+:1032B000BF01B093C0011F910F910C946F140F9335
+:1032C0001F930091BD011091BE012091BF0130916B
+:1032D000C001DC01CB0180279127A227B32780936F
+:1032E000BD019093BE01A093BF01B093C0011F9197
+:1032F0000F910C946F140895CF92DF92EF92FF928A
+:103300000F931F93CF93DF938C01C090C101D09096
+:10331000C201E090C301F090C4018091BD01909181
+:10332000BE01A091BF01B091C001C82AD92AEA2AE2
+:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520
+:10334000A795979587950A94D2F780FF06C0B80194
+:103350008C2F0E944808019721F4219760F780E0A4
+:1033600001C08C2FDF91CF911F910F91FF90EF90B3
+:10337000DF90CF900895CF93DF93EC010E947C19EA
+:10338000BE010E944808DF91CF910895CB010E94B1
+:10339000BB1908958091C5018595859585950895FA
+:1033A0008091C5018770089598E0899F900111244C
+:1033B000262B2093C5010C94C0182091C50180953F
+:1033C00082238093C501982F977069F430E0482FCD
+:1033D000552747FD50952417350729F08595859584
+:1033E00085950C94E11808959091C501977081E03E
+:1033F00009F480E0089590910C01992321F09091B7
+:103400000D01911109C020910E0130910F01F901B8
+:1034100032969FEF40E01FC0982F9695969596950F
+:103420009F3050F5E0910E01F0910F01E90FF11D71
+:10343000877021E030E0A90102C0440F551F8A9532
+:10344000E2F7CA019181892B818308959F3F39F06A
+:103450004F5F4E3041F051915813F8CF0DC05111CC
+:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08
+:1034700097FDFA9582830895089590910C01992300
+:1034800021F090910D01911109C020910E01309110
+:103490000F01F9013296205F3F4F1FC0982F96957C
+:1034A000969596959F30F0F4E0910E01F0910F0102
+:1034B000E90FF11D877021E030E0A90102C0440F3F
+:1034C000551F8A95E2F7CA018095918189238183EE
+:1034D00008953196E217F30729F090819813F9CFF8
+:1034E0001082F7CF089581E090E0E0910E01F09115
+:1034F0000F01E80FF91F1082019680319105A9F79D
+:1035000008959091D901892B8093D90108958095D0
+:103510009091D90189238093D90108951092D901FE
+:1035200008959091D801892B8093D80108958095B2
+:103530009091D80189238093D80108951092D801E1
+:1035400008959091D701892B8093D7010895809594
+:103550009091D70189238093D70108951092D701C4
+:1035600008958093C60108951092C6010895809130
+:103570000E0190910F01FC0131969C01205F3F4F9D
+:1035800080E0919191118F5FE217F307D1F70895D1
+:10359000E0910E01F0910F018091D9018083E091BB
+:1035A0000E01F0910F0190818091D801892B8083C9
+:1035B000E0910E01F0910F0190818091D701892B4C
+:1035C00080838091C601882361F0E0910E01F09123
+:1035D0000F019081892B80830E94B71A811110926C
+:1035E000C60180910E0190910F010C94F60F20E01E
+:1035F000009739F0AC0141505109842395232F5F86
+:10360000F7CF822F0895CF92DF92EF92FF926C0155
+:10361000EE24FF24C114D104E104F10421F0C70118
+:10362000B60120E101C020E0C72ED82EE92EFF24EC
+:10363000C114D104E104F10419F0285FC701B601F7
+:103640006B017C0154E0F694E794D794C7945A95A3
+:10365000D1F7C114D104E104F10419F02C5FC701C2
+:10366000B6016B017C0142E0F694E794D794C794CD
+:103670004A95D1F7C114D104E104F10419F02E5F89
+:10368000C701B601DC01CB01B695A7959795879543
+:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5
+:1036A000DF90CF9008958091F101843021F1109244
+:1036B000DB0120E488E190E00FB6F894A8958093B0
+:1036C00060000FBE2093600080E00E94E30883B793
+:1036D000817F846083BF83B7816083BF789488953E
+:1036E00083B78E7F83BF88E10FB6F8948093600024
+:1036F000109260000FBE0895089508950E947C1BEB
+:103700000E944B030E947D1B0E94400491E08111A6
+:1037100001C090E0892F08950E9483140E94EA0F4F
+:103720000C94E30882E084BD93E095BD9AEF97BDC9
+:1037300080936E0008952FB7F8948091DC019091EA
+:10374000DD01A091DE01B091DF012FBF0895CF927E
+:10375000DF92EF92FF920F931F932FB7F89440914F
+:10376000DC015091DD016091DE017091DF012FBF1E
+:103770006A017B01EE24FF248C0120E030E0C016BA
+:10378000D106E206F30610F4415051099A01281BB4
+:10379000390BC9011F910F91FF90EF90DF90CF90EF
+:1037A00008951F920F920FB60F9211248F939F933B
+:1037B000AF93BF938091DC019091DD01A091DE0178
+:1037C000B091DF010196A11DB11D8093DC019093A2
+:1037D000DD01A093DE01B093DF01BF91AF919F9116
+:1037E0008F910F900FBE0F901F9018950E94E70CBD
+:1037F000F8942FEF87EA91E6215080409040E1F75E
+:1038000000C0000087E090EBDC018093FB01909307
+:10381000FC01A093FD01B093FE019CE088E10FB68E
+:10382000F894A895809360000FBE90936000FFCF3E
+:10383000EF92FF920F931F93CF93DF93D82FCDE09A
+:103840008C2F0E94390405E010E0E82EF12CC7010E
+:10385000002E02C0959587950A94E2F780FF09C073
+:10386000602F7C2F80E00E94F305D81302C081E016
+:1038700006C00150110958F7C15010F780E0DF91E0
+:10388000CF911F910F91FF90EF900895CF93C82F84
+:103890008CE20E94181C882321F08C2FCF910C946D
+:1038A000181C80E0CF910895CF930E949B1D811139
+:1038B00002C00E94811DC5E6C15049F00E944B0321
+:1038C0008FE39CE90197F1F700C00000F5CF89E292
+:1038D0000E94461C811113C18AE20E94461C81117C
+:1038E0000E94811D85E00E94461C81110E94F61BEA
+:1038F0000E94A61D8093DA0187E00E94461C88235F
+:10390000A9F18BE10E94461C882351F08091DA01D5
+:1039100081FB222720F991E0922790FB81F90EC0CC
+:103920008EE00E94461C882361F08091DA0182FBC0
+:10393000222720F991E0922790FB82F98093DA0107
+:1039400015C080E10E94461C9091DA01882341F065
+:1039500093FB222720F981E0822780FB93F904C0A2
+:10396000892F809580FB90F99093DA018091DA019C
+:103970000E94AA1D0E94B81D8093FA0180EE0E9449
+:10398000461C882341F08091FA01982F909590FB76
+:1039900080F98093FA0189E30E94461C882359F03C
+:1039A0008091FA0181FB222720F991E0922790FB78
+:1039B00081F98093FA0182EE0E94461C882359F017
+:1039C0008091FA0182FB222720F991E0922790FB57
+:1039D00082F98093FA0186EE0E94461C882359F0F2
+:1039E0008091FA0183FB222720F991E0922790FB36
+:1039F00083F98093FA0183EE0E94461C882359F0D4
+:103A00008091FA0184FB222720F991E0922790FB14
+:103A100084F98093FA0185E30E94461C882359F0BB
+:103A20008091FA0185FB222720F991E0922790FBF3
+:103A300085F98093FA0181E30E94461C882359F09E
+:103A40008091FA0186FB222720F991E0922790FBD2
+:103A500086F98093FA0181E10E94461C882359F07F
+:103A60008091FA0187FB222720F991E0922790FBB1
+:103A700087F98093FA018091FA010E94BC1D809120
+:103A8000FA0187FB882780F980930D0187E20E9465
+:103A9000461CC82F8EE10E94461C8111C2608FE136
+:103AA0000E94461C8111C46080E20E94461C811164
+:103AB000C86081E20E94461C8111C06182E20E94BE
+:103AC000461C8111C06283E20E94461C8111C064C1
+:103AD00084E20E94461C882311F0C06802C0CC23F7
+:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4
+:103AF000682F70E080E090E0CF910C944318CF9154
+:103B000008956DEE7EEF80E090E00E94ED2360E08E
+:103B100082E090E00E94DB2360E083E090E00E947E
+:103B2000DB2360E084E090E00E94DB2360E085E03E
+:103B300090E00C94DB2380E090E00E94D52321E00C
+:103B40008D3E9E4F09F020E0822F089582E090E0A4
+:103B50000C94CD23682F82E090E00C94DB2383E06B
+:103B600090E00C94CD23682F83E090E00C94DB234D
+:103B700084E090E00C94CD23682F84E090E00C94D6
+:103B8000DB238091E20180FF0BC06091130185E08F
+:103B9000689FB001112475956795759567952BC041
+:103BA00081FF09C06091130185E0689FB001112475
+:103BB0007595679520C082FF07C06091130185E06D
+:103BC000689FB001112417C09091E3019923D1F0AF
+:103BD00060911201961788F72091130185E0289FC4
+:103BE00090011124929FA001939F500D112470E029
+:103BF000CA010E949F236038710540F46115710568
+:103C000039F002C065E070E0862F08958FE70895CF
+:103C100081E008958091E20180FF08C06091110168
+:103C200070E0759567957595679521C081FF06C011
+:103C30006091110170E07595679519C082FF04C00D
+:103C40006091110170E010C09091E3019923C1F0DF
+:103C5000609110019617A0F780911101899FC00112
+:103C6000112470E00E949F236038710528F46115CB
+:103C7000710521F0862F08958FE7089581E008955A
+:103C800061E070E0F4CF803F21F40E94C11D819576
+:103C900004C0813F29F40E94C11D8093E60108956C
+:103CA000823F21F40E94C11D819504C0833F29F405
+:103CB0000E94C11D8093E5010895893F19F40E9477
+:103CC0000A1E05C08A3F31F40E940A1E8195809326
+:103CD000E70108958B3F21F40E940A1E819504C0DC
+:103CE0008C3F29F40E940A1E8093E8010895843FC6
+:103CF00021F48091E401816017C0853F21F4809117
+:103D0000E401826011C0863F21F48091E401846067
+:103D10000BC0873F21F48091E401886005C0883F93
+:103D200031F48091E40180618093E40108958D3F36
+:103D300021F48091E20181600BC08E3F21F48091DB
+:103D4000E201826005C08F3F29F48091E201846026
+:103D50008093E2010895803F39F48091E60187FF66
+:103D60006CC01092E60169C0813F29F48091E601A0
+:103D70001816BCF362C09091E501823F29F497FFC9
+:103D80005CC01092E50159C0833F19F41916CCF3B9
+:103D900054C0893F41F48091E70118160CF04DC0E2
+:103DA0001092E7014AC08A3F29F48091E70187FF1A
+:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6
+:103DC0001092E8013AC08C3F29F48091E80118165E
+:103DD000BCF333C0843F21F48091E4018E7F17C08F
+:103DE000853F21F48091E4018D7F11C0863F21F44D
+:103DF0008091E4018B7F0BC0873F21F48091E40127
+:103E0000877F05C0883F31F48091E4018F7E8093E5
+:103E1000E40113C08D3F21F48091E2018E7F0BC03D
+:103E20008E3F21F48091E2018D7F05C08F3F29F400
+:103E30008091E2018B7F8093E2018091E501811105
+:103E40000EC08091E60181110AC08091E7018111C5
+:103E500006C08091E801811102C01092E30108952B
+:103E600084EE91E00E9401100E949B1B9093E1015F
+:103E70008093E00108951F93CF93DF938091E00139
+:103E80009091E1010E94A71BAC019091E30199235D
+:103E900021F02091140130E006C0209115018AE044
+:103EA000289F900111244217530708F486C080917F
+:103EB000E501C091E601D091E7011091E80181117F
+:103EC00007C0C11176C0D11174C0111172C075C084
+:103ED0009F3F19F09F5F9093E301181624F40E940E
+:103EE000C11D8093E5018091E50187FF05C00E9417
+:103EF000C11D81958093E5011C1624F40E94C11D0B
+:103F00008093E6018091E60187FF05C00E94C11DF4
+:103F100081958093E6016091E501662339F1C091B6
+:103F2000E601CC2319F1772767FD7095872F972F2E
+:103F30000E94B02223E333E343E35FE30E941423B0
+:103F40000E947D226093E5016C2F772767FD7095B5
+:103F5000872F972F0E94B02223E333E343E35FE3ED
+:103F60000E9414230E947D226093E6011D1624F412
+:103F70000E940A1E8093E7018091E70187FF05C038
+:103F80000E940A1E81958093E701111624F40E9475
+:103F90000A1E8093E8018091E80187FF05C00E9416
+:103FA0000A1E81958093E801DF91CF911F910C94B7
+:103FB000301F9F3F09F08ECF96CFDF91CF911F9199
+:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE
+:103FD0001092E3011092E2010895833081F128F4F8
+:103FE000813059F08230D1F00895853009F449C00C
+:103FF000B8F1863009F456C0089580911501262F36
+:1040000030E0280F311D2F3F310524F4680F6093F5
+:10401000150108958FEF8093150108958091140183
+:10402000262F30E0280F311D2F3F310524F4680F73
+:104030006093140108958FEF809314010895809187
+:104040001301262F30E0280F311D2F3F310524F4B6
+:10405000680F6093130108958FEF80931301089503
+:1040600080911201262F30E0280F311D2F3F31059E
+:1040700024F4680F6093120108958FEF809312016A
+:10408000089580911101262F30E0280F311D2F3F18
+:10409000310524F4680F6093110108958FEF809328
+:1040A0001101089580911001262F30E0280F311D55
+:1040B0002F3F310524F4680F6093100108958FEFAE
+:1040C000809310010895833011F128F4813049F074
+:1040D000823091F00895853081F120F18630C1F170
+:1040E000089580911501681720F4861B80931501AF
+:1040F000089510921501089580911401681720F415
+:10410000861B8093140108951092140108958091E4
+:104110001301681720F4861B8093130108951092F1
+:104120001301089580911201681720F4861B809373
+:1041300012010895109212010895809111016817DB
+:1041400020F4861B809311010895109211010895A7
+:1041500080911001681720F4861B80931001089548
+:104160001092100108950F931F938D3109F46BC0C5
+:1041700008F03FC08E3009F47FC0C0F4873009F4E6
+:1041800069C068F4863009F0B1C08091DA01817F9E
+:104190008E7F8093DA0181E08093EA01A8C08830A5
+:1041A00009F4A2C08B3009F49FC0A0C0863109F485
+:1041B0009BC078F4803109F472C0813109F096C057
+:1041C0000E94831490910D0181E0892780930D0155
+:1041D0008BC0893109F488C08B3109F087C0809188
+:1041E000DA0181FB222720F991E0922790FB81F9E7
+:1041F0004CC0853309F470C048F4873209F46CC0B0
+:1042000008F459C0893209F467C070C0833438F4A7
+:104210008A3308F04EC0883309F466C067C083341F
+:1042200009F45AC0883409F061C00E9483140FEF6A
+:1042300013ED20E3015010402040E1F700C00000E2
+:104240000E94F61B51C00E9437220E94EA0F0E9472
+:10425000E3084AC09091DA01892F8095817080FB34
+:1042600090F929F0966098609093DA0140C0997FA8
+:10427000977F9093DA0138C08091DA0182FB222780
+:1042800020F991E0922790FB82F98093DA0199233B
+:1042900059F18091DA0181608093DA0125C0809123
+:1042A000DA0183FB222720F991E0922790FB83F922
+:1042B000ECCF895301C08D5141E050E060E070E0E7
+:1042C0008A019B0104C0000F111F221F331F8A9512
+:1042D000D2F7C901B80104C061E070E080E090E06D
+:1042E0000E9443180E94831481E001C080E01F9166
+:1042F0000F91089580E0089580E00895CF93C82F2E
+:104300008091EA01813079F018F08230E9F187C0BC
+:10431000E0910E01F0910F018081813169F08232CC
+:1043200009F07FC009C0E0910E01F0910F0180817A
+:10433000813111F0823261F48C2F0E947A21811137
+:1043400004C08C2F0E94B3201DC081E090E01AC0F1
+:104350008C2F0E947C21811114C0C43179F048F463
+:10436000CB3079F0C03109F060C082E08093EA017F
+:1043700008C0C93219F0C83321F057C01092EA01C1
+:1043800054C081E0817053C0C93289F118F5C4313D
+:1043900071F1A8F4C73009F046C08AE08093150196
+:1043A00094E19093140193E0909313018093120190
+:1043B00088E08093110188E28093100134C0CE51CF
+:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB
+:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC
+:1043E00013C0C13579F0C235F1F461E00DC08091A0
+:1043F000E901882319F01092E90115C081E080934A
+:10440000EA0115C061E006C08091E9010E94ED1F3C
+:104410000AC06AE08091E9010E94632004C0109202
+:10442000EA0180E004C081E002C080E0ABCFCF9120
+:104430000895E1E8F0E08081886080838081816078
+:1044400080838FB7F89493E09093890090ED9093D8
+:1044500088008FBF0895EFE6F0E08081826080835E
+:104460000895EFE6F0E080818D7F80830895EFE688
+:10447000F0E0908182E08927808308951F920F9257
+:104480000FB60F9211242F933F934F935F936F9327
+:104490007F938F939F93AF93BF93EF93FF938091FD
+:1044A000EB019091EC0101969093EC018093EB016C
+:1044B000811103C082E00E94E308E091EC01E695DF
+:1044C000E695F0E0EC54FB4FE4918091EB018E1304
+:1044D00003C080E00E94E308FF91EF91BF91AF918C
+:1044E0009F918F917F916F915F914F913F912F910C
+:1044F0000F900FBE0F901F90189504D06894B111C3
+:104500008DC0089570D088F09F5790F0B92F9927EB
+:10451000B751A0F0D1F0660F771F881F991F1AF0CE
+:10452000BA95C9F712C0B13081F077D0B1E00895E3
+:1045300074C0672F782F8827B85F39F0B93FCCF364
+:10454000869577956795B395D9F73EF490958095C4
+:10455000709561957F4F8F4F9F4F0895E89409C0E4
+:1045600097FB3EF490958095709561957F4F8F4FA6
+:104570009F4F9923A9F0F92F96E9BB279395F695BC
+:10458000879577956795B795F111F8CFFAF4BB0F3A
+:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E
+:1045A000882311F096E911C0772321F09EE8872F28
+:1045B000762F05C0662371F096E8862F70E060E0E4
+:1045C0002AF09A95660F771F881FDAF7880F96955D
+:1045D000879597F9089557FD9058440F551F59F046
+:1045E0005F3F71F04795880F97FB991F61F09F3FE0
+:1045F00079F087950895121613061406551FF2CF09
+:104600004695F1DF08C0161617061806991FF1CF58
+:1046100086957105610508940895E894BB2766277F
+:104620007727CB0197F908950BD078C069D028F08F
+:104630006ED018F0952309F05AC05FC01124EECF58
+:10464000CADFA0F3959FD1F3950F50E0551F629FED
+:10465000F001729FBB27F00DB11D639FAA27F00DDB
+:10466000B11DAA1F649F6627B00DA11D661F829F02
+:104670002227B00DA11D621F739FB00DA11D621FE7
+:10468000839FA00D611D221F749F3327A00D611D04
+:10469000231F849F600D211D822F762F6A2F1124E6
+:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39
+:1046B000BB1F661F771F881F91505040A9F79E3F70
+:1046C000510570F014C0AACF5F3FECF3983EDCF3C5
+:1046D000869577956795B795F795E7959F5FC1F7AD
+:1046E000FE2B880F911D9695879597F9089597F958
+:1046F0009F6780E870E060E008959FEF80EC089588
+:1047000000240A94161617061806090608950024B0
+:104710000A9412161306140605060895092E03942A
+:10472000000C11F4882352F0BB0F40F4BF2B11F49E
+:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF
+:10474000072E16F4009407D077FD09D00E94B923F4
+:1047500007FC05D03EF4909581959F4F0895709584
+:1047600061957F4F0895EE0FFF1F0590F491E02DA6
+:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8
+:10478000B70710F0A61BB70B881F991F5A95A9F7FA
+:1047900080959095BC01CD010895F999FECF92BD09
+:1047A00081BDF89A992780B50895A8E1B0E042E06C
+:1047B00050E00C94F523262FF999FECF92BD81BDD0
+:1047C000F89A019700B4021639F01FBA20BD0FB64F
+:1047D000F894FA9AF99A0FBE08950196272F0E942D
+:1047E000DC230C94DB23DC01CB01FC01F999FECF27
+:1047F00006C0F2BDE1BDF89A319600B40D92415069
+:0A4800005040B8F70895F894FFCF78
+:10480A000220E508730950091C09E8080101C701DB
+:10481A0028080A03140A3F4D363975042804F2039E
+:10482A00B9034C0365037E039703010203040506DB
+:04483A000708090062
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/osx_kinesis_pnut/keymap.c b/keyboards/ergodox_ez/keymaps/osx_kinesis_pnut/keymap.c new file mode 100644 index 000000000..1032be549 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/osx_kinesis_pnut/keymap.c @@ -0,0 +1,191 @@ +// 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). +// Wanted to map default layer of my EZ to my existing Kinesis Mapping. +// 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 "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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | CapsL | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | TAB | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | ESC | A | S | D | F | G |------| |------| H | J | K | L |; / L2| '" | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |AltShf|Grv/L1| '" | Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | LGui | App | | Ctrl/Esc | RGui | + * ,------|------|------| |------+--------+------. + * | | | Home | | = | | | + * | Backs|Delete|------| |------| Enter |Space | + * | pace | | End | | TAB | | | + * `--------------------' `----------------------' + */ +// 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_CAPSLOCK, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), + 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, ALL_T(KC_NO), + LALT(KC_LSFT), LT(SYMB,KC_GRV),KC_QUOT,KC_LEFT,KC_RGHT, + KC_LGUI, ALT_T(KC_APP), + KC_HOME, + KC_BSPC,KC_DELT,KC_END, + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(1), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_QUOTE, + 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, + CTL_T(KC_ESC), KC_LGUI, + KC_EQL, + KC_TAB, KC_ENT, KC_SPC + ), +/* 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| |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | | |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +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) { + 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/plover/compiled.hex b/keyboards/ergodox_ez/keymaps/plover/compiled.hex new file mode 100644 index 000000000..5e04e2494 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/plover/compiled.hex @@ -0,0 +1,1169 @@ +:100000000C94CE020C9412030C9412030C94120361
+:100010000C9412030C9412030C9412030C9412030C
+:100020000C9412030C9412030C94B60D0C94880ECD
+:100030000C9412030C9412030C9412030C941203EC
+:100040000C9412030C9492220C9412030C9412033D
+:100050000C9412030C94251C0C9412030C941203A0
+:100060000C9412030C9412030C9412030C941203BC
+:100070000C9412030C9412030C9412030C941203AC
+:100080000C9412030C9412030C9412030C9412039C
+:100090000C9412030C9412030C9412030C9412038C
+:1000A0000C9412030C9412030C941203F50E170F08
+:1000B0000510170F05105C0F7F0F0510D40FE70F09
+:1000C000B612B612E512E5121B133B136C146C1436
+:1000D00046136C14F613F6135D146C146C1466144A
+:1000E0000314031403140314031403140314031458
+:1000F0000314031403140314031403140314031448
+:1001000015142214291430143A140000F0A12E0002
+:100110002B002900E100354100001E0014000400FE
+:100120001D713400E2001F001A0016001B00E104DC
+:100130004C00200008000700060050002A002100A3
+:100140001500090019004F004D00220017000A0099
+:10015000050000006574E30001540000007F00000A
+:100160004A004F000354000000770000E200230023
+:100170001C000B00110000002971240018000D0064
+:10018000100052004B0025000C000E0036005100FC
+:100190002C00260012000F0037002F002800270037
+:1001A00013003342387130004E002D00310034000E
+:1001B000E500C10000000100010001000100010094
+:1001C00000003A001E0220022202010001003B0052
+:1001D0001F0221022302010001003C002F0226021F
+:1001E0002F00010001003D00300227023000010015
+:1001F00001003E003102350035020000010001001F
+:1002000001000000010000000100010001000000E9
+:100210000100000001003F005200510024020000D4
+:1002200001004000240021001E00010001004100E7
+:10023000250022001F003700010042002600230095
+:10024000200027000100430025022E0231002E006D
+:100250000100440045000100010001000000010010
+:100260000100010001000100000001000100010087
+:1002700001000100010001000100F2000100010085
+:10028000F5000100F000F1000100F400F4000100AD
+:100290000100F3000100F500010001000100010070
+:1002A0000100000001000100010000000100000049
+:1002B0000100010001000000010000000100010038
+:1002C0000100F20001000000010001000100F10046
+:1002D0000100A900010001000100F000AC00AA002B
+:1002E000B70001000100F300AB00A800B600010058
+:1002F0000100010001000100010001000100AE0049
+:1003000001000100000000000000000000000000EB
+:10031000000000001E0014000400000000000000A7
+:100320001F001A001600000019000000200008003D
+:100330000700000006000000210015000900000071
+:1003400000000000220017000A000000C4000000A6
+:10035000000000000000000000000100000000009C
+:10036000000000000100000023001C000B00000042
+:1003700001000000240018000D0001000100000031
+:1003800025000C000E0001001000000026001200E5
+:100390000F000000110000002700130033000000D0
+:1003A0000000010001002F003400000000001603CF
+:1003B0004500720067006F0044006F007800200065
+:1003C00045005A00000016034500720067006F00E8
+:1003D00044006F007800200045005A00000004032C
+:1003E000090409026D00040100A0FA0904000001DB
+:1003F00003010100092111010001223F00070581CD
+:100400000308000A09040100010301020009211187
+:10041000010001224D000705820308000A090402B9
+:10042000000103000000092111010001223600072C
+:1004300005830308000A0904030001030000000902
+:100440002111010001223900070584031000011267
+:1004500001100100000008EDFE0713010001020079
+:100460000105010906A101050719E029E715002585
+:100470000195087501810205081901290595057581
+:10048000019102950175039101050719002977155E
+:10049000002501957875018102C005010980A1013F
+:1004A000850216010026B7001A01002AB700751050
+:1004B00095018100C0050C0901A101850316010009
+:1004C000269C021A01002A9C02751095018100C029
+:1004D00005010902A1010901A10005091901290568
+:1004E00015002501950575018102950175038101AE
+:1004F0000501093009311581257F950275088106AE
+:1005000009381581257F950175088106050C0A3883
+:10051000021581257F950175088106C0C005010976
+:1005200006A101050719E029E715002501950875C1
+:1005300001810295017508810105081901290595B8
+:1005400005750191029501750391010507190029AF
+:10055000FF150025FF950675088100C0000000000A
+:1005600000000000000000010204060A0F17202C02
+:100570003A4A5D71879DB3C7DAE9F5FCFFFCF5E9FE
+:10058000DAC7B39D87715D4A3A2C20170F0A06041B
+:1005900002010000000000000000000011241FBE46
+:1005A000CFEFDAE0DEBFCDBF04B603FE24C08091FA
+:1005B000FB019091FC01A091FD01B091FE018730FB
+:1005C000904BA740B04BB9F41092FB011092FC0184
+:1005D0001092FD011092FE0114BE84B7877F84BF84
+:1005E00088E10FB6F89480936000109260000FBE0F
+:1005F000E0E0FFE3099511E0A0E0B1E0E2EBF8E410
+:1006000002C005900D92A433B107D9F711E0A4E31D
+:10061000B1E001C01D92AB3FB107E1F70E94FA0AB9
+:100620000C9457240C9400001092B9008AE0809337
+:10063000B800089594EA9093BC009091BC0097FF95
+:10064000FCCF9091B900987F983021F0903111F053
+:1006500081E008958093BB0084E88093BC00809182
+:10066000BC0087FFFCCF8091B900887F883111F0F2
+:10067000803471F780E0089584E98093BC00809114
+:10068000BC0084FDFCCF08958093BB0084E8809378
+:10069000BC008091BC0087FFFCCF9091B900987F8F
+:1006A00081E0983209F480E0089584E88093BC00EA
+:1006B0008091BC0087FFFCCF8091BB0008958091A2
+:1006C0000101811115C080E40E941A038093010189
+:1006D00081110CC082E10E944403809301018111C9
+:1006E00005C08FEF0E944403809301010E943C03E8
+:1006F00084B1807F84B985B1807F85B98AB1837FD9
+:100700008AB98BB1837F8BB93E98469808950E9431
+:100710001A05809301010E945F0380B38C7080BB37
+:1007200081B3836F81BBA5E3B1E0E3E4F1E08EE048
+:100730008E0F11921D928E13FCCF0C940405BF9264
+:10074000CF92DF92EF92FF920F931F93CF93DF939D
+:1007500080910101882379F0809134018F5F80932B
+:100760003401811108C00E941A0580930101811192
+:1007700002C00E94AC0405E311E0C0E0D0E0DD243B
+:10078000D39482E0C82EEE24E394F12CC730D10537
+:1007900000F580910101811164C080E40E941A0378
+:1007A00080930101811112C082E10E944403809371
+:1007B000010181110BC0C7010C2E01C0880F0A94E2
+:1007C000EAF780950E944403809301010E943C0354
+:1007D00048C0CA30A1F028F4C83059F0C93061F0DF
+:1007E00005C0CC3089F070F0CD3089F0209A28987F
+:1007F00010C0219A29980DC0229A2A980AC0239ADB
+:100800002B9807C0529A01C0539A5B9802C03E9A37
+:10081000469890EA9A95F1F79FB1799902C082E0E3
+:1008200001C080E091709D25982B7C9902C084E0E6
+:1008300001C080E0892B7D9902C038E001C030E022
+:10084000832B7E9902C020E101C020E0822B9FB162
+:100850009095991F9927991F9295990F907E892BB2
+:100860000FC080910101811149C080E40E941A03E8
+:1008700080930101882379F1B12C0E943C038B2DD8
+:10088000F8019081981719F08083C09200010E94AE
+:100890005F0321960F5F1F4FCE30D10509F076CF51
+:1008A00080910001882361F18150809300018823A9
+:1008B00039F08FE99FE00197F1F700C0000020C0F8
+:1008C000A3E4B1E0E5E3F1E0CF01825F91919D9374
+:1008D0008E13FCCF15C083E10E9444038093010175
+:1008E0008111CACF81E40E941A0380930101811112
+:1008F000C3CF0E945503B82EB094BFCF80E0C0CFC5
+:100900000E94AA0481E0DF91CF911F910F91FF9087
+:10091000EF90DF90CF90BF900895E82FF0E0ED5B6F
+:10092000FE4F8081089508950F931F93CF93DF9317
+:10093000C3E4D1E010E00C2F025F899190E00E94A7
+:100940004B1B180F0C13F9CF812FDF91CF911F9103
+:100950000F9108950C947A0556985E9825982D98D5
+:1009600026982E9827982F988FEF90E090938900E3
+:100970008093880090938B0080938A0090938D00E1
+:1009800080938C00259A2D9A2FEF80E792E02150DA
+:1009900080409040E1F700C00000269A2E9A2FEF89
+:1009A00080E792E0215080409040E1F700C00000D5
+:1009B000279A2F9A2FEF80E792E0215080409040B5
+:1009C000E1F700C0000025982D982FEF80E792E016
+:1009D000215080409040E1F700C0000026982E98FA
+:1009E0002FEF80E792E0215080409040E1F700C077
+:1009F000000027982F9856985E9825982D9826984D
+:100A00002E9827982F98089589EA8093800089E08E
+:100A10008093810024982C983F988AB18F748AB96A
+:100A20006E98479A8BB1806B8BB9769A0E94AC0412
+:100A30000C94790580E2809301018091510181112C
+:100A40000EC00E94140381E0809351012FEF83EDCB
+:100A500090E3215080409040E1F700C0000080E426
+:100A60000E941A038093010181112EC00E94440349
+:100A700080930101811128C00E94440380930101E9
+:100A8000811122C08FE30E944403809301018111F0
+:100A90001BC00E943C0380E40E941A038093010162
+:100AA000811112C08CE00E944403809301018111E6
+:100AB0000BC00E94440380930101811105C08FE3A4
+:100AC0000E944403809301010E943C038091010134
+:100AD000089561110BC0FC018281882321F085EE0D
+:100AE0000E945A1103C085EE0E94221280E090E01D
+:100AF000089508956091BD017091BE018091BF017C
+:100B00009091C0010E94571B56985E9825982D9889
+:100B100026982E9827982F98813019F0823021F04E
+:100B20000895259A2D9A0895269A2E9A089581E07F
+:100B3000089581E008950C94990508950F931F93EB
+:100B4000CF93DF938C01FC01C081D181CE010E9443
+:100B5000D019BE010E944706EC01B8010E949B0516
+:100B6000882309F48DC0F8018281882309F44AC0E2
+:100B700080915D0181111FC0C431F0E5DF0709F0EC
+:100B800051C00E949D0581E080935D010E94EF1B92
+:100B900090935C0180935B01109254011092560176
+:100BA00010925501109258011092570110925A015B
+:100BB0001092590165C080915B0190915C010E9487
+:100BC000FB1B883C910570F480915401E82FF0E004
+:100BD000EE0FFF1FEB5AFE4FD183C0838F5F8093D0
+:100BE00054014EC0C43880E5D80721F0C538D0453F
+:100BF00001F13AC0F8018281882341F0109252013C
+:100C000082E01EC0C438E0E5DE0759F5809152014C
+:100C1000811106C086E20E945A1186E20E942212C9
+:100C200082E01CC0C438F0E5DF0741F3C538D04589
+:100C3000D9F4F8018281882331F01092530180E2C7
+:100C40000E9471121DC080915301811106C087E27C
+:100C50000E945A1187E20E94221280E20E947812BA
+:100C60000FC0C538D04529F381E0809352018093AD
+:100C70005301C801DF91CF911F910F910C949705FB
+:100C800080E0DF91CF911F910F910895089596E034
+:100C9000799FF001112494E5899FE00DF11D112445
+:100CA000E60FF11DEE0FFF1FE25FFE4F859194915D
+:100CB0000895880F991FFC01E657F04085919491A3
+:100CC0000895880F991FFC01E65FFE4F859194916E
+:100CD00008950F931F93CF93DF93EC01811520E3C9
+:100CE000920750F5C11580E2D80708F0C3C0CB3B8E
+:100CF000D10590F4C83AD10508F06AC0C53AD105CB
+:100D000008F05BC0C430D10508F0D0C1219709F0CC
+:100D1000CAC101E010E00AC2CF3FD10511F008F0CE
+:100D2000C5C1C03FD10508F0A2C0CE01805E9109C7
+:100D3000089708F4BBC1B7C1C13090E5D90709F4E1
+:100D4000A2C020F5C0318FE4D80770F4C11590E43B
+:100D5000D90708F094C0C11521E3D20708F0A3C158
+:100D6000DD278E01106CE2C1C115D04509F09BC191
+:100D70000E94D7148FEF94E32CE0815090402040E4
+:100D8000E1F700C000000E944A1CD0C1C11597E5E0
+:100D9000D90758F4C03121E5D20708F01CC1C4318D
+:100DA00080E5D80708F475C07EC1CE019057811543
+:100DB000904108F078C1DF7073C1C53AD10509F4DC
+:100DC00077C1C63AD10509F076C102E810E4AEC198
+:100DD000C83AD10509F472C1C93AD10509F471C103
+:100DE000CA3AD10509F470C1CB3AD10509F46FC1F3
+:100DF000CC3AD10509F46EC1CD3AD10509F46DC1E3
+:100E0000C03BD10509F46CC1CE3AD10509F46BC1E0
+:100E1000CF3AD10509F46AC1C13BD10509F469C1D2
+:100E2000C23BD10509F468C1C33BD10509F467C1D0
+:100E3000C43BD10509F466C1C53BD10509F465C1C0
+:100E4000C63BD10509F464C1C73BD10509F463C1B0
+:100E5000C83BD10509F462C1C93BD10509F461C1A0
+:100E6000CA3BD10509F460C100E014E45FC18E0102
+:100E700010655CC1CE019F700E94610658C1DF7091
+:100E80008E01106A53C18091DA0181608093DA018A
+:100E90004DC10E94EF1D811102C00E94D51D0E940C
+:100EA0000C1E90E09093FB018093FA01C23080E524
+:100EB000D80721F48091FA01816086C0C43090E5A2
+:100EC000D90721F48091FA0182607EC0C63020E506
+:100ED000D20721F48091FA01846076C0C83080E5A1
+:100EE000D80719F48091FA0127C0CA3090E5D907D4
+:100EF00021F48091FA01806167C0CC3020E5D207EF
+:100F000021F48091FA0180625FC0CE3080E5D8077D
+:100F100021F48091FA01806457C0C03190E5D9076F
+:100F200021F48091FA0180684FC0C23120E5D207D8
+:100F300029F48091FA018460886046C0C33080E55E
+:100F4000D80721F48091FA018E7F3EC0C53090E52C
+:100F5000D90721F48091FA018D7F36C0C73020E592
+:100F6000D20721F48091FA018B7F2EC0C93080E531
+:100F7000D80719F48091FA0126C0CB3090E5D90743
+:100F800021F48091FA018F7E1FC0CD3020E5D20779
+:100F900021F48091FA018F7D17C0CF3080E5D8070A
+:100FA00021F48091FA018F7B0FC0C13190E5D90700
+:100FB00021F48091FA018F7707C0C331D04531F415
+:100FC0008091FA018B7F877F8093FA018091FA01EB
+:100FD0000E94101EABC08D2F99278F7099278130EA
+:100FE0009105D9F49E012370332702C0880F991F01
+:100FF0002A95E2F79C688E0144E0000F111F4A9584
+:10100000E1F700271370802B912B53E0CC0FDD1FED
+:101010005A95E1F7C076DD272FC08230910531F473
+:10102000DC2FCC278E01016F106A80C083309105C0
+:1010300069F4CE018370992701E010E002C0000F2F
+:10104000111F8A95E2F7C8019C680FC08430910592
+:10105000B9F4CE018370992701E010E002C0000FBF
+:10106000111F8A95E2F7C8019A6823E0CC0FDD1FB3
+:101070002A95E1F7C07ED7708C010C2B1D2B56C032
+:101080008530910531F4DC2FCC278E01046F106A76
+:101090004DC0069709F04AC0CF71DD27DC2FCC2761
+:1010A0008E01106243C000E010E040C08E013EC0DF
+:1010B00001E810E43BC003E810E438C002EE14E499
+:1010C00035C009EE14E432C00AEE14E42FC005EB7B
+:1010D00014E42CC006EB14E429C007EB14E426C08A
+:1010E0000CEC14E423C00DEC14E420C003E815E478
+:1010F0001DC00AE815E41AC002E915E417C004E9A6
+:1011000015E414C001E216E411C003E216E40EC0B7
+:1011100004E216E40BC005E216E408C006E216E499
+:1011200005C007E216E402C00AE216E4C801DF9136
+:10113000CF911F910F91089596E0799FF0011124AE
+:1011400094E5899FE00DF11D1124E60FF11DEE0FCE
+:10115000FF1FE25FFE4F85919491803E9105E0F480
+:10116000803C910558F58133910509F46FC048F42E
+:101170008932910509F463C08A32910509F46DC082
+:1011800072C089339105E9F082389105D1F0853339
+:10119000910509F44DC067C0833E910581F138F493
+:1011A000803E9105B9F0823E9105D9F05CC0863E43
+:1011B000910561F1873E9105A1F155C00E94590644
+:1011C00008952091FA0120FD02C021FF4CC080EE5D
+:1011D00090E049C08091FA0180FFF9CF89E390E067
+:1011E00042C08091FA0182FF0EC08091FA0184FF13
+:1011F00003C080E090E037C083EE90E034C080917F
+:10120000FA0182FFF2CF82EE90E02DC08091FA01C8
+:1012100083FF0BC08091FA0184FDEBCF87EE90E055
+:1012200022C08091FA0183FFF5CF86EE90E01BC0CB
+:101230008091FA0185FF07C089E290E014C0809197
+:10124000FA0185FFF9CF85E390E00DC08091FA01A6
+:1012500086FF07C08AE290E006C08091FA0186FF0F
+:10126000F9CF81E390E00E946906089508950C94F7
+:10127000360980916E010895CF93DF9300D01F92BD
+:10128000CDB7DEB79C018091F101843019F593E070
+:1012900099833B832A839093E9008FEF9091E80034
+:1012A000815095FD06C095ED9A95F1F700008111EA
+:1012B000F5CF8091E80085FF0DC040E050E063E08D
+:1012C00070E0CE0101960E94A60B8091E8008E7717
+:1012D0008093E8000F900F900F90DF91CF910895C9
+:1012E000CF93DF9300D01F92CDB7DEB72091F101ED
+:1012F000243021F522E029839B838A8383E0809335
+:10130000E9008FEF9091E800815095FD06C095EDC2
+:101310009A95F1F700008111F5CF8091E80085FFE3
+:101320000DC040E050E063E070E0CE0101960E9405
+:10133000A60B8091E8008E778093E8000F900F90C5
+:101340000F90DF91CF9108952091F1012430F1F4B5
+:1013500022E02093E9002FEF3091E800215035FD85
+:1013600006C035ED3A95F1F700002111F5CF209137
+:10137000E80025FF0BC040E050E065E070E00E940F
+:10138000A60B8091E8008E778093E8000895CF93B4
+:10139000DF93EC019091F101943009F046C0809107
+:1013A0000C018823D9F080910D018823B9F0909326
+:1013B000E9008FEF9091E800815095FD06C095E11E
+:1013C0009A95F1F700008111F5CF8091E80085FF33
+:1013D0002CC040E050E060E170E017C081E08093F5
+:1013E000E9008FEF9091E800815095FD06C095EDE2
+:1013F0009A95F1F700008111F5CF8091E80085FF03
+:1014000014C040E050E068E070E0CE010E94A60BFE
+:101410008091E8008E778093E80080E1FE01AEE5E0
+:10142000B1E001900D928A95E1F7DF91CF91089597
+:101430008091F001811109C00E943B0D0E94980D1E
+:101440008091E20084608093E20008951092F001A0
+:10145000089508950C947F220E94E01B0E9485222B
+:101460000E943E100C94370942E061EC81E00E943A
+:10147000B50C42E061EC82E00E94B50C42E061EC08
+:1014800083E00E94B50C42E161EC84E00C94B50C61
+:101490008091F301833009F455C030F4813071F04C
+:1014A000823009F48EC008958A3009F47AC08B30F6
+:1014B00009F460C0893009F09CC020C08091F2011D
+:1014C000813A09F096C08091E800877F8093E80018
+:1014D0008091F6019091F701892B21F460E18EE56E
+:1014E00091E003C060E080E090E070E00E94F10BCA
+:1014F0008091E8008B778093E80008958091F20155
+:10150000813209F076C08091F6019091F701009741
+:1015100019F0039709F06DC08091E800877F8093F0
+:10152000E8008091E80082FD05C08091F101811101
+:10153000F8CF5FC08091F10080936E018091E80048
+:101540008B7753C08091F201813A09F052C08091AB
+:10155000F6019091F701892B09F04BC08091E800CA
+:10156000877F8093E8008091E80080FFFCCF809126
+:101570000C0136C08091F2018132D9F58091F601DB
+:101580009091F701892BA9F58091E800877F8093DE
+:10159000E8000E94EA0C8091F40180930C010C9405
+:1015A000D7148091F201813221F58091E800877F84
+:1015B0008093E8000E94EA0C8091F50180936F010E
+:1015C00008958091F201813AA1F48091E800877F2B
+:1015D0008093E8008091E80080FFFCCF80916F014C
+:1015E0008093F1008091E8008E778093E8000C945E
+:1015F000EA0C089584B7877F84BF88E10FB6F8941A
+:1016000080936000109260000FBE90E080E80FB6FB
+:10161000F89480936100909361000FBE0E948D103A
+:101620000E943B0D0E94980D8091E200846080939F
+:10163000E20078940E941E100E948F1082E091E0D8
+:101640000E9439100E946D228091F101853069F469
+:101650000E94A71B8091EF018823B1F30E94D21B47
+:10166000882391F30E94900BEFCF0E949510ECCF4E
+:10167000292F332723303105C9F064F42130310597
+:1016800081F02230310509F043C08DE690E022EE72
+:1016900033E042C021323105F1F02232310541F10F
+:1016A00037C082E190E02FE434E036C099278130E2
+:1016B000910541F08230910541F0892B49F5EEED1D
+:1016C000F3E005C0E6ECF3E002C0EEEAF3E084915B
+:1016D00090E09F0121C06430D8F4E62FF0E0EE0FD7
+:1016E000FF1FEE5DFE4F2081318189E090E014C044
+:1016F000643070F470E0FB01EE0FFF1FE65EFE4FFA
+:1017000020813181FB01EA5EFE4F808190E004C0C0
+:1017100080E090E020E030E0FA01318320830895FA
+:1017200080E189BD82E189BD09B400FEFDCF8091D1
+:10173000D8008F7D8093D8008091E00082608093F4
+:10174000E0008091E00081FDFCCF0895CF92DF9210
+:10175000EF92FF920F931F93CF93DF93EC018B01D6
+:101760006A010E94090D811133C0C114D10439F0FE
+:10177000F60180819181081B190BC80FD91FE12C3C
+:10178000F12C0115110519F18091E80085FD16C0B5
+:101790008091E8008E778093E800C114D10449F06D
+:1017A000F60180819181E80EF91EF182E08285E0E8
+:1017B0000FC00E94090D882321F30AC089918093EC
+:1017C000F10001501109FFEFEF1AFF0ADACF80E0B4
+:1017D000DF91CF911F910F91FF90EF90DF90CF900D
+:1017E00008952091F8013091F9012617370748F044
+:1017F0006115710539F42091E8002E772093E800F7
+:1018000001C0B90140E061157105A9F12091F10114
+:10181000222309F443C0253009F442C02091E80096
+:1018200023FD40C02091E80022FD32C02091E80055
+:1018300020FFE9CF4091F3002091F20030E0342BFB
+:10184000FC01CF016115710559F02830310540F4D4
+:1018500081918093F100615071092F5F3F4FF1CF6B
+:1018600041E02830310509F040E02091E8002E7772
+:101870002093E800C8CF4111C9CF0AC08091F1017F
+:10188000882361F0853061F08091E80083FD0AC013
+:101890008091E80082FFF2CF80E0089582E0089511
+:1018A00083E0089581E008952091F8013091F901D5
+:1018B0002617370748F06115710539F42091E800C3
+:1018C0002E772093E80001C0B901FC0120E06115EA
+:1018D000710591F18091F101882309F440C08530B0
+:1018E00009F43FC08091E80083FD3DC08091E8008D
+:1018F00082FD2FC08091E80080FFE9CF2091F300A6
+:101900008091F20090E0922B6115710559F08830BA
+:10191000910540F424912093F100319661507109B2
+:101920000196F2CF21E0089709F020E08091E800CD
+:101930008E778093E800CBCF2111CCCF0AC0809165
+:10194000F101882361F0853061F08091E80083FD2A
+:101950000AC08091E80082FFF2CF80E0089582E023
+:10196000089583E0089581E00895982F973058F501
+:101970009093E900981739F07091EC002091ED00F8
+:101980005091F00003C0242F762F50E021FF19C0A2
+:101990003091EB003E7F3093EB003091ED003D7FC6
+:1019A0003093ED003091EB0031603093EB00709399
+:1019B000EC002093ED005093F0002091EE0027FF03
+:1019C00007C09F5FD3CF8F708093E90081E00895B7
+:1019D00080E008958091F20187FF11C08091E800B6
+:1019E00082FD05C08091F1018111F8CF11C0809175
+:1019F000E8008B770BC08091F101882349F080913A
+:101A0000E80080FFF8CF8091E8008E778093E800AF
+:101A100008952091E4003091E50095E64091EC00B6
+:101A2000842F817040FF22C08091E80080FD1CC09F
+:101A30008091F101882391F0853091F08091EB0045
+:101A400085FD10C04091E4005091E5004217530716
+:101A500029F39A01915011F784E0089582E00895E6
+:101A600083E0089581E0089580E008954091E800C2
+:101A700042FFDECF08950E94A90D0E94B10DE0EE55
+:101A8000F0E0808181608083E8EDF0E080818F77F5
+:101A9000808319BCA7EDB0E08C918E7F8C93808100
+:101AA0008F7E80831092F00108950F931F93CF9340
+:101AB000DF930E94A90D0E94B10DC8EDD0E088818E
+:101AC0008F77888388818068888388818F7D8883E9
+:101AD00019BC1092F1011092ED011092EF011092D9
+:101AE000EE0100EE10E0F80180818B7F8083888119
+:101AF0008160888342E060E080E00E94B50CE1EE06
+:101B0000F0E080818E7F8083E2EEF0E08081816072
+:101B10008083808188608083F80180818E7F8083CC
+:101B2000888180618883DF91CF911F910F91089503
+:101B3000E8EDF0E080818F7E8083E7EDF0E080814A
+:101B40008160808384E082BF81E08093F0010C9407
+:101B5000550DE8EDF0E080818E7F80831092E200E9
+:101B600008951092DA001092E10008951F920F92EA
+:101B70000FB60F9211242F933F934F935F936F9360
+:101B80007F938F939F93AF93BF93EF93FF93809136
+:101B9000E10082FF0BC08091E20082FF07C08091CC
+:101BA000E1008B7F8093E1000E941D108091DA009C
+:101BB00080FF1FC08091D80080FF1BC08091DA0099
+:101BC0008E7F8093DA008091D90080FF0DC080E184
+:101BD00089BD82E189BD09B400FEFDCF81E080931B
+:101BE000F1010E94180A05C019BC1092F1010E946F
+:101BF000260A8091E10080FF19C08091E20080FFF9
+:101C000015C08091E2008E7F8093E2008091E20017
+:101C100080618093E2008091D80080628093D80038
+:101C200019BC85E08093F1010E942A0A8091E100AD
+:101C300084FF30C08091E20084FF2CC080E189BD28
+:101C400082E189BD09B400FEFDCF8091D8008F7D6F
+:101C50008093D8008091E1008F7E8093E100809195
+:101C6000E2008F7E8093E2008091E20081608093A9
+:101C7000E2008091ED01882311F084E007C080919B
+:101C8000E30087FD02C081E001C083E08093F101A1
+:101C90000E942C0A8091E10083FF29C08091E2001C
+:101CA00083FF25C08091E100877F8093E10082E07F
+:101CB0008093F1011092ED018091E1008E7F80937D
+:101CC000E1008091E2008E7F8093E2008091E2004B
+:101CD00080618093E20042E060E080E00E94B50C09
+:101CE0008091F00088608093F0000E94290AFF91A3
+:101CF000EF91BF91AF919F918F917F916F915F9184
+:101D00004F913F912F910F900FBE0F901F901895FC
+:101D10001F920F920FB60F9211242F933F934F9360
+:101D20005F936F937F938F939F93AF93BF93CF9363
+:101D3000DF93EF93FF93C091E900CF708091EC00A7
+:101D4000D82FD17080FDD0E81092E9008091F0008A
+:101D5000877F8093F00078940E94CC0E1092E90067
+:101D60008091F00088608093F000CD2BCF70C093FD
+:101D7000E900FF91EF91DF91CF91BF91AF919F91DA
+:101D80008F917F916F915F914F913F912F910F9024
+:101D90000FBE0F901F9018951F93CF93DF93CDB771
+:101DA000DEB7AA970FB6F894DEBF0FBECDBFE2EF45
+:101DB000F1E088E08E0F9091F10091938E13FBCFAC
+:101DC0000E94480A8091E80083FF1FC18091F201C0
+:101DD0009091F301492F50E04A30510508F015C1A8
+:101DE000FA01EA5AFF4F0C940724803881F08238B8
+:101DF00009F00BC18091F6018F708093E90080910A
+:101E0000EB0085FB882780F91092E90006C08091DD
+:101E1000EE019091EF01911182609091E800977F1F
+:101E20009093E8008093F1001092F100C8C0282F31
+:101E30002D7F09F0EAC0882319F0823061F0E5C0F7
+:101E40008091F401813009F0E0C0933009F080E026
+:101E50008093EF012BC08091F401811127C0809104
+:101E6000F6018F7009F4D1C08093E9002091EB0056
+:101E700020FF1CC0933021F48091EB00806214C0DD
+:101E80009091EB0090619093EB0021E030E0A9018C
+:101E900002C0440F551F8A95E2F74093EA00109262
+:101EA000EA008091EB0088608093EB001092E900DB
+:101EB0008091E800877F86C08111A7C01091F4014E
+:101EC0001F778091E3008078812B8093E3008091DD
+:101ED000E800877F8093E8000E94EA0C8091E80088
+:101EE00080FFFCCF8091E30080688093E3001111B4
+:101EF00002C082E001C083E08093F10186C0805877
+:101F0000823008F082C08091F4019091F5018C3DFF
+:101F100053E0950779F583E08A838AE289834FB796
+:101F2000F894DE01139620E03EE051E2E32FF0E06A
+:101F300050935700E49120FF03C0E295EF703F5F9C
+:101F4000EF708E2F90E0EA3010F0C79601C0C09677
+:101F50008D939D932F5F243149F74FBF8091E80007
+:101F6000877F8093E8006AE270E0CE0101960E94CC
+:101F7000F10B14C0AE014F5F5F4F6091F6010E94FC
+:101F8000380BBC01009709F440C09091E800977F9E
+:101F90009093E80089819A810E94540C8091E80016
+:101FA0008B778093E80031C0803879F58091E80024
+:101FB000877F8093E8008091ED018093F10080910C
+:101FC000E8008E778093E8000E94EA0C1EC0811121
+:101FD0001CC09091F4019230C0F48091E800877F9A
+:101FE0008093E8009093ED010E94EA0C8091ED014E
+:101FF000811106C08091E30087FD02C081E001C02D
+:1020000084E08093F1010E94340A8091E80083FF0C
+:102010000AC08091E800877F8093E8008091EB0000
+:1020200080628093EB00AA960FB6F894DEBF0FBED5
+:10203000CDBFDF91CF911F9108950895CF938091E7
+:10204000F1018823A1F0C091E900CF709091EC00DC
+:10205000892F817090FD80E8C82B1092E900809153
+:10206000E80083FD0E94CC0ECF70C093E900CF91B1
+:10207000089590937501809374010895E09174011F
+:10208000F0917501309721F00190F081E02D0994D5
+:1020900080E00895E0917401F0917501309721F08E
+:1020A0000280F381E02D09940895E0917401F0918C
+:1020B0007501309721F00480F581E02D0994089591
+:1020C00020917201309173018217930771F0909300
+:1020D000730180937201E0917401F0917501309762
+:1020E00021F00680F781E02D099408952091700178
+:1020F000309171018217930771F090937101809371
+:102100007001E0917401F0917501309721F0008425
+:10211000F185E02D0994089508950C948C100E9487
+:10212000E61B0E9487030C94A81C9F92AF92BF925B
+:10213000CF92DF92EF92FF920F931F93CF93DF9393
+:1021400000D000D000D0CDB7DEB70E949F030DE0D5
+:1021500010E0AA24A394B12C902E802F0E948D040D
+:10216000980129583E4F6901F901F080F826A1F441
+:102170000150110988F78FEF89838A831B820E949F
+:10218000EF1B8160782F9D838C8349815A816B81FD
+:102190008D810E942C112FC09091DA0191FF04C013
+:1021A0008E830E9493048E8125E030E0A501022EEB
+:1021B00001C0440F0A94EAF7E42E4F21C1F02983AD
+:1021C0009A828E2191E009F490E09B830E94EF1B9C
+:1021D0008160782F9D838C8349815A816B818D81A9
+:1021E0000E942C11F6018081E826E08204C0215073
+:1021F0003109E0F6BDCF0E948F1F109176010E9439
+:102200003E101817B9F00E943E1080937601269672
+:102210000FB6F894DEBF0FBECDBFDF91CF911F91F7
+:102220000F91FF90EF90DF90CF90BF90AF909F9075
+:102230000C94370926960FB6F894DEBF0FBECDBFBB
+:10224000DF91CF911F910F91FF90EF90DF90CF9092
+:10225000BF90AF909F900895CF93DF93CDB7DEB737
+:102260002B970FB6F894DEBF0FBECDBF4F835887B4
+:1022700069877A878B87DE01119686E0FD011192CE
+:102280008A95E9F785E0FE01379601900D928A95CF
+:10229000E1F749815A816B817C818D819E810E9409
+:1022A00075172B960FB6F894DEBF0FBECDBFDF912A
+:1022B000CF910895CF93882309F4C2C0C82F8238E4
+:1022C00059F40E943E1081FDBBC089E30E944F1A61
+:1022D0000E941C1B89E30CC0833879F40E943E10D5
+:1022E00080FDAEC083E50E944F1A0E941C1B83E54F
+:1022F0000E94911ACF910C941C1B843859F40E94AF
+:102300003E1082FD9DC087E40E944F1A0E941C1B54
+:1023100087E4EECF8CEF8C0F813A48F48C2F0E942B
+:10232000D22181118DC08C2F0E944F1AE3CF80E201
+:102330008C0F883048F4C77081E001C0880FCA95BF
+:10234000EAF70E94D51AD6CF8BE58C0F833078F44C
+:10235000C53A29F0C63A31F083E890E005C081E83B
+:1023600090E002C082E890E0CF910C94601088E584
+:102370008C0F833108F064C0C83A39F1C93A41F191
+:10238000CA3A49F1CB3A51F1CC3A59F1CD3A61F11F
+:10239000C03B69F1CE3A71F1CF3A79F1C13B81F19D
+:1023A000C23B89F1C33B91F1C43B99F1C53BA1F11B
+:1023B000C63BA9F1C73BB1F1C83BB9F1C93BC1F17B
+:1023C000CA3BC9F180E090E038C082EE90E035C0B1
+:1023D00089EE90E032C08AEE90E02FC085EB90E06D
+:1023E0002CC086EB90E029C087EB90E026C08CECF7
+:1023F00090E023C08DEC90E020C083E891E01DC008
+:102400008AE891E01AC082E991E017C084E991E07E
+:1024100014C081E292E011C083E292E00EC084E237
+:1024200092E00BC085E292E008C086E292E005C02F
+:1024300087E292E002C08AE292E0CF910C9476109B
+:10244000CF910895882309F44BC0823859F40E9433
+:102450003E1081FF45C089E30E944F1A0E941C1B59
+:1024600089E30CC0833871F40E943E1080FF38C0AD
+:1024700083E50E944F1A0E941C1B83E50E94911A5B
+:102480000C941C1B843859F40E943E1082FF28C013
+:1024900087E40E944F1A0E941C1B87E4EFCF9CEF39
+:1024A000980F913A58F390E2980F983050F4877053
+:1024B00091E001C0990F8A95EAF7892F0E94DB1AF3
+:1024C000DFCF9BE5980F933020F480E090E00C94F0
+:1024D0006010885A833120F480E090E00C947610EC
+:1024E0000895882321F00E94D51A0C941C1B08958E
+:1024F000882321F00E94DB1A0C941C1B08957F9204
+:102500008F929F92AF92BF92CF92DF92EF92FF9203
+:102510000F931F93CF93DF931F92CDB7DEB77C014C
+:10252000C62E772EFC01058102950F7012811111C4
+:102530000E94F21A0E94481A882379F0112369F048
+:1025400080E28C0D883048F082E00E94311A0E94AF
+:10255000481A91E0D82ED92601C0D12CE72DE2955A
+:10256000EF70F0E0E05AFF4F0C940724872D807F36
+:10257000072D0F70882311F00295007F112389F039
+:10258000002309F490C180E28C0D883020F4802F64
+:102590000E94D51A03C0802F0E94E51A0E941C1BBE
+:1025A00082C18C2D0E942212002309F495C180E281
+:1025B0008C0D883020F4802F0E94DB1A03C0802FFE
+:1025C0000E94EB1A0E941C1B87C1972D907F872DBC
+:1025D0008F70903211F08295807FCC2021F0F1E055
+:1025E000CF16B1F01EC0112349F0002309F414C125
+:1025F000013009F011C10E94051B6EC1002319F0C2
+:10260000013009F469C189830E94081B89810AC1CC
+:10261000112321F0023008F05FC1FEC001115CC13E
+:1026200001C1112321F0002309F4F6C03CC10023AD
+:1026300009F4F8C03EC1872D86958695837090E099
+:10264000009719F0019761F047C1112321F08C2DFB
+:10265000972D937002C080E090E00E9460103CC112
+:10266000112321F08C2D972D937002C080E090E013
+:102670000E94761031C18C2D112319F00E94971EF3
+:1026800002C00E94FF1E0E94841F26C1872D8370F6
+:1026900009F052C0111120C18C2D8295869587704A
+:1026A000880F880F9C2D9F70892E912CA12CB12C06
+:1026B000082E04C0880C991CAA1CBB1C0A94D2F7D3
+:1026C000C4FE14C00FE010E020E030E0B901A80122
+:1026D00004C0440F551F661F771F8A95D2F7CB01A0
+:1026E000BA01609570958095909503C060E070E0A8
+:1026F000CB01272D26952695237030E02230310519
+:1027000069F02330310589F0682979298A299B29C4
+:102710002130310571F00E94BD18DEC06829792989
+:102720008A299B290E94D918D7C00E94BD18C501CB
+:10273000B4010E94A118D0C0112319F0872D817017
+:1027400001C08695882309F4C7C08C2D8295869593
+:102750008770880F880F9C2D9F70892E912CA12C3B
+:10276000B12C082E04C0880C991CAA1CBB1C0A940E
+:10277000D2F7C4FE14C00FE010E020E030E0B90151
+:10278000A80104C0440F551F661F771F8A95D2F712
+:10279000CB01BA01609570958095909503C060E07B
+:1027A00070E0CB01272D269526952370422F50E00F
+:1027B0004230510569F04330510589F06829792983
+:1027C0008A299B294130510571F00E94971984C0D4
+:1027D000682979298A299B290E94B3197DC00E9402
+:1027E0009719C501B4010E947B1976C08C2D90E029
+:1027F000FC01E05EF109E531F10508F050C0E05957
+:10280000FF4F0C9407240C2D0F70872D8F7111230F
+:1028100031F00E941419802F0E9471125DC00E9435
+:102820003519802F0E94781257C0112339F00111F9
+:1028300053C0872D8F710E945A194EC0023008F084
+:102840004BC0F7CF112339F0872D8F710E941419D7
+:1028500043C01123C9F3872D8F710E9435193CC0E5
+:10286000112329F0872D8F710E94FF1835C00E9417
+:10287000F51832C0112351F0172D1F71812F0E94BE
+:10288000141963E0812F0E94281A26C081E00E945B
+:10289000311A023008F182E00E94311A1DC0112362
+:1028A00031F0002389F28C2D0E945A1115C00023AB
+:1028B00091F28C2D0E9422120FC0472D4F706C2D6B
+:1028C000C7010E9469050E94191806C0472D4F7064
+:1028D0006C2DC7010E944606DD20F9F00E94241AE3
+:1028E00080FD1BC0F70112820E941E1A0E9414195B
+:1028F000C7010E949C140E941E1A0F90DF91CF9175
+:102900001F910F91FF90EF90DF90CF90BF90AF900D
+:102910009F908F907F900C9435190F90DF91CF91FD
+:102920001F910F91FF90EF90DF90CF90BF90AF90ED
+:102930009F908F907F9008950F931F93CF93DF9375
+:10294000EC01888199812B813C81232BB9F09F3F39
+:1029500011F48F3F99F0CE010E949E05882371F0FB
+:10296000688179818A810E941A1A8C010E94CF198C
+:102970000E949618B801CE010E947F12DF91CF917C
+:102980001F910F9108950E94F21A0E94021B0E944B
+:10299000C71A0E941C1B0E9435200E94841F80E0E1
+:1029A00090E00E94601080E090E00C9476100E940D
+:1029B000E21A0C94C3140E940F1A292F22952F702B
+:1029C00030E02C3031054CF42A3031056CF42250C3
+:1029D000310922303105A8F407C02C30310569F0E7
+:1029E0002F30310551F00DC0803F69F018F4803E62
+:1029F00040F409C0843F29F406C093FB882780F97E
+:102A0000089580E0089581E00895CF93DF9300D08A
+:102A100000D01F92CDB7DEB70F900F900F900F90A0
+:102A20000F90DF91CF910895CF93DF9300D000D026
+:102A300000D0CDB7DEB726960FB6F894DEBF0FBE36
+:102A4000CDBFDF91CF9108951F93CF93DF93C091B6
+:102A5000850116E080918601C81799F0D0E01C9F8F
+:102A6000F0011D9FF00D1124E957FE4F4081518167
+:102A700062817381848195810E9414152196C770AB
+:102A8000E9CFDF91CF911F9108954091B701509107
+:102A9000B8016091B9017091BA018091BB01909128
+:102AA000BC010C9414158091BC0182958F7009F0C3
+:102AB00054C08091B901882309F44FC080918501E9
+:102AC000A09186016091B7017091B8014091BA015F
+:102AD0005091BB01B6E08A1709F43FC090E0411560
+:102AE0005105C1F17F3F11F46F3FA1F1B89FF00193
+:102AF000B99FF00D1124E957FE4F218172132AC0AE
+:102B00002081621327C02281211124C023813481B6
+:102B10002417350710F421503109241B350B283CAC
+:102B20003105C0F42091BC012F7020612093BC01BD
+:102B300026E0289FF001299FF00D1124E457FE4F55
+:102B400080818F708061808387EB91E00E949C146C
+:102B50000C94241501968770BECF0895CF92DF9212
+:102B6000EF92FF920F931F93CF93DF93CDB7DEB712
+:102B700062970FB6F894DEBF0FBECDBF8C0185E023
+:102B8000F801DE011D9601900D928A95E1F7D801BA
+:102B90004C9111965C91119712966C911297139625
+:102BA000CD90DC9014973091B7017091B80180916D
+:102BB000BA019091BB01009709F46BC17F3F19F4F2
+:102BC0003F3F09F466C1E090B901EE2009F4C0C0AE
+:102BD0002091BC01C816D90628F0F601E81BF90BB4
+:102BE000CF0104C0809590958C0D9D1DFF24F3941A
+:102BF000883C910578F0F12C207F09F0C6C07C2D2F
+:102C0000D98AC88A89890E94051587EB91E00E94BC
+:102C10009C14B1C0822F807F09F046C0751314C088
+:102C2000341312C0611110C02F7020612093BC01B9
+:102C30000E94451587EB91E00E949C148091BC0195
+:102C4000D80115968C932EC0CD2819F15F3F11F451
+:102C50004F3FF9F0F62E61111CC080918501209143
+:102C6000860136E0821709F45AC090E0389FF001DF
+:102C7000399FF00D1124E957FE4F7181571306C09B
+:102C80007081471303C07281711103C00196877070
+:102C9000E9CFF62E662309F418C18091BC0181604A
+:102CA0008093BC01F12C11C1751308C0341306C008
+:102CB000611104C08091BC01D801C3C04D875E87FB
+:102CC0008D859E856A8B0E94DB146A898823E1F1D9
+:102CD0006623D1F12091BC01822F82958F7090E004
+:102CE000029774F08091B7019091B80198878F8313
+:102CF0001986DB86CA862C87CE0107960E949C1413
+:102D000086E0F801A7EBB1E001900D928A95E1F71A
+:102D10000E9453150E944515FF24F394D6C04D8799
+:102D20005E878D859E850E940F1A292F22952F7010
+:102D300030E0223031050CF0BCC09F7009F0B6C005
+:102D4000805E883008F4C1C0C8010E949C14E4CFA2
+:102D5000C816D90608F453C0F601E81BF90BCF01D9
+:102D6000883C910508F450C0F12C7C2DD98AC88A82
+:102D700089890E940515E7EBF1E086E0DF011D92ED
+:102D80008A95E9F70E944515A0C0751314C0341345
+:102D900012C0611110C08091BC01F8018583C80187
+:102DA0000E949C1486E0E7EBF1E0DF011D928A951A
+:102DB000E9F7FE2C8AC04D875E878D859E856A8BDC
+:102DC0000E94DB146A89882309F4BECF662309F4C4
+:102DD000BBCF2091BC01822F82958F7090E002972B
+:102DE0000CF48ECF8091B7019091B8019A838983BA
+:102DF0001B82DD82CC822E83CE0101967FCF80950F
+:102E000090958C0D9D1DACCFF62E662309F49CCFBA
+:102E100075132EC034132CC02091BC0120FD1FC09F
+:102E2000822F82958F70D9F0D80115962C93159723
+:102E30008F3049F08F5F982F9295907F822F8F70FF
+:102E4000892B15968C93C8010E949C1486E0F8018A
+:102E5000A7EBB1E001900D928A95E1F793CF86E060
+:102E6000F801A7EBB1E001900D928A95E1F72DC032
+:102E70004D875E878D859E850E94DB14811140CF32
+:102E80008091BC0181608093BC01C8010E949C14A8
+:102E90001CC0662309F458CF4D875E878D859E85BB
+:102EA0000E94DB14882309F44FCF2ACF811148CF29
+:102EB0000CC0243031050CF047CF9F7009F440CF8F
+:102EC000F8019581907F09F03BCF8F2D62960FB668
+:102ED000F894DEBF0FBECDBFDF91CF911F910F9150
+:102EE000FF90EF90DF90CF9008951F93CF93DF93E3
+:102EF000CDB7DEB72C970FB6F894DEBF0FBECDBFAF
+:102F00004F83588769877A878B879C87CE0107967E
+:102F10000E94AE15882369F08F8198852A853B85AC
+:102F2000232BF1F19F3F09F063C08F3F09F060C090
+:102F300037C086E0FE013796DE01119601900D92B2
+:102F40008A95E1F76F817885EA85FB85309741F1B5
+:102F50007F3F11F46F3F21F12091860130E0C901DC
+:102F60000196877099274091850150E08417950755
+:102F700009F447C069837A83FD83EC8396E0929FCE
+:102F8000D001939FB00D1124A957BE4FFE01319679
+:102F900001900D929A95E1F7809386010E94241585
+:102FA00016E080918501909186018917C1F1189FE3
+:102FB000C001112489579E4F0E94AE15882379F1D4
+:102FC000E09185011E9FF0011124E957FE4F4081D9
+:102FD000518162817381848195810E941415809151
+:102FE000850190E001968770992780938501D9CF5C
+:102FF0004F81588569857A858B859C850E9414153B
+:10300000CFCF0E94D7141092860110928501E7EB72
+:10301000F1E086E0DF011D928A95E9F7C1CF2C9699
+:103020000FB6F894DEBF0FBECDBFDF91CF911F91D9
+:103030000895EF92FF920F931F93CF93DF938C012C
+:10304000009709F46CC0F12CEE24E394E80121967A
+:10305000F8018491843740F4843008F051C0813005
+:1030600081F0823019F15BC0853709F444C0A8F1C2
+:103070009CE7980F903708F052C08F770E94221279
+:1030800041C00E5F1F4FFE01C49180E28C0F88305B
+:1030900048F4C7708E2D01C0880FCA95EAF70E94C8
+:1030A000F51A14C08C2F0E945A112DC00E5F1F4FAD
+:1030B000FE01C49180E28C0F883058F4C7708E2DC9
+:1030C00001C0880FCA95EAF70E94FB1A0E941C1BD8
+:1030D0001AC08C2F0E94221216C00E5F1F4FFE01D5
+:1030E000C491CC2381F08FE99FE00197F1F700C0F4
+:1030F0000000C150F6CF0E5F1F4FFE01F49003C0D9
+:103100000E945A118E018F2D882309F49FCFEFE979
+:10311000FFE03197F1F700C000008150F5CFDF915B
+:10312000CF911F910F91FF90EF90089508956093B4
+:10313000C1017093C2018093C3019093C4010C94A8
+:10314000C3140F931F930091C1011091C2012091EC
+:10315000C3013091C401DC01CB01802B912BA22B48
+:10316000B32B8093C1019093C201A093C301B0938C
+:10317000C4011F910F910C94C3140F931F930091DE
+:10318000C1011091C2012091C3013091C401DC0141
+:10319000CB0180239123A223B3238093C101909379
+:1031A000C201A093C301B093C4011F910F910C946D
+:1031B000C3140F931F930091C1011091C20120917C
+:1031C000C3013091C401DC01CB0180279127A227E4
+:1031D000B3278093C1019093C201A093C301B09320
+:1031E000C4011F910F910C94C3141092BD01109251
+:1031F000BE011092BF011092C0010C94C31441E0B3
+:1032000050E060E070E004C0440F551F661F771F58
+:103210008A95D2F74093BD015093BE016093BF01E0
+:103220007093C0010C94C31441E050E060E070E082
+:1032300004C0440F551F661F771F8A95D2F78091EF
+:10324000BD019091BE01A091BF01B091C001482B7A
+:10325000592B6A2B7B2B4093BD015093BE01609389
+:10326000BF017093C0010C94C31441E050E060E0D2
+:1032700070E004C0440F551F661F771F8A95D2F770
+:1032800040955095609570958091BD019091BE01DB
+:10329000A091BF01B091C001482359236A237B2329
+:1032A0004093BD015093BE016093BF017093C00174
+:1032B0000C94C31441E050E060E070E004C0440F9F
+:1032C000551F661F771F8A95D2F78091BD01909197
+:1032D000BE01A091BF01B091C001482759276A27BC
+:1032E0007B274093BD015093BE016093BF01709353
+:1032F000C0010C94C3140F931F930091BD01109152
+:10330000BE012091BF013091C001DC01CB01802BB7
+:10331000912BA22BB32B8093BD019093BE01A09360
+:10332000BF01B093C0011F910F910C94C3140F9370
+:103330001F930091BD011091BE012091BF013091FA
+:10334000C001DC01CB0180239123A223B32380930E
+:10335000BD019093BE01A093BF01B093C0011F9126
+:103360000F910C94C3140F931F930091BD01109102
+:10337000BE012091BF013091C001DC01CB0180274B
+:103380009127A227B3278093BD019093BE01A093FC
+:10339000BF01B093C0011F910F910C94C314089505
+:1033A000CF92DF92EF92FF920F931F93CF93DF9311
+:1033B0008C01C090C101D090C201E090C301F09097
+:1033C000C4018091BD019091BE01A091BF01B09157
+:1033D000C001C82AD92AEA2AFB2ACFE1D0E0D701C6
+:1033E000C6010C2E04C0B695A795979587950A94AB
+:1033F000D2F780FF06C0B8018C2F0E949C0801976D
+:1034000021F4219760F780E001C08C2FDF91CF91EC
+:103410001F910F91FF90EF90DF90CF900895CF9381
+:10342000DF93EC010E94D019BE010E949C08DF913D
+:10343000CF910895CB010E940F1A08958091C50184
+:1034400085958595859508958091C5018770089526
+:1034500098E0899F90011124262B2093C5010C949C
+:1034600014192091C501809582238093C501982F5E
+:10347000977069F430E0482F552747FD5095241781
+:10348000350729F08595859585950C94351908950E
+:103490009091C501977081E009F480E008959091C2
+:1034A0000C01992321F090910D01911109C02091F7
+:1034B0000E0130910F01F90132969FEF40E01FC0DD
+:1034C000982F9695969596959F3050F5E0910E0120
+:1034D000F0910F01E90FF11D877021E030E0A901A3
+:1034E00002C0440F551F8A95E2F7CA019181892BCA
+:1034F000818308959F3F39F04F5F4E3041F05191E5
+:103500005813F8CF0DC05111F7CF942FF5CF9F3F2F
+:1035100039F0F901E90FF11D97FDFA9582830895BD
+:10352000089590910C01992321F090910D01911132
+:1035300009C020910E0130910F01F9013296205FF0
+:103540003F4F1FC0982F9695969596959F30F0F413
+:10355000E0910E01F0910F01E90FF11D877021E05C
+:1035600030E0A90102C0440F551F8A95E2F7CA0155
+:10357000809591818923818308953196E217F3071D
+:1035800029F090819813F9CF1082F7CF089581E048
+:1035900090E0E0910E01F0910F01E80FF91F108209
+:1035A000019680319105A9F708959091D901892B51
+:1035B0008093D901089580959091D90189238093B2
+:1035C000D90108951092D90108959091D801892BBD
+:1035D0008093D801089580959091D8018923809394
+:1035E000D80108951092D80108959091D701892BA0
+:1035F0008093D701089580959091D7018923809376
+:10360000D70108951092D70108958093C6010895B7
+:103610001092C601089580910E0190910F01FC0156
+:1036200031969C01205F3F4F80E0919191118F5F17
+:10363000E217F307D1F70895E0910E01F0910F0121
+:103640008091D9018083E0910E01F0910F0190816A
+:103650008091D801892B8083E0910E01F0910F01B8
+:1036600090818091D701892B80838091C601882326
+:1036700061F0E0910E01F0910F019081892B808320
+:103680000E940B1B81111092C60180910E01909136
+:103690000F010C944A1020E0009739F0AC01415022
+:1036A0005109842395232F5FF7CF822F0895CF925E
+:1036B000DF92EF92FF926C01EE24FF24C114D1043B
+:1036C000E104F10421F0C701B60120E101C020E0CE
+:1036D000C72ED82EE92EFF24C114D104E104F10431
+:1036E00019F0285FC701B6016B017C0154E0F69424
+:1036F000E794D794C7945A95D1F7C114D104E10443
+:10370000F10419F02C5FC701B6016B017C0142E0A6
+:10371000F694E794D794C7944A95D1F7C114D1048D
+:10372000E104F10419F02E5FC701B601DC01CB0101
+:10373000B695A79597958795892B8A2B8B2B09F0A2
+:103740002F5F822FFF90EF90DF90CF9008958091B0
+:10375000F101843021F11092DB0120E488E190E056
+:103760000FB6F894A895809360000FBE2093600078
+:1037700080E00E94370983B7817F846083BF83B76D
+:10378000816083BF7894889583B78E7F83BF88E1FB
+:103790000FB6F89480936000109260000FBE0895F9
+:1037A000089508950E94D01B0E949F030E94D11B80
+:1037B0000E94940491E0811101C090E0892F089546
+:1037C0000E94D7140E943E100C94370982E084BDF9
+:1037D00093E095BD9AEF97BD80936E0008952FB743
+:1037E000F8948091DC019091DD01A091DE01B0910F
+:1037F000DF012FBF0895CF92DF92EF92FF920F93D8
+:103800001F932FB7F8944091DC015091DD01609136
+:10381000DE017091DF012FBF6A017B01EE24FF24DE
+:103820008C0120E030E0C016D106E206F30610F469
+:10383000415051099A01281B390BC9011F910F9161
+:10384000FF90EF90DF90CF9008951F920F920FB6E8
+:103850000F9211248F939F93AF93BF938091DC01BC
+:103860009091DD01A091DE01B091DF010196A11DD3
+:10387000B11D8093DC019093DD01A093DE01B09334
+:10388000DF01BF91AF919F918F910F900FBE0F906D
+:103890001F9018950E943B0DF8942FEF87EA91E650
+:1038A000215080409040E1F700C0000087E090EB9D
+:1038B000DC018093FB019093FC01A093FD01B09388
+:1038C000FE019CE088E10FB6F894A8958093600013
+:1038D0000FBE90936000FFCFEF92FF920F931F9364
+:1038E000CF93DF93D82FCDE08C2F0E948D0405E07D
+:1038F00010E0E82EF12CC701002E02C095958795A7
+:103900000A94E2F780FF09C0602F7C2F80E00E94BC
+:103910004706D81302C081E006C00150110958F7CC
+:10392000C15010F780E0DF91CF911F910F91FF9070
+:10393000EF900895CF93C82F8CE20E946C1C8823CF
+:1039400021F08C2FCF910C946C1C80E0CF910895C6
+:10395000CF930E94EF1D811102C00E94D51DC5E6C4
+:10396000C15049F00E949F038FE39CE90197F1F752
+:1039700000C00000F5CF89E20E949A1C811113C19A
+:103980008AE20E949A1C81110E94D51D85E00E9446
+:103990009A1C81110E944A1C0E94FA1D8093DA0130
+:1039A00087E00E949A1C8823A9F18BE10E949A1C4F
+:1039B000882351F08091DA0181FB222720F991E0E0
+:1039C000922790FB81F90EC08EE00E949A1C8823FA
+:1039D00061F08091DA0182FB222720F991E09227A1
+:1039E00090FB82F98093DA0115C080E10E949A1C55
+:1039F0009091DA01882341F093FB222720F981E09E
+:103A0000822780FB93F904C0892F809580FB90F971
+:103A10009093DA018091DA010E94FE1D0E940C1E33
+:103A20008093FA0180EE0E949A1C882341F08091D5
+:103A3000FA01982F909590FB80F98093FA0189E321
+:103A40000E949A1C882359F08091FA0181FB222759
+:103A500020F991E0922790FB81F98093FA0182EEA0
+:103A60000E949A1C882359F08091FA0182FB222738
+:103A700020F991E0922790FB82F98093FA0186EE7B
+:103A80000E949A1C882359F08091FA0183FB222717
+:103A900020F991E0922790FB83F98093FA0183EE5D
+:103AA0000E949A1C882359F08091FA0184FB2227F6
+:103AB00020F991E0922790FB84F98093FA0185E345
+:103AC0000E949A1C882359F08091FA0185FB2227D5
+:103AD00020F991E0922790FB85F98093FA0181E328
+:103AE0000E949A1C882359F08091FA0186FB2227B4
+:103AF00020F991E0922790FB86F98093FA0181E109
+:103B00000E949A1C882359F08091FA0187FB222792
+:103B100020F991E0922790FB87F98093FA01809138
+:103B2000FA010E94101E8091FA0187FB882780F914
+:103B300080930D0187E20E949A1CC82F8EE10E949B
+:103B40009A1C8111C2608FE10E949A1C8111C4608D
+:103B500080E20E949A1C8111C86081E20E949A1C36
+:103B60008111C06182E20E949A1C8111C06283E2CD
+:103B70000E949A1C8111C06484E20E949A1C8823CE
+:103B800011F0C06802C0CC2329F08C2F0E94071EC0
+:103B90006C2F03C00E94031E682F70E080E090E04D
+:103BA000CF910C949718CF9108956DEE7EEF80E041
+:103BB00090E00E94412460E082E090E00E942F2487
+:103BC00060E083E090E00E942F2460E084E090E0D9
+:103BD0000E942F2460E085E090E00C942F2480E088
+:103BE00090E00E94292421E08D3E9E4F09F020E0C4
+:103BF000822F089582E090E00C942124682F82E0C7
+:103C000090E00C942F2483E090E00C942124682F02
+:103C100083E090E00C942F2484E090E00C94212425
+:103C2000682F84E090E00C942F248091E20180FFC3
+:103C30000BC06091130185E0689FB0011124759558
+:103C40006795759567952BC081FF09C06091130139
+:103C500085E0689FB00111247595679520C082FFAB
+:103C600007C06091130185E0689FB001112417C05F
+:103C70009091E3019923D1F060911201961788F792
+:103C80002091130185E0289F90011124929FA001AB
+:103C9000939F500D112470E0CA010E94F3236038F5
+:103CA000710540F46115710539F002C065E070E0FE
+:103CB000862F08958FE7089581E008958091E201AD
+:103CC00080FF08C06091110170E07595679575954A
+:103CD000679521C081FF06C06091110170E0759564
+:103CE000679519C082FF04C06091110170E010C097
+:103CF0009091E3019923C1F0609110019617A0F70C
+:103D000080911101899FC001112470E00E94F3236A
+:103D10006038710528F46115710521F0862F08952A
+:103D20008FE7089581E0089561E070E0F4CF803F6F
+:103D300021F40E94151E819504C0813F29F40E9440
+:103D4000151E8093E6010895823F21F40E94151EFE
+:103D5000819504C0833F29F40E94151E8093E501DC
+:103D60000895893F19F40E945E1E05C08A3F31F410
+:103D70000E945E1E81958093E70108958B3F21F498
+:103D80000E945E1E819504C08C3F29F40E945E1E35
+:103D90008093E8010895843F21F48091E4018160DB
+:103DA00017C0853F21F48091E401826011C0863FF5
+:103DB00021F48091E40184600BC0873F21F480915D
+:103DC000E401886005C0883F31F48091E40180619E
+:103DD0008093E40108958D3F21F48091E201816098
+:103DE0000BC08E3F21F48091E201826005C08F3FBD
+:103DF00029F48091E20184608093E2010895803F7C
+:103E000039F48091E60187FF6CC01092E60169C029
+:103E1000813F29F48091E6011816BCF362C09091AD
+:103E2000E501823F29F497FF5CC01092E50159C07B
+:103E3000833F19F41916CCF354C0893F41F48091A3
+:103E4000E70118160CF04DC01092E7014AC08A3FF6
+:103E500029F48091E70187FF44C0F6CF8B3F39F406
+:103E60008091E80187FF3DC01092E8013AC08C3F85
+:103E700029F48091E8011816BCF333C0843F21F483
+:103E80008091E4018E7F17C0853F21F48091E40189
+:103E90008D7F11C0863F21F48091E4018B7F0BC0A0
+:103EA000873F21F48091E401877F05C0883F31F48A
+:103EB0008091E4018F7E8093E40113C08D3F21F453
+:103EC0008091E2018E7F0BC08E3F21F48091E20150
+:103ED0008D7F05C08F3F29F48091E2018B7F809315
+:103EE000E2018091E50181110EC08091E60181110E
+:103EF0000AC08091E701811106C08091E80181111B
+:103F000002C01092E301089584EE91E00E945510E2
+:103F10000E94EF1B9093E1018093E00108951F93AD
+:103F2000CF93DF938091E0019091E1010E94FB1B10
+:103F3000AC019091E301992321F02091140130E02C
+:103F400006C0209115018AE0289F90011124421794
+:103F5000530708F486C08091E501C091E601D09135
+:103F6000E7011091E801811107C0C11176C0D1119C
+:103F700074C0111172C075C09F3F19F09F5F90937C
+:103F8000E301181624F40E94151E8093E501809128
+:103F9000E50187FF05C00E94151E81958093E5010C
+:103FA0001C1624F40E94151E8093E6018091E60100
+:103FB00087FF05C00E94151E81958093E6016091E0
+:103FC000E501662339F1C091E601CC2319F1772789
+:103FD00067FD7095872F972F0E94042323E333E317
+:103FE00043E35FE30E9468230E94D1226093E501CE
+:103FF0006C2F772767FD7095872F972F0E940423DA
+:1040000023E333E343E35FE30E9468230E94D1226A
+:104010006093E6011D1624F40E945E1E8093E70162
+:104020008091E70187FF05C00E945E1E8195809305
+:10403000E701111624F40E945E1E8093E80180912E
+:10404000E80187FF05C00E945E1E81958093E8010C
+:10405000DF91CF911F910C94841F9F3F09F08ECF69
+:1040600096CFDF91CF911F910895E4EEF1E085E0C6
+:10407000DF011D928A95E9F71092E3011092E201A7
+:104080000895833081F128F4813059F08230D1F0E5
+:104090000895853009F449C0B8F1863009F456C056
+:1040A000089580911501262F30E0280F311D2F3FF4
+:1040B000310524F4680F6093150108958FEF809304
+:1040C0001501089580911401262F30E0280F311D2D
+:1040D0002F3F310524F4680F6093140108958FEF8A
+:1040E00080931401089580911301262F30E0280F4A
+:1040F000311D2F3F310524F4680F6093130108959B
+:104100008FEF80931301089580911201262F30E0E4
+:10411000280F311D2F3F310524F4680F60931201E1
+:1041200008958FEF80931201089580911101262F39
+:1041300030E0280F311D2F3F310524F4680F6093C4
+:10414000110108958FEF809311010895809110015E
+:10415000262F30E0280F311D2F3F310524F4680F42
+:104160006093100108958FEF8093100108958330BC
+:1041700011F128F4813049F0823091F008958530B2
+:1041800081F120F18630C1F1089580911501681701
+:1041900020F4861B8093150108951092150108954F
+:1041A00080911401681720F4861B809314010895F0
+:1041B00010921401089580911301681720F4861B52
+:1041C00080931301089510921301089580911201B4
+:1041D000681720F4861B8093120108951092120133
+:1041E000089580911101681720F4861B80931101B6
+:1041F000089510921101089580911001681720F41C
+:10420000861B8093100108951092100108950F935A
+:104210001F938D3109F46BC008F03FC08E3009F454
+:104220007FC0C0F4873009F469C068F4863009F0B3
+:10423000B1C08091DA01817F8E7F8093DA0181E0C5
+:104240008093EA01A8C0883009F4A2C08B3009F439
+:104250009FC0A0C0863109F49BC078F4803109F476
+:1042600072C0813109F096C00E94D71490910D015F
+:1042700081E0892780930D018BC0893109F488C0C2
+:104280008B3109F087C08091DA0181FB222720F968
+:1042900091E0922790FB81F94CC0853309F470C0FE
+:1042A00048F4873209F46CC008F459C0893209F423
+:1042B00067C070C0833438F48A3308F04EC0883346
+:1042C00009F466C067C0833409F45AC0883409F021
+:1042D00061C00E94D7140FEF13ED20E3015010408E
+:1042E0002040E1F700C000000E944A1C51C00E941B
+:1042F0008B220E943E100E9437094AC09091DA0139
+:10430000892F8095817080FB90F929F096609860E4
+:104310009093DA0140C0997F977F9093DA0138C07B
+:104320008091DA0182FB222720F991E0922790FB0D
+:1043300082F98093DA01992359F18091DA01816041
+:104340008093DA0125C08091DA0183FB222720F9CE
+:1043500091E0922790FB83F9ECCF895301C08D51F6
+:1043600041E050E060E070E08A019B0104C0000F72
+:10437000111F221F331F8A95D2F7C901B80104C04B
+:1043800061E070E080E090E00E9497180E94D714EE
+:1043900081E001C080E01F910F91089580E00895B1
+:1043A00080E00895CF93C82F8091EA01813079F0A1
+:1043B00018F08230E9F187C0E0910E01F0910F0111
+:1043C0008081813169F0823209F07FC009C0E091BB
+:1043D0000E01F0910F018081813111F0823261F480
+:1043E0008C2F0E94CE21811104C08C2F0E940721A6
+:1043F0001DC081E090E01AC08C2F0E94D021811155
+:1044000014C0C43179F048F4CB3079F0C03109F0F0
+:1044100060C082E08093EA0108C0C93219F0C83355
+:1044200021F057C01092EA0154C081E0817053C05E
+:10443000C93289F118F5C43171F1A8F4C73009F017
+:1044400046C08AE08093150194E19093140193E0B3
+:10445000909313018093120188E08093110188E208
+:104460008093100134C0CE51C63088F5EC2FF0E0B7
+:10447000E65DFE4F80818093E90129C0CE34E9F0EA
+:1044800020F4CB3421F56AE013C0C13579F0C23590
+:10449000F1F461E00DC08091E901882319F01092D8
+:1044A000E90115C081E08093EA0115C061E006C012
+:1044B0008091E9010E9441200AC06AE08091E901EF
+:1044C0000E94B72004C01092EA0180E004C081E09D
+:1044D00002C080E0ABCFCF910895E1E8F0E08081A9
+:1044E000886080838081816080838FB7F89493E0B7
+:1044F0009093890090ED909388008FBF0895EFE628
+:10450000F0E08081826080830895EFE6F0E08081B2
+:104510008D7F80830895EFE6F0E0908182E0892727
+:10452000808308951F920F920FB60F9211242F933C
+:104530003F934F935F936F937F938F939F93AF932B
+:10454000BF93EF93FF938091EB019091EC01019663
+:104550009093EC018093EB01811103C082E00E94F3
+:104560003709E091EC01E695E695F0E0E45AFA4F60
+:10457000E4918091EB018E1303C080E00E94370923
+:10458000FF91EF91BF91AF919F918F917F916F912B
+:104590005F914F913F912F910F900FBE0F901F9001
+:1045A000189504D06894B1118DC0089570D088F02A
+:1045B0009F5790F0B92F9927B751A0F0D1F0660F0F
+:1045C000771F881F991F1AF0BA95C9F712C0B1302A
+:1045D00081F077D0B1E0089574C0672F782F8827D5
+:1045E000B85F39F0B93FCCF3869577956795B39569
+:1045F000D9F73EF490958095709561957F4F8F4FD8
+:104600009F4F0895E89409C097FB3EF490958095DC
+:10461000709561957F4F8F4F9F4F9923A9F0F92F88
+:1046200096E9BB279395F695879577956795B79506
+:10463000F111F8CFFAF4BB0F11F460FF1BC06F5FEC
+:104640007F4F8F4F9F4F16C0882311F096E911C0FE
+:10465000772321F09EE8872F762F05C0662371F01F
+:1046600096E8862F70E060E02AF09A95660F771F33
+:10467000881FDAF7880F9695879597F9089557FD63
+:104680009058440F551F59F05F3F71F04795880FC0
+:1046900097FB991F61F09F3F79F087950895121657
+:1046A00013061406551FF2CF4695F1DF08C0161603
+:1046B00017061806991FF1CF8695710561050894B4
+:1046C0000895E894BB2766277727CB0197F90895CB
+:1046D0000BD078C069D028F06ED018F0952309F07F
+:1046E0005AC05FC01124EECFCADFA0F3959FD1F36B
+:1046F000950F50E0551F629FF001729FBB27F00D90
+:10470000B11D639FAA27F00DB11DAA1F649F6627E4
+:10471000B00DA11D661F829F2227B00DA11D621F33
+:10472000739FB00DA11D621F839FA00D611D221FED
+:10473000749F3327A00D611D231F849F600D211DD1
+:10474000822F762F6A2F11249F5750408AF0E1F074
+:1047500088234AF0EE0FFF1FBB1F661F771F881FBD
+:1047600091505040A9F79E3F510570F014C0AACF58
+:104770005F3FECF3983EDCF3869577956795B795A8
+:10478000F795E7959F5FC1F7FE2B880F911D9695D2
+:10479000879597F9089597F99F6780E870E060E042
+:1047A00008959FEF80EC089500240A9416161706CA
+:1047B00018060906089500240A9412161306140612
+:1047C00005060895092E0394000C11F4882352F075
+:1047D000BB0F40F4BF2B11F460FF04C06F5F7F4F2D
+:1047E0008F4F9F4F089597FB072E16F4009407D024
+:1047F00077FD09D00E940D2407FC05D03EF490956A
+:1048000081959F4F0895709561957F4F0895EE0FA4
+:10481000FF1F0590F491E02D0994AA1BBB1B51E1E9
+:1048200007C0AA1FBB1FA617B70710F0A61BB70B20
+:10483000881F991F5A95A9F780959095BC01CD01C5
+:104840000895F999FECF92BD81BDF89A992780B558
+:104850000895A8E1B0E042E050E00C944924262FEE
+:10486000F999FECF92BD81BDF89A019700B4021666
+:1048700039F01FBA20BD0FB6F894FA9AF99A0FBE14
+:1048800008950196272F0E9430240C942F24DC01D8
+:10489000CB01FC01F999FECF06C0F2BDE1BDF89A4B
+:1048A000319600B40D9241505040B8F70895F894F5
+:0248B000FFCF38
+:1048B20002203909C709A40970093C090101C7018D
+:1048C20028080A03140A3F4D36391D05D0049A04FC
+:1048D2006104F4030D0426043F04010203040506E7
+:0448E20007080900BA
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/plover/keymap.c b/keyboards/ergodox_ez/keymaps/plover/keymap.c new file mode 100644 index 000000000..a991e6082 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/plover/keymap.c @@ -0,0 +1,228 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys +#define PLVR 3 // Plover layer + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | LGui | | RIGHT| 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | L1 | |Plover| Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Esc | A | S | D | F | G |------| |------| H | J | K | L |; / L2| ' | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | Home | | Alt |Ctrl/Esc| + * ,------|------|------| |------+--------+------. + * | | | End | | PgUp | | | + * |Backsp|Delete|------| |------| Enter |Space | + * | ace | | LAlt | | 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_LGUI, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), + 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, 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_BSPC,KC_DELT,KC_LALT, + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(3), 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 + ), +/* 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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------|MsLeft|MsDown| MsUp |MsRght| | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | |Brwser|Brwser| + * | Lclk | Rclk |------| |------|Fwd |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +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_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, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_WBAK, KC_WFWD +), + +/* Keymap 4: Steno for Plover from https://github.com/shayneholmes/tmk_keyboard/commit/11290f8489013018f778627db725160c745e75bd + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | 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 | ; | ' | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | c | v |------| |------| n | m | + * | | | | | | | | + * `--------------------' `--------------------' + */ + +[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_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_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_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 +), +}; + +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_ez/keymaps/plums/compiled.hex b/keyboards/ergodox_ez/keymaps/plums/compiled.hex new file mode 100644 index 000000000..5d928815a --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/plums/compiled.hex @@ -0,0 +1,1165 @@ +:100000000C9483020C94C7020C94C7020C94C70290
+:100010000C94C7020C94C7020C94C7020C94C7023C
+:100020000C94C7020C94C7020C94960D0C94680EA5
+:100030000C94C7020C94C7020C94C7020C94C7021C
+:100040000C94C7020C9472220C94C7020C94C70241
+:100050000C94C7020C94051C0C94C7020C94C702A4
+:100060000C94C7020C94C7020C94C7020C94C702EC
+:100070000C94C7020C94C7020C94C7020C94C702DC
+:100080000C94C7020C94C7020C94C7020C94C702CC
+:100090000C94C7020C94C7020C94C7020C94C702BC
+:1000A0000C94C7020C94C7020C94C702D50EF70E2D
+:1000B000E50FF70EE50F3C0F5F0FE50FB40FC70F0D
+:1000C00096129612C512C512FB121B134C144C1437
+:1000D00026134C14D613D6133D144C144C1446144A
+:1000E000E313E313E313E313E313E313E313E31360
+:1000F000E313E313E313E313E313E313E313E31350
+:10010000F5130214091410141A1401E40135023510
+:1001100002E40001E00104020402E00000C801C89A
+:1001200035002B00E300E100002000001E00140059
+:1001300004001D002F024D001F001A0016001B00B6
+:1001400026022900200008000700060031022A00CC
+:10015000210015000900190033024A00220017008F
+:100160000A0005000000E2083E002F0000000154D4
+:100170000000E200100F3000000002540000E60012
+:1001800023001C000B0011000000AE00240018002A
+:100190000D0010002D004B0025000C000E00360055
+:1001A0002E002C00260012000F0037002702280026
+:1001B000270013003300380030024E00A800310041
+:1001C0003400E500012000000100010001000100F1
+:1001D000010000003A001E0220022202010001007C
+:1001E0003B001F0221022302010001003C002F02FC
+:1001F00026022F00010001003D00300227023000DE
+:10020000010001003E00310235003502000001000E
+:1002100001000100000001000000010001000100D8
+:1002200000000100000001003F000100500001003B
+:100230000000010040000100510001000100010028
+:1002400041000100520001000100010042000100D4
+:100250004F00010001000100430001000100010006
+:100260000100010044004500010001000100000000
+:100270000100010001000100A900000001000100CF
+:1002800001000100AA0001000100010001000100BD
+:10029000AC0001000100010001000100AB00010001
+:1002A0000100010001000100010001000100010046
+:1002B0000100010000000100010001000000010038
+:1002C0000000010001000100000001000000010029
+:1002D00001000100F2000100000001000100010026
+:1002E000F1000100F400010001000100F000010034
+:1002F000F500B60001000100F3000100010001005B
+:1003000001000100010001000100010001000100E5
+:1003100001000100010000001603450072006700A3
+:100320006F0044006F007800200045005A00000074
+:1003300016034500720067006F0044006F007800EC
+:10034000200045005A0000000403090409026D0062
+:10035000040100A0FA0904000001030101000921C1
+:1003600011010001223F000705810308000A09046A
+:1003700001000103010200092111010001224D00C9
+:100380000705820308000A090402000103000000B7
+:100390000921110100012236000705830308000A24
+:1003A00009040300010300000009211101000122DA
+:1003B000390007058403100001120110010000003C
+:1003C00008EDFE071301000102000105010906A165
+:1003D00001050719E029E715002501950875018138
+:1003E0000205081901290595057501910295017508
+:1003F00003910105071900297715002501957875E6
+:10040000018102C005010980A101850216010026B3
+:10041000B7001A01002AB700751095018100C005C8
+:100420000C0901A1018503160100269C021A010096
+:100430002A9C02751095018100C005010902A101E5
+:100440000901A100050919012905150025019505D6
+:10045000750181029501750381010501093009319A
+:100460001581257F95027508810609381581257F3C
+:10047000950175088106050C0A38021581257F95BE
+:100480000175088106C0C005010906A1010507190B
+:10049000E029E71500250195087501810295017590
+:1004A0000881010508190129059505750191029535
+:1004B00001750391010507190029FF150025FF9516
+:1004C0000675088100C00000000000000000000068
+:1004D00000010204060A0F17202C3A4A5D71879D1D
+:1004E000B3C7DAE9F5FCFFFCF5E9DAC7B39D87711C
+:1004F0005D4A3A2C20170F0A060402010000000092
+:1005000000000000000011241FBECFEFDAE0DEBFC4
+:10051000CDBF04B603FE24C08091FB019091FC0185
+:10052000A091FD01B091FE018730904BA740B04BE8
+:10053000B9F41092FB011092FC011092FD0110928F
+:10054000FE0114BE84B7877F84BF88E10FB6F8949C
+:1005500080936000109260000FBEE0E0FFE3099519
+:1005600011E0A0E0B1E0E2E7F8E402C005900D92EE
+:10057000A433B107D9F711E0A4E3B1E001C01D92A3
+:10058000AB3FB107E1F70E94DA0A0C9437240C94D0
+:1005900000001092B9008AE08093B800089594EAB0
+:1005A0009093BC009091BC0097FFFCCF9091B90054
+:1005B000987F983021F0903111F081E00895809378
+:1005C000BB0084E88093BC008091BC0087FFFCCF17
+:1005D0008091B900887F883111F0803471F780E014
+:1005E000089584E98093BC008091BC0084FDFCCF19
+:1005F00008958093BB0084E88093BC008091BC0088
+:1006000087FFFCCF9091B900987F81E0983209F480
+:1006100080E0089584E88093BC008091BC0087FF4F
+:10062000FCCF8091BB00089580910101811115C01C
+:1006300080E40E94CF028093010181110CC082E10D
+:100640000E94F90280930101811105C08FEF0E9481
+:10065000F902809301010E94F10284B1807F84B984
+:1006600085B1807F85B98AB1837F8AB98BB1837F59
+:100670008BB93E98469808950E94CF04809301015B
+:100680000E94140380B38C7080BB81B3836F81BBE5
+:10069000A5E3B1E0E3E4F1E08EE08E0F11921D924C
+:1006A0008E13FCCF0C94B904BF92CF92DF92EF92DD
+:1006B000FF920F931F93CF93DF93809101018823C3
+:1006C00079F0809134018F5F80933401811108C0EB
+:1006D0000E94CF0480930101811102C00E94610435
+:1006E00005E311E0C0E0D0E0DD24D39482E0C82E21
+:1006F000EE24E394F12CC730D10500F5809101017F
+:10070000811164C080E40E94CF02809301018111B5
+:1007100012C082E10E94F9028093010181110BC095
+:10072000C7010C2E01C0880F0A94EAF780950E9439
+:10073000F902809301010E94F10248C0CA30A1F081
+:1007400028F4C83059F0C93061F005C0CC3089F0C8
+:1007500070F0CD3089F0209A289810C0219A2998FD
+:100760000DC0229A2A980AC0239A2B9807C0529A41
+:1007700001C0539A5B9802C03E9A469890EA9A95B7
+:10078000F1F79FB1799902C082E001C080E09170D9
+:100790009D25982B7C9902C084E001C080E0892BC4
+:1007A0007D9902C038E001C030E0832B7E9902C001
+:1007B00020E101C020E0822B9FB19095991F9927DD
+:1007C000991F9295990F907E892B0FC080910101FE
+:1007D000811149C080E40E94CF02809301018823E7
+:1007E00079F1B12C0E94F1028B2DF80190819817BC
+:1007F00019F08083C09200010E94140321960F5FBC
+:100800001F4FCE30D10509F076CF809100018823AB
+:1008100061F1815080930001882339F08FE99FE0D6
+:100820000197F1F700C0000020C0A3E4B1E0E5E3C8
+:10083000F1E0CF01825F91919D938E13FCCF15C0A3
+:1008400083E10E94F902809301018111CACF81E402
+:100850000E94CF02809301018111C3CF0E940A033D
+:10086000B82EB094BFCF80E0C0CF0E945F0481E07B
+:10087000DF91CF911F910F91FF90EF90DF90CF907C
+:10088000BF900895E82FF0E0ED5BFE4F8081089562
+:1008900008950F931F93CF93DF93C3E4D1E010E04B
+:1008A0000C2F025F899190E00E942B1B180F0C13F4
+:1008B000F9CF812FDF91CF911F910F9108950C9463
+:1008C0005A0556985E9825982D9826982E98279820
+:1008D0002F988FEF90E090938900809388009093F9
+:1008E0008B0080938A0090938D0080938C00259AD2
+:1008F0002D9A2FEF80E792E0215080409040E1F761
+:1009000000C00000269A2E9A2FEF80E792E0215037
+:1009100080409040E1F700C00000279A2F9A2FEF07
+:1009200080E792E0215080409040E1F700C0000055
+:1009300025982D982FEF80E792E02150804090403D
+:10094000E1F700C0000026982E982FEF80E792E094
+:10095000215080409040E1F700C0000027982F9878
+:1009600056985E9825982D9826982E9827982F9817
+:10097000089589EA8093800089E08093810024981B
+:100980002C983F988AB18F748AB96E98479A8BB128
+:10099000806B8BB9769A0E9461040C94590580E2B1
+:1009A000809301018091510181110EC00E94C90202
+:1009B00081E0809351012FEF83ED90E3215080403F
+:1009C0009040E1F700C0000080E40E94CF028093D5
+:1009D000010181112EC00E94F90280930101811151
+:1009E00028C00E94F90280930101811122C08FE387
+:1009F0000E94F9028093010181111BC00E94F10243
+:100A000080E40E94CF0280930101811112C08CE02A
+:100A10000E94F9028093010181110BC00E94F9022A
+:100A200080930101811105C08FE30E94F902809338
+:100A300001010E94F102809101010895CF93DF939B
+:100A4000EC01662319F06130C9F015C09A818D81DF
+:100A5000992349F0982F907F21F080FF22C08F705A
+:100A60008D8380EE17C0807F19F480EE0E94021201
+:100A70008D818F708D8380E090E018C09A818D8188
+:100A8000992359F0982F907F21F080FF0DC08F702F
+:100A90008D8384EE0E943A11EECF807F49F784EE79
+:100AA000E5CF83E191E002C08AE091E0DF91CF9150
+:100AB000089508956091BD017091BE018091BF01BC
+:100AC0009091C0010E94371B56985E9825982D98EA
+:100AD00026982E9827982F98813019F0823021F08F
+:100AE0000895259A2D9A0895269A2E9A089581E0C0
+:100AF000089581E008950C94790508950F931F934C
+:100B0000CF93DF938C01FC01C081D181CE010E9483
+:100B1000B019BE010E942706EC01B8010E947B05B6
+:100B2000882309F48DC0F8018281882309F44AC022
+:100B300080915D0181111FC0C431F0E5DF0709F02C
+:100B400051C00E947D0581E080935D010E94CF1B12
+:100B500090935C0180935B011092540110925601B6
+:100B600010925501109258011092570110925A019B
+:100B70001092590165C080915B0190915C010E94C7
+:100B8000DB1B883C910570F480915401E82FF0E064
+:100B9000EE0FFF1FEB5AFE4FD183C0838F5F809310
+:100BA00054014EC0C43880E5D80721F0C538D0457F
+:100BB00001F13AC0F8018281882341F0109252017C
+:100BC00082E01EC0C438E0E5DE0759F5809152018D
+:100BD000811106C086E20E943A1186E20E9402124A
+:100BE00082E01CC0C438F0E5DF0741F3C538D045CA
+:100BF000D9F4F8018281882331F01092530180E208
+:100C00000E9451121DC080915301811106C087E2DC
+:100C10000E943A1187E20E94021280E20E9458125A
+:100C20000FC0C538D04529F381E0809352018093ED
+:100C30005301C801DF91CF911F910F910C9477055B
+:100C400080E0DF91CF911F910F910895089596E074
+:100C5000799FF001112494E5899FE00DF11D112485
+:100C6000E60FF11DEE0FFF1FE05EFE4F85919491A0
+:100C70000895880F991FFC01E456F04085919491E6
+:100C80000895880F991FFC01E45EFE4F85919491B1
+:100C900008950F931F93CF93DF93EC01811520E309
+:100CA000920750F5C11580E2D80708F0C3C0CB3BCE
+:100CB000D10590F4C83AD10508F06AC0C53AD1050B
+:100CC00008F05BC0C430D10508F0D0C1219709F00D
+:100CD000CAC101E010E00AC2CF3FD10511F008F00F
+:100CE000C5C1C03FD10508F0A2C0CE01805E910908
+:100CF000089708F4BBC1B7C1C13090E5D90709F422
+:100D0000A2C020F5C0318FE4D80770F4C11590E47B
+:100D1000D90708F094C0C11521E3D20708F0A3C198
+:100D2000DD278E01106CE2C1C115D04509F09BC1D1
+:100D30000E94B7148FEF94E32CE081509040204044
+:100D4000E1F700C000000E942A1CD0C1C11597E540
+:100D5000D90758F4C03121E5D20708F01CC1C431CD
+:100D600080E5D80708F475C07EC1CE019057811583
+:100D7000904108F078C1DF7073C1C53AD10509F41C
+:100D800077C1C63AD10509F076C102E810E4AEC1D8
+:100D9000C83AD10509F472C1C93AD10509F471C143
+:100DA000CA3AD10509F470C1CB3AD10509F46FC133
+:100DB000CC3AD10509F46EC1CD3AD10509F46DC123
+:100DC000C03BD10509F46CC1CE3AD10509F46BC121
+:100DD000CF3AD10509F46AC1C13BD10509F469C113
+:100DE000C23BD10509F468C1C33BD10509F467C111
+:100DF000C43BD10509F466C1C53BD10509F465C101
+:100E0000C63BD10509F464C1C73BD10509F463C1F0
+:100E1000C83BD10509F462C1C93BD10509F461C1E0
+:100E2000CA3BD10509F460C100E014E45FC18E0142
+:100E300010655CC1CE019F700E94410658C1DF70F1
+:100E40008E01106A53C18091DA0181608093DA01CA
+:100E50004DC10E94CF1D811102C00E94B51D0E948C
+:100E6000EC1D90E09093FB018093FA01C23080E585
+:100E7000D80721F48091FA01816086C0C43090E5E2
+:100E8000D90721F48091FA0182607EC0C63020E546
+:100E9000D20721F48091FA01846076C0C83080E5E1
+:100EA000D80719F48091FA0127C0CA3090E5D90714
+:100EB00021F48091FA01806167C0CC3020E5D2072F
+:100EC00021F48091FA0180625FC0CE3080E5D807BE
+:100ED00021F48091FA01806457C0C03190E5D907B0
+:100EE00021F48091FA0180684FC0C23120E5D20719
+:100EF00029F48091FA018460886046C0C33080E59F
+:100F0000D80721F48091FA018E7F3EC0C53090E56C
+:100F1000D90721F48091FA018D7F36C0C73020E5D2
+:100F2000D20721F48091FA018B7F2EC0C93080E571
+:100F3000D80719F48091FA0126C0CB3090E5D90783
+:100F400021F48091FA018F7E1FC0CD3020E5D207B9
+:100F500021F48091FA018F7D17C0CF3080E5D8074A
+:100F600021F48091FA018F7B0FC0C13190E5D90740
+:100F700021F48091FA018F7707C0C331D04531F455
+:100F80008091FA018B7F877F8093FA018091FA012B
+:100F90000E94F01DABC08D2F99278F70992781304B
+:100FA0009105D9F49E012370332702C0880F991F41
+:100FB0002A95E2F79C688E0144E0000F111F4A95C4
+:100FC000E1F700271370802B912B53E0CC0FDD1F2E
+:100FD0005A95E1F7C076DD272FC08230910531F4B4
+:100FE000DC2FCC278E01016F106A80C08330910501
+:100FF00069F4CE018370992701E010E002C0000F70
+:10100000111F8A95E2F7C8019C680FC084309105D2
+:10101000B9F4CE018370992701E010E002C0000FFF
+:10102000111F8A95E2F7C8019A6823E0CC0FDD1FF3
+:101030002A95E1F7C07ED7708C010C2B1D2B56C072
+:101040008530910531F4DC2FCC278E01046F106AB6
+:101050004DC0069709F04AC0CF71DD27DC2FCC27A1
+:101060008E01106243C000E010E040C08E013EC01F
+:1010700001E810E43BC003E810E438C002EE14E4D9
+:1010800035C009EE14E432C00AEE14E42FC005EBBB
+:1010900014E42CC006EB14E429C007EB14E426C0CA
+:1010A0000CEC14E423C00DEC14E420C003E815E4B8
+:1010B0001DC00AE815E41AC002E915E417C004E9E6
+:1010C00015E414C001E216E411C003E216E40EC0F8
+:1010D00004E216E40BC005E216E408C006E216E4DA
+:1010E00005C007E216E402C00AE216E4C801DF9177
+:1010F000CF911F910F91089596E0799FF0011124EF
+:1011000094E5899FE00DF11D1124E60FF11DEE0F0E
+:10111000FF1FE05EFE4F85919491803E9105E0F4C3
+:10112000803C910558F58133910509F46FC048F46E
+:101130008932910509F463C08A32910509F46DC0C2
+:1011400072C089339105E9F082389105D1F0853379
+:10115000910509F44DC067C0833E910581F138F4D3
+:10116000803E9105B9F0823E9105D9F05CC0863E83
+:10117000910561F1873E9105A1F155C00E943906A4
+:1011800008952091FA0120FD02C021FF4CC080EE9D
+:1011900090E049C08091FA0180FFF9CF89E390E0A7
+:1011A00042C08091FA0182FF0EC08091FA0184FF53
+:1011B00003C080E090E037C083EE90E034C08091BF
+:1011C000FA0182FFF2CF82EE90E02DC08091FA0109
+:1011D00083FF0BC08091FA0184FDEBCF87EE90E096
+:1011E00022C08091FA0183FFF5CF86EE90E01BC00C
+:1011F0008091FA0185FF07C089E290E014C08091D8
+:10120000FA0185FFF9CF85E390E00DC08091FA01E6
+:1012100086FF07C08AE290E006C08091FA0186FF4F
+:10122000F9CF81E390E00E944906089508950C9457
+:10123000160980916E010895CF93DF9300D01F921D
+:10124000CDB7DEB79C018091F101843019F593E0B0
+:1012500099833B832A839093E9008FEF9091E80074
+:10126000815095FD06C095ED9A95F1F7000081112A
+:10127000F5CF8091E80085FF0DC040E050E063E0CD
+:1012800070E0CE0101960E94860B8091E8008E7777
+:101290008093E8000F900F900F90DF91CF91089509
+:1012A000CF93DF9300D01F92CDB7DEB72091F1012D
+:1012B000243021F522E029839B838A8383E0809375
+:1012C000E9008FEF9091E800815095FD06C095ED03
+:1012D0009A95F1F700008111F5CF8091E80085FF24
+:1012E0000DC040E050E063E070E0CE0101960E9446
+:1012F000860B8091E8008E778093E8000F900F9026
+:101300000F90DF91CF9108952091F1012430F1F4F5
+:1013100022E02093E9002FEF3091E800215035FDC5
+:1013200006C035ED3A95F1F700002111F5CF209177
+:10133000E80025FF0BC040E050E065E070E00E944F
+:10134000860B8091E8008E778093E8000895CF9314
+:10135000DF93EC019091F101943009F046C0809147
+:101360000C018823D9F080910D018823B9F0909366
+:10137000E9008FEF9091E800815095FD06C095E15E
+:101380009A95F1F700008111F5CF8091E80085FF73
+:101390002CC040E050E060E170E017C081E0809335
+:1013A000E9008FEF9091E800815095FD06C095ED22
+:1013B0009A95F1F700008111F5CF8091E80085FF43
+:1013C00014C040E050E068E070E0CE010E94860B5F
+:1013D0008091E8008E778093E80080E1FE01AEE521
+:1013E000B1E001900D928A95E1F7DF91CF910895D8
+:1013F0008091F001811109C00E941B0D0E94780D9F
+:101400008091E20084608093E20008951092F001E0
+:10141000089508950C945F220E94C01B0E946522CB
+:101420000E941E100C94170942E061EC81E00E94BA
+:10143000950C42E061EC82E00E94950C42E061EC88
+:1014400083E00E94950C42E161EC84E00C94950CE1
+:101450008091F301833009F455C030F4813071F08C
+:10146000823009F48EC008958A3009F47AC08B3036
+:1014700009F460C0893009F09CC020C08091F2015D
+:10148000813A09F096C08091E800877F8093E80058
+:101490008091F6019091F701892B21F460E18EE5AE
+:1014A00091E003C060E080E090E070E00E94D10B2A
+:1014B0008091E8008B778093E80008958091F20195
+:1014C000813209F076C08091F6019091F701009782
+:1014D00019F0039709F06DC08091E800877F809331
+:1014E000E8008091E80082FD05C08091F101811142
+:1014F000F8CF5FC08091F10080936E018091E80089
+:101500008B7753C08091F201813A09F052C08091EB
+:10151000F6019091F701892B09F04BC08091E8000A
+:10152000877F8093E8008091E80080FFFCCF809166
+:101530000C0136C08091F2018132D9F58091F6011B
+:101540009091F701892BA9F58091E800877F80931E
+:10155000E8000E94CA0C8091F40180930C010C9465
+:10156000B7148091F201813221F58091E800877FE4
+:101570008093E8000E94CA0C8091F50180936F016E
+:1015800008958091F201813AA1F48091E800877F6B
+:101590008093E8008091E80080FFFCCF80916F018C
+:1015A0008093F1008091E8008E778093E8000C949E
+:1015B000CA0C089584B7877F84BF88E10FB6F8947A
+:1015C00080936000109260000FBE90E080E80FB63C
+:1015D000F89480936100909361000FBE0E946D109B
+:1015E0000E941B0D0E94780D8091E2008460809320
+:1015F000E20078940E94FE0F0E946F1082E091E05A
+:101600000E9419100E944D228091F101853069F4E9
+:101610000E94871B8091EF018823B1F30E94B21BC7
+:10162000882391F30E94700BEFCF0E947510ECCFCE
+:10163000292F332723303105C9F064F421303105D7
+:1016400081F02230310509F043C08DE690E02CE4B2
+:1016500033E042C021323105F1F02232310541F14F
+:1016600037C082E190E029EB33E036C09927813022
+:10167000910541F08230910541F0892B49F5E8E46C
+:10168000F3E005C0E0E3F3E002C0E8E1F3E08491B9
+:1016900090E09F0121C06430D8F4E62FF0E0EE0F17
+:1016A000FF1FEE5DFE4F2081318189E090E014C084
+:1016B000643070F470E0FB01EE0FFF1FE65EFE4F3A
+:1016C00020813181FB01EA5EFE4F808190E004C001
+:1016D00080E090E020E030E0FA013183208308953B
+:1016E00080E189BD82E189BD09B400FEFDCF809112
+:1016F000D8008F7D8093D8008091E0008260809335
+:10170000E0008091E00081FDFCCF0895CF92DF9250
+:10171000EF92FF920F931F93CF93DF93EC018B0116
+:101720006A010E94E90C811133C0C114D10439F05F
+:10173000F60180819181081B190BC80FD91FE12C7C
+:10174000F12C0115110519F18091E80085FD16C0F5
+:101750008091E8008E778093E800C114D10449F0AD
+:10176000F60180819181E80EF91EF182E08285E028
+:101770000FC00E94E90C882321F30AC0899180934D
+:10178000F10001501109FFEFEF1AFF0ADACF80E0F4
+:10179000DF91CF911F910F91FF90EF90DF90CF904D
+:1017A00008952091F8013091F9012617370748F084
+:1017B0006115710539F42091E8002E772093E80037
+:1017C00001C0B90140E061157105A9F12091F10155
+:1017D000222309F443C0253009F442C02091E800D7
+:1017E00023FD40C02091E80022FD32C02091E80096
+:1017F00020FFE9CF4091F3002091F20030E0342B3C
+:10180000FC01CF016115710559F02830310540F414
+:1018100081918093F100615071092F5F3F4FF1CFAB
+:1018200041E02830310509F040E02091E8002E77B2
+:101830002093E800C8CF4111C9CF0AC08091F101BF
+:10184000882361F0853061F08091E80083FD0AC053
+:101850008091E80082FFF2CF80E0089582E0089551
+:1018600083E0089581E008952091F8013091F90115
+:101870002617370748F06115710539F42091E80003
+:101880002E772093E80001C0B901FC0120E061152A
+:10189000710591F18091F101882309F440C08530F0
+:1018A00009F43FC08091E80083FD3DC08091E800CD
+:1018B00082FD2FC08091E80080FFE9CF2091F300E6
+:1018C0008091F20090E0922B6115710559F08830FB
+:1018D000910540F424912093F100319661507109F3
+:1018E0000196F2CF21E0089709F020E08091E8000E
+:1018F0008E778093E800CBCF2111CCCF0AC08091A6
+:10190000F101882361F0853061F08091E80083FD6A
+:101910000AC08091E80082FFF2CF80E0089582E063
+:10192000089583E0089581E00895982F973058F541
+:101930009093E900981739F07091EC002091ED0038
+:101940005091F00003C0242F762F50E021FF19C0E2
+:101950003091EB003E7F3093EB003091ED003D7F06
+:101960003093ED003091EB0031603093EB007093D9
+:10197000EC002093ED005093F0002091EE0027FF43
+:1019800007C09F5FD3CF8F708093E90081E00895F7
+:1019900080E008958091F20187FF11C08091E800F6
+:1019A00082FD05C08091F1018111F8CF11C08091B5
+:1019B000E8008B770BC08091F101882349F080917A
+:1019C000E80080FFF8CF8091E8008E778093E800F0
+:1019D00008952091E4003091E50095E64091EC00F7
+:1019E000842F817040FF22C08091E80080FD1CC0E0
+:1019F0008091F101882391F0853091F08091EB0086
+:101A000085FD10C04091E4005091E5004217530756
+:101A100029F39A01915011F784E0089582E0089526
+:101A200083E0089581E0089580E008954091E80002
+:101A300042FFDECF08950E94890D0E94910DE0EED5
+:101A4000F0E0808181608083E8EDF0E080818F7735
+:101A5000808319BCA7EDB0E08C918E7F8C93808140
+:101A60008F7E80831092F00108950F931F93CF9380
+:101A7000DF930E94890D0E94910DC8EDD0E088810E
+:101A80008F77888388818068888388818F7D888329
+:101A900019BC1092F1011092ED011092EF01109219
+:101AA000EE0100EE10E0F80180818B7F8083888159
+:101AB0008160888342E060E080E00E94950CE1EE66
+:101AC000F0E080818E7F8083E2EEF0E080818160B3
+:101AD0008083808188608083F80180818E7F80830D
+:101AE000888180618883DF91CF911F910F91089544
+:101AF000E8EDF0E080818F7E8083E7EDF0E080818B
+:101B00008160808384E082BF81E08093F0010C9447
+:101B1000350DE8EDF0E080818E7F80831092E20049
+:101B200008951092DA001092E10008951F920F922A
+:101B30000FB60F9211242F933F934F935F936F93A0
+:101B40007F938F939F93AF93BF93EF93FF93809176
+:101B5000E10082FF0BC08091E20082FF07C080910C
+:101B6000E1008B7F8093E1000E94FD0F8091DA00FD
+:101B700080FF1FC08091D80080FF1BC08091DA00D9
+:101B80008E7F8093DA008091D90080FF0DC080E1C4
+:101B900089BD82E189BD09B400FEFDCF81E080935B
+:101BA000F1010E94F80905C019BC1092F1010E94D0
+:101BB000060A8091E10080FF19C08091E20080FF59
+:101BC00015C08091E2008E7F8093E2008091E20058
+:101BD00080618093E2008091D80080628093D80079
+:101BE00019BC85E08093F1010E940A0A8091E1000E
+:101BF00084FF30C08091E20084FF2CC080E189BD69
+:101C000082E189BD09B400FEFDCF8091D8008F7DAF
+:101C10008093D8008091E1008F7E8093E1008091D5
+:101C2000E2008F7E8093E2008091E20081608093E9
+:101C3000E2008091ED01882311F084E007C08091DB
+:101C4000E30087FD02C081E001C083E08093F101E1
+:101C50000E940C0A8091E10083FF29C08091E2007C
+:101C600083FF25C08091E100877F8093E10082E0BF
+:101C70008093F1011092ED018091E1008E7F8093BD
+:101C8000E1008091E2008E7F8093E2008091E2008B
+:101C900080618093E20042E060E080E00E94950C69
+:101CA0008091F00088608093F0000E94090AFF9103
+:101CB000EF91BF91AF919F918F917F916F915F91C4
+:101CC0004F913F912F910F900FBE0F901F9018953D
+:101CD0001F920F920FB60F9211242F933F934F93A1
+:101CE0005F936F937F938F939F93AF93BF93CF93A4
+:101CF000DF93EF93FF93C091E900CF708091EC00E8
+:101D0000D82FD17080FDD0E81092E9008091F000CA
+:101D1000877F8093F00078940E94AC0E1092E900C7
+:101D20008091F00088608093F000CD2BCF70C0933D
+:101D3000E900FF91EF91DF91CF91BF91AF919F911A
+:101D40008F917F916F915F914F913F912F910F9064
+:101D50000FBE0F901F9018951F93CF93DF93CDB7B1
+:101D6000DEB7AA970FB6F894DEBF0FBECDBFE2EF85
+:101D7000F1E088E08E0F9091F10091938E13FBCFEC
+:101D80000E94280A8091E80083FF1FC18091F20120
+:101D90009091F301492F50E04A30510508F015C1E8
+:101DA000FA01EA5AFF4F0C94E723803881F0823819
+:101DB00009F00BC18091F6018F708093E90080914A
+:101DC000EB0085FB882780F91092E90006C080911E
+:101DD000EE019091EF01911182609091E800977F60
+:101DE0009093E8008093F1001092F100C8C0282F72
+:101DF0002D7F09F0EAC0882319F0823061F0E5C038
+:101E00008091F401813009F0E0C0933009F080E066
+:101E10008093EF012BC08091F401811127C0809144
+:101E2000F6018F7009F4D1C08093E9002091EB0096
+:101E300020FF1CC0933021F48091EB00806214C01D
+:101E40009091EB0090619093EB0021E030E0A901CC
+:101E500002C0440F551F8A95E2F74093EA001092A2
+:101E6000EA008091EB0088608093EB001092E9001B
+:101E70008091E800877F86C08111A7C01091F4018E
+:101E80001F778091E3008078812B8093E30080911D
+:101E9000E800877F8093E8000E94CA0C8091E800E8
+:101EA00080FFFCCF8091E30080688093E3001111F4
+:101EB00002C082E001C083E08093F10186C08058B7
+:101EC000823008F082C08091F4019091F5018C3D40
+:101ED00053E0950779F583E08A838AE289834FB7D7
+:101EE000F894DE01139620E03EE051E2E32FF0E0AB
+:101EF00050935700E49120FF03C0E295EF703F5FDD
+:101F0000EF708E2F90E0EA3010F0C79601C0C096B7
+:101F10008D939D932F5F243149F74FBF8091E80047
+:101F2000877F8093E8006AE270E0CE0101960E940C
+:101F3000D10B14C0AE014F5F5F4F6091F6010E945C
+:101F4000180BBC01009709F440C09091E800977FFE
+:101F50009093E80089819A810E94340C8091E80076
+:101F60008B778093E80031C0803879F58091E80064
+:101F7000877F8093E8008091ED018093F10080914C
+:101F8000E8008E778093E8000E94CA0C1EC0811181
+:101F90001CC09091F4019230C0F48091E800877FDA
+:101FA0008093E8009093ED010E94CA0C8091ED01AE
+:101FB000811106C08091E30087FD02C081E001C06D
+:101FC00084E08093F1010E94140A8091E80083FF6D
+:101FD0000AC08091E800877F8093E8008091EB0041
+:101FE00080628093EB00AA960FB6F894DEBF0FBE16
+:101FF000CDBFDF91CF911F9108950895CF93809128
+:10200000F1018823A1F0C091E900CF709091EC001C
+:10201000892F817090FD80E8C82B1092E900809193
+:10202000E80083FD0E94AC0ECF70C093E900CF9111
+:10203000089590937501809374010895E09174015F
+:10204000F0917501309721F00190F081E02D099415
+:1020500080E00895E0917401F0917501309721F0CE
+:102060000280F381E02D09940895E0917401F091CC
+:102070007501309721F00480F581E02D09940895D1
+:1020800020917201309173018217930771F0909340
+:10209000730180937201E0917401F09175013097A2
+:1020A00021F00680F781E02D0994089520917001B8
+:1020B000309171018217930771F0909371018093B1
+:1020C0007001E0917401F0917501309721F0008466
+:1020D000F185E02D0994089508950C946C100E94E8
+:1020E000C61B0E943C030C94881C9F92AF92BF9227
+:1020F000CF92DF92EF92FF920F931F93CF93DF93D4
+:1021000000D000D000D0CDB7DEB70E9454030DE060
+:1021100010E0AA24A394B12C902E802F0E94420498
+:10212000980129583E4F6901F901F080F826A1F481
+:102130000150110988F78FEF89838A831B820E94DF
+:10214000CF1B8160782F9D838C8349815A816B815D
+:102150008D810E940C112FC09091DA0191FF04C073
+:102160008E830E9448048E8125E030E0A501022E76
+:1021700001C0440F0A94EAF7E42E4F21C1F02983ED
+:102180009A828E2191E009F490E09B830E94CF1BFC
+:102190008160782F9D838C8349815A816B818D81E9
+:1021A0000E940C11F6018081E826E08204C02150D3
+:1021B0003109E0F6BDCF0E946F1F109176010E9499
+:1021C0001E101817B9F00E941E10809376012696F3
+:1021D0000FB6F894DEBF0FBECDBFDF91CF911F9138
+:1021E0000F91FF90EF90DF90CF90BF90AF909F90B6
+:1021F0000C94170926960FB6F894DEBF0FBECDBF1C
+:10220000DF91CF911F910F91FF90EF90DF90CF90D2
+:10221000BF90AF909F900895CF93DF93CDB7DEB777
+:102220002B970FB6F894DEBF0FBECDBF4F835887F4
+:1022300069877A878B87DE01119686E0FD0111920E
+:102240008A95E9F785E0FE01379601900D928A950F
+:10225000E1F749815A816B817C818D819E810E9449
+:1022600055172B960FB6F894DEBF0FBECDBFDF918A
+:10227000CF910895CF93882309F4C2C0C82F823824
+:1022800059F40E941E1081FDBBC089E30E942F1AE1
+:102290000E94FC1A89E30CC0833879F40E941E1056
+:1022A00080FDAEC083E50E942F1A0E94FC1A83E5D0
+:1022B0000E94711ACF910C94FC1A843859F40E9430
+:1022C0001E1082FD9DC087E40E942F1A0E94FC1AF6
+:1022D00087E4EECF8CEF8C0F813A48F48C2F0E946C
+:1022E000B22181118DC08C2F0E942F1AE3CF80E282
+:1022F0008C0F883048F4C77081E001C0880FCA9500
+:10230000EAF70E94B51AD6CF8BE58C0F833078F4AC
+:10231000C53A29F0C63A31F083E890E005C081E87B
+:1023200090E002C082E890E0CF910C94401088E5E4
+:102330008C0F833108F064C0C83A39F1C93A41F1D1
+:10234000CA3A49F1CB3A51F1CC3A59F1CD3A61F15F
+:10235000C03B69F1CE3A71F1CF3A79F1C13B81F1DD
+:10236000C23B89F1C33B91F1C43B99F1C53BA1F15B
+:10237000C63BA9F1C73BB1F1C83BB9F1C93BC1F1BB
+:10238000CA3BC9F180E090E038C082EE90E035C0F1
+:1023900089EE90E032C08AEE90E02FC085EB90E0AD
+:1023A0002CC086EB90E029C087EB90E026C08CEC37
+:1023B00090E023C08DEC90E020C083E891E01DC048
+:1023C0008AE891E01AC082E991E017C084E991E0BF
+:1023D00014C081E292E011C083E292E00EC084E278
+:1023E00092E00BC085E292E008C086E292E005C070
+:1023F00087E292E002C08AE292E0CF910C945610FC
+:10240000CF910895882309F44BC0823859F40E9473
+:102410001E1081FF45C089E30E942F1A0E94FC1AFA
+:1024200089E30CC0833871F40E941E1080FF38C00D
+:1024300083E50E942F1A0E94FC1A83E50E94711AFC
+:102440000C94FC1A843859F40E941E1082FF28C094
+:1024500087E40E942F1A0E94FC1A87E4EFCF9CEFBA
+:10246000980F913A58F390E2980F983050F4877093
+:1024700091E001C0990F8A95EAF7892F0E94BB1A53
+:10248000DFCF9BE5980F933020F480E090E00C9430
+:102490004010885A833120F480E090E00C9456106C
+:1024A0000895882321F00E94B51A0C94FC1A08950F
+:1024B000882321F00E94BB1A0C94FC1A08957F9285
+:1024C0008F929F92AF92BF92CF92DF92EF92FF9244
+:1024D0000F931F93CF93DF931F92CDB7DEB77C018D
+:1024E000C62E772EFC01058102950F701281111105
+:1024F0000E94D21A0E94281A882379F0112369F0C9
+:1025000080E28C0D883048F082E00E94111A0E940F
+:10251000281A91E0D82ED92601C0D12CE72DE295BA
+:10252000EF70F0E0E05AFF4F0C94E723872D807F97
+:10253000072D0F70882311F00295007F112389F079
+:10254000002309F490C180E28C0D883020F4802FA4
+:102550000E94B51A03C0802F0E94C51A0E94FC1A5F
+:1025600082C18C2D0E940212002309F495C180E2E1
+:102570008C0D883020F4802F0E94BB1A03C0802F5E
+:102580000E94CB1A0E94FC1A87C1972D907F872D3D
+:102590008F70903211F08295807FCC2021F0F1E095
+:1025A000CF16B1F01EC0112349F0002309F414C165
+:1025B000013009F011C10E94E51A6EC1002319F023
+:1025C000013009F469C189830E94E81A89810AC12E
+:1025D000112321F0023008F05FC1FEC001115CC17F
+:1025E00001C1112321F0002309F4F6C03CC10023EE
+:1025F00009F4F8C03EC1872D86958695837090E0DA
+:10260000009719F0019761F047C1112321F08C2D3B
+:10261000972D937002C080E090E00E9440103CC172
+:10262000112321F08C2D972D937002C080E090E053
+:102630000E94561031C18C2D112319F00E94771E73
+:1026400002C00E94DF1E0E94641F26C1872D837076
+:1026500009F052C0111120C18C2D8295869587708A
+:10266000880F880F9C2D9F70892E912CA12CB12C46
+:10267000082E04C0880C991CAA1CBB1C0A94D2F713
+:10268000C4FE14C00FE010E020E030E0B901A80162
+:1026900004C0440F551F661F771F8A95D2F7CB01E0
+:1026A000BA01609570958095909503C060E070E0E8
+:1026B000CB01272D26952695237030E02230310559
+:1026C00069F02330310589F0682979298A299B2905
+:1026D0002130310571F00E949D18DEC068297929EA
+:1026E0008A299B290E94B918D7C00E949D18C5014C
+:1026F000B4010E948118D0C0112319F0872D817078
+:1027000001C08695882309F4C7C08C2D82958695D3
+:102710008770880F880F9C2D9F70892E912CA12C7B
+:10272000B12C082E04C0880C991CAA1CBB1C0A944E
+:10273000D2F7C4FE14C00FE010E020E030E0B90191
+:10274000A80104C0440F551F661F771F8A95D2F752
+:10275000CB01BA01609570958095909503C060E0BB
+:1027600070E0CB01272D269526952370422F50E04F
+:102770004230510569F04330510589F068297929C3
+:102780008A299B294130510571F00E94771984C034
+:10279000682979298A299B290E9493197DC00E9462
+:1027A0007719C501B4010E945B1976C08C2D90E0A9
+:1027B000FC01E05EF109E531F10508F050C0E05997
+:1027C000FF4F0C94E7230C2D0F70872D8F71112371
+:1027D00031F00E94F418802F0E9451125DC00E94B7
+:1027E0001519802F0E94581257C0112339F001117A
+:1027F00053C0872D8F710E943A194EC0023008F0E5
+:102800004BC0F7CF112339F0872D8F710E94F41838
+:1028100043C01123C9F3872D8F710E9415193CC045
+:10282000112329F0872D8F710E94DF1835C00E9477
+:10283000D51832C0112351F0172D1F71812F0E941E
+:10284000F41863E0812F0E94081A26C081E00E94DC
+:10285000111A023008F182E00E94111A1DC01123E2
+:1028600031F0002389F28C2D0E943A1115C000230B
+:1028700091F28C2D0E9402120FC0472D4F706C2DCB
+:10288000C7010E941E050E94F91706C0472D4F7010
+:102890006C2DC7010E942606DD20F9F00E94041A63
+:1028A00080FD1BC0F70112820E94FE190E94F418DD
+:1028B000C7010E947C140E94FE190F90DF91CF91F6
+:1028C0001F910F91FF90EF90DF90CF90BF90AF904E
+:1028D0009F908F907F900C9415190F90DF91CF915E
+:1028E0001F910F91FF90EF90DF90CF90BF90AF902E
+:1028F0009F908F907F9008950F931F93CF93DF93B6
+:10290000EC01888199812B813C81232BB9F09F3F79
+:1029100011F48F3F99F0CE010E947E05882371F05B
+:10292000688179818A810E94FA198C010E94AF190D
+:102930000E947618B801CE010E945F12DF91CF91FC
+:102940001F910F9108950E94D21A0E94E21A0E94CC
+:10295000A71A0E94FC1A0E9415200E94641F80E0A2
+:1029600090E00E94401080E090E00C9456100E948D
+:10297000C21A0C94A3140E94EF19292F22952F70CC
+:1029800030E02C3031054CF42A3031056CF4225003
+:10299000310922303105A8F407C02C30310569F027
+:1029A0002F30310551F00DC0803F69F018F4803EA2
+:1029B00040F409C0843F29F406C093FB882780F9BE
+:1029C000089580E0089581E00895CF93DF9300D0CB
+:1029D00000D01F92CDB7DEB70F900F900F900F90E1
+:1029E0000F90DF91CF910895CF93DF9300D000D067
+:1029F00000D0CDB7DEB726960FB6F894DEBF0FBE77
+:102A0000CDBFDF91CF9108951F93CF93DF93C091F6
+:102A1000850116E080918601C81799F0D0E01C9FCF
+:102A2000F0011D9FF00D1124E957FE4F40815181A7
+:102A300062817381848195810E94F4142196C7700C
+:102A4000E9CFDF91CF911F9108954091B701509147
+:102A5000B8016091B9017091BA018091BB01909168
+:102A6000BC010C94F4148091BC0182958F7009F024
+:102A700054C08091B901882309F44FC08091850129
+:102A8000A09186016091B7017091B8014091BA019F
+:102A90005091BB01B6E08A1709F43FC090E04115A0
+:102AA0005105C1F17F3F11F46F3FA1F1B89FF001D3
+:102AB000B99FF00D1124E957FE4F218172132AC0EE
+:102AC0002081621327C02281211124C023813481F7
+:102AD0002417350710F421503109241B350B283CED
+:102AE0003105C0F42091BC012F7020612093BC01FE
+:102AF00026E0289FF001299FF00D1124E457FE4F96
+:102B000080818F708061808387EB91E00E947C14CC
+:102B10000C94041501968770BECF0895CF92DF9272
+:102B2000EF92FF920F931F93CF93DF93CDB7DEB752
+:102B300062970FB6F894DEBF0FBECDBF8C0185E063
+:102B4000F801DE011D9601900D928A95E1F7D801FA
+:102B50004C9111965C91119712966C911297139665
+:102B6000CD90DC9014973091B7017091B8018091AD
+:102B7000BA019091BB01009709F46BC17F3F19F432
+:102B80003F3F09F466C1E090B901EE2009F4C0C0EE
+:102B90002091BC01C816D90628F0F601E81BF90BF4
+:102BA000CF0104C0809590958C0D9D1DFF24F3945A
+:102BB000883C910578F0F12C207F09F0C6C07C2D6F
+:102BC000D98AC88A89890E94E51487EB91E00E941E
+:102BD0007C14B1C0822F807F09F046C0751314C0E9
+:102BE000341312C0611110C02F7020612093BC01FA
+:102BF0000E94251587EB91E00E947C148091BC0116
+:102C0000D80115968C932EC0CD2819F15F3F11F491
+:102C10004F3FF9F0F62E61111CC080918501209183
+:102C2000860136E0821709F45AC090E0389FF0011F
+:102C3000399FF00D1124E957FE4F7181571306C0DB
+:102C40007081471303C07281711103C001968770B0
+:102C5000E9CFF62E662309F418C18091BC0181608A
+:102C60008093BC01F12C11C1751308C0341306C048
+:102C7000611104C08091BC01D801C3C04D875E873B
+:102C80008D859E856A8B0E94BB146A898823E1F139
+:102C90006623D1F12091BC01822F82958F7090E044
+:102CA000029774F08091B7019091B80198878F8353
+:102CB0001986DB86CA862C87CE0107960E947C1473
+:102CC00086E0F801A7EBB1E001900D928A95E1F75B
+:102CD0000E9433150E942515FF24F394D6C04D871A
+:102CE0005E878D859E850E94EF19292F22952F7072
+:102CF00030E0223031050CF0BCC09F7009F0B6C046
+:102D0000805E883008F4C1C0C8010E947C14E4CF02
+:102D1000C816D90608F453C0F601E81BF90BCF0119
+:102D2000883C910508F450C0F12C7C2DD98AC88AC2
+:102D300089890E94E514E7EBF1E086E0DF011D924E
+:102D40008A95E9F70E942515A0C0751314C03413A5
+:102D500012C0611110C08091BC01F8018583C801C7
+:102D60000E947C1486E0E7EBF1E0DF011D928A957A
+:102D7000E9F7FE2C8AC04D875E878D859E856A8B1C
+:102D80000E94BB146A89882309F4BECF662309F424
+:102D9000BBCF2091BC01822F82958F7090E002976B
+:102DA0000CF48ECF8091B7019091B8019A838983FA
+:102DB0001B82DD82CC822E83CE0101967FCF80954F
+:102DC00090958C0D9D1DACCFF62E662309F49CCFFB
+:102DD00075132EC034132CC02091BC0120FD1FC0E0
+:102DE000822F82958F70D9F0D80115962C93159764
+:102DF0008F3049F08F5F982F9295907F822F8F7040
+:102E0000892B15968C93C8010E947C1486E0F801EA
+:102E1000A7EBB1E001900D928A95E1F793CF86E0A0
+:102E2000F801A7EBB1E001900D928A95E1F72DC072
+:102E30004D875E878D859E850E94BB14811140CF92
+:102E40008091BC0181608093BC01C8010E947C1408
+:102E50001CC0662309F458CF4D875E878D859E85FB
+:102E60000E94BB14882309F44FCF2ACF811148CF89
+:102E70000CC0243031050CF047CF9F7009F440CFCF
+:102E8000F8019581907F09F03BCF8F2D62960FB6A8
+:102E9000F894DEBF0FBECDBFDF91CF911F910F9190
+:102EA000FF90EF90DF90CF9008951F93CF93DF9323
+:102EB000CDB7DEB72C970FB6F894DEBF0FBECDBFEF
+:102EC0004F83588769877A878B879C87CE010796BF
+:102ED0000E948E15882369F08F8198852A853B850D
+:102EE000232BF1F19F3F09F063C08F3F09F060C0D1
+:102EF00037C086E0FE013796DE01119601900D92F3
+:102F00008A95E1F76F817885EA85FB85309741F1F5
+:102F10007F3F11F46F3F21F12091860130E0C9011C
+:102F20000196877099274091850150E08417950795
+:102F300009F447C069837A83FD83EC8396E0929F0E
+:102F4000D001939FB00D1124A957BE4FFE013196B9
+:102F500001900D929A95E1F7809386010E940415E5
+:102F600016E080918501909186018917C1F1189F23
+:102F7000C001112489579E4F0E948E15882379F134
+:102F8000E09185011E9FF0011124E957FE4F408119
+:102F9000518162817381848195810E94F4148091B2
+:102FA000850190E001968770992780938501D9CF9C
+:102FB0004F81588569857A858B859C850E94F4149C
+:102FC000CFCF0E94B7141092860110928501E7EBD3
+:102FD000F1E086E0DF011D928A95E9F7C1CF2C96DA
+:102FE0000FB6F894DEBF0FBECDBFDF91CF911F911A
+:102FF0000895EF92FF920F931F93CF93DF938C016D
+:10300000009709F46CC0F12CEE24E394E8012196BA
+:10301000F8018491843740F4843008F051C0813045
+:1030200081F0823019F15BC0853709F444C0A8F102
+:103030009CE7980F903708F052C08F770E940212D9
+:1030400041C00E5F1F4FFE01C49180E28C0F88309B
+:1030500048F4C7708E2D01C0880FCA95EAF70E9408
+:10306000D51A14C08C2F0E943A112DC00E5F1F4F2D
+:10307000FE01C49180E28C0F883058F4C7708E2D09
+:1030800001C0880FCA95EAF70E94DB1A0E94FC1A59
+:103090001AC08C2F0E94021216C00E5F1F4FFE0135
+:1030A000C491CC2381F08FE99FE00197F1F700C034
+:1030B0000000C150F6CF0E5F1F4FFE01F49003C019
+:1030C0000E943A118E018F2D882309F49FCFEFE9DA
+:1030D000FFE03197F1F700C000008150F5CFDF919C
+:1030E000CF911F910F91FF90EF90089508956093F5
+:1030F000C1017093C2018093C3019093C4010C94E9
+:10310000A3140F931F930091C1011091C20120914C
+:10311000C3013091C401DC01CB01802B912BA22B88
+:10312000B32B8093C1019093C201A093C301B093CC
+:10313000C4011F910F910C94A3140F931F9300913E
+:10314000C1011091C2012091C3013091C401DC0181
+:10315000CB0180239123A223B3238093C1019093B9
+:10316000C201A093C301B093C4011F910F910C94AD
+:10317000A3140F931F930091C1011091C2012091DC
+:10318000C3013091C401DC01CB0180279127A22724
+:10319000B3278093C1019093C201A093C301B09360
+:1031A000C4011F910F910C94A3141092BD011092B1
+:1031B000BE011092BF011092C0010C94A31441E013
+:1031C00050E060E070E004C0440F551F661F771F99
+:1031D0008A95D2F74093BD015093BE016093BF0121
+:1031E0007093C0010C94A31441E050E060E070E0E3
+:1031F00004C0440F551F661F771F8A95D2F7809130
+:10320000BD019091BE01A091BF01B091C001482BBA
+:10321000592B6A2B7B2B4093BD015093BE016093C9
+:10322000BF017093C0010C94A31441E050E060E032
+:1032300070E004C0440F551F661F771F8A95D2F7B0
+:1032400040955095609570958091BD019091BE011B
+:10325000A091BF01B091C001482359236A237B2369
+:103260004093BD015093BE016093BF017093C001B4
+:103270000C94A31441E050E060E070E004C0440FFF
+:10328000551F661F771F8A95D2F78091BD019091D7
+:10329000BE01A091BF01B091C001482759276A27FC
+:1032A0007B274093BD015093BE016093BF01709393
+:1032B000C0010C94A3140F931F930091BD011091B2
+:1032C000BE012091BF013091C001DC01CB01802BF8
+:1032D000912BA22BB32B8093BD019093BE01A093A1
+:1032E000BF01B093C0011F910F910C94A3140F93D1
+:1032F0001F930091BD011091BE012091BF0130913B
+:10330000C001DC01CB0180239123A223B32380934E
+:10331000BD019093BE01A093BF01B093C0011F9166
+:103320000F910C94A3140F931F930091BD01109162
+:10333000BE012091BF013091C001DC01CB0180278B
+:103340009127A227B3278093BD019093BE01A0933C
+:10335000BF01B093C0011F910F910C94A314089565
+:10336000CF92DF92EF92FF920F931F93CF93DF9351
+:103370008C01C090C101D090C201E090C301F090D7
+:10338000C4018091BD019091BE01A091BF01B09197
+:10339000C001C82AD92AEA2AFB2ACFE1D0E0D70106
+:1033A000C6010C2E04C0B695A795979587950A94EB
+:1033B000D2F780FF06C0B8018C2F0E947C080197CD
+:1033C00021F4219760F780E001C08C2FDF91CF912D
+:1033D0001F910F91FF90EF90DF90CF900895CF93C2
+:1033E000DF93EC010E94B019BE010E947C08DF91BE
+:1033F000CF910895CB010E94EF1908958091C501E6
+:1034000085958595859508958091C5018770089566
+:1034100098E0899F90011124262B2093C5010C94DC
+:10342000F4182091C501809582238093C501982FBF
+:10343000977069F430E0482F552747FD50952417C1
+:10344000350729F08595859585950C94151908956E
+:103450009091C501977081E009F480E00895909102
+:103460000C01992321F090910D01911109C0209137
+:103470000E0130910F01F90132969FEF40E01FC01D
+:10348000982F9695969596959F3050F5E0910E0160
+:10349000F0910F01E90FF11D877021E030E0A901E3
+:1034A00002C0440F551F8A95E2F7CA019181892B0A
+:1034B000818308959F3F39F04F5F4E3041F0519125
+:1034C0005813F8CF0DC05111F7CF942FF5CF9F3F70
+:1034D00039F0F901E90FF11D97FDFA9582830895FE
+:1034E000089590910C01992321F090910D01911173
+:1034F00009C020910E0130910F01F9013296205F31
+:103500003F4F1FC0982F9695969596959F30F0F453
+:10351000E0910E01F0910F01E90FF11D877021E09C
+:1035200030E0A90102C0440F551F8A95E2F7CA0195
+:10353000809591818923818308953196E217F3075D
+:1035400029F090819813F9CF1082F7CF089581E088
+:1035500090E0E0910E01F0910F01E80FF91F108249
+:10356000019680319105A9F708959091D901892B91
+:103570008093D901089580959091D90189238093F2
+:10358000D90108951092D90108959091D801892BFD
+:103590008093D801089580959091D80189238093D4
+:1035A000D80108951092D80108959091D701892BE0
+:1035B0008093D701089580959091D70189238093B6
+:1035C000D70108951092D70108958093C6010895F8
+:1035D0001092C601089580910E0190910F01FC0197
+:1035E00031969C01205F3F4F80E0919191118F5F58
+:1035F000E217F307D1F70895E0910E01F0910F0162
+:103600008091D9018083E0910E01F0910F019081AA
+:103610008091D801892B8083E0910E01F0910F01F8
+:1036200090818091D701892B80838091C601882366
+:1036300061F0E0910E01F0910F019081892B808360
+:103640000E94EB1A81111092C60180910E01909197
+:103650000F010C942A1020E0009739F0AC01415082
+:103660005109842395232F5FF7CF822F0895CF929E
+:10367000DF92EF92FF926C01EE24FF24C114D1047B
+:10368000E104F10421F0C701B60120E101C020E00E
+:10369000C72ED82EE92EFF24C114D104E104F10471
+:1036A00019F0285FC701B6016B017C0154E0F69464
+:1036B000E794D794C7945A95D1F7C114D104E10483
+:1036C000F10419F02C5FC701B6016B017C0142E0E7
+:1036D000F694E794D794C7944A95D1F7C114D104CE
+:1036E000E104F10419F02E5FC701B601DC01CB0142
+:1036F000B695A79597958795892B8A2B8B2B09F0E3
+:103700002F5F822FFF90EF90DF90CF9008958091F0
+:10371000F101843021F11092DB0120E488E190E096
+:103720000FB6F894A895809360000FBE20936000B8
+:1037300080E00E94170983B7817F846083BF83B7CD
+:10374000816083BF7894889583B78E7F83BF88E13B
+:103750000FB6F89480936000109260000FBE089539
+:10376000089508950E94B01B0E9454030E94B11B4B
+:103770000E94490491E0811101C090E0892F0895D1
+:103780000E94B7140E941E100C94170982E084BD99
+:1037900093E095BD9AEF97BD80936E0008952FB783
+:1037A000F8948091DC019091DD01A091DE01B0914F
+:1037B000DF012FBF0895CF92DF92EF92FF920F9318
+:1037C0001F932FB7F8944091DC015091DD01609177
+:1037D000DE017091DF012FBF6A017B01EE24FF241F
+:1037E0008C0120E030E0C016D106E206F30610F4AA
+:1037F000415051099A01281B390BC9011F910F91A2
+:10380000FF90EF90DF90CF9008951F920F920FB628
+:103810000F9211248F939F93AF93BF938091DC01FC
+:103820009091DD01A091DE01B091DF010196A11D13
+:10383000B11D8093DC019093DD01A093DE01B09374
+:10384000DF01BF91AF919F918F910F900FBE0F90AD
+:103850001F9018950E941B0DF8942FEF87EA91E6B0
+:10386000215080409040E1F700C0000087E090EBDD
+:10387000DC018093FB019093FC01A093FD01B093C8
+:10388000FE019CE088E10FB6F894A8958093600053
+:103890000FBE90936000FFCFEF92FF920F931F93A4
+:1038A000CF93DF93D82FCDE08C2F0E94420405E008
+:1038B00010E0E82EF12CC701002E02C095958795E7
+:1038C0000A94E2F780FF09C0602F7C2F80E00E94FD
+:1038D0002706D81302C081E006C00150110958F72D
+:1038E000C15010F780E0DF91CF911F910F91FF90B1
+:1038F000EF900895CF93C82F8CE20E944C1C882330
+:1039000021F08C2FCF910C944C1C80E0CF91089526
+:10391000CF930E94CF1D811102C00E94B51DC5E644
+:10392000C15049F00E9454038FE39CE90197F1F7DD
+:1039300000C00000F5CF89E20E947A1C811113C1FA
+:103940008AE20E947A1C81110E94B51D85E00E94C6
+:103950007A1C81110E942A1C0E94DA1D8093DA01D0
+:1039600087E00E947A1C8823A9F18BE10E947A1CCF
+:10397000882351F08091DA0181FB222720F991E020
+:10398000922790FB81F90EC08EE00E947A1C88235A
+:1039900061F08091DA0182FB222720F991E09227E1
+:1039A00090FB82F98093DA0115C080E10E947A1CB5
+:1039B0009091DA01882341F093FB222720F981E0DE
+:1039C000822780FB93F904C0892F809580FB90F9B2
+:1039D0009093DA018091DA010E94DE1D0E94EC1DB5
+:1039E0008093FA0180EE0E947A1C882341F0809136
+:1039F000FA01982F909590FB80F98093FA0189E362
+:103A00000E947A1C882359F08091FA0181FB2227B9
+:103A100020F991E0922790FB81F98093FA0182EEE0
+:103A20000E947A1C882359F08091FA0182FB222798
+:103A300020F991E0922790FB82F98093FA0186EEBB
+:103A40000E947A1C882359F08091FA0183FB222777
+:103A500020F991E0922790FB83F98093FA0183EE9D
+:103A60000E947A1C882359F08091FA0184FB222756
+:103A700020F991E0922790FB84F98093FA0185E385
+:103A80000E947A1C882359F08091FA0185FB222735
+:103A900020F991E0922790FB85F98093FA0181E368
+:103AA0000E947A1C882359F08091FA0186FB222714
+:103AB00020F991E0922790FB86F98093FA0181E149
+:103AC0000E947A1C882359F08091FA0187FB2227F3
+:103AD00020F991E0922790FB87F98093FA01809179
+:103AE000FA010E94F01D8091FA0187FB882780F976
+:103AF00080930D0187E20E947A1CC82F8EE10E94FC
+:103B00007A1C8111C2608FE10E947A1C8111C4600D
+:103B100080E20E947A1C8111C86081E20E947A1CB6
+:103B20008111C06182E20E947A1C8111C06283E22D
+:103B30000E947A1C8111C06484E20E947A1C88234E
+:103B400011F0C06802C0CC2329F08C2F0E94E71D21
+:103B50006C2F03C00E94E31D682F70E080E090E0AE
+:103B6000CF910C947718CF9108956DEE7EEF80E0A1
+:103B700090E00E94212460E082E090E00E940F2407
+:103B800060E083E090E00E940F2460E084E090E039
+:103B90000E940F2460E085E090E00C940F2480E008
+:103BA00090E00E94092421E08D3E9E4F09F020E024
+:103BB000822F089582E090E00C940124682F82E027
+:103BC00090E00C940F2483E090E00C940124682F83
+:103BD00083E090E00C940F2484E090E00C940124A6
+:103BE000682F84E090E00C940F248091E20180FF24
+:103BF0000BC06091130185E0689FB0011124759599
+:103C00006795759567952BC081FF09C06091130179
+:103C100085E0689FB00111247595679520C082FFEB
+:103C200007C06091130185E0689FB001112417C09F
+:103C30009091E3019923D1F060911201961788F7D2
+:103C40002091130185E0289F90011124929FA001EB
+:103C5000939F500D112470E0CA010E94D323603855
+:103C6000710540F46115710539F002C065E070E03E
+:103C7000862F08958FE7089581E008958091E201ED
+:103C800080FF08C06091110170E07595679575958A
+:103C9000679521C081FF06C06091110170E07595A4
+:103CA000679519C082FF04C06091110170E010C0D7
+:103CB0009091E3019923C1F0609110019617A0F74C
+:103CC00080911101899FC001112470E00E94D323CB
+:103CD0006038710528F46115710521F0862F08956B
+:103CE0008FE7089581E0089561E070E0F4CF803FB0
+:103CF00021F40E94F51D819504C0813F29F40E94A2
+:103D0000F51D8093E6010895823F21F40E94F51D80
+:103D1000819504C0833F29F40E94F51D8093E5013D
+:103D20000895893F19F40E943E1E05C08A3F31F470
+:103D30000E943E1E81958093E70108958B3F21F4F8
+:103D40000E943E1E819504C08C3F29F40E943E1EB5
+:103D50008093E8010895843F21F48091E40181601B
+:103D600017C0853F21F48091E401826011C0863F35
+:103D700021F48091E40184600BC0873F21F480919D
+:103D8000E401886005C0883F31F48091E4018061DE
+:103D90008093E40108958D3F21F48091E2018160D8
+:103DA0000BC08E3F21F48091E201826005C08F3FFD
+:103DB00029F48091E20184608093E2010895803FBC
+:103DC00039F48091E60187FF6CC01092E60169C06A
+:103DD000813F29F48091E6011816BCF362C09091EE
+:103DE000E501823F29F497FF5CC01092E50159C0BC
+:103DF000833F19F41916CCF354C0893F41F48091E4
+:103E0000E70118160CF04DC01092E7014AC08A3F36
+:103E100029F48091E70187FF44C0F6CF8B3F39F446
+:103E20008091E80187FF3DC01092E8013AC08C3FC5
+:103E300029F48091E8011816BCF333C0843F21F4C3
+:103E40008091E4018E7F17C0853F21F48091E401C9
+:103E50008D7F11C0863F21F48091E4018B7F0BC0E0
+:103E6000873F21F48091E401877F05C0883F31F4CA
+:103E70008091E4018F7E8093E40113C08D3F21F493
+:103E80008091E2018E7F0BC08E3F21F48091E20190
+:103E90008D7F05C08F3F29F48091E2018B7F809355
+:103EA000E2018091E50181110EC08091E60181114E
+:103EB0000AC08091E701811106C08091E80181115B
+:103EC00002C01092E301089584EE91E00E94351043
+:103ED0000E94CF1B9093E1018093E00108951F930E
+:103EE000CF93DF938091E0019091E1010E94DB1B71
+:103EF000AC019091E301992321F02091140130E06D
+:103F000006C0209115018AE0289F900111244217D4
+:103F1000530708F486C08091E501C091E601D09175
+:103F2000E7011091E801811107C0C11176C0D111DC
+:103F300074C0111172C075C09F3F19F09F5F9093BC
+:103F4000E301181624F40E94F51D8093E501809189
+:103F5000E50187FF05C00E94F51D81958093E5016D
+:103F60001C1624F40E94F51D8093E6018091E60161
+:103F700087FF05C00E94F51D81958093E601609141
+:103F8000E501662339F1C091E601CC2319F17727C9
+:103F900067FD7095872F972F0E94E42223E333E378
+:103FA00043E35FE30E9448230E94B1226093E5014E
+:103FB0006C2F772767FD7095872F972F0E94E4223B
+:103FC00023E333E343E35FE30E9448230E94B122EB
+:103FD0006093E6011D1624F40E943E1E8093E701C3
+:103FE0008091E70187FF05C00E943E1E8195809366
+:103FF000E701111624F40E943E1E8093E80180918F
+:10400000E80187FF05C00E943E1E81958093E8016C
+:10401000DF91CF911F910C94641F9F3F09F08ECFC9
+:1040200096CFDF91CF911F910895E4EEF1E085E006
+:10403000DF011D928A95E9F71092E3011092E201E7
+:104040000895833081F128F4813059F08230D1F025
+:104050000895853009F449C0B8F1863009F456C096
+:10406000089580911501262F30E0280F311D2F3F34
+:10407000310524F4680F6093150108958FEF809344
+:104080001501089580911401262F30E0280F311D6D
+:104090002F3F310524F4680F6093140108958FEFCA
+:1040A00080931401089580911301262F30E0280F8A
+:1040B000311D2F3F310524F4680F609313010895DB
+:1040C0008FEF80931301089580911201262F30E025
+:1040D000280F311D2F3F310524F4680F6093120122
+:1040E00008958FEF80931201089580911101262F7A
+:1040F00030E0280F311D2F3F310524F4680F609305
+:10410000110108958FEF809311010895809110019E
+:10411000262F30E0280F311D2F3F310524F4680F82
+:104120006093100108958FEF8093100108958330FC
+:1041300011F128F4813049F0823091F008958530F2
+:1041400081F120F18630C1F1089580911501681741
+:1041500020F4861B8093150108951092150108958F
+:1041600080911401681720F4861B80931401089530
+:1041700010921401089580911301681720F4861B92
+:1041800080931301089510921301089580911201F4
+:10419000681720F4861B8093120108951092120173
+:1041A000089580911101681720F4861B80931101F6
+:1041B000089510921101089580911001681720F45C
+:1041C000861B8093100108951092100108950F939B
+:1041D0001F938D3109F46BC008F03FC08E3009F495
+:1041E0007FC0C0F4873009F469C068F4863009F0F4
+:1041F000B1C08091DA01817F8E7F8093DA0181E006
+:104200008093EA01A8C0883009F4A2C08B3009F479
+:104210009FC0A0C0863109F49BC078F4803109F4B6
+:1042200072C0813109F096C00E94B71490910D01BF
+:1042300081E0892780930D018BC0893109F488C002
+:104240008B3109F087C08091DA0181FB222720F9A8
+:1042500091E0922790FB81F94CC0853309F470C03E
+:1042600048F4873209F46CC008F459C0893209F463
+:1042700067C070C0833438F48A3308F04EC0883386
+:1042800009F466C067C0833409F45AC0883409F061
+:1042900061C00E94B7140FEF13ED20E301501040EE
+:1042A0002040E1F700C000000E942A1C51C00E947B
+:1042B0006B220E941E100E9417094AC09091DA01D9
+:1042C000892F8095817080FB90F929F09660986025
+:1042D0009093DA0140C0997F977F9093DA0138C0BC
+:1042E0008091DA0182FB222720F991E0922790FB4E
+:1042F00082F98093DA01992359F18091DA01816082
+:104300008093DA0125C08091DA0183FB222720F90E
+:1043100091E0922790FB83F9ECCF895301C08D5136
+:1043200041E050E060E070E08A019B0104C0000FB2
+:10433000111F221F331F8A95D2F7C901B80104C08B
+:1043400061E070E080E090E00E9477180E94B7146E
+:1043500081E001C080E01F910F91089580E00895F1
+:1043600080E00895CF93C82F8091EA01813079F0E1
+:1043700018F08230E9F187C0E0910E01F0910F0151
+:104380008081813169F0823209F07FC009C0E091FB
+:104390000E01F0910F018081813111F0823261F4C0
+:1043A0008C2F0E94AE21811104C08C2F0E94E72027
+:1043B0001DC081E090E01AC08C2F0E94B0218111B5
+:1043C00014C0C43179F048F4CB3079F0C03109F031
+:1043D00060C082E08093EA0108C0C93219F0C83396
+:1043E00021F057C01092EA0154C081E0817053C09F
+:1043F000C93289F118F5C43171F1A8F4C73009F058
+:1044000046C08AE08093150194E19093140193E0F3
+:10441000909313018093120188E08093110188E248
+:104420008093100134C0CE51C63088F5EC2FF0E0F7
+:10443000E65DFE4F80818093E90129C0CE34E9F02A
+:1044400020F4CB3421F56AE013C0C13579F0C235D0
+:10445000F1F461E00DC08091E901882319F0109218
+:10446000E90115C081E08093EA0115C061E006C052
+:104470008091E9010E9421200AC06AE08091E9014F
+:104480000E94972004C01092EA0180E004C081E0FD
+:1044900002C080E0ABCFCF910895E1E8F0E08081E9
+:1044A000886080838081816080838FB7F89493E0F7
+:1044B0009093890090ED909388008FBF0895EFE668
+:1044C000F0E08081826080830895EFE6F0E08081F3
+:1044D0008D7F80830895EFE6F0E0908182E0892768
+:1044E000808308951F920F920FB60F9211242F937D
+:1044F0003F934F935F936F937F938F939F93AF936C
+:10450000BF93EF93FF938091EB019091EC010196A3
+:104510009093EC018093EB01811103C082E00E9433
+:104520001709E091EC01E695E695F0E0EA53FB4FC0
+:10453000E4918091EB018E1303C080E00E94170983
+:10454000FF91EF91BF91AF919F918F917F916F916B
+:104550005F914F913F912F910F900FBE0F901F9041
+:10456000189504D06894B1118DC0089570D088F06A
+:104570009F5790F0B92F9927B751A0F0D1F0660F4F
+:10458000771F881F991F1AF0BA95C9F712C0B1306A
+:1045900081F077D0B1E0089574C0672F782F882715
+:1045A000B85F39F0B93FCCF3869577956795B395A9
+:1045B000D9F73EF490958095709561957F4F8F4F18
+:1045C0009F4F0895E89409C097FB3EF4909580951D
+:1045D000709561957F4F8F4F9F4F9923A9F0F92FC9
+:1045E00096E9BB279395F695879577956795B79547
+:1045F000F111F8CFFAF4BB0F11F460FF1BC06F5F2D
+:104600007F4F8F4F9F4F16C0882311F096E911C03E
+:10461000772321F09EE8872F762F05C0662371F05F
+:1046200096E8862F70E060E02AF09A95660F771F73
+:10463000881FDAF7880F9695879597F9089557FDA3
+:104640009058440F551F59F05F3F71F04795880F00
+:1046500097FB991F61F09F3F79F087950895121697
+:1046600013061406551FF2CF4695F1DF08C0161643
+:1046700017061806991FF1CF8695710561050894F4
+:104680000895E894BB2766277727CB0197F908950B
+:104690000BD078C069D028F06ED018F0952309F0BF
+:1046A0005AC05FC01124EECFCADFA0F3959FD1F3AB
+:1046B000950F50E0551F629FF001729FBB27F00DD0
+:1046C000B11D639FAA27F00DB11DAA1F649F662725
+:1046D000B00DA11D661F829F2227B00DA11D621F74
+:1046E000739FB00DA11D621F839FA00D611D221F2E
+:1046F000749F3327A00D611D231F849F600D211D12
+:10470000822F762F6A2F11249F5750408AF0E1F0B4
+:1047100088234AF0EE0FFF1FBB1F661F771F881FFD
+:1047200091505040A9F79E3F510570F014C0AACF98
+:104730005F3FECF3983EDCF3869577956795B795E8
+:10474000F795E7959F5FC1F7FE2B880F911D969512
+:10475000879597F9089597F99F6780E870E060E082
+:1047600008959FEF80EC089500240A94161617060A
+:1047700018060906089500240A9412161306140652
+:1047800005060895092E0394000C11F4882352F0B5
+:10479000BB0F40F4BF2B11F460FF04C06F5F7F4F6D
+:1047A0008F4F9F4F089597FB072E16F4009407D064
+:1047B00077FD09D00E94ED2307FC05D03EF49095CB
+:1047C00081959F4F0895709561957F4F0895EE0FE5
+:1047D000FF1F0590F491E02D0994AA1BBB1B51E12A
+:1047E00007C0AA1FBB1FA617B70710F0A61BB70B61
+:1047F000881F991F5A95A9F780959095BC01CD0106
+:104800000895F999FECF92BD81BDF89A992780B598
+:104810000895A8E1B0E042E050E00C942924262F4E
+:10482000F999FECF92BD81BDF89A019700B40216A6
+:1048300039F01FBA20BD0FB6F894FA9AF99A0FBE54
+:1048400008950196272F0E9410240C940F24DC0158
+:10485000CB01FC01F999FECF06C0F2BDE1BDF89A8B
+:10486000319600B40D9241505040B8F70895F89435
+:02487000FFCF78
+:1048720002201909A709840950091C090101C7016D
+:1048820028080A03140A3F4D363987043A040404FF
+:10489200CB035E0377039003A90301020304050619
+:0448A20007080900FA
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/plums/keymap.c b/keyboards/ergodox_ez/keymaps/plums/keymap.c new file mode 100644 index 000000000..46eb2e42b --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/plums/keymap.c @@ -0,0 +1,229 @@ +#include "ergodox_ez.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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | F5 | |Hypr+M| 6 | 7 | 8 | 9 | 0 | Mute | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | LGui | A | S | D | F | G |------| |------| H | J | K | L | ; | ' | + * |--------+------+------+------+------+------| SYMB | | MDIA |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |Ca/Ctl| { | ( | | | : | | - | = | ) | } |C`/Ctl| + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | LGA | LAlt | | RAlt | Play | + * ,------|------|------| |------+------+------. + * | | | Home | | PgUp | | | + * |Backsp| Esc |------| |------|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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F5, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, + KC_LGUI, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, TG(SYMB), + F(0), KC_LCBR, KC_LPRN,KC_PIPE,KC_COLN, + LGUI(KC_LALT), KC_LALT, + KC_HOME, + KC_BSPC, KC_ESC, KC_END, + // right hand + HYPR(KC_M), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MUTE, + 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_QUOT, + TG(MDIA), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_MINS, KC_EQL, KC_RPRN, KC_RCBR, F(1), + KC_RALT, KC_MPLY, + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | | | | | | | | | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| Left | Down | Up | Right| | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, + 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 +), +/* Keymap 2: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------|MsLeft|MsDown| MsUp |MsRght| | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |VolUp |VolDn | Prev | Next | | | LClk | RClk | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_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_VOLD, KC_MPRV, KC_MNXT, 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_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_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_WBAK +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [0] = ACTION_MACRO_TAP(0), // FN0 - Ctrl + a (For screen/tmux) + [1] = ACTION_MACRO_TAP(1) // FN1 - Ctrl + ` (For quake style console) +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) // this is the function signature -- just copy/paste it into your keymap file as it is. +{ + switch(id) { + case 0: + if (record->event.pressed) { + if (record->tap.count) { + if (record->tap.interrupted) { + record->tap.count = 0; + // hold press action + register_code(KC_LCTL); + } else { + // tap press action + return MACRO( D(LCTL), T(A), U(LCTL), END ); + } + } else { + // hold press action + register_code(KC_LCTL); + } + } else { + if (record->tap.count) { + // tap release action + } else { + // hold release action + unregister_code(KC_LCTL); + } + record->tap.count = 0; + } + break; + case 1: + if (record->event.pressed) { + if (record->tap.count) { + if (record->tap.interrupted) { + record->tap.count = 0; + // hold press action + register_code(KC_RCTL); + } else { + // tap press action + return MACRO( DOWN(KC_RCTL), TYPE(KC_GRV), UP(KC_RCTL), END ); + } + } else { + // hold press action + register_code(KC_RCTL); + } + } else { + if (record->tap.count) { + // tap release action + } else { + // hold release action + unregister_code(KC_RCTL); + } + record->tap.count = 0; + } + 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/plums/plums.png b/keyboards/ergodox_ez/keymaps/plums/plums.png Binary files differnew file mode 100644 index 000000000..2f127c4ca --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/plums/plums.png diff --git a/keyboards/ergodox_ez/keymaps/plums/readme.md b/keyboards/ergodox_ez/keymaps/plums/readme.md new file mode 100644 index 000000000..b72329eef --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/plums/readme.md @@ -0,0 +1,11 @@ +# ErgoDox EZ Plums Configuration + +## Changelog + +* Apr 23, 2016 (v0.1.0): + * Shortcut for iTerm2 quake style dropdown (Ctrl+`) + * Shortcut for screen/tmux (Ctrl+a) + * Shortcut for shush (Hyper+m) + * Combo modifier for LGUI + LALT + +![Plums](plums.png) diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/compiled.hex b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/compiled.hex new file mode 100644 index 000000000..74449a955 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/compiled.hex @@ -0,0 +1,1098 @@ +:100000000C94D1010C9415020C9415020C94150259
+:100010000C9415020C9415020C9415020C94150204
+:100020000C9415020C9415020C941E0D0C94F00DFA
+:100030000C9415020C9415020C9415020C941502E4
+:100040000C9415020C945A200C9415020C94150271
+:100050000C9415020C943C1B0C9415020C94150284
+:100060000C9415020C9415020C9415020C941502B4
+:100070000C9415020C9415020C9415020C941502A4
+:100080000C9415020C9415020C9415020C94150294
+:100090000C9415020C9415020C9415020C94150284
+:1000A0000C9415020C9415020C9415025D0E7F0E33
+:1000B0006D0F7F0E6D0FC40EE70E6D0F3C0F4F0FCF
+:1000C0001E121E124D124D128312A312D413D413FA
+:1000D000AE12D4135E135E13C513D413D413CE1310
+:1000E0006B136B136B136B136B136B136B136B1320
+:1000F0006B136B136B136B136B136B136B136B1310
+:100100007D138A1391139813A21335002B002961D4
+:10011000E1003A0000001E00140004001D003B0036
+:10012000E2001F001A0016001B003C00296120009D
+:100130000700080006003D002A0021000900170002
+:100140001900E300A90022000E000A0005000000CB
+:10015000AA003E00310000002F000000A8003F0070
+:100160000000000030000000AE0023000D001C0065
+:1001700013000000AB002400180011001000E7007D
+:10018000AC00250015000C00360050002C002600A5
+:100190000F001200370051003400270033000B001D
+:1001A00038005200E6002E002D002800E5004F0028
+:1001B000000016034500720067006F0044006F00E6
+:1001C0007800200045005A00000016034500720028
+:1001D00067006F0044006F007800200045005A005F
+:1001E00000000403090409026D00040100A0FA09DB
+:1001F0000400000103010100092111010001224056
+:10020000000705810308000A090401000103010237
+:1002100000092111010001224D0007058203080099
+:100220000A09040200010300000009211101000174
+:100230002236000705830308000A090403000103AE
+:100240000000000921110100012239000705840383
+:100250001000011201100100000008EDFE0713015B
+:10026000000102000105010906A101050719E029A5
+:10027000E715002501950875018102050819012976
+:100280000595057501910295017503910105071901
+:1002900000297715002501957875018102C00501B7
+:1002A0000980A101850216010026B7001A01002A63
+:1002B000B700751095018100C0050C0901A10185E9
+:1002C00003160100269C021A01002A9C0275109553
+:1002D000018100C005010902A1010901A100050970
+:1002E0001901290515002501950575018102950162
+:1002F000750381010501093009311581257F9502BA
+:100300007508810609381581257F950175088106D4
+:10031000050C0A38021581257F950175088106C0F4
+:10032000C005010906A101050719E029E715002507
+:10033000019508750181029501750881010508196B
+:100340000129059505750191029501750391010536
+:1003500007190029FF150026FF0095067508810082
+:10036000C0000000000000000000000001020406C0
+:100370000A0F17202C3A4A5D71879DB3C7DAE9F559
+:10038000FCFFFCF5E9DAC7B39D87715D4A3A2C2082
+:10039000170F0A0604020100000000000000000020
+:1003A000000011241FBECFEFDAE0DEBFCDBF04B6E0
+:1003B00003FE24C08091FD019091FE01A091FF01F8
+:1003C000B09100028730904BA740B04BB9F4109227
+:1003D000FD011092FE011092FF011092000214BE66
+:1003E00084B7877F84BF88E10FB6F894809360005C
+:1003F000109260000FBEE0E0FFE3099511E0A0E07D
+:10040000B1E0E2E4F4E402C005900D92A433B10738
+:10041000D9F711E0A4E3B1E001C01D92AD3FB107EF
+:10042000E1F70E94660A0C941F220C9400001092BF
+:10043000B9008AE08093B800089594EA9093BC00D4
+:100440009091BC0097FFFCCF9091B900987F9830B5
+:1004500021F0903111F081E008958093BB0084E891
+:100460008093BC008091BC0087FFFCCF8091B900D5
+:10047000887F883111F0803471F780E0089584E935
+:100480008093BC008091BC0084FDFCCF08958093D4
+:10049000BB0084E88093BC008091BC0087FFFCCF48
+:1004A0009091B900987F81E0983209F480E0089536
+:1004B00084E88093BC008091BC0087FFFCCF8091D2
+:1004C000BB00089580B38C7080BB81B3836F81BB08
+:1004D000089580910101811115C080E40E941D02E0
+:1004E0008093010181110CC082E10E944702809338
+:1004F0000101811105C08FEF0E9447028093010125
+:100500000E943F0284B1807F84B985B1807F85B924
+:100510008AB1837F8AB98BB1837F8BB93E98469825
+:1005200008950E943304809301010E9469020E9491
+:100530006202A5E3B1E0E3E4F1E08EE08E0F1192F8
+:100540001D928E13FCCF0C941D040E9433048093E3
+:1005500001010E9469020E946202A5E3B1E0E3E4A6
+:10056000F1E08EE08E0F11921D928E13FCCF089554
+:10057000BF92CF92DF92EF92FF920F931F93CF9390
+:10058000DF9380910101882379F0809134018F5F9E
+:1005900080933401811108C00E94330480930101CB
+:1005A000811102C00E94C50305E311E0C0E0D0E064
+:1005B000DD24D39482E0C82EEE24E394F12CC730DE
+:1005C000D10500F580910101811164C080E40E9491
+:1005D0001D0280930101811112C082E10E94470235
+:1005E0008093010181110BC0C7010C2E01C0880F3F
+:1005F0000A94EAF780950E944702809301010E94C5
+:100600003F0248C0CA30A1F028F4C83059F0C930C0
+:1006100061F005C0CC3089F070F0CD3089F0209ABF
+:10062000289810C0219A29980DC0229A2A980AC0A9
+:10063000239A2B9807C0529A01C0539A5B9802C024
+:100640003E9A469890EA9A95F1F79FB1799902C03F
+:1006500082E001C080E091709D25982B7C9902C0BA
+:1006600084E001C080E0892B7D9902C038E001C0A0
+:1006700030E0832B7E9902C020E101C020E0822B74
+:100680009FB19095991F9927991F9295990F907EE8
+:10069000892B0FC080910101811149C080E40E9423
+:1006A0001D0280930101882379F1B12C0E943F0241
+:1006B0008B2DF8019081981719F08083C09200016A
+:1006C0000E94690221960F5F1F4FCE30D10509F0BD
+:1006D00076CF80910001882361F1815080930001E1
+:1006E000882339F08FE99FE00197F1F700C00000FF
+:1006F00020C0A3E4B1E0E5E3F1E0CF01825F919196
+:100700009D938E13FCCF15C083E10E944702809316
+:1007100001018111CACF81E40E941D028093010171
+:100720008111C3CF0E945802B82EB094BFCF80E091
+:10073000C0CF0E94C30381E0DF91CF911F910F9141
+:10074000FF90EF90DF90CF90BF900895E82FF0E0FA
+:10075000ED5BFE4F8081089508950F931F93CF9313
+:10076000DF93C3E4D1E010E00C2F025F899190E0A9
+:100770000E94B31A180F0C13F9CF812FDF91CF917C
+:100780001F910F9108950C948E0456985E982598A9
+:100790002D9826982E9827982F988FEF90E0909379
+:1007A00089008093880090938B0080938A009093B7
+:1007B0008D0080938C00259A2D9A2FEF80E792E090
+:1007C000215080409040E1F700C00000269A2E9A08
+:1007D0002FEF80E792E0215080409040E1F700C089
+:1007E0000000279A2F9A2FEF80E792E02150804057
+:1007F0009040E1F700C0000025982D982FEF80E78A
+:1008000092E0215080409040E1F700C0000026981F
+:100810002E982FEF80E792E0215080409040E1F742
+:1008200000C0000027982F9856985E9825982D981C
+:1008300026982E9827982F98089589EA809380000B
+:1008400089E08093810024982C983F988AB18F7416
+:100850008AB96E98479A8BB1806B8BB9769A0E9451
+:10086000C5030C94850480E28093010180915101BD
+:1008700081110EC00E94170281E0809351012FEF79
+:1008800083ED90E3215080409040E1F700C00000EC
+:1008900080E40E941D028093010181112EC00E94FC
+:1008A000470280930101811128C00E944702809372
+:1008B0000101811122C08FE30E9447028093010150
+:1008C00081111BC00E943F0280E40E941D028093A0
+:1008D0000101811112C08CE00E9447028093010146
+:1008E00081110BC00E94470280930101811105C054
+:1008F0008FE30E944702809301010E943F02809192
+:100900000101089580E090E0089556985E9825983A
+:100910002D9826982E9827982F980895089581E06D
+:10092000089581E008950C9491040895282F882358
+:1009300039F090E02A3010F44D9608950697089506
+:1009400087E290E00895AF92BF92DF92EF92FF921C
+:100950000F931F93CF93DF938C01FC01C081D18152
+:10096000CE010E943819BE010E941308EC01B801A3
+:100970000E949304882309F4C9C1F8018281882365
+:1009800009F4BEC080915E0181111FC0C431F0E73F
+:10099000DF0709F0B5C10E94950481E080935E01F4
+:1009A0000E94061B90935D0180935C01109255019B
+:1009B000109257011092560110925901109258014D
+:1009C00010925B0110925A01A1C180915C0190913B
+:1009D0005D010E94121B883C910570F480915501C5
+:1009E000E82FF0E0EE0FFF1FEA5AFE4FD183C083DD
+:1009F0008F5F809355018AC1C13020E8D20708F487
+:100A000051C0F8018281882309F47EC05E01E89418
+:100A1000B7F880915401813079F050F08230C1F400
+:100A200082EE0E94C21087E50E94C21087E50EC0C8
+:100A300082EE0E94C2100CC080EE0E94C21081EEB5
+:100A40000E94C21088E10E94C21088E10E948A11AF
+:100A50008CE0E82EF12CC5010E2C02C096958795EE
+:100A60000A94E2F78F700E949604D82E0E94C2105A
+:100A70008D2D0E948A11F4E0EF1AF1082CEFE21696
+:100A80002FEFF20641F780915401813029F010F0E8
+:100A9000823041F482EE04C080EE0E948A1181EE21
+:100AA0000E948A11C43180E7D80768F4C23090E709
+:100AB000D90708F046C0C115E0E7DE0771F0C13084
+:100AC000D047A1F10CC1C33320E7D20709F4D8C045
+:100AD000C433D04709F4EBC002C1F80182818823F6
+:100AE00009F402C10E943F14FFEF24E38CE0F150AF
+:100AF00020408040E1F700C000000E94611B06C159
+:100B0000C13080E8D80770F2C43120E7D20708F07E
+:100B1000B3C0C23080E7D807A0F4C11590E7D90769
+:100B200009F4E2C0C130D04709F0D9C0F801828190
+:100B3000882309F4D9C08091DB0181608093DB01B7
+:100B4000E5C0F8018281882309F4CEC00E94BB1B56
+:100B5000811102C00E94A11B0E94CE1B90E09093C5
+:100B6000EF018093EE01C230F0E7DF0721F48091BE
+:100B7000EE0181607AC0C33020E7D20721F4809172
+:100B8000EE01826072C0C43080E7D80721F4809102
+:100B9000EE0184606AC0C53090E7D90719F48091EE
+:100BA000EE0127C0C630E0E7DE0721F48091EE01B8
+:100BB00080615BC0C730F0E7DF0721F48091EE0170
+:100BC000806253C0C83020E7D20721F48091EE0143
+:100BD00080644BC0C93080E7D80721F48091EE01D2
+:100BE000806843C0CA3090E7D90729F48091EE01AC
+:100BF000846088603AC0CB30E0E7DE0721F4809162
+:100C0000EE018E7F32C0CC30F0E7DF0721F4809117
+:100C1000EE018D7F2AC0CD3020E7D20721F48091EC
+:100C2000EE018B7F22C0CE3080E7D80719F4809187
+:100C3000EE011AC08091EE01CF3090E7D90711F490
+:100C40008F7E13C0C031E0E7DE0711F48F7D0DC049
+:100C5000C131F0E7DF0711F48F7B07C0C231D04705
+:100C600011F48F7702C08B7F877F8093EE01809194
+:100C7000EE010E94D21B4AC0C333F0E7DF07A1F4A4
+:100C8000F8018281882321F01092520182E016C07F
+:100C900080915201811106C086E20E94C21086E254
+:100CA0000E948A1182E018C0C433D047C1F4F80111
+:100CB0008281882331F01092530180E20E94D91181
+:100CC00025C080915301811106C087E20E94C210A5
+:100CD00087E20E948A1180E20E94E01117C081E041
+:100CE0008093520180935301C801DF91CF911F91EE
+:100CF0000F91FF90EF90DF90BF90AF900C948F0416
+:100D0000C130F0E8DF0708F081CECCCE80E0DF9183
+:100D1000CF911F910F91FF90EF90DF90BF90AF9018
+:100D2000089526E0729FF001112444E5849FE00DB0
+:100D3000F11D1124E60FF11DEE0FFF1FE65FFE4FC0
+:100D4000859194910E942508811560E49607B0F57D
+:100D5000811570E3970708F0DEC0803E9105D8F456
+:100D6000803C910508F06CC0883A910578F4853A8A
+:100D7000910508F06BC08130910509F452C108F467
+:100D80000FC18430910508F04CC10AC18B3B91051D
+:100D900008F467C005C18F3F910509F048F4803F12
+:100DA000910508F0ADC0883E910508F43AC1F8C03D
+:100DB000811520E2920708F0A5C00895811543E54A
+:100DC000940790F4811562E5960708F0C8C0811574
+:100DD00071E5970708F0BEC0811520E5920708F07D
+:100DE0009DC09F70906A0895811545E59407D8F4D9
+:100DF000811564E5960708F0C8C0482F46954695CA
+:100E000070E2479FA00111248370992721E030E010
+:100E1000B90102C0660F771F8A95E2F7CB01842BD8
+:100E2000952B9A680895811576E5970708F4B2C066
+:100E30009C0130562115304108F0B2C09F70AEC001
+:100E4000FC01EE0FFF1FE657F04062C0853A9105A6
+:100E500009F4A9C0863A910509F0A8C082E890E497
+:100E60000895883A910509F4A4C0893A910509F4D6
+:100E7000A3C08A3A910509F4A2C08B3A910509F4FE
+:100E8000A1C08C3A910509F4A0C08D3A910509F4EE
+:100E90009FC0803B910509F49EC08E3A910509F4EC
+:100EA0009DC08F3A910509F49CC0813B910509F4DE
+:100EB0009BC0823B910509F49AC0833B910509F4DC
+:100EC00099C0843B910509F498C0853B910509F4CC
+:100ED00097C0863B910509F496C0873B910509F4BC
+:100EE00095C0883B910509F494C0893B910509F4AC
+:100EF00093C08A3B910509F492C080E094E4089580
+:100F000090650895FC01FF70EE0FFF1FE65FFE4F36
+:100F10008591949108959927906C0895482F437076
+:100F200021E030E002C0220F331F4A95E2F73C680F
+:100F3000AC0164E0569547956A95E1F74370342B10
+:100F40008F708695869560E2869FC0011124822B62
+:100F5000932B0895982F8827816F906A0895482FC2
+:100F60004695469570E2479FA0011124837099270A
+:100F700021E030E0B90102C0660F771F8A95E2F7E1
+:100F8000CB01842B952B9C680895982F8827846F1C
+:100F9000906A08958F719927982F882790620895F5
+:100FA00080E090E0089581E890E4089583E890E47B
+:100FB000089582EE94E4089589EE94E408958AEE0B
+:100FC00094E4089585EB94E4089586EB94E4089501
+:100FD00087EB94E408958CEC94E408958DEC94E40C
+:100FE000089583E895E408958AE895E4089582E9F0
+:100FF00095E4089584E995E4089581E296E40895DE
+:1010000083E296E4089584E296E4089585E296E406
+:10101000089586E296E4089587E296E408958AE2C8
+:1010200096E40895089596E0799FF001112494E5DF
+:10103000899FE00DF11D1124E60FF11DEE0FFF1F3A
+:10104000E65FFE4F8591949108958238910549F1AC
+:10105000B0F48133910509F458C048F48932910500
+:1010600009F44EC08A32910509F454C008958533BD
+:10107000910509F440C08933910599F00895833EA4
+:10108000910529F138F4803E910591F0823E910559
+:10109000A1F00895863E9105F9F0873E910531F162
+:1010A00008952091EE0120FD3AC021FD38C0089539
+:1010B0008091EE0180FD35C032C08091EE0182FF4B
+:1010C00032C08091EE0184FD30C083EE39C0809142
+:1010D000EE0182FD28C0F5CF8091EE0183FF27C08D
+:1010E0008091EE0184FD21C087EE2AC08091EE013F
+:1010F00083FD1DC0F5CF8091EE0185FD1AC01BC098
+:101100008091EE0185FD17C014C08091EE0186FD2F
+:1011100014C015C08091EE0186FD11C00EC080EE96
+:101120000FC089E30DC082EE0BC080E009C086EEDF
+:1011300007C089E205C085E303C08AE201C081E3FC
+:1011400090E0089508950C94A20880916F0108958D
+:10115000CF93DF9300D01F92CDB7DEB79C01809173
+:10116000F401843019F593E099833B832A839093AB
+:10117000E9008FEF9091E800815095FD06C095ED54
+:101180009A95F1F700008111F5CF8091E80085FF75
+:101190000DC040E050E063E070E0CE0101960E9497
+:1011A0000E0B8091E8008E778093E8000F900F90EF
+:1011B0000F90DF91CF910895CF93DF9300D01F92CE
+:1011C000CDB7DEB72091F401243021F522E0298348
+:1011D0009B838A8383E08093E9008FEF9091E800FE
+:1011E000815095FD06C095ED9A95F1F700008111AB
+:1011F000F5CF8091E80085FF0DC040E050E063E04E
+:1012000070E0CE0101960E940E0B8091E8008E776F
+:101210008093E8000F900F900F90DF91CF91089589
+:101220002091F4012430F1F422E02093E9002FEF23
+:101230003091E800215035FD06C035ED3A95F1F7C3
+:1012400000002111F5CF2091E80025FF0BC040E000
+:1012500050E065E070E00E940E0B8091E8008E7710
+:101260008093E8000895CF93DF93EC019091F4010F
+:10127000943009F046C080910C018823D9F0809108
+:101280000D018823B9F09093E9008FEF9091E80069
+:10129000815095FD06C095E19A95F1F70000811106
+:1012A000F5CF8091E80085FF2CC040E050E060E180
+:1012B00070E017C081E08093E9008FEF9091E80023
+:1012C000815095FD06C095ED9A95F1F700008111CA
+:1012D000F5CF8091E80085FF14C040E050E068E061
+:1012E00070E0CE010E940E0B8091E8008E77809313
+:1012F000E80080E1FE01AFE5B1E001900D928A9532
+:10130000E1F7DF91CF9108958091F301811109C038
+:101310000E94A30C0E94000D8091E20084608093E3
+:10132000E20008951092F301089508950C94472067
+:101330000E94F71A0E944D200E94A60F0C94A30849
+:1013400042E061EC81E00E941D0C42E061EC82E031
+:101350000E941D0C42E061EC83E00E941D0C42E102
+:1013600061EC84E00C941D0C8091F601833009F44B
+:1013700055C030F4813071F0823009F48EC0089588
+:101380008A3009F47AC08B3009F460C0893009F0E2
+:101390009CC020C08091F501813A09F096C08091EF
+:1013A000E800877F8093E8008091F9019091FA012D
+:1013B000892B21F460E18FE591E003C060E080E0DB
+:1013C00090E070E00E94590B8091E8008B77809349
+:1013D000E80008958091F501813209F076C080918E
+:1013E000F9019091FA01009719F0039709F06DC087
+:1013F0008091E800877F8093E8008091E80082FD7B
+:1014000005C08091F4018111F8CF5FC08091F10097
+:1014100080936F018091E8008B7753C08091F50134
+:10142000813A09F052C08091F9019091FA01892B1B
+:1014300009F04BC08091E800877F8093E80080919D
+:10144000E80080FFFCCF80910C0136C08091F5014F
+:101450008132D9F58091F9019091FA01892BA9F592
+:101460008091E800877F8093E8000E94520C809171
+:10147000F70180930C010C943F148091F5018132A7
+:1014800021F58091E800877F8093E8000E94520C4C
+:101490008091F8018093700108958091F501813A5F
+:1014A000A1F48091E800877F8093E8008091E800B4
+:1014B00080FFFCCF809170018093F1008091E80063
+:1014C0008E778093E8000C94520C089584B7877F40
+:1014D00084BF88E10FB6F89480936000109260009A
+:1014E0000FBE80E880936100109261000E94F50FAA
+:1014F0000E94A30C0E94000D8091E2008460809302
+:10150000E20078940E94860F0E94F70F82E091E03B
+:101510000E94A10F0E9435208091F401853069F46A
+:101520000E94BF1A8091F2018823B1F30E94E91A48
+:10153000882391F30E94F80AEFCF0E94FD0FECCFB1
+:10154000292F332723303105C9F064F421303105C8
+:1015500081F02230310509F043C08DE690E026EE9F
+:1015600031E042C021323105F1F02232310541F142
+:1015700037C082E190E023E532E036C09927813020
+:10158000910541F08230910541F0892B49F5E2EE59
+:10159000F1E005C0EAECF1E002C0E2EBF1E0849199
+:1015A00090E09F0121C06430D8F4E62FF0E0EE0F08
+:1015B000FF1FEE5DFE4F2081318189E090E014C075
+:1015C000643070F470E0FB01EE0FFF1FE65EFE4F2B
+:1015D00020813181FB01EA5EFE4F808190E004C0F2
+:1015E00080E090E020E030E0FA013183208308952C
+:1015F00080E189BD82E189BD09B400FEFDCF809103
+:10160000D8008F7D8093D8008091E0008260809325
+:10161000E0008091E00081FDFCCF0895CF92DF9241
+:10162000EF92FF920F931F93CF93DF93EC018B0107
+:101630006A010E94710C811133C0C114D10439F0C8
+:10164000F60180819181081B190BC80FD91FE12C6D
+:10165000F12C0115110519F18091E80085FD16C0E6
+:101660008091E8008E778093E800C114D10449F09E
+:10167000F60180819181E80EF91EF182E08285E019
+:101680000FC00E94710C882321F30AC089918093B6
+:10169000F10001501109FFEFEF1AFF0ADACF80E0E5
+:1016A000DF91CF911F910F91FF90EF90DF90CF903E
+:1016B00008952091FB013091FC012617370748F06F
+:1016C0006115710539F42091E8002E772093E80028
+:1016D00001C0B90140E061157105A9F12091F40143
+:1016E000222309F443C0253009F442C02091E800C8
+:1016F00023FD40C02091E80022FD32C02091E80087
+:1017000020FFE9CF4091F3002091F20030E0342B2C
+:10171000FC01CF016115710559F02830310540F405
+:1017200081918093F100615071092F5F3F4FF1CF9C
+:1017300041E02830310509F040E02091E8002E77A3
+:101740002093E800C8CF4111C9CF0AC08091F401AD
+:10175000882361F0853061F08091E80083FD0AC044
+:101760008091E80082FFF2CF80E0089582E0089542
+:1017700083E0089581E008952091FB013091FC0100
+:101780002617370748F06115710539F42091E800F4
+:101790002E772093E80001C0B901FC0120E061151B
+:1017A000710591F18091F401882309F440C08530DE
+:1017B00009F43FC08091E80083FD3DC08091E800BE
+:1017C00082FD2FC08091E80080FFE9CF2091F300D7
+:1017D0008091F20090E0922B6115710559F08830EC
+:1017E000910540F424912093F100319661507109E4
+:1017F0000196F2CF21E0089709F020E08091E800FF
+:101800008E778093E800CBCF2111CCCF0AC0809196
+:10181000F401882361F0853061F08091E80083FD58
+:101820000AC08091E80082FFF2CF80E0089582E054
+:10183000089583E0089581E00895982F973058F532
+:101840009093E900981739F07091EC002091ED0029
+:101850005091F00003C0242F762F50E021FF19C0D3
+:101860003091EB003E7F3093EB003091ED003D7FF7
+:101870003093ED003091EB0031603093EB007093CA
+:10188000EC002093ED005093F0002091EE0027FF34
+:1018900007C09F5FD3CF8F708093E90081E00895E8
+:1018A00080E008958091F50187FF11C08091E800E4
+:1018B00082FD05C08091F4018111F8CF11C08091A3
+:1018C000E8008B770BC08091F401882349F0809168
+:1018D000E80080FFF8CF8091E8008E778093E800E1
+:1018E00008952091E4003091E50095E64091EC00E8
+:1018F000842F817040FF22C08091E80080FD1CC0D1
+:101900008091F401882391F0853091F08091EB0073
+:1019100085FD10C04091E4005091E5004217530747
+:1019200029F39A01915011F784E0089582E0089517
+:1019300083E0089581E0089580E008954091E800F3
+:1019400042FFDECF08950E94110D0E94190DE0EEB6
+:10195000F0E0808181608083E8EDF0E080818F7726
+:10196000808319BCA7EDB0E08C918E7F8C93808131
+:101970008F7E80831092F30108950F931F93CF936E
+:10198000DF930E94110D0E94190DC8EDD0E08881EF
+:101990008F77888388818068888388818F7D88831A
+:1019A00019BC1092F4011092F0011092F201109201
+:1019B000F10100EE10E0F80180818B7F8083888147
+:1019C0008160888342E060E080E00E941D0CE1EECF
+:1019D000F0E080818E7F8083E2EEF0E080818160A4
+:1019E0008083808188608083F80180818E7F8083FE
+:1019F000888180618883DF91CF911F910F91089535
+:101A0000E8EDF0E080818F7E8083E7EDF0E080817B
+:101A10008160808384E082BF81E08093F3010C9435
+:101A2000BD0CE8EDF0E080818E7F80831092E200B3
+:101A300008951092DA001092E10008951F920F921B
+:101A40000FB60F9211242F933F934F935F936F9391
+:101A50007F938F939F93AF93BF93EF93FF93809167
+:101A6000E10082FF0BC08091E20082FF07C08091FD
+:101A7000E1008B7F8093E1000E94850F8091DA0066
+:101A800080FF1FC08091D80080FF1BC08091DA00CA
+:101A90008E7F8093DA008091D90080FF0DC080E1B5
+:101AA00089BD82E189BD09B400FEFDCF81E080934C
+:101AB000F4010E94840905C019BC1092F4010E942F
+:101AC00092098091E10080FF19C08091E20080FFBF
+:101AD00015C08091E2008E7F8093E2008091E20049
+:101AE00080618093E2008091D80080628093D8006A
+:101AF00019BC85E08093F4010E9496098091E10071
+:101B000084FF30C08091E20084FF2CC080E189BD59
+:101B100082E189BD09B400FEFDCF8091D8008F7DA0
+:101B20008093D8008091E1008F7E8093E1008091C6
+:101B3000E2008F7E8093E2008091E20081608093DA
+:101B4000E2008091F001882311F084E007C08091C9
+:101B5000E30087FD02C081E001C083E08093F401CF
+:101B60000E9498098091E10083FF29C08091E200E2
+:101B700083FF25C08091E100877F8093E10082E0B0
+:101B80008093F4011092F0018091E1008E7F8093A8
+:101B9000E1008091E2008E7F8093E2008091E2007C
+:101BA00080618093E20042E060E080E00E941D0CD2
+:101BB0008091F00088608093F0000E949509FF9169
+:101BC000EF91BF91AF919F918F917F916F915F91B5
+:101BD0004F913F912F910F900FBE0F901F9018952E
+:101BE0001F920F920FB60F9211242F933F934F9392
+:101BF0005F936F937F938F939F93AF93BF93CF9395
+:101C0000DF93EF93FF93C091E900CF708091EC00D8
+:101C1000D82FD17080FDD0E81092E9008091F000BB
+:101C2000877F8093F00078940E94340E1092E90030
+:101C30008091F00088608093F000CD2BCF70C0932E
+:101C4000E900FF91EF91DF91CF91BF91AF919F910B
+:101C50008F917F916F915F914F913F912F910F9055
+:101C60000FBE0F901F9018951F93CF93DF93CDB7A2
+:101C7000DEB7AA970FB6F894DEBF0FBECDBFE5EF73
+:101C8000F1E088E08E0F9091F10091938E13FBCFDD
+:101C90000E94B4098091E80083FF1FC18091F50183
+:101CA0009091F601492F50E04A30510508F015C1D6
+:101CB000FA01EA5AFF4F0C94CF21803881F0823824
+:101CC00009F00BC18091F9018F708093E900809138
+:101CD000EB0085FB882780F91092E90006C080910F
+:101CE000F1019091F201911182609091E800977F4B
+:101CF0009093E8008093F1001092F100C8C0282F63
+:101D00002D7F09F0EAC0882319F0823061F0E5C028
+:101D10008091F701813009F0E0C0933009F080E054
+:101D20008093F2012BC08091F701811127C080912F
+:101D3000F9018F7009F4D1C08093E9002091EB0084
+:101D400020FF1CC0933021F48091EB00806214C00E
+:101D50009091EB0090619093EB0021E030E0A901BD
+:101D600002C0440F551F8A95E2F74093EA00109293
+:101D7000EA008091EB0088608093EB001092E9000C
+:101D80008091E800877F86C08111A7C01091F7017C
+:101D90001F778091E3008078812B8093E30080910E
+:101DA000E800877F8093E8000E94520C8091E80051
+:101DB00080FFFCCF8091E30080688093E3001111E5
+:101DC00002C082E001C083E08093F40186C08058A5
+:101DD000823008F082C08091F7019091F8018C3D2B
+:101DE00053E0950779F583E08A838AE289834FB7C8
+:101DF000F894DE01139620E03EE051E2E32FF0E09C
+:101E000050935700E49120FF03C0E295EF703F5FCD
+:101E1000EF708E2F90E0EA3010F0C79601C0C096A8
+:101E20008D939D932F5F243149F74FBF8091E80038
+:101E3000877F8093E8006AE270E0CE0101960E94FD
+:101E4000590B14C0AE014F5F5F4F6091F9010E94C2
+:101E5000A00ABC01009709F440C09091E800977F68
+:101E60009093E80089819A810E94BC0B8091E800E0
+:101E70008B778093E80031C0803879F58091E80055
+:101E8000877F8093E8008091F0018093F10080913A
+:101E9000E8008E778093E8000E94520C1EC08111EA
+:101EA0001CC09091F7019230C0F48091E800877FC8
+:101EB0008093E8009093F0010E94520C8091F00111
+:101EC000811106C08091E30087FD02C081E001C05E
+:101ED00084E08093F4010E94A0098091E80083FFD0
+:101EE0000AC08091E800877F8093E8008091EB0032
+:101EF00080628093EB00AA960FB6F894DEBF0FBE07
+:101F0000CDBFDF91CF911F9108950895CF93809118
+:101F1000F4018823A1F0C091E900CF709091EC000A
+:101F2000892F817090FD80E8C82B1092E900809184
+:101F3000E80083FD0E94340ECF70C093E900CF917A
+:101F4000089590937601809375010895E09175014D
+:101F5000F0917601309721F00190F081E02D099405
+:101F600080E00895E0917501F0917601309721F0BD
+:101F70000280F381E02D09940895E0917501F091BC
+:101F80007601309721F00480F581E02D09940895C1
+:101F900020917301309174018217930771F090932F
+:101FA000740180937301E0917501F091760130978F
+:101FB00021F00680F781E02D0994089520917101A8
+:101FC000309172018217930771F0909372018093A0
+:101FD0007101E0917501F0917601309721F0008454
+:101FE000F185E02D0994089508950C94F40F0E9452
+:101FF000FD1A0E9491020C94831B9F92AF92BF9294
+:10200000CF92DF92EF92FF920F931F93CF93DF93C4
+:1020100000D000D000D0CDB7DEB70E94B8020DE0EE
+:1020200010E0AA24A394B12C902E802F0E94A60326
+:10203000980128583E4F6901F901F080F826A1F473
+:102040000150110988F78FEF89838A831B820E94D0
+:10205000061B8160782F9D838C8349815A816B8117
+:102060008D810E9494102FC09091DB0191FF04C0DC
+:102070008E830E94AC038E8125E030E0A501022E04
+:1020800001C0440F0A94EAF7E42E4F21C1F02983DE
+:102090009A828E2191E009F490E09B830E94061BB6
+:1020A0008160782F9D838C8349815A816B818D81DA
+:1020B0000E949410F6018081E826E08204C021503D
+:1020C0003109E0F6BDCF0E94511D109177010E94A9
+:1020D000A60F1817B9F00E94A60F809377012696D5
+:1020E0000FB6F894DEBF0FBECDBFDF91CF911F9129
+:1020F0000F91FF90EF90DF90CF90BF90AF909F90A7
+:102100000C94A30826960FB6F894DEBF0FBECDBF81
+:10211000DF91CF911F910F91FF90EF90DF90CF90C3
+:10212000BF90AF909F900895CF93DF93CDB7DEB768
+:102130002B970FB6F894DEBF0FBECDBF4F835887E5
+:1021400069877A878B87DE01119686E0FD011192FF
+:102150008A95E9F785E0FE01379601900D928A9500
+:10216000E1F749815A816B817C818D819E810E943A
+:10217000DD162B960FB6F894DEBF0FBECDBFDF91F4
+:10218000CF910895CF93882309F4C2C0C82F823815
+:1021900059F40E94A60F81FDBBC089E30E94B719C4
+:1021A0000E94841A89E30CC0833879F40E94A60F38
+:1021B00080FDAEC083E50E94B7190E94841A83E5B2
+:1021C0000E94F919CF910C94841A843859F40E9412
+:1021D000A60F82FD9DC087E40E94B7190E94841A51
+:1021E00087E4EECF8CEF8C0F813A48F48C2F0E945D
+:1021F0009B1F81118DC08C2F0E94B719E3CF80E205
+:102200008C0F883048F4C77081E001C0880FCA95F0
+:10221000EAF70E943D1AD6CF8BE58C0F833078F415
+:10222000C53A29F0C63A31F083E890E005C081E86C
+:1022300090E002C082E890E0CF910C94C80F88E54E
+:102240008C0F833108F064C0C83A39F1C93A41F1C2
+:10225000CA3A49F1CB3A51F1CC3A59F1CD3A61F150
+:10226000C03B69F1CE3A71F1CF3A79F1C13B81F1CE
+:10227000C23B89F1C33B91F1C43B99F1C53BA1F14C
+:10228000C63BA9F1C73BB1F1C83BB9F1C93BC1F1AC
+:10229000CA3BC9F180E090E038C082EE90E035C0E2
+:1022A00089EE90E032C08AEE90E02FC085EB90E09E
+:1022B0002CC086EB90E029C087EB90E026C08CEC28
+:1022C00090E023C08DEC90E020C083E891E01DC039
+:1022D0008AE891E01AC082E991E017C084E991E0B0
+:1022E00014C081E292E011C083E292E00EC084E269
+:1022F00092E00BC085E292E008C086E292E005C061
+:1023000087E292E002C08AE292E0CF910C94DE0F65
+:10231000CF910895882309F44BC0823859F40E9464
+:10232000A60F81FF45C089E30E94B7190E94841A55
+:1023300089E30CC0833871F40E94A60F80FF38C077
+:1023400083E50E94B7190E94841A83E50E94F91957
+:102350000C94841A843859F40E94A60F82FF28C076
+:1023600087E40E94B7190E94841A87E4EFCF9CEF9C
+:10237000980F913A58F390E2980F983050F4877084
+:1023800091E001C0990F8A95EAF7892F0E94431ABC
+:10239000DFCF9BE5980F933020F480E090E00C9421
+:1023A000C80F885A833120F480E090E00C94DE0F4F
+:1023B0000895882321F00E943D1A0C94841A0895F0
+:1023C000882321F00E94431A0C94841A08957F9266
+:1023D0008F929F92AF92BF92CF92DF92EF92FF9235
+:1023E0000F931F93CF93DF931F92CDB7DEB77C017E
+:1023F000C62E772EFC01058102950F7012811111F6
+:102400000E945A1A0E94B019882379F0112369F0AA
+:1024100080E28C0D883048F082E00E9499190E9479
+:10242000B01991E0D82ED92601C0D12CE72DE29524
+:10243000EF70F0E0E05AFF4F0C94CF21872D807FA2
+:10244000072D0F70882311F00295007F112389F06A
+:10245000002309F490C180E28C0D883020F4802F95
+:102460000E943D1A03C0802F0E944D1A0E94841AB8
+:1024700082C18C2D0E948A11002309F495C180E24B
+:102480008C0D883020F4802F0E94431A03C0802FC7
+:102490000E94531A0E94841A87C1972D907F872D1E
+:1024A0008F70903211F08295807FCC2021F0F1E086
+:1024B000CF16B1F01EC0112349F0002309F414C156
+:1024C000013009F011C10E946D1A6EC1002319F08C
+:1024D000013009F469C189830E94701A89810AC197
+:1024E000112321F0023008F05FC1FEC001115CC170
+:1024F00001C1112321F0002309F4F6C03CC10023DF
+:1025000009F4F8C03EC1872D86958695837090E0CA
+:10251000009719F0019761F047C1112321F08C2D2C
+:10252000972D937002C080E090E00E94C80F3CC1DC
+:10253000112321F08C2D972D937002C080E090E044
+:102540000E94DE0F31C18C2D112319F00E94591CFD
+:1025500002C00E94C11C0E94461D26C1872D8370A7
+:1025600009F052C0111120C18C2D8295869587707B
+:10257000880F880F9C2D9F70892E912CA12CB12C37
+:10258000082E04C0880C991CAA1CBB1C0A94D2F704
+:10259000C4FE14C00FE010E020E030E0B901A80153
+:1025A00004C0440F551F661F771F8A95D2F7CB01D1
+:1025B000BA01609570958095909503C060E070E0D9
+:1025C000CB01272D26952695237030E0223031054A
+:1025D00069F02330310589F0682979298A299B29F6
+:1025E0002130310571F00E942518DEC06829792953
+:1025F0008A299B290E944118D7C00E942518C5012D
+:10260000B4010E940918D0C0112319F0872D8170E0
+:1026100001C08695882309F4C7C08C2D82958695C4
+:102620008770880F880F9C2D9F70892E912CA12C6C
+:10263000B12C082E04C0880C991CAA1CBB1C0A943F
+:10264000D2F7C4FE14C00FE010E020E030E0B90182
+:10265000A80104C0440F551F661F771F8A95D2F743
+:10266000CB01BA01609570958095909503C060E0AC
+:1026700070E0CB01272D269526952370422F50E040
+:102680004230510569F04330510589F068297929B4
+:102690008A299B294130510571F00E94FF1884C09E
+:1026A000682979298A299B290E941B197DC00E94CB
+:1026B000FF18C501B4010E94E31876C08C2D90E08C
+:1026C000FC01E05EF109E531F10508F050C0E05988
+:1026D000FF4F0C94CF210C2D0F70872D8F7111237C
+:1026E00031F00E947C18802F0E94D9115DC00E9499
+:1026F0009D18802F0E94E01157C0112339F001115D
+:1027000053C0872D8F710E94C2184EC0023008F04E
+:102710004BC0F7CF112339F0872D8F710E947C18A1
+:1027200043C01123C9F3872D8F710E949D183CC0AF
+:10273000112329F0872D8F710E94671835C00E94E0
+:102740005D1832C0112351F0172D1F71812F0E9487
+:102750007C1863E0812F0E94901926C081E00E94BE
+:102760009919023008F182E00E9499191DC01123C5
+:1027700031F0002389F28C2D0E94C21015C0002375
+:1027800091F28C2D0E948A110FC0472D4F706C2D35
+:10279000C7010E9482040E94811706C0472D4F7016
+:1027A0006C2DC7010E941208DD20F9F00E948C19DF
+:1027B00080FD1BC0F70112820E9486190E947C18BE
+:1027C000C7010E9404140E9486190F90DF91CF91D7
+:1027D0001F910F91FF90EF90DF90CF90BF90AF903F
+:1027E0009F908F907F900C949D180F90DF91CF91C8
+:1027F0001F910F91FF90EF90DF90CF90BF90AF901F
+:102800009F908F907F9008950F931F93CF93DF93A6
+:10281000EC01888199812B813C81232BB9F09F3F6A
+:1028200011F48F3F99F0CE010E94A304882371F028
+:10283000688179818A810E9482198C010E943719EE
+:102840000E94FE17B801CE010E94E711DF91CF91DF
+:102850001F910F9108950E945A1A0E946A1A0E94AD
+:102860002F1A0E94841A0E94F71D0E94461D80E0C4
+:1028700090E00E94C80F80E090E00C94DE0F0E9470
+:102880004A1A0C942B140E947719292F22952F7025
+:1028900030E02C3031054CF42A3031056CF42250F4
+:1028A000310922303105A8F407C02C30310569F018
+:1028B0002F30310551F00DC0803F69F018F4803E93
+:1028C00040F409C0843F29F406C093FB882780F9AF
+:1028D000089580E0089581E00895CF93DF9300D0BC
+:1028E00000D01F92CDB7DEB70F900F900F900F90D2
+:1028F0000F90DF91CF910895CF93DF9300D000D058
+:1029000000D0CDB7DEB726960FB6F894DEBF0FBE67
+:10291000CDBFDF91CF9108951F93CF93DF93C091E7
+:10292000860116E080918701C81799F0D0E01C9FBE
+:10293000F0011D9FF00D1124E857FE4F4081518199
+:1029400062817381848195810E947C142196C77075
+:10295000E9CFDF91CF911F9108954091B801509137
+:10296000B9016091BA017091BB018091BC01909155
+:10297000BD010C947C148091BD0182958F7009F08B
+:1029800054C08091BA01882309F44FC08091860118
+:10299000A09187016091B8017091B9014091BB018C
+:1029A0005091BC01B6E08A1709F43FC090E0411590
+:1029B0005105C1F17F3F11F46F3FA1F1B89FF001C4
+:1029C000B99FF00D1124E857FE4F218172132AC0E0
+:1029D0002081621327C02281211124C023813481E8
+:1029E0002417350710F421503109241B350B283CDE
+:1029F0003105C0F42091BD012F7020612093BD01ED
+:102A000026E0289FF001299FF00D1124E357FE4F87
+:102A100080818F708061808388EB91E00E94041434
+:102A20000C948C1401968770BECF0895CF92DF92DC
+:102A3000EF92FF920F931F93CF93DF93CDB7DEB743
+:102A400062970FB6F894DEBF0FBECDBF8C0185E054
+:102A5000F801DE011D9601900D928A95E1F7D801EB
+:102A60004C9111965C91119712966C911297139656
+:102A7000CD90DC9014973091B8017091B90180919C
+:102A8000BB019091BC01009709F46BC17F3F19F421
+:102A90003F3F09F466C1E090BA01EE2009F4C0C0DE
+:102AA0002091BD01C816D90628F0F601E81BF90BE4
+:102AB000CF0104C0809590958C0D9D1DFF24F3944B
+:102AC000883C910578F0F12C207F09F0C6C07C2D60
+:102AD000D98AC88A89890E946D1488EB91E00E9486
+:102AE0000414B1C0822F807F09F046C0751314C052
+:102AF000341312C0611110C02F7020612093BD01EA
+:102B00000E94AD1488EB91E00E9404148091BD01F5
+:102B1000D80115968C932EC0CD2819F15F3F11F482
+:102B20004F3FF9F0F62E61111CC080918601209173
+:102B3000870136E0821709F45AC090E0389FF0010F
+:102B4000399FF00D1124E857FE4F7181571306C0CD
+:102B50007081471303C07281711103C001968770A1
+:102B6000E9CFF62E662309F418C18091BD0181607A
+:102B70008093BD01F12C11C1751308C0341306C038
+:102B8000611104C08091BD01D801C3C04D875E872B
+:102B90008D859E856A8B0E9443146A898823E1F1A2
+:102BA0006623D1F12091BD01822F82958F7090E034
+:102BB000029774F08091B8019091B90198878F8342
+:102BC0001986DB86CA862C87CE0107960E940414DC
+:102BD00086E0F801A8EBB1E001900D928A95E1F74B
+:102BE0000E94BB140E94AD14FF24F394D6C04D87FD
+:102BF0005E878D859E850E947719292F22952F70DB
+:102C000030E0223031050CF0BCC09F7009F0B6C036
+:102C1000805E883008F4C1C0C8010E940414E4CF6B
+:102C2000C816D90608F453C0F601E81BF90BCF010A
+:102C3000883C910508F450C0F12C7C2DD98AC88AB3
+:102C400089890E946D14E8EBF1E086E0DF011D92B6
+:102C50008A95E9F70E94AD14A0C0751314C034130F
+:102C600012C0611110C08091BD01F8018583C801B7
+:102C70000E94041486E0E8EBF1E0DF011D928A95E2
+:102C8000E9F7FE2C8AC04D875E878D859E856A8B0D
+:102C90000E9443146A89882309F4BECF662309F48D
+:102CA000BBCF2091BD01822F82958F7090E002975B
+:102CB0000CF48ECF8091B8019091B9019A838983E9
+:102CC0001B82DD82CC822E83CE0101967FCF809540
+:102CD00090958C0D9D1DACCFF62E662309F49CCFEC
+:102CE00075132EC034132CC02091BD0120FD1FC0D0
+:102CF000822F82958F70D9F0D80115962C93159755
+:102D00008F3049F08F5F982F9295907F822F8F7030
+:102D1000892B15968C93C8010E94041486E0F80153
+:102D2000A8EBB1E001900D928A95E1F793CF86E090
+:102D3000F801A8EBB1E001900D928A95E1F72DC062
+:102D40004D875E878D859E850E944314811140CFFB
+:102D50008091BD0181608093BD01C8010E9404146F
+:102D60001CC0662309F458CF4D875E878D859E85EC
+:102D70000E944314882309F44FCF2ACF811148CFF2
+:102D80000CC0243031050CF047CF9F7009F440CFC0
+:102D9000F8019581907F09F03BCF8F2D62960FB699
+:102DA000F894DEBF0FBECDBFDF91CF911F910F9181
+:102DB000FF90EF90DF90CF9008951F93CF93DF9314
+:102DC000CDB7DEB72C970FB6F894DEBF0FBECDBFE0
+:102DD0004F83588769877A878B879C87CE010796B0
+:102DE0000E941615882369F08F8198852A853B8576
+:102DF000232BF1F19F3F09F063C08F3F09F060C0C2
+:102E000037C086E0FE013796DE01119601900D92E3
+:102E10008A95E1F76F817885EA85FB85309741F1E6
+:102E20007F3F11F46F3F21F12091870130E0C9010C
+:102E30000196877099274091860150E08417950785
+:102E400009F447C069837A83FD83EC8396E0929FFF
+:102E5000D001939FB00D1124A857BE4FFE013196AB
+:102E600001900D929A95E1F7809387010E948C144E
+:102E700016E080918601909187018917C1F1189F12
+:102E8000C001112488579E4F0E941615882379F19E
+:102E9000E09186011E9FF0011124E857FE4F40810A
+:102EA000518162817381848195810E947C1480911B
+:102EB000860190E001968770992780938601D9CF8B
+:102EC0004F81588569857A858B859C850E947C1405
+:102ED000CFCF0E943F141092870110928601E8EB39
+:102EE000F1E086E0DF011D928A95E9F7C1CF2C96CB
+:102EF0000FB6F894DEBF0FBECDBFDF91CF911F910B
+:102F00000895EF92FF920F931F93CF93DF938C015D
+:102F1000009709F46CC0F12CEE24E394E8012196AB
+:102F2000F8018491843740F4843008F051C0813036
+:102F300081F0823019F15BC0853709F444C0A8F1F3
+:102F40009CE7980F903708F052C08F770E948A1143
+:102F500041C00E5F1F4FFE01C49180E28C0F88308C
+:102F600048F4C7708E2D01C0880FCA95EAF70E94F9
+:102F70005D1A14C08C2F0E94C2102DC00E5F1F4F0F
+:102F8000FE01C49180E28C0F883058F4C7708E2DFA
+:102F900001C0880FCA95EAF70E94631A0E94841A3A
+:102FA0001AC08C2F0E948A1116C00E5F1F4FFE019F
+:102FB000C491CC2381F08FE99FE00197F1F700C025
+:102FC0000000C150F6CF0E5F1F4FFE01F49003C00A
+:102FD0000E94C2108E018F2D882309F49FCFEFE944
+:102FE000FFE03197F1F700C000008150F5CFDF918D
+:102FF000CF911F910F91FF90EF90089508956093E6
+:10300000C2017093C3018093C4019093C5010C94D5
+:103010002B140F931F930091C2011091C3012091B3
+:10302000C4013091C501DC01CB01802B912BA22B77
+:10303000B32B8093C2019093C301A093C401B093BA
+:10304000C5011F910F910C942B140F931F930091A6
+:10305000C2011091C3012091C4013091C501DC016E
+:10306000CB0180239123A223B3238093C2019093A9
+:10307000C301A093C401B093C5011F910F910C949B
+:103080002B140F931F930091C2011091C301209143
+:10309000C4013091C501DC01CB0180279127A22713
+:1030A000B3278093C2019093C301A093C401B0934E
+:1030B000C5011F910F910C942B141092BE01109218
+:1030C000BF011092C0011092C1010C942B1441E079
+:1030D00050E060E070E004C0440F551F661F771F8A
+:1030E0008A95D2F74093BE015093BF016093C0010F
+:1030F0007093C1010C942B1441E050E060E070E04B
+:1031000004C0440F551F661F771F8A95D2F7809120
+:10311000BE019091BF01A091C001B091C101482BA7
+:10312000592B6A2B7B2B4093BE015093BF016093B8
+:10313000C0017093C1010C942B1441E050E060E099
+:1031400070E004C0440F551F661F771F8A95D2F7A1
+:1031500040955095609570958091BE019091BF010A
+:10316000A091C001B091C101482359236A237B2358
+:103170004093BE015093BF016093C0017093C101A1
+:103180000C942B1441E050E060E070E004C0440F68
+:10319000551F661F771F8A95D2F78091BE019091C7
+:1031A000BF01A091C001B091C101482759276A27EA
+:1031B0007B274093BE015093BF016093C001709381
+:1031C000C1010C942B140F931F930091BE01109119
+:1031D000BF012091C0013091C101DC01CB01802BE6
+:1031E000912BA22BB32B8093BE019093BF01A09390
+:1031F000C001B093C1011F910F910C942B140F9338
+:103200001F930091BE011091BF012091C001309128
+:10321000C101DC01CB0180239123A223B32380933E
+:10322000BE019093BF01A093C001B093C1011F9153
+:103230000F910C942B140F931F930091BE011091CA
+:10324000BF012091C0013091C101DC01CB01802779
+:103250009127A227B3278093BE019093BF01A0932B
+:10326000C001B093C1011F910F910C942B140895CC
+:10327000CF92DF92EF92FF920F931F93CF93DF9342
+:103280008C01C090C201D090C301E090C401F090C5
+:10329000C5018091BE019091BF01A091C001B09184
+:1032A000C101C82AD92AEA2AFB2ACFE1D0E0D701F6
+:1032B000C6010C2E04C0B695A795979587950A94DC
+:1032C000D2F780FF06C0B8018C2F0E9491060197AB
+:1032D00021F4219760F780E001C08C2FDF91CF911E
+:1032E0001F910F91FF90EF90DF90CF900895CF93B3
+:1032F000DF93EC010E943819BE010E949106DF9114
+:10330000CF910895CB010E94771908958091C6014D
+:1033100085958595859508958091C6018770089556
+:1033200098E0899F90011124262B2093C6010C94CC
+:103330007C182091C601809582238093C601982F26
+:10334000977069F430E0482F552747FD50952417B2
+:10335000350729F08595859585950C949D180895D8
+:103360009091C601977081E009F480E008959091F2
+:103370000C01992321F090910D01911109C0209128
+:103380000E0130910F01F90132969FEF40E01FC00E
+:10339000982F9695969596959F3050F5E0910E0151
+:1033A000F0910F01E90FF11D877021E030E0A901D4
+:1033B00002C0440F551F8A95E2F7CA019181892BFB
+:1033C000818308959F3F39F04F5F4E3041F0519116
+:1033D0005813F8CF0DC05111F7CF942FF5CF9F3F61
+:1033E00039F0F901E90FF11D97FDFA9582830895EF
+:1033F000089590910C01992321F090910D01911164
+:1034000009C020910E0130910F01F9013296205F21
+:103410003F4F1FC0982F9695969596959F30F0F444
+:10342000E0910E01F0910F01E90FF11D877021E08D
+:1034300030E0A90102C0440F551F8A95E2F7CA0186
+:10344000809591818923818308953196E217F3074E
+:1034500029F090819813F9CF1082F7CF089581E079
+:1034600090E0E0910E01F0910F01E80FF91F10823A
+:10347000019680319105A9F708959091DA01892B81
+:103480008093DA01089580959091DA0189238093E1
+:10349000DA0108951092DA0108959091D901892BEB
+:1034A0008093D901089580959091D90189238093C3
+:1034B000D90108951092D90108959091D801892BCE
+:1034C0008093D801089580959091D80189238093A5
+:1034D000D80108951092D80108958093C7010895E6
+:1034E0001092C701089580910E0190910F01FC0187
+:1034F00031969C01205F3F4F80E0919191118F5F49
+:10350000E217F307D1F70895E0910E01F0910F0152
+:103510008091DA018083E0910E01F0910F0190819A
+:103520008091D901892B8083E0910E01F0910F01E8
+:1035300090818091D801892B80838091C701882355
+:1035400061F0E0910E01F0910F019081892B808351
+:103550000E94731A81111092C70180910E019091FF
+:103560000F010C94B20F20E0009739F0AC014150EC
+:103570005109842395232F5FF7CF822F08958091DF
+:10358000F401843021F11092DC0120E488E190E024
+:103590000FB6F894A895809360000FBE209360004A
+:1035A00080E00E94A30883B7817F846083BF83B7D4
+:1035B000816083BF7894889583B78E7F83BF88E1CD
+:1035C0000FB6F89480936000109260000FBE0895CB
+:1035D00008950E94A5020E94B8020E94E81A0E9463
+:1035E000AD0391E0811101C090E0892F08950E9400
+:1035F0003F140E94A60F0C94A30882E084BD93E0C0
+:1036000095BD9AEF97BD80936E0008952FB7F894FB
+:103610008091DD019091DE01A091DF01B091E00188
+:103620002FBF0895CF92DF92EF92FF920F931F93D7
+:103630002FB7F8944091DD015091DE016091DF01D8
+:103640007091E0012FBF6A017B01EE24FF248C0101
+:1036500020E030E0C016D106E206F30610F4415037
+:1036600051099A01281B390BC9011F910F91FF9035
+:10367000EF90DF90CF9008951F920F920FB60F92A8
+:1036800011248F939F93AF93BF938091DD0190910D
+:10369000DE01A091DF01B091E0010196A11DB11DF5
+:1036A0008093DD019093DE01A093DF01B093E001F0
+:1036B000BF91AF919F918F910F900FBE0F901F9070
+:1036C00018950E94A30CF8942FEF87EA91E62150F9
+:1036D00080409040E1F700C0000087E090EBDC0103
+:1036E0008093FD019093FE01A093FF01B09300022F
+:1036F0009CE088E10FB6F894A895809360000FBE17
+:1037000090936000FFCF0E94BB1B811102C00E94FA
+:10371000A11B0E94C61B8093DB010E94CE1B90E080
+:103720009093EF018093EE0187FB882780F98093C7
+:103730000D010E94CA1B682F70E080E090E00C949D
+:10374000FF176DEE7EEF80E090E00E94092260E0BE
+:1037500082E090E00E94F72160E083E090E00E9428
+:10376000F72160E084E090E00E94F72160E085E0CE
+:1037700090E00C94F72180E090E00E94F12121E09C
+:103780008D3E9E4F09F020E0822F089582E090E068
+:103790000C94E92183E090E00C94E92184E090E02E
+:1037A0000C94E921682F84E090E00C94F72180913B
+:1037B000E30180FF0BC06091130185E0689FB001B9
+:1037C000112475956795759567952BC081FF09C084
+:1037D0006091130185E0689FB0011124759567958C
+:1037E00020C082FF07C06091130185E0689FB0018F
+:1037F000112417C09091E4019923D1F06091120136
+:10380000961788F72091130185E0289F90011124D5
+:10381000929FA001939F500D112470E0CA010E9455
+:10382000BB216038710540F46115710539F002C0A3
+:1038300065E070E0862F08958FE7089581E0089590
+:103840008091E30180FF08C06091110170E07595DF
+:1038500067957595679521C081FF06C0609111013C
+:1038600070E07595679519C082FF04C060911101E1
+:1038700070E010C09091E4019923C1F060911001B3
+:103880009617A0F780911101899FC001112470E063
+:103890000E94BB216038710528F46115710521F083
+:1038A000862F08958FE7089581E0089561E070E024
+:1038B000F4CF803F21F40E94D71B819504C0813F43
+:1038C00029F40E94D71B8093E7010895823F21F4D9
+:1038D0000E94D71B819504C0833F29F40E94D71B07
+:1038E0008093E6010895893F19F40E94201C05C0C9
+:1038F0008A3F31F40E94201C81958093E80108954D
+:103900008B3F21F40E94201C819504C08C3F29F438
+:103910000E94201C8093E9010895843F21F4809146
+:10392000E501816017C0853F21F48091E501826047
+:1039300011C0863F21F48091E50184600BC0873F70
+:1039400021F48091E501886005C0883F31F48091C1
+:10395000E50180618093E50108958D3F21F4809118
+:10396000E30181600BC08E3F21F48091E30182600E
+:1039700005C08F3F29F48091E30184608093E301C7
+:103980000895803F39F48091E70187FF6CC0109261
+:10399000E70169C0813F29F48091E7011816BCF363
+:1039A00062C09091E601823F29F497FF5CC01092BB
+:1039B000E60159C0833F19F41916CCF354C0893F6E
+:1039C00041F48091E80118160CF04DC01092E80106
+:1039D0004AC08A3F29F48091E80187FF44C0F6CFAE
+:1039E0008B3F39F48091E90187FF3DC01092E901D6
+:1039F0003AC08C3F29F48091E9011816BCF333C01A
+:103A0000843F21F48091E5018E7F17C0853F21F42A
+:103A10008091E5018D7F11C0863F21F48091E50101
+:103A20008B7F0BC0873F21F48091E501877F05C024
+:103A3000883F31F48091E5018F7E8093E50113C0CA
+:103A40008D3F21F48091E3018E7F0BC08E3F21F4E6
+:103A50008091E3018D7F05C08F3F29F48091E301C0
+:103A60008B7F8093E3018091E60181110EC08091EC
+:103A7000E70181110AC08091E801811106C080919F
+:103A8000E901811102C01092E401089585EE91E0F0
+:103A90000E94BD0F0E94061B9093E2018093E101FA
+:103AA00008951F93CF93DF938091E1019091E201FC
+:103AB0000E94121BAC019091E401992321F0209106
+:103AC000140130E006C0209115018AE0289F900182
+:103AD00011244217530708F486C08091E601C09173
+:103AE000E701D091E8011091E901811107C0C111EE
+:103AF00076C0D11174C0111172C075C09F3F19F00A
+:103B00009F5F9093E401181624F40E94D71B8093C2
+:103B1000E6018091E60187FF05C00E94D71B8195D1
+:103B20008093E6011C1624F40E94D71B8093E701C2
+:103B30008091E70187FF05C00E94D71B8195809384
+:103B4000E7016091E601662339F1C091E701CC23DA
+:103B500019F1772767FD7095872F972F0E94CC204A
+:103B600023E333E343E35FE30E9430210E94992083
+:103B70006093E6016C2F772767FD7095872F972F4D
+:103B80000E94CC2023E333E343E35FE30E94302130
+:103B90000E9499206093E7011D1624F40E94201CC6
+:103BA0008093E8018091E80187FF05C00E94201CF6
+:103BB00081958093E801111624F40E94201C8093C3
+:103BC000E9018091E90187FF05C00E94201C8195D1
+:103BD0008093E901DF91CF911F910C94461D9F3F87
+:103BE00009F08ECF96CFDF91CF911F910895E5EE2A
+:103BF000F1E085E0DF011D928A95E9F71092E4017A
+:103C00001092E3010895833081F128F4813059F056
+:103C10008230D1F00895853009F449C0B8F186307A
+:103C200009F456C0089580911501262F30E0280F21
+:103C3000311D2F3F310524F4680F6093150108955D
+:103C40008FEF80931501089580911401262F30E0A5
+:103C5000280F311D2F3F310524F4680F60931401A4
+:103C600008958FEF80931401089580911301262FFA
+:103C700030E0280F311D2F3F310524F4680F609389
+:103C8000130108958FEF809313010895809112011D
+:103C9000262F30E0280F311D2F3F310524F4680F07
+:103CA0006093120108958FEF80931201089580911F
+:103CB0001101262F30E0280F311D2F3F310524F44C
+:103CC000680F6093110108958FEF8093110108959B
+:103CD00080911001262F30E0280F311D2F3F310534
+:103CE00024F4680F6093100108958FEF8093100102
+:103CF0000895833011F128F4813049F0823091F039
+:103D00000895853081F120F18630C1F108958091C8
+:103D10001501681720F4861B8093150108951092F1
+:103D20001501089580911401681720F4861B809373
+:103D300014010895109214010895809113016817D9
+:103D400020F4861B809313010895109213010895A7
+:103D500080911201681720F4861B80931201089548
+:103D600010921201089580911101681720F4861BAA
+:103D7000809311010895109211010895809110010E
+:103D8000681720F4861B809310010895109210018B
+:103D900008950F931F938D3109F471C008F045C049
+:103DA000803109F485C008F5873009F46FC068F4E4
+:103DB000863009F0ADC08091DB01817F8E7F8093DA
+:103DC000DB0181E08093EB01A4C08B3009F49EC03D
+:103DD0008E3009F09DC08091DB0182FB222720F903
+:103DE00091E0922790FB82F96CC0863109F48EC075
+:103DF00060F4813109F08CC00E943F1490910D0154
+:103E000081E0892780930D0181C0893109F47EC04A
+:103E10008B3109F07DC08091DB0181FB222720F9E5
+:103E200091E0922790FB81F94CC0853309F466C07C
+:103E300048F4873209F462C008F44FC0893209F4AB
+:103E40005DC066C0833438F48A3308F044C08833D8
+:103E500009F45CC05DC0833409F450C0883409F0B3
+:103E600057C00E943F140FEF13ED20E301501040A4
+:103E70002040E1F700C000000E94611B47C00E9483
+:103E800053200E94A60F0E94A30840C09091DB011E
+:103E9000892F8095817080FB90F929F09660986059
+:103EA0009093DB0136C0997F977F9093DB012EC002
+:103EB0008091DB0183FB222720F991E0922790FB80
+:103EC00083F98093DB01992309F18091DB01816003
+:103ED0008093DB011BC0895301C08D5141E050E04C
+:103EE00060E070E08A019B0104C0000F111F221FD7
+:103EF000331F8A95D2F7C901B80104C061E070E0B0
+:103F000080E090E00E94FF170E943F1481E001C012
+:103F100080E01F910F91089580E0089580E008955A
+:103F20008E518A3030F4E82FF0E0E65DFE4F80815C
+:103F3000089580E00895CF93C82F8091EB018130E0
+:103F400079F018F08230E9F186C0E0910E01F0912D
+:103F50000F018081813169F0823209F07EC009C091
+:103F6000E0910E01F0910F018081813111F08232D8
+:103F700061F48C2F0E948C1F811104C08C2F0E9431
+:103F8000C91E1DC081E090E01AC08C2F0E948E1FB8
+:103F9000811114C0C43179F048F4CB3079F0C031CC
+:103FA00009F05FC082E08093EB0108C0C93219F0CC
+:103FB000C83321F056C01092EB0153C081E08170EC
+:103FC00052C0C93281F110F5C43169F1A8F4C7308B
+:103FD00009F045C08AE08093150194E190931401A3
+:103FE00093E0909313018093120188E08093110174
+:103FF00088E28093100133C082EE8C0F863078F512
+:104000008C2F0E94901F8093EA0129C0CE34E9F0E2
+:1040100020F4CB3421F56AE013C0C13579F0C23504
+:10402000F1F461E00DC08091EA01882319F010924B
+:10403000EA0115C081E08093EB0115C061E006C084
+:104040008091EA010E94031E0AC06AE08091EA01A1
+:104050000E94791E04C01092EB0180E004C081E050
+:1040600002C080E0ACCFCF910895E1E8F0E080811C
+:10407000886080838081816080838FB7F89493E02B
+:104080009093890090ED909388008FBF0895EFE69C
+:10409000F0E08081826080830895EFE6F0E0808127
+:1040A0008D7F80830895EFE6F0E0908182E089279C
+:1040B000808308951F920F920FB60F9211242F93B1
+:1040C0003F934F935F936F937F938F939F93AF93A0
+:1040D000BF93EF93FF938091EC019091ED010196D6
+:1040E0009093ED018093EC01811103C082E00E9466
+:1040F000A308E091ED01E695E695F0E0EF59FC4F5D
+:10410000E4918091EC018E1303C080E00E94A3082B
+:10411000FF91EF91BF91AF919F918F917F916F919F
+:104120005F914F913F912F910F900FBE0F901F9075
+:10413000189504D06894B1118DC0089570D088F09E
+:104140009F5790F0B92F9927B751A0F0D1F0660F83
+:10415000771F881F991F1AF0BA95C9F712C0B1309E
+:1041600081F077D0B1E0089574C0672F782F882749
+:10417000B85F39F0B93FCCF3869577956795B395DD
+:10418000D9F73EF490958095709561957F4F8F4F4C
+:104190009F4F0895E89409C097FB3EF49095809551
+:1041A000709561957F4F8F4F9F4F9923A9F0F92FFD
+:1041B00096E9BB279395F695879577956795B7957B
+:1041C000F111F8CFFAF4BB0F11F460FF1BC06F5F61
+:1041D0007F4F8F4F9F4F16C0882311F096E911C073
+:1041E000772321F09EE8872F762F05C0662371F094
+:1041F00096E8862F70E060E02AF09A95660F771FA8
+:10420000881FDAF7880F9695879597F9089557FDD7
+:104210009058440F551F59F05F3F71F04795880F34
+:1042200097FB991F61F09F3F79F0879508951216CB
+:1042300013061406551FF2CF4695F1DF08C0161677
+:1042400017061806991FF1CF869571056105089428
+:104250000895E894BB2766277727CB0197F908953F
+:104260000BD078C069D028F06ED018F0952309F0F3
+:104270005AC05FC01124EECFCADFA0F3959FD1F3DF
+:10428000950F50E0551F629FF001729FBB27F00D04
+:10429000B11D639FAA27F00DB11DAA1F649F662759
+:1042A000B00DA11D661F829F2227B00DA11D621FA8
+:1042B000739FB00DA11D621F839FA00D611D221F62
+:1042C000749F3327A00D611D231F849F600D211D46
+:1042D000822F762F6A2F11249F5750408AF0E1F0E9
+:1042E00088234AF0EE0FFF1FBB1F661F771F881F32
+:1042F00091505040A9F79E3F510570F014C0AACFCD
+:104300005F3FECF3983EDCF3869577956795B7951C
+:10431000F795E7959F5FC1F7FE2B880F911D969546
+:10432000879597F9089597F99F6780E870E060E0B6
+:1043300008959FEF80EC089500240A94161617063E
+:1043400018060906089500240A9412161306140686
+:1043500005060895092E0394000C11F4882352F0E9
+:10436000BB0F40F4BF2B11F460FF04C06F5F7F4FA1
+:104370008F4F9F4F089597FB072E16F4009407D098
+:1043800077FD09D00E94D52107FC05D03EF4909519
+:1043900081959F4F0895709561957F4F0895EE0F19
+:1043A000FF1F0590F491E02D0994AA1BBB1B51E15E
+:1043B00007C0AA1FBB1FA617B70710F0A61BB70B95
+:1043C000881F991F5A95A9F780959095BC01CD013A
+:1043D0000895F999FECF92BD81BDF89A992780B5CD
+:1043E0000895A8E1B0E042E050E00C941122262F9D
+:1043F000F999FECF92BD81BDF89A019700B40216DB
+:1044000039F01FBA20BD0FB6F894FA9AF99A0FBE88
+:1044100008950196272F0E94F8210C94F721DC01C2
+:10442000CB01FC01F999FECF06C0F2BDE1BDF89ABF
+:10443000319600B40D9241505040B8F70895F89469
+:02444000FFCFAC
+:104442000220A50833091009DC08A8080101C801E7
+:1044520028080A03140A404D36392103D4029E0269
+:104462006502F80111022A02430201020304050651
+:04447200070809002E
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/keymap.c b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/keymap.c new file mode 100644 index 000000000..a66971bef --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/keymap.c @@ -0,0 +1,46 @@ +#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 new file mode 100644 index 000000000..80475ab21 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/readme.md @@ -0,0 +1,28 @@ +# 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/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.png b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.png Binary files differnew file mode 100644 index 000000000..4b9433be2 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-osx/romanzolotarev-norman-osx.png diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/compiled.hex b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/compiled.hex new file mode 100644 index 000000000..59b9fa1d1 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/compiled.hex @@ -0,0 +1,1169 @@ +:100000000C94D0020C9414030C9414030C94140359
+:100010000C9414030C9414030C9414030C94140304
+:100020000C9414030C9414030C94BC0D0C948E0EBD
+:100030000C9414030C9414030C9414030C941403E4
+:100040000C9414030C9498220C9414030C94140331
+:100050000C9414030C942B1C0C9414030C94140394
+:100060000C9414030C9414030C9414030C941403B4
+:100070000C9414030C9414030C9414030C941403A4
+:100080000C9414030C9414030C9414030C94140394
+:100090000C9414030C9414030C9414030C94140384
+:1000A0000C9414030C9414030C941403FB0E1D0FF6
+:1000B0000B101D0F0B10620F850F0B10DA0FED0FD9
+:1000C000BC12BC12EB12EB12211341137214721406
+:1000D0004C137214FC13FC136314721472146C141A
+:1000E0000914091409140914091409140914091428
+:1000F0000914091409140914091409140914091418
+:100100001B1428142F14361440140000F0A1F0A280
+:10011000F0A335002B002971E1003A0000001E0019
+:10012000140004001D003B00C1001F001A0016004F
+:100130001B003C0029712000070008000600E200B7
+:100140002A002100090017001900E300A90022007D
+:100150000E000A0005000000AA0069000254000019
+:100160002F000000A8006A003100000030000000ED
+:10017000AE0023000D001C0013000000AB002400A3
+:10018000180011001000E700AC00250015000C005D
+:100190003600E6002C0026000F00120037003D005C
+:1001A0003400270033000B0038003E00C3002E004F
+:1001B0002D002800E5003F000000010001000100C3
+:1001C00001000100000001001E001E0201000100EC
+:1001D000010001001F001F020100010001000100D9
+:1001E0002000200201000100010001002100210285
+:1001F00001000100010001002200220201000000B4
+:1002000001000100010000000100000001000100E8
+:100210000100000001000000010001002300230292
+:10022000010000000100010024002402010001007F
+:10023000010001002500250201000100010001006C
+:10024000260026020100010001000100270027020C
+:100250000100010001000100010001000100010096
+:10026000000000000000000000000100000000008D
+:100270001E00140004000100000000001F001A000E
+:10028000160001001900000020000800070000000F
+:100290000600000021001500090000000100000018
+:1002A000220017000A000000010001000100000008
+:1002B000000000000100010000000000000000003C
+:1002C0000100000023001C000B00000001000000E2
+:1002D000240018000D0000000100000025000C00A3
+:1002E0000E00000010000000260012000F000000A9
+:1002F0001100000027001300330000000000000080
+:1003000000002F0034000000000001000100010087
+:1003100001000100000001000100010001000100D6
+:10032000010001000100F2000100010001000100D4
+:100330000100F00001000100010001000100F100D6
+:10034000F4000100010001000100F300F5000000CD
+:100350000100010001000000010000000100010097
+:100360000100000001000000010001000100500038
+:100370000100000001000100010051000100010026
+:100380000100010001005200010001000100010014
+:1003900001004F0001000100010001000100010007
+:1003A0000100010001000100010001000100010045
+:1003B000000016034500720067006F0044006F00E4
+:1003C0007800200045005A00000016034500720026
+:1003D00067006F0044006F007800200045005A005D
+:1003E00000000403090409026D00040100A0FA09D9
+:1003F0000400000103010100092111010001223F55
+:10040000000705810308000A090401000103010235
+:1004100000092111010001224D0007058203080097
+:100420000A09040200010300000009211101000172
+:100430002236000705830308000A090403000103AC
+:100440000000000921110100012239000705840381
+:100450001000011201100100000008EDFE07130159
+:10046000000102000105010906A101050719E029A3
+:10047000E715002501950875018102050819012974
+:1004800005950575019102950175039101050719FF
+:1004900000297715002501957875018102C00501B5
+:1004A0000980A101850216010026B7001A01002A61
+:1004B000B700751095018100C0050C0901A10185E7
+:1004C00003160100269C021A01002A9C0275109551
+:1004D000018100C005010902A1010901A10005096E
+:1004E0001901290515002501950575018102950160
+:1004F000750381010501093009311581257F9502B8
+:100500007508810609381581257F950175088106D2
+:10051000050C0A38021581257F950175088106C0F2
+:10052000C005010906A101050719E029E715002505
+:100530000195087501810295017508810105081969
+:100540000129059505750191029501750391010534
+:1005500007190029FF150025FF950675088100C0C1
+:100560000000000000000000000000010204060A74
+:100570000F17202C3A4A5D71879DB3C7DAE9F5FC65
+:10058000FFFCF5E9DAC7B39D87715D4A3A2C201765
+:100590000F0A060402010000000000000000000035
+:1005A00011241FBECFEFDAE0DEBFCDBF04B603FEDD
+:1005B00024C08091FB019091FC01A091FD01B091BC
+:1005C000FE018730904BA740B04BB9F41092FB016D
+:1005D0001092FC011092FD011092FE0114BE84B72E
+:1005E000877F84BF88E10FB6F894809360001092F3
+:1005F00060000FBEE0E0FFE3099511E0A0E0B1E08C
+:10060000EEEBF8E402C005900D92A433B107D9F7E0
+:1006100011E0A4E3B1E001C01D92AB3FB107E1F7E7
+:100620000E94000B0C945D240C9400001092B90001
+:100630008AE08093B800089594EA9093BC0090916A
+:10064000BC0097FFFCCF9091B900987F983021F0C3
+:10065000903111F081E008958093BB0084E880938D
+:10066000BC008091BC0087FFFCCF8091B900887FDF
+:10067000883111F0803471F780E0089584E9809327
+:10068000BC008091BC0084FDFCCF08958093BB002A
+:1006900084E88093BC008091BC0087FFFCCF9091E0
+:1006A000B900987F81E0983209F480E0089584E8E9
+:1006B0008093BC008091BC0087FFFCCF8091BB0081
+:1006C000089580910101811115C080E40E941C03EE
+:1006D0008093010181110CC082E10E944603809346
+:1006E0000101811105C08FEF0E9446038093010133
+:1006F0000E943E0384B1807F84B985B1807F85B933
+:100700008AB1837F8AB98BB1837F8BB93E98469833
+:1007100008950E941C05809301010E94610380B32B
+:100720008C7080BB81B3836F81BBA5E3B1E0E3E450
+:10073000F1E08EE08E0F11921D928E13FCCF0C947F
+:100740000605BF92CF92DF92EF92FF920F931F9315
+:10075000CF93DF9380910101882379F08091340158
+:100760008F5F80933401811108C00E941C05809323
+:100770000101811102C00E94AE0405E311E0C0E056
+:10078000D0E0DD24D39482E0C82EEE24E394F12C53
+:10079000C730D10500F580910101811164C080E46A
+:1007A0000E941C0380930101811112C082E10E940A
+:1007B00046038093010181110BC0C7010C2E01C0BB
+:1007C000880F0A94EAF780950E94460380930101FE
+:1007D0000E943E0348C0CA30A1F028F4C83059F046
+:1007E000C93061F005C0CC3089F070F0CD3089F0AF
+:1007F000209A289810C0219A29980DC0229A2A98E8
+:100800000AC0239A2B9807C0529A01C0539A5B984A
+:1008100002C03E9A469890EA9A95F1F79FB179996D
+:1008200002C082E001C080E091709D25982B7C99E8
+:1008300002C084E001C080E0892B7D9902C038E0CD
+:1008400001C030E0832B7E9902C020E101C020E08E
+:10085000822B9FB19095991F9927991F9295990F77
+:10086000907E892B0FC080910101811149C080E4E5
+:100870000E941C0380930101882379F1B12C0E940E
+:100880003E038B2DF8019081981719F08083C09258
+:1008900000010E94610321960F5F1F4FCE30D105EA
+:1008A00009F076CF80910001882361F18150809317
+:1008B0000001882339F08FE99FE00197F1F700C02C
+:1008C000000020C0A3E4B1E0E5E3F1E0CF01825FE6
+:1008D00091919D938E13FCCF15C083E10E94460336
+:1008E000809301018111CACF81E40E941C0380938F
+:1008F00001018111C3CF0E945703B82EB094BFCF1E
+:1009000080E0C0CF0E94AC0481E0DF91CF911F91C5
+:100910000F91FF90EF90DF90CF90BF900895E82F58
+:10092000F0E0ED5BFE4F8081089508950F931F93D3
+:10093000CF93DF93C3E4D1E010E00C2F025F8991E5
+:1009400090E00E94511B180F0C13F9CF812FDF91FB
+:10095000CF911F910F9108950C947C0556985E9845
+:1009600025982D9826982E9827982F988FEF90E00D
+:10097000909389008093880090938B0080938A00E5
+:1009800090938D0080938C00259A2D9A2FEF80E70D
+:1009900092E0215080409040E1F700C00000269A8C
+:1009A0002E9A2FEF80E792E0215080409040E1F7AF
+:1009B00000C00000279A2F9A2FEF80E792E0215085
+:1009C00080409040E1F700C0000025982D982FEF5F
+:1009D00080E792E0215080409040E1F700C00000A5
+:1009E00026982E982FEF80E792E02150804090408B
+:1009F000E1F700C0000027982F9856985E98259838
+:100A00002D9826982E9827982F98089589EA8093F4
+:100A1000800089E08093810024982C983F988AB1C7
+:100A20008F748AB96E98479A8BB1806B8BB9769A1E
+:100A30000E94AE040C947B0580E2809301018091BA
+:100A4000510181110EC00E94160381E08093510173
+:100A50002FEF83ED90E3215080409040E1F700C0FC
+:100A6000000080E40E941C038093010181112EC0CC
+:100A70000E94460380930101811128C00E94460311
+:100A800080930101811122C08FE30E94460380936D
+:100A9000010181111BC00E943E0380E40E941C03DF
+:100AA00080930101811112C08CE00E944603809363
+:100AB000010181110BC00E94460380930101811145
+:100AC00005C08FE30E944603809301010E943E030C
+:100AD00080910101089561110BC0FC01828188237E
+:100AE00021F085EE0E94601103C085EE0E9428125D
+:100AF00080E090E0089508956091BD017091BE017D
+:100B00008091BF019091C0010E945D1B56985E9834
+:100B100025982D9826982E9827982F98823039F06E
+:100B2000833041F0813041F4259A2D9A0895269A18
+:100B30002E9A0895279A2F9A089581E0089581E0CA
+:100B400008950C949F0508950F931F93CF93DF93FF
+:100B50008C01FC01C081D181CE010E94D619BE0159
+:100B60000E944D06EC01B8010E94A105882309F4FA
+:100B70008DC0F8018281882309F44AC080915D010B
+:100B800081111FC0C431F0E5DF0709F051C00E9498
+:100B9000A30581E080935D010E94F51B90935C01A9
+:100BA00080935B01109254011092560110925501EE
+:100BB000109258011092570110925A011092590147
+:100BC00065C080915B0190915C010E94011C883C92
+:100BD000910570F480915401E82FF0E0EE0FFF1FB3
+:100BE000EB5AFE4FD183C0838F5F809354014EC078
+:100BF000C43880E5D80721F0C538D04501F13AC0A6
+:100C0000F8018281882341F01092520182E01EC0D7
+:100C1000C438E0E5DE0759F580915201811106C024
+:100C200086E20E94601186E20E94281282E01CC0C7
+:100C3000C438F0E5DF0741F3C538D045D9F4F801F1
+:100C40008281882331F01092530180E20E94771252
+:100C50001DC080915301811106C087E20E9460117E
+:100C600087E20E94281280E20E947E120FC0C538DF
+:100C7000D04529F381E08093520180935301C8014C
+:100C8000DF91CF911F910F910C949D0580E0DF9132
+:100C9000CF911F910F910895089596E0799FF001EB
+:100CA000112494E5899FE00DF11D1124E60FF11D3B
+:100CB000EE0FFF1FEE5EFE4F859194910895880F11
+:100CC000991FFC01E657F040859194910895880F93
+:100CD000991FFC01E65FFE4F8591949108950F9353
+:100CE0001F93CF93DF93EC01811520E3920750F51A
+:100CF000C11580E2D80708F0C3C0CB3BD10590F402
+:100D0000C83AD10508F06AC0C53AD10508F05BC001
+:100D1000C430D10508F0D0C1219709F0CAC101E063
+:100D200010E00AC2CF3FD10511F008F0C5C1C03FA5
+:100D3000D10508F0A2C0CE01805E9109089708F4A1
+:100D4000BBC1B7C1C13090E5D90709F4A2C020F5F5
+:100D5000C0318FE4D80770F4C11590E4D90708F0CA
+:100D600094C0C11521E3D20708F0A3C1DD278E018D
+:100D7000106CE2C1C115D04509F09BC10E94DD1481
+:100D80008FEF94E32CE0815090402040E1F700C0C9
+:100D900000000E94501CD0C1C11597E5D90758F436
+:100DA000C03121E5D20708F01CC1C43180E5D80765
+:100DB00008F475C07EC1CE0190578115904108F0AE
+:100DC00078C1DF7073C1C53AD10509F477C1C63A5D
+:100DD000D10509F076C102E810E4AEC1C83AD105E8
+:100DE00009F472C1C93AD10509F471C1CA3AD105F1
+:100DF00009F470C1CB3AD10509F46FC1CC3AD105E1
+:100E000009F46EC1CD3AD10509F46DC1C03BD105DD
+:100E100009F46CC1CE3AD10509F46BC1CF3AD105C2
+:100E200009F46AC1C13BD10509F469C1C23BD105CE
+:100E300009F468C1C33BD10509F467C1C43BD105BE
+:100E400009F466C1C53BD10509F465C1C63BD105AE
+:100E500009F464C1C73BD10509F463C1C83BD1059E
+:100E600009F462C1C93BD10509F461C1CA3BD1058E
+:100E700009F460C100E014E45FC18E0110655CC13B
+:100E8000CE019F700E94670658C1DF708E01106A04
+:100E900053C18091DA0181608093DA014DC10E94D3
+:100EA000F51D811102C00E94DB1D0E94121E90E000
+:100EB0009093FB018093FA01C23080E5D80721F4BA
+:100EC0008091FA01816086C0C43090E5D90721F491
+:100ED0008091FA0182607EC0C63020E5D20721F4FD
+:100EE0008091FA01846076C0C83080E5D80719F493
+:100EF0008091FA0127C0CA3090E5D90721F480918A
+:100F0000FA01806167C0CC3020E5D20721F48091DE
+:100F1000FA0180625FC0CE3080E5D80721F480916D
+:100F2000FA01806457C0C03190E5D90721F480915F
+:100F3000FA0180684FC0C23120E5D20729F48091C0
+:100F4000FA018460886046C0C33080E5D80721F488
+:100F50008091FA018E7F3EC0C53090E5D90721F41B
+:100F60008091FA018D7F36C0C73020E5D20721F489
+:100F70008091FA018B7F2EC0C93080E5D80719F423
+:100F80008091FA0126C0CB3090E5D90721F48091F9
+:100F9000FA018F7E1FC0CD3020E5D20721F4809169
+:100FA000FA018F7D17C0CF3080E5D80721F48091FA
+:100FB000FA018F7B0FC0C13190E5D90721F48091F0
+:100FC000FA018F7707C0C331D04531F48091FA011F
+:100FD0008B7F877F8093FA018091FA010E94161E11
+:100FE000ABC08D2F99278F70992781309105D9F447
+:100FF0009E012370332702C0880F991F2A95E2F7BC
+:101000009C688E0144E0000F111F4A95E1F700270C
+:101010001370802B912B53E0CC0FDD1F5A95E1F715
+:10102000C076DD272FC08230910531F4DC2FCC272C
+:101030008E01016F106A80C08330910569F4CE0182
+:101040008370992701E010E002C0000F111F8A95FC
+:10105000E2F7C8019C680FC084309105B9F4CE0155
+:101060008370992701E010E002C0000F111F8A95DC
+:10107000E2F7C8019A6823E0CC0FDD1F2A95E1F75B
+:10108000C07ED7708C010C2B1D2B56C0853091056E
+:1010900031F4DC2FCC278E01046F106A4DC0069707
+:1010A00009F04AC0CF71DD27DC2FCC278E011062FA
+:1010B00043C000E010E040C08E013EC001E810E4F3
+:1010C0003BC003E810E438C002EE14E435C009EE7A
+:1010D00014E432C00AEE14E42FC005EB14E42CC073
+:1010E00006EB14E429C007EB14E426C00CEC14E46E
+:1010F00023C00DEC14E420C003E815E41DC00AE889
+:1011000015E41AC002E915E417C004E915E414C097
+:1011100001E216E411C003E216E40EC004E216E494
+:101120000BC005E216E408C006E216E405C007E2BB
+:1011300016E402C00AE216E4C801DF91CF911F91C4
+:101140000F91089596E0799FF001112494E5899F0D
+:10115000E00DF11D1124E60FF11DEE0FFF1FEE5EF5
+:10116000FE4F85919491803E9105E0F4803C91057D
+:1011700058F58133910509F46FC048F4893291051F
+:1011800009F463C08A32910509F46DC072C08933D5
+:101190009105E9F082389105D1F08533910509F484
+:1011A0004DC067C0833E910581F138F4803E9105C2
+:1011B000B9F0823E9105D9F05CC0863E910561F19F
+:1011C000873E9105A1F155C00E945F0608952091C8
+:1011D000FA0120FD02C021FF4CC080EE90E049C022
+:1011E0008091FA0180FFF9CF89E390E042C08091BD
+:1011F000FA0182FF0EC08091FA0184FF03C080E0F3
+:1012000090E037C083EE90E034C08091FA0182FF15
+:10121000F2CF82EE90E02DC08091FA0183FF0BC0E7
+:101220008091FA0184FDEBCF87EE90E022C080919F
+:10123000FA0183FFF5CF86EE90E01BC08091FA01A2
+:1012400085FF07C089E290E014C08091FA0185FF14
+:10125000F9CF85E390E00DC08091FA0186FF07C0C9
+:101260008AE290E006C08091FA0186FFF9CF81E31F
+:1012700090E00E946F06089508950C943C098091B7
+:101280006E010895CF93DF9300D01F92CDB7DEB7E4
+:101290009C018091F101843019F593E099833B839F
+:1012A0002A839093E9008FEF9091E800815095FD9B
+:1012B00006C095ED9A95F1F700008111F5CF809168
+:1012C000E80085FF0DC040E050E063E070E0CE0133
+:1012D00001960E94AC0B8091E8008E778093E80025
+:1012E0000F900F900F90DF91CF910895CF93DF93E0
+:1012F00000D01F92CDB7DEB72091F101243021F547
+:1013000022E029839B838A8383E08093E9008FEF27
+:101310009091E800815095FD06C095ED9A95F1F702
+:1013200000008111F5CF8091E80085FF0DC040E0FD
+:1013300050E063E070E0CE0101960E94AC0B80911A
+:10134000E8008E778093E8000F900F900F90DF9168
+:10135000CF9108952091F1012430F1F422E02093FF
+:10136000E9002FEF3091E800215035FD06C035ED42
+:101370003A95F1F700002111F5CF2091E80025FF03
+:101380000BC040E050E065E070E00E94AC0B809143
+:10139000E8008E778093E8000895CF93DF93EC0107
+:1013A0009091F101943009F046C080910C0188239E
+:1013B000D9F080910D018823B9F09093E9008FEF67
+:1013C0009091E800815095FD06C095E19A95F1F75E
+:1013D00000008111F5CF8091E80085FF2CC040E02E
+:1013E00050E060E170E017C081E08093E9008FEF8A
+:1013F0009091E800815095FD06C095ED9A95F1F722
+:1014000000008111F5CF8091E80085FF14C040E015
+:1014100050E068E070E0CE010E94AC0B8091E800E3
+:101420008E778093E80080E1FE01AEE5B1E00190A7
+:101430000D928A95E1F7DF91CF9108958091F001A7
+:10144000811109C00E94410D0E949E0D8091E20011
+:1014500084608093E20008951092F0010895089549
+:101460000C9485220E94E61B0E948B220E9444104D
+:101470000C943D0942E061EC81E00E94BB0C42E02B
+:1014800061EC82E00E94BB0C42E061EC83E00E94D0
+:10149000BB0C42E161EC84E00C94BB0C8091F30145
+:1014A000833009F455C030F4813071F0823009F492
+:1014B0008EC008958A3009F47AC08B3009F460C078
+:1014C000893009F09CC020C08091F201813A09F076
+:1014D00096C08091E800877F8093E8008091F601B4
+:1014E0009091F701892B21F460E18EE591E003C032
+:1014F00060E080E090E070E00E94F70B8091E800EF
+:101500008B778093E80008958091F201813209F091
+:1015100076C08091F6019091F701009719F003973A
+:1015200009F06DC08091E800877F8093E80080918A
+:10153000E80082FD05C08091F1018111F8CF5FC004
+:101540008091F10080936E018091E8008B7753C009
+:101550008091F201813A09F052C08091F601909198
+:10156000F701892B09F04BC08091E800877F8093B9
+:10157000E8008091E80080FFFCCF80910C0136C02C
+:101580008091F2018132D9F58091F6019091F701B5
+:10159000892BA9F58091E800877F8093E8000E945D
+:1015A000F00C8091F40180930C010C94DD14809177
+:1015B000F201813221F58091E800877F8093E80075
+:1015C0000E94F00C8091F50180936F010895809145
+:1015D000F201813AA1F48091E800877F8093E800CE
+:1015E0008091E80080FFFCCF80916F018093F10033
+:1015F0008091E8008E778093E8000C94F00C0895B9
+:1016000084B7877F84BF88E10FB6F8948093600029
+:10161000109260000FBE90E080E80FB6F8948093BF
+:101620006100909361000FBE0E9493100E94410DD3
+:101630000E949E0D8091E20084608093E200789485
+:101640000E9424100E94951082E091E00E943F10B9
+:101650000E9473228091F101853069F40E94AD1BD4
+:101660008091EF018823B1F30E94D81B882391F366
+:101670000E94960BEFCF0E949B10ECCF292F3327AF
+:1016800023303105C9F064F42130310581F0223076
+:10169000310509F043C08DE690E026EE33E042C00C
+:1016A00021323105F1F02232310541F137C082E1BA
+:1016B00090E023E534E036C099278130910541F070
+:1016C0008230910541F0892B49F5E2EEF3E005C047
+:1016D000EAECF3E002C0E2EBF3E0849190E09F01DA
+:1016E00021C06430D8F4E62FF0E0EE0FFF1FEE5D6E
+:1016F000FE4F2081318189E090E014C0643070F4A5
+:1017000070E0FB01EE0FFF1FE65EFE4F208131818E
+:10171000FB01EA5EFE4F808190E004C080E090E033
+:1017200020E030E0FA0131832083089580E189BD13
+:1017300082E189BD09B400FEFDCF8091D8008F7D84
+:101740008093D8008091E00082608093E0008091D7
+:10175000E00081FDFCCF0895CF92DF92EF92FF92DF
+:101760000F931F93CF93DF93EC018B016A010E94CB
+:101770000F0D811133C0C114D10439F0F6018081FD
+:101780009181081B190BC80FD91FE12CF12C0115F1
+:10179000110519F18091E80085FD16C08091E800DF
+:1017A0008E778093E800C114D10449F0F60180815E
+:1017B0009181E80EF91EF182E08285E00FC00E945F
+:1017C0000F0D882321F30AC089918093F100015005
+:1017D0001109FFEFEF1AFF0ADACF80E0DF91CF9116
+:1017E0001F910F91FF90EF90DF90CF90089520917F
+:1017F000F8013091F9012617370748F06115710596
+:1018000039F42091E8002E772093E80001C0B90157
+:1018100040E061157105A9F12091F101222309F43D
+:1018200043C0253009F442C02091E80023FD40C0A8
+:101830002091E80022FD32C02091E80020FFE9CF8E
+:101840004091F3002091F20030E0342BFC01CF01F5
+:101850006115710559F02830310540F4819180936C
+:10186000F100615071092F5F3F4FF1CF41E0283007
+:10187000310509F040E02091E8002E772093E80040
+:10188000C8CF4111C9CF0AC08091F101882361F00E
+:10189000853061F08091E80083FD0AC08091E80006
+:1018A00082FFF2CF80E0089582E0089583E00895FA
+:1018B00081E008952091F8013091F901261737074A
+:1018C00048F06115710539F42091E8002E772093D6
+:1018D000E80001C0B901FC0120E06115710591F13A
+:1018E0008091F101882309F440C0853009F43FC09C
+:1018F0008091E80083FD3DC08091E80082FD2FC00B
+:101900008091E80080FFE9CF2091F3008091F20000
+:1019100090E0922B6115710559F08830910540F4E3
+:1019200024912093F1003196615071090196F2CF14
+:1019300021E0089709F020E08091E8008E778093FD
+:10194000E800CBCF2111CCCF0AC08091F1018823D0
+:1019500061F0853061F08091E80083FD0AC08091DC
+:10196000E80082FFF2CF80E0089582E0089583E0EE
+:10197000089581E00895982F973058F59093E900E5
+:10198000981739F07091EC002091ED005091F00023
+:1019900003C0242F762F50E021FF19C03091EB00B7
+:1019A0003E7F3093EB003091ED003D7F3093ED00B2
+:1019B0003091EB0031603093EB007093EC0020939A
+:1019C000ED005093F0002091EE0027FF07C09F5FCD
+:1019D000D3CF8F708093E90081E0089580E008956F
+:1019E0008091F20187FF11C08091E80082FD05C05F
+:1019F0008091F1018111F8CF11C08091E8008B77BF
+:101A00000BC08091F101882349F08091E80080FFAC
+:101A1000F8CF8091E8008E778093E80008952091B8
+:101A2000E4003091E50095E64091EC00842F817050
+:101A300040FF22C08091E80080FD1CC08091F10130
+:101A4000882391F0853091F08091EB0085FD10C0E6
+:101A50004091E4005091E5004217530729F39A01A1
+:101A6000915011F784E0089582E0089583E008958D
+:101A700081E0089580E008954091E80042FFDECFC4
+:101A800008950E94AF0D0E94B70DE0EEF0E0808156
+:101A900081608083E8EDF0E080818F77808319BCDE
+:101AA000A7EDB0E08C918E7F8C9380818F7E8083B8
+:101AB0001092F00108950F931F93CF93DF930E942C
+:101AC000AF0D0E94B70DC8EDD0E088818F77888375
+:101AD00088818068888388818F7D888319BC109273
+:101AE000F1011092ED011092EF011092EE0100EE63
+:101AF00010E0F80180818B7F8083888181608883FA
+:101B000042E060E080E00E94BB0CE1EEF0E080810A
+:101B10008E7F8083E2EEF0E080818160808380812F
+:101B200088608083F80180818E7F808388818061D6
+:101B30008883DF91CF911F910F910895E8EDF0E038
+:101B400080818F7E8083E7EDF0E0808181608083FB
+:101B500084E082BF81E08093F0010C945B0DE8ED9E
+:101B6000F0E080818E7F80831092E20008951092D1
+:101B7000DA001092E10008951F920F920FB60F92B3
+:101B800011242F933F934F935F936F937F938F9382
+:101B90009F93AF93BF93EF93FF938091E10082FFF8
+:101BA0000BC08091E20082FF07C08091E1008B7F33
+:101BB0008093E1000E9423108091DA0080FF1FC013
+:101BC0008091D80080FF1BC08091DA008E7F8093C7
+:101BD000DA008091D90080FF0DC080E189BD82E1EB
+:101BE00089BD09B400FEFDCF81E08093F1010E9420
+:101BF0001E0A05C019BC1092F1010E942C0A8091A6
+:101C0000E10080FF19C08091E20080FF15C0809143
+:101C1000E2008E7F8093E2008091E20080618093F9
+:101C2000E2008091D80080628093D80019BC85E0E2
+:101C30008093F1010E94300A8091E10084FF30C05E
+:101C40008091E20084FF2CC080E189BD82E189BDE2
+:101C500009B400FEFDCF8091D8008F7D8093D8001D
+:101C60008091E1008F7E8093E1008091E2008F7E81
+:101C70008093E2008091E20081608093E200809195
+:101C8000ED01882311F084E007C08091E30087FD17
+:101C900002C081E001C083E08093F1010E94320A1A
+:101CA0008091E10083FF29C08091E20083FF25C07D
+:101CB0008091E100877F8093E10082E08093F101D1
+:101CC0001092ED018091E1008E7F8093E100809180
+:101CD000E2008E7F8093E2008091E2008061809339
+:101CE000E20042E060E080E00E94BB0C8091F000E6
+:101CF00088608093F0000E942F0AFF91EF91BF91BE
+:101D0000AF919F918F917F916F915F914F913F9193
+:101D10002F910F900FBE0F901F9018951F920F924A
+:101D20000FB60F9211242F933F934F935F936F93AE
+:101D30007F938F939F93AF93BF93CF93DF93EF9353
+:101D4000FF93C091E900CF708091EC00D82FD17043
+:101D500080FDD0E81092E9008091F000877F8093A9
+:101D6000F00078940E94D20E1092E9008091F00069
+:101D700088608093F000CD2BCF70C093E900FF9175
+:101D8000EF91DF91CF91BF91AF919F918F917F9113
+:101D90006F915F914F913F912F910F900FBE0F90D8
+:101DA0001F9018951F93CF93DF93CDB7DEB7AA97F7
+:101DB0000FB6F894DEBF0FBECDBFE2EFF1E088E0D2
+:101DC0008E0F9091F10091938E13FBCF0E944E0ADB
+:101DD0008091E80083FF1FC18091F2019091F3018F
+:101DE000492F50E04A30510508F015C1FA01EA5A6E
+:101DF000FF4F0C940D24803881F0823809F00BC11C
+:101E00008091F6018F708093E9008091EB0085FB53
+:101E1000882780F91092E90006C08091EE01909128
+:101E2000EF01911182609091E800977F9093E80014
+:101E30008093F1001092F100C8C0282F2D7F09F087
+:101E4000EAC0882319F0823061F0E5C08091F40186
+:101E5000813009F0E0C0933009F080E08093EF0119
+:101E60002BC08091F401811127C08091F6018F7001
+:101E700009F4D1C08093E9002091EB0020FF1CC041
+:101E8000933021F48091EB00806214C09091EB00BC
+:101E900090619093EB0021E030E0A90102C0440F73
+:101EA000551F8A95E2F74093EA001092EA0080916C
+:101EB000EB0088608093EB001092E9008091E800CD
+:101EC000877F86C08111A7C01091F4011F77809190
+:101ED000E3008078812B8093E3008091E800877F86
+:101EE0008093E8000E94F00C8091E80080FFFCCF16
+:101EF0008091E30080688093E300111102C082E0CA
+:101F000001C083E08093F10186C08058823008F0E0
+:101F100082C08091F4019091F5018C3D53E09507CA
+:101F200079F583E08A838AE289834FB7F894DE01EA
+:101F3000139620E03EE051E2E32FF0E0509357008B
+:101F4000E49120FF03C0E295EF703F5FEF708E2FAA
+:101F500090E0EA3010F0C79601C0C0968D939D9333
+:101F60002F5F243149F74FBF8091E800877F80932E
+:101F7000E8006AE270E0CE0101960E94F70B14C0FF
+:101F8000AE014F5F5F4F6091F6010E943E0BBC01B6
+:101F9000009709F440C09091E800977F9093E80083
+:101FA00089819A810E945A0C8091E8008B778093F6
+:101FB000E80031C0803879F58091E800877F809310
+:101FC000E8008091ED018093F1008091E8008E7728
+:101FD0008093E8000E94F00C1EC081111CC09091FB
+:101FE000F4019230C0F48091E800877F8093E8008C
+:101FF0009093ED010E94F00C8091ED01811106C0DB
+:102000008091E30087FD02C081E001C084E08093FD
+:10201000F1010E943A0A8091E80083FF0AC0809192
+:10202000E800877F8093E8008091EB0080628093D6
+:10203000EB00AA960FB6F894DEBF0FBECDBFDF91BE
+:10204000CF911F9108950895CF938091F101882336
+:10205000A1F0C091E900CF709091EC00892F8170C0
+:1020600090FD80E8C82B1092E9008091E80083FD84
+:102070000E94D20ECF70C093E900CF910895909343
+:102080007501809374010895E0917401F0917501D8
+:10209000309721F00190F081E02D099480E00895BF
+:1020A000E0917401F0917501309721F00280F38185
+:1020B000E02D09940895E0917401F0917501309735
+:1020C00021F00480F581E02D09940895209172019A
+:1020D000309173018217930771F09093730180938D
+:1020E0007201E0917401F0917501309721F0068042
+:1020F000F781E02D099408952091700130917101CC
+:102100008217930771F09093710180937001E091B1
+:102110007401F0917501309721F00084F185E02D74
+:102120000994089508950C9492100E94EC1B0E944B
+:1021300089030C94AE1C9F92AF92BF92CF92DF9214
+:10214000EF92FF920F931F93CF93DF9300D000D0B5
+:1021500000D0CDB7DEB70E94A1030DE010E0AA24A5
+:10216000A394B12C902E802F0E948F04980129589F
+:102170003E4F6901F901F080F826A1F401501109E0
+:1021800088F78FEF89838A831B820E94F51B816009
+:10219000782F9D838C8349815A816B818D810E9428
+:1021A00032112FC09091DA0191FF04C08E830E94FA
+:1021B00095048E8125E030E0A501022E01C0440F78
+:1021C0000A94EAF7E42E4F21C1F029839A828E21E6
+:1021D00091E009F490E09B830E94F51B8160782FC9
+:1021E0009D838C8349815A816B818D810E9432113C
+:1021F000F6018081E826E08204C021503109E0F632
+:10220000BDCF0E94951F109176010E9444101817AF
+:10221000B9F00E9444108093760126960FB6F89488
+:10222000DEBF0FBECDBFDF91CF911F910F91FF9009
+:10223000EF90DF90CF90BF90AF909F900C943D09AE
+:1022400026960FB6F894DEBF0FBECDBFDF91CF91BB
+:102250001F910F91FF90EF90DF90CF90BF90AF90C4
+:102260009F900895CF93DF93CDB7DEB72B970FB62E
+:10227000F894DEBF0FBECDBF4F83588769877A873A
+:102280008B87DE01119686E0FD0111928A95E9F7B0
+:1022900085E0FE01379601900D928A95E1F749811C
+:1022A0005A816B817C818D819E810E947B172B9648
+:1022B0000FB6F894DEBF0FBECDBFDF91CF9108956A
+:1022C000CF93882309F4C2C0C82F823859F40E94E2
+:1022D000441081FDBBC089E30E94551A0E94221B55
+:1022E00089E30CC0833879F40E94441080FDAEC0AD
+:1022F00083E50E94551A0E94221B83E50E94971ACB
+:10230000CF910C94221B843859F40E94441082FD12
+:102310009DC087E40E94551A0E94221B87E4EECFDD
+:102320008CEF8C0F813A48F48C2F0E94D8218111B8
+:102330008DC08C2F0E94551AE3CF80E28C0F88301D
+:1023400048F4C77081E001C0880FCA95EAF70E947F
+:10235000DB1AD6CF8BE58C0F833078F4C53A29F0A1
+:10236000C63A31F083E890E005C081E890E002C011
+:1023700082E890E0CF910C94661088E58C0F833151
+:1023800008F064C0C83A39F1C93A41F1CA3A49F192
+:10239000CB3A51F1CC3A59F1CD3A61F1C03B69F1F8
+:1023A000CE3A71F1CF3A79F1C13B81F1C23B89F16B
+:1023B000C33B91F1C43B99F1C53BA1F1C63BA9F1E7
+:1023C000C73BB1F1C83BB9F1C93BC1F1CA3BC9F147
+:1023D00080E090E038C082EE90E035C089EE90E079
+:1023E00032C08AEE90E02FC085EB90E02CC086EBE7
+:1023F00090E029C087EB90E026C08CEC90E023C0F1
+:102400008DEC90E020C083E891E01DC08AE891E067
+:102410001AC082E991E017C084E991E014C081E21A
+:1024200092E011C083E292E00EC084E292E00BC021
+:1024300085E292E008C086E292E005C087E292E081
+:1024400002C08AE292E0CF910C947C10CF91089563
+:10245000882309F44BC0823859F40E94441081FF4C
+:1024600045C089E30E94551A0E94221B89E30CC0D3
+:10247000833871F40E94441080FF38C083E50E94C5
+:10248000551A0E94221B83E50E94971A0C94221B66
+:10249000843859F40E94441082FF28C087E40E94C7
+:1024A000551A0E94221B87E4EFCF9CEF980F913AB8
+:1024B00058F390E2980F983050F4877091E001C083
+:1024C000990F8A95EAF7892F0E94E11ADFCF9BE5E1
+:1024D000980F933020F480E090E00C946610885AB6
+:1024E000833120F480E090E00C947C1008958823E0
+:1024F00021F00E94DB1A0C94221B0895882321F0FE
+:102500000E94E11A0C94221B08957F928F929F9251
+:10251000AF92BF92CF92DF92EF92FF920F931F93F1
+:10252000CF93DF931F92CDB7DEB77C01C62E772EF7
+:10253000FC01058102950F70128111110E94F81A99
+:102540000E944E1A882379F0112369F080E28C0DE5
+:10255000883048F082E00E94371A0E944E1A91E0BB
+:10256000D82ED92601C0D12CE72DE295EF70F0E0EE
+:10257000E05AFF4F0C940D24872D807F072D0F709C
+:10258000882311F00295007F112389F0002309F4BC
+:1025900090C180E28C0D883020F4802F0E94DB1ADD
+:1025A00003C0802F0E94EB1A0E94221B82C18C2D37
+:1025B0000E942812002309F495C180E28C0D883016
+:1025C00020F4802F0E94E11A03C0802F0E94F11A8C
+:1025D0000E94221B87C1972D907F872D8F7090328C
+:1025E00011F08295807FCC2021F0F1E0CF16B1F080
+:1025F0001EC0112349F0002309F414C1013009F071
+:1026000011C10E940B1B6EC1002319F0013009F4A7
+:1026100069C189830E940E1B89810AC1112321F09F
+:10262000023008F05FC1FEC001115CC101C111237D
+:1026300021F0002309F4F6C03CC1002309F4F8C0DE
+:102640003EC1872D86958695837090E0009719F09E
+:10265000019761F047C1112321F08C2D972D9370C4
+:1026600002C080E090E00E9466103CC1112321F07E
+:102670008C2D972D937002C080E090E00E947C101A
+:1026800031C18C2D112319F00E949D1E02C00E94A1
+:10269000051F0E948A1F26C1872D837009F052C032
+:1026A000111120C18C2D829586958770880F880F17
+:1026B0009C2D9F70892E912CA12CB12C082E04C02A
+:1026C000880C991CAA1CBB1C0A94D2F7C4FE14C027
+:1026D0000FE010E020E030E0B901A80104C0440F91
+:1026E000551F661F771F8A95D2F7CB01BA016095F7
+:1026F00070958095909503C060E070E0CB01272D28
+:1027000026952695237030E02230310569F023307C
+:10271000310589F0682979298A299B2921303105D9
+:1027200071F00E94C318DEC0682979298A299B2983
+:102730000E94DF18D7C00E94C318C501B4010E94CF
+:10274000A718D0C0112319F0872D817001C086957C
+:10275000882309F4C7C08C2D829586958770880FD1
+:10276000880F9C2D9F70892E912CA12CB12C082EA6
+:1027700004C0880C991CAA1CBB1C0A94D2F7C4FE86
+:1027800014C00FE010E020E030E0B901A80104C05F
+:10279000440F551F661F771F8A95D2F7CB01BA01E8
+:1027A000609570958095909503C060E070E0CB01D6
+:1027B000272D269526952370422F50E04230510553
+:1027C00069F04330510589F0682979298A299B29C4
+:1027D0004130510571F00E949D1984C06829792902
+:1027E0008A299B290E94B9197DC00E949D19C501A3
+:1027F000B4010E94811976C08C2D90E0FC01E05E4E
+:10280000F109E531F10508F050C0E059FF4F0C9493
+:102810000D240C2D0F70872D8F71112331F00E9424
+:102820001A19802F0E9477125DC00E943B19802FD9
+:102830000E947E1257C0112339F0011153C0872D19
+:102840008F710E9460194EC0023008F04BC0F7CF64
+:10285000112339F0872D8F710E941A1943C011235B
+:10286000C9F3872D8F710E943B193CC0112329F0B9
+:10287000872D8F710E94051935C00E94FB1832C048
+:10288000112351F0172D1F71812F0E941A1963E037
+:10289000812F0E942E1A26C081E00E94371A023032
+:1028A00008F182E00E94371A1DC0112331F0002385
+:1028B00089F28C2D0E94601115C0002391F28C2D9D
+:1028C0000E9428120FC0472D4F706C2DC7010E9427
+:1028D0006B050E941F1806C0472D4F706C2DC70155
+:1028E0000E944C06DD20F9F00E942A1A80FD1BC0D0
+:1028F000F70112820E94241A0E941A19C7010E942D
+:10290000A2140E94241A0F90DF91CF911F910F9172
+:10291000FF90EF90DF90CF90BF90AF909F908F90FF
+:102920007F900C943B190F90DF91CF911F910F91E5
+:10293000FF90EF90DF90CF90BF90AF909F908F90DF
+:102940007F9008950F931F93CF93DF93EC018881BD
+:1029500099812B813C81232BB9F09F3F11F48F3F4C
+:1029600099F0CE010E94A405882371F068817981D5
+:102970008A810E94201A8C010E94D5190E949C18FD
+:10298000B801CE010E948512DF91CF911F910F9166
+:1029900008950E94F81A0E94081B0E94CD1A0E94F6
+:1029A000221B0E943B200E948A1F80E090E00E9430
+:1029B000661080E090E00C947C100E94E81A0C9461
+:1029C000C9140E94151A292F22952F7030E02C303F
+:1029D00031054CF42A3031056CF422503109223093
+:1029E0003105A8F407C02C30310569F02F303105CE
+:1029F00051F00DC0803F69F018F4803E40F409C0EA
+:102A0000843F29F406C093FB882780F9089580E06D
+:102A1000089581E00895CF93DF9300D000D01F92F6
+:102A2000CDB7DEB70F900F900F900F900F90DF9102
+:102A3000CF910895CF93DF9300D000D000D0CDB7D1
+:102A4000DEB726960FB6F894DEBF0FBECDBFDF917E
+:102A5000CF9108951F93CF93DF93C091850116E026
+:102A600080918601C81799F0D0E01C9FF0011D9F4E
+:102A7000F00D1124E957FE4F40815181628173812D
+:102A8000848195810E941A152196C770E9CFDF9144
+:102A9000CF911F9108954091B7015091B801609175
+:102AA000B9017091BA018091BB019091BC010C9465
+:102AB0001A158091BC0182958F7009F054C08091E5
+:102AC000B901882309F44FC080918501A091860146
+:102AD0006091B7017091B8014091BA015091BB016A
+:102AE000B6E08A1709F43FC090E041155105C1F1E5
+:102AF0007F3F11F46F3FA1F1B89FF001B99FF00D36
+:102B00001124E957FE4F218172132AC020816213DC
+:102B100027C02281211124C0238134812417350745
+:102B200010F421503109241B350B283C3105C0F429
+:102B30002091BC012F7020612093BC0126E0289FCA
+:102B4000F001299FF00D1124E457FE4F80818F7012
+:102B50008061808387EB91E00E94A2140C942A1577
+:102B600001968770BECF0895CF92DF92EF92FF92C9
+:102B70000F931F93CF93DF93CDB7DEB762970FB656
+:102B8000F894DEBF0FBECDBF8C0185E0F801DE01F9
+:102B90001D9601900D928A95E1F7D8014C911196FE
+:102BA0005C91119712966C9112971396CD90DC90D0
+:102BB00014973091B7017091B8018091BA0190914A
+:102BC000BB01009709F46BC17F3F19F43F3F09F443
+:102BD00066C1E090B901EE2009F4C0C02091BC01AB
+:102BE000C816D90628F0F601E81BF90BCF0104C07E
+:102BF000809590958C0D9D1DFF24F394883C910544
+:102C000078F0F12C207F09F0C6C07C2DD98AC88AC3
+:102C100089890E940B1587EB91E00E94A214B1C034
+:102C2000822F807F09F046C0751314C0341312C080
+:102C3000611110C02F7020612093BC010E944B15C0
+:102C400087EB91E00E94A2148091BC01D8011596F7
+:102C50008C932EC0CD2819F15F3F11F44F3FF9F04E
+:102C6000F62E61111CC0809185012091860136E00D
+:102C7000821709F45AC090E0389FF001399FF00D97
+:102C80001124E957FE4F7181571306C07081471315
+:102C900003C07281711103C001968770E9CFF62ECF
+:102CA000662309F418C18091BC0181608093BC0146
+:102CB000F12C11C1751308C0341306C0611104C092
+:102CC0008091BC01D801C3C04D875E878D859E85EC
+:102CD0006A8B0E94E1146A898823E1F16623D1F1AD
+:102CE0002091BC01822F82958F7090E0029774F042
+:102CF0008091B7019091B80198878F831986DB8600
+:102D0000CA862C87CE0107960E94A21486E0F8019D
+:102D1000A7EBB1E001900D928A95E1F70E94591559
+:102D20000E944B15FF24F394D6C04D875E878D8596
+:102D30009E850E94151A292F22952F7030E022308F
+:102D400031050CF0BCC09F7009F0B6C0805E8830C1
+:102D500008F4C1C0C8010E94A214E4CFC816D90665
+:102D600008F453C0F601E81BF90BCF01883C91052C
+:102D700008F450C0F12C7C2DD98AC88A89890E9418
+:102D80000B15E7EBF1E086E0DF011D928A95E9F78C
+:102D90000E944B15A0C0751314C0341312C06111EA
+:102DA00010C08091BC01F8018583C8010E94A21463
+:102DB00086E0E7EBF1E0DF011D928A95E9F7FE2C52
+:102DC0008AC04D875E878D859E856A8B0E94E1143F
+:102DD0006A89882309F4BECF662309F4BBCF20910A
+:102DE000BC01822F82958F7090E002970CF48ECFF9
+:102DF0008091B7019091B8019A8389831B82DD820B
+:102E0000CC822E83CE0101967FCF809590958C0D3C
+:102E10009D1DACCFF62E662309F49CCF75132EC0F2
+:102E200034132CC02091BC0120FD1FC0822F82953D
+:102E30008F70D9F0D80115962C9315978F3049F0E3
+:102E40008F5F982F9295907F822F8F70892B159688
+:102E50008C93C8010E94A21486E0F801A7EBB1E0B0
+:102E600001900D928A95E1F793CF86E0F801A7EBE8
+:102E7000B1E001900D928A95E1F72DC04D875E87F4
+:102E80008D859E850E94E114811140CF8091BC0107
+:102E900081608093BC01C8010E94A2141CC06623FB
+:102EA00009F458CF4D875E878D859E850E94E11479
+:102EB000882309F44FCF2ACF811148CF0CC024308A
+:102EC00031050CF047CF9F7009F440CFF801958190
+:102ED000907F09F03BCF8F2D62960FB6F894DEBF3E
+:102EE0000FBECDBFDF91CF911F910F91FF90EF905B
+:102EF000DF90CF9008951F93CF93DF93CDB7DEB7C8
+:102F00002C970FB6F894DEBF0FBECDBF4F83588706
+:102F100069877A878B879C87CE0107960E94B415B4
+:102F2000882369F08F8198852A853B85232BF1F1D1
+:102F30009F3F09F063C08F3F09F060C037C086E053
+:102F4000FE013796DE01119601900D928A95E1F708
+:102F50006F817885EA85FB85309741F17F3F11F4D9
+:102F60006F3F21F12091860130E0C9010196877001
+:102F700099274091850150E08417950709F447C0CF
+:102F800069837A83FD83EC8396E0929FD001939FBF
+:102F9000B00D1124A957BE4FFE01319601900D923C
+:102FA0009A95E1F7809386010E942A1516E0809198
+:102FB0008501909186018917C1F1189FC0011124E4
+:102FC00089579E4F0E94B415882379F1E0918501BD
+:102FD0001E9FF0011124E957FE4F4081518162810B
+:102FE0007381848195810E941A158091850190E0FA
+:102FF00001968770992780938501D9CF4F81588595
+:1030000069857A858B859C850E941A15CFCF0E9491
+:10301000DD141092860110928501E7EBF1E086E065
+:10302000DF011D928A95E9F7C1CF2C960FB6F8946F
+:10303000DEBF0FBECDBFDF91CF911F910895EF92FC
+:10304000FF920F931F93CF93DF938C01009709F4A6
+:103050006CC0F12CEE24E394E8012196F8018491F0
+:10306000843740F4843008F051C0813081F08230E0
+:1030700019F15BC0853709F444C0A8F19CE7980FAB
+:10308000903708F052C08F770E94281241C00E5F1F
+:103090001F4FFE01C49180E28C0F883048F4C77046
+:1030A0008E2D01C0880FCA95EAF70E94FB1A14C042
+:1030B0008C2F0E9460112DC00E5F1F4FFE01C49126
+:1030C00080E28C0F883058F4C7708E2D01C0880FB5
+:1030D000CA95EAF70E94011B0E94221B1AC08C2F7E
+:1030E0000E94281216C00E5F1F4FFE01C491CC2310
+:1030F00081F08FE99FE00197F1F700C00000C15017
+:10310000F6CF0E5F1F4FFE01F49003C00E946011C6
+:103110008E018F2D882309F49FCFEFE9FFE03197CF
+:10312000F1F700C000008150F5CFDF91CF911F91E2
+:103130000F91FF90EF90089508956093C1017093EF
+:10314000C2018093C3019093C4010C94C9140F93DE
+:103150001F930091C1011091C2012091C3013091D0
+:10316000C401DC01CB01802B912BA22BB32B8093CC
+:10317000C1019093C201A093C301B093C4011F91F8
+:103180000F910C94C9140F931F930091C1011091DA
+:10319000C2012091C3013091C401DC01CB01802325
+:1031A0009123A223B3238093C1019093C201A093E2
+:1031B000C301B093C4011F910F910C94C9140F93D4
+:1031C0001F930091C1011091C2012091C301309160
+:1031D000C401DC01CB0180279127A227B32780936C
+:1031E000C1019093C201A093C301B093C4011F9188
+:1031F0000F910C94C9141092BD011092BE0110924F
+:10320000BF011092C0010C94C91441E050E060E08D
+:1032100070E004C0440F551F661F771F8A95D2F7D0
+:103220004093BD015093BE016093BF017093C001F4
+:103230000C94C91441E050E060E070E004C0440F19
+:10324000551F661F771F8A95D2F78091BD01909117
+:10325000BE01A091BF01B091C001482B592B6A2B30
+:103260007B2B4093BD015093BE016093BF017093CF
+:10327000C0010C94C91441E050E060E070E004C06B
+:10328000440F551F661F771F8A95D2F740955095BA
+:10329000609570958091BD019091BE01A091BF0194
+:1032A000B091C001482359236A237B234093BD0179
+:1032B0005093BE016093BF017093C0010C94C91478
+:1032C00041E050E060E070E004C0440F551F661F0D
+:1032D000771F8A95D2F78091BD019091BE01A09190
+:1032E000BF01B091C001482759276A277B27409327
+:1032F000BD015093BE016093BF017093C0010C9457
+:10330000C9140F931F930091BD011091BE0120912C
+:10331000BF013091C001DC01CB01802B912BA22B8E
+:10332000B32B8093BD019093BE01A093BF01B093D6
+:10333000C0011F910F910C94C9140F931F9300911A
+:10334000BD011091BE012091BF013091C001DC018F
+:10335000CB0180239123A223B3238093BD019093BB
+:10336000BE01A093BF01B093C0011F910F910C94B7
+:10337000C9140F931F930091BD011091BE012091BC
+:10338000BF013091C001DC01CB0180279127A2272A
+:10339000B3278093BD019093BE01A093BF01B0936A
+:1033A000C0011F910F910C94C9140895CF92DF9220
+:1033B000EF92FF920F931F93CF93DF938C01C090F6
+:1033C000C101D090C201E090C301F090C40180918E
+:1033D000BD019091BE01A091BF01B091C001C82A6A
+:1033E000D92AEA2AFB2ACFE1D0E0D701C6010C2E68
+:1033F00004C0B695A795979587950A94D2F780FF54
+:1034000006C0B8018C2F0E94A208019721F42197D1
+:1034100060F780E001C08C2FDF91CF911F910F9159
+:10342000FF90EF90DF90CF900895CF93DF93EC0162
+:103430000E94D619BE010E94A208DF91CF91089583
+:10344000CB010E94151A08958091C5018595859537
+:10345000859508958091C5018770089598E0899FAA
+:1034600090011124262B2093C5010C941A19209148
+:10347000C501809582238093C501982F977069F4C8
+:1034800030E0482F552747FD50952417350729F080
+:103490008595859585950C943B1908959091C50166
+:1034A000977081E009F480E0089590910C019923D0
+:1034B00021F090910D01911109C020910E013091E0
+:1034C0000F01F90132969FEF40E01FC0982F9695AB
+:1034D000969596959F3050F5E0910E01F0910F0171
+:1034E000E90FF11D877021E030E0A90102C0440F0F
+:1034F000551F8A95E2F7CA019181892B818308952E
+:103500009F3F39F04F5F4E3041F051915813F8CF43
+:103510000DC05111F7CF942FF5CF9F3F39F0F9012E
+:10352000E90FF11D97FDFA95828308950895909112
+:103530000C01992321F090910D01911109C0209166
+:103540000E0130910F01F9013296205F3F4F1FC0ED
+:10355000982F9695969596959F30F0F4E0910E01F0
+:10356000F0910F01E90FF11D877021E030E0A90112
+:1035700002C0440F551F8A95E2F7CA0180959181D8
+:103580008923818308953196E217F30729F090810A
+:103590009813F9CF1082F7CF089581E090E0E09181
+:1035A0000E01F0910F01E80FF91F10820196803192
+:1035B0009105A9F708959091D901892B8093D9019C
+:1035C000089580959091D90189238093D901089518
+:1035D0001092D90108959091D801892B8093D80138
+:1035E000089580959091D80189238093D8010895FA
+:1035F0001092D80108959091D701892B8093D7011B
+:10360000089580959091D70189238093D7010895DB
+:103610001092D70108958093C60108951092C601B3
+:10362000089580910E0190910F01FC0131969C014B
+:10363000205F3F4F80E0919191118F5FE217F30778
+:10364000D1F70895E0910E01F0910F018091D90119
+:103650008083E0910E01F0910F0190818091D8015B
+:10366000892B8083E0910E01F0910F019081809170
+:10367000D701892B80838091C601882361F0E09176
+:103680000E01F0910F019081892B80830E94111B04
+:1036900081111092C60180910E0190910F010C943E
+:1036A000501020E0009739F0AC01415051098423BB
+:1036B00095232F5FF7CF822F0895CF92DF92EF925D
+:1036C000FF926C01EE24FF24C114D104E104F10443
+:1036D00021F0C701B60120E101C020E0C72ED82E9D
+:1036E000E92EFF24C114D104E104F10419F0285F8C
+:1036F000C701B6016B017C0154E0F694E794D794BE
+:10370000C7945A95D1F7C114D104E104F10419F01A
+:103710002C5FC701B6016B017C0142E0F694E7948F
+:10372000D794C7944A95D1F7C114D104E104F104A8
+:1037300019F02E5FC701B601DC01CB01B695A79544
+:1037400097958795892B8A2B8B2B09F02F5F822FDA
+:10375000FF90EF90DF90CF9008958091F101843039
+:1037600021F11092DB0120E488E190E00FB6F8949B
+:10377000A895809360000FBE2093600080E00E94B7
+:103780003D0983B7817F846083BF83B7816083BF36
+:103790007894889583B78E7F83BF88E10FB6F894BD
+:1037A00080936000109260000FBE08950895089500
+:1037B0000E94D61B0E94A1030E94D71B0E94960460
+:1037C00091E0811101C090E0892F08950E94DD14DD
+:1037D0000E9444100C943D0982E084BD93E095BDA5
+:1037E0009AEF97BD80936E0008952FB7F89480915B
+:1037F000DC019091DD01A091DE01B091DF012FBFCE
+:103800000895CF92DF92EF92FF920F931F932FB7FD
+:10381000F8944091DC015091DD016091DE017091DE
+:10382000DF012FBF6A017B01EE24FF248C0120E021
+:1038300030E0C016D106E206F30610F441505109FB
+:103840009A01281B390BC9011F910F91FF90EF902E
+:10385000DF90CF9008951F920F920FB60F92112410
+:103860008F939F93AF93BF938091DC019091DD0183
+:10387000A091DE01B091DF010196A11DB11D8093E1
+:10388000DC019093DD01A093DE01B093DF01BF91D5
+:10389000AF919F918F910F900FBE0F901F90189531
+:1038A0000E94410DF8942FEF87EA91E62150804065
+:1038B0009040E1F700C0000087E090EBDC018093CE
+:1038C000FB019093FC01A093FD01B093FE019CE0ED
+:1038D00088E10FB6F894A895809360000FBE90938E
+:1038E0006000FFCFEF92FF920F931F93CF93DF9370
+:1038F000D82FCDE08C2F0E948F0405E010E0E82E39
+:10390000F12CC701002E02C0959587950A94E2F725
+:1039100080FF09C0602F7C2F80E00E944D06D813E5
+:1039200002C081E006C00150110958F7C15010F7DC
+:1039300080E0DF91CF911F910F91FF90EF9008955C
+:10394000CF93C82F8CE20E94721C882321F08C2F09
+:10395000CF910C94721C80E0CF910895CF930E9478
+:10396000F51D811102C00E94DB1DC5E6C15049F062
+:103970000E94A1038FE39CE90197F1F700C00000CA
+:10398000F5CF89E20E94A01C811113C18AE20E9436
+:10399000A01C81110E94DB1D85E00E94A01C8111EA
+:1039A0000E94501C0E94001E8093DA0187E00E9452
+:1039B000A01C8823A9F18BE10E94A01C882351F050
+:1039C0008091DA0181FB222720F991E0922790FB78
+:1039D00081F90EC08EE00E94A01C882361F08091C6
+:1039E000DA0182FB222720F991E0922790FB82F9ED
+:1039F0008093DA0115C080E10E94A01C9091DA0149
+:103A0000882341F093FB222720F981E0822780FB65
+:103A100093F904C0892F809580FB90F99093DA0187
+:103A20008091DA010E94041E0E94121E8093FA0106
+:103A300080EE0E94A01C882341F08091FA01982F0B
+:103A4000909590FB80F98093FA0189E30E94A01C75
+:103A5000882359F08091FA0181FB222720F991E017
+:103A6000922790FB81F98093FA0182EE0E94A01CBC
+:103A7000882359F08091FA0182FB222720F991E0F6
+:103A8000922790FB82F98093FA0186EE0E94A01C97
+:103A9000882359F08091FA0183FB222720F991E0D5
+:103AA000922790FB83F98093FA0183EE0E94A01C79
+:103AB000882359F08091FA0184FB222720F991E0B4
+:103AC000922790FB84F98093FA0185E30E94A01C61
+:103AD000882359F08091FA0185FB222720F991E093
+:103AE000922790FB85F98093FA0181E30E94A01C44
+:103AF000882359F08091FA0186FB222720F991E072
+:103B0000922790FB86F98093FA0181E10E94A01C24
+:103B1000882359F08091FA0187FB222720F991E050
+:103B2000922790FB87F98093FA018091FA010E9415
+:103B3000161E8091FA0187FB882780F980930D017A
+:103B400087E20E94A01CC82F8EE10E94A01C811158
+:103B5000C2608FE10E94A01C8111C46080E20E94BB
+:103B6000A01C8111C86081E20E94A01C8111C0616B
+:103B700082E20E94A01C8111C06283E20E94A01C0C
+:103B80008111C06484E20E94A01C882311F0C068E7
+:103B900002C0CC2329F08C2F0E940D1E6C2F03C075
+:103BA0000E94091E682F70E080E090E0CF910C9495
+:103BB0009D18CF9108956DEE7EEF80E090E00E9419
+:103BC000472460E082E090E00E94352460E083E0DA
+:103BD00090E00E94352460E084E090E00E9435246B
+:103BE00060E085E090E00C94352480E090E00E9455
+:103BF0002F2421E08D3E9E4F09F020E0822F089572
+:103C000082E090E00C942724682F82E090E00C94EE
+:103C1000352483E090E00C942724682F83E090E023
+:103C20000C94352484E090E00C942724682F84E0E1
+:103C300090E00C9435248091E20180FF0BC06091EC
+:103C4000130185E0689FB0011124759567957595FE
+:103C500067952BC081FF09C06091130185E0689FC3
+:103C6000B00111247595679520C082FF07C060914F
+:103C7000130185E0689FB001112417C09091E30102
+:103C80009923D1F060911201961788F720911301C2
+:103C900085E0289F90011124929FA001939F500DD1
+:103CA000112470E0CA010E94F9236038710540F4C4
+:103CB0006115710539F002C065E070E0862F089546
+:103CC0008FE7089581E008958091E20180FF08C0A8
+:103CD0006091110170E0759567957595679521C0A4
+:103CE00081FF06C06091110170E07595679519C05C
+:103CF00082FF04C06091110170E010C09091E30157
+:103D00009923C1F0609110019617A0F780911101DD
+:103D1000899FC001112470E00E94F9236038710569
+:103D200028F46115710521F0862F08958FE7089515
+:103D300081E0089561E070E0F4CF803F21F40E94BB
+:103D40001B1E819504C0813F29F40E941B1E809395
+:103D5000E6010895823F21F40E941B1E819504C054
+:103D6000833F29F40E941B1E8093E5010895893F3B
+:103D700019F40E94641E05C08A3F31F40E94641E3B
+:103D800081958093E70108958B3F21F40E94641E82
+:103D9000819504C08C3F29F40E94641E8093E80141
+:103DA0000895843F21F48091E401816017C0853F2C
+:103DB00021F48091E401826011C0863F21F480915A
+:103DC000E40184600BC0873F21F48091E4018860A6
+:103DD00005C0883F31F48091E40180618093E40163
+:103DE00008958D3F21F48091E20181600BC08E3FE8
+:103DF00021F48091E201826005C08F3F29F4809117
+:103E0000E20184608093E2010895803F39F480915B
+:103E1000E60187FF6CC01092E60169C0813F29F47A
+:103E20008091E6011816BCF362C09091E501823FD3
+:103E300029F497FF5CC01092E50159C0833F19F443
+:103E40001916CCF354C0893F41F48091E70118164C
+:103E50000CF04DC01092E7014AC08A3F29F48091CE
+:103E6000E70187FF44C0F6CF8B3F39F48091E8012A
+:103E700087FF3DC01092E8013AC08C3F29F4809141
+:103E8000E8011816BCF333C0843F21F48091E401AB
+:103E90008E7F17C0853F21F48091E4018D7F11C092
+:103EA000863F21F48091E4018B7F0BC0873F21F492
+:103EB0008091E401877F05C0883F31F48091E4015F
+:103EC0008F7E8093E40113C08D3F21F48091E20145
+:103ED0008E7F0BC08E3F21F48091E2018D7F05C063
+:103EE0008F3F29F48091E2018B7F8093E2018091E2
+:103EF000E50181110EC08091E60181110AC0809117
+:103F0000E701811106C08091E801811102C0109281
+:103F1000E301089584EE91E00E945B100E94F51B7E
+:103F20009093E1018093E00108951F93CF93DF9375
+:103F30008091E0019091E1010E94011CAC019091FF
+:103F4000E301992321F02091140130E006C0209173
+:103F500015018AE0289F900111244217530708F4A5
+:103F600086C08091E501C091E601D091E7011091F2
+:103F7000E801811107C0C11176C0D11174C01111BF
+:103F800072C075C09F3F19F09F5F9093E3011816B0
+:103F900024F40E941B1E8093E5018091E50187FFB8
+:103FA00005C00E941B1E81958093E5011C1624F418
+:103FB0000E941B1E8093E6018091E60187FF05C0E9
+:103FC0000E941B1E81958093E6016091E5016623A6
+:103FD00039F1C091E601CC2319F1772767FD70957F
+:103FE000872F972F0E940A2323E333E343E35FE302
+:103FF0000E946E230E94D7226093E5016C2F7727E1
+:1040000067FD7095872F972F0E940A2323E333E3E0
+:1040100043E35FE30E946E230E94D7226093E60190
+:104020001D1624F40E94641E8093E7018091E7012D
+:1040300087FF05C00E94641E81958093E7011116D9
+:1040400024F40E94641E8093E8018091E80187FFB8
+:1040500005C00E94641E81958093E801DF91CF9195
+:104060001F910C948A1F9F3F09F08ECF96CFDF914E
+:10407000CF911F910895E4EEF1E085E0DF011D92FC
+:104080008A95E9F71092E3011092E20108958330D6
+:1040900081F128F4813059F08230D1F008958530D3
+:1040A00009F449C0B8F1863009F456C008958091EA
+:1040B0001501262F30E0280F311D2F3F310524F444
+:1040C000680F6093150108958FEF8093150108958F
+:1040D00080911401262F30E0280F311D2F3F31052C
+:1040E00024F4680F6093140108958FEF80931401F6
+:1040F000089580911301262F30E0280F311D2F3FA6
+:10410000310524F4680F6093130108958FEF8093B5
+:104110001301089580911201262F30E0280F311DE0
+:104120002F3F310524F4680F6093120108958FEF3B
+:1041300080931201089580911101262F30E0280FFD
+:10414000311D2F3F310524F4680F6093110108954C
+:104150008FEF80931101089580911001262F30E098
+:10416000280F311D2F3F310524F4680F6093100193
+:1041700008958FEF809310010895833011F128F492
+:10418000813049F0823091F00895853081F120F13D
+:104190008630C1F1089580911501681720F4861BBF
+:1041A00080931501089510921501089580911401CE
+:1041B000681720F4861B809314010895109214014F
+:1041C000089580911301681720F4861B80931301D2
+:1041D000089510921301089580911201681720F438
+:1041E000861B809312010895109212010895809108
+:1041F0001101681720F4861B809311010895109215
+:104200001101089580911001681720F4861B809396
+:10421000100108951092100108950F931F938D318E
+:1042200009F46BC008F03FC08E3009F47FC0C0F4C1
+:10423000873009F469C068F4863009F0B1C0809114
+:10424000DA01817F8E7F8093DA0181E08093EA0139
+:10425000A8C0883009F4A2C08B3009F49FC0A0C068
+:10426000863109F49BC078F4803109F472C0813141
+:1042700009F096C00E94DD1490910D0181E089271C
+:1042800080930D018BC0893109F488C08B3109F00E
+:1042900087C08091DA0181FB222720F991E09227E3
+:1042A00090FB81F94CC0853309F470C048F4873223
+:1042B00009F46CC008F459C0893209F467C070C0B1
+:1042C000833438F48A3308F04EC0883309F466C06A
+:1042D00067C0833409F45AC0883409F061C00E9471
+:1042E000DD140FEF13ED20E3015010402040E1F703
+:1042F00000C000000E94501C51C00E9491220E94E8
+:1043000044100E943D094AC09091DA01892F80959E
+:10431000817080FB90F929F0966098609093DA01A3
+:1043200040C0997F977F9093DA0138C08091DA017D
+:1043300082FB222720F991E0922790FB82F980935B
+:10434000DA01992359F18091DA0181608093DA01D1
+:1043500025C08091DA0183FB222720F991E0922782
+:1043600090FB83F9ECCF895301C08D5141E050E0BF
+:1043700060E070E08A019B0104C0000F111F221F42
+:10438000331F8A95D2F7C901B80104C061E070E01B
+:1043900080E090E00E949D180E94DD1481E001C041
+:1043A00080E01F910F91089580E0089580E00895C6
+:1043B000CF93C82F8091EA01813079F018F08230D4
+:1043C000E9F187C0E0910E01F0910F018081813108
+:1043D00069F0823209F07FC009C0E0910E01F091CE
+:1043E0000F018081813111F0823261F48C2F0E94A3
+:1043F000D421811104C08C2F0E940D211DC081E0A9
+:1044000090E01AC08C2F0E94D621811114C0C431B3
+:1044100079F048F4CB3079F0C03109F060C082E027
+:104420008093EA0108C0C93219F0C83321F057C09F
+:104430001092EA0154C081E0817053C0C93289F101
+:1044400018F5C43171F1A8F4C73009F046C08AE00C
+:104450008093150194E19093140193E090931301DC
+:104460008093120188E08093110188E2809310010B
+:1044700034C0CE51C63088F5EC2FF0E0E65DFE4F3B
+:1044800080818093E90129C0CE34E9F020F4CB3457
+:1044900021F56AE013C0C13579F0C235F1F461E06D
+:1044A0000DC08091E901882319F01092E90115C02F
+:1044B00081E08093EA0115C061E006C08091E901C6
+:1044C0000E9447200AC06AE08091E9010E94BD2055
+:1044D00004C01092EA0180E004C081E002C080E0E4
+:1044E000ABCFCF910895E1E8F0E0808188608083D0
+:1044F0008081816080838FB7F89493E090938900E6
+:1045000090ED909388008FBF0895EFE6F0E08081F2
+:10451000826080830895EFE6F0E080818D7F808364
+:104520000895EFE6F0E0908182E089278083089586
+:104530001F920F920FB60F9211242F933F934F9318
+:104540005F936F937F938F939F93AF93BF93EF93FB
+:10455000FF938091EB019091EC0101969093EC0117
+:104560008093EB01811103C082E00E943D09E0913C
+:10457000EC01E695E695F0E0E05AFA4FE49180917F
+:10458000EB018E1303C080E00E943D09FF91EF9183
+:10459000BF91AF919F918F917F916F915F914F915B
+:1045A0003F912F910F900FBE0F901F90189504D040
+:1045B0006894B1118DC0089570D088F09F5790F025
+:1045C000B92F9927B751A0F0D1F0660F771F881F38
+:1045D000991F1AF0BA95C9F712C0B13081F077D09F
+:1045E000B1E0089574C0672F782F8827B85F39F03D
+:1045F000B93FCCF3869577956795B395D9F73EF497
+:1046000090958095709561957F4F8F4F9F4F08953E
+:10461000E89409C097FB3EF490958095709561955C
+:104620007F4F8F4F9F4F9923A9F0F92F96E9BB2712
+:104630009395F695879577956795B795F111F8CF8E
+:10464000FAF4BB0F11F460FF1BC06F5F7F4F8F4FF9
+:104650009F4F16C0882311F096E911C0772321F0EF
+:104660009EE8872F762F05C0662371F096E8862F87
+:1046700070E060E02AF09A95660F771F881FDAF7DE
+:10468000880F9695879597F9089557FD9058440F90
+:10469000551F59F05F3F71F04795880F97FB991FA1
+:1046A00061F09F3F79F0879508951216130614065E
+:1046B000551FF2CF4695F1DF08C0161617061806EB
+:1046C000991FF1CF86957105610508940895E894C6
+:1046D000BB2766277727CB0197F908950BD078C0C1
+:1046E00069D028F06ED018F0952309F05AC05FC049
+:1046F0001124EECFCADFA0F3959FD1F3950F50E0C0
+:10470000551F629FF001729FBB27F00DB11D639F83
+:10471000AA27F00DB11DAA1F649F6627B00DA11D29
+:10472000661F829F2227B00DA11D621F739FB00DCF
+:10473000A11D621F839FA00D611D221F749F33273F
+:10474000A00D611D231F849F600D211D822F762FD8
+:104750006A2F11249F5750408AF0E1F088234AF0D5
+:10476000EE0FFF1FBB1F661F771F881F9150504021
+:10477000A9F79E3F510570F014C0AACF5F3FECF33C
+:10478000983EDCF3869577956795B795F795E7950D
+:104790009F5FC1F7FE2B880F911D9695879597F91E
+:1047A000089597F99F6780E870E060E008959FEFB3
+:1047B00080EC089500240A941616170618060906B8
+:1047C000089500240A941216130614060506089587
+:1047D000092E0394000C11F4882352F0BB0F40F40F
+:1047E000BF2B11F460FF04C06F5F7F4F8F4F9F4F4F
+:1047F000089597FB072E16F4009407D077FD09D093
+:104800000E94132407FC05D03EF4909581959F4F9C
+:104810000895709561957F4F0895EE0FFF1F0590E5
+:10482000F491E02D0994AA1BBB1B51E107C0AA1FFC
+:10483000BB1FA617B70710F0A61BB70B881F991F41
+:104840005A95A9F780959095BC01CD010895F999E5
+:10485000FECF92BD81BDF89A992780B50895A8E151
+:10486000B0E042E050E00C944F24262FF999FECF9F
+:1048700092BD81BDF89A019700B4021639F01FBAB3
+:1048800020BD0FB6F894FA9AF99A0FBE08950196D2
+:10489000272F0E9436240C943524DC01CB01FC0127
+:1048A000F999FECF06C0F2BDE1BDF89A319600B489
+:0E48B0000D9241505040B8F70895F894FFCF94
+:1048BE0002203F09CD09AA09760942090101C70163
+:1048CE0028080A03140A3F4D36392105D4049E04E4
+:1048DE006504F80311042A044304010203040506C7
+:0448EE0007080900AE
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c new file mode 100644 index 000000000..7c9f67381 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/keymap.c @@ -0,0 +1,134 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 +#define SYMB 1 +#define PLVR 2 +#define ARRW 3 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = KEYMAP( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F14, + KC_TAB, KC_Q, KC_W, KC_D, KC_F, KC_K, TG(PLVR), + 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_LALT, KC_LGUI, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLD, KC_MUTE, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLU, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, CTL_T(KC_ESC), KC_FN1, + // + /*-*/ KC_F15, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + /*-*/ KC_BSLS, 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_RALT, KC_F4, KC_F5, KC_F6, + KC_MPLY, KC_MNXT, + KC_MPRV, + KC_FN3, KC_QUOT, KC_SPC + ), + [SYMB] = KEYMAP( + 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_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, 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, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_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_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS, + /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ), + [PLVR] = KEYMAP( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + 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_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_C, KC_V, KC_NO, + // + /*-*/ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + /*-*/ KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO, + /*-*/ /*-*/ 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_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_NO, KC_N, KC_M + ), + [ARRW] = 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_MS_L, KC_MS_U, KC_MS_D, KC_MS_R, + 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, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, + // + /*-*/ KC_TRNS, KC_TRNS, KC_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_TRNS, + /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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[] = { + [SYMB] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Symbols Layer + [PLVR] = ACTION_LAYER_TAP_TOGGLE(PLVR), // FN2 - Momentary Plover Layer + [ARRW] = ACTION_LAYER_TAP_TOGGLE(ARRW), // FN3 - Momentary Arrows Layer +}; + +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 SYMB: + ergodox_right_led_1_on(); + break; + case PLVR: + ergodox_right_led_2_on(); + break; + case ARRW: + ergodox_right_led_3_on(); + break; + default: + break; + } +}; diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md new file mode 100644 index 000000000..4188d2b50 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/readme.md @@ -0,0 +1,50 @@ +# Roman's Layout + +There are four layers: + +- **BASE** is [Norman layout](https://normanlayout.info/). +- **SYMB** for numbers and symbols. +- **PLVR** is optimized for [Plover](http://www.openstenoproject.org). +- **ARRW** for navigation (same fingers for arrows as HJKL on QWERTY). + +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) + +## Switching + +- Tap `SYMB` to toggle **SYMB**. +- Tap `ARRW` to toggle **ARRW**. +- Hold `SYMB` (or `ARRW`) to activate **SYMB** (or **ARRW**) while holding. +- Tap `PLVR` to toggle **PLVR**. + +## LEDs + +- Red: SYMB is on. +- Green: PLVR is on. +- Blue: ARRW is on. + +## 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/). +- Tap `F14`, `F15` to adjust display brightness. + +**IMPORTANT**: If you have another keyboard connected via Bluetooth, then +`F14` and `F15` will not work. Turn off that Bluetooth keyboard. Re-plug +you ErgoDox. Enjoy! + +## CTRL/ESC + +Both of those keys are frequently used in Vim. + +- Tap `CTRL/ESC` to send `ESC`. +- Hold `CTRL/ESC` to use as `CTRL`. + +## Activate N-rollover + +- While in **BASE** hold left `SHIFT` and right `SHIRT` and then tap `N`. +- Then you can activate **PLVR** and use ErgoDox EZ for steno. diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png Binary files differnew file mode 100644 index 000000000..cdc535f79 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx-hjkl/romanzolotarev-norman-plover-osx-hjkl.png diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/compiled.hex b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/compiled.hex new file mode 100644 index 000000000..66d01f1c6 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/compiled.hex @@ -0,0 +1,1169 @@ +:100000000C94D0020C9414030C9414030C94140359
+:100010000C9414030C9414030C9414030C94140304
+:100020000C9414030C9414030C94BC0D0C948E0EBD
+:100030000C9414030C9414030C9414030C941403E4
+:100040000C9414030C9498220C9414030C94140331
+:100050000C9414030C942B1C0C9414030C94140394
+:100060000C9414030C9414030C9414030C941403B4
+:100070000C9414030C9414030C9414030C941403A4
+:100080000C9414030C9414030C9414030C94140394
+:100090000C9414030C9414030C9414030C94140384
+:1000A0000C9414030C9414030C941403FB0E1D0FF6
+:1000B0000B101D0F0B10620F850F0B10DA0FED0FD9
+:1000C000BC12BC12EB12EB12211341137214721406
+:1000D0004C137214FC13FC136314721472146C141A
+:1000E0000914091409140914091409140914091428
+:1000F0000914091409140914091409140914091418
+:100100001B1428142F14361440140000F0A1F0A280
+:10011000F0A335002B002971E1003A0000001E0019
+:10012000140004001D003B00C1001F001A0016004F
+:100130001B003C0029712000070008000600E200B7
+:100140002A002100090017001900E300A90022007D
+:100150000E000A0005000000AA0069000254000019
+:100160002F000000A8006A003100000030000000ED
+:10017000AE0023000D001C0013000000AB002400A3
+:10018000180011001000E700AC00250015000C005D
+:100190003600E6002C0026000F00120037003D005C
+:1001A0003400270033000B0038003E00C3002E004F
+:1001B0002D002800E5003F000000010001000100C3
+:1001C00001000100000001001E001E0201000100EC
+:1001D000010001001F001F020100010001000100D9
+:1001E0002000200201000100010001002100210285
+:1001F00001000100010001002200220201000000B4
+:1002000001000100010000000100000001000100E8
+:100210000100000001000000010001002300230292
+:10022000010000000100010024002402010001007F
+:10023000010001002500250201000100010001006C
+:10024000260026020100010001000100270027020C
+:100250000100010001000100010001000100010096
+:10026000000000000000000000000100000000008D
+:100270001E00140004000100000000001F001A000E
+:10028000160001001900000020000800070000000F
+:100290000600000021001500090000000100000018
+:1002A000220017000A000000010001000100000008
+:1002B000000000000100010000000000000000003C
+:1002C0000100000023001C000B00000001000000E2
+:1002D000240018000D0000000100000025000C00A3
+:1002E0000E00000010000000260012000F000000A9
+:1002F0001100000027001300330000000000000080
+:1003000000002F0034000000000001000100010087
+:1003100001000100000001000100010001000100D6
+:1003200001000100F400F2000100010001000100E1
+:10033000F000F1000100010001000100F500F300F0
+:1003400001000100010001000100010001000000A6
+:100350000100010001000000010000000100010097
+:100360000100000001000000010001000100010087
+:100370000100000001000100010050000100010027
+:1003800001000100520051000100010001000100C4
+:1003900001004F0001000100010001000100010007
+:1003A0000100010001000100010001000100010045
+:1003B000000016034500720067006F0044006F00E4
+:1003C0007800200045005A00000016034500720026
+:1003D00067006F0044006F007800200045005A005D
+:1003E00000000403090409026D00040100A0FA09D9
+:1003F0000400000103010100092111010001223F55
+:10040000000705810308000A090401000103010235
+:1004100000092111010001224D0007058203080097
+:100420000A09040200010300000009211101000172
+:100430002236000705830308000A090403000103AC
+:100440000000000921110100012239000705840381
+:100450001000011201100100000008EDFE07130159
+:10046000000102000105010906A101050719E029A3
+:10047000E715002501950875018102050819012974
+:1004800005950575019102950175039101050719FF
+:1004900000297715002501957875018102C00501B5
+:1004A0000980A101850216010026B7001A01002A61
+:1004B000B700751095018100C0050C0901A10185E7
+:1004C00003160100269C021A01002A9C0275109551
+:1004D000018100C005010902A1010901A10005096E
+:1004E0001901290515002501950575018102950160
+:1004F000750381010501093009311581257F9502B8
+:100500007508810609381581257F950175088106D2
+:10051000050C0A38021581257F950175088106C0F2
+:10052000C005010906A101050719E029E715002505
+:100530000195087501810295017508810105081969
+:100540000129059505750191029501750391010534
+:1005500007190029FF150025FF950675088100C0C1
+:100560000000000000000000000000010204060A74
+:100570000F17202C3A4A5D71879DB3C7DAE9F5FC65
+:10058000FFFCF5E9DAC7B39D87715D4A3A2C201765
+:100590000F0A060402010000000000000000000035
+:1005A00011241FBECFEFDAE0DEBFCDBF04B603FEDD
+:1005B00024C08091FB019091FC01A091FD01B091BC
+:1005C000FE018730904BA740B04BB9F41092FB016D
+:1005D0001092FC011092FD011092FE0114BE84B72E
+:1005E000877F84BF88E10FB6F894809360001092F3
+:1005F00060000FBEE0E0FFE3099511E0A0E0B1E08C
+:10060000EEEBF8E402C005900D92A433B107D9F7E0
+:1006100011E0A4E3B1E001C01D92AB3FB107E1F7E7
+:100620000E94000B0C945D240C9400001092B90001
+:100630008AE08093B800089594EA9093BC0090916A
+:10064000BC0097FFFCCF9091B900987F983021F0C3
+:10065000903111F081E008958093BB0084E880938D
+:10066000BC008091BC0087FFFCCF8091B900887FDF
+:10067000883111F0803471F780E0089584E9809327
+:10068000BC008091BC0084FDFCCF08958093BB002A
+:1006900084E88093BC008091BC0087FFFCCF9091E0
+:1006A000B900987F81E0983209F480E0089584E8E9
+:1006B0008093BC008091BC0087FFFCCF8091BB0081
+:1006C000089580910101811115C080E40E941C03EE
+:1006D0008093010181110CC082E10E944603809346
+:1006E0000101811105C08FEF0E9446038093010133
+:1006F0000E943E0384B1807F84B985B1807F85B933
+:100700008AB1837F8AB98BB1837F8BB93E98469833
+:1007100008950E941C05809301010E94610380B32B
+:100720008C7080BB81B3836F81BBA5E3B1E0E3E450
+:10073000F1E08EE08E0F11921D928E13FCCF0C947F
+:100740000605BF92CF92DF92EF92FF920F931F9315
+:10075000CF93DF9380910101882379F08091340158
+:100760008F5F80933401811108C00E941C05809323
+:100770000101811102C00E94AE0405E311E0C0E056
+:10078000D0E0DD24D39482E0C82EEE24E394F12C53
+:10079000C730D10500F580910101811164C080E46A
+:1007A0000E941C0380930101811112C082E10E940A
+:1007B00046038093010181110BC0C7010C2E01C0BB
+:1007C000880F0A94EAF780950E94460380930101FE
+:1007D0000E943E0348C0CA30A1F028F4C83059F046
+:1007E000C93061F005C0CC3089F070F0CD3089F0AF
+:1007F000209A289810C0219A29980DC0229A2A98E8
+:100800000AC0239A2B9807C0529A01C0539A5B984A
+:1008100002C03E9A469890EA9A95F1F79FB179996D
+:1008200002C082E001C080E091709D25982B7C99E8
+:1008300002C084E001C080E0892B7D9902C038E0CD
+:1008400001C030E0832B7E9902C020E101C020E08E
+:10085000822B9FB19095991F9927991F9295990F77
+:10086000907E892B0FC080910101811149C080E4E5
+:100870000E941C0380930101882379F1B12C0E940E
+:100880003E038B2DF8019081981719F08083C09258
+:1008900000010E94610321960F5F1F4FCE30D105EA
+:1008A00009F076CF80910001882361F18150809317
+:1008B0000001882339F08FE99FE00197F1F700C02C
+:1008C000000020C0A3E4B1E0E5E3F1E0CF01825FE6
+:1008D00091919D938E13FCCF15C083E10E94460336
+:1008E000809301018111CACF81E40E941C0380938F
+:1008F00001018111C3CF0E945703B82EB094BFCF1E
+:1009000080E0C0CF0E94AC0481E0DF91CF911F91C5
+:100910000F91FF90EF90DF90CF90BF900895E82F58
+:10092000F0E0ED5BFE4F8081089508950F931F93D3
+:10093000CF93DF93C3E4D1E010E00C2F025F8991E5
+:1009400090E00E94511B180F0C13F9CF812FDF91FB
+:10095000CF911F910F9108950C947C0556985E9845
+:1009600025982D9826982E9827982F988FEF90E00D
+:10097000909389008093880090938B0080938A00E5
+:1009800090938D0080938C00259A2D9A2FEF80E70D
+:1009900092E0215080409040E1F700C00000269A8C
+:1009A0002E9A2FEF80E792E0215080409040E1F7AF
+:1009B00000C00000279A2F9A2FEF80E792E0215085
+:1009C00080409040E1F700C0000025982D982FEF5F
+:1009D00080E792E0215080409040E1F700C00000A5
+:1009E00026982E982FEF80E792E02150804090408B
+:1009F000E1F700C0000027982F9856985E98259838
+:100A00002D9826982E9827982F98089589EA8093F4
+:100A1000800089E08093810024982C983F988AB1C7
+:100A20008F748AB96E98479A8BB1806B8BB9769A1E
+:100A30000E94AE040C947B0580E2809301018091BA
+:100A4000510181110EC00E94160381E08093510173
+:100A50002FEF83ED90E3215080409040E1F700C0FC
+:100A6000000080E40E941C038093010181112EC0CC
+:100A70000E94460380930101811128C00E94460311
+:100A800080930101811122C08FE30E94460380936D
+:100A9000010181111BC00E943E0380E40E941C03DF
+:100AA00080930101811112C08CE00E944603809363
+:100AB000010181110BC00E94460380930101811145
+:100AC00005C08FE30E944603809301010E943E030C
+:100AD00080910101089561110BC0FC01828188237E
+:100AE00021F085EE0E94601103C085EE0E9428125D
+:100AF00080E090E0089508956091BD017091BE017D
+:100B00008091BF019091C0010E945D1B56985E9834
+:100B100025982D9826982E9827982F98823039F06E
+:100B2000833041F0813041F4259A2D9A0895269A18
+:100B30002E9A0895279A2F9A089581E0089581E0CA
+:100B400008950C949F0508950F931F93CF93DF93FF
+:100B50008C01FC01C081D181CE010E94D619BE0159
+:100B60000E944D06EC01B8010E94A105882309F4FA
+:100B70008DC0F8018281882309F44AC080915D010B
+:100B800081111FC0C431F0E5DF0709F051C00E9498
+:100B9000A30581E080935D010E94F51B90935C01A9
+:100BA00080935B01109254011092560110925501EE
+:100BB000109258011092570110925A011092590147
+:100BC00065C080915B0190915C010E94011C883C92
+:100BD000910570F480915401E82FF0E0EE0FFF1FB3
+:100BE000EB5AFE4FD183C0838F5F809354014EC078
+:100BF000C43880E5D80721F0C538D04501F13AC0A6
+:100C0000F8018281882341F01092520182E01EC0D7
+:100C1000C438E0E5DE0759F580915201811106C024
+:100C200086E20E94601186E20E94281282E01CC0C7
+:100C3000C438F0E5DF0741F3C538D045D9F4F801F1
+:100C40008281882331F01092530180E20E94771252
+:100C50001DC080915301811106C087E20E9460117E
+:100C600087E20E94281280E20E947E120FC0C538DF
+:100C7000D04529F381E08093520180935301C8014C
+:100C8000DF91CF911F910F910C949D0580E0DF9132
+:100C9000CF911F910F910895089596E0799FF001EB
+:100CA000112494E5899FE00DF11D1124E60FF11D3B
+:100CB000EE0FFF1FEE5EFE4F859194910895880F11
+:100CC000991FFC01E657F040859194910895880F93
+:100CD000991FFC01E65FFE4F8591949108950F9353
+:100CE0001F93CF93DF93EC01811520E3920750F51A
+:100CF000C11580E2D80708F0C3C0CB3BD10590F402
+:100D0000C83AD10508F06AC0C53AD10508F05BC001
+:100D1000C430D10508F0D0C1219709F0CAC101E063
+:100D200010E00AC2CF3FD10511F008F0C5C1C03FA5
+:100D3000D10508F0A2C0CE01805E9109089708F4A1
+:100D4000BBC1B7C1C13090E5D90709F4A2C020F5F5
+:100D5000C0318FE4D80770F4C11590E4D90708F0CA
+:100D600094C0C11521E3D20708F0A3C1DD278E018D
+:100D7000106CE2C1C115D04509F09BC10E94DD1481
+:100D80008FEF94E32CE0815090402040E1F700C0C9
+:100D900000000E94501CD0C1C11597E5D90758F436
+:100DA000C03121E5D20708F01CC1C43180E5D80765
+:100DB00008F475C07EC1CE0190578115904108F0AE
+:100DC00078C1DF7073C1C53AD10509F477C1C63A5D
+:100DD000D10509F076C102E810E4AEC1C83AD105E8
+:100DE00009F472C1C93AD10509F471C1CA3AD105F1
+:100DF00009F470C1CB3AD10509F46FC1CC3AD105E1
+:100E000009F46EC1CD3AD10509F46DC1C03BD105DD
+:100E100009F46CC1CE3AD10509F46BC1CF3AD105C2
+:100E200009F46AC1C13BD10509F469C1C23BD105CE
+:100E300009F468C1C33BD10509F467C1C43BD105BE
+:100E400009F466C1C53BD10509F465C1C63BD105AE
+:100E500009F464C1C73BD10509F463C1C83BD1059E
+:100E600009F462C1C93BD10509F461C1CA3BD1058E
+:100E700009F460C100E014E45FC18E0110655CC13B
+:100E8000CE019F700E94670658C1DF708E01106A04
+:100E900053C18091DA0181608093DA014DC10E94D3
+:100EA000F51D811102C00E94DB1D0E94121E90E000
+:100EB0009093FB018093FA01C23080E5D80721F4BA
+:100EC0008091FA01816086C0C43090E5D90721F491
+:100ED0008091FA0182607EC0C63020E5D20721F4FD
+:100EE0008091FA01846076C0C83080E5D80719F493
+:100EF0008091FA0127C0CA3090E5D90721F480918A
+:100F0000FA01806167C0CC3020E5D20721F48091DE
+:100F1000FA0180625FC0CE3080E5D80721F480916D
+:100F2000FA01806457C0C03190E5D90721F480915F
+:100F3000FA0180684FC0C23120E5D20729F48091C0
+:100F4000FA018460886046C0C33080E5D80721F488
+:100F50008091FA018E7F3EC0C53090E5D90721F41B
+:100F60008091FA018D7F36C0C73020E5D20721F489
+:100F70008091FA018B7F2EC0C93080E5D80719F423
+:100F80008091FA0126C0CB3090E5D90721F48091F9
+:100F9000FA018F7E1FC0CD3020E5D20721F4809169
+:100FA000FA018F7D17C0CF3080E5D80721F48091FA
+:100FB000FA018F7B0FC0C13190E5D90721F48091F0
+:100FC000FA018F7707C0C331D04531F48091FA011F
+:100FD0008B7F877F8093FA018091FA010E94161E11
+:100FE000ABC08D2F99278F70992781309105D9F447
+:100FF0009E012370332702C0880F991F2A95E2F7BC
+:101000009C688E0144E0000F111F4A95E1F700270C
+:101010001370802B912B53E0CC0FDD1F5A95E1F715
+:10102000C076DD272FC08230910531F4DC2FCC272C
+:101030008E01016F106A80C08330910569F4CE0182
+:101040008370992701E010E002C0000F111F8A95FC
+:10105000E2F7C8019C680FC084309105B9F4CE0155
+:101060008370992701E010E002C0000F111F8A95DC
+:10107000E2F7C8019A6823E0CC0FDD1F2A95E1F75B
+:10108000C07ED7708C010C2B1D2B56C0853091056E
+:1010900031F4DC2FCC278E01046F106A4DC0069707
+:1010A00009F04AC0CF71DD27DC2FCC278E011062FA
+:1010B00043C000E010E040C08E013EC001E810E4F3
+:1010C0003BC003E810E438C002EE14E435C009EE7A
+:1010D00014E432C00AEE14E42FC005EB14E42CC073
+:1010E00006EB14E429C007EB14E426C00CEC14E46E
+:1010F00023C00DEC14E420C003E815E41DC00AE889
+:1011000015E41AC002E915E417C004E915E414C097
+:1011100001E216E411C003E216E40EC004E216E494
+:101120000BC005E216E408C006E216E405C007E2BB
+:1011300016E402C00AE216E4C801DF91CF911F91C4
+:101140000F91089596E0799FF001112494E5899F0D
+:10115000E00DF11D1124E60FF11DEE0FFF1FEE5EF5
+:10116000FE4F85919491803E9105E0F4803C91057D
+:1011700058F58133910509F46FC048F4893291051F
+:1011800009F463C08A32910509F46DC072C08933D5
+:101190009105E9F082389105D1F08533910509F484
+:1011A0004DC067C0833E910581F138F4803E9105C2
+:1011B000B9F0823E9105D9F05CC0863E910561F19F
+:1011C000873E9105A1F155C00E945F0608952091C8
+:1011D000FA0120FD02C021FF4CC080EE90E049C022
+:1011E0008091FA0180FFF9CF89E390E042C08091BD
+:1011F000FA0182FF0EC08091FA0184FF03C080E0F3
+:1012000090E037C083EE90E034C08091FA0182FF15
+:10121000F2CF82EE90E02DC08091FA0183FF0BC0E7
+:101220008091FA0184FDEBCF87EE90E022C080919F
+:10123000FA0183FFF5CF86EE90E01BC08091FA01A2
+:1012400085FF07C089E290E014C08091FA0185FF14
+:10125000F9CF85E390E00DC08091FA0186FF07C0C9
+:101260008AE290E006C08091FA0186FFF9CF81E31F
+:1012700090E00E946F06089508950C943C098091B7
+:101280006E010895CF93DF9300D01F92CDB7DEB7E4
+:101290009C018091F101843019F593E099833B839F
+:1012A0002A839093E9008FEF9091E800815095FD9B
+:1012B00006C095ED9A95F1F700008111F5CF809168
+:1012C000E80085FF0DC040E050E063E070E0CE0133
+:1012D00001960E94AC0B8091E8008E778093E80025
+:1012E0000F900F900F90DF91CF910895CF93DF93E0
+:1012F00000D01F92CDB7DEB72091F101243021F547
+:1013000022E029839B838A8383E08093E9008FEF27
+:101310009091E800815095FD06C095ED9A95F1F702
+:1013200000008111F5CF8091E80085FF0DC040E0FD
+:1013300050E063E070E0CE0101960E94AC0B80911A
+:10134000E8008E778093E8000F900F900F90DF9168
+:10135000CF9108952091F1012430F1F422E02093FF
+:10136000E9002FEF3091E800215035FD06C035ED42
+:101370003A95F1F700002111F5CF2091E80025FF03
+:101380000BC040E050E065E070E00E94AC0B809143
+:10139000E8008E778093E8000895CF93DF93EC0107
+:1013A0009091F101943009F046C080910C0188239E
+:1013B000D9F080910D018823B9F09093E9008FEF67
+:1013C0009091E800815095FD06C095E19A95F1F75E
+:1013D00000008111F5CF8091E80085FF2CC040E02E
+:1013E00050E060E170E017C081E08093E9008FEF8A
+:1013F0009091E800815095FD06C095ED9A95F1F722
+:1014000000008111F5CF8091E80085FF14C040E015
+:1014100050E068E070E0CE010E94AC0B8091E800E3
+:101420008E778093E80080E1FE01AEE5B1E00190A7
+:101430000D928A95E1F7DF91CF9108958091F001A7
+:10144000811109C00E94410D0E949E0D8091E20011
+:1014500084608093E20008951092F0010895089549
+:101460000C9485220E94E61B0E948B220E9444104D
+:101470000C943D0942E061EC81E00E94BB0C42E02B
+:1014800061EC82E00E94BB0C42E061EC83E00E94D0
+:10149000BB0C42E161EC84E00C94BB0C8091F30145
+:1014A000833009F455C030F4813071F0823009F492
+:1014B0008EC008958A3009F47AC08B3009F460C078
+:1014C000893009F09CC020C08091F201813A09F076
+:1014D00096C08091E800877F8093E8008091F601B4
+:1014E0009091F701892B21F460E18EE591E003C032
+:1014F00060E080E090E070E00E94F70B8091E800EF
+:101500008B778093E80008958091F201813209F091
+:1015100076C08091F6019091F701009719F003973A
+:1015200009F06DC08091E800877F8093E80080918A
+:10153000E80082FD05C08091F1018111F8CF5FC004
+:101540008091F10080936E018091E8008B7753C009
+:101550008091F201813A09F052C08091F601909198
+:10156000F701892B09F04BC08091E800877F8093B9
+:10157000E8008091E80080FFFCCF80910C0136C02C
+:101580008091F2018132D9F58091F6019091F701B5
+:10159000892BA9F58091E800877F8093E8000E945D
+:1015A000F00C8091F40180930C010C94DD14809177
+:1015B000F201813221F58091E800877F8093E80075
+:1015C0000E94F00C8091F50180936F010895809145
+:1015D000F201813AA1F48091E800877F8093E800CE
+:1015E0008091E80080FFFCCF80916F018093F10033
+:1015F0008091E8008E778093E8000C94F00C0895B9
+:1016000084B7877F84BF88E10FB6F8948093600029
+:10161000109260000FBE90E080E80FB6F8948093BF
+:101620006100909361000FBE0E9493100E94410DD3
+:101630000E949E0D8091E20084608093E200789485
+:101640000E9424100E94951082E091E00E943F10B9
+:101650000E9473228091F101853069F40E94AD1BD4
+:101660008091EF018823B1F30E94D81B882391F366
+:101670000E94960BEFCF0E949B10ECCF292F3327AF
+:1016800023303105C9F064F42130310581F0223076
+:10169000310509F043C08DE690E026EE33E042C00C
+:1016A00021323105F1F02232310541F137C082E1BA
+:1016B00090E023E534E036C099278130910541F070
+:1016C0008230910541F0892B49F5E2EEF3E005C047
+:1016D000EAECF3E002C0E2EBF3E0849190E09F01DA
+:1016E00021C06430D8F4E62FF0E0EE0FFF1FEE5D6E
+:1016F000FE4F2081318189E090E014C0643070F4A5
+:1017000070E0FB01EE0FFF1FE65EFE4F208131818E
+:10171000FB01EA5EFE4F808190E004C080E090E033
+:1017200020E030E0FA0131832083089580E189BD13
+:1017300082E189BD09B400FEFDCF8091D8008F7D84
+:101740008093D8008091E00082608093E0008091D7
+:10175000E00081FDFCCF0895CF92DF92EF92FF92DF
+:101760000F931F93CF93DF93EC018B016A010E94CB
+:101770000F0D811133C0C114D10439F0F6018081FD
+:101780009181081B190BC80FD91FE12CF12C0115F1
+:10179000110519F18091E80085FD16C08091E800DF
+:1017A0008E778093E800C114D10449F0F60180815E
+:1017B0009181E80EF91EF182E08285E00FC00E945F
+:1017C0000F0D882321F30AC089918093F100015005
+:1017D0001109FFEFEF1AFF0ADACF80E0DF91CF9116
+:1017E0001F910F91FF90EF90DF90CF90089520917F
+:1017F000F8013091F9012617370748F06115710596
+:1018000039F42091E8002E772093E80001C0B90157
+:1018100040E061157105A9F12091F101222309F43D
+:1018200043C0253009F442C02091E80023FD40C0A8
+:101830002091E80022FD32C02091E80020FFE9CF8E
+:101840004091F3002091F20030E0342BFC01CF01F5
+:101850006115710559F02830310540F4819180936C
+:10186000F100615071092F5F3F4FF1CF41E0283007
+:10187000310509F040E02091E8002E772093E80040
+:10188000C8CF4111C9CF0AC08091F101882361F00E
+:10189000853061F08091E80083FD0AC08091E80006
+:1018A00082FFF2CF80E0089582E0089583E00895FA
+:1018B00081E008952091F8013091F901261737074A
+:1018C00048F06115710539F42091E8002E772093D6
+:1018D000E80001C0B901FC0120E06115710591F13A
+:1018E0008091F101882309F440C0853009F43FC09C
+:1018F0008091E80083FD3DC08091E80082FD2FC00B
+:101900008091E80080FFE9CF2091F3008091F20000
+:1019100090E0922B6115710559F08830910540F4E3
+:1019200024912093F1003196615071090196F2CF14
+:1019300021E0089709F020E08091E8008E778093FD
+:10194000E800CBCF2111CCCF0AC08091F1018823D0
+:1019500061F0853061F08091E80083FD0AC08091DC
+:10196000E80082FFF2CF80E0089582E0089583E0EE
+:10197000089581E00895982F973058F59093E900E5
+:10198000981739F07091EC002091ED005091F00023
+:1019900003C0242F762F50E021FF19C03091EB00B7
+:1019A0003E7F3093EB003091ED003D7F3093ED00B2
+:1019B0003091EB0031603093EB007093EC0020939A
+:1019C000ED005093F0002091EE0027FF07C09F5FCD
+:1019D000D3CF8F708093E90081E0089580E008956F
+:1019E0008091F20187FF11C08091E80082FD05C05F
+:1019F0008091F1018111F8CF11C08091E8008B77BF
+:101A00000BC08091F101882349F08091E80080FFAC
+:101A1000F8CF8091E8008E778093E80008952091B8
+:101A2000E4003091E50095E64091EC00842F817050
+:101A300040FF22C08091E80080FD1CC08091F10130
+:101A4000882391F0853091F08091EB0085FD10C0E6
+:101A50004091E4005091E5004217530729F39A01A1
+:101A6000915011F784E0089582E0089583E008958D
+:101A700081E0089580E008954091E80042FFDECFC4
+:101A800008950E94AF0D0E94B70DE0EEF0E0808156
+:101A900081608083E8EDF0E080818F77808319BCDE
+:101AA000A7EDB0E08C918E7F8C9380818F7E8083B8
+:101AB0001092F00108950F931F93CF93DF930E942C
+:101AC000AF0D0E94B70DC8EDD0E088818F77888375
+:101AD00088818068888388818F7D888319BC109273
+:101AE000F1011092ED011092EF011092EE0100EE63
+:101AF00010E0F80180818B7F8083888181608883FA
+:101B000042E060E080E00E94BB0CE1EEF0E080810A
+:101B10008E7F8083E2EEF0E080818160808380812F
+:101B200088608083F80180818E7F808388818061D6
+:101B30008883DF91CF911F910F910895E8EDF0E038
+:101B400080818F7E8083E7EDF0E0808181608083FB
+:101B500084E082BF81E08093F0010C945B0DE8ED9E
+:101B6000F0E080818E7F80831092E20008951092D1
+:101B7000DA001092E10008951F920F920FB60F92B3
+:101B800011242F933F934F935F936F937F938F9382
+:101B90009F93AF93BF93EF93FF938091E10082FFF8
+:101BA0000BC08091E20082FF07C08091E1008B7F33
+:101BB0008093E1000E9423108091DA0080FF1FC013
+:101BC0008091D80080FF1BC08091DA008E7F8093C7
+:101BD000DA008091D90080FF0DC080E189BD82E1EB
+:101BE00089BD09B400FEFDCF81E08093F1010E9420
+:101BF0001E0A05C019BC1092F1010E942C0A8091A6
+:101C0000E10080FF19C08091E20080FF15C0809143
+:101C1000E2008E7F8093E2008091E20080618093F9
+:101C2000E2008091D80080628093D80019BC85E0E2
+:101C30008093F1010E94300A8091E10084FF30C05E
+:101C40008091E20084FF2CC080E189BD82E189BDE2
+:101C500009B400FEFDCF8091D8008F7D8093D8001D
+:101C60008091E1008F7E8093E1008091E2008F7E81
+:101C70008093E2008091E20081608093E200809195
+:101C8000ED01882311F084E007C08091E30087FD17
+:101C900002C081E001C083E08093F1010E94320A1A
+:101CA0008091E10083FF29C08091E20083FF25C07D
+:101CB0008091E100877F8093E10082E08093F101D1
+:101CC0001092ED018091E1008E7F8093E100809180
+:101CD000E2008E7F8093E2008091E2008061809339
+:101CE000E20042E060E080E00E94BB0C8091F000E6
+:101CF00088608093F0000E942F0AFF91EF91BF91BE
+:101D0000AF919F918F917F916F915F914F913F9193
+:101D10002F910F900FBE0F901F9018951F920F924A
+:101D20000FB60F9211242F933F934F935F936F93AE
+:101D30007F938F939F93AF93BF93CF93DF93EF9353
+:101D4000FF93C091E900CF708091EC00D82FD17043
+:101D500080FDD0E81092E9008091F000877F8093A9
+:101D6000F00078940E94D20E1092E9008091F00069
+:101D700088608093F000CD2BCF70C093E900FF9175
+:101D8000EF91DF91CF91BF91AF919F918F917F9113
+:101D90006F915F914F913F912F910F900FBE0F90D8
+:101DA0001F9018951F93CF93DF93CDB7DEB7AA97F7
+:101DB0000FB6F894DEBF0FBECDBFE2EFF1E088E0D2
+:101DC0008E0F9091F10091938E13FBCF0E944E0ADB
+:101DD0008091E80083FF1FC18091F2019091F3018F
+:101DE000492F50E04A30510508F015C1FA01EA5A6E
+:101DF000FF4F0C940D24803881F0823809F00BC11C
+:101E00008091F6018F708093E9008091EB0085FB53
+:101E1000882780F91092E90006C08091EE01909128
+:101E2000EF01911182609091E800977F9093E80014
+:101E30008093F1001092F100C8C0282F2D7F09F087
+:101E4000EAC0882319F0823061F0E5C08091F40186
+:101E5000813009F0E0C0933009F080E08093EF0119
+:101E60002BC08091F401811127C08091F6018F7001
+:101E700009F4D1C08093E9002091EB0020FF1CC041
+:101E8000933021F48091EB00806214C09091EB00BC
+:101E900090619093EB0021E030E0A90102C0440F73
+:101EA000551F8A95E2F74093EA001092EA0080916C
+:101EB000EB0088608093EB001092E9008091E800CD
+:101EC000877F86C08111A7C01091F4011F77809190
+:101ED000E3008078812B8093E3008091E800877F86
+:101EE0008093E8000E94F00C8091E80080FFFCCF16
+:101EF0008091E30080688093E300111102C082E0CA
+:101F000001C083E08093F10186C08058823008F0E0
+:101F100082C08091F4019091F5018C3D53E09507CA
+:101F200079F583E08A838AE289834FB7F894DE01EA
+:101F3000139620E03EE051E2E32FF0E0509357008B
+:101F4000E49120FF03C0E295EF703F5FEF708E2FAA
+:101F500090E0EA3010F0C79601C0C0968D939D9333
+:101F60002F5F243149F74FBF8091E800877F80932E
+:101F7000E8006AE270E0CE0101960E94F70B14C0FF
+:101F8000AE014F5F5F4F6091F6010E943E0BBC01B6
+:101F9000009709F440C09091E800977F9093E80083
+:101FA00089819A810E945A0C8091E8008B778093F6
+:101FB000E80031C0803879F58091E800877F809310
+:101FC000E8008091ED018093F1008091E8008E7728
+:101FD0008093E8000E94F00C1EC081111CC09091FB
+:101FE000F4019230C0F48091E800877F8093E8008C
+:101FF0009093ED010E94F00C8091ED01811106C0DB
+:102000008091E30087FD02C081E001C084E08093FD
+:10201000F1010E943A0A8091E80083FF0AC0809192
+:10202000E800877F8093E8008091EB0080628093D6
+:10203000EB00AA960FB6F894DEBF0FBECDBFDF91BE
+:10204000CF911F9108950895CF938091F101882336
+:10205000A1F0C091E900CF709091EC00892F8170C0
+:1020600090FD80E8C82B1092E9008091E80083FD84
+:102070000E94D20ECF70C093E900CF910895909343
+:102080007501809374010895E0917401F0917501D8
+:10209000309721F00190F081E02D099480E00895BF
+:1020A000E0917401F0917501309721F00280F38185
+:1020B000E02D09940895E0917401F0917501309735
+:1020C00021F00480F581E02D09940895209172019A
+:1020D000309173018217930771F09093730180938D
+:1020E0007201E0917401F0917501309721F0068042
+:1020F000F781E02D099408952091700130917101CC
+:102100008217930771F09093710180937001E091B1
+:102110007401F0917501309721F00084F185E02D74
+:102120000994089508950C9492100E94EC1B0E944B
+:1021300089030C94AE1C9F92AF92BF92CF92DF9214
+:10214000EF92FF920F931F93CF93DF9300D000D0B5
+:1021500000D0CDB7DEB70E94A1030DE010E0AA24A5
+:10216000A394B12C902E802F0E948F04980129589F
+:102170003E4F6901F901F080F826A1F401501109E0
+:1021800088F78FEF89838A831B820E94F51B816009
+:10219000782F9D838C8349815A816B818D810E9428
+:1021A00032112FC09091DA0191FF04C08E830E94FA
+:1021B00095048E8125E030E0A501022E01C0440F78
+:1021C0000A94EAF7E42E4F21C1F029839A828E21E6
+:1021D00091E009F490E09B830E94F51B8160782FC9
+:1021E0009D838C8349815A816B818D810E9432113C
+:1021F000F6018081E826E08204C021503109E0F632
+:10220000BDCF0E94951F109176010E9444101817AF
+:10221000B9F00E9444108093760126960FB6F89488
+:10222000DEBF0FBECDBFDF91CF911F910F91FF9009
+:10223000EF90DF90CF90BF90AF909F900C943D09AE
+:1022400026960FB6F894DEBF0FBECDBFDF91CF91BB
+:102250001F910F91FF90EF90DF90CF90BF90AF90C4
+:102260009F900895CF93DF93CDB7DEB72B970FB62E
+:10227000F894DEBF0FBECDBF4F83588769877A873A
+:102280008B87DE01119686E0FD0111928A95E9F7B0
+:1022900085E0FE01379601900D928A95E1F749811C
+:1022A0005A816B817C818D819E810E947B172B9648
+:1022B0000FB6F894DEBF0FBECDBFDF91CF9108956A
+:1022C000CF93882309F4C2C0C82F823859F40E94E2
+:1022D000441081FDBBC089E30E94551A0E94221B55
+:1022E00089E30CC0833879F40E94441080FDAEC0AD
+:1022F00083E50E94551A0E94221B83E50E94971ACB
+:10230000CF910C94221B843859F40E94441082FD12
+:102310009DC087E40E94551A0E94221B87E4EECFDD
+:102320008CEF8C0F813A48F48C2F0E94D8218111B8
+:102330008DC08C2F0E94551AE3CF80E28C0F88301D
+:1023400048F4C77081E001C0880FCA95EAF70E947F
+:10235000DB1AD6CF8BE58C0F833078F4C53A29F0A1
+:10236000C63A31F083E890E005C081E890E002C011
+:1023700082E890E0CF910C94661088E58C0F833151
+:1023800008F064C0C83A39F1C93A41F1CA3A49F192
+:10239000CB3A51F1CC3A59F1CD3A61F1C03B69F1F8
+:1023A000CE3A71F1CF3A79F1C13B81F1C23B89F16B
+:1023B000C33B91F1C43B99F1C53BA1F1C63BA9F1E7
+:1023C000C73BB1F1C83BB9F1C93BC1F1CA3BC9F147
+:1023D00080E090E038C082EE90E035C089EE90E079
+:1023E00032C08AEE90E02FC085EB90E02CC086EBE7
+:1023F00090E029C087EB90E026C08CEC90E023C0F1
+:102400008DEC90E020C083E891E01DC08AE891E067
+:102410001AC082E991E017C084E991E014C081E21A
+:1024200092E011C083E292E00EC084E292E00BC021
+:1024300085E292E008C086E292E005C087E292E081
+:1024400002C08AE292E0CF910C947C10CF91089563
+:10245000882309F44BC0823859F40E94441081FF4C
+:1024600045C089E30E94551A0E94221B89E30CC0D3
+:10247000833871F40E94441080FF38C083E50E94C5
+:10248000551A0E94221B83E50E94971A0C94221B66
+:10249000843859F40E94441082FF28C087E40E94C7
+:1024A000551A0E94221B87E4EFCF9CEF980F913AB8
+:1024B00058F390E2980F983050F4877091E001C083
+:1024C000990F8A95EAF7892F0E94E11ADFCF9BE5E1
+:1024D000980F933020F480E090E00C946610885AB6
+:1024E000833120F480E090E00C947C1008958823E0
+:1024F00021F00E94DB1A0C94221B0895882321F0FE
+:102500000E94E11A0C94221B08957F928F929F9251
+:10251000AF92BF92CF92DF92EF92FF920F931F93F1
+:10252000CF93DF931F92CDB7DEB77C01C62E772EF7
+:10253000FC01058102950F70128111110E94F81A99
+:102540000E944E1A882379F0112369F080E28C0DE5
+:10255000883048F082E00E94371A0E944E1A91E0BB
+:10256000D82ED92601C0D12CE72DE295EF70F0E0EE
+:10257000E05AFF4F0C940D24872D807F072D0F709C
+:10258000882311F00295007F112389F0002309F4BC
+:1025900090C180E28C0D883020F4802F0E94DB1ADD
+:1025A00003C0802F0E94EB1A0E94221B82C18C2D37
+:1025B0000E942812002309F495C180E28C0D883016
+:1025C00020F4802F0E94E11A03C0802F0E94F11A8C
+:1025D0000E94221B87C1972D907F872D8F7090328C
+:1025E00011F08295807FCC2021F0F1E0CF16B1F080
+:1025F0001EC0112349F0002309F414C1013009F071
+:1026000011C10E940B1B6EC1002319F0013009F4A7
+:1026100069C189830E940E1B89810AC1112321F09F
+:10262000023008F05FC1FEC001115CC101C111237D
+:1026300021F0002309F4F6C03CC1002309F4F8C0DE
+:102640003EC1872D86958695837090E0009719F09E
+:10265000019761F047C1112321F08C2D972D9370C4
+:1026600002C080E090E00E9466103CC1112321F07E
+:102670008C2D972D937002C080E090E00E947C101A
+:1026800031C18C2D112319F00E949D1E02C00E94A1
+:10269000051F0E948A1F26C1872D837009F052C032
+:1026A000111120C18C2D829586958770880F880F17
+:1026B0009C2D9F70892E912CA12CB12C082E04C02A
+:1026C000880C991CAA1CBB1C0A94D2F7C4FE14C027
+:1026D0000FE010E020E030E0B901A80104C0440F91
+:1026E000551F661F771F8A95D2F7CB01BA016095F7
+:1026F00070958095909503C060E070E0CB01272D28
+:1027000026952695237030E02230310569F023307C
+:10271000310589F0682979298A299B2921303105D9
+:1027200071F00E94C318DEC0682979298A299B2983
+:102730000E94DF18D7C00E94C318C501B4010E94CF
+:10274000A718D0C0112319F0872D817001C086957C
+:10275000882309F4C7C08C2D829586958770880FD1
+:10276000880F9C2D9F70892E912CA12CB12C082EA6
+:1027700004C0880C991CAA1CBB1C0A94D2F7C4FE86
+:1027800014C00FE010E020E030E0B901A80104C05F
+:10279000440F551F661F771F8A95D2F7CB01BA01E8
+:1027A000609570958095909503C060E070E0CB01D6
+:1027B000272D269526952370422F50E04230510553
+:1027C00069F04330510589F0682979298A299B29C4
+:1027D0004130510571F00E949D1984C06829792902
+:1027E0008A299B290E94B9197DC00E949D19C501A3
+:1027F000B4010E94811976C08C2D90E0FC01E05E4E
+:10280000F109E531F10508F050C0E059FF4F0C9493
+:102810000D240C2D0F70872D8F71112331F00E9424
+:102820001A19802F0E9477125DC00E943B19802FD9
+:102830000E947E1257C0112339F0011153C0872D19
+:102840008F710E9460194EC0023008F04BC0F7CF64
+:10285000112339F0872D8F710E941A1943C011235B
+:10286000C9F3872D8F710E943B193CC0112329F0B9
+:10287000872D8F710E94051935C00E94FB1832C048
+:10288000112351F0172D1F71812F0E941A1963E037
+:10289000812F0E942E1A26C081E00E94371A023032
+:1028A00008F182E00E94371A1DC0112331F0002385
+:1028B00089F28C2D0E94601115C0002391F28C2D9D
+:1028C0000E9428120FC0472D4F706C2DC7010E9427
+:1028D0006B050E941F1806C0472D4F706C2DC70155
+:1028E0000E944C06DD20F9F00E942A1A80FD1BC0D0
+:1028F000F70112820E94241A0E941A19C7010E942D
+:10290000A2140E94241A0F90DF91CF911F910F9172
+:10291000FF90EF90DF90CF90BF90AF909F908F90FF
+:102920007F900C943B190F90DF91CF911F910F91E5
+:10293000FF90EF90DF90CF90BF90AF909F908F90DF
+:102940007F9008950F931F93CF93DF93EC018881BD
+:1029500099812B813C81232BB9F09F3F11F48F3F4C
+:1029600099F0CE010E94A405882371F068817981D5
+:102970008A810E94201A8C010E94D5190E949C18FD
+:10298000B801CE010E948512DF91CF911F910F9166
+:1029900008950E94F81A0E94081B0E94CD1A0E94F6
+:1029A000221B0E943B200E948A1F80E090E00E9430
+:1029B000661080E090E00C947C100E94E81A0C9461
+:1029C000C9140E94151A292F22952F7030E02C303F
+:1029D00031054CF42A3031056CF422503109223093
+:1029E0003105A8F407C02C30310569F02F303105CE
+:1029F00051F00DC0803F69F018F4803E40F409C0EA
+:102A0000843F29F406C093FB882780F9089580E06D
+:102A1000089581E00895CF93DF9300D000D01F92F6
+:102A2000CDB7DEB70F900F900F900F900F90DF9102
+:102A3000CF910895CF93DF9300D000D000D0CDB7D1
+:102A4000DEB726960FB6F894DEBF0FBECDBFDF917E
+:102A5000CF9108951F93CF93DF93C091850116E026
+:102A600080918601C81799F0D0E01C9FF0011D9F4E
+:102A7000F00D1124E957FE4F40815181628173812D
+:102A8000848195810E941A152196C770E9CFDF9144
+:102A9000CF911F9108954091B7015091B801609175
+:102AA000B9017091BA018091BB019091BC010C9465
+:102AB0001A158091BC0182958F7009F054C08091E5
+:102AC000B901882309F44FC080918501A091860146
+:102AD0006091B7017091B8014091BA015091BB016A
+:102AE000B6E08A1709F43FC090E041155105C1F1E5
+:102AF0007F3F11F46F3FA1F1B89FF001B99FF00D36
+:102B00001124E957FE4F218172132AC020816213DC
+:102B100027C02281211124C0238134812417350745
+:102B200010F421503109241B350B283C3105C0F429
+:102B30002091BC012F7020612093BC0126E0289FCA
+:102B4000F001299FF00D1124E457FE4F80818F7012
+:102B50008061808387EB91E00E94A2140C942A1577
+:102B600001968770BECF0895CF92DF92EF92FF92C9
+:102B70000F931F93CF93DF93CDB7DEB762970FB656
+:102B8000F894DEBF0FBECDBF8C0185E0F801DE01F9
+:102B90001D9601900D928A95E1F7D8014C911196FE
+:102BA0005C91119712966C9112971396CD90DC90D0
+:102BB00014973091B7017091B8018091BA0190914A
+:102BC000BB01009709F46BC17F3F19F43F3F09F443
+:102BD00066C1E090B901EE2009F4C0C02091BC01AB
+:102BE000C816D90628F0F601E81BF90BCF0104C07E
+:102BF000809590958C0D9D1DFF24F394883C910544
+:102C000078F0F12C207F09F0C6C07C2DD98AC88AC3
+:102C100089890E940B1587EB91E00E94A214B1C034
+:102C2000822F807F09F046C0751314C0341312C080
+:102C3000611110C02F7020612093BC010E944B15C0
+:102C400087EB91E00E94A2148091BC01D8011596F7
+:102C50008C932EC0CD2819F15F3F11F44F3FF9F04E
+:102C6000F62E61111CC0809185012091860136E00D
+:102C7000821709F45AC090E0389FF001399FF00D97
+:102C80001124E957FE4F7181571306C07081471315
+:102C900003C07281711103C001968770E9CFF62ECF
+:102CA000662309F418C18091BC0181608093BC0146
+:102CB000F12C11C1751308C0341306C0611104C092
+:102CC0008091BC01D801C3C04D875E878D859E85EC
+:102CD0006A8B0E94E1146A898823E1F16623D1F1AD
+:102CE0002091BC01822F82958F7090E0029774F042
+:102CF0008091B7019091B80198878F831986DB8600
+:102D0000CA862C87CE0107960E94A21486E0F8019D
+:102D1000A7EBB1E001900D928A95E1F70E94591559
+:102D20000E944B15FF24F394D6C04D875E878D8596
+:102D30009E850E94151A292F22952F7030E022308F
+:102D400031050CF0BCC09F7009F0B6C0805E8830C1
+:102D500008F4C1C0C8010E94A214E4CFC816D90665
+:102D600008F453C0F601E81BF90BCF01883C91052C
+:102D700008F450C0F12C7C2DD98AC88A89890E9418
+:102D80000B15E7EBF1E086E0DF011D928A95E9F78C
+:102D90000E944B15A0C0751314C0341312C06111EA
+:102DA00010C08091BC01F8018583C8010E94A21463
+:102DB00086E0E7EBF1E0DF011D928A95E9F7FE2C52
+:102DC0008AC04D875E878D859E856A8B0E94E1143F
+:102DD0006A89882309F4BECF662309F4BBCF20910A
+:102DE000BC01822F82958F7090E002970CF48ECFF9
+:102DF0008091B7019091B8019A8389831B82DD820B
+:102E0000CC822E83CE0101967FCF809590958C0D3C
+:102E10009D1DACCFF62E662309F49CCF75132EC0F2
+:102E200034132CC02091BC0120FD1FC0822F82953D
+:102E30008F70D9F0D80115962C9315978F3049F0E3
+:102E40008F5F982F9295907F822F8F70892B159688
+:102E50008C93C8010E94A21486E0F801A7EBB1E0B0
+:102E600001900D928A95E1F793CF86E0F801A7EBE8
+:102E7000B1E001900D928A95E1F72DC04D875E87F4
+:102E80008D859E850E94E114811140CF8091BC0107
+:102E900081608093BC01C8010E94A2141CC06623FB
+:102EA00009F458CF4D875E878D859E850E94E11479
+:102EB000882309F44FCF2ACF811148CF0CC024308A
+:102EC00031050CF047CF9F7009F440CFF801958190
+:102ED000907F09F03BCF8F2D62960FB6F894DEBF3E
+:102EE0000FBECDBFDF91CF911F910F91FF90EF905B
+:102EF000DF90CF9008951F93CF93DF93CDB7DEB7C8
+:102F00002C970FB6F894DEBF0FBECDBF4F83588706
+:102F100069877A878B879C87CE0107960E94B415B4
+:102F2000882369F08F8198852A853B85232BF1F1D1
+:102F30009F3F09F063C08F3F09F060C037C086E053
+:102F4000FE013796DE01119601900D928A95E1F708
+:102F50006F817885EA85FB85309741F17F3F11F4D9
+:102F60006F3F21F12091860130E0C9010196877001
+:102F700099274091850150E08417950709F447C0CF
+:102F800069837A83FD83EC8396E0929FD001939FBF
+:102F9000B00D1124A957BE4FFE01319601900D923C
+:102FA0009A95E1F7809386010E942A1516E0809198
+:102FB0008501909186018917C1F1189FC0011124E4
+:102FC00089579E4F0E94B415882379F1E0918501BD
+:102FD0001E9FF0011124E957FE4F4081518162810B
+:102FE0007381848195810E941A158091850190E0FA
+:102FF00001968770992780938501D9CF4F81588595
+:1030000069857A858B859C850E941A15CFCF0E9491
+:10301000DD141092860110928501E7EBF1E086E065
+:10302000DF011D928A95E9F7C1CF2C960FB6F8946F
+:10303000DEBF0FBECDBFDF91CF911F910895EF92FC
+:10304000FF920F931F93CF93DF938C01009709F4A6
+:103050006CC0F12CEE24E394E8012196F8018491F0
+:10306000843740F4843008F051C0813081F08230E0
+:1030700019F15BC0853709F444C0A8F19CE7980FAB
+:10308000903708F052C08F770E94281241C00E5F1F
+:103090001F4FFE01C49180E28C0F883048F4C77046
+:1030A0008E2D01C0880FCA95EAF70E94FB1A14C042
+:1030B0008C2F0E9460112DC00E5F1F4FFE01C49126
+:1030C00080E28C0F883058F4C7708E2D01C0880FB5
+:1030D000CA95EAF70E94011B0E94221B1AC08C2F7E
+:1030E0000E94281216C00E5F1F4FFE01C491CC2310
+:1030F00081F08FE99FE00197F1F700C00000C15017
+:10310000F6CF0E5F1F4FFE01F49003C00E946011C6
+:103110008E018F2D882309F49FCFEFE9FFE03197CF
+:10312000F1F700C000008150F5CFDF91CF911F91E2
+:103130000F91FF90EF90089508956093C1017093EF
+:10314000C2018093C3019093C4010C94C9140F93DE
+:103150001F930091C1011091C2012091C3013091D0
+:10316000C401DC01CB01802B912BA22BB32B8093CC
+:10317000C1019093C201A093C301B093C4011F91F8
+:103180000F910C94C9140F931F930091C1011091DA
+:10319000C2012091C3013091C401DC01CB01802325
+:1031A0009123A223B3238093C1019093C201A093E2
+:1031B000C301B093C4011F910F910C94C9140F93D4
+:1031C0001F930091C1011091C2012091C301309160
+:1031D000C401DC01CB0180279127A227B32780936C
+:1031E000C1019093C201A093C301B093C4011F9188
+:1031F0000F910C94C9141092BD011092BE0110924F
+:10320000BF011092C0010C94C91441E050E060E08D
+:1032100070E004C0440F551F661F771F8A95D2F7D0
+:103220004093BD015093BE016093BF017093C001F4
+:103230000C94C91441E050E060E070E004C0440F19
+:10324000551F661F771F8A95D2F78091BD01909117
+:10325000BE01A091BF01B091C001482B592B6A2B30
+:103260007B2B4093BD015093BE016093BF017093CF
+:10327000C0010C94C91441E050E060E070E004C06B
+:10328000440F551F661F771F8A95D2F740955095BA
+:10329000609570958091BD019091BE01A091BF0194
+:1032A000B091C001482359236A237B234093BD0179
+:1032B0005093BE016093BF017093C0010C94C91478
+:1032C00041E050E060E070E004C0440F551F661F0D
+:1032D000771F8A95D2F78091BD019091BE01A09190
+:1032E000BF01B091C001482759276A277B27409327
+:1032F000BD015093BE016093BF017093C0010C9457
+:10330000C9140F931F930091BD011091BE0120912C
+:10331000BF013091C001DC01CB01802B912BA22B8E
+:10332000B32B8093BD019093BE01A093BF01B093D6
+:10333000C0011F910F910C94C9140F931F9300911A
+:10334000BD011091BE012091BF013091C001DC018F
+:10335000CB0180239123A223B3238093BD019093BB
+:10336000BE01A093BF01B093C0011F910F910C94B7
+:10337000C9140F931F930091BD011091BE012091BC
+:10338000BF013091C001DC01CB0180279127A2272A
+:10339000B3278093BD019093BE01A093BF01B0936A
+:1033A000C0011F910F910C94C9140895CF92DF9220
+:1033B000EF92FF920F931F93CF93DF938C01C090F6
+:1033C000C101D090C201E090C301F090C40180918E
+:1033D000BD019091BE01A091BF01B091C001C82A6A
+:1033E000D92AEA2AFB2ACFE1D0E0D701C6010C2E68
+:1033F00004C0B695A795979587950A94D2F780FF54
+:1034000006C0B8018C2F0E94A208019721F42197D1
+:1034100060F780E001C08C2FDF91CF911F910F9159
+:10342000FF90EF90DF90CF900895CF93DF93EC0162
+:103430000E94D619BE010E94A208DF91CF91089583
+:10344000CB010E94151A08958091C5018595859537
+:10345000859508958091C5018770089598E0899FAA
+:1034600090011124262B2093C5010C941A19209148
+:10347000C501809582238093C501982F977069F4C8
+:1034800030E0482F552747FD50952417350729F080
+:103490008595859585950C943B1908959091C50166
+:1034A000977081E009F480E0089590910C019923D0
+:1034B00021F090910D01911109C020910E013091E0
+:1034C0000F01F90132969FEF40E01FC0982F9695AB
+:1034D000969596959F3050F5E0910E01F0910F0171
+:1034E000E90FF11D877021E030E0A90102C0440F0F
+:1034F000551F8A95E2F7CA019181892B818308952E
+:103500009F3F39F04F5F4E3041F051915813F8CF43
+:103510000DC05111F7CF942FF5CF9F3F39F0F9012E
+:10352000E90FF11D97FDFA95828308950895909112
+:103530000C01992321F090910D01911109C0209166
+:103540000E0130910F01F9013296205F3F4F1FC0ED
+:10355000982F9695969596959F30F0F4E0910E01F0
+:10356000F0910F01E90FF11D877021E030E0A90112
+:1035700002C0440F551F8A95E2F7CA0180959181D8
+:103580008923818308953196E217F30729F090810A
+:103590009813F9CF1082F7CF089581E090E0E09181
+:1035A0000E01F0910F01E80FF91F10820196803192
+:1035B0009105A9F708959091D901892B8093D9019C
+:1035C000089580959091D90189238093D901089518
+:1035D0001092D90108959091D801892B8093D80138
+:1035E000089580959091D80189238093D8010895FA
+:1035F0001092D80108959091D701892B8093D7011B
+:10360000089580959091D70189238093D7010895DB
+:103610001092D70108958093C60108951092C601B3
+:10362000089580910E0190910F01FC0131969C014B
+:10363000205F3F4F80E0919191118F5FE217F30778
+:10364000D1F70895E0910E01F0910F018091D90119
+:103650008083E0910E01F0910F0190818091D8015B
+:10366000892B8083E0910E01F0910F019081809170
+:10367000D701892B80838091C601882361F0E09176
+:103680000E01F0910F019081892B80830E94111B04
+:1036900081111092C60180910E0190910F010C943E
+:1036A000501020E0009739F0AC01415051098423BB
+:1036B00095232F5FF7CF822F0895CF92DF92EF925D
+:1036C000FF926C01EE24FF24C114D104E104F10443
+:1036D00021F0C701B60120E101C020E0C72ED82E9D
+:1036E000E92EFF24C114D104E104F10419F0285F8C
+:1036F000C701B6016B017C0154E0F694E794D794BE
+:10370000C7945A95D1F7C114D104E104F10419F01A
+:103710002C5FC701B6016B017C0142E0F694E7948F
+:10372000D794C7944A95D1F7C114D104E104F104A8
+:1037300019F02E5FC701B601DC01CB01B695A79544
+:1037400097958795892B8A2B8B2B09F02F5F822FDA
+:10375000FF90EF90DF90CF9008958091F101843039
+:1037600021F11092DB0120E488E190E00FB6F8949B
+:10377000A895809360000FBE2093600080E00E94B7
+:103780003D0983B7817F846083BF83B7816083BF36
+:103790007894889583B78E7F83BF88E10FB6F894BD
+:1037A00080936000109260000FBE08950895089500
+:1037B0000E94D61B0E94A1030E94D71B0E94960460
+:1037C00091E0811101C090E0892F08950E94DD14DD
+:1037D0000E9444100C943D0982E084BD93E095BDA5
+:1037E0009AEF97BD80936E0008952FB7F89480915B
+:1037F000DC019091DD01A091DE01B091DF012FBFCE
+:103800000895CF92DF92EF92FF920F931F932FB7FD
+:10381000F8944091DC015091DD016091DE017091DE
+:10382000DF012FBF6A017B01EE24FF248C0120E021
+:1038300030E0C016D106E206F30610F441505109FB
+:103840009A01281B390BC9011F910F91FF90EF902E
+:10385000DF90CF9008951F920F920FB60F92112410
+:103860008F939F93AF93BF938091DC019091DD0183
+:10387000A091DE01B091DF010196A11DB11D8093E1
+:10388000DC019093DD01A093DE01B093DF01BF91D5
+:10389000AF919F918F910F900FBE0F901F90189531
+:1038A0000E94410DF8942FEF87EA91E62150804065
+:1038B0009040E1F700C0000087E090EBDC018093CE
+:1038C000FB019093FC01A093FD01B093FE019CE0ED
+:1038D00088E10FB6F894A895809360000FBE90938E
+:1038E0006000FFCFEF92FF920F931F93CF93DF9370
+:1038F000D82FCDE08C2F0E948F0405E010E0E82E39
+:10390000F12CC701002E02C0959587950A94E2F725
+:1039100080FF09C0602F7C2F80E00E944D06D813E5
+:1039200002C081E006C00150110958F7C15010F7DC
+:1039300080E0DF91CF911F910F91FF90EF9008955C
+:10394000CF93C82F8CE20E94721C882321F08C2F09
+:10395000CF910C94721C80E0CF910895CF930E9478
+:10396000F51D811102C00E94DB1DC5E6C15049F062
+:103970000E94A1038FE39CE90197F1F700C00000CA
+:10398000F5CF89E20E94A01C811113C18AE20E9436
+:10399000A01C81110E94DB1D85E00E94A01C8111EA
+:1039A0000E94501C0E94001E8093DA0187E00E9452
+:1039B000A01C8823A9F18BE10E94A01C882351F050
+:1039C0008091DA0181FB222720F991E0922790FB78
+:1039D00081F90EC08EE00E94A01C882361F08091C6
+:1039E000DA0182FB222720F991E0922790FB82F9ED
+:1039F0008093DA0115C080E10E94A01C9091DA0149
+:103A0000882341F093FB222720F981E0822780FB65
+:103A100093F904C0892F809580FB90F99093DA0187
+:103A20008091DA010E94041E0E94121E8093FA0106
+:103A300080EE0E94A01C882341F08091FA01982F0B
+:103A4000909590FB80F98093FA0189E30E94A01C75
+:103A5000882359F08091FA0181FB222720F991E017
+:103A6000922790FB81F98093FA0182EE0E94A01CBC
+:103A7000882359F08091FA0182FB222720F991E0F6
+:103A8000922790FB82F98093FA0186EE0E94A01C97
+:103A9000882359F08091FA0183FB222720F991E0D5
+:103AA000922790FB83F98093FA0183EE0E94A01C79
+:103AB000882359F08091FA0184FB222720F991E0B4
+:103AC000922790FB84F98093FA0185E30E94A01C61
+:103AD000882359F08091FA0185FB222720F991E093
+:103AE000922790FB85F98093FA0181E30E94A01C44
+:103AF000882359F08091FA0186FB222720F991E072
+:103B0000922790FB86F98093FA0181E10E94A01C24
+:103B1000882359F08091FA0187FB222720F991E050
+:103B2000922790FB87F98093FA018091FA010E9415
+:103B3000161E8091FA0187FB882780F980930D017A
+:103B400087E20E94A01CC82F8EE10E94A01C811158
+:103B5000C2608FE10E94A01C8111C46080E20E94BB
+:103B6000A01C8111C86081E20E94A01C8111C0616B
+:103B700082E20E94A01C8111C06283E20E94A01C0C
+:103B80008111C06484E20E94A01C882311F0C068E7
+:103B900002C0CC2329F08C2F0E940D1E6C2F03C075
+:103BA0000E94091E682F70E080E090E0CF910C9495
+:103BB0009D18CF9108956DEE7EEF80E090E00E9419
+:103BC000472460E082E090E00E94352460E083E0DA
+:103BD00090E00E94352460E084E090E00E9435246B
+:103BE00060E085E090E00C94352480E090E00E9455
+:103BF0002F2421E08D3E9E4F09F020E0822F089572
+:103C000082E090E00C942724682F82E090E00C94EE
+:103C1000352483E090E00C942724682F83E090E023
+:103C20000C94352484E090E00C942724682F84E0E1
+:103C300090E00C9435248091E20180FF0BC06091EC
+:103C4000130185E0689FB0011124759567957595FE
+:103C500067952BC081FF09C06091130185E0689FC3
+:103C6000B00111247595679520C082FF07C060914F
+:103C7000130185E0689FB001112417C09091E30102
+:103C80009923D1F060911201961788F720911301C2
+:103C900085E0289F90011124929FA001939F500DD1
+:103CA000112470E0CA010E94F9236038710540F4C4
+:103CB0006115710539F002C065E070E0862F089546
+:103CC0008FE7089581E008958091E20180FF08C0A8
+:103CD0006091110170E0759567957595679521C0A4
+:103CE00081FF06C06091110170E07595679519C05C
+:103CF00082FF04C06091110170E010C09091E30157
+:103D00009923C1F0609110019617A0F780911101DD
+:103D1000899FC001112470E00E94F9236038710569
+:103D200028F46115710521F0862F08958FE7089515
+:103D300081E0089561E070E0F4CF803F21F40E94BB
+:103D40001B1E819504C0813F29F40E941B1E809395
+:103D5000E6010895823F21F40E941B1E819504C054
+:103D6000833F29F40E941B1E8093E5010895893F3B
+:103D700019F40E94641E05C08A3F31F40E94641E3B
+:103D800081958093E70108958B3F21F40E94641E82
+:103D9000819504C08C3F29F40E94641E8093E80141
+:103DA0000895843F21F48091E401816017C0853F2C
+:103DB00021F48091E401826011C0863F21F480915A
+:103DC000E40184600BC0873F21F48091E4018860A6
+:103DD00005C0883F31F48091E40180618093E40163
+:103DE00008958D3F21F48091E20181600BC08E3FE8
+:103DF00021F48091E201826005C08F3F29F4809117
+:103E0000E20184608093E2010895803F39F480915B
+:103E1000E60187FF6CC01092E60169C0813F29F47A
+:103E20008091E6011816BCF362C09091E501823FD3
+:103E300029F497FF5CC01092E50159C0833F19F443
+:103E40001916CCF354C0893F41F48091E70118164C
+:103E50000CF04DC01092E7014AC08A3F29F48091CE
+:103E6000E70187FF44C0F6CF8B3F39F48091E8012A
+:103E700087FF3DC01092E8013AC08C3F29F4809141
+:103E8000E8011816BCF333C0843F21F48091E401AB
+:103E90008E7F17C0853F21F48091E4018D7F11C092
+:103EA000863F21F48091E4018B7F0BC0873F21F492
+:103EB0008091E401877F05C0883F31F48091E4015F
+:103EC0008F7E8093E40113C08D3F21F48091E20145
+:103ED0008E7F0BC08E3F21F48091E2018D7F05C063
+:103EE0008F3F29F48091E2018B7F8093E2018091E2
+:103EF000E50181110EC08091E60181110AC0809117
+:103F0000E701811106C08091E801811102C0109281
+:103F1000E301089584EE91E00E945B100E94F51B7E
+:103F20009093E1018093E00108951F93CF93DF9375
+:103F30008091E0019091E1010E94011CAC019091FF
+:103F4000E301992321F02091140130E006C0209173
+:103F500015018AE0289F900111244217530708F4A5
+:103F600086C08091E501C091E601D091E7011091F2
+:103F7000E801811107C0C11176C0D11174C01111BF
+:103F800072C075C09F3F19F09F5F9093E3011816B0
+:103F900024F40E941B1E8093E5018091E50187FFB8
+:103FA00005C00E941B1E81958093E5011C1624F418
+:103FB0000E941B1E8093E6018091E60187FF05C0E9
+:103FC0000E941B1E81958093E6016091E5016623A6
+:103FD00039F1C091E601CC2319F1772767FD70957F
+:103FE000872F972F0E940A2323E333E343E35FE302
+:103FF0000E946E230E94D7226093E5016C2F7727E1
+:1040000067FD7095872F972F0E940A2323E333E3E0
+:1040100043E35FE30E946E230E94D7226093E60190
+:104020001D1624F40E94641E8093E7018091E7012D
+:1040300087FF05C00E94641E81958093E7011116D9
+:1040400024F40E94641E8093E8018091E80187FFB8
+:1040500005C00E94641E81958093E801DF91CF9195
+:104060001F910C948A1F9F3F09F08ECF96CFDF914E
+:10407000CF911F910895E4EEF1E085E0DF011D92FC
+:104080008A95E9F71092E3011092E20108958330D6
+:1040900081F128F4813059F08230D1F008958530D3
+:1040A00009F449C0B8F1863009F456C008958091EA
+:1040B0001501262F30E0280F311D2F3F310524F444
+:1040C000680F6093150108958FEF8093150108958F
+:1040D00080911401262F30E0280F311D2F3F31052C
+:1040E00024F4680F6093140108958FEF80931401F6
+:1040F000089580911301262F30E0280F311D2F3FA6
+:10410000310524F4680F6093130108958FEF8093B5
+:104110001301089580911201262F30E0280F311DE0
+:104120002F3F310524F4680F6093120108958FEF3B
+:1041300080931201089580911101262F30E0280FFD
+:10414000311D2F3F310524F4680F6093110108954C
+:104150008FEF80931101089580911001262F30E098
+:10416000280F311D2F3F310524F4680F6093100193
+:1041700008958FEF809310010895833011F128F492
+:10418000813049F0823091F00895853081F120F13D
+:104190008630C1F1089580911501681720F4861BBF
+:1041A00080931501089510921501089580911401CE
+:1041B000681720F4861B809314010895109214014F
+:1041C000089580911301681720F4861B80931301D2
+:1041D000089510921301089580911201681720F438
+:1041E000861B809312010895109212010895809108
+:1041F0001101681720F4861B809311010895109215
+:104200001101089580911001681720F4861B809396
+:10421000100108951092100108950F931F938D318E
+:1042200009F46BC008F03FC08E3009F47FC0C0F4C1
+:10423000873009F469C068F4863009F0B1C0809114
+:10424000DA01817F8E7F8093DA0181E08093EA0139
+:10425000A8C0883009F4A2C08B3009F49FC0A0C068
+:10426000863109F49BC078F4803109F472C0813141
+:1042700009F096C00E94DD1490910D0181E089271C
+:1042800080930D018BC0893109F488C08B3109F00E
+:1042900087C08091DA0181FB222720F991E09227E3
+:1042A00090FB81F94CC0853309F470C048F4873223
+:1042B00009F46CC008F459C0893209F467C070C0B1
+:1042C000833438F48A3308F04EC0883309F466C06A
+:1042D00067C0833409F45AC0883409F061C00E9471
+:1042E000DD140FEF13ED20E3015010402040E1F703
+:1042F00000C000000E94501C51C00E9491220E94E8
+:1043000044100E943D094AC09091DA01892F80959E
+:10431000817080FB90F929F0966098609093DA01A3
+:1043200040C0997F977F9093DA0138C08091DA017D
+:1043300082FB222720F991E0922790FB82F980935B
+:10434000DA01992359F18091DA0181608093DA01D1
+:1043500025C08091DA0183FB222720F991E0922782
+:1043600090FB83F9ECCF895301C08D5141E050E0BF
+:1043700060E070E08A019B0104C0000F111F221F42
+:10438000331F8A95D2F7C901B80104C061E070E01B
+:1043900080E090E00E949D180E94DD1481E001C041
+:1043A00080E01F910F91089580E0089580E00895C6
+:1043B000CF93C82F8091EA01813079F018F08230D4
+:1043C000E9F187C0E0910E01F0910F018081813108
+:1043D00069F0823209F07FC009C0E0910E01F091CE
+:1043E0000F018081813111F0823261F48C2F0E94A3
+:1043F000D421811104C08C2F0E940D211DC081E0A9
+:1044000090E01AC08C2F0E94D621811114C0C431B3
+:1044100079F048F4CB3079F0C03109F060C082E027
+:104420008093EA0108C0C93219F0C83321F057C09F
+:104430001092EA0154C081E0817053C0C93289F101
+:1044400018F5C43171F1A8F4C73009F046C08AE00C
+:104450008093150194E19093140193E090931301DC
+:104460008093120188E08093110188E2809310010B
+:1044700034C0CE51C63088F5EC2FF0E0E65DFE4F3B
+:1044800080818093E90129C0CE34E9F020F4CB3457
+:1044900021F56AE013C0C13579F0C235F1F461E06D
+:1044A0000DC08091E901882319F01092E90115C02F
+:1044B00081E08093EA0115C061E006C08091E901C6
+:1044C0000E9447200AC06AE08091E9010E94BD2055
+:1044D00004C01092EA0180E004C081E002C080E0E4
+:1044E000ABCFCF910895E1E8F0E0808188608083D0
+:1044F0008081816080838FB7F89493E090938900E6
+:1045000090ED909388008FBF0895EFE6F0E08081F2
+:10451000826080830895EFE6F0E080818D7F808364
+:104520000895EFE6F0E0908182E089278083089586
+:104530001F920F920FB60F9211242F933F934F9318
+:104540005F936F937F938F939F93AF93BF93EF93FB
+:10455000FF938091EB019091EC0101969093EC0117
+:104560008093EB01811103C082E00E943D09E0913C
+:10457000EC01E695E695F0E0E05AFA4FE49180917F
+:10458000EB018E1303C080E00E943D09FF91EF9183
+:10459000BF91AF919F918F917F916F915F914F915B
+:1045A0003F912F910F900FBE0F901F90189504D040
+:1045B0006894B1118DC0089570D088F09F5790F025
+:1045C000B92F9927B751A0F0D1F0660F771F881F38
+:1045D000991F1AF0BA95C9F712C0B13081F077D09F
+:1045E000B1E0089574C0672F782F8827B85F39F03D
+:1045F000B93FCCF3869577956795B395D9F73EF497
+:1046000090958095709561957F4F8F4F9F4F08953E
+:10461000E89409C097FB3EF490958095709561955C
+:104620007F4F8F4F9F4F9923A9F0F92F96E9BB2712
+:104630009395F695879577956795B795F111F8CF8E
+:10464000FAF4BB0F11F460FF1BC06F5F7F4F8F4FF9
+:104650009F4F16C0882311F096E911C0772321F0EF
+:104660009EE8872F762F05C0662371F096E8862F87
+:1046700070E060E02AF09A95660F771F881FDAF7DE
+:10468000880F9695879597F9089557FD9058440F90
+:10469000551F59F05F3F71F04795880F97FB991FA1
+:1046A00061F09F3F79F0879508951216130614065E
+:1046B000551FF2CF4695F1DF08C0161617061806EB
+:1046C000991FF1CF86957105610508940895E894C6
+:1046D000BB2766277727CB0197F908950BD078C0C1
+:1046E00069D028F06ED018F0952309F05AC05FC049
+:1046F0001124EECFCADFA0F3959FD1F3950F50E0C0
+:10470000551F629FF001729FBB27F00DB11D639F83
+:10471000AA27F00DB11DAA1F649F6627B00DA11D29
+:10472000661F829F2227B00DA11D621F739FB00DCF
+:10473000A11D621F839FA00D611D221F749F33273F
+:10474000A00D611D231F849F600D211D822F762FD8
+:104750006A2F11249F5750408AF0E1F088234AF0D5
+:10476000EE0FFF1FBB1F661F771F881F9150504021
+:10477000A9F79E3F510570F014C0AACF5F3FECF33C
+:10478000983EDCF3869577956795B795F795E7950D
+:104790009F5FC1F7FE2B880F911D9695879597F91E
+:1047A000089597F99F6780E870E060E008959FEFB3
+:1047B00080EC089500240A941616170618060906B8
+:1047C000089500240A941216130614060506089587
+:1047D000092E0394000C11F4882352F0BB0F40F40F
+:1047E000BF2B11F460FF04C06F5F7F4F8F4F9F4F4F
+:1047F000089597FB072E16F4009407D077FD09D093
+:104800000E94132407FC05D03EF4909581959F4F9C
+:104810000895709561957F4F0895EE0FFF1F0590E5
+:10482000F491E02D0994AA1BBB1B51E107C0AA1FFC
+:10483000BB1FA617B70710F0A61BB70B881F991F41
+:104840005A95A9F780959095BC01CD010895F999E5
+:10485000FECF92BD81BDF89A992780B50895A8E151
+:10486000B0E042E050E00C944F24262FF999FECF9F
+:1048700092BD81BDF89A019700B4021639F01FBAB3
+:1048800020BD0FB6F894FA9AF99A0FBE08950196D2
+:10489000272F0E9436240C943524DC01CB01FC0127
+:1048A000F999FECF06C0F2BDE1BDF89A319600B489
+:0E48B0000D9241505040B8F70895F894FFCF94
+:1048BE0002203F09CD09AA09760942090101C70163
+:1048CE0028080A03140A3F4D36392105D4049E04E4
+:1048DE006504F80311042A044304010203040506C7
+:0448EE0007080900AE
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/keymap.c b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/keymap.c new file mode 100644 index 000000000..9971b834c --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/keymap.c @@ -0,0 +1,134 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 +#define SYMB 1 +#define PLVR 2 +#define ARRW 3 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [BASE] = KEYMAP( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F14, + KC_TAB, KC_Q, KC_W, KC_D, KC_F, KC_K, TG(PLVR), + 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_LALT, KC_LGUI, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLD, KC_MUTE, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_VOLU, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_BSPC, CTL_T(KC_ESC), KC_FN1, + // + /*-*/ KC_F15, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + /*-*/ KC_BSLS, 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_RALT, KC_F4, KC_F5, KC_F6, + KC_MPLY, KC_MNXT, + KC_MPRV, + KC_FN3, KC_QUOT, KC_SPC + ), + [SYMB] = KEYMAP( + 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_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, 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, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_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_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TRNS, + /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ), + [PLVR] = KEYMAP( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + 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_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ KC_C, KC_V, KC_NO, + // + /*-*/ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + /*-*/ KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO, + /*-*/ /*-*/ 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_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_NO, KC_N, KC_M + ), + [ARRW] = KEYMAP( + KC_TRNS, KC_TRNS, 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_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_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_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 + ), +}; + +const uint16_t PROGMEM fn_actions[] = { + [SYMB] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Symbols Layer + [PLVR] = ACTION_LAYER_TAP_TOGGLE(PLVR), // FN2 - Momentary Plover Layer + [ARRW] = ACTION_LAYER_TAP_TOGGLE(ARRW), // FN3 - Momentary Arrows Layer +}; + +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 SYMB: + ergodox_right_led_1_on(); + break; + case PLVR: + ergodox_right_led_2_on(); + break; + case ARRW: + ergodox_right_led_3_on(); + break; + default: + break; + } +}; diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/readme.md b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/readme.md new file mode 100644 index 000000000..804c52a76 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/readme.md @@ -0,0 +1,50 @@ +# Roman's Layout + +There are four layers: + +- **BASE** is [Norman layout](https://normanlayout.info/). +- **SYMB** for numbers and symbols. +- **PLVR** is optimized for [Plover](http://www.openstenoproject.org). +- **ARRW** for navigation (same fingers for arrows as IJKL on QWERTY). + +Looking for HJKL arrows? [Here we +go](../romanzolotarev-norman-plover-osx-hjkl/). + +[![keyboard-layout](romanzolotarev-norman-plover-osx.png)](http://www.keyboard-layout-editor.com/#/gists/8ebcb701ecb763944417) + +## Switching + +- Tap `SYMB` to toggle **SYMB**. +- Tap `ARRW` to toggle **ARRW**. +- Hold `SYMB` (or `ARRW`) to activate **SYMB** (or **ARRW**) while holding. +- Tap `PLVR` to toggle **PLVR**. + +## LEDs + +- Red: SYMB is on. +- Green: PLVR is on. +- Blue: ARRW is on. + +## 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/). +- Tap `F14`, `F15` to adjust display brightness. + +**IMPORTANT**: If you have another keyboard connected via Bluetooth, then +`F14` and `F15` will not work. Turn off that Bluetooth keyboard. Re-plug +you ErgoDox. Enjoy! + +## CTRL/ESC + +Both of those keys are frequently used in Vim. + +- Tap `CTRL/ESC` to send `ESC`. +- Hold `CTRL/ESC` to use as `CTRL`. + +## Activate N-rollover + +- While in **BASE** hold left `SHIFT` and right `SHIRT` and then tap `N`. +- Then you can activate **PLVR** and use ErgoDox EZ for steno. diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/romanzolotarev-norman-plover-osx.png b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/romanzolotarev-norman-plover-osx.png Binary files differnew file mode 100644 index 000000000..10b0752be --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-plover-osx/romanzolotarev-norman-plover-osx.png diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/compiled.hex b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/compiled.hex new file mode 100644 index 000000000..1debb026a --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/compiled.hex @@ -0,0 +1,1120 @@ +:100000000C9425020C9469020C9469020C94690208
+:100010000C9469020C9469020C9469020C946902B4
+:100020000C9469020C9469020C94800D0C94520E8D
+:100030000C9469020C9469020C9469020C94690294
+:100040000C9469020C940C210C9469020C946902C2
+:100050000C9469020C94EE1B0C9469020C946902D6
+:100060000C9469020C9469020C9469020C94690264
+:100070000C9469020C9469020C9469020C94690254
+:100080000C9469020C9469020C9469020C94690244
+:100090000C9469020C9469020C9469020C94690234
+:1000A0000C9469020C9469020C946902BF0EE10E73
+:1000B000CF0FE10ECF0F260F490FCF0F9E0FB10FBD
+:1000C00080128012AF12AF12E512051336143614E7
+:1000D00010133614C013C0132714361436143014FA
+:1000E000CD13CD13CD13CD13CD13CD13CD13CD1310
+:1000F000CD13CD13CD13CD13CD13CD13CD13CD1300
+:10010000DF13EC13F313FA13041435002B00E00093
+:10011000E1003A0000001E00140004001D003B0036
+:10012000E2001F001A0016001B003C00296120009D
+:100130000700080006003D002A0021000900170002
+:100140001900E300A90022000E000A0005000000CB
+:10015000AA003E00310000002F000000A8003F0070
+:100160000153000030000000AE0023000D001C0011
+:1001700013000000AB002400180011001000E7007D
+:10018000AC00250015000C00360050002C002600A5
+:100190000F001200370051003400270033000B001D
+:1001A00038005200E6002E002D002800E5004F0028
+:1001B0000000010001000100010001000000010039
+:1001C0000100010001000100010001000100010027
+:1001D000010001000100010008000700010001000A
+:1001E00001000100150009000100010001000100EB
+:1001F00017000100010000000100010001000000E3
+:1002000001000000010001000100000001000000E9
+:10021000010001001C000B001100000001000100A2
+:1002200018000D0001000100010001000C000E008B
+:10023000010001000100010012000F000100010097
+:100240000100010013003300010001000100010062
+:1002500001000100010001000000160345007200CA
+:1002600067006F0044006F007800200045005A00CE
+:10027000000016034500720067006F0044006F0025
+:100280007800200045005A00000004030904090218
+:100290006D00040100A0FA0904000001030101003F
+:1002A0000921110100012240000705810308000A0D
+:1002B00009040100010301020009211101000122CA
+:1002C0004D000705820308000A090402000103002B
+:1002D00000000921110100012236000705830308EF
+:1002E000000A0904030001030000000921110100B4
+:1002F00001223900070584031000011201100100DA
+:10030000000008EDFE0713010001020001050109CC
+:1003100006A101050719E029E715002501950875D3
+:1003200001810205081901290595057501910295BC
+:10033000017503910105071900297715002501951D
+:100340007875018102C005010980A10185021601AD
+:100350000026B7001A01002AB70075109501810028
+:10036000C0050C0901A1018503160100269C021A93
+:1003700001002A9C02751095018100C00501090247
+:10038000A1010901A100050919012905150025018F
+:1003900095057501810295017503810105010930FB
+:1003A00009311581257F9502750881060938158167
+:1003B000257F950175088106050C0A3802158125EF
+:1003C0007F950175088106C0C005010906A10105D8
+:1003D0000719E029E71500250195087501810295A7
+:1003E0000175088101050819012905950575019117
+:1003F000029501750391010507190029FF150026D3
+:10040000FF00950675088100C00000000000000094
+:1004100000000000010204060A0F17202C3A4A5D72
+:1004200071879DB3C7DAE9F5FCFFFCF5E9DAC7B3DC
+:100430009D87715D4A3A2C20170F0A0604020100BD
+:100440000000000000000000000011241FBECFEFDC
+:10045000DAE0DEBFCDBF04B603FE24C08091FD010B
+:100460009091FE01A091FF01B09100028730904B66
+:10047000A740B04BB9F41092FD011092FE0110920A
+:10048000FF011092000214BE84B7877F84BF88E109
+:100490000FB6F89480936000109260000FBEE0E009
+:1004A000FFE3099511E0A0E0B1E0E6EAF5E402C05F
+:1004B00005900D92A433B107D9F711E0A4E3B1E0A0
+:1004C00001C01D92AD3FB107E1F70E94C80A0C942C
+:1004D000D1220C9400001092B9008AE08093B800F9
+:1004E000089594EA9093BC009091BC0097FFFCCFD4
+:1004F0009091B900987F983021F0903111F081E00F
+:1005000008958093BB0084E88093BC008091BC0078
+:1005100087FFFCCF8091B900887F883111F080344B
+:1005200071F780E0089584E98093BC008091BC005D
+:1005300084FDFCCF08958093BB0084E88093BC00C9
+:100540008091BC0087FFFCCF9091B900987F81E03B
+:10055000983209F480E0089584E88093BC0080918B
+:10056000BC0087FFFCCF8091BB00089580B38C70E6
+:1005700080BB81B3836F81BB08958091010181119C
+:1005800015C080E40E9471028093010181110CC0AA
+:1005900082E10E949B0280930101811105C08FEFCF
+:1005A0000E949B02809301010E94930284B1807F8C
+:1005B00084B985B1807F85B98AB1837F8AB98BB1CF
+:1005C000837F8BB93E98469808950E948704809354
+:1005D00001010E94BD020E94B602A5E3B1E0E3E47E
+:1005E000F1E08EE08E0F11921D928E13FCCF0C94D1
+:1005F00071040E948704809301010E94BD020E9441
+:10060000B602A5E3B1E0E3E4F1E08EE08E0F1192D3
+:100610001D928E13FCCF0895BF92CF92DF92EF927E
+:10062000FF920F931F93CF93DF9380910101882353
+:1006300079F0809134018F5F80933401811108C07B
+:100640000E94870480930101811102C00E94190455
+:1006500005E311E0C0E0D0E0DD24D39482E0C82EB1
+:10066000EE24E394F12CC730D10500F5809101010F
+:10067000811164C080E40E947102809301018111A4
+:1006800012C082E10E949B028093010181110BC084
+:10069000C7010C2E01C0880F0A94EAF780950E94CA
+:1006A0009B02809301010E94930248C0CA30A1F0CE
+:1006B00028F4C83059F0C93061F005C0CC3089F059
+:1006C00070F0CD3089F0209A289810C0219A29988E
+:1006D0000DC0229A2A980AC0239A2B9807C0529AD2
+:1006E00001C0539A5B9802C03E9A469890EA9A9548
+:1006F000F1F79FB1799902C082E001C080E091706A
+:100700009D25982B7C9902C084E001C080E0892B54
+:100710007D9902C038E001C030E0832B7E9902C091
+:1007200020E101C020E0822B9FB19095991F99276D
+:10073000991F9295990F907E892B0FC0809101018E
+:10074000811149C080E40E947102809301018823D5
+:1007500079F1B12C0E9493028B2DF80190819817AA
+:1007600019F08083C09200010E94BD0221960F5FA4
+:100770001F4FCE30D10509F076CF8091000188233C
+:1007800061F1815080930001882339F08FE99FE067
+:100790000197F1F700C0000020C0A3E4B1E0E5E359
+:1007A000F1E0CF01825F91919D938E13FCCF15C034
+:1007B00083E10E949B02809301018111CACF81E4F1
+:1007C0000E947102809301018111C3CF0E94AC028B
+:1007D000B82EB094BFCF80E0C0CF0E94170481E054
+:1007E000DF91CF911F910F91FF90EF90DF90CF900D
+:1007F000BF900895E82FF0E0ED5BFE4F80810895F3
+:1008000008950F931F93CF93DF93C3E4D1E010E0DB
+:100810000C2F025F899190E00E94151B180F0C139A
+:10082000F9CF812FDF91CF911F910F9108950C94F3
+:10083000DA0456985E9825982D9826982E98279831
+:100840002F988FEF90E09093890080938800909389
+:100850008B0080938A0090938D0080938C00259A62
+:100860002D9A2FEF80E792E0215080409040E1F7F1
+:1008700000C00000269A2E9A2FEF80E792E02150C8
+:1008800080409040E1F700C00000279A2F9A2FEF98
+:1008900080E792E0215080409040E1F700C00000E6
+:1008A00025982D982FEF80E792E0215080409040CE
+:1008B000E1F700C0000026982E982FEF80E792E025
+:1008C000215080409040E1F700C0000027982F9809
+:1008D00056985E9825982D9826982E9827982F98A8
+:1008E000089589EA8093800089E0809381002498AC
+:1008F0002C983F988AB18F748AB96E98479A8BB1B9
+:10090000806B8BB9769A0E9419040C94D90480E20A
+:10091000809301018091510181110EC00E946B02F0
+:1009200081E0809351012FEF83ED90E321508040CF
+:100930009040E1F700C0000080E40E9471028093C3
+:10094000010181112EC00E949B028093010181113F
+:1009500028C00E949B0280930101811122C08FE375
+:100960000E949B028093010181111BC00E9493028F
+:1009700080E40E94710280930101811112C08CE019
+:100980000E949B028093010181110BC00E949B0277
+:1009900080930101811105C08FE30E949B02809327
+:1009A00001010E94930280910101089580E090E08E
+:1009B000089508956091BE017091BF018091C001BA
+:1009C0009091C1010E94211B56985E9825982D9800
+:1009D00026982E9827982F98813011F4259A2D9AD1
+:1009E000089581E0089581E008950C94F30408953A
+:1009F000282F882339F090E02A3010F44D9608957E
+:100A00000697089587E290E00895AF92BF92DF9233
+:100A1000EF92FF920F931F93CF93DF938C01FC0112
+:100A2000C081D181CE010E949A19BE010E94750831
+:100A3000EC01B8010E94F504882309F4C9C1F8014A
+:100A40008281882309F4BEC080915E0181111FC09C
+:100A5000C431F0E7DF0709F0B5C10E94F70481E077
+:100A600080935E010E94B81B90935D0180935C01AE
+:100A7000109255011092570110925601109259018F
+:100A80001092580110925B0110925A01A1C18091FD
+:100A90005C0190915D010E94C41B883C910570F43B
+:100AA00080915501E82FF0E0EE0FFF1FEA5AFE4F4C
+:100AB000D183C0838F5F809355018AC1C13020E804
+:100AC000D20708F451C0F8018281882309F47EC05E
+:100AD0005E01E894B7F880915401813079F050F0CC
+:100AE0008230C1F482EE0E94241187E50E94241115
+:100AF00087E50EC082EE0E9424110CC080EE0E9499
+:100B0000241181EE0E94241188E10E94241188E1C1
+:100B10000E94EC118CE0E82EF12CC5010E2C02C0D5
+:100B2000969587950A94E2F78F700E94F804D82E64
+:100B30000E9424118D2D0E94EC11F4E0EF1AF108AF
+:100B40002CEFE2162FEFF20641F78091540181302D
+:100B500029F010F0823041F482EE04C080EE0E9451
+:100B6000EC1181EE0E94EC11C43180E7D80768F4E3
+:100B7000C23090E7D90708F046C0C115E0E7DE07AC
+:100B800071F0C130D047A1F10CC1C33320E7D207C7
+:100B900009F4D8C0C433D04709F4EBC002C1F8014E
+:100BA0008281882309F402C10E94A114FFEF24E38B
+:100BB0008CE0F15020408040E1F700C000000E942E
+:100BC000131C06C1C13080E8D80770F2C43120E799
+:100BD000D20708F0B3C0C23080E7D807A0F4C1152F
+:100BE00090E7D90709F4E2C0C130D04709F0D9C075
+:100BF000F8018281882309F4D9C08091DB018160EA
+:100C00008093DB01E5C0F8018281882309F4CEC01E
+:100C10000E946D1C811102C00E94531C0E94801C06
+:100C200090E09093EF018093EE01C230F0E7DF0790
+:100C300021F48091EE0181607AC0C33020E7D207B1
+:100C400021F48091EE01826072C0C43080E7D80741
+:100C500021F48091EE0184606AC0C53090E7D90725
+:100C600019F48091EE0127C0C630E0E7DE0721F4D9
+:100C70008091EE0180615BC0C730F0E7DF0721F4AF
+:100C80008091EE01806253C0C83020E7D20721F482
+:100C90008091EE0180644BC0C93080E7D80721F411
+:100CA0008091EE01806843C0CA3090E7D90729F4EB
+:100CB0008091EE01846088603AC0CB30E0E7DE07C7
+:100CC00021F48091EE018E7F32C0CC30F0E7DF0757
+:100CD00021F48091EE018D7F2AC0CD3020E7D2072C
+:100CE00021F48091EE018B7F22C0CE3080E7D807BF
+:100CF00019F48091EE011AC08091EE01CF3090E797
+:100D0000D90711F48F7E13C0C031E0E7DE0711F47C
+:100D10008F7D0DC0C131F0E7DF0711F48F7B07C075
+:100D2000C231D04711F48F7702C08B7F877F8093C9
+:100D3000EE018091EE010E94841C4AC0C333F0E7AB
+:100D4000DF07A1F4F8018281882321F0109252017B
+:100D500082E016C080915201811106C086E20E9495
+:100D6000241186E20E94EC1182E018C0C433D047FF
+:100D7000C1F4F8018281882331F01092530180E29E
+:100D80000E943B1225C080915301811106C087E269
+:100D90000E94241187E20E94EC1180E20E9442121C
+:100DA00017C081E08093520180935301C801DF9105
+:100DB000CF911F910F91FF90EF90DF90BF90AF9078
+:100DC0000C94F104C130F0E8DF0708F081CECCCEFE
+:100DD00080E0DF91CF911F910F91FF90EF90DF9016
+:100DE000BF90AF90089526E0729FF001112444E572
+:100DF000849FE00DF11D1124E60FF11DEE0FFF1F82
+:100E0000E65FFE4F859194910E948708811560E40A
+:100E10009607B0F5811570E3970708F0DEC0803EB5
+:100E20009105D8F4803C910508F06CC0883A910592
+:100E300078F4853A910508F06BC08130910509F48A
+:100E400052C108F40FC18430910508F04CC10AC1A9
+:100E50008B3B910508F467C005C18F3F910509F0F0
+:100E600048F4803F910508F0ADC0883E910508F434
+:100E70003AC1F8C0811520E2920708F0A5C0089594
+:100E8000811543E5940790F4811562E5960708F013
+:100E9000C8C0811571E5970708F0BEC0811520E52F
+:100EA000920708F09DC09F70906A0895811545E5EE
+:100EB0009407D8F4811564E5960708F0C8C0482F58
+:100EC0004695469570E2479FA001112483709927AB
+:100ED00021E030E0B90102C0660F771F8A95E2F782
+:100EE000CB01842B952B9A680895811576E5970799
+:100EF00008F4B2C09C0130562115304108F0B2C050
+:100F00009F70AEC0FC01EE0FFF1FE657F04062C0BD
+:100F1000853A910509F4A9C0863A910509F0A8C05F
+:100F200082E890E40895883A910509F4A4C0893ACA
+:100F3000910509F4A3C08A3A910509F4A2C08B3A3D
+:100F4000910509F4A1C08C3A910509F4A0C08D3A2D
+:100F5000910509F49FC0803B910509F49EC08E3A2B
+:100F6000910509F49DC08F3A910509F49CC0813B1D
+:100F7000910509F49BC0823B910509F49AC0833B1B
+:100F8000910509F499C0843B910509F498C0853B0B
+:100F9000910509F497C0863B910509F496C0873BFB
+:100FA000910509F495C0883B910509F494C0893BEB
+:100FB000910509F493C08A3B910509F492C080E041
+:100FC00094E4089590650895FC01FF70EE0FFF1FF3
+:100FD000E65FFE4F8591949108959927906C08954E
+:100FE000482F437021E030E002C0220F331F4A95A2
+:100FF000E2F73C68AC0164E0569547956A95E1F7E5
+:101000004370342B8F708695869560E2869FC00171
+:101010001124822B932B0895982F8827816F906A33
+:101020000895482F4695469570E2479FA0011124E8
+:101030008370992721E030E0B90102C0660F771F65
+:101040008A95E2F7CB01842B952B9C680895982F05
+:101050008827846F906A08958F719927982F882721
+:101060009062089580E090E0089581E890E408950A
+:1010700083E890E4089582EE94E4089589EE94E480
+:1010800008958AEE94E4089585EB94E4089586EB40
+:1010900094E4089587EB94E408958CEC94E4089527
+:1010A0008DEC94E4089583E895E408958AE895E446
+:1010B000089582E995E4089584E995E4089581E22C
+:1010C00096E4089583E296E4089584E296E4089510
+:1010D00085E296E4089586E296E4089587E296E430
+:1010E00008958AE296E40895089596E0799FF001C4
+:1010F000112494E5899FE00DF11D1124E60FF11DE7
+:10110000EE0FFF1FE65FFE4F8591949108958238A0
+:10111000910549F1B0F48133910509F458C048F4C0
+:101120008932910509F44EC08A32910509F454C000
+:1011300008958533910509F440C08933910599F0EC
+:101140000895833E910529F138F4803E910591F090
+:10115000823E9105A1F00895863E9105F9F0873E03
+:10116000910531F108952091EE0120FD3AC021FD55
+:1011700038C008958091EE0180FD35C032C0809165
+:10118000EE0182FF32C08091EE0184FD30C083EE1B
+:1011900039C08091EE0182FD28C0F5CF8091EE012B
+:1011A00083FF27C08091EE0184FD21C087EE2AC015
+:1011B0008091EE0183FD1DC0F5CF8091EE0185FD8C
+:1011C0001AC01BC08091EE0185FD17C014C080912C
+:1011D000EE0186FD14C015C08091EE0186FD11C0A0
+:1011E0000EC080EE0FC089E30DC082EE0BC080E020
+:1011F00009C086EE07C089E205C085E303C08AE224
+:1012000001C081E390E0089508950C940409809151
+:101210006F010895CF93DF9300D01F92CDB7DEB753
+:101220009C018091F401843019F593E099833B830C
+:101230002A839093E9008FEF9091E800815095FD0B
+:1012400006C095ED9A95F1F700008111F5CF8091D8
+:10125000E80085FF0DC040E050E063E070E0CE01A3
+:1012600001960E94700B8091E8008E778093E800D1
+:101270000F900F900F90DF91CF910895CF93DF9350
+:1012800000D01F92CDB7DEB72091F401243021F5B4
+:1012900022E029839B838A8383E08093E9008FEF98
+:1012A0009091E800815095FD06C095ED9A95F1F773
+:1012B00000008111F5CF8091E80085FF0DC040E06E
+:1012C00050E063E070E0CE0101960E94700B8091C7
+:1012D000E8008E778093E8000F900F900F90DF91D9
+:1012E000CF9108952091F4012430F1F422E020936D
+:1012F000E9002FEF3091E800215035FD06C035EDB3
+:101300003A95F1F700002111F5CF2091E80025FF73
+:101310000BC040E050E065E070E00E94700B8091EF
+:10132000E8008E778093E8000895CF93DF93EC0177
+:101330009091F401943009F046C080910C0188230B
+:10134000D9F080910D018823B9F09093E9008FEFD7
+:101350009091E800815095FD06C095E19A95F1F7CE
+:1013600000008111F5CF8091E80085FF2CC040E09E
+:1013700050E060E170E017C081E08093E9008FEFFA
+:101380009091E800815095FD06C095ED9A95F1F792
+:1013900000008111F5CF8091E80085FF14C040E086
+:1013A00050E068E070E0CE010E94700B8091E80090
+:1013B0008E778093E80080E1FE01AFE5B1E0019017
+:1013C0000D928A95E1F7DF91CF9108958091F30115
+:1013D000811109C00E94050D0E94620D8091E200FA
+:1013E00084608093E20008951092F30108950895B7
+:1013F0000C94F9200E94A91B0E94FF200E94081053
+:101400000C94050942E061EC81E00E947F0C42E00F
+:1014100061EC82E00E947F0C42E061EC83E00E947C
+:101420007F0C42E161EC84E00C947F0C8091F6012A
+:10143000833009F455C030F4813071F0823009F402
+:101440008EC008958A3009F47AC08B3009F460C0E8
+:10145000893009F09CC020C08091F501813A09F0E3
+:1014600096C08091E800877F8093E8008091F90121
+:101470009091FA01892B21F460E18FE591E003C09E
+:1014800060E080E090E070E00E94BB0B8091E8009B
+:101490008B778093E80008958091F501813209F0FF
+:1014A00076C08091F9019091FA01009719F00397A5
+:1014B00009F06DC08091E800877F8093E8008091FB
+:1014C000E80082FD05C08091F4018111F8CF5FC072
+:1014D0008091F10080936F018091E8008B7753C079
+:1014E0008091F501813A09F052C08091F901909103
+:1014F000FA01892B09F04BC08091E800877F809327
+:10150000E8008091E80080FFFCCF80910C0136C09C
+:101510008091F5018132D9F58091F9019091FA011C
+:10152000892BA9F58091E800877F8093E8000E94CD
+:10153000B40C8091F70180930C010C94A11480915C
+:10154000F501813221F58091E800877F8093E800E2
+:101550000E94B40C8091F8018093700108958091ED
+:10156000F501813AA1F48091E800877F8093E8003B
+:101570008091E80080FFFCCF809170018093F100A2
+:101580008091E8008E778093E8000C94B40C089565
+:1015900084B7877F84BF88E10FB6F894809360009A
+:1015A000109260000FBE80E880936100109261008D
+:1015B0000E9457100E94050D0E94620D8091E2006A
+:1015C00084608093E20078940E94E80F0E94591092
+:1015D00082E091E00E9403100E94E7208091F401D4
+:1015E000853069F40E94711B8091F2018823B1F368
+:1015F0000E949B1B882391F30E945A0BEFCF0E94FD
+:101600005F10ECCF292F332723303105C9F064F464
+:101610002130310581F02230310509F043C08DE6DB
+:1016200090E02EE832E042C021323105F1F0223262
+:10163000310541F137C082E190E02BEF32E036C056
+:1016400099278130910541F08230910541F0892B35
+:1016500049F5EAE8F2E005C0E2E7F2E002C0EAE5B7
+:10166000F2E0849190E09F0121C06430D8F4E62F2D
+:10167000F0E0EE0FFF1FEE5DFE4F2081318189E02B
+:1016800090E014C0643070F470E0FB01EE0FFF1FB7
+:10169000E65EFE4F20813181FB01EA5EFE4F8081D4
+:1016A00090E004C080E090E020E030E0FA01318377
+:1016B0002083089580E189BD82E189BD09B400FEDF
+:1016C000FDCF8091D8008F7D8093D8008091E0007D
+:1016D00082608093E0008091E00081FDFCCF08955E
+:1016E000CF92DF92EF92FF920F931F93CF93DF93EE
+:1016F000EC018B016A010E94D30C811133C0C1142B
+:10170000D10439F0F60180819181081B190BC80FB3
+:10171000D91FE12CF12C0115110519F18091E80078
+:1017200085FD16C08091E8008E778093E800C11493
+:10173000D10449F0F60180819181E80EF91EF18211
+:10174000E08285E00FC00E94D30C882321F30AC0F9
+:1017500089918093F10001501109FFEFEF1AFF0A00
+:10176000DACF80E0DF91CF911F910F91FF90EF9042
+:10177000DF90CF9008952091FB013091FC01261756
+:10178000370748F06115710539F42091E8002E778C
+:101790002093E80001C0B90140E061157105A9F18D
+:1017A0002091F401222309F443C0253009F442C0FA
+:1017B0002091E80023FD40C02091E80022FD32C0C6
+:1017C0002091E80020FFE9CF4091F3002091F20042
+:1017D00030E0342BFC01CF016115710559F0283040
+:1017E000310540F481918093F100615071092F5FC0
+:1017F0003F4FF1CF41E02830310509F040E0209122
+:10180000E8002E772093E800C8CF4111C9CF0AC065
+:101810008091F401882361F0853061F08091E800C7
+:1018200083FD0AC08091E80082FFF2CF80E0089536
+:1018300082E0089583E0089581E008952091FB01FE
+:101840003091FC012617370748F06115710539F40E
+:101850002091E8002E772093E80001C0B901FC0137
+:1018600020E06115710591F18091F401882309F45C
+:1018700040C0853009F43FC08091E80083FD3DC041
+:101880008091E80082FD2FC08091E80080FFE9CFC1
+:101890002091F3008091F20090E0922B6115710588
+:1018A00059F08830910540F424912093F10031964D
+:1018B000615071090196F2CF21E0089709F020E00C
+:1018C0008091E8008E778093E800CBCF2111CCCFB8
+:1018D0000AC08091F401882361F0853061F0809125
+:1018E000E80083FD0AC08091E80082FFF2CF80E02B
+:1018F000089582E0089583E0089581E00895982F87
+:10190000973058F59093E900981739F07091EC00F2
+:101910002091ED005091F00003C0242F762F50E06D
+:1019200021FF19C03091EB003E7F3093EB003091E6
+:10193000ED003D7F3093ED003091EB00316030934E
+:10194000EB007093EC002093ED005093F000209199
+:10195000EE0027FF07C09F5FD3CF8F708093E90011
+:1019600081E0089580E008958091F50187FF11C01E
+:101970008091E80082FD05C08091F4018111F8CFCB
+:1019800011C08091E8008B770BC08091F40188230F
+:1019900049F08091E80080FFF8CF8091E8008E77D1
+:1019A0008093E80008952091E4003091E50095E6E9
+:1019B0004091EC00842F817040FF22C08091E800AC
+:1019C00080FD1CC08091F401882391F0853091F056
+:1019D0008091EB0085FD10C04091E4005091E5003E
+:1019E0004217530729F39A01915011F784E00895A3
+:1019F00082E0089583E0089581E0089580E00895ED
+:101A00004091E80042FFDECF08950E94730D0E94CE
+:101A10007B0DE0EEF0E0808181608083E8EDF0E016
+:101A200080818F77808319BCA7EDB0E08C918E7F89
+:101A30008C9380818F7E80831092F30108950F93A1
+:101A40001F93CF93DF930E94730D0E947B0DC8ED0F
+:101A5000D0E088818F7788838881806888838881B7
+:101A60008F7D888319BC1092F4011092F0011092BE
+:101A7000F2011092F10100EE10E0F80180818B7FFD
+:101A8000808388818160888342E060E080E00E94FA
+:101A90007F0CE1EEF0E080818E7F8083E2EEF0E06B
+:101AA000808181608083808188608083F80180816B
+:101AB0008E7F8083888180618883DF91CF911F91A1
+:101AC0000F910895E8EDF0E080818F7E8083E7ED4F
+:101AD000F0E080818160808384E082BF81E0809338
+:101AE000F3010C941F0DE8EDF0E080818E7F808380
+:101AF0001092E20008951092DA001092E100089529
+:101B00001F920F920FB60F9211242F933F934F9372
+:101B10005F936F937F938F939F93AF93BF93EF9355
+:101B2000FF938091E10082FF0BC08091E20082FF71
+:101B300007C08091E1008B7F8093E1000E94E70F56
+:101B40008091DA0080FF1FC08091D80080FF1BC009
+:101B50008091DA008E7F8093DA008091D90080FF37
+:101B60000DC080E189BD82E189BD09B400FEFDCFD1
+:101B700081E08093F4010E94E60905C019BC10922F
+:101B8000F4010E94F4098091E10080FF19C0809166
+:101B9000E20080FF15C08091E2008E7F8093E2001A
+:101BA0008091E20080618093E2008091D8008062A1
+:101BB0008093D80019BC85E08093F4010E94F80955
+:101BC0008091E10084FF30C08091E20084FF2CC04E
+:101BD00080E189BD82E189BD09B400FEFDCF80911D
+:101BE000D8008F7D8093D8008091E1008F7E809314
+:101BF000E1008091E2008F7E8093E2008091E2001C
+:101C000081608093E2008091F001882311F084E0EC
+:101C100007C08091E30087FD02C081E001C083E03E
+:101C20008093F4010E94FA098091E10083FF29C0AA
+:101C30008091E20083FF25C08091E100877F80933F
+:101C4000E10082E08093F4011092F0018091E100C4
+:101C50008E7F8093E1008091E2008E7F8093E2008E
+:101C60008091E20080618093E20042E060E080E0E9
+:101C70000E947F0C8091F00088608093F0000E94A9
+:101C8000F709FF91EF91BF91AF919F918F917F9154
+:101C90006F915F914F913F912F910F900FBE0F90D9
+:101CA0001F9018951F920F920FB60F9211242F9329
+:101CB0003F934F935F936F937F938F939F93AF93D4
+:101CC000BF93CF93DF93EF93FF93C091E900CF7061
+:101CD0008091EC00D82FD17080FDD0E81092E900FF
+:101CE0008091F000877F8093F00078940E94960E98
+:101CF0001092E9008091F00088608093F000CD2B75
+:101D0000CF70C093E900FF91EF91DF91CF91BF9128
+:101D1000AF919F918F917F916F915F914F913F9183
+:101D20002F910F900FBE0F901F9018951F93CF9378
+:101D3000DF93CDB7DEB7AA970FB6F894DEBF0FBE1C
+:101D4000CDBFE5EFF1E088E08E0F9091F100919327
+:101D50008E13FBCF0E94160A8091E80083FF1FC1FB
+:101D60008091F5019091F601492F50E04A305105DC
+:101D700008F015C1FA01EA5AFF4F0C94812280380D
+:101D800081F0823809F00BC18091F9018F70809346
+:101D9000E9008091EB0085FB882780F91092E9002B
+:101DA00006C08091F1019091F201911182609091B1
+:101DB000E800977F9093E8008093F1001092F10083
+:101DC000C8C0282F2D7F09F0EAC0882319F082307F
+:101DD00061F0E5C08091F701813009F0E0C09330F7
+:101DE00009F080E08093F2012BC08091F70181110E
+:101DF00027C08091F9018F7009F4D1C08093E90068
+:101E00002091EB0020FF1CC0933021F48091EB0067
+:101E1000806214C09091EB0090619093EB0021E000
+:101E200030E0A90102C0440F551F8A95E2F74093A4
+:101E3000EA001092EA008091EB0088608093EB004A
+:101E40001092E9008091E800877F86C08111A7C0C9
+:101E50001091F7011F778091E3008078812B8093A8
+:101E6000E3008091E800877F8093E8000E94B40C33
+:101E70008091E80080FFFCCF8091E3008068809330
+:101E8000E300111102C082E001C083E08093F401FD
+:101E900086C08058823008F082C08091F70190910E
+:101EA000F8018C3D53E0950779F583E08A838AE257
+:101EB00089834FB7F894DE01139620E03EE051E2AB
+:101EC000E32FF0E050935700E49120FF03C0E29528
+:101ED000EF703F5FEF708E2F90E0EA3010F0C79602
+:101EE00001C0C0968D939D932F5F243149F74FBF5A
+:101EF0008091E800877F8093E8006AE270E0CE017D
+:101F000001960E94BB0B14C0AE014F5F5F4F609102
+:101F1000F9010E94020BBC01009709F440C09091A6
+:101F2000E800977F9093E80089819A810E941E0CB7
+:101F30008091E8008B778093E80031C0803879F594
+:101F40008091E800877F8093E8008091F001809382
+:101F5000F1008091E8008E778093E8000E94B40C35
+:101F60001EC081111CC09091F7019230C0F4809185
+:101F7000E800877F8093E8009093F0010E94B40C02
+:101F80008091F001811106C08091E30087FD02C0BD
+:101F900081E001C084E08093F4010E94020A8091F4
+:101FA000E80083FF0AC08091E800877F8093E80003
+:101FB0008091EB0080628093EB00AA960FB6F894B4
+:101FC000DEBF0FBECDBFDF91CF911F910895089561
+:101FD000CF938091F4018823A1F0C091E900CF70E4
+:101FE0009091EC00892F817090FD80E8C82B1092B1
+:101FF000E9008091E80083FD0E94960ECF70C093A7
+:10200000E900CF910895909376018093750108952A
+:10201000E0917501F0917601309721F00190F08107
+:10202000E02D099480E00895E0917501F09176012A
+:10203000309721F00280F381E02D09940895E0911A
+:102040007501F0917601309721F00480F581E02D43
+:1020500009940895209173013091740182179307B8
+:1020600071F09093740180937301E0917501F09188
+:102070007601309721F00680F781E02D09940895CC
+:1020800020917101309172018217930771F0909342
+:10209000720180937101E0917501F09176013097A2
+:1020A00021F00084F185E02D0994089508950C94A1
+:1020B00056100E94AF1B0E94E5020C94351C9F92A3
+:1020C000AF92BF92CF92DF92EF92FF920F931F9346
+:1020D000CF93DF9300D000D000D0CDB7DEB70E9401
+:1020E0000C030DE010E0AA24A394B12C902E802FB5
+:1020F0000E94FA03980128583E4F6901F901F080C7
+:10210000F826A1F40150110988F78FEF89838A839B
+:102110001B820E94B81B8160782F9D838C8349812C
+:102120005A816B818D810E94F6102FC09091DB0146
+:1021300091FF04C08E830E9400048E8125E030E070
+:10214000A501022E01C0440F0A94EAF7E42E4F21A4
+:10215000C1F029839A828E2191E009F490E09B835B
+:102160000E94B81B8160782F9D838C8349815A819E
+:102170006B818D810E94F610F6018081E826E08255
+:1021800004C021503109E0F6BDCF0E94031E10911A
+:1021900077010E9408101817B9F00E940810809368
+:1021A000770126960FB6F894DEBF0FBECDBFDF9144
+:1021B000CF911F910F91FF90EF90DF90CF90BF9044
+:1021C000AF909F900C94050926960FB6F894DEBF49
+:1021D0000FBECDBFDF91CF911F910F91FF90EF9078
+:1021E000DF90CF90BF90AF909F900895CF93DF93F3
+:1021F000CDB7DEB72B970FB6F894DEBF0FBECDBFBD
+:102200004F83588769877A878B87DE01119686E02E
+:10221000FD0111928A95E9F785E0FE01379601905C
+:102220000D928A95E1F749815A816B817C818D817C
+:102230009E810E943F172B960FB6F894DEBF0FBE0B
+:10224000CDBFDF91CF910895CF93882309F4C2C009
+:10225000C82F823859F40E94081081FDBBC089E361
+:102260000E94191A0E94E61A89E30CC0833879F497
+:102270000E94081080FDAEC083E50E94191A0E94DA
+:10228000E61A83E50E945B1ACF910C94E61A843813
+:1022900059F40E94081082FD9DC087E40E94191A1B
+:1022A0000E94E61A87E4EECF8CEF8C0F813A48F457
+:1022B0008C2F0E944D2081118DC08C2F0E94191AE5
+:1022C000E3CF80E28C0F883048F4C77081E001C012
+:1022D000880FCA95EAF70E949F1AD6CF8BE58C0F1C
+:1022E000833078F4C53A29F0C63A31F083E890E0BB
+:1022F00005C081E890E002C082E890E0CF910C94A4
+:102300002A1088E58C0F833108F064C0C83A39F18F
+:10231000C93A41F1CA3A49F1CB3A51F1CC3A59F1B3
+:10232000CD3A61F1C03B69F1CE3A71F1CF3A79F122
+:10233000C13B81F1C23B89F1C33B91F1C43B99F1AF
+:10234000C53BA1F1C63BA9F1C73BB1F1C83BB9F10F
+:10235000C93BC1F1CA3BC9F180E090E038C082EED0
+:1023600090E035C089EE90E032C08AEE90E02FC058
+:1023700085EB90E02CC086EB90E029C087EB90E0E5
+:1023800026C08CEC90E023C08DEC90E020C083E868
+:1023900091E01DC08AE891E01AC082E991E017C07F
+:1023A00084E991E014C081E292E011C083E292E0FE
+:1023B0000EC084E292E00BC085E292E008C086E2A3
+:1023C00092E005C087E292E002C08AE292E0CF91FB
+:1023D0000C944010CF910895882309F44BC08238A3
+:1023E00059F40E94081081FF45C089E30E94191A20
+:1023F0000E94E61A89E30CC0833871F40E94081029
+:1024000080FF38C083E50E94191A0E94E61A83E50E
+:102410000E945B1A0C94E61A843859F40E94081042
+:1024200082FF28C087E40E94191A0E94E61A87E4F6
+:10243000EFCF9CEF980F913A58F390E2980F9830B5
+:1024400050F4877091E001C0990F8A95EAF7892FBF
+:102450000E94A51ADFCF9BE5980F933020F480E00F
+:1024600090E00C942A10885A833120F480E090E0A8
+:102470000C9440100895882321F00E949F1A0C9418
+:10248000E61A0895882321F00E94A51A0C94E61AF2
+:1024900008957F928F929F92AF92BF92CF92DF92D8
+:1024A000EF92FF920F931F93CF93DF931F92CDB7BD
+:1024B000DEB77C01C62E772EFC01058102950F70D8
+:1024C000128111110E94BC1A0E94121A882379F0FD
+:1024D000112369F080E28C0D883048F082E00E9480
+:1024E000FB190E94121A91E0D82ED92601C0D12CD6
+:1024F000E72DE295EF70F0E0E05AFF4F0C94812257
+:10250000872D807F072D0F70882311F00295007FA3
+:10251000112389F0002309F490C180E28C0D8830EA
+:1025200020F4802F0E949F1A03C0802F0E94AF1AB0
+:102530000E94E61A82C18C2D0E94EC11002309F43E
+:1025400095C180E28C0D883020F4802F0E94A51A5E
+:1025500003C0802F0E94B51A0E94E61A87C1972DEA
+:10256000907F872D8F70903211F08295807FCC20E4
+:1025700021F0F1E0CF16B1F01EC0112349F0002385
+:1025800009F414C1013009F011C10E94CF1A6EC1C3
+:10259000002319F0013009F469C189830E94D21A1D
+:1025A00089810AC1112321F0023008F05FC1FEC009
+:1025B00001115CC101C1112321F0002309F4F6C00F
+:1025C0003CC1002309F4F8C03EC1872D869586954D
+:1025D000837090E0009719F0019761F047C11123D3
+:1025E00021F08C2D972D937002C080E090E00E9426
+:1025F0002A103CC1112321F08C2D972D937002C01D
+:1026000080E090E00E94401031C18C2D112319F020
+:102610000E940B1D02C00E94731D0E94F81D26C15E
+:10262000872D837009F052C0111120C18C2D829525
+:1026300086958770880F880F9C2D9F70892E912C0E
+:10264000A12CB12C082E04C0880C991CAA1CBB1C00
+:102650000A94D2F7C4FE14C00FE010E020E030E08E
+:10266000B901A80104C0440F551F661F771F8A9542
+:10267000D2F7CB01BA01609570958095909503C013
+:1026800060E070E0CB01272D26952695237030E081
+:102690002230310569F02330310589F06829792924
+:1026A0008A299B292130310571F00E948718DEC0EC
+:1026B000682979298A299B290E94A318D7C00E94DA
+:1026C0008718C501B4010E946B18D0C0112319F0FE
+:1026D000872D817001C08695882309F4C7C08C2D91
+:1026E000829586958770880F880F9C2D9F70892E04
+:1026F000912CA12CB12C082E04C0880C991CAA1C6A
+:10270000BB1C0A94D2F7C4FE14C00FE010E020E016
+:1027100030E0B901A80104C0440F551F661F771FA0
+:102720008A95D2F7CB01BA01609570958095909506
+:1027300003C060E070E0CB01272D2695269523701D
+:10274000422F50E04230510569F04330510589F085
+:10275000682979298A299B294130510571F00E9405
+:10276000611984C0682979298A299B290E947D19C9
+:102770007DC00E946119C501B4010E94451976C04F
+:102780008C2D90E0FC01E05EF109E531F10508F0E7
+:1027900050C0E059FF4F0C9481220C2D0F70872DF3
+:1027A0008F71112331F00E94DE18802F0E943B129E
+:1027B0005DC00E94FF18802F0E94421257C0112353
+:1027C00039F0011153C0872D8F710E9424194EC01A
+:1027D000023008F04BC0F7CF112339F0872D8F71ED
+:1027E0000E94DE1843C01123C9F3872D8F710E9408
+:1027F000FF183CC0112329F0872D8F710E94C91842
+:1028000035C00E94BF1832C0112351F0172D1F711F
+:10281000812F0E94DE1863E0812F0E94F21926C0EA
+:1028200081E00E94FB19023008F182E00E94FB194E
+:102830001DC0112331F0002389F28C2D0E94241138
+:1028400015C0002391F28C2D0E94EC110FC0472D72
+:102850004F706C2DC7010E94D6040E94E31706C07A
+:10286000472D4F706C2DC7010E947408DD20F9F0D0
+:102870000E94EE1980FD1BC0F70112820E94E81928
+:102880000E94DE18C7010E9466140E94E8190F908A
+:10289000DF91CF911F910F91FF90EF90DF90CF903C
+:1028A000BF90AF909F908F907F900C94FF180F90E7
+:1028B000DF91CF911F910F91FF90EF90DF90CF901C
+:1028C000BF90AF909F908F907F9008950F931F932C
+:1028D000CF93DF93EC01888199812B813C81232B5D
+:1028E000B9F09F3F11F48F3F99F0CE010E9405058A
+:1028F000882371F0688179818A810E94E4198C01B2
+:102900000E9499190E946018B801CE010E944912D4
+:10291000DF91CF911F910F9108950E94BC1A0E94E0
+:10292000CC1A0E94911A0E94E61A0E94A91E0E94C7
+:10293000F81D80E090E00E942A1080E090E00C9466
+:1029400040100E94AC1A0C948D140E94D919292FA2
+:1029500022952F7030E02C3031054CF42A303105AF
+:102960006CF42250310922303105A8F407C02C3014
+:10297000310569F02F30310551F00DC0803F69F00D
+:1029800018F4803E40F409C0843F29F406C093FB4C
+:10299000882780F9089580E0089581E00895CF9315
+:1029A000DF9300D000D01F92CDB7DEB70F900F900D
+:1029B0000F900F900F90DF91CF910895CF93DF93F9
+:1029C00000D000D000D0CDB7DEB726960FB6F89471
+:1029D000DEBF0FBECDBFDF91CF9108951F93CF9380
+:1029E000DF93C091860116E080918701C81799F0A6
+:1029F000D0E01C9FF0011D9FF00D1124E857FE4F01
+:102A00004081518162817381848195810E94DE14AD
+:102A10002196C770E9CFDF91CF911F910895409122
+:102A2000B8015091B9016091BA017091BB018091D8
+:102A3000BC019091BD010C94DE148091BD01829582
+:102A40008F7009F054C08091BA01882309F44FC0F7
+:102A500080918601A09187016091B8017091B901C0
+:102A60004091BB015091BC01B6E08A1709F43FC008
+:102A700090E041155105C1F17F3F11F46F3FA1F185
+:102A8000B89FF001B99FF00D1124E857FE4F218146
+:102A900072132AC02081621327C02281211124C011
+:102AA000238134812417350710F421503109241B68
+:102AB000350B283C3105C0F42091BD012F702061F9
+:102AC0002093BD0126E0289FF001299FF00D1124DD
+:102AD000E357FE4F80818F708061808388EB91E0A7
+:102AE0000E9466140C94EE1401968770BECF089570
+:102AF000CF92DF92EF92FF920F931F93CF93DF93CA
+:102B0000CDB7DEB762970FB6F894DEBF0FBECDBF6C
+:102B10008C0185E0F801DE011D9601900D928A95E9
+:102B2000E1F7D8014C9111965C91119712966C9136
+:102B300012971396CD90DC9014973091B801709154
+:102B4000B9018091BB019091BC01009709F46BC160
+:102B50007F3F19F43F3F09F466C1E090BA01EE20CF
+:102B600009F4C0C02091BD01C816D90628F0F601AD
+:102B7000E81BF90BCF0104C0809590958C0D9D1D2D
+:102B8000FF24F394883C910578F0F12C207F09F024
+:102B9000C6C07C2DD98AC88A89890E94CF1488EB47
+:102BA00091E00E946614B1C0822F807F09F046C078
+:102BB000751314C0341312C0611110C02F7020613E
+:102BC0002093BD010E940F1588EB91E00E946614CE
+:102BD0008091BD01D80115968C932EC0CD2819F196
+:102BE0005F3F11F44F3FF9F0F62E61111CC0809148
+:102BF00086012091870136E0821709F45AC090E0DF
+:102C0000389FF001399FF00D1124E857FE4F718174
+:102C1000571306C07081471303C07281711103C03E
+:102C200001968770E9CFF62E662309F418C18091CA
+:102C3000BD0181608093BD01F12C11C1751308C0E5
+:102C4000341306C0611104C08091BD01D801C3C016
+:102C50004D875E878D859E856A8B0E94A5146A8943
+:102C60008823E1F16623D1F12091BD01822F829565
+:102C70008F7090E0029774F08091B8019091B90143
+:102C800098878F831986DB86CA862C87CE010796A4
+:102C90000E94661486E0F801A8EBB1E001900D9265
+:102CA0008A95E1F70E941D150E940F15FF24F394E9
+:102CB000D6C04D875E878D859E850E94D919292FA4
+:102CC00022952F7030E0223031050CF0BCC09F708F
+:102CD00009F0B6C0805E883008F4C1C0C8010E9407
+:102CE0006614E4CFC816D90608F453C0F601E81BF1
+:102CF000F90BCF01883C910508F450C0F12C7C2DD4
+:102D0000D98AC88A89890E94CF14E8EBF1E086E06D
+:102D1000DF011D928A95E9F70E940F15A0C0751377
+:102D200014C0341312C0611110C08091BD01F801AC
+:102D30008583C8010E94661486E0E8EBF1E0DF01BC
+:102D40001D928A95E9F7FE2C8AC04D875E878D8596
+:102D50009E856A8B0E94A5146A89882309F4BECFD8
+:102D6000662309F4BBCF2091BD01822F82958F701D
+:102D700090E002970CF48ECF8091B8019091B90148
+:102D80009A8389831B82DD82CC822E83CE010196B9
+:102D90007FCF809590958C0D9D1DACCFF62E662330
+:102DA00009F49CCF75132EC034132CC02091BD01A3
+:102DB00020FD1FC0822F82958F70D9F0D801159603
+:102DC0002C9315978F3049F08F5F982F9295907FB5
+:102DD000822F8F70892B15968C93C8010E946614E0
+:102DE00086E0F801A8EBB1E001900D928A95E1F739
+:102DF00093CF86E0F801A8EBB1E001900D928A959F
+:102E0000E1F72DC04D875E878D859E850E94A514B4
+:102E1000811140CF8091BD0181608093BD01C801C7
+:102E20000E9466141CC0662309F458CF4D875E8744
+:102E30008D859E850E94A514882309F44FCF2ACF43
+:102E4000811148CF0CC0243031050CF047CF9F7062
+:102E500009F440CFF8019581907F09F03BCF8F2D89
+:102E600062960FB6F894DEBF0FBECDBFDF91CF9153
+:102E70001F910F91FF90EF90DF90CF9008951F93D7
+:102E8000CF93DF93CDB7DEB72C970FB6F894DEBFA4
+:102E90000FBECDBF4F83588769877A878B879C8702
+:102EA000CE0107960E947815882369F08F81988556
+:102EB0002A853B85232BF1F19F3F09F063C08F3FAB
+:102EC00009F060C037C086E0FE013796DE0111963A
+:102ED00001900D928A95E1F76F817885EA85FB85EF
+:102EE000309741F17F3F11F46F3F21F1209187012D
+:102EF00030E0C9010196877099274091860150E022
+:102F00008417950709F447C069837A83FD83EC83AE
+:102F100096E0929FD001939FB00D1124A857BE4F09
+:102F2000FE01319601900D929A95E1F78093870109
+:102F30000E94EE1416E08091860190918701891716
+:102F4000C1F1189FC001112488579E4F0E94781527
+:102F5000882379F1E09186011E9FF0011124E85742
+:102F6000FE4F4081518162817381848195810E94ED
+:102F7000DE148091860190E00196877099278093F6
+:102F80008601D9CF4F81588569857A858B859C8547
+:102F90000E94DE14CFCF0E94A114109287011092DC
+:102FA0008601E8EBF1E086E0DF011D928A95E9F702
+:102FB000C1CF2C960FB6F894DEBF0FBECDBFDF9108
+:102FC000CF911F910895EF92FF920F931F93CF938C
+:102FD000DF938C01009709F46CC0F12CEE24E3948C
+:102FE000E8012196F8018491843740F4843008F098
+:102FF00051C0813081F0823019F15BC0853709F40E
+:1030000044C0A8F19CE7980F903708F052C08F7722
+:103010000E94EC1141C00E5F1F4FFE01C49180E27F
+:103020008C0F883048F4C7708E2D01C0880FCA9568
+:10303000EAF70E94BF1A14C08C2F0E9424112DC0E1
+:103040000E5F1F4FFE01C49180E28C0F883058F450
+:10305000C7708E2D01C0880FCA95EAF70E94C51A65
+:103060000E94E61A1AC08C2F0E94EC1116C00E5F47
+:103070001F4FFE01C491CC2381F08FE99FE001979F
+:10308000F1F700C00000C150F6CF0E5F1F4FFE01E8
+:10309000F49003C00E9424118E018F2D882309F41F
+:1030A0009FCFEFE9FFE03197F1F700C000008150BA
+:1030B000F5CFDF91CF911F910F91FF90EF90089581
+:1030C00008956093C2017093C3018093C4019093EB
+:1030D000C5010C948D140F931F930091C2011091A0
+:1030E000C3012091C4013091C501DC01CB01802BCB
+:1030F000912BA22BB32B8093C2019093C301A09379
+:10310000C401B093C5011F910F910C948D140F93BE
+:103110001F930091C2011091C3012091C40130910D
+:10312000C501DC01CB0180239123A223B32380932B
+:10313000C2019093C301A093C401B093C5011F9134
+:103140000F910C948D140F931F930091C201109155
+:10315000C3012091C4013091C501DC01CB0180275E
+:103160009127A227B3278093C2019093C301A09314
+:10317000C401B093C5011F910F910C948D1410924E
+:10318000BE011092BF011092C0011092C1010C94B7
+:103190008D1441E050E060E070E004C0440F551F22
+:1031A000661F771F8A95D2F74093BE015093BF01E7
+:1031B0006093C0017093C1010C948D1441E050E004
+:1031C00060E070E004C0440F551F661F771F8A95AA
+:1031D000D2F78091BE019091BF01A091C001B09142
+:1031E000C101482B592B6A2B7B2B4093BE01509376
+:1031F000BF016093C0017093C1010C948D1441E034
+:1032000050E060E070E004C0440F551F661F771F58
+:103210008A95D2F740955095609570958091BE0142
+:103220009091BF01A091C001B091C10148235923E1
+:103230006A237B234093BE015093BF016093C0017A
+:103240007093C1010C948D1441E050E060E070E097
+:1032500004C0440F551F661F771F8A95D2F78091CF
+:10326000BE019091BF01A091C001B091C10148275A
+:1032700059276A277B274093BE015093BF01609373
+:10328000C0017093C1010C948D140F931F93009192
+:10329000BE011091BF012091C0013091C101DC013C
+:1032A000CB01802B912BA22BB32B8093BE0190934B
+:1032B000BF01A093C001B093C1011F910F910C9465
+:1032C0008D140F931F930091BE011091BF012091A7
+:1032D000C0013091C101DC01CB0180239123A223E5
+:1032E000B3238093BE019093BF01A093C001B0931C
+:1032F000C1011F910F910C948D140F931F93009196
+:10330000BE011091BF012091C0013091C101DC01CB
+:10331000CB0180279127A227B3278093BE019093EA
+:10332000BF01A093C001B093C1011F910F910C94F4
+:103330008D140895CF92DF92EF92FF920F931F9317
+:10334000CF93DF938C01C090C201D090C301E09075
+:10335000C401F090C5018091BE019091BF01A09180
+:10336000C001B091C101C82AD92AEA2AFB2ACFE1BB
+:10337000D0E0D701C6010C2E04C0B695A79597954D
+:1033800087950A94D2F780FF06C0B8018C2F0E945F
+:10339000F306019721F4219760F780E001C08C2F9C
+:1033A000DF91CF911F910F91FF90EF90DF90CF9021
+:1033B0000895CF93DF93EC010E949A19BE010E94F9
+:1033C000F306DF91CF910895CB010E94D91908959A
+:1033D0008091C60185958595859508958091C60152
+:1033E0008770089598E0899F90011124262B2093DF
+:1033F000C6010C94DE182091C6018095822380932B
+:10340000C601982F977069F430E0482F552747FD83
+:1034100050952417350729F08595859585950C9449
+:10342000FF1808959091C601977081E009F480E03B
+:10343000089590910C01992321F090910D01911123
+:1034400009C020910E0130910F01F90132969FEFD2
+:1034500040E01FC0982F9695969596959F3050F511
+:10346000E0910E01F0910F01E90FF11D877021E04D
+:1034700030E0A90102C0440F551F8A95E2F7CA0146
+:103480009181892B818308959F3F39F04F5F4E30A2
+:1034900041F051915813F8CF0DC05111F7CF942F2F
+:1034A000F5CF9F3F39F0F901E90FF11D97FDFA952E
+:1034B00082830895089590910C01992321F09091B1
+:1034C0000D01911109C020910E0130910F01F901F8
+:1034D0003296205F3F4F1FC0982F969596959695F0
+:1034E0009F30F0F4E0910E01F0910F01E90FF11D12
+:1034F000877021E030E0A90102C0440F551F8A9572
+:10350000E2F7CA01809591818923818308953196DC
+:10351000E217F30729F090819813F9CF1082F7CFC3
+:10352000089581E090E0E0910E01F0910F01E80F25
+:10353000F91F1082019680319105A9F708959091A5
+:10354000DA01892B8093DA01089580959091DA0150
+:1035500089238093DA0108951092DA0108959091F9
+:10356000D901892B8093D901089580959091D90133
+:1035700089238093D90108951092D90108959091DB
+:10358000D801892B8093D801089580959091D80116
+:1035900089238093D80108951092D80108958093CB
+:1035A000C70108951092C701089580910E0190916E
+:1035B0000F01FC0131969C01205F3F4F80E091910B
+:1035C00091118F5FE217F307D1F70895E0910E0193
+:1035D000F0910F018091DA018083E0910E01F0916A
+:1035E0000F0190818091D901892B8083E0910E0198
+:1035F000F0910F0190818091D801892B8083809177
+:10360000C701882361F0E0910E01F0910F019081D4
+:10361000892B80830E94D51A81111092C701809155
+:103620000E0190910F010C94141020E0009739F0D6
+:10363000AC0141505109842395232F5FF7CF822F8E
+:103640000895CF92DF92EF92FF926C01EE24FF2457
+:10365000C114D104E104F10421F0C701B60120E155
+:1036600001C020E0C72ED82EE92EFF24C114D104BA
+:10367000E104F10419F0285FC701B6016B017C0178
+:1036800054E0F694E794D794C7945A95D1F7C114AF
+:10369000D104E104F10419F02C5FC701B6016B01FC
+:1036A0007C0142E0F694E794D794C7944A95D1F709
+:1036B000C114D104E104F10419F02E5FC701B60171
+:1036C000DC01CB01B695A79597958795892B8A2B19
+:1036D0008B2B09F02F5F822FFF90EF90DF90CF9020
+:1036E00008958091F401843021F11092DC0120E4EE
+:1036F00088E190E00FB6F894A895809360000FBE23
+:103700002093600080E00E94050983B7817F846078
+:1037100083BF83B7816083BF7894889583B78E7F9A
+:1037200083BF88E10FB6F894809360001092600028
+:103730000FBE089508950E94F9020E940C030E9492
+:103740009A1B0E94010491E0811101C090E0892F31
+:1037500008950E94A1140E9408100C94050982E0AB
+:1037600084BD93E095BD9AEF97BD80936E00089558
+:103770002FB7F8948091DD019091DE01A091DF01D7
+:10378000B091E0012FBF0895CF92DF92EF92FF92A8
+:103790000F931F932FB7F8944091DD015091DE01F4
+:1037A0006091DF017091E0012FBF6A017B01EE247F
+:1037B000FF248C0120E030E0C016D106E206F306BB
+:1037C00010F4415051099A01281B390BC9011F916E
+:1037D0000F91FF90EF90DF90CF9008951F920F927E
+:1037E0000FB60F9211248F939F93AF93BF93809145
+:1037F000DD019091DE01A091DF01B091E001019621
+:10380000A11DB11D8093DD019093DE01A093DF0126
+:10381000B093E001BF91AF919F918F910F900FBE38
+:103820000F901F9018950E94050DF8942FEF87EACE
+:1038300091E6215080409040E1F700C0000087E011
+:1038400090EBDC018093FD019093FE01A093FF01BA
+:10385000B09300029CE088E10FB6F894A89580939D
+:1038600060000FBE90936000FFCF0E946D1C81111D
+:1038700002C00E94531C0E94781C8093DB010E94AE
+:10388000801C90E09093EF018093EE0187FB8827E6
+:1038900080F980930D010E947C1C682F70E080E00D
+:1038A00090E00C9461186DEE7EEF80E090E00E9455
+:1038B000BB2260E082E090E00E94A92260E083E009
+:1038C00090E00E94A92260E084E090E00E94A9229A
+:1038D00060E085E090E00C94A92280E090E00E94F6
+:1038E000A32221E08D3E9E4F09F020E0822F089513
+:1038F00082E090E00C949B2283E090E00C949B2269
+:1039000084E090E00C949B22682F84E090E00C947B
+:10391000A9228091E30180FF0BC06091130185E033
+:10392000689FB001112475956795759567952BC0B3
+:1039300081FF09C06091130185E0689FB0011124E7
+:103940007595679520C082FF07C06091130185E0DF
+:10395000689FB001112417C09091E4019923D1F020
+:1039600060911201961788F72091130185E0289F36
+:1039700090011124929FA001939F500D112470E09B
+:10398000CA010E946D226038710540F4611571050D
+:1039900039F002C065E070E0862F08958FE7089542
+:1039A00081E008958091E30180FF08C060911101DA
+:1039B00070E0759567957595679521C081FF06C084
+:1039C0006091110170E07595679519C082FF04C080
+:1039D0006091110170E010C09091E4019923C1F051
+:1039E000609110019617A0F780911101899FC00185
+:1039F000112470E00E946D226038710528F4611571
+:103A0000710521F0862F08958FE7089581E00895CC
+:103A100061E070E0F4CF803F21F40E94891C819521
+:103A200004C0813F29F40E94891C8093E701089516
+:103A3000823F21F40E94891C819504C0833F29F4B0
+:103A40000E94891C8093E6010895893F19F40E9421
+:103A5000D21C05C08A3F31F40E94D21C819580930C
+:103A6000E80108958B3F21F40E94D21C819504C087
+:103A70008C3F29F40E94D21C8093E9010895843F71
+:103A800021F48091E501816017C0853F21F4809188
+:103A9000E501826011C0863F21F48091E5018460D8
+:103AA0000BC0873F21F48091E501886005C0883F05
+:103AB00031F48091E50180618093E50108958D3FA7
+:103AC00021F48091E30181600BC08E3F21F480914D
+:103AD000E301826005C08F3F29F48091E301846097
+:103AE0008093E3010895803F39F48091E70187FFD7
+:103AF0006CC01092E70169C0813F29F48091E70111
+:103B00001816BCF362C09091E601823F29F497FF3A
+:103B10005CC01092E60159C0833F19F41916CCF32A
+:103B200054C0893F41F48091E80118160CF04DC053
+:103B30001092E8014AC08A3F29F48091E80187FF8A
+:103B400044C0F6CF8B3F39F48091E90187FF3DC037
+:103B50001092E9013AC08C3F29F48091E9011816CE
+:103B6000BCF333C0843F21F48091E5018E7F17C000
+:103B7000853F21F48091E5018D7F11C0863F21F4BE
+:103B80008091E5018B7F0BC0873F21F48091E50197
+:103B9000877F05C0883F31F48091E5018F7E809357
+:103BA000E50113C08D3F21F48091E3018E7F0BC0AE
+:103BB0008E3F21F48091E3018D7F05C08F3F29F472
+:103BC0008091E3018B7F8093E3018091E601811175
+:103BD0000EC08091E70181110AC08091E801811136
+:103BE00006C08091E901811102C01092E40108959C
+:103BF00085EE91E00E941F100E94B81B9093E20195
+:103C00008093E10108951F93CF93DF938091E101A9
+:103C10009091E2010E94C41BAC019091E4019923B0
+:103C200021F02091140130E006C0209115018AE0B6
+:103C3000289F900111244217530708F486C08091F1
+:103C4000E601C091E701D091E8011091E9018111ED
+:103C500007C0C11176C0D11174C0111172C075C0F6
+:103C60009F3F19F09F5F9093E401181624F40E947F
+:103C7000891C8093E6018091E60187FF05C00E94C0
+:103C8000891C81958093E6011C1624F40E94891CEE
+:103C90008093E7018091E70187FF05C00E94891C9E
+:103CA00081958093E7016091E601662339F1C09127
+:103CB000E701CC2319F1772767FD7095872F972FA0
+:103CC0000E947E2123E333E343E35FE30E94E2218A
+:103CD0000E944B216093E6016C2F772767FD70955A
+:103CE000872F972F0E947E2123E333E343E35FE393
+:103CF0000E94E2210E944B216093E7011D1624F4EB
+:103D00000E94D21C8093E8018091E80187FF05C0E2
+:103D10000E94D21C81958093E801111624F40E9420
+:103D2000D21C8093E9018091E90187FF05C00E94C0
+:103D3000D21C81958093E901DF91CF911F910C9462
+:103D4000F81D9F3F09F08ECF96CFDF91CF911F9145
+:103D50000895E5EEF1E085E0DF011D928A95E9F72F
+:103D60001092E4011092E3010895833081F128F468
+:103D7000813059F08230D1F00895853009F449C07E
+:103D8000B8F1863009F456C0089580911501262FA8
+:103D900030E0280F311D2F3F310524F4680F609368
+:103DA000150108958FEF80931501089580911401F6
+:103DB000262F30E0280F311D2F3F310524F4680FE6
+:103DC0006093140108958FEF8093140108958091FA
+:103DD0001301262F30E0280F311D2F3F310524F429
+:103DE000680F6093130108958FEF80931301089576
+:103DF00080911201262F30E0280F311D2F3F310511
+:103E000024F4680F6093120108958FEF80931201DC
+:103E1000089580911101262F30E0280F311D2F3F8A
+:103E2000310524F4680F6093110108958FEF80939A
+:103E30001101089580911001262F30E0280F311DC7
+:103E40002F3F310524F4680F6093100108958FEF20
+:103E5000809310010895833011F128F4813049F0E6
+:103E6000823091F00895853081F120F18630C1F1E2
+:103E7000089580911501681720F4861B8093150121
+:103E8000089510921501089580911401681720F487
+:103E9000861B809314010895109214010895809157
+:103EA0001301681720F4861B809313010895109264
+:103EB0001301089580911201681720F4861B8093E6
+:103EC000120108951092120108958091110168174E
+:103ED00020F4861B8093110108951092110108951A
+:103EE00080911001681720F4861B809310010895BB
+:103EF0001092100108950F931F938D3109F471C032
+:103F000008F045C0803109F485C008F5873009F410
+:103F10006FC068F4863009F0ADC08091DB01817F0D
+:103F20008E7F8093DB0181E08093EB01A4C08B3016
+:103F300009F49EC08E3009F09DC08091DB0182FBA8
+:103F4000222720F991E0922790FB82F96CC08631FC
+:103F500009F48EC060F4813109F08CC00E94A11474
+:103F600090910D0181E0892780930D0181C08931F5
+:103F700009F47EC08B3109F07DC08091DB0181FBAB
+:103F8000222720F991E0922790FB81F94CC08533DC
+:103F900009F466C048F4873209F462C008F44FC0DF
+:103FA000893209F45DC066C0833438F48A3308F07E
+:103FB00044C0883309F45CC05DC0833409F450C048
+:103FC000883409F057C00E94A1140FEF13ED20E3CD
+:103FD000015010402040E1F700C000000E94131C77
+:103FE00047C00E9405210E9408100E94050940C098
+:103FF0009091DB01892F8095817080FB90F929F0E9
+:10400000966098609093DB0136C0997F977F90937C
+:10401000DB012EC08091DB0183FB222720F991E098
+:10402000922790FB83F98093DB01992309F180911A
+:10403000DB0181608093DB011BC0895301C08D517E
+:1040400041E050E060E070E08A019B0104C0000F95
+:10405000111F221F331F8A95D2F7C901B80104C06E
+:1040600061E070E080E090E00E9461180E94A1147D
+:1040700081E001C080E01F910F91089580E00895D4
+:1040800080E008958E518A3030F4E82FF0E0E65D4C
+:10409000FE4F8081089580E00895CF93C82F8091CE
+:1040A000EB01813079F018F08230E9F186C0E091BF
+:1040B0000E01F0910F018081813169F0823209F0A7
+:1040C0007EC009C0E0910E01F0910F018081813125
+:1040D00011F0823261F48C2F0E943E20811104C0C5
+:1040E0008C2F0E947B1F1DC081E090E01AC08C2F96
+:1040F0000E944020811114C0C43179F048F4CB30C3
+:1041000079F0C03109F05FC082E08093EB0108C014
+:10411000C93219F0C83321F056C01092EB0153C0D8
+:1041200081E0817052C0C93281F110F5C43169F16A
+:10413000A8F4C73009F045C08AE08093150194E1E6
+:104140009093140193E0909313018093120188E0FF
+:104150008093110188E28093100133C082EE8C0FAE
+:10416000863078F58C2F0E9442208093EA0129C086
+:10417000CE34E9F020F4CB3421F56AE013C0C13528
+:1041800079F0C235F1F461E00DC08091EA01882335
+:1041900019F01092EA0115C081E08093EB0115C07F
+:1041A00061E006C08091EA010E94B51E0AC06AE083
+:1041B0008091EA010E942B1F04C01092EB0180E065
+:1041C00004C081E002C080E0ACCFCF910895E1E867
+:1041D000F0E08081886080838081816080838FB7F8
+:1041E000F89493E09093890090ED909388008FBFAE
+:1041F0000895EFE6F0E08081826080830895EFE625
+:10420000F0E080818D7F80830895EFE6F0E090817B
+:1042100082E08927808308951F920F920FB60F9234
+:1042200011242F933F934F935F936F937F938F93BB
+:104230009F93AF93BF93EF93FF938091EC01909185
+:10424000ED0101969093ED018093EC01811103C083
+:1042500082E00E940509E091ED01E695E695F0E027
+:10426000E75FFB4FE4918091EC018E1303C080E087
+:104270000E940509FF91EF91BF91AF919F918F919E
+:104280007F916F915F914F913F912F910F900FBE52
+:104290000F901F90189504D06894B1118DC00895A7
+:1042A00070D088F09F5790F0B92F9927B751A0F0A0
+:1042B000D1F0660F771F881F991F1AF0BA95C9F7BA
+:1042C00012C0B13081F077D0B1E0089574C0672F8B
+:1042D000782F8827B85F39F0B93FCCF3869577956A
+:1042E0006795B395D9F73EF4909580957095619553
+:1042F0007F4F8F4F9F4F0895E89409C097FB3EF47E
+:1043000090958095709561957F4F8F4F9F4F992322
+:10431000A9F0F92F96E9BB279395F69587957795A0
+:104320006795B795F111F8CFFAF4BB0F11F460FF60
+:104330001BC06F5F7F4F8F4F9F4F16C0882311F0B8
+:1043400096E911C0772321F09EE8872F762F05C0CC
+:10435000662371F096E8862F70E060E02AF09A9567
+:10436000660F771F881FDAF7880F9695879597F95C
+:10437000089557FD9058440F551F59F05F3F71F055
+:104380004795880F97FB991F61F09F3F79F08795BC
+:104390000895121613061406551FF2CF4695F1DF45
+:1043A00008C0161617061806991FF1CF86957105D5
+:1043B000610508940895E894BB2766277727CB0109
+:1043C00097F908950BD078C069D028F06ED018F016
+:1043D000952309F05AC05FC01124EECFCADFA0F3C5
+:1043E000959FD1F3950F50E0551F629FF001729F8A
+:1043F000BB27F00DB11D639FAA27F00DB11DAA1FA9
+:10440000649F6627B00DA11D661F829F2227B00DF5
+:10441000A11D621F739FB00DA11D621F839FA00D80
+:10442000611D221F749F3327A00D611D231F849FD0
+:10443000600D211D822F762F6A2F11249F57504027
+:104440008AF0E1F088234AF0EE0FFF1FBB1F661FC2
+:10445000771F881F91505040A9F79E3F510570F07B
+:1044600014C0AACF5F3FECF3983EDCF386957795B6
+:104470006795B795F795E7959F5FC1F7FE2B880F76
+:10448000911D9695879597F9089597F99F6780E80C
+:1044900070E060E008959FEF80EC089500240A9496
+:1044A0001616170618060906089500240A9412160F
+:1044B0001306140605060895092E0394000C11F442
+:1044C000882352F0BB0F40F4BF2B11F460FF04C0EF
+:1044D0006F5F7F4F8F4F9F4F089597FB072E16F406
+:1044E000009407D077FD09D00E94872207FC05D0F1
+:1044F0003EF4909581959F4F0895709561957F4FFB
+:104500000895EE0FFF1F0590F491E02D0994AA1B6A
+:10451000BB1B51E107C0AA1FBB1FA617B70710F0AE
+:10452000A61BB70B881F991F5A95A9F780959095E0
+:10453000BC01CD010895F999FECF92BD81BDF89AD5
+:10454000992780B50895A8E1B0E042E050E00C94CE
+:10455000C322262FF999FECF92BD81BDF89A01970B
+:1045600000B4021639F01FBA20BD0FB6F894FA9ABB
+:10457000F99A0FBE08950196272F0E94AA220C9443
+:10458000A922DC01CB01FC01F999FECF06C0F2BDE6
+:10459000E1BDF89A319600B40D9241505040B8F701
+:0645A0000895F894FFCF1E
+:1045A60002200709950972093E090A090101C80195
+:1045B60028080A03140A404D3639C9037C0346030A
+:1045C6000D03A002B902D202EB02010203040506A2
+:0445D60007080900C9
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/keymap.c b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/keymap.c new file mode 100644 index 000000000..dedac694e --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/keymap.c @@ -0,0 +1,74 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 +#define QWRT 1 + +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_LCTL, 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, + /*-*/ TG(QWRT), 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 + ), + [QWRT] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_E, KC_R, KC_T, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_D, KC_F, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_TRNS, KC_TRNS, + /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ /*-*/ KC_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_I, KC_O, KC_P, KC_TRNS, + /*-*/ /*-*/ KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_TRNS, + /*-*/ KC_TRNS, KC_N, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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) { + 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 QWRT: + ergodox_right_led_1_on(); + break; + default: + break; + } +}; diff --git a/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/readme.md b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/readme.md new file mode 100644 index 000000000..0e78c130b --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/readme.md @@ -0,0 +1,34 @@ +# Roman's Layout + +There are two layers: + +- **BASE** is [Norman layout](https://normanlayout.info/). +- **QWRT** is QWERTY. + +[![keyboard-layout](romanzolotarev-norman-qwerty-osx.png)](http://www.keyboard-layout-editor.com/#/gists/3b236f450da474dc506a5a80390c3cc7) + +## Switching + +- Tap `QWRT` to toggle **QWRT**. + +## LEDs + +- Red: QWRT is on. + +## 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 + +Both 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/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.png b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.png Binary files differnew file mode 100644 index 000000000..34762ecb7 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/romanzolotarev-norman-qwerty-osx/romanzolotarev-norman-qwerty-osx.png diff --git a/keyboards/ergodox_ez/keymaps/sneako/README.md b/keyboards/ergodox_ez/keymaps/sneako/README.md new file mode 100644 index 000000000..8dd110ee6 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/sneako/README.md @@ -0,0 +1,6 @@ +# ergodox_keymap + +Based on the default Ergodox EZ firmware + +Replaced the left side Bksp with a Crtl/Esc, this really helps in vim. +Removed the Ctrls from the Z and / keys. diff --git a/keyboards/ergodox_ez/keymaps/sneako/compiled.hex b/keyboards/ergodox_ez/keymaps/sneako/compiled.hex new file mode 100644 index 000000000..d32589092 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/sneako/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4
+:100010000C94BE020C94BE020C94BE020C94BE0260
+:100020000C94BE020C94BE020C94620D0C94340E1F
+:100030000C94BE020C94BE020C94BE020C94BE0240
+:100040000C94BE020C943E220C94BE020C94BE0290
+:100050000C94BE020C94D11B0C94BE020C94BE02F4
+:100060000C94BE020C94BE020C94BE020C94BE0210
+:100070000C94BE020C94BE020C94BE020C94BE0200
+:100080000C94BE020C94BE020C94BE020C94BE02F0
+:100090000C94BE020C94BE020C94BE020C94BE02E0
+:1000A0000C94BE020C94BE020C94BE02A10EC30EB0
+:1000B000B10FC30EB10F080F2B0FB10F800F930FAD
+:1000C0006212621291129112C712E71218141814D8
+:1000D000F2121814A213A2130914181418141214EB
+:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300
+:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0
+:10010000C113CE13D513DC13E6130000F0A12E00AB
+:100110004C002971E100354100001E00140004006C
+:100120001D0034004D001F001A0016001B00E104E2
+:100130002A00200008000700060050002C002100C3
+:100140001500090019004F004A00220017000A009C
+:10015000050000006574500001540000007F00009D
+:10016000E3004F000154000000770000E20023008C
+:100170001C000B00110000002971240018000D0064
+:10018000100052004B0025000C000E0036005100FC
+:100190002800260012000F0037002F002B00270038
+:1001A00013003342380030004E002D003100347807
+:1001B000E500C10000000100010001000100010094
+:1001C00000003A001E0220022202010001003B0052
+:1001D0001F0221022302010001003C002F0226021F
+:1001E0002F00010001003D00300227023000010015
+:1001F00001003E003102350035020000010001001F
+:1002000001000000010000000100010001000000E9
+:100210000100000001003F005200510024020000D4
+:1002200001004000240021001E00010001004100E7
+:10023000250022001F003700010042002600230095
+:10024000200027000100430025022E0231002E006D
+:100250000100440045000100010001000000010010
+:100260000100010001000100000001000100010087
+:1002700001000100010001000100F2000100010085
+:1002800001000100F000F1000100F4000100010094
+:100290000100F3000100F500010001000100010070
+:1002A0000100000001000100010000000100000049
+:1002B0000100010001000000010000000100010038
+:1002C0000100010001000000010001000100010027
+:1002D0000100A9000100010001000100AC00AA001A
+:1002E000B600010001000100AB00A8000100010000
+:1002F0000100010001000100010001000100AE0049
+:1003000001000100000016034500720067006F0045
+:1003100044006F007800200045005A0000001603DA
+:100320004500720067006F0044006F0078002000F5
+:1003300045005A0000000403090409026D0004018D
+:1003400000A0FA09040000010301010009211101C4
+:100350000001223F000705810308000A090401008B
+:100360000103010200092111010001224D000705CE
+:10037000820308000A0904020001030000000921A9
+:10038000110100012236000705830308000A090451
+:1003900003000103000000092111010001223900BE
+:1003A000070584031000011201100100000008ED90
+:1003B000FE071301000102000105010906A1010564
+:1003C0000719E029E7150025019508750181020547
+:1003D000081901290595057501910295017503918B
+:1003E0000105071900297715002501957875018108
+:1003F00002C005010980A101850216010026B7008F
+:100400001A01002AB700751095018100C0050C097A
+:1004100001A1018503160100269C021A01002A9CF5
+:1004200002751095018100C005010902A1010901B1
+:10043000A10005091901290515002501950575017A
+:10044000810295017503810105010930093115818A
+:10045000257F95027508810609381581257F95014C
+:1004600075088106050C0A38021581257F950175EE
+:10047000088106C0C005010906A101050719E02988
+:10048000E715002501950875018102950175088120
+:100490000105081901290595057501910295017558
+:1004A0000391010507190029FF150025FF95067521
+:1004B000088100C0000000000000000000000001F2
+:1004C0000204060A0F17202C3A4A5D71879DB3C7B4
+:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF
+:1004E0003A2C20170F0A0604020100000000000049
+:1004F0000000000011241FBECFEFDAE0DEBFCDBF49
+:1005000004B603FE24C08091FB019091FC01A091F0
+:10051000FD01B091FE018730904BA740B04BB9F47C
+:100520001092FB011092FC011092FD011092FE014D
+:1005300014BE84B7877F84BF88E10FB6F894809398
+:100540006000109260000FBEE0E0FFE3099511E04B
+:10055000A0E0B1E0EAE0F8E402C005900D92A43317
+:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0
+:10057000B107E1F70E94A60A0C9403240C94000032
+:100580001092B9008AE08093B800089594EA90939D
+:10059000BC009091BC0097FFFCCF9091B900987F70
+:1005A000983021F0903111F081E008958093BB00E4
+:1005B00084E88093BC008091BC0087FFFCCF8091D1
+:1005C000B900887F883111F0803471F780E0089598
+:1005D00084E98093BC008091BC0084FDFCCF089529
+:1005E0008093BB0084E88093BC008091BC0087FFAF
+:1005F000FCCF9091B900987F81E0983209F480E0B7
+:10060000089584E88093BC008091BC0087FFFCCFF4
+:100610008091BB00089580910101811115C080E493
+:100620000E94C6028093010181110CC082E10E94E8
+:10063000F00280930101811105C08FEF0E94F0024A
+:10064000809301010E94E80284B1807F84B985B162
+:10065000807F85B98AB1837F8AB98BB1837F8BB95B
+:100660003E98469808950E94C604809301010E9416
+:100670000B0380B38C7080BB81B3836F81BBA5E318
+:10068000B1E0E3E4F1E08EE08E0F11921D928E1343
+:10069000FCCF0C94B004BF92CF92DF92EF92FF9206
+:1006A0000F931F93CF93DF9380910101882379F0FB
+:1006B000809134018F5F80933401811108C00E94C2
+:1006C000C60480930101811102C00E94580405E311
+:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407
+:1006E000E394F12CC730D10500F58091010181110F
+:1006F00064C080E40E94C60280930101811112C08F
+:1007000082E10E94F0028093010181110BC0C701B8
+:100710000C2E01C0880F0A94EAF780950E94F0021F
+:10072000809301010E94E80248C0CA30A1F028F479
+:10073000C83059F0C93061F005C0CC3089F070F094
+:10074000CD3089F0209A289810C0219A29980DC0A0
+:10075000229A2A980AC0239A2B9807C0529A01C05D
+:10076000539A5B9802C03E9A469890EA9A95F1F7A0
+:100770009FB1799902C082E001C080E091709D250F
+:10078000982B7C9902C084E001C080E0892B7D9980
+:1007900002C038E001C030E0832B7E9902C020E126
+:1007A00001C020E0822B9FB19095991F9927991F36
+:1007B0009295990F907E892B0FC080910101811134
+:1007C00049C080E40E94C60280930101882379F128
+:1007D000B12C0E94E8028B2DF8019081981719F036
+:1007E0008083C09200010E940B0321960F5F1F4F70
+:1007F000CE30D10509F076CF80910001882361F1D8
+:10080000815080930001882339F08FE99FE00197A0
+:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F
+:10082000CF01825F91919D938E13FCCF15C083E120
+:100830000E94F002809301018111CACF81E40E94DD
+:10084000C602809301018111C3CF0E940103B82E1B
+:10085000B094BFCF80E0C0CF0E94560481E0DF910A
+:10086000CF911F910F91FF90EF90DF90CF90BF90AD
+:100870000895E82FF0E0ED5BFE4F80810895089524
+:100880000F931F93CF93DF93C3E4D1E010E00C2FBD
+:10089000025F899190E00E94F71A180F0C13F9CFAC
+:1008A000812FDF91CF911F910F9108950C94260510
+:1008B00056985E9825982D9826982E9827982F98C8
+:1008C0008FEF90E0909389008093880090938B0045
+:1008D00080938A0090938D0080938C00259A2D9AA6
+:1008E0002FEF80E792E0215080409040E1F700C078
+:1008F0000000269A2E9A2FEF80E792E02150804048
+:100900009040E1F700C00000279A2F9A2FEF80E770
+:1009100092E0215080409040E1F700C0000025980F
+:100920002D982FEF80E792E0215080409040E1F732
+:1009300000C0000026982E982FEF80E792E021500B
+:1009400080409040E1F700C0000027982F9856980B
+:100950005E9825982D9826982E9827982F98089578
+:1009600089EA8093800089E08093810024982C9804
+:100970003F988AB18F748AB96E98479A8BB1806B11
+:100980008BB9769A0E9458040C94250580E28093D6
+:1009900001018091510181110EC00E94C00281E0CD
+:1009A000809351012FEF83ED90E3215080409040E0
+:1009B000E1F700C0000080E40E94C60280930101BC
+:1009C00081112EC00E94F00280930101811128C084
+:1009D0000E94F00280930101811122C08FE30E94E6
+:1009E000F0028093010181111BC00E94E80280E4A3
+:1009F0000E94C60280930101811112C08CE00E9406
+:100A0000F0028093010181110BC00E94F0028093DB
+:100A10000101811105C08FE30E94F0028093010162
+:100A20000E94E80280910101089561110BC0FC0150
+:100A30008281882321F085EE0E94061103C085EE95
+:100A40000E94CE1180E090E0089508956091BD016C
+:100A50007091BE018091BF019091C0010E94031B63
+:100A600056985E9825982D9826982E9827982F9816
+:100A7000813019F0823021F00895259A2D9A089539
+:100A8000269A2E9A089581E0089581E008950C94A5
+:100A9000450508950F931F93CF93DF938C01FC01BD
+:100AA000C081D181CE010E947C19BE010E94F30554
+:100AB000EC01B8010E944705882309F48DC0F801B4
+:100AC0008281882309F44AC080915D0181111FC091
+:100AD000C431F0E5DF0709F051C00E94490581E00B
+:100AE00080935D010E949B1B90935C0180935B014E
+:100AF0001092540110925601109255011092580113
+:100B00001092570110925A011092590165C08091BC
+:100B10005B0190915C010E94A71B883C910570F4D9
+:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB
+:100B3000D183C0838F5F809354014EC0C43880E559
+:100B4000D80721F0C538D04501F13AC0F8018281BB
+:100B5000882341F01092520182E01EC0C438E0E5C3
+:100B6000DE0759F580915201811106C086E20E948C
+:100B7000061186E20E94CE1182E01CC0C438F0E566
+:100B8000DF0741F3C538D045D9F4F80182818823C5
+:100B900031F01092530180E20E941D121DC080911D
+:100BA0005301811106C087E20E94061187E20E946C
+:100BB000CE1180E20E9424120FC0C538D04529F31F
+:100BC00081E08093520180935301C801DF91CF915E
+:100BD0001F910F910C94430580E0DF91CF911F91FD
+:100BE0000F910895089596E0799FF001112494E5FE
+:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F
+:100C0000E25FFE4F859194910895880F991FFC0132
+:100C1000E657F040859194910895880F991FFC0143
+:100C2000E65FFE4F8591949108950F931F93CF93A4
+:100C3000DF93EC01811520E3920750F5C11580E2A6
+:100C4000D80708F0C3C0CB3BD10590F4C83AD10512
+:100C500008F06AC0C53AD10508F05BC0C430D105C0
+:100C600008F0D0C1219709F0CAC101E010E00AC222
+:100C7000CF3FD10511F008F0C5C1C03FD10508F044
+:100C8000A2C0CE01805E9109089708F4BBC1B7C12C
+:100C9000C13090E5D90709F4A2C020F5C0318FE436
+:100CA000D80770F4C11590E4D90708F094C0C115B5
+:100CB00021E3D20708F0A3C1DD278E01106CE2C149
+:100CC000C115D04509F09BC10E9483148FEF94E3B6
+:100CD0002CE0815090402040E1F700C000000E94CD
+:100CE000F61BD0C1C11597E5D90758F4C03121E5ED
+:100CF000D20708F01CC1C43180E5D80708F475C0DC
+:100D00007EC1CE0190578115904108F078C1DF7007
+:100D100073C1C53AD10509F477C1C63AD10509F0C6
+:100D200076C102E810E4AEC1C83AD10509F472C137
+:100D3000C93AD10509F471C1CA3AD10509F470C1A3
+:100D4000CB3AD10509F46FC1CC3AD10509F46EC193
+:100D5000CD3AD10509F46DC1C03BD10509F46CC190
+:100D6000CE3AD10509F46BC1CF3AD10509F46AC175
+:100D7000C13BD10509F469C1C23BD10509F468C181
+:100D8000C33BD10509F467C1C43BD10509F466C171
+:100D9000C53BD10509F465C1C63BD10509F464C161
+:100DA000C73BD10509F463C1C83BD10509F462C151
+:100DB000C93BD10509F461C1CA3BD10509F460C141
+:100DC00000E014E45FC18E0110655CC1CE019F702C
+:100DD0000E940D0658C1DF708E01106A53C18091C8
+:100DE000DA0181608093DA014DC10E949B1D81115F
+:100DF00002C00E94811D0E94B81D90E09093FB01EB
+:100E00008093FA01C23080E5D80721F48091FA017D
+:100E1000816086C0C43090E5D90721F48091FA0141
+:100E200082607EC0C63020E5D20721F48091FA01AD
+:100E3000846076C0C83080E5D80719F48091FA0143
+:100E400027C0CA3090E5D90721F48091FA0180616A
+:100E500067C0CC3020E5D20721F48091FA0180628E
+:100E60005FC0CE3080E5D80721F48091FA0180641C
+:100E700057C0C03190E5D90721F48091FA0180680C
+:100E80004FC0C23120E5D20729F48091FA01846075
+:100E9000886046C0C33080E5D80721F48091FA010C
+:100EA0008E7F3EC0C53090E5D90721F48091FA01CC
+:100EB0008D7F36C0C73020E5D20721F48091FA013A
+:100EC0008B7F2EC0C93080E5D80719F48091FA01D4
+:100ED00026C0CB3090E5D90721F48091FA018F7EAE
+:100EE0001FC0CD3020E5D20721F48091FA018F7D1B
+:100EF00017C0CF3080E5D80721F48091FA018F7BAD
+:100F00000FC0C13190E5D90721F48091FA018F77A4
+:100F100007C0C331D04531F48091FA018B7F877FC0
+:100F20008093FA018091FA010E94BC1DABC08D2F05
+:100F300099278F70992781309105D9F49E012370EC
+:100F4000332702C0880F991F2A95E2F79C688E010B
+:100F500044E0000F111F4A95E1F700271370802B22
+:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA
+:100F70002FC08230910531F4DC2FCC278E01016F18
+:100F8000106A80C08330910569F4CE01837099277F
+:100F900001E010E002C0000F111F8A95E2F7C801BE
+:100FA0009C680FC084309105B9F4CE0183709927F5
+:100FB00001E010E002C0000F111F8A95E2F7C8019E
+:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029
+:100FD0008C010C2B1D2B56C08530910531F4DC2F74
+:100FE000CC278E01046F106A4DC0069709F04AC0E5
+:100FF000CF71DD27DC2FCC278E01106243C000E0CB
+:1010000010E040C08E013EC001E810E43BC003E8A0
+:1010100010E438C002EE14E435C009EE14E432C026
+:101020000AEE14E42FC005EB14E42CC006EB14E424
+:1010300029C007EB14E426C00CEC14E423C00DEC2B
+:1010400014E420C003E815E41DC00AE815E41AC042
+:1010500002E915E417C004E915E414C001E216E43E
+:1010600011C003E216E40EC004E216E40BC005E270
+:1010700016E408C006E216E405C007E216E402C062
+:101080000AE216E4C801DF91CF911F910F910895F4
+:1010900096E0799FF001112494E5899FE00DF11D00
+:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149
+:1010B0009491803E9105E0F4803C910558F5813390
+:1010C000910509F46FC048F48932910509F463C0B1
+:1010D0008A32910509F46DC072C089339105E9F037
+:1010E00082389105D1F08533910509F44DC067C070
+:1010F000833E910581F138F4803E9105B9F0823E3E
+:101100009105D9F05CC0863E910561F1873E91055D
+:10111000A1F155C00E94050608952091FA0120FD15
+:1011200002C021FF4CC080EE90E049C08091FA01DE
+:1011300080FFF9CF89E390E042C08091FA0182FFFD
+:101140000EC08091FA0184FF03C080E090E037C0B8
+:1011500083EE90E034C08091FA0182FFF2CF82EEFC
+:1011600090E02DC08091FA0183FF0BC08091FA01BD
+:1011700084FDEBCF87EE90E022C08091FA0183FFDF
+:10118000F5CF86EE90E01BC08091FA0185FF07C085
+:1011900089E290E014C08091FA0185FFF9CF85E3E0
+:1011A00090E00DC08091FA0186FF07C08AE290E0CE
+:1011B00006C08091FA0186FFF9CF81E390E00E949A
+:1011C0001506089508950C94E20880916E01089523
+:1011D000CF93DF9300D01F92CDB7DEB79C018091F3
+:1011E000F101843019F593E099833B832A8390932E
+:1011F000E9008FEF9091E800815095FD06C095EDD4
+:101200009A95F1F700008111F5CF8091E80085FFF4
+:101210000DC040E050E063E070E0CE0101960E9416
+:10122000520B8091E8008E778093E8000F900F902A
+:101230000F90DF91CF910895CF93DF9300D01F924D
+:10124000CDB7DEB72091F101243021F522E02983CA
+:101250009B838A8383E08093E9008FEF9091E8007D
+:10126000815095FD06C095ED9A95F1F7000081112A
+:10127000F5CF8091E80085FF0DC040E050E063E0CD
+:1012800070E0CE0101960E94520B8091E8008E77AB
+:101290008093E8000F900F900F90DF91CF91089509
+:1012A0002091F1012430F1F422E02093E9002FEFA6
+:1012B0003091E800215035FD06C035ED3A95F1F743
+:1012C00000002111F5CF2091E80025FF0BC040E080
+:1012D00050E065E070E00E94520B8091E8008E774C
+:1012E0008093E8000895CF93DF93EC019091F10192
+:1012F000943009F046C080910C018823D9F0809188
+:101300000D018823B9F09093E9008FEF9091E800E8
+:10131000815095FD06C095E19A95F1F70000811185
+:10132000F5CF8091E80085FF2CC040E050E060E1FF
+:1013300070E017C081E08093E9008FEF9091E800A2
+:10134000815095FD06C095ED9A95F1F70000811149
+:10135000F5CF8091E80085FF14C040E050E068E0E0
+:1013600070E0CE010E94520B8091E8008E7780934E
+:10137000E80080E1FE01AEE5B1E001900D928A95B2
+:10138000E1F7DF91CF9108958091F001811109C0BB
+:101390000E94E70C0E94440D8091E20084608093DB
+:1013A000E20008951092F001089508950C942B2204
+:1013B0000E948C1B0E9431220E94EA0F0C94E308C9
+:1013C00042E061EC81E00E94610C42E061EC82E06D
+:1013D0000E94610C42E061EC83E00E94610C42E1FA
+:1013E00061EC84E00C94610C8091F301833009F48A
+:1013F00055C030F4813071F0823009F48EC0089508
+:101400008A3009F47AC08B3009F460C0893009F061
+:101410009CC020C08091F201813A09F096C0809171
+:10142000E800877F8093E8008091F6019091F701B2
+:10143000892B21F460E18EE591E003C060E080E05B
+:1014400090E070E00E949D0B8091E8008B77809384
+:10145000E80008958091F201813209F076C0809110
+:10146000F6019091F701009719F0039709F06DC00C
+:101470008091E800877F8093E8008091E80082FDFA
+:1014800005C08091F1018111F8CF5FC08091F1001A
+:1014900080936E018091E8008B7753C08091F201B8
+:1014A000813A09F052C08091F6019091F701892BA1
+:1014B00009F04BC08091E800877F8093E80080911D
+:1014C000E80080FFFCCF80910C0136C08091F201D2
+:1014D0008132D9F58091F6019091F701892BA9F518
+:1014E0008091E800877F8093E8000E94960C8091AD
+:1014F000F40180930C010C9483148091F2018132E9
+:1015000021F58091E800877F8093E8000E94960C87
+:101510008091F50180936F0108958091F201813AE5
+:10152000A1F48091E800877F8093E8008091E80033
+:1015300080FFFCCF80916F018093F1008091E800E3
+:101540008E778093E8000C94960C089584B7877F7B
+:1015500084BF88E10FB6F894809360001092600019
+:101560000FBE90E080E80FB6F894809361009093EE
+:1015700061000FBE0E9439100E94E70C0E94440DCA
+:101580008091E20084608093E20078940E94CA0F08
+:101590000E943B1082E091E00E94E50F0E94192218
+:1015A0008091F101853069F40E94531B8091EF0115
+:1015B0008823B1F30E947E1B882391F30E943C0B89
+:1015C000EFCF0E944110ECCF292F33272330310574
+:1015D000C9F064F42130310581F02230310509F081
+:1015E00043C08DE690E02AE333E042C0213231056A
+:1015F000F1F02232310541F137C082E190E027EA73
+:1016000033E036C099278130910541F08230910551
+:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4
+:1016200002C0E6E0F3E0849190E09F0121C06430C5
+:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5
+:10164000318189E090E014C0643070F470E0FB01F7
+:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47
+:10166000FE4F808190E004C080E090E020E030E018
+:10167000FA0131832083089580E189BD82E189BD2B
+:1016800009B400FEFDCF8091D8008F7D8093D800F3
+:101690008091E00082608093E0008091E00081FD15
+:1016A000FCCF0895CF92DF92EF92FF920F931F939A
+:1016B000CF93DF93EC018B016A010E94B50C81117D
+:1016C00033C0C114D10439F0F60180819181081B27
+:1016D000190BC80FD91FE12CF12C0115110519F1B7
+:1016E0008091E80085FD16C08091E8008E77809398
+:1016F000E800C114D10449F0F60180819181E80E1F
+:10170000F91EF182E08285E00FC00E94B50C8823AB
+:1017100021F30AC089918093F10001501109FFEF74
+:10172000EF1AFF0ADACF80E0DF91CF911F910F917E
+:10173000FF90EF90DF90CF9008952091F8013091C5
+:10174000F9012617370748F06115710539F4209122
+:10175000E8002E772093E80001C0B90140E0611550
+:101760007105A9F12091F101222309F443C025302C
+:1017700009F442C02091E80023FD40C02091E80018
+:1017800022FD32C02091E80020FFE9CF4091F30014
+:101790002091F20030E0342BFC01CF01611571057E
+:1017A00059F02830310540F481918093F100615067
+:1017B00071092F5F3F4FF1CF41E02830310509F02B
+:1017C00040E02091E8002E772093E800C8CF411137
+:1017D000C9CF0AC08091F101882361F0853061F0A2
+:1017E0008091E80083FD0AC08091E80082FFF2CF7B
+:1017F00080E0089582E0089583E0089581E00895EF
+:101800002091F8013091F9012617370748F061154A
+:10181000710539F42091E8002E772093E80001C08B
+:10182000B901FC0120E06115710591F18091F10190
+:10183000882309F440C0853009F43FC08091E80056
+:1018400083FD3DC08091E80082FD2FC08091E800BB
+:1018500080FFE9CF2091F3008091F20090E0922B7D
+:101860006115710559F08830910540F42491209359
+:10187000F1003196615071090196F2CF21E008978D
+:1018800009F020E08091E8008E778093E800CBCFCC
+:101890002111CCCF0AC08091F101882361F08530FD
+:1018A00061F08091E80083FD0AC08091E80082FF2A
+:1018B000F2CF80E0089582E0089583E0089581E00A
+:1018C0000895982F973058F59093E900981739F0BC
+:1018D0007091EC002091ED005091F00003C0242F96
+:1018E000762F50E021FF19C03091EB003E7F3093FE
+:1018F000EB003091ED003D7F3093ED003091EB0037
+:1019000031603093EB007093EC002093ED00509326
+:10191000F0002091EE0027FF07C09F5FD3CF8F70AC
+:101920008093E90081E0089580E008958091F201BC
+:1019300087FF11C08091E80082FD05C08091F10110
+:101940008111F8CF11C08091E8008B770BC0809196
+:10195000F101882349F08091E80080FFF8CF809161
+:10196000E8008E778093E80008952091E40030919C
+:10197000E50095E64091EC00842F817040FF22C085
+:101980008091E80080FD1CC08091F101882391F0D6
+:10199000853091F08091EB0085FD10C04091E4000E
+:1019A0005091E5004217530729F39A01915011F71E
+:1019B00084E0089582E0089583E0089581E0089529
+:1019C00080E008954091E80042FFDECF08950E9434
+:1019D000550D0E945D0DE0EEF0E080818160808316
+:1019E000E8EDF0E080818F77808319BCA7EDB0E04F
+:1019F0008C918E7F8C9380818F7E80831092F001FA
+:101A000008950F931F93CF93DF930E94550D0E946B
+:101A10005D0DC8EDD0E088818F77888388818068EC
+:101A2000888388818F7D888319BC1092F101109280
+:101A3000ED011092EF011092EE0100EE10E0F801BE
+:101A400080818B7F808388818160888342E060E031
+:101A500080E00E94610CE1EEF0E080818E7F808367
+:101A6000E2EEF0E080818160808380818860808305
+:101A7000F80180818E7F8083888180618883DF91F7
+:101A8000CF911F910F910895E8EDF0E080818F7E56
+:101A90008083E7EDF0E080818160808384E082BF15
+:101AA00081E08093F0010C94010DE8EDF0E080817D
+:101AB0008E7F80831092E20008951092DA001092D7
+:101AC000E10008951F920F920FB60F9211242F93E9
+:101AD0003F934F935F936F937F938F939F93AF93B6
+:101AE000BF93EF93FF938091E10082FF0BC0809141
+:101AF000E20082FF07C08091E1008B7F8093E100CC
+:101B00000E94C90F8091DA0080FF1FC08091D80029
+:101B100080FF1BC08091DA008E7F8093DA00809175
+:101B2000D90080FF0DC080E189BD82E189BD09B483
+:101B300000FEFDCF81E08093F1010E94C40905C041
+:101B400019BC1092F1010E94D2098091E10080FF3E
+:101B500019C08091E20080FF15C08091E2008E7F65
+:101B60008093E2008091E20080618093E2008091A6
+:101B7000D80080628093D80019BC85E08093F10181
+:101B80000E94D6098091E10084FF30C08091E2007C
+:101B900084FF2CC080E189BD82E189BD09B400FECB
+:101BA000FDCF8091D8008F7D8093D8008091E10097
+:101BB0008F7E8093E1008091E2008F7E8093E2002F
+:101BC0008091E20081608093E2008091ED018823A2
+:101BD00011F084E007C08091E30087FD02C081E03E
+:101BE00001C083E08093F1010E94D8098091E10057
+:101BF00083FF29C08091E20083FF25C08091E1002E
+:101C0000877F8093E10082E08093F1011092ED01E3
+:101C10008091E1008E7F8093E1008091E2008E7FD1
+:101C20008093E2008091E20080618093E20042E0D4
+:101C300060E080E00E94610C8091F00088608093F9
+:101C4000F0000E94D509FF91EF91BF91AF919F9154
+:101C50008F917F916F915F914F913F912F910F9055
+:101C60000FBE0F901F9018951F920F920FB60F92F4
+:101C700011242F933F934F935F936F937F938F9391
+:101C80009F93AF93BF93CF93DF93EF93FF93C09155
+:101C9000E900CF708091EC00D82FD17080FDD0E8A2
+:101CA0001092E9008091F000877F8093F000789493
+:101CB0000E94780E1092E9008091F0008860809375
+:101CC000F000CD2BCF70C093E900FF91EF91DF9131
+:101CD000CF91BF91AF919F918F917F916F915F91C4
+:101CE0004F913F912F910F900FBE0F901F9018951D
+:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3
+:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115
+:101D1000F10091938E13FBCF0E94F4098091E800AB
+:101D200083FF1FC18091F2019091F301492F50E090
+:101D30004A30510508F015C1FA01EA5AFF4F0C94D8
+:101D4000B323803881F0823809F00BC18091F6010D
+:101D50008F708093E9008091EB0085FB882780F9E4
+:101D60001092E90006C08091EE019091EF0191116F
+:101D700082609091E800977F9093E8008093F10053
+:101D80001092F100C8C0282F2D7F09F0EAC08823E7
+:101D900019F0823061F0E5C08091F401813009F0E2
+:101DA000E0C0933009F080E08093EF012BC0809178
+:101DB000F401811127C08091F6018F7009F4D1C020
+:101DC0008093E9002091EB0020FF1CC0933021F4A8
+:101DD0008091EB00806214C09091EB009061909331
+:101DE000EB0021E030E0A90102C0440F551F8A95A5
+:101DF000E2F74093EA001092EA008091EB008860DD
+:101E00008093EB001092E9008091E800877F86C004
+:101E10008111A7C01091F4011F778091E3008078B1
+:101E2000812B8093E3008091E800877F8093E80016
+:101E30000E94960C8091E80080FFFCCF8091E30027
+:101E400080688093E300111102C082E001C083E04A
+:101E50008093F10186C08058823008F082C0809162
+:101E6000F4019091F5018C3D53E0950779F583E0FD
+:101E70008A838AE289834FB7F894DE01139620E0C3
+:101E80003EE051E2E32FF0E050935700E49120FF51
+:101E900003C0E295EF703F5FEF708E2F90E0EA3065
+:101EA00010F0C79601C0C0968D939D932F5F24318B
+:101EB00049F74FBF8091E800877F8093E8006AE28E
+:101EC00070E0CE0101960E949D0B14C0AE014F5FE1
+:101ED0005F4F6091F6010E94E40ABC01009709F48B
+:101EE00040C09091E800977F9093E80089819A81A3
+:101EF0000E94000C8091E8008B778093E80031C04D
+:101F0000803879F58091E800877F8093E8008091A0
+:101F1000ED018093F1008091E8008E778093E800D6
+:101F20000E94960C1EC081111CC09091F401923049
+:101F3000C0F48091E800877F8093E8009093ED01E2
+:101F40000E94960C8091ED01811106C08091E30002
+:101F500087FD02C081E001C084E08093F1010E940E
+:101F6000E0098091E80083FF0AC08091E800877F44
+:101F70008093E8008091EB0080628093EB00AA964A
+:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A
+:101F900008950895CF938091F1018823A1F0C09115
+:101FA000E900CF709091EC00892F817090FD80E85E
+:101FB000C82B1092E9008091E80083FD0E94780E02
+:101FC000CF70C093E900CF910895909375018093ED
+:101FD00074010895E0917401F0917501309721F03A
+:101FE0000190F081E02D099480E00895E091740162
+:101FF000F0917501309721F00280F381E02D099472
+:102000000895E0917401F0917501309721F00480FA
+:10201000F581E02D099408952091720130917301AA
+:102020008217930771F09093730180937201E0918E
+:102030007401F0917501309721F00680F781E02D51
+:1020400009940895209170013091710182179307CE
+:1020500071F09093710180937001E0917401F0919F
+:102060007501309721F00084F185E02D09940895E1
+:1020700008950C9438100E94921B0E9433030C9414
+:10208000541C9F92AF92BF92CF92DF92EF92FF9239
+:102090000F931F93CF93DF9300D000D000D0CDB724
+:1020A000DEB70E944B030DE010E0AA24A394B12CEC
+:1020B000902E802F0E943904980129583E4F6901C3
+:1020C000F901F080F826A1F40150110988F78FEF8B
+:1020D00089838A831B820E949B1B8160782F9D834A
+:1020E0008C8349815A816B818D810E94D8102FC0C9
+:1020F0009091DA0191FF04C08E830E943F048E818B
+:1021000025E030E0A501022E01C0440F0A94EAF751
+:10211000E42E4F21C1F029839A828E2191E009F4A7
+:1021200090E09B830E949B1B8160782F9D838C8312
+:1021300049815A816B818D810E94D810F60180817E
+:10214000E826E08204C021503109E0F6BDCF0E94AC
+:102150003B1F109176010E94EA0F1817B9F00E94F8
+:10216000EA0F8093760126960FB6F894DEBF0FBE75
+:10217000CDBFDF91CF911F910F91FF90EF90DF9036
+:10218000CF90BF90AF909F900C94E30826960FB627
+:10219000F894DEBF0FBECDBFDF91CF911F910F919D
+:1021A000FF90EF90DF90CF90BF90AF909F900895F9
+:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82
+:1021C0000FBECDBF4F83588769877A878B87DE0123
+:1021D000119686E0FD0111928A95E9F785E0FE01EE
+:1021E000379601900D928A95E1F749815A816B816A
+:1021F0007C818D819E810E9421172B960FB6F894C9
+:10220000DEBF0FBECDBFDF91CF910895CF9388235E
+:1022100009F4C2C0C82F823859F40E94EA0F81FD28
+:10222000BBC089E30E94FB190E94C81A89E30CC055
+:10223000833879F40E94EA0F80FDAEC083E50E94E6
+:10224000FB190E94C81A83E50E943D1ACF910C9495
+:10225000C81A843859F40E94EA0F82FD9DC087E4B1
+:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6
+:10227000813A48F48C2F0E947E2181118DC08C2FD1
+:102280000E94FB19E3CF80E28C0F883048F4C770BE
+:1022900081E001C0880FCA95EAF70E94811AD6CF63
+:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB
+:1022B00083E890E005C081E890E002C082E890E009
+:1022C000CF910C940C1088E58C0F833108F064C01A
+:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118
+:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186
+:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106
+:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173
+:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB
+:1023200038C082EE90E035C089EE90E032C08AEE8F
+:1023300090E02FC085EB90E02CC086EB90E029C0A8
+:1023400087EB90E026C08CEC90E023C08DEC90E011
+:1023500020C083E891E01DC08AE891E01AC082E9BC
+:1023600091E017C084E991E014C081E292E011C0CD
+:1023700083E292E00EC084E292E00BC085E292E03C
+:1023800008C086E292E005C087E292E002C08AE2DD
+:1023900092E0CF910C942210CF910895882309F4F4
+:1023A0004BC0823859F40E94EA0F81FF45C089E38F
+:1023B0000E94FB190E94C81A89E30CC0833871F48B
+:1023C0000E94EA0F80FF38C083E50E94FB190E943B
+:1023D000C81A83E50E943D1A0C94C81A843859F42F
+:1023E0000E94EA0F82FF28C087E40E94FB190E9426
+:1023F000C81A87E4EFCF9CEF980F913A58F390E218
+:10240000980F983050F4877091E001C0990F8A9529
+:10241000EAF7892F0E94871ADFCF9BE5980F933048
+:1024200020F480E090E00C940C10885A833120F462
+:1024300080E090E00C9422100895882321F00E94FF
+:10244000811A0C94C81A0895882321F00E94871AD3
+:102450000C94C81A08957F928F929F92AF92BF9268
+:10246000CF92DF92EF92FF920F931F93CF93DF9360
+:102470001F92CDB7DEB77C01C62E772EFC010581F9
+:1024800002950F70128111110E949E1A0E94F41978
+:10249000882379F0112369F080E28C0D883048F0B0
+:1024A00082E00E94DD190E94F41991E0D82ED9260D
+:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C
+:1024C0000C94B323872D807F072D0F70882311F084
+:1024D0000295007F112389F0002309F490C180E266
+:1024E0008C0D883020F4802F0E94811A03C0802F29
+:1024F0000E94911A0E94C81A82C18C2D0E94CE118E
+:10250000002309F495C180E28C0D883020F4802FDF
+:102510000E94871A03C0802F0E94971A0E94C81A2F
+:1025200087C1972D907F872D8F70903211F0829503
+:10253000807FCC2021F0F1E0CF16B1F01EC0112336
+:1025400049F0002309F414C1013009F011C10E94BF
+:10255000B11A6EC1002319F0013009F469C18983F1
+:102560000E94B41A89810AC1112321F0023008F0B7
+:102570005FC1FEC001115CC101C1112321F0002324
+:1025800009F4F6C03CC1002309F4F8C03EC1872D10
+:1025900086958695837090E0009719F0019761F019
+:1025A00047C1112321F08C2D972D937002C080E03C
+:1025B00090E00E940C103CC1112321F08C2D972D2E
+:1025C000937002C080E090E00E94221031C18C2DF7
+:1025D000112319F00E94431E02C00E94AB1E0E94EC
+:1025E000301F26C1872D837009F052C0111120C100
+:1025F0008C2D829586958770880F880F9C2D9F70F3
+:10260000892E912CA12CB12C082E04C0880C991C69
+:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041
+:1026200020E030E0B901A80104C0440F551F661F27
+:10263000771F8A95D2F7CB01BA0160957095809586
+:10264000909503C060E070E0CB01272D269526957C
+:10265000237030E02230310569F02330310589F0F4
+:10266000682979298A299B292130310571F00E9436
+:102670006918DEC0682979298A299B290E94851852
+:10268000D7C00E946918C501B4010E944D18D0C07E
+:10269000112319F0872D817001C08695882309F4D4
+:1026A000C7C08C2D829586958770880F880F9C2DCA
+:1026B0009F70892E912CA12CB12C082E04C0880C5F
+:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC
+:1026D00010E020E030E0B901A80104C0440F551F0C
+:1026E000661F771F8A95D2F7CB01BA016095709566
+:1026F0008095909503C060E070E0CB01272D269572
+:1027000026952370422F50E04230510569F0433046
+:10271000510589F0682979298A299B294130510579
+:1027200071F00E94431984C0682979298A299B295C
+:102730000E945F197DC00E944319C501B4010E9427
+:10274000271976C08C2D90E0FC01E05EF109E5319F
+:10275000F10508F050C0E059FF4F0C94B3230C2D45
+:102760000F70872D8F71112331F00E94C018802FB8
+:102770000E941D125DC00E94E118802F0E94241249
+:1027800057C0112339F0011153C0872D8F710E945A
+:1027900006194EC0023008F04BC0F7CF112339F0B4
+:1027A000872D8F710E94C01843C01123C9F3872D54
+:1027B0008F710E94E1183CC0112329F0872D8F7181
+:1027C0000E94AB1835C00E94A11832C0112351F0ED
+:1027D000172D1F71812F0E94C01863E0812F0E9466
+:1027E000D41926C081E00E94DD19023008F182E090
+:1027F0000E94DD191DC0112331F0002389F28C2DB8
+:102800000E94061115C0002391F28C2D0E94CE115A
+:102810000FC0472D4F706C2DC7010E9415050E94F7
+:10282000C51706C0472D4F706C2DC7010E94F205D9
+:10283000DD20F9F00E94D01980FD1BC0F701128243
+:102840000E94CA190E94C018C7010E9448140E9421
+:10285000CA190F90DF91CF911F910F91FF90EF90C8
+:10286000DF90CF90BF90AF909F908F907F900C940F
+:10287000E1180F90DF91CF911F910F91FF90EF9092
+:10288000DF90CF90BF90AF909F908F907F900895F2
+:102890000F931F93CF93DF93EC01888199812B8154
+:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B
+:1028B0000E944A05882371F0688179818A810E948B
+:1028C000C6198C010E947B190E944218B801CE01E2
+:1028D0000E942B12DF91CF911F910F9108950E94BA
+:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471
+:1028F000E11F0E94301F80E090E00E940C1080E0F9
+:1029000090E00C9422100E948E1A0C946F140E9476
+:10291000BB19292F22952F7030E02C3031054CF453
+:102920002A3031056CF42250310922303105A8F4E7
+:1029300007C02C30310569F02F30310551F00DC042
+:10294000803F69F018F4803E40F409C0843F29F4C8
+:1029500006C093FB882780F9089580E0089581E000
+:102960000895CF93DF9300D000D01F92CDB7DEB78C
+:102970000F900F900F900F900F90DF91CF910895CF
+:10298000CF93DF9300D000D000D0CDB7DEB726962E
+:102990000FB6F894DEBF0FBECDBFDF91CF91089583
+:1029A0001F93CF93DF93C091850116E0809186013C
+:1029B000C81799F0D0E01C9FF0011D9FF00D112465
+:1029C000E957FE4F408151816281738184819581F5
+:1029D0000E94C0142196C770E9CFDF91CF911F915B
+:1029E00008954091B7015091B8016091B90170917B
+:1029F000BA018091BB019091BC010C94C0148091EC
+:102A0000BC0182958F7009F054C08091B901882370
+:102A100009F44FC080918501A09186016091B701B2
+:102A20007091B8014091BA015091BB01B6E08A178C
+:102A300009F43FC090E041155105C1F17F3F11F409
+:102A40006F3FA1F1B89FF001B99FF00D1124E95734
+:102A5000FE4F218172132AC02081621327C0228178
+:102A6000211124C0238134812417350710F421500B
+:102A70003109241B350B283C3105C0F42091BC01E1
+:102A80002F7020612093BC0126E0289FF001299F30
+:102A9000F00D1124E457FE4F80818F708061808398
+:102AA00087EB91E00E9448140C94D0140196877033
+:102AB000BECF0895CF92DF92EF92FF920F931F93B4
+:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32
+:102AD0000FBECDBF8C0185E0F801DE011D9601908F
+:102AE0000D928A95E1F7D8014C9111965C9111975E
+:102AF00012966C9112971396CD90DC9014973091AA
+:102B0000B7017091B8018091BA019091BB01009713
+:102B100009F46BC17F3F19F43F3F09F466C1E090AF
+:102B2000B901EE2009F4C0C02091BC01C816D90635
+:102B300028F0F601E81BF90BCF0104C080959095B1
+:102B40008C0D9D1DFF24F394883C910578F0F12CA9
+:102B5000207F09F0C6C07C2DD98AC88A89890E9445
+:102B6000B11487EB91E00E944814B1C0822F807F9E
+:102B700009F046C0751314C0341312C0611110C09F
+:102B80002F7020612093BC010E94F11487EB91E02B
+:102B90000E9448148091BC01D80115968C932EC0D8
+:102BA000CD2819F15F3F11F44F3FF9F0F62E611176
+:102BB0001CC0809185012091860136E0821709F4BE
+:102BC0005AC090E0389FF001399FF00D1124E95769
+:102BD000FE4F7181571306C07081471303C0728185
+:102BE000711103C001968770E9CFF62E662309F4B0
+:102BF00018C18091BC0181608093BC01F12C11C18E
+:102C0000751308C0341306C0611104C08091BC0163
+:102C1000D801C3C04D875E878D859E856A8B0E94D3
+:102C200087146A898823E1F16623D1F12091BC01E0
+:102C3000822F82958F7090E0029774F08091B70197
+:102C40009091B80198878F831986DB86CA862C8776
+:102C5000CE0107960E94481486E0F801A7EBB1E088
+:102C600001900D928A95E1F70E94FF140E94F114E1
+:102C7000FF24F394D6C04D875E878D859E850E9484
+:102C8000BB19292F22952F7030E0223031050CF02E
+:102C9000BCC09F7009F0B6C0805E883008F4C1C027
+:102CA000C8010E944814E4CFC816D90608F453C0DE
+:102CB000F601E81BF90BCF01883C910508F450C0E0
+:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E
+:102CD000F1E086E0DF011D928A95E9F70E94F11488
+:102CE000A0C0751314C0341312C0611110C08091BC
+:102CF000BC01F8018583C8010E94481486E0E7EB17
+:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C
+:102D10005E878D859E856A8B0E9487146A898823C9
+:102D200009F4BECF662309F4BBCF2091BC01822FEA
+:102D300082958F7090E002970CF48ECF8091B7014E
+:102D40009091B8019A8389831B82DD82CC822E8385
+:102D5000CE0101967FCF809590958C0D9D1DACCFB7
+:102D6000F62E662309F49CCF75132EC034132CC0A5
+:102D70002091BC0120FD1FC0822F82958F70D9F059
+:102D8000D80115962C9315978F3049F08F5F982FA7
+:102D90009295907F822F8F70892B15968C93C80106
+:102DA0000E94481486E0F801A7EBB1E001900D9273
+:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7
+:102DC0000D928A95E1F72DC04D875E878D859E8592
+:102DD0000E948714811140CF8091BC018160809353
+:102DE000BC01C8010E9448141CC0662309F458CFD6
+:102DF0004D875E878D859E850E948714882309F400
+:102E00004FCF2ACF811148CF0CC0243031050CF0B0
+:102E100047CF9F7009F440CFF8019581907F09F06A
+:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D
+:102E3000DF91CF911F910F91FF90EF90DF90CF9096
+:102E400008951F93CF93DF93CDB7DEB72C970FB6BE
+:102E5000F894DEBF0FBECDBF4F83588769877A874E
+:102E60008B879C87CE0107960E945A15882369F0AC
+:102E70008F8198852A853B85232BF1F19F3F09F0AF
+:102E800063C08F3F09F060C037C086E0FE0137960F
+:102E9000DE01119601900D928A95E1F76F81788598
+:102EA000EA85FB85309741F17F3F11F46F3F21F1B7
+:102EB0002091860130E0C9010196877099274091E1
+:102EC000850150E08417950709F447C069837A8328
+:102ED000FD83EC8396E0929FD001939FB00D112467
+:102EE000A957BE4FFE01319601900D929A95E1F7D8
+:102EF000809386010E94D01416E080918501909104
+:102F000086018917C1F1189FC001112489579E4F6E
+:102F10000E945A15882379F1E09185011E9FF001E6
+:102F20001124E957FE4F4081518162817381848170
+:102F300095810E94C0148091850190E00196877070
+:102F4000992780938501D9CF4F81588569857A85E6
+:102F50008B859C850E94C014CFCF0E948314109251
+:102F6000860110928501E7EBF1E086E0DF011D921A
+:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45
+:102F8000CDBFDF91CF911F910895EF92FF920F93E4
+:102F90001F93CF93DF938C01009709F46CC0F12C41
+:102FA000EE24E394E8012196F8018491843740F4FB
+:102FB000843008F051C0813081F0823019F15BC05B
+:102FC000853709F444C0A8F19CE7980F903708F0C2
+:102FD00052C08F770E94CE1141C00E5F1F4FFE017D
+:102FE000C49180E28C0F883048F4C7708E2D01C0E8
+:102FF000880FCA95EAF70E94A11A14C08C2F0E946C
+:1030000006112DC00E5F1F4FFE01C49180E28C0F90
+:10301000883058F4C7708E2D01C0880FCA95EAF722
+:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3
+:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3
+:103040009FE00197F1F700C00000C150F6CF0E5F7E
+:103050001F4FFE01F49003C00E9406118E018F2DB8
+:10306000882309F49FCFEFE9FFE03197F1F700C023
+:1030700000008150F5CFDF91CF911F910F91FF900C
+:10308000EF90089508956093C1017093C2018093F9
+:10309000C3019093C4010C946F140F931F9300917C
+:1030A000C1011091C2012091C3013091C401DC0122
+:1030B000CB01802B912BA22BB32B8093C10190933A
+:1030C000C201A093C301B093C4011F910F910C944E
+:1030D0006F140F931F930091C1011091C2012091B1
+:1030E000C3013091C401DC01CB0180239123A223D1
+:1030F000B3238093C1019093C201A093C301B09305
+:10310000C4011F910F910C946F140F931F930091A2
+:10311000C1011091C2012091C3013091C401DC01B1
+:10312000CB0180279127A227B3278093C1019093D9
+:10313000C201A093C301B093C4011F910F910C94DD
+:103140006F141092BD011092BE011092BF01109237
+:10315000C0010C946F1441E050E060E070E004C0E6
+:10316000440F551F661F771F8A95D2F74093BD0104
+:103170005093BE016093BF017093C0010C946F1413
+:1031800041E050E060E070E004C0440F551F661F4E
+:10319000771F8A95D2F78091BD019091BE01A091D1
+:1031A000BF01B091C001482B592B6A2B7B2B409358
+:1031B000BD015093BE016093BF017093C0010C9498
+:1031C0006F1441E050E060E070E004C0440F551F10
+:1031D000661F771F8A95D2F7409550956095709538
+:1031E0008091BD019091BE01A091BF01B091C0013D
+:1031F000482359236A237B234093BD015093BE018A
+:103200006093BF017093C0010C946F1441E050E0D3
+:1032100060E070E004C0440F551F661F771F8A9559
+:10322000D2F78091BD019091BE01A091BF01B091F4
+:10323000C001482759276A277B274093BD01509337
+:10324000BE016093BF017093C0010C946F140F9383
+:103250001F930091BD011091BE012091BF013091DB
+:10326000C001DC01CB01802B912BA22BB32B8093CF
+:10327000BD019093BE01A093BF01B093C0011F9107
+:103280000F910C946F140F931F930091BD01109137
+:10329000BE012091BF013091C001DC01CB01802330
+:1032A0009123A223B3238093BD019093BE01A093E9
+:1032B000BF01B093C0011F910F910C946F140F9335
+:1032C0001F930091BD011091BE012091BF0130916B
+:1032D000C001DC01CB0180279127A227B32780936F
+:1032E000BD019093BE01A093BF01B093C0011F9197
+:1032F0000F910C946F140895CF92DF92EF92FF928A
+:103300000F931F93CF93DF938C01C090C101D09096
+:10331000C201E090C301F090C4018091BD01909181
+:10332000BE01A091BF01B091C001C82AD92AEA2AE2
+:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520
+:10334000A795979587950A94D2F780FF06C0B80194
+:103350008C2F0E944808019721F4219760F780E0A4
+:1033600001C08C2FDF91CF911F910F91FF90EF90B3
+:10337000DF90CF900895CF93DF93EC010E947C19EA
+:10338000BE010E944808DF91CF910895CB010E94B1
+:10339000BB1908958091C5018595859585950895FA
+:1033A0008091C5018770089598E0899F900111244C
+:1033B000262B2093C5010C94C0182091C50180953F
+:1033C00082238093C501982F977069F430E0482FCD
+:1033D000552747FD50952417350729F08595859584
+:1033E00085950C94E11808959091C501977081E03E
+:1033F00009F480E0089590910C01992321F09091B7
+:103400000D01911109C020910E0130910F01F901B8
+:1034100032969FEF40E01FC0982F9695969596950F
+:103420009F3050F5E0910E01F0910F01E90FF11D71
+:10343000877021E030E0A90102C0440F551F8A9532
+:10344000E2F7CA019181892B818308959F3F39F06A
+:103450004F5F4E3041F051915813F8CF0DC05111CC
+:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08
+:1034700097FDFA9582830895089590910C01992300
+:1034800021F090910D01911109C020910E01309110
+:103490000F01F9013296205F3F4F1FC0982F96957C
+:1034A000969596959F30F0F4E0910E01F0910F0102
+:1034B000E90FF11D877021E030E0A90102C0440F3F
+:1034C000551F8A95E2F7CA018095918189238183EE
+:1034D00008953196E217F30729F090819813F9CFF8
+:1034E0001082F7CF089581E090E0E0910E01F09115
+:1034F0000F01E80FF91F1082019680319105A9F79D
+:1035000008959091D901892B8093D90108958095D0
+:103510009091D90189238093D90108951092D901FE
+:1035200008959091D801892B8093D80108958095B2
+:103530009091D80189238093D80108951092D801E1
+:1035400008959091D701892B8093D7010895809594
+:103550009091D70189238093D70108951092D701C4
+:1035600008958093C60108951092C6010895809130
+:103570000E0190910F01FC0131969C01205F3F4F9D
+:1035800080E0919191118F5FE217F307D1F70895D1
+:10359000E0910E01F0910F018091D9018083E091BB
+:1035A0000E01F0910F0190818091D801892B8083C9
+:1035B000E0910E01F0910F0190818091D701892B4C
+:1035C00080838091C601882361F0E0910E01F09123
+:1035D0000F019081892B80830E94B71A811110926C
+:1035E000C60180910E0190910F010C94F60F20E01E
+:1035F000009739F0AC0141505109842395232F5F86
+:10360000F7CF822F0895CF92DF92EF92FF926C0155
+:10361000EE24FF24C114D104E104F10421F0C70118
+:10362000B60120E101C020E0C72ED82EE92EFF24EC
+:10363000C114D104E104F10419F0285FC701B601F7
+:103640006B017C0154E0F694E794D794C7945A95A3
+:10365000D1F7C114D104E104F10419F02C5FC701C2
+:10366000B6016B017C0142E0F694E794D794C794CD
+:103670004A95D1F7C114D104E104F10419F02E5F89
+:10368000C701B601DC01CB01B695A7959795879543
+:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5
+:1036A000DF90CF9008958091F101843021F1109244
+:1036B000DB0120E488E190E00FB6F894A8958093B0
+:1036C00060000FBE2093600080E00E94E30883B793
+:1036D000817F846083BF83B7816083BF789488953E
+:1036E00083B78E7F83BF88E10FB6F8948093600024
+:1036F000109260000FBE0895089508950E947C1BEB
+:103700000E944B030E947D1B0E94400491E08111A6
+:1037100001C090E0892F08950E9483140E94EA0F4F
+:103720000C94E30882E084BD93E095BD9AEF97BDC9
+:1037300080936E0008952FB7F8948091DC019091EA
+:10374000DD01A091DE01B091DF012FBF0895CF927E
+:10375000DF92EF92FF920F931F932FB7F89440914F
+:10376000DC015091DD016091DE017091DF012FBF1E
+:103770006A017B01EE24FF248C0120E030E0C016BA
+:10378000D106E206F30610F4415051099A01281BB4
+:10379000390BC9011F910F91FF90EF90DF90CF90EF
+:1037A00008951F920F920FB60F9211248F939F933B
+:1037B000AF93BF938091DC019091DD01A091DE0178
+:1037C000B091DF010196A11DB11D8093DC019093A2
+:1037D000DD01A093DE01B093DF01BF91AF919F9116
+:1037E0008F910F900FBE0F901F9018950E94E70CBD
+:1037F000F8942FEF87EA91E6215080409040E1F75E
+:1038000000C0000087E090EBDC018093FB01909307
+:10381000FC01A093FD01B093FE019CE088E10FB68E
+:10382000F894A895809360000FBE90936000FFCF3E
+:10383000EF92FF920F931F93CF93DF93D82FCDE09A
+:103840008C2F0E94390405E010E0E82EF12CC7010E
+:10385000002E02C0959587950A94E2F780FF09C073
+:10386000602F7C2F80E00E94F305D81302C081E016
+:1038700006C00150110958F7C15010F780E0DF91E0
+:10388000CF911F910F91FF90EF900895CF93C82F84
+:103890008CE20E94181C882321F08C2FCF910C946D
+:1038A000181C80E0CF910895CF930E949B1D811139
+:1038B00002C00E94811DC5E6C15049F00E944B0321
+:1038C0008FE39CE90197F1F700C00000F5CF89E292
+:1038D0000E94461C811113C18AE20E94461C81117C
+:1038E0000E94811D85E00E94461C81110E94F61BEA
+:1038F0000E94A61D8093DA0187E00E94461C88235F
+:10390000A9F18BE10E94461C882351F08091DA01D5
+:1039100081FB222720F991E0922790FB81F90EC0CC
+:103920008EE00E94461C882361F08091DA0182FBC0
+:10393000222720F991E0922790FB82F98093DA0107
+:1039400015C080E10E94461C9091DA01882341F065
+:1039500093FB222720F981E0822780FB93F904C0A2
+:10396000892F809580FB90F99093DA018091DA019C
+:103970000E94AA1D0E94B81D8093FA0180EE0E9449
+:10398000461C882341F08091FA01982F909590FB76
+:1039900080F98093FA0189E30E94461C882359F03C
+:1039A0008091FA0181FB222720F991E0922790FB78
+:1039B00081F98093FA0182EE0E94461C882359F017
+:1039C0008091FA0182FB222720F991E0922790FB57
+:1039D00082F98093FA0186EE0E94461C882359F0F2
+:1039E0008091FA0183FB222720F991E0922790FB36
+:1039F00083F98093FA0183EE0E94461C882359F0D4
+:103A00008091FA0184FB222720F991E0922790FB14
+:103A100084F98093FA0185E30E94461C882359F0BB
+:103A20008091FA0185FB222720F991E0922790FBF3
+:103A300085F98093FA0181E30E94461C882359F09E
+:103A40008091FA0186FB222720F991E0922790FBD2
+:103A500086F98093FA0181E10E94461C882359F07F
+:103A60008091FA0187FB222720F991E0922790FBB1
+:103A700087F98093FA018091FA010E94BC1D809120
+:103A8000FA0187FB882780F980930D0187E20E9465
+:103A9000461CC82F8EE10E94461C8111C2608FE136
+:103AA0000E94461C8111C46080E20E94461C811164
+:103AB000C86081E20E94461C8111C06182E20E94BE
+:103AC000461C8111C06283E20E94461C8111C064C1
+:103AD00084E20E94461C882311F0C06802C0CC23F7
+:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4
+:103AF000682F70E080E090E0CF910C944318CF9154
+:103B000008956DEE7EEF80E090E00E94ED2360E08E
+:103B100082E090E00E94DB2360E083E090E00E947E
+:103B2000DB2360E084E090E00E94DB2360E085E03E
+:103B300090E00C94DB2380E090E00E94D52321E00C
+:103B40008D3E9E4F09F020E0822F089582E090E0A4
+:103B50000C94CD23682F82E090E00C94DB2383E06B
+:103B600090E00C94CD23682F83E090E00C94DB234D
+:103B700084E090E00C94CD23682F84E090E00C94D6
+:103B8000DB238091E20180FF0BC06091130185E08F
+:103B9000689FB001112475956795759567952BC041
+:103BA00081FF09C06091130185E0689FB001112475
+:103BB0007595679520C082FF07C06091130185E06D
+:103BC000689FB001112417C09091E3019923D1F0AF
+:103BD00060911201961788F72091130185E0289FC4
+:103BE00090011124929FA001939F500D112470E029
+:103BF000CA010E949F236038710540F46115710568
+:103C000039F002C065E070E0862F08958FE70895CF
+:103C100081E008958091E20180FF08C06091110168
+:103C200070E0759567957595679521C081FF06C011
+:103C30006091110170E07595679519C082FF04C00D
+:103C40006091110170E010C09091E3019923C1F0DF
+:103C5000609110019617A0F780911101899FC00112
+:103C6000112470E00E949F236038710528F46115CB
+:103C7000710521F0862F08958FE7089581E008955A
+:103C800061E070E0F4CF803F21F40E94C11D819576
+:103C900004C0813F29F40E94C11D8093E60108956C
+:103CA000823F21F40E94C11D819504C0833F29F405
+:103CB0000E94C11D8093E5010895893F19F40E9477
+:103CC0000A1E05C08A3F31F40E940A1E8195809326
+:103CD000E70108958B3F21F40E940A1E819504C0DC
+:103CE0008C3F29F40E940A1E8093E8010895843FC6
+:103CF00021F48091E401816017C0853F21F4809117
+:103D0000E401826011C0863F21F48091E401846067
+:103D10000BC0873F21F48091E401886005C0883F93
+:103D200031F48091E40180618093E40108958D3F36
+:103D300021F48091E20181600BC08E3F21F48091DB
+:103D4000E201826005C08F3F29F48091E201846026
+:103D50008093E2010895803F39F48091E60187FF66
+:103D60006CC01092E60169C0813F29F48091E601A0
+:103D70001816BCF362C09091E501823F29F497FFC9
+:103D80005CC01092E50159C0833F19F41916CCF3B9
+:103D900054C0893F41F48091E70118160CF04DC0E2
+:103DA0001092E7014AC08A3F29F48091E70187FF1A
+:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6
+:103DC0001092E8013AC08C3F29F48091E80118165E
+:103DD000BCF333C0843F21F48091E4018E7F17C08F
+:103DE000853F21F48091E4018D7F11C0863F21F44D
+:103DF0008091E4018B7F0BC0873F21F48091E40127
+:103E0000877F05C0883F31F48091E4018F7E8093E5
+:103E1000E40113C08D3F21F48091E2018E7F0BC03D
+:103E20008E3F21F48091E2018D7F05C08F3F29F400
+:103E30008091E2018B7F8093E2018091E501811105
+:103E40000EC08091E60181110AC08091E7018111C5
+:103E500006C08091E801811102C01092E30108952B
+:103E600084EE91E00E9401100E949B1B9093E1015F
+:103E70008093E00108951F93CF93DF938091E00139
+:103E80009091E1010E94A71BAC019091E30199235D
+:103E900021F02091140130E006C0209115018AE044
+:103EA000289F900111244217530708F486C080917F
+:103EB000E501C091E601D091E7011091E80181117F
+:103EC00007C0C11176C0D11174C0111172C075C084
+:103ED0009F3F19F09F5F9093E301181624F40E940E
+:103EE000C11D8093E5018091E50187FF05C00E9417
+:103EF000C11D81958093E5011C1624F40E94C11D0B
+:103F00008093E6018091E60187FF05C00E94C11DF4
+:103F100081958093E6016091E501662339F1C091B6
+:103F2000E601CC2319F1772767FD7095872F972F2E
+:103F30000E94B02223E333E343E35FE30E941423B0
+:103F40000E947D226093E5016C2F772767FD7095B5
+:103F5000872F972F0E94B02223E333E343E35FE3ED
+:103F60000E9414230E947D226093E6011D1624F412
+:103F70000E940A1E8093E7018091E70187FF05C038
+:103F80000E940A1E81958093E701111624F40E9475
+:103F90000A1E8093E8018091E80187FF05C00E9416
+:103FA0000A1E81958093E801DF91CF911F910C94B7
+:103FB000301F9F3F09F08ECF96CFDF91CF911F9199
+:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE
+:103FD0001092E3011092E2010895833081F128F4F8
+:103FE000813059F08230D1F00895853009F449C00C
+:103FF000B8F1863009F456C0089580911501262F36
+:1040000030E0280F311D2F3F310524F4680F6093F5
+:10401000150108958FEF8093150108958091140183
+:10402000262F30E0280F311D2F3F310524F4680F73
+:104030006093140108958FEF809314010895809187
+:104040001301262F30E0280F311D2F3F310524F4B6
+:10405000680F6093130108958FEF80931301089503
+:1040600080911201262F30E0280F311D2F3F31059E
+:1040700024F4680F6093120108958FEF809312016A
+:10408000089580911101262F30E0280F311D2F3F18
+:10409000310524F4680F6093110108958FEF809328
+:1040A0001101089580911001262F30E0280F311D55
+:1040B0002F3F310524F4680F6093100108958FEFAE
+:1040C000809310010895833011F128F4813049F074
+:1040D000823091F00895853081F120F18630C1F170
+:1040E000089580911501681720F4861B80931501AF
+:1040F000089510921501089580911401681720F415
+:10410000861B8093140108951092140108958091E4
+:104110001301681720F4861B8093130108951092F1
+:104120001301089580911201681720F4861B809373
+:1041300012010895109212010895809111016817DB
+:1041400020F4861B809311010895109211010895A7
+:1041500080911001681720F4861B80931001089548
+:104160001092100108950F931F938D3109F46BC0C5
+:1041700008F03FC08E3009F47FC0C0F4873009F4E6
+:1041800069C068F4863009F0B1C08091DA01817F9E
+:104190008E7F8093DA0181E08093EA01A8C08830A5
+:1041A00009F4A2C08B3009F49FC0A0C0863109F485
+:1041B0009BC078F4803109F472C0813109F096C057
+:1041C0000E94831490910D0181E0892780930D0155
+:1041D0008BC0893109F488C08B3109F087C0809188
+:1041E000DA0181FB222720F991E0922790FB81F9E7
+:1041F0004CC0853309F470C048F4873209F46CC0B0
+:1042000008F459C0893209F467C070C0833438F4A7
+:104210008A3308F04EC0883309F466C067C083341F
+:1042200009F45AC0883409F061C00E9483140FEF6A
+:1042300013ED20E3015010402040E1F700C00000E2
+:104240000E94F61B51C00E9437220E94EA0F0E9472
+:10425000E3084AC09091DA01892F8095817080FB34
+:1042600090F929F0966098609093DA0140C0997FA8
+:10427000977F9093DA0138C08091DA0182FB222780
+:1042800020F991E0922790FB82F98093DA0199233B
+:1042900059F18091DA0181608093DA0125C0809123
+:1042A000DA0183FB222720F991E0922790FB83F922
+:1042B000ECCF895301C08D5141E050E060E070E0E7
+:1042C0008A019B0104C0000F111F221F331F8A9512
+:1042D000D2F7C901B80104C061E070E080E090E06D
+:1042E0000E9443180E94831481E001C080E01F9166
+:1042F0000F91089580E0089580E00895CF93C82F2E
+:104300008091EA01813079F018F08230E9F187C0BC
+:10431000E0910E01F0910F018081813169F08232CC
+:1043200009F07FC009C0E0910E01F0910F0180817A
+:10433000813111F0823261F48C2F0E947A21811137
+:1043400004C08C2F0E94B3201DC081E090E01AC0F1
+:104350008C2F0E947C21811114C0C43179F048F463
+:10436000CB3079F0C03109F060C082E08093EA017F
+:1043700008C0C93219F0C83321F057C01092EA01C1
+:1043800054C081E0817053C0C93289F118F5C4313D
+:1043900071F1A8F4C73009F046C08AE08093150196
+:1043A00094E19093140193E0909313018093120190
+:1043B00088E08093110188E28093100134C0CE51CF
+:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB
+:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC
+:1043E00013C0C13579F0C235F1F461E00DC08091A0
+:1043F000E901882319F01092E90115C081E080934A
+:10440000EA0115C061E006C08091E9010E94ED1F3C
+:104410000AC06AE08091E9010E94632004C0109202
+:10442000EA0180E004C081E002C080E0ABCFCF9120
+:104430000895E1E8F0E08081886080838081816078
+:1044400080838FB7F89493E09093890090ED9093D8
+:1044500088008FBF0895EFE6F0E08081826080835E
+:104460000895EFE6F0E080818D7F80830895EFE688
+:10447000F0E0908182E08927808308951F920F9257
+:104480000FB60F9211242F933F934F935F936F9327
+:104490007F938F939F93AF93BF93EF93FF938091FD
+:1044A000EB019091EC0101969093EC018093EB016C
+:1044B000811103C082E00E94E308E091EC01E695DF
+:1044C000E695F0E0EC54FB4FE4918091EB018E1304
+:1044D00003C080E00E94E308FF91EF91BF91AF918C
+:1044E0009F918F917F916F915F914F913F912F910C
+:1044F0000F900FBE0F901F90189504D06894B111C3
+:104500008DC0089570D088F09F5790F0B92F9927EB
+:10451000B751A0F0D1F0660F771F881F991F1AF0CE
+:10452000BA95C9F712C0B13081F077D0B1E00895E3
+:1045300074C0672F782F8827B85F39F0B93FCCF364
+:10454000869577956795B395D9F73EF490958095C4
+:10455000709561957F4F8F4F9F4F0895E89409C0E4
+:1045600097FB3EF490958095709561957F4F8F4FA6
+:104570009F4F9923A9F0F92F96E9BB279395F695BC
+:10458000879577956795B795F111F8CFFAF4BB0F3A
+:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E
+:1045A000882311F096E911C0772321F09EE8872F28
+:1045B000762F05C0662371F096E8862F70E060E0E4
+:1045C0002AF09A95660F771F881FDAF7880F96955D
+:1045D000879597F9089557FD9058440F551F59F046
+:1045E0005F3F71F04795880F97FB991F61F09F3FE0
+:1045F00079F087950895121613061406551FF2CF09
+:104600004695F1DF08C0161617061806991FF1CF58
+:1046100086957105610508940895E894BB2766277F
+:104620007727CB0197F908950BD078C069D028F08F
+:104630006ED018F0952309F05AC05FC01124EECF58
+:10464000CADFA0F3959FD1F3950F50E0551F629FED
+:10465000F001729FBB27F00DB11D639FAA27F00DDB
+:10466000B11DAA1F649F6627B00DA11D661F829F02
+:104670002227B00DA11D621F739FB00DA11D621FE7
+:10468000839FA00D611D221F749F3327A00D611D04
+:10469000231F849F600D211D822F762F6A2F1124E6
+:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39
+:1046B000BB1F661F771F881F91505040A9F79E3F70
+:1046C000510570F014C0AACF5F3FECF3983EDCF3C5
+:1046D000869577956795B795F795E7959F5FC1F7AD
+:1046E000FE2B880F911D9695879597F9089597F958
+:1046F0009F6780E870E060E008959FEF80EC089588
+:1047000000240A94161617061806090608950024B0
+:104710000A9412161306140605060895092E03942A
+:10472000000C11F4882352F0BB0F40F4BF2B11F49E
+:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF
+:10474000072E16F4009407D077FD09D00E94B923F4
+:1047500007FC05D03EF4909581959F4F0895709584
+:1047600061957F4F0895EE0FFF1F0590F491E02DA6
+:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8
+:10478000B70710F0A61BB70B881F991F5A95A9F7FA
+:1047900080959095BC01CD010895F999FECF92BD09
+:1047A00081BDF89A992780B50895A8E1B0E042E06C
+:1047B00050E00C94F523262FF999FECF92BD81BDD0
+:1047C000F89A019700B4021639F01FBA20BD0FB64F
+:1047D000F894FA9AF99A0FBE08950196272F0E942D
+:1047E000DC230C94DB23DC01CB01FC01F999FECF27
+:1047F00006C0F2BDE1BDF89A319600B40D92415069
+:0A4800005040B8F70895F894FFCF78
+:10480A000220E508730950091C09E8080101C701DB
+:10481A0028080A03140A3F4D363975042804F2039E
+:10482A00B9034C0365037E039703010203040506DB
+:04483A000708090062
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/sneako/keymap.c b/keyboards/ergodox_ez/keymaps/sneako/keymap.c new file mode 100644 index 000000000..0c6863102 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/sneako/keymap.c @@ -0,0 +1,187 @@ +// Based on `default_osx` +// Replace left Bksp with Ctrl/Esc +// Remove the Ctrl from Z and / +#include "ergodox_ez.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 + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 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 | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * |Ctrl/Esc| A | S | D | F | G |------| |------| H | J | K | L |; / L2| LGui | + * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | 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(1), + 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), + 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(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),GUI_T(KC_QUOT), + MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, 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| |------| |------| | | | | | Play | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | Prev | Next | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | |Brwser| + * | | |------| |------| |Back | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +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) { + 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/software_neo2/compiled.hex b/keyboards/ergodox_ez/keymaps/software_neo2/compiled.hex new file mode 100644 index 000000000..a4aafc138 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/software_neo2/compiled.hex @@ -0,0 +1,1147 @@ +:100000000C9424020C9468020C9468020C9468020C
+:100010000C9468020C9468020C9468020C946802B8
+:100020000C9468020C9468020C94090D0C94DB0D7E
+:100030000C9468020C9468020C9468020C94680298
+:100040000C9468020C94E5210C9468020C946802EC
+:100050000C9468020C94781B0C9468020C9468024F
+:100060000C9468020C9468020C9468020C94680268
+:100070000C9468020C9468020C9468020C94680258
+:100080000C9468020C9468020C9468020C94680248
+:100090000C9468020C9468020C9468020C94680238
+:1000A0000C9468020C9468020C946802480E6A0E64
+:1000B000580F6A0E580FAF0ED20E580F270F3A0F77
+:1000C00009120912381238126E128E12BF13BF13A2
+:1000D0009912BF1349134913B013BF13BF13B913B8
+:1000E00056135613561356135613561356135613C8
+:1000F00056135613561356135613561356135613B8
+:10010000681375137C1383138D1323024C0039007D
+:10011000E100640000001E00140004001D714A008C
+:1001200039001F001A0016001B734E002A00200021
+:100130000800070006744B002B0021001500090081
+:1001400019004D006400220017000A00050000009D
+:100150006574AE0001540000007F0000E300AB00B6
+:100160000154000000770000E20023001C000B0097
+:10017000110000002971240018000D00100050002B
+:10018000E60025000C000E00360051002800260075
+:1001900012000F00370052002C002700130033001C
+:1001A00038004F0031002D002F003400E5002900F9
+:1001B00000000100010001000100010000003A0000
+:1001C0000100F700FB00010001003B00F400F20019
+:1001D000FA00FD00F5003C00F000F100F900FE001F
+:1001E000F4003D00F500F300FC00FF0001003E00BC
+:1001F0000100F800F600000001000100010000000D
+:1002000001000000010001000100000001000000E9
+:1002100001003F0001000100B400000001004000A7
+:10022000AA00AC00B600010001004100A800AD002A
+:10023000B5000100B7004200A900AE00B9000100FE
+:10024000B60043000100AB00B7000100010044000C
+:100250004500010001000100000016034500720086
+:1002600067006F0044006F007800200045005A00CE
+:10027000000016034500720067006F0044006F0025
+:100280007800200045005A00000004030904090218
+:100290006D00040100A0FA0904000001030101003F
+:1002A000092111010001223F000705810308000A0E
+:1002B00009040100010301020009211101000122CA
+:1002C0004D000705820308000A090402000103002B
+:1002D00000000921110100012236000705830308EF
+:1002E000000A0904030001030000000921110100B4
+:1002F00001223900070584031000011201100100DA
+:10030000000008EDFE0713010001020001050109CC
+:1003100006A101050719E029E715002501950875D3
+:1003200001810205081901290595057501910295BC
+:10033000017503910105071900297715002501951D
+:100340007875018102C005010980A10185021601AD
+:100350000026B7001A01002AB70075109501810028
+:10036000C0050C0901A1018503160100269C021A93
+:1003700001002A9C02751095018100C00501090247
+:10038000A1010901A100050919012905150025018F
+:1003900095057501810295017503810105010930FB
+:1003A00009311581257F9502750881060938158167
+:1003B000257F950175088106050C0A3802158125EF
+:1003C0007F950175088106C0C005010906A10105D8
+:1003D0000719E029E71500250195087501810295A7
+:1003E0000175088101050819012905950575019117
+:1003F000029501750391010507190029FF150025D4
+:10040000FF950675088100C0000000000000000094
+:10041000000000010204060A0F17202C3A4A5D7101
+:10042000879DB3C7DAE9F5FCFFFCF5E9DAC7B39DB0
+:1004300087715D4A3A2C20170F0A0604020100005A
+:10044000000000000000000011241FBECFEFDAE022
+:10045000DEBFCDBF04B603FE24C08091FB019091A6
+:10046000FC01A091FD01B091FE018730904BA740A7
+:10047000B04BB9F41092FB011092FC011092FD01F7
+:100480001092FE0114BE84B7877F84BF88E10FB647
+:10049000F89480936000109260000FBEE0E0FFE3EC
+:1004A000099511E0A0E0B1E0E8E5F7E402C00590AD
+:1004B0000D92A433B107D9F711E0A4E3B1E001C074
+:1004C0001D92AB3FB107E1F70E944D0A0C94AA239D
+:1004D0000C9400001092B9008AE08093B80008954F
+:1004E00094EA9093BC009091BC0097FFFCCF909150
+:1004F000B900987F983021F0903111F081E0089593
+:100500008093BB0084E88093BC008091BC0087FF8F
+:10051000FCCF8091B900887F883111F0803471F769
+:1005200080E0089584E98093BC008091BC0084FD44
+:10053000FCCF08958093BB0084E88093BC00809139
+:10054000BC0087FFFCCF9091B900987F81E0983282
+:1005500009F480E0089584E88093BC008091BC0099
+:1005600087FFFCCF8091BB0008958091010181112C
+:1005700015C080E40E9470028093010181110CC0BB
+:1005800082E10E949A0280930101811105C08FEFE0
+:100590000E949A02809301010E94920284B1807F9E
+:1005A00084B985B1807F85B98AB1837F8AB98BB1DF
+:1005B000837F8BB93E98469808950E94700480937B
+:1005C00001010E94B50280B38C7080BB81B3836F40
+:1005D00081BBA5E3B1E0E3E4F1E08EE08E0F119280
+:1005E0001D928E13FCCF0C945A04BF92CF92DF92CF
+:1005F000EF92FF920F931F93CF93DF9380910101AE
+:10060000882379F0809134018F5F809334018111C8
+:1006100008C00E94700480930101811102C00E94F1
+:10062000020405E311E0C0E0D0E0DD24D39482E0D1
+:10063000C82EEE24E394F12CC730D10500F580914B
+:100640000101811164C080E40E9470028093010165
+:10065000811112C082E10E949A02809301018111EE
+:100660000BC0C7010C2E01C0880F0A94EAF78095D1
+:100670000E949A02809301010E94920248C0CA30EF
+:10068000A1F028F4C83059F0C93061F005C0CC3071
+:1006900089F070F0CD3089F0209A289810C0219A06
+:1006A00029980DC0229A2A980AC0239A2B9807C02D
+:1006B000529A01C0539A5B9802C03E9A469890EABB
+:1006C0009A95F1F79FB1799902C082E001C080E06C
+:1006D00091709D25982B7C9902C084E001C080E038
+:1006E000892B7D9902C038E001C030E0832B7E99D0
+:1006F00002C020E101C020E0822B9FB19095991F9C
+:100700009927991F9295990F907E892B0FC0809100
+:100710000101811149C080E40E94700280930101AF
+:10072000882379F1B12C0E9492028B2DF8019081DF
+:10073000981719F08083C09200010E94B50221969B
+:100740000F5F1F4FCE30D10509F076CF80910001A9
+:10075000882361F1815080930001882339F08FE96B
+:100760009FE00197F1F700C0000020C0A3E4B1E0D2
+:10077000E5E3F1E0CF01825F91919D938E13FCCF71
+:1007800015C083E10E949A02809301018111CACFB2
+:1007900081E40E947002809301018111C3CF0E9405
+:1007A000AB02B82EB094BFCF80E0C0CF0E9400044F
+:1007B00081E0DF91CF911F910F91FF90EF90DF903B
+:1007C000CF90BF900895E82FF0E0ED5BFE4F808161
+:1007D000089508950F931F93CF93DF93C3E4D1E05F
+:1007E00010E00C2F025F899190E00E949E1A180F72
+:1007F0000C13F9CF812FDF91CF911F910F910895A5
+:100800000C94D00456985E9825982D9826982E988A
+:1008100027982F988FEF90E090938900809388001D
+:1008200090938B0080938A0090938D0080938C002E
+:10083000259A2D9A2FEF80E792E02150804090403A
+:10084000E1F700C00000269A2E9A2FEF80E792E091
+:10085000215080409040E1F700C00000279A2F9A75
+:100860002FEF80E792E0215080409040E1F700C0F8
+:10087000000025982D982FEF80E792E021508040CE
+:100880009040E1F700C0000026982E982FEF80E7F7
+:1008900092E0215080409040E1F700C0000027988E
+:1008A0002F9856985E9825982D9826982E982798D8
+:1008B0002F98089589EA8093800089E080938100D1
+:1008C00024982C983F988AB18F748AB96E98479A69
+:1008D0008BB1806B8BB9769A0E9402040C94CF0482
+:1008E00080E2809301018091510181110EC00E942C
+:1008F0006A0281E0809351012FEF83ED90E3215054
+:1009000080409040E1F700C0000080E40E94700247
+:100910008093010181112EC00E949A0280930101EF
+:10092000811128C00E949A0280930101811122C086
+:100930008FE30E949A028093010181111BC00E94E3
+:10094000920280E40E94700280930101811112C022
+:100950008CE00E949A028093010181110BC00E94D9
+:100960009A0280930101811105C08FE30E949A02CF
+:10097000809301010E94920280910101089561110A
+:100980000BC0FC018281882321F085EE0E94AD100E
+:1009900003C085EE0E94751180E090E008950895EF
+:1009A0006091BD017091BE018091BF019091C00125
+:1009B0000E94AA1A56985E9825982D9826982E98E7
+:1009C00027982F98813019F4269A2E9A08955698D0
+:1009D0005E98089581E0089581E008950C94EC04F8
+:1009E00008950F931F93CF93DF938C01FC01C08177
+:1009F000D181CE010E942319BE010E949A05EC010B
+:100A0000B8010E94EE04882309F48DC0F8018281A8
+:100A1000882309F44AC080915D0181111FC0C4314F
+:100A2000F0E5DF0709F051C00E94F00481E08093F7
+:100A30005D010E94421B90935C0180935B011092C8
+:100A400054011092560110925501109258011092C3
+:100A5000570110925A011092590165C080915B01B3
+:100A600090915C010E944E1B883C910570F480912E
+:100A70005401E82FF0E0EE0FFF1FEB5AFE4FD18339
+:100A8000C0838F5F809354014EC0C43880E5D8077F
+:100A900021F0C538D04501F13AC0F80182818823A0
+:100AA00041F01092520182E01EC0C438E0E5DE073A
+:100AB00059F580915201811106C086E20E94AD1065
+:100AC00086E20E94751182E01CC0C438F0E5DF07A1
+:100AD00041F3C538D045D9F4F8018281882331F03B
+:100AE0001092530180E20E94C4111DC080915301F5
+:100AF000811106C087E20E94AD1087E20E94751145
+:100B000080E20E94CB110FC0C538D04529F381E0A7
+:100B10008093520180935301C801DF91CF911F91BF
+:100B20000F910C94EA0480E0DF91CF911F910F9117
+:100B30000895089596E0799FF001112494E5899F26
+:100B4000E00DF11D1124E60FF11DEE0FFF1FE65F12
+:100B5000FE4F859194910895880F991FFC01E657E7
+:100B6000F040859194910895880F991FFC01E65FEC
+:100B7000FE4F8591949108950F931F93CF93DF9328
+:100B8000EC01811520E3920750F5C11580E2D807EA
+:100B900008F0C3C0CB3BD10590F4C83AD10508F0AA
+:100BA0006AC0C53AD10508F05BC0C430D10508F071
+:100BB000D0C1219709F0CAC101E010E00AC2CF3FBD
+:100BC000D10511F008F0C5C1C03FD10508F0A2C0A1
+:100BD000CE01805E9109089708F4BBC1B7C1C1304E
+:100BE00090E5D90709F4A2C020F5C0318FE4D807F9
+:100BF00070F4C11590E4D90708F094C0C11521E341
+:100C0000D20708F0A3C1DD278E01106CE2C1C11527
+:100C1000D04509F09BC10E942A148FEF94E32CE089
+:100C2000815090402040E1F700C000000E949D1BD1
+:100C3000D0C1C11597E5D90758F4C03121E5D207D5
+:100C400008F01CC1C43180E5D80708F475C07EC126
+:100C5000CE0190578115904108F078C1DF7073C1C3
+:100C6000C53AD10509F477C1C63AD10509F076C174
+:100C700002E810E4AEC1C83AD10509F472C1C93A1C
+:100C8000D10509F471C1CA3AD10509F470C1CB3A52
+:100C9000D10509F46FC1CC3AD10509F46EC1CD3A42
+:100CA000D10509F46DC1C03BD10509F46CC1CE3A40
+:100CB000D10509F46BC1CF3AD10509F46AC1C13B32
+:100CC000D10509F469C1C23BD10509F468C1C33B30
+:100CD000D10509F467C1C43BD10509F466C1C53B20
+:100CE000D10509F465C1C63BD10509F464C1C73B10
+:100CF000D10509F463C1C83BD10509F462C1C93B00
+:100D0000D10509F461C1CA3BD10509F460C100E015
+:100D100014E45FC18E0110655CC1CE019F700E941A
+:100D2000B40558C1DF708E01106A53C18091DA0199
+:100D300081608093DA014DC10E94421D811102C081
+:100D40000E94281D0E945F1D90E09093FB018093FC
+:100D5000FA01C23080E5D80721F48091FA01816060
+:100D600086C0C43090E5D90721F48091FA018260F1
+:100D70007EC0C63020E5D20721F48091FA0184605C
+:100D800076C0C83080E5D80719F48091FA0127C0F1
+:100D9000CA3090E5D90721F48091FA01806167C0DB
+:100DA000CC3020E5D20721F48091FA0180625FC047
+:100DB000CE3080E5D80721F48091FA01806457C0D5
+:100DC000C03190E5D90721F48091FA0180684FC0C5
+:100DD000C23120E5D20729F48091FA01846088604D
+:100DE00046C0C33080E5D80721F48091FA018E7F98
+:100DF0003EC0C53090E5D90721F48091FA018D7F7E
+:100E000036C0C73020E5D20721F48091FA018B7FEC
+:100E10002EC0C93080E5D80719F48091FA0126C0A8
+:100E2000CB3090E5D90721F48091FA018F7E1FC065
+:100E3000CD3020E5D20721F48091FA018F7D17C0D3
+:100E4000CF3080E5D80721F48091FA018F7B0FC065
+:100E5000C13190E5D90721F48091FA018F7707C05D
+:100E6000C331D04531F48091FA018B7F877F809325
+:100E7000FA018091FA010E94631DABC08D2F992762
+:100E80008F70992781309105D9F49E012370332703
+:100E900002C0880F991F2A95E2F79C688E0144E0F2
+:100EA000000F111F4A95E1F700271370802B912B3B
+:100EB00053E0CC0FDD1F5A95E1F7C076DD272FC038
+:100EC0008230910531F4DC2FCC278E01016F106A3E
+:100ED00080C08330910569F4CE018370992701E0C9
+:100EE00010E002C0000F111F8A95E2F7C8019C684C
+:100EF0000FC084309105B9F4CE018370992701E0C9
+:100F000010E002C0000F111F8A95E2F7C8019A682D
+:100F100023E0CC0FDD1F2A95E1F7C07ED7708C014E
+:100F20000C2B1D2B56C08530910531F4DC2FCC27BE
+:100F30008E01046F106A4DC0069709F04AC0CF7148
+:100F4000DD27DC2FCC278E01106243C000E010E0CB
+:100F500040C08E013EC001E810E43BC003E810E44D
+:100F600038C002EE14E435C009EE14E432C00AEED3
+:100F700014E42FC005EB14E42CC006EB14E429C0E4
+:100F800007EB14E426C00CEC14E423C00DEC14E4CD
+:100F900020C003E815E41DC00AE815E41AC002E900
+:100FA00015E417C004E915E414C001E216E411C009
+:100FB00003E216E40EC004E216E40BC005E216E4F8
+:100FC00008C006E216E405C007E216E402C00AE221
+:100FD00016E4C801DF91CF911F910F91089596E01B
+:100FE000799FF001112494E5899FE00DF11D1124F2
+:100FF000E60FF11DEE0FFF1FE65FFE4F8591949106
+:10100000803E9105E0F4803C910558F581339105CF
+:1010100009F46FC048F48932910509F463C08A323B
+:10102000910509F46DC072C089339105E9F08238E9
+:101030009105D1F08533910509F44DC067C0833E19
+:10104000910581F138F4803E9105B9F0823E910519
+:10105000D9F05CC0863E910561F1873E9105A1F112
+:1010600055C00E94AC0508952091FA0120FD02C0F0
+:1010700021FF4CC080EE90E049C08091FA0180FFD2
+:10108000F9CF89E390E042C08091FA0182FF0EC05F
+:101090008091FA0184FF03C080E090E037C083EEC6
+:1010A00090E034C08091FA0182FFF2CF82EE90E0AE
+:1010B0002DC08091FA0183FF0BC08091FA0184FD5D
+:1010C000EBCF87EE90E022C08091FA0183FFF5CF4D
+:1010D00086EE90E01BC08091FA0185FF07C089E28F
+:1010E00090E014C08091FA0185FFF9CF85E390E08C
+:1010F0000DC08091FA0186FF07C08AE290E006C029
+:101100008091FA0186FFF9CF81E390E00E94BC054F
+:10111000089508950C94890880916E010895CF93E5
+:10112000DF9300D01F92CDB7DEB79C018091F10113
+:10113000843019F593E099833B832A839093E900E7
+:101140008FEF9091E800815095FD06C095ED9A953E
+:10115000F1F700008111F5CF8091E80085FF0DC007
+:1011600040E050E063E070E0CE0101960E94F90A91
+:101170008091E8008E778093E8000F900F900F9099
+:10118000DF91CF910895CF93DF9300D01F92CDB719
+:10119000DEB72091F101243021F522E029839B83E1
+:1011A0008A8383E08093E9008FEF9091E80081507B
+:1011B00095FD06C095ED9A95F1F700008111F5CFE8
+:1011C0008091E80085FF0DC040E050E063E070E0F2
+:1011D000CE0101960E94F90A8091E8008E778093F3
+:1011E000E8000F900F900F90DF91CF91089520911C
+:1011F000F1012430F1F422E02093E9002FEF309147
+:10120000E800215035FD06C035ED3A95F1F70000B4
+:101210002111F5CF2091E80025FF0BC040E050E000
+:1012200065E070E00E94F90A8091E8008E77809373
+:10123000E8000895CF93DF93EC019091F101943091
+:1012400009F046C080910C018823D9F080910D01EE
+:101250008823B9F09093E9008FEF9091E8008150D6
+:1012600095FD06C095E19A95F1F700008111F5CF43
+:101270008091E80085FF2CC040E050E060E170E024
+:1012800017C081E08093E9008FEF9091E8008150D2
+:1012900095FD06C095ED9A95F1F700008111F5CF07
+:1012A0008091E80085FF14C040E050E068E070E005
+:1012B000CE010E94F90A8091E8008E778093E800C1
+:1012C00080E1FE01AEE5B1E001900D928A95E1F773
+:1012D000DF91CF9108958091F001811109C00E94A2
+:1012E0008E0C0E94EB0C8091E20084608093E200FF
+:1012F00008951092F001089508950C94D2210E944F
+:10130000331B0E94D8210E94910F0C948A0842E05E
+:1013100061EC81E00E94080C42E061EC82E00E94F6
+:10132000080C42E061EC83E00E94080C42E161ECB1
+:1013300084E00C94080C8091F301833009F455C0CB
+:1013400030F4813071F0823009F48EC008958A3013
+:1013500009F47AC08B3009F460C0893009F09CC070
+:1013600020C08091F201813A09F096C08091E80096
+:10137000877F8093E8008091F6019091F701892B97
+:1013800021F460E18EE591E003C060E080E090E050
+:1013900070E00E94440B8091E8008B778093E80016
+:1013A00008958091F201813209F076C08091F601B2
+:1013B0009091F701009719F0039709F06DC08091A3
+:1013C000E800877F8093E8008091E80082FD05C0F7
+:1013D0008091F1018111F8CF5FC08091F10080937D
+:1013E0006E018091E8008B7753C08091F201813AC1
+:1013F00009F052C08091F6019091F701892B09F014
+:101400004BC08091E800877F8093E8008091E800DE
+:1014100080FFFCCF80910C0136C08091F2018132B7
+:10142000D9F58091F6019091F701892BA9F580916A
+:10143000E800877F8093E8000E943D0C8091F401D2
+:1014400080930C010C942A148091F201813221F5D1
+:101450008091E800877F8093E8000E943D0C809196
+:10146000F50180936F0108958091F201813AA1F412
+:101470008091E800877F8093E8008091E80080FFFA
+:10148000FCCF80916F018093F1008091E8008E770E
+:101490008093E8000C943D0C089584B7877F84BF47
+:1014A00088E10FB6F89480936000109260000FBE40
+:1014B00090E080E80FB6F89480936100909361000B
+:1014C0000FBE0E94E00F0E948E0C0E94EB0C8091D8
+:1014D000E20084608093E20078940E94710F0E9481
+:1014E000E20F82E091E00E948C0F0E94C021809167
+:1014F000F101853069F40E94FA1A8091EF01882386
+:10150000B1F30E94251B882391F30E94E30AEFCFD9
+:101510000E94E80FECCF292F332723303105C9F083
+:1015200064F42130310581F02230310509F043C0E7
+:101530008DE690E02EE832E042C021323105F1F034
+:101540002232310541F137C082E190E02BEF32E0E9
+:1015500036C099278130910541F08230910541F0E4
+:10156000892B49F5EAE8F2E005C0E2E7F2E002C0C3
+:10157000EAE5F2E0849190E09F0121C06430D8F464
+:10158000E62FF0E0EE0FFF1FEE5DFE4F2081318170
+:1015900089E090E014C0643070F470E0FB01EE0F5D
+:1015A000FF1FE65EFE4F20813181FB01EA5EFE4FA8
+:1015B000808190E004C080E090E020E030E0FA011B
+:1015C00031832083089580E189BD82E189BD09B41A
+:1015D00000FEFDCF8091D8008F7D8093D800809150
+:1015E000E00082608093E0008091E00081FDFCCF0C
+:1015F0000895CF92DF92EF92FF920F931F93CF93B4
+:10160000DF93EC018B016A010E945C0C811133C0F5
+:10161000C114D10439F0F60180819181081B190BA6
+:10162000C80FD91FE12CF12C0115110519F180917A
+:10163000E80085FD16C08091E8008E778093E80071
+:10164000C114D10449F0F60180819181E80EF91EA0
+:10165000F182E08285E00FC00E945C0C882321F3B8
+:101660000AC089918093F10001501109FFEFEF1A30
+:10167000FF0ADACF80E0DF91CF911F910F91FF90A9
+:10168000EF90DF90CF9008952091F8013091F9010B
+:101690002617370748F06115710539F42091E800E5
+:1016A0002E772093E80001C0B90140E06115710573
+:1016B000A9F12091F101222309F443C0253009F456
+:1016C00042C02091E80023FD40C02091E80022FDA7
+:1016D00032C02091E80020FFE9CF4091F300209133
+:1016E000F20030E0342BFC01CF016115710559F097
+:1016F0002830310540F481918093F10061507109E7
+:101700002F5F3F4FF1CF41E02830310509F040E035
+:101710002091E8002E772093E800C8CF4111C9CF6F
+:101720000AC08091F101882361F0853061F08091D9
+:10173000E80083FD0AC08091E80082FFF2CF80E0DC
+:10174000089582E0089583E0089581E0089520914E
+:10175000F8013091F9012617370748F06115710536
+:1017600039F42091E8002E772093E80001C0B901F8
+:10177000FC0120E06115710591F18091F101882350
+:1017800009F440C0853009F43FC08091E80083FD32
+:101790003DC08091E80082FD2FC08091E80080FF6D
+:1017A000E9CF2091F3008091F20090E0922B611537
+:1017B000710559F08830910540F424912093F1008F
+:1017C0003196615071090196F2CF21E0089709F036
+:1017D00020E08091E8008E778093E800CBCF211144
+:1017E000CCCF0AC08091F101882361F0853061F08F
+:1017F0008091E80083FD0AC08091E80082FFF2CF6B
+:1018000080E0089582E0089583E0089581E00895DE
+:10181000982F973058F59093E900981739F0709108
+:10182000EC002091ED005091F00003C0242F762FA2
+:1018300050E021FF19C03091EB003E7F3093EB0068
+:101840003091ED003D7F3093ED003091EB00316041
+:101850003093EB007093EC002093ED005093F00078
+:101860002091EE0027FF07C09F5FD3CF8F7080933A
+:10187000E90081E0089580E008958091F20187FFFA
+:1018800011C08091E80082FD05C08091F1018111B5
+:10189000F8CF11C08091E8008B770BC08091F101E7
+:1018A000882349F08091E80080FFF8CF8091E8001C
+:1018B0008E778093E80008952091E4003091E50050
+:1018C00095E64091EC00842F817040FF22C080910A
+:1018D000E80080FD1CC08091F101882391F08530E3
+:1018E00091F08091EB0085FD10C04091E400509193
+:1018F000E5004217530729F39A01915011F784E04C
+:10190000089582E0089583E0089581E0089580E0DD
+:1019100008954091E80042FFDECF08950E94FC0C3C
+:101920000E94040DE0EEF0E0808181608083E8EDAC
+:10193000F0E080818F77808319BCA7EDB0E08C91B7
+:101940008E7F8C9380818F7E80831092F00108952A
+:101950000F931F93CF93DF930E94FC0C0E94040D02
+:10196000C8EDD0E088818F778883888180688883FC
+:1019700088818F7D888319BC1092F1011092ED014E
+:101980001092EF011092EE0100EE10E0F80180815C
+:101990008B7F808388818160888342E060E080E083
+:1019A0000E94080CE1EEF0E080818E7F8083E2EE01
+:1019B000F0E0808181608083808188608083F8018D
+:1019C00080818E7F8083888180618883DF91CF9141
+:1019D0001F910F910895E8EDF0E080818F7E808364
+:1019E000E7EDF0E080818160808384E082BF81E068
+:1019F0008093F0010C94A80CE8EDF0E080818E7FDC
+:101A000080831092E20008951092DA001092E100B3
+:101A100008951F920F920FB60F9211242F933F93A8
+:101A20004F935F936F937F938F939F93AF93BF93E6
+:101A3000EF93FF938091E10082FF0BC08091E20061
+:101A400082FF07C08091E1008B7F8093E1000E94BC
+:101A5000700F8091DA0080FF1FC08091D80080FF56
+:101A60001BC08091DA008E7F8093DA008091D900CC
+:101A700080FF0DC080E189BD82E189BD09B400FE0F
+:101A8000FDCF81E08093F1010E946B0905C019BC74
+:101A90001092F1010E9479098091E10080FF19C044
+:101AA0008091E20080FF15C08091E2008E7F8093DC
+:101AB000E2008091E20080618093E2008091D80092
+:101AC00080628093D80019BC85E08093F1010E9468
+:101AD0007D098091E10084FF30C08091E20084FFA5
+:101AE0002CC080E189BD82E189BD09B400FEFDCF33
+:101AF0008091D8008F7D8093D8008091E1008F7E07
+:101B00008093E1008091E2008F7E8093E2008091DB
+:101B1000E20081608093E2008091ED01882311F062
+:101B200084E007C08091E30087FD02C081E001C02E
+:101B300083E08093F1010E947F098091E10083FF9F
+:101B400029C08091E20083FF25C08091E100877F5A
+:101B50008093E10082E08093F1011092ED01809189
+:101B6000E1008E7F8093E1008091E2008E7F809380
+:101B7000E2008091E20080618093E20042E060E058
+:101B800080E00E94080C8091F00088608093F00053
+:101B90000E947C09FF91EF91BF91AF919F918F912E
+:101BA0007F916F915F914F913F912F910F900FBE59
+:101BB0000F901F9018951F920F920FB60F9211243D
+:101BC0002F933F934F935F936F937F938F939F9345
+:101BD000AF93BF93CF93DF93EF93FF93C091E9004F
+:101BE000CF708091EC00D82FD17080FDD0E810929A
+:101BF000E9008091F000877F8093F00078940E9444
+:101C00001F0E1092E9008091F00088608093F00030
+:101C1000CD2BCF70C093E900FF91EF91DF91CF9171
+:101C2000BF91AF919F918F917F916F915F914F91F4
+:101C30003F912F910F900FBE0F901F9018951F93FB
+:101C4000CF93DF93CDB7DEB7AA970FB6F894DEBF78
+:101C50000FBECDBFE2EFF1E088E08E0F9091F10072
+:101C600091938E13FBCF0E949B098091E80083FF24
+:101C70001FC18091F2019091F301492F50E04A3049
+:101C8000510508F015C1FA01EA5AFF4F0C945A2386
+:101C9000803881F0823809F00BC18091F6018F7095
+:101CA0008093E9008091EB0085FB882780F91092F2
+:101CB000E90006C08091EE019091EF0191118260E0
+:101CC0009091E800977F9093E8008093F100109244
+:101CD000F100C8C0282F2D7F09F0EAC0882319F031
+:101CE000823061F0E5C08091F401813009F0E0C0FC
+:101CF000933009F080E08093EF012BC08091F401D4
+:101D0000811127C08091F6018F7009F4D1C08093B2
+:101D1000E9002091EB0020FF1CC0933021F480915A
+:101D2000EB00806214C09091EB0090619093EB0007
+:101D300021E030E0A90102C0440F551F8A95E2F767
+:101D40004093EA001092EA008091EB008860809353
+:101D5000EB001092E9008091E800877F86C0811136
+:101D6000A7C01091F4011F778091E3008078812B48
+:101D70008093E3008091E800877F8093E8000E94D1
+:101D80003D0C8091E80080FFFCCF8091E3008068EB
+:101D90008093E300111102C082E001C083E08093D0
+:101DA000F10186C08058823008F082C08091F40131
+:101DB0009091F5018C3D53E0950779F583E08A8396
+:101DC0008AE289834FB7F894DE01139620E03EE063
+:101DD00051E2E32FF0E050935700E49120FF03C05D
+:101DE000E295EF703F5FEF708E2F90E0EA3010F0D9
+:101DF000C79601C0C0968D939D932F5F243149F7FC
+:101E00004FBF8091E800877F8093E8006AE270E02E
+:101E1000CE0101960E94440B14C0AE014F5F5F4F8C
+:101E20006091F6010E948B0ABC01009709F440C042
+:101E30009091E800977F9093E80089819A810E94B1
+:101E4000A70B8091E8008B778093E80031C0803841
+:101E500079F58091E800877F8093E8008091ED011B
+:101E60008093F1008091E8008E778093E8000E94D3
+:101E70003D0C1EC081111CC09091F4019230C0F441
+:101E80008091E800877F8093E8009093ED010E94A5
+:101E90003D0C8091ED01811106C08091E30087FD2A
+:101EA00002C081E001C084E08093F1010E948709B3
+:101EB0008091E80083FF0AC08091E800877F8093CB
+:101EC000E8008091EB0080628093EB00AA960FB649
+:101ED000F894DEBF0FBECDBFDF91CF911F91089563
+:101EE0000895CF938091F1018823A1F0C091E9007A
+:101EF000CF709091EC00892F817090FD80E8C82B05
+:101F00001092E9008091E80083FD0E941F0ECF70BF
+:101F1000C093E900CF910895909375018093740167
+:101F20000895E0917401F0917501309721F00190CE
+:101F3000F081E02D099480E00895E0917401F09122
+:101F40007501309721F00280F381E02D0994089506
+:101F5000E0917401F0917501309721F00480F581D2
+:101F6000E02D099408952091720130917301821738
+:101F7000930771F09093730180937201E091740163
+:101F8000F0917501309721F00680F781E02D0994DA
+:101F9000089520917001309171018217930771F0BB
+:101FA0009093710180937001E0917401F09175013B
+:101FB000309721F00084F185E02D0994089508956B
+:101FC0000C94DF0F0E94391B0E94DD020C94FB1B56
+:101FD0009F92AF92BF92CF92DF92EF92FF920F93B8
+:101FE0001F93CF93DF9300D000D000D0CDB7DEB7E2
+:101FF0000E94F5020DE010E0AA24A394B12C902ECB
+:10200000802F0E94E303980129583E4F6901F9018E
+:10201000F080F826A1F40150110988F78FEF898329
+:102020008A831B820E94421B8160782F9D838C8350
+:1020300049815A816B818D810E947F102FC09091C0
+:10204000DA0191FF04C08E830E94E9038E8125E0AE
+:1020500030E0A501022E01C0440F0A94EAF7E42EF5
+:102060004F21C1F029839A828E2191E009F490E0FA
+:102070009B830E94421B8160782F9D838C834981C2
+:102080005A816B818D810E947F10F6018081E82644
+:10209000E08204C021503109E0F6BDCF0E94E21E6B
+:1020A000109176010E94910F1817B9F00E94910FBC
+:1020B0008093760126960FB6F894DEBF0FBECDBF93
+:1020C000DF91CF911F910F91FF90EF90DF90CF9014
+:1020D000BF90AF909F900C948A0826960FB6F89404
+:1020E000DEBF0FBECDBFDF91CF911F910F91FF904B
+:1020F000EF90DF90CF90BF90AF909F900895CF93D7
+:10210000DF93CDB7DEB72B970FB6F894DEBF0FBEC7
+:10211000CDBF4F83588769877A878B87DE011196F9
+:1021200086E0FD0111928A95E9F785E0FE01379678
+:1021300001900D928A95E1F749815A816B817C81EA
+:102140008D819E810E94C8162B960FB6F894DEBF33
+:102150000FBECDBFDF91CF910895CF93882309F4AF
+:10216000C2C0C82F823859F40E94910F81FDBBC0B4
+:1021700089E30E94A2190E946F1A89E30CC0833878
+:1021800079F40E94910F80FDAEC083E50E94A219F0
+:102190000E946F1A83E50E94E419CF910C946F1A84
+:1021A000843859F40E94910F82FD9DC087E40E94FB
+:1021B000A2190E946F1A87E4EECF8CEF8C0F813A40
+:1021C00048F48C2F0E94252181118DC08C2F0E94F4
+:1021D000A219E3CF80E28C0F883048F4C77081E009
+:1021E00001C0880FCA95EAF70E94281AD6CF8BE55E
+:1021F0008C0F833078F4C53A29F0C63A31F083E881
+:1022000090E005C081E890E002C082E890E0CF91C4
+:102210000C94B30F88E58C0F833108F064C0C83A82
+:1022200039F1C93A41F1CA3A49F1CB3A51F1CC3AC4
+:1022300059F1CD3A61F1C03B69F1CE3A71F1CF3A33
+:1022400079F1C13B81F1C23B89F1C33B91F1C43BC0
+:1022500099F1C53BA1F1C63BA9F1C73BB1F1C83B20
+:10226000B9F1C93BC1F1CA3BC9F180E090E038C087
+:1022700082EE90E035C089EE90E032C08AEE90E0C8
+:102280002FC085EB90E02CC086EB90E029C087EB57
+:1022900090E026C08CEC90E023C08DEC90E020C054
+:1022A00083E891E01DC08AE891E01AC082E991E0DC
+:1022B00017C084E991E014C081E292E011C083E28A
+:1022C00092E00EC084E292E00BC085E292E008C08A
+:1022D00086E292E005C087E292E002C08AE292E0E4
+:1022E000CF910C94C90FCF910895882309F44BC066
+:1022F000823859F40E94910F81FF45C089E30E9402
+:10230000A2190E946F1A89E30CC0833871F40E94ED
+:10231000910F80FF38C083E50E94A2190E946F1AB6
+:1023200083E50E94E4190C946F1A843859F40E94D2
+:10233000910F82FF28C087E40E94A2190E946F1AA1
+:1023400087E4EFCF9CEF980F913A58F390E2980F03
+:10235000983050F4877091E001C0990F8A95EAF7A0
+:10236000892F0E942E1ADFCF9BE5980F933020F41F
+:1023700080E090E00C94B30F885A833120F480E021
+:1023800090E00C94C90F0895882321F00E94281A28
+:102390000C946F1A0895882321F00E942E1A0C9431
+:1023A0006F1A08957F928F929F92AF92BF92CF92B1
+:1023B000DF92EF92FF920F931F93CF93DF931F92C1
+:1023C000CDB7DEB77C01C62E772EFC0105810295C4
+:1023D0000F70128111110E94451A0E949B198823C7
+:1023E00079F0112369F080E28C0D883048F082E0AA
+:1023F0000E9484190E949B1991E0D82ED92601C011
+:10240000D12CE72DE295EF70F0E0E05AFF4F0C94ED
+:102410005A23872D807F072D0F70882311F0029596
+:10242000007F112389F0002309F490C180E28C0D14
+:10243000883020F4802F0E94281A03C0802F0E9429
+:10244000381A0E946F1A82C18C2D0E9475110023C8
+:1024500009F495C180E28C0D883020F4802F0E9411
+:102460002E1A03C0802F0E943E1A0E946F1A87C145
+:10247000972D907F872D8F70903211F08295807FFD
+:10248000CC2021F0F1E0CF16B1F01EC0112349F0AD
+:10249000002309F414C1013009F011C10E94581A37
+:1024A0006EC1002319F0013009F469C189830E94CB
+:1024B0005B1A89810AC1112321F0023008F05FC143
+:1024C000FEC001115CC101C1112321F0002309F4F8
+:1024D000F6C03CC1002309F4F8C03EC1872D8695A3
+:1024E0008695837090E0009719F0019761F047C1DD
+:1024F000112321F08C2D972D937002C080E090E085
+:102500000E94B30F3CC1112321F08C2D972D9370A5
+:1025100002C080E090E00E94C90F31C18C2D1123D0
+:1025200019F00E94EA1D02C00E94521E0E94D71E8E
+:1025300026C1872D837009F052C0111120C18C2D46
+:10254000829586958770880F880F9C2D9F70892EA5
+:10255000912CA12CB12C082E04C0880C991CAA1C0B
+:10256000BB1C0A94D2F7C4FE14C00FE010E020E0B8
+:1025700030E0B901A80104C0440F551F661F771F42
+:102580008A95D2F7CB01BA016095709580959095A8
+:1025900003C060E070E0CB01272D269526952370BF
+:1025A00030E02230310569F02330310589F06829A7
+:1025B00079298A299B292130310571F00E94101850
+:1025C000DEC0682979298A299B290E942C18D7C046
+:1025D0000E941018C501B4010E94F417D0C0112345
+:1025E00019F0872D817001C08695882309F4C7C032
+:1025F0008C2D829586958770880F880F9C2D9F70F3
+:10260000892E912CA12CB12C082E04C0880C991C69
+:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041
+:1026200020E030E0B901A80104C0440F551F661F27
+:10263000771F8A95D2F7CB01BA0160957095809586
+:10264000909503C060E070E0CB01272D269526957C
+:102650002370422F50E04230510569F0433051055C
+:1026600089F0682979298A299B294130510571F01F
+:102670000E94EA1884C0682979298A299B290E9426
+:1026800006197DC00E94EA18C501B4010E94CE1847
+:1026900076C08C2D90E0FC01E05EF109E531F1059A
+:1026A00008F050C0E059FF4F0C945A230C2D0F70C6
+:1026B000872D8F71112331F00E946718802F0E949F
+:1026C000C4115DC00E948818802F0E94CB1157C092
+:1026D000112339F0011153C0872D8F710E94AD185D
+:1026E0004EC0023008F04BC0F7CF112339F0872DD0
+:1026F0008F710E94671843C01123C9F3872D8F7112
+:102700000E9488183CC0112329F0872D8F710E94E8
+:10271000521835C00E94481832C0112351F0172DAD
+:102720001F71812F0E94671863E0812F0E947B191F
+:1027300026C081E00E948419023008F182E00E94E4
+:1027400084191DC0112331F0002389F28C2D0E94C1
+:10275000AD1015C0002391F28C2D0E9475110FC091
+:10276000472D4F706C2DC7010E94BF040E946C174B
+:1027700006C0472D4F706C2DC7010E949905DD20C2
+:10278000F9F00E94771980FD1BC0F70112820E94A8
+:1027900071190E946718C7010E94EF130E947119F6
+:1027A0000F90DF91CF911F910F91FF90EF90DF90ED
+:1027B000CF90BF90AF909F908F907F900C9488188F
+:1027C0000F90DF91CF911F910F91FF90EF90DF90CD
+:1027D000CF90BF90AF909F908F907F9008950F9370
+:1027E0001F93CF93DF93EC01888199812B813C81EA
+:1027F000232BB9F09F3F11F48F3F99F0CE010E9437
+:10280000F104882371F0688179818A810E946D19B1
+:102810008C010E9422190E94E917B801CE010E9482
+:10282000D211DF91CF911F910F9108950E94451A07
+:102830000E94551A0E941A1A0E946F1A0E94881F3D
+:102840000E94D71E80E090E00E94B30F80E090E0ED
+:102850000C94C90F0E94351A0C9416140E94621928
+:10286000292F22952F7030E02C3031054CF42A307E
+:1028700031056CF42250310922303105A8F407C02B
+:102880002C30310569F02F30310551F00DC0803FFB
+:1028900069F018F4803E40F409C0843F29F406C072
+:1028A00093FB882780F9089580E0089581E00895DA
+:1028B000CF93DF9300D000D01F92CDB7DEB70F903B
+:1028C0000F900F900F900F90DF91CF910895CF93BD
+:1028D000DF9300D000D000D0CDB7DEB726960FB67C
+:1028E000F894DEBF0FBECDBFDF91CF9108951F9347
+:1028F000CF93DF93C091850116E080918601C817C0
+:1029000099F0D0E01C9FF0011D9FF00D1124E957B4
+:10291000FE4F4081518162817381848195810E9443
+:1029200067142196C770E9CFDF91CF911F91089569
+:102930004091B7015091B8016091B9017091BA010D
+:102940008091BB019091BC010C9467148091BC01F3
+:1029500082958F7009F054C08091B901882309F4E1
+:102960004FC080918501A09186016091B70170915F
+:10297000B8014091BA015091BB01B6E08A1709F441
+:102980003FC090E041155105C1F17F3F11F46F3F09
+:10299000A1F1B89FF001B99FF00D1124E957FE4F46
+:1029A000218172132AC02081621327C02281211144
+:1029B00024C0238134812417350710F421503109B4
+:1029C000241B350B283C3105C0F42091BC012F702D
+:1029D00020612093BC0126E0289FF001299FF00D83
+:1029E0001124E457FE4F80818F708061808387EBD4
+:1029F00091E00E94EF130C94771401968770BECF7C
+:102A00000895CF92DF92EF92FF920F931F93CF938F
+:102A1000DF93CDB7DEB762970FB6F894DEBF0FBE77
+:102A2000CDBF8C0185E0F801DE011D9601900D926D
+:102A30008A95E1F7D8014C9111965C911197129605
+:102A40006C9112971396CD90DC9014973091B7014A
+:102A50007091B8018091BA019091BB01009709F47F
+:102A60006BC17F3F19F43F3F09F466C1E090B901A3
+:102A7000EE2009F4C0C02091BC01C816D90628F088
+:102A8000F601E81BF90BCF0104C0809590958C0DE1
+:102A90009D1DFF24F394883C910578F0F12C207F54
+:102AA00009F0C6C07C2DD98AC88A89890E94581429
+:102AB00087EB91E00E94EF13B1C0822F807F09F075
+:102AC00046C0751314C0341312C0611110C02F70AA
+:102AD00020612093BC010E94981487EB91E00E9432
+:102AE000EF138091BC01D80115968C932EC0CD2890
+:102AF00019F15F3F11F44F3FF9F0F62E61111CC040
+:102B0000809185012091860136E0821709F45AC030
+:102B100090E0389FF001399FF00D1124E957FE4FE6
+:102B20007181571306C07081471303C07281711100
+:102B300003C001968770E9CFF62E662309F418C109
+:102B40008091BC0181608093BC01F12C11C175138F
+:102B500008C0341306C0611104C08091BC01D801C3
+:102B6000C3C04D875E878D859E856A8B0E942E141B
+:102B70006A898823E1F16623D1F12091BC01822F7B
+:102B800082958F7090E0029774F08091B7019091D8
+:102B9000B80198878F831986DB86CA862C87CE0179
+:102BA00007960E94EF1386E0F801A7EBB1E00190D1
+:102BB0000D928A95E1F70E94A6140E949814FF24B2
+:102BC000F394D6C04D875E878D859E850E946219DD
+:102BD000292F22952F7030E0223031050CF0BCC037
+:102BE0009F7009F0B6C0805E883008F4C1C0C8018B
+:102BF0000E94EF13E4CFC816D90608F453C0F601BB
+:102C0000E81BF90BCF01883C910508F450C0F12C6A
+:102C10007C2DD98AC88A89890E945814E7EBF1E093
+:102C200086E0DF011D928A95E9F70E949814A0C002
+:102C3000751314C0341312C0611110C08091BC010F
+:102C4000F8018583C8010E94EF1386E0E7EBF1E00D
+:102C5000DF011D928A95E9F7FE2C8AC04D875E87B9
+:102C60008D859E856A8B0E942E146A89882309F4BB
+:102C7000BECF662309F4BBCF2091BC01822F829581
+:102C80008F7090E002970CF48ECF8091B7019091F5
+:102C9000B8019A8389831B82DD82CC822E83CE0188
+:102CA00001967FCF809590958C0D9D1DACCFF62E13
+:102CB000662309F49CCF75132EC034132CC02091C9
+:102CC000BC0120FD1FC0822F82958F70D9F0D801E2
+:102CD00015962C9315978F3049F08F5F982F92950A
+:102CE000907F822F8F70892B15968C93C8010E943C
+:102CF000EF1386E0F801A7EBB1E001900D928A9501
+:102D0000E1F793CF86E0F801A7EBB1E001900D92D7
+:102D10008A95E1F72DC04D875E878D859E850E943F
+:102D20002E14811140CF8091BC0181608093BC0141
+:102D3000C8010E94EF131CC0662309F458CF4D87C9
+:102D40005E878D859E850E942E14882309F44FCFBF
+:102D50002ACF811148CF0CC0243031050CF047CF69
+:102D60009F7009F440CFF8019581907F09F03BCF27
+:102D70008F2D62960FB6F894DEBF0FBECDBFDF91E8
+:102D8000CF911F910F91FF90EF90DF90CF9008951A
+:102D90001F93CF93DF93CDB7DEB72C970FB6F89480
+:102DA000DEBF0FBECDBF4F83588769877A878B8779
+:102DB0009C87CE0107960E940115882369F08F81B8
+:102DC00098852A853B85232BF1F19F3F09F063C04D
+:102DD0008F3F09F060C037C086E0FE013796DE0104
+:102DE000119601900D928A95E1F76F817885EA85B9
+:102DF000FB85309741F17F3F11F46F3F21F1209126
+:102E0000860130E0C90101968770992740918501BC
+:102E100050E08417950709F447C069837A83FD83DE
+:102E2000EC8396E0929FD001939FB00D1124A95797
+:102E3000BE4FFE01319601900D929A95E1F7809375
+:102E400086010E94771416E0809185019091860199
+:102E50008917C1F1189FC001112489579E4F0E9404
+:102E60000115882379F1E09185011E9FF00111245D
+:102E7000E957FE4F40815181628173818481958140
+:102E80000E9467148091850190E0019687709927D0
+:102E900080938501D9CF4F81588569857A858B8547
+:102EA0009C850E946714CFCF0E942A14109286013D
+:102EB00010928501E7EBF1E086E0DF011D928A9533
+:102EC000E9F7C1CF2C960FB6F894DEBF0FBECDBF89
+:102ED000DF91CF911F910895EF92FF920F931F936F
+:102EE000CF93DF938C01009709F46CC0F12CEE2492
+:102EF000E394E8012196F8018491843740F484300A
+:102F000008F051C0813081F0823019F15BC0853703
+:102F100009F444C0A8F19CE7980F903708F052C01C
+:102F20008F770E94751141C00E5F1F4FFE01C49143
+:102F300080E28C0F883048F4C7708E2D01C0880F56
+:102F4000CA95EAF70E94481A14C08C2F0E94AD104F
+:102F50002DC00E5F1F4FFE01C49180E28C0F8830A0
+:102F600058F4C7708E2D01C0880FCA95EAF70E94E9
+:102F70004E1A0E946F1A1AC08C2F0E94751116C02B
+:102F80000E5F1F4FFE01C491CC2381F08FE99FE0BB
+:102F90000197F1F700C00000C150F6CF0E5F1F4F40
+:102FA000FE01F49003C00E94AD108E018F2D882386
+:102FB00009F49FCFEFE9FFE03197F1F700C000007F
+:102FC0008150F5CFDF91CF911F910F91FF90EF903E
+:102FD000089508956093C1017093C2018093C30165
+:102FE0009093C4010C9416140F931F930091C10188
+:102FF0001091C2012091C3013091C401DC01CB01C9
+:10300000802B912BA22BB32B8093C1019093C201F3
+:10301000A093C301B093C4011F910F910C94161497
+:103020000F931F930091C1011091C2012091C30120
+:103030003091C401DC01CB0180239123A223B3236F
+:103040008093C1019093C201A093C301B093C401C6
+:103050001F910F910C9416140F931F930091C101AF
+:103060001091C2012091C3013091C401DC01CB0158
+:1030700080279127A227B3278093C1019093C20193
+:10308000A093C301B093C4011F910F910C94161427
+:103090001092BD011092BE011092BF011092C001AA
+:1030A0000C94161441E050E060E070E004C0440F5E
+:1030B000551F661F771F8A95D2F74093BD01509325
+:1030C000BE016093BF017093C0010C94161441E0DF
+:1030D00050E060E070E004C0440F551F661F771F8A
+:1030E0008A95D2F78091BD019091BE01A091BF0158
+:1030F000B091C001482B592B6A2B7B2B4093BD010B
+:103100005093BE016093BF017093C0010C941614DC
+:1031100041E050E060E070E004C0440F551F661FBE
+:10312000771F8A95D2F7409550956095709580915C
+:10313000BD019091BE01A091BF01B091C001482393
+:1031400059236A237B234093BD015093BE016093B2
+:10315000BF017093C0010C94161441E050E060E090
+:1031600070E004C0440F551F661F771F8A95D2F781
+:103170008091BD019091BE01A091BF01B091C001AD
+:10318000482759276A277B274093BD015093BE01EA
+:103190006093BF017093C0010C9416140F931F939A
+:1031A0000091BD011091BE012091BF013091C0017D
+:1031B000DC01CB01802B912BA22BB32B8093BD0183
+:1031C0009093BE01A093BF01B093C0011F910F91D6
+:1031D0000C9416140F931F930091BD011091BE0122
+:1031E0002091BF013091C001DC01CB0180239123EC
+:1031F000A223B3238093BD019093BE01A093BF018E
+:10320000B093C0011F910F910C9416140F931F934C
+:103210000091BD011091BE012091BF013091C0010C
+:10322000DC01CB0180279127A227B3278093BD0122
+:103230009093BE01A093BF01B093C0011F910F9165
+:103240000C9416140895CF92DF92EF92FF920F9391
+:103250001F93CF93DF938C01C090C101D090C20126
+:10326000E090C301F090C4018091BD019091BE0136
+:10327000A091BF01B091C001C82AD92AEA2AFB2A2D
+:10328000CFE1D0E0D701C6010C2E04C0B695A795BA
+:10329000979587950A94D2F780FF06C0B8018C2FC6
+:1032A0000E94EF07019721F4219760F780E001C0A9
+:1032B0008C2FDF91CF911F910F91FF90EF90DF90B6
+:1032C000CF900895CF93DF93EC010E942319BE01A4
+:1032D0000E94EF07DF91CF910895CB010E94621900
+:1032E00008958091C501859585958595089580916E
+:1032F000C5018770089598E0899F90011124262BBD
+:103300002093C5010C9467182091C50180958223F4
+:103310008093C501982F977069F430E0482F5527A6
+:1033200047FD50952417350729F085958595859596
+:103330000C94881808959091C501977081E009F464
+:1033400080E0089590910C01992321F090910D0156
+:10335000911109C020910E0130910F01F9013296AF
+:103360009FEF40E01FC0982F9695969596959F30B9
+:1033700050F5E0910E01F0910F01E90FF11D8770FA
+:1033800021E030E0A90102C0440F551F8A95E2F701
+:10339000CA019181892B818308959F3F39F04F5F46
+:1033A0004E3041F051915813F8CF0DC05111F7CF65
+:1033B000942FF5CF9F3F39F0F901E90FF11D97FDEB
+:1033C000FA9582830895089590910C01992321F034
+:1033D00090910D01911109C020910E0130910F01C2
+:1033E000F9013296205F3F4F1FC0982F9695969512
+:1033F00096959F30F0F4E0910E01F0910F01E90FE6
+:10340000F11D877021E030E0A90102C0440F551F73
+:103410008A95E2F7CA018095918189238183089575
+:103420003196E217F30729F090819813F9CF1082B3
+:10343000F7CF089581E090E0E0910E01F0910F0147
+:10344000E80FF91F1082019680319105A9F70895C0
+:103450009091D901892B8093D901089580959091FD
+:10346000D90189238093D90108951092D901089533
+:103470009091D801892B8093D801089580959091DF
+:10348000D80189238093D80108951092D801089516
+:103490009091D701892B8093D701089580959091C1
+:1034A000D70189238093D70108951092D7010895F9
+:1034B0008093C60108951092C601089580910E016F
+:1034C00090910F01FC0131969C01205F3F4F80E0FD
+:1034D000919191118F5FE217F307D1F70895E09171
+:1034E0000E01F0910F018091D9018083E0910E01CE
+:1034F000F0910F0190818091D801892B8083E09118
+:103500000E01F0910F0190818091D701892B80836A
+:103510008091C601882361F0E0910E01F0910F01C6
+:103520009081892B80830E945E1A81111092C601BE
+:1035300080910E0190910F010C949D0F20E0009757
+:1035400039F0AC0141505109842395232F5FF7CF07
+:10355000822F0895CF92DF92EF92FF926C01EE24BA
+:10356000FF24C114D104E104F10421F0C701B60124
+:1035700020E101C020E0C72ED82EE92EFF24C1147F
+:10358000D104E104F10419F0285FC701B6016B0111
+:103590007C0154E0F694E794D794C7945A95D1F7F8
+:1035A000C114D104E104F10419F02C5FC701B60184
+:1035B0006B017C0142E0F694E794D794C7944A9556
+:1035C000D1F7C114D104E104F10419F02E5FC70151
+:1035D000B601DC01CB01B695A79597958795892B08
+:1035E0008A2B8B2B09F02F5F822FFF90EF90DF90BB
+:1035F000CF9008958091F101843021F11092DB0188
+:1036000020E488E190E00FB6F894A89580936000DC
+:103610000FBE2093600080E00E948A0883B7817FFC
+:10362000846083BF83B7816083BF7894889583B7B4
+:103630008E7F83BF88E10FB6F8948093600010926C
+:1036400060000FBE0895089508950E94231B0E94F4
+:10365000F5020E94241B0E94EA0391E0811101C03F
+:1036600090E0892F08950E942A140E94910F0C94D3
+:103670008A0882E084BD93E095BD9AEF97BD809360
+:103680006E0008952FB7F8948091DC019091DD01D0
+:10369000A091DE01B091DF012FBF0895CF92DF929C
+:1036A000EF92FF920F931F932FB7F8944091DC0194
+:1036B0005091DD016091DE017091DF012FBF6A0141
+:1036C0007B01EE24FF248C0120E030E0C016D106FF
+:1036D000E206F30610F4415051099A01281B390BF8
+:1036E000C9011F910F91FF90EF90DF90CF90089547
+:1036F0001F920F920FB60F9211248F939F93AF9347
+:10370000BF938091DC019091DD01A091DE01B09129
+:10371000DF010196A11DB11D8093DC019093DD01B5
+:10372000A093DE01B093DF01BF91AF919F918F9184
+:103730000F900FBE0F901F9018950E948E0CF8945A
+:103740002FEF87EA91E6215080409040E1F700C0DA
+:10375000000087E090EBDC018093FB019093FC017B
+:10376000A093FD01B093FE019CE088E10FB6F894B0
+:10377000A895809360000FBE90936000FFCFEF92FA
+:10378000FF920F931F93CF93DF93D82FCDE08C2F11
+:103790000E94E30305E010E0E82EF12CC701002EA3
+:1037A00002C0959587950A94E2F780FF09C0602FC3
+:1037B0007C2F80E00E949A05D81302C081E006C0E9
+:1037C0000150110958F7C15010F780E0DF91CF91F7
+:1037D0001F910F91FF90EF900895CF93C82F8CE227
+:1037E0000E94BF1B882321F08C2FCF910C94BF1B0C
+:1037F00080E0CF910895CF930E94421D811102C0B5
+:103800000E94281DC5E6C15049F00E94F5028FE3D1
+:103810009CE90197F1F700C00000F5CF89E20E9412
+:10382000ED1B811113C18AE20E94ED1B81110E94E0
+:10383000281D85E00E94ED1B81110E949D1B0E94A6
+:103840004D1D8093DA0187E00E94ED1B8823A9F1CA
+:103850008BE10E94ED1B882351F08091DA0181FBFE
+:10386000222720F991E0922790FB81F90EC08EE08B
+:103870000E94ED1B882361F08091DA0182FB2227F0
+:1038800020F991E0922790FB82F98093DA0115C02C
+:1038900080E10E94ED1B9091DA01882341F093FBB7
+:1038A000222720F981E0822780FB93F904C0892F29
+:1038B000809580FB90F99093DA018091DA010E9463
+:1038C000511D0E945F1D8093FA0180EE0E94ED1B46
+:1038D000882341F08091FA01982F909590FB80F910
+:1038E0008093FA0189E30E94ED1B882359F08091AF
+:1038F000FA0181FB222720F991E0922790FB81F9C0
+:103900008093FA0182EE0E94ED1B882359F080918A
+:10391000FA0182FB222720F991E0922790FB82F99D
+:103920008093FA0186EE0E94ED1B882359F0809166
+:10393000FA0183FB222720F991E0922790FB83F97B
+:103940008093FA0183EE0E94ED1B882359F0809149
+:10395000FA0184FB222720F991E0922790FB84F959
+:103960008093FA0185E30E94ED1B882359F0809132
+:10397000FA0185FB222720F991E0922790FB85F937
+:103980008093FA0181E30E94ED1B882359F0809116
+:10399000FA0186FB222720F991E0922790FB86F915
+:1039A0008093FA0181E10E94ED1B882359F08091F8
+:1039B000FA0187FB222720F991E0922790FB87F9F3
+:1039C0008093FA018091FA010E94631D8091FA01AF
+:1039D00087FB882780F980930D0187E20E94ED1B09
+:1039E000C82F8EE10E94ED1B8111C2608FE10E9401
+:1039F000ED1B8111C46080E20E94ED1B8111C86043
+:103A000081E20E94ED1B8111C06182E20E94ED1BE8
+:103A10008111C06283E20E94ED1B8111C06484E2C7
+:103A20000E94ED1B882311F0C06802C0CC2329F04E
+:103A30008C2F0E945A1D6C2F03C00E94561D682FA8
+:103A400070E080E090E0CF910C94EA17CF91089558
+:103A50006DEE7EEF80E090E00E94942360E082E0D3
+:103A600090E00E94822360E083E090E00E94822345
+:103A700060E084E090E00E94822360E085E090E0D6
+:103A80000C94822380E090E00E947C2321E08D3E14
+:103A90009E4F09F020E0822F089582E090E00C9480
+:103AA0007423682F82E090E00C94822383E090E0FE
+:103AB0000C947423682F83E090E00C94822384E0BC
+:103AC00090E00C947423682F84E090E00C9482239F
+:103AD0008091E20180FF0BC06091130185E0689F37
+:103AE000B001112475956795759567952BC081FF79
+:103AF00009C06091130185E0689FB001112475959C
+:103B0000679520C082FF07C06091130185E0689F20
+:103B1000B001112417C09091E3019923D1F0609175
+:103B20001201961788F72091130185E0289F9001D4
+:103B30001124929FA001939F500D112470E0CA019F
+:103B40000E9446236038710540F46115710539F013
+:103B500002C065E070E0862F08958FE7089581E048
+:103B600008958091E20180FF08C06091110170E02A
+:103B7000759567957595679521C081FF06C0609121
+:103B8000110170E07595679519C082FF04C06091BE
+:103B9000110170E010C09091E3019923C1F0609190
+:103BA00010019617A0F780911101899FC00111247F
+:103BB00070E00E9446236038710528F46115710594
+:103BC00021F0862F08958FE7089581E0089561E040
+:103BD00070E0F4CF803F21F40E94681D819504C0FD
+:103BE000813F29F40E94681D8093E6010895823F79
+:103BF00021F40E94681D819504C0833F29F40E942E
+:103C0000681D8093E5010895893F19F40E94B11D54
+:103C100005C08A3F31F40E94B11D81958093E70170
+:103C200008958B3F21F40E94B11D819504C08C3F03
+:103C300029F40E94B11D8093E8010895843F21F486
+:103C40008091E401816017C0853F21F48091E401F7
+:103C5000826011C0863F21F48091E40184600BC032
+:103C6000873F21F48091E401886005C0883F31F4EA
+:103C70008091E40180618093E40108958D3F21F4F7
+:103C80008091E20181600BC08E3F21F48091E201BE
+:103C9000826005C08F3F29F48091E20184608093A7
+:103CA000E2010895803F39F48091E60187FF6CC0FE
+:103CB0001092E60169C0813F29F48091E60118164F
+:103CC000BCF362C09091E501823F29F497FF5CC08C
+:103CD0001092E50159C0833F19F41916CCF354C072
+:103CE000893F41F48091E70118160CF04DC0109205
+:103CF000E7014AC08A3F29F48091E70187FF44C069
+:103D0000F6CF8B3F39F48091E80187FF3DC01092D8
+:103D1000E8013AC08C3F29F48091E8011816BCF301
+:103D200033C0843F21F48091E4018E7F17C0853F2A
+:103D300021F48091E4018D7F11C0863F21F48091B0
+:103D4000E4018B7F0BC0873F21F48091E401877FE2
+:103D500005C0883F31F48091E4018F7E8093E401B7
+:103D600013C08D3F21F48091E2018E7F0BC08E3F06
+:103D700021F48091E2018D7F05C08F3F29F480916D
+:103D8000E2018B7F8093E2018091E50181110EC0F9
+:103D90008091E60181110AC08091E701811106C07E
+:103DA0008091E801811102C01092E301089584EE30
+:103DB00091E00E94A80F0E94421B9093E101809322
+:103DC000E00108951F93CF93DF938091E0019091DC
+:103DD000E1010E944E1BAC019091E301992321F077
+:103DE0002091140130E006C0209115018AE0289F3F
+:103DF000900111244217530708F486C08091E50111
+:103E0000C091E601D091E7011091E801811107C04E
+:103E1000C11176C0D11174C0111172C075C09F3F1D
+:103E200019F09F5F9093E301181624F40E94681D17
+:103E30008093E5018091E50187FF05C00E94681D20
+:103E400081958093E5011C1624F40E94681D8093DF
+:103E5000E6018091E60187FF05C00E94681D8195FB
+:103E60008093E6016091E501662339F1C091E60196
+:103E7000CC2319F1772767FD7095872F972F0E9424
+:103E8000572223E333E343E35FE30E94BB220E9414
+:103E900024226093E5016C2F772767FD7095872FAB
+:103EA000972F0E94572223E333E343E35FE30E940B
+:103EB000BB220E9424226093E6011D1624F40E9476
+:103EC000B11D8093E7018091E70187FF05C00E9443
+:103ED000B11D81958093E701111624F40E94B11D54
+:103EE0008093E8018091E80187FF05C00E94B11D21
+:103EF00081958093E801DF91CF911F910C94D71E9B
+:103F00009F3F09F08ECF96CFDF91CF911F910895FB
+:103F1000E4EEF1E085E0DF011D928A95E9F7109269
+:103F2000E3011092E2010895833081F128F4813099
+:103F300059F08230D1F00895853009F449C0B8F1C4
+:103F4000863009F456C0089580911501262F30E07F
+:103F5000280F311D2F3F310524F4680F60931501A0
+:103F600008958FEF80931501089580911401262FF5
+:103F700030E0280F311D2F3F310524F4680F609386
+:103F8000140108958FEF8093140108958091130117
+:103F9000262F30E0280F311D2F3F310524F4680F04
+:103FA0006093130108958FEF80931301089580911A
+:103FB0001201262F30E0280F311D2F3F310524F448
+:103FC000680F6093120108958FEF80931201089596
+:103FD00080911101262F30E0280F311D2F3F310530
+:103FE00024F4680F6093110108958FEF80931101FD
+:103FF000089580911001262F30E0280F311D2F3FAA
+:10400000310524F4680F6093100108958FEF8093B9
+:1040100010010895833011F128F4813049F0823085
+:1040200091F00895853081F120F18630C1F1089535
+:1040300080911501681720F4861B8093150108955F
+:1040400010921501089580911401681720F4861BC1
+:104050008093140108951092140108958091130122
+:10406000681720F4861B80931301089510921301A2
+:10407000089580911201681720F4861B8093120125
+:10408000089510921201089580911101681720F48B
+:10409000861B80931101089510921101089580915B
+:1040A0001001681720F4861B809310010895109268
+:1040B000100108950F931F938D3109F46BC008F020
+:1040C0003FC08E3009F47FC0C0F4873009F469C066
+:1040D00068F4863009F0B1C08091DA01817F8E7F6B
+:1040E0008093DA0181E08093EA01A8C0883009F466
+:1040F000A2C08B3009F49FC0A0C0863109F49BC0D8
+:1041000078F4803109F472C0813109F096C00E94C0
+:104110002A1490910D0181E0892780930D018BC0B5
+:10412000893109F488C08B3109F087C08091DA01A8
+:1041300081FB222720F991E0922790FB81F94CC066
+:10414000853309F470C048F4873209F46CC008F470
+:1041500059C0893209F467C070C0833438F48A3397
+:1041600008F04EC0883309F466C067C0833409F490
+:104170005AC0883409F061C00E942A140FEF13ED71
+:1041800020E3015010402040E1F700C000000E94F1
+:104190009D1B51C00E94DE210E94910F0E948A083F
+:1041A0004AC09091DA01892F8095817080FB90F947
+:1041B00029F0966098609093DA0140C0997F977FCC
+:1041C0009093DA0138C08091DA0182FB222720F92E
+:1041D00091E0922790FB82F98093DA01992359F1BB
+:1041E0008091DA0181608093DA0125C08091DA0143
+:1041F00083FB222720F991E0922790FB83F9ECCFF3
+:10420000895301C08D5141E050E060E070E08A01C7
+:104210009B0104C0000F111F221F331F8A95D2F784
+:10422000C901B80104C061E070E080E090E00E9444
+:10423000EA170E942A1481E001C080E01F910F91CB
+:10424000089580E0089580E00895CF93C82F80916D
+:10425000EA01813079F018F08230E9F187C0E0910D
+:104260000E01F0910F018081813169F0823209F0F5
+:104270007FC009C0E0910E01F0910F018081813172
+:1042800011F0823261F48C2F0E942121811104C02F
+:104290008C2F0E945A201DC081E090E01AC08C2F04
+:1042A0000E942321811114C0C43179F048F4CB302D
+:1042B00079F0C03109F060C082E08093EA0108C063
+:1042C000C93219F0C83321F057C01092EA0154C026
+:1042D00081E0817053C0C93289F118F5C43171F1A0
+:1042E000A8F4C73009F046C08AE08093150194E134
+:1042F0009093140193E0909313018093120188E04E
+:104300008093110188E28093100134C0CE51C630F1
+:1043100088F5EC2FF0E0E65DFE4F80818093E901A7
+:1043200029C0CE34E9F020F4CB3421F56AE013C083
+:10433000C13579F0C235F1F461E00DC08091E90139
+:10434000882319F01092E90115C081E08093EA01F9
+:1043500015C061E006C08091E9010E94941F0AC067
+:104360006AE08091E9010E940A2004C01092EA01EB
+:1043700080E004C081E002C080E0ABCFCF9108951F
+:10438000E1E8F0E0808188608083808181608083C3
+:104390008FB7F89493E09093890090ED9093880004
+:1043A0008FBF0895EFE6F0E08081826080830895FA
+:1043B000EFE6F0E080818D7F80830895EFE6F0E006
+:1043C000908182E08927808308951F920F920FB613
+:1043D0000F9211242F933F934F935F936F937F938B
+:1043E0008F939F93AF93BF93EF93FF938091EB01D4
+:1043F0009091EC0101969093EC018093EB01811177
+:1044000003C082E00E948A08E091EC01E695E695FF
+:10441000F0E0E85FFB4FE4918091EB018E1303C065
+:1044200080E00E948A08FF91EF91BF91AF919F9128
+:104430008F917F916F915F914F913F912F910F904D
+:104440000FBE0F901F90189504D06894B1118DC0C5
+:10445000089570D088F09F5790F0B92F9927B751E1
+:10446000A0F0D1F0660F771F881F991F1AF0BA9538
+:10447000C9F712C0B13081F077D0B1E0089574C0AF
+:10448000672F782F8827B85F39F0B93FCCF386952E
+:1044900077956795B395D9F73EF49095809570958B
+:1044A00061957F4F8F4F9F4F0895E89409C097FB08
+:1044B0003EF490958095709561957F4F8F4F9F4FFB
+:1044C0009923A9F0F92F96E9BB279395F69587953F
+:1044D00077956795B795F111F8CFFAF4BB0F11F402
+:1044E00060FF1BC06F5F7F4F8F4F9F4F16C08823A9
+:1044F00011F096E911C0772321F09EE8872F762FDF
+:1045000005C0662371F096E8862F70E060E02AF01F
+:104510009A95660F771F881FDAF7880F969587950B
+:1045200097F9089557FD9058440F551F59F05F3F74
+:1045300071F04795880F97FB991F61F09F3F79F0C5
+:1045400087950895121613061406551FF2CF469547
+:10455000F1DF08C0161617061806991FF1CF8695C9
+:104560007105610508940895E894BB2766277727AD
+:10457000CB0197F908950BD078C069D028F06ED0A0
+:1045800018F0952309F05AC05FC01124EECFCADF9E
+:10459000A0F3959FD1F3950F50E0551F629FF00156
+:1045A000729FBB27F00DB11D639FAA27F00DB11DAF
+:1045B000AA1F649F6627B00DA11D661F829F222738
+:1045C000B00DA11D621F739FB00DA11D621F839FBF
+:1045D000A00D611D221F749F3327A00D611D231F95
+:1045E000849F600D211D822F762F6A2F11249F57E3
+:1045F00050408AF0E1F088234AF0EE0FFF1FBB1F06
+:10460000661F771F881F91505040A9F79E3F5105A4
+:1046100070F014C0AACF5F3FECF3983EDCF38695B0
+:1046200077956795B795F795E7959F5FC1F7FE2B4F
+:10463000880F911D9695879597F9089597F99F672B
+:1046400080E870E060E008959FEF80EC089500241A
+:104650000A941616170618060906089500240A94E7
+:1046600012161306140605060895092E0394000C6D
+:1046700011F4882352F0BB0F40F4BF2B11F460FFFC
+:1046800004C06F5F7F4F8F4F9F4F089597FB072E9A
+:1046900016F4009407D077FD09D00E94602307FC30
+:1046A00005D03EF4909581959F4F08957095619542
+:1046B0007F4F0895EE0FFF1F0590F491E02D0994B0
+:1046C000AA1BBB1B51E107C0AA1FBB1FA617B70738
+:1046D00010F0A61BB70B881F991F5A95A9F7809554
+:1046E0009095BC01CD010895F999FECF92BD81BD91
+:1046F000F89A992780B50895A8E1B0E042E050E02B
+:104700000C949C23262FF999FECF92BD81BDF89A77
+:10471000019700B4021639F01FBA20BD0FB6F89405
+:10472000FA9AF99A0FBE08950196272F0E948323C3
+:104730000C948223DC01CB01FC01F999FECF06C069
+:10474000F2BDE1BDF89A319600B40D92415050404F
+:08475000B8F70895F894FFCFBB
+:1047580002208C081A09F708C3088F080101C7014D
+:1047680028080A03140A3F4D3639C9037C03460357
+:104778000D03A002B902D202EB02010203040506EE
+:044788000708090015
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/software_neo2/keymap.c b/keyboards/ergodox_ez/keymaps/software_neo2/keymap.c new file mode 100644 index 000000000..2eaba0d7d --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/software_neo2/keymap.c @@ -0,0 +1,139 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_neo2.h" + +// Layer names +#define BASE 0 // default layer +#define MDIA 1 // media keys + +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 | X | V | L | C | W | L1 | | L1 | K | H | G | F | Q | ß | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | 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 | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | L1 | Home | PgDn | PgUp | End | | Right| Down | Up | Left | Esc | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | App | LGui | | Alt |Ctrl/Esc| + * ,------+------+------| |------+--------+------. + * | | |NeoL2 | |NeoL2 | | | + * | Tab |Backsp|------| |------| Space |Enter | + * | |ace |NeoL1 | |NeoL1 | | | + * `--------------------' `----------------------' + */ +// 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, + // 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 + ), +/* Keymap 1: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | Lclk | MsUp | Rclk | | | | | |VolDwn| Mute |VolUp | | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | Btn4 |MsLeft|MsDown|MsRght| Btn5 |------| |------| | Prev | Stop | Play | Next | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | |WhRght|WhDown| WhUp |WhLeft|WhClk | | | |BwSrch|BwBack|BwHome|BwRefr|BwFwd | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | |MsAcl0|MsAcl1|MsAcl2| | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | |Brwser|Brwser| + * | Lclk | Rclk |------| |------|Back |Forwd | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[MDIA] = KEYMAP( + KC_TRNS, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_TRNS, + KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS, + KC_TRNS, KC_BTN4, KC_MS_L, KC_MS_D, KC_MS_R, KC_BTN5, + KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_BTN3, KC_TRNS, + KC_TRNS, KC_TRNS, KC_ACL0, KC_ACL1, KC_ACL2, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_BTN1, KC_BTN2, KC_TRNS, + // right hand + KC_TRNS, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11, + KC_TRNS, KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_F12, + KC_TRNS, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, KC_TRNS, + KC_TRNS, KC_WSCH, KC_WBAK, KC_WHOM, KC_WREF, KC_WFWD, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_WBAK, KC_WFWD +), +}; + +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) { + case MDIA: + ergodox_right_led_2_on(); + break; + default: + ergodox_board_led_off(); + break; + } + +}; diff --git a/keyboards/ergodox_ez/keymaps/supercoder/README.md b/keyboards/ergodox_ez/keymaps/supercoder/README.md new file mode 100644 index 000000000..97bf7f583 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/supercoder/README.md @@ -0,0 +1,29 @@ +SuperCoder 2000 layout for the ErgoDox +================================================== + +![SuperCoder 2000](images/supercoder_2000.jpg) + +Ever found yourself in need of entering binary codes rapidly? Ever wanted to use +all ten fingers to do so? Ever felt your SuperCoder 2000 too limiting, by only +having three buttons? We heard you! With this layout for the ErgoDox EZ, you +will be able to tap in binary at an unparalleled speed and accuracy! Efficiency +never seen before! + +Behold the Ultimate SuperCoder 2000 layout! + +![SuperCoder layout](images/layout.png) + +### To use it... + +To use this piece of top quality engineering, you can either +[download the hex file][hex] we have prepared for you, or you can compile it on +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/algernon/ergodox-supercoder.git keymaps/supercoder +$ make KEYMAP=supercoder +``` diff --git a/keyboards/ergodox_ez/keymaps/supercoder/compiled.hex b/keyboards/ergodox_ez/keymaps/supercoder/compiled.hex new file mode 100644 index 000000000..e4113a757 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/supercoder/compiled.hex @@ -0,0 +1,1122 @@ +:100000000C94D0010C9414020C9414020C9414025D
+:100010000C9414020C9414020C9414020C94140208
+:100020000C9414020C9414020C948F0C0C94610D1B
+:100030000C9414020C9414020C9414020C941402E8
+:100040000C9414020C941B210C9414020C941402B2
+:100050000C9414020C94AE1A0C9414020C94140216
+:100060000C9414020C9414020C9414020C941402B8
+:100070000C9414020C9414020C9414020C941402A8
+:100080000C9414020C9414020C9414020C94140298
+:100090000C9414020C9414020C9414020C94140288
+:1000A0000C9414020C9414020C941402CE0DF00D56
+:1000B000DE0EF00DDE0E350E580EDE0EAD0EC00E4D
+:1000C0008F118F11BE11BE11F41114124513451377
+:1000D0001F124513CF12CF123613451345133F138A
+:1000E000DC12DC12DC12DC12DC12DC12DC12DC12A0
+:1000F000DC12DC12DC12DC12DC12DC12DC12DC1290
+:10010000EE12FB1202130913131327002700270016
+:1001100027002700000027002700270027002700CE
+:100120002800270027002700270027002800270095
+:100130002700270027002700280027002700270086
+:10014000270027002800270027002700270000009D
+:1001500028002700270000002700000028001E00BC
+:100160001E0000001E00000028001E001E001E00D1
+:100170001E00000028001E001E001E001E001E00A3
+:1001800028001E001E001E001E001E0028001E006B
+:100190001E001E001E001E0028001E001E001E0065
+:1001A0001E001E0028001E001E001E001E001E0055
+:1001B000000016034500720067006F0044006F00E6
+:1001C0007800200045005A00000016034500720028
+:1001D00067006F0044006F007800200045005A005F
+:1001E00000000403090409026D00040100A0FA09DB
+:1001F0000400000103010100092111010001223F57
+:10020000000705810308000A090401000103010237
+:1002100000092111010001224D0007058203080099
+:100220000A09040200010300000009211101000174
+:100230002236000705830308000A090403000103AE
+:100240000000000921110100012239000705840383
+:100250001000011201100100000008EDFE0713015B
+:10026000000102000105010906A101050719E029A5
+:10027000E715002501950875018102050819012976
+:100280000595057501910295017503910105071901
+:1002900000297715002501957875018102C00501B7
+:1002A0000980A101850216010026B7001A01002A63
+:1002B000B700751095018100C0050C0901A10185E9
+:1002C00003160100269C021A01002A9C0275109553
+:1002D000018100C005010902A1010901A100050970
+:1002E0001901290515002501950575018102950162
+:1002F000750381010501093009311581257F9502BA
+:100300007508810609381581257F950175088106D4
+:10031000050C0A38021581257F950175088106C0F4
+:10032000C005010906A101050719E029E715002507
+:10033000019508750181029501750881010508196B
+:100340000129059505750191029501750391010536
+:1003500007190029FF150025FF950675088100C0C3
+:100360000000000000000000000000010204060A76
+:100370000F17202C3A4A5D71879DB3C7DAE9F5FC67
+:10038000FFFCF5E9DAC7B39D87715D4A3A2C201767
+:100390000F0A060402010000000000000000000037
+:1003A00011241FBECFEFDAE0DEBFCDBF04B603FEDF
+:1003B00024C08091FB019091FC01A091FD01B091BE
+:1003C000FE018730904BA740B04BB9F41092FB016F
+:1003D0001092FC011092FD011092FE0114BE84B730
+:1003E000877F84BF88E10FB6F894809360001092F5
+:1003F00060000FBEE0E0FFE3099511E0A0E0B1E08E
+:10040000E4ECF5E402C005900D92A433B107D9F7EE
+:1004100011E0A4E3B1E001C01D92AB3FB107E1F7E9
+:100420000E94D3090C94E0220C9400001092B900B1
+:100430008AE08093B800089594EA9093BC0090916C
+:10044000BC0097FFFCCF9091B900987F983021F0C5
+:10045000903111F081E008958093BB0084E880938F
+:10046000BC008091BC0087FFFCCF8091B900887FE1
+:10047000883111F0803471F780E0089584E9809329
+:10048000BC008091BC0084FDFCCF08958093BB002C
+:1004900084E88093BC008091BC0087FFFCCF9091E2
+:1004A000B900987F81E0983209F480E0089584E8EB
+:1004B0008093BC008091BC0087FFFCCF8091BB0083
+:1004C000089580910101811115C080E40E941C02F1
+:1004D0008093010181110CC082E10E944602809349
+:1004E0000101811105C08FEF0E9446028093010136
+:1004F0000E943E0284B1807F84B985B1807F85B936
+:100500008AB1837F8AB98BB1837F8BB93E98469835
+:1005100008950E941C04809301010E94610280B32F
+:100520008C7080BB81B3836F81BBA5E3B1E0E3E452
+:10053000F1E08EE08E0F11921D928E13FCCF0C9481
+:100540000604BF92CF92DF92EF92FF920F931F9318
+:10055000CF93DF9380910101882379F0809134015A
+:100560008F5F80933401811108C00E941C04809326
+:100570000101811102C00E94AE0305E311E0C0E059
+:10058000D0E0DD24D39482E0C82EEE24E394F12C55
+:10059000C730D10500F580910101811164C080E46C
+:1005A0000E941C0280930101811112C082E10E940D
+:1005B00046028093010181110BC0C7010C2E01C0BE
+:1005C000880F0A94EAF780950E9446028093010101
+:1005D0000E943E0248C0CA30A1F028F4C83059F049
+:1005E000C93061F005C0CC3089F070F0CD3089F0B1
+:1005F000209A289810C0219A29980DC0229A2A98EA
+:100600000AC0239A2B9807C0529A01C0539A5B984C
+:1006100002C03E9A469890EA9A95F1F79FB179996F
+:1006200002C082E001C080E091709D25982B7C99EA
+:1006300002C084E001C080E0892B7D9902C038E0CF
+:1006400001C030E0832B7E9902C020E101C020E090
+:10065000822B9FB19095991F9927991F9295990F79
+:10066000907E892B0FC080910101811149C080E4E7
+:100670000E941C0280930101882379F1B12C0E9411
+:100680003E028B2DF8019081981719F08083C0925B
+:1006900000010E94610221960F5F1F4FCE30D105ED
+:1006A00009F076CF80910001882361F18150809319
+:1006B0000001882339F08FE99FE00197F1F700C02E
+:1006C000000020C0A3E4B1E0E5E3F1E0CF01825FE8
+:1006D00091919D938E13FCCF15C083E10E94460239
+:1006E000809301018111CACF81E40E941C02809392
+:1006F00001018111C3CF0E945702B82EB094BFCF21
+:1007000080E0C0CF0E94AC0381E0DF91CF911F91C8
+:100710000F91FF90EF90DF90CF90BF900895E82F5A
+:10072000F0E0ED5BFE4F8081089508950F931F93D5
+:10073000CF93DF93C3E4D1E010E00C2F025F8991E7
+:1007400090E00E94241A180F0C13F9CF812FDF912B
+:10075000CF911F910F9108950C946F0456985E9855
+:1007600025982D9826982E9827982F988FEF90E00F
+:10077000909389008093880090938B0080938A00E7
+:1007800090938D0080938C00259A2D9A2FEF80E70F
+:1007900092E0215080409040E1F700C00000269A8E
+:1007A0002E9A2FEF80E792E0215080409040E1F7B1
+:1007B00000C00000279A2F9A2FEF80E792E0215087
+:1007C00080409040E1F700C0000025982D982FEF61
+:1007D00080E792E0215080409040E1F700C00000A7
+:1007E00026982E982FEF80E792E02150804090408D
+:1007F000E1F700C0000027982F9856985E9825983A
+:100800002D9826982E9827982F98089589EA8093F6
+:10081000800089E08093810024982C983F988AB1C9
+:100820008F748AB96E98479A8BB1806B8BB9769A20
+:100830000E94AE030C946E0480E2809301018091CB
+:10084000510181110EC00E94160281E08093510176
+:100850002FEF83ED90E3215080409040E1F700C0FE
+:10086000000080E40E941C028093010181112EC0CF
+:100870000E94460280930101811128C00E94460215
+:1008800080930101811122C08FE30E944602809370
+:10089000010181111BC00E943E0280E40E941C02E3
+:1008A00080930101811112C08CE00E944602809366
+:1008B000010181110BC00E94460280930101811148
+:1008C00005C08FE30E944602809301010E943E0210
+:1008D00080910101089580E090E0089508950895C1
+:1008E00081E0089581E008950C94720408950F93B7
+:1008F0001F93CF93DF938C01FC01C081D181CE0186
+:100900000E94A918BE010E942005EC01B8010E94B6
+:100910007404882309F48DC0F8018281882309F4C6
+:100920004AC080915D0181111FC0C431F0E5DF072D
+:1009300009F051C00E94760481E080935D010E941D
+:10094000781A90935C0180935B011092540110928D
+:1009500056011092550110925801109257011092B1
+:100960005A011092590165C080915B0190915C0120
+:100970000E94841A883C910570F480915401E82FFC
+:10098000F0E0EE0FFF1FEB5AFE4FD183C0838F5F65
+:10099000809354014EC0C43880E5D80721F0C53893
+:1009A000D04501F13AC0F8018281882341F01092CC
+:1009B000520182E01EC0C438E0E5DE0759F580919F
+:1009C0005201811106C086E20E94331086E20E9425
+:1009D000FB1082E01CC0C438F0E5DF0741F3C538E6
+:1009E000D045D9F4F8018281882331F01092530167
+:1009F00080E20E944A111DC080915301811106C0FE
+:100A000087E20E94331087E20E94FB1080E20E947E
+:100A100051110FC0C538D04529F381E080935201B0
+:100A200080935301C801DF91CF911F910F910C94D6
+:100A3000700480E0DF91CF911F910F910895089588
+:100A400096E0799FF001112494E5899FE00DF11D56
+:100A50001124E60FF11DEE0FFF1FE65FFE4F85919B
+:100A600094910895880F991FFC01E657F0408591F5
+:100A700094910895880F991FFC01E65FFE4F8591C0
+:100A8000949108950F931F93CF93DF93EC018115F9
+:100A900020E3920750F5C11580E2D80708F0C3C0E3
+:100AA000CB3BD10590F4C83AD10508F06AC0C53AED
+:100AB000D10508F05BC0C430D10508F0D0C1219742
+:100AC00009F0CAC101E010E00AC2CF3FD10511F020
+:100AD00008F0C5C1C03FD10508F0A2C0CE01805EBC
+:100AE0009109089708F4BBC1B7C1C13090E5D90797
+:100AF00009F4A2C020F5C0318FE4D80770F4C11505
+:100B000090E4D90708F094C0C11521E3D20708F09A
+:100B1000A3C1DD278E01106CE2C1C115D04509F0DB
+:100B20009BC10E94B0138FEF94E32CE08150904062
+:100B30002040E1F700C000000E94D31AD0C1C115C7
+:100B400097E5D90758F4C03121E5D20708F01CC158
+:100B5000C43180E5D80708F475C07EC1CE01905736
+:100B60008115904108F078C1DF7073C1C53AD10595
+:100B700009F477C1C63AD10509F076C102E810E45C
+:100B8000AEC1C83AD10509F472C1C93AD10509F418
+:100B900071C1CA3AD10509F470C1CB3AD10509F443
+:100BA0006FC1CC3AD10509F46EC1CD3AD10509F433
+:100BB0006DC1C03BD10509F46CC1CE3AD10509F431
+:100BC0006BC1CF3AD10509F46AC1C13BD10509F423
+:100BD00069C1C23BD10509F468C1C33BD10509F421
+:100BE00067C1C43BD10509F466C1C53BD10509F411
+:100BF00065C1C63BD10509F464C1C73BD10509F401
+:100C000063C1C83BD10509F462C1C93BD10509F4F0
+:100C100061C1CA3BD10509F460C100E014E45FC1C1
+:100C20008E0110655CC1CE019F700E943A0558C1CB
+:100C3000DF708E01106A53C18091DA018160809368
+:100C4000DA014DC10E94781C811102C00E945E1C15
+:100C50000E94951C90E09093FB018093FA01C230B2
+:100C600080E5D80721F48091FA01816086C0C43004
+:100C700090E5D90721F48091FA0182607EC0C630E8
+:100C800020E5D20721F48091FA01846076C0C83053
+:100C900080E5D80719F48091FA0127C0CA3090E5A1
+:100CA000D90721F48091FA01806167C0CC3020E53A
+:100CB000D20721F48091FA0180625FC0CE3080E5D6
+:100CC000D80721F48091FA01806457C0C03190E5C3
+:100CD000D90721F48091FA0180684FC0C23120E524
+:100CE000D20729F48091FA018460886046C0C3303D
+:100CF00080E5D80721F48091FA018E7F3EC0C5308F
+:100D000090E5D90721F48091FA018D7F36C0C73074
+:100D100020E5D20721F48091FA018B7F2EC0C930E3
+:100D200080E5D80719F48091FA0126C0CB3090E510
+:100D3000D90721F48091FA018F7E1FC0CD3020E5C4
+:100D4000D20721F48091FA018F7D17C0CF3080E562
+:100D5000D80721F48091FA018F7B0FC0C13190E553
+:100D6000D90721F48091FA018F7707C0C331D045AC
+:100D700031F48091FA018B7F877F8093FA01809113
+:100D8000FA010E94991CABC08D2F99278F7099276B
+:100D900081309105D9F49E012370332702C0880F5A
+:100DA000991F2A95E2F79C688E0144E0000F111FFD
+:100DB0004A95E1F700271370802B912B53E0CC0F5D
+:100DC000DD1F5A95E1F7C076DD272FC082309105EF
+:100DD00031F4DC2FCC278E01016F106A80C0833084
+:100DE000910569F4CE018370992701E010E002C0FB
+:100DF000000F111F8A95E2F7C8019C680FC084306C
+:100E00009105B9F4CE018370992701E010E002C08A
+:100E1000000F111F8A95E2F7C8019A6823E0CC0FF2
+:100E2000DD1F2A95E1F7C07ED7708C010C2B1D2B9E
+:100E300056C08530910531F4DC2FCC278E01046F2C
+:100E4000106A4DC0069709F04AC0CF71DD27DC2F2C
+:100E5000CC278E01106243C000E010E040C08E013C
+:100E60003EC001E810E43BC003E810E438C002EEE5
+:100E700014E435C009EE14E432C00AEE14E42FC0C5
+:100E800005EB14E42CC006EB14E429C007EB14E4D2
+:100E900026C00CEC14E423C00DEC14E420C003E8DD
+:100EA00015E41DC00AE815E41AC002E915E417C0EC
+:100EB00004E915E414C001E216E411C003E216E4EB
+:100EC0000EC004E216E40BC005E216E408C006E218
+:100ED00016E405C007E216E402C00AE216E4C801FF
+:100EE000DF91CF911F910F91089596E0799FF001C6
+:100EF000112494E5899FE00DF11D1124E60FF11DE9
+:100F0000EE0FFF1FE65FFE4F85919491803E9105A5
+:100F1000E0F4803C910558F58133910509F46FC0E8
+:100F200048F48932910509F463C08A32910509F4C5
+:100F30006DC072C089339105E9F082389105D1F016
+:100F40008533910509F44DC067C0833E910581F159
+:100F500038F4803E9105B9F0823E9105D9F05CC02D
+:100F6000863E910561F1873E9105A1F155C00E9431
+:100F7000320508952091FA0120FD02C021FF4CC0E6
+:100F800080EE90E049C08091FA0180FFF9CF89E3BB
+:100F900090E042C08091FA0182FF0EC08091FA0178
+:100FA00084FF03C080E090E037C083EE90E034C05F
+:100FB0008091FA0182FFF2CF82EE90E02DC0809105
+:100FC000FA0183FF0BC08091FA0184FDEBCF87EE1D
+:100FD00090E022C08091FA0183FFF5CF86EE90E089
+:100FE0001BC08091FA0185FF07C089E290E014C020
+:100FF0008091FA0185FFF9CF85E390E00DC08091E3
+:10100000FA0186FF07C08AE290E006C08091FA01EB
+:1010100086FFF9CF81E390E00E944205089508958C
+:101020000C940F0880916E010895CF93DF9300D048
+:101030001F92CDB7DEB79C018091F101843019F584
+:1010400093E099833B832A839093E9008FEF9091FB
+:10105000E800815095FD06C095ED9A95F1F70000E6
+:101060008111F5CF8091E80085FF0DC040E050E090
+:1010700063E070E0CE0101960E947F0A8091E80053
+:101080008E778093E8000F900F900F90DF91CF91B3
+:101090000895CF93DF9300D01F92CDB7DEB7209194
+:1010A000F101243021F522E029839B838A8383E0A8
+:1010B0008093E9008FEF9091E800815095FD06C084
+:1010C00095ED9A95F1F700008111F5CF8091E80038
+:1010D00085FF0DC040E050E063E070E0CE01019676
+:1010E0000E947F0A8091E8008E778093E8000F903D
+:1010F0000F900F90DF91CF9108952091F10124304E
+:10110000F1F422E02093E9002FEF3091E800215024
+:1011100035FD06C035ED3A95F1F700002111F5CF08
+:101120002091E80025FF0BC040E050E065E070E052
+:101130000E947F0A8091E8008E778093E8000895EE
+:10114000CF93DF93EC019091F101943009F046C008
+:1011500080910C018823D9F080910D018823B9F08A
+:101160009093E9008FEF9091E800815095FD06C0C3
+:1011700095E19A95F1F700008111F5CF8091E80093
+:1011800085FF2CC040E050E060E170E017C081E0D6
+:101190008093E9008FEF9091E800815095FD06C0A3
+:1011A00095ED9A95F1F700008111F5CF8091E80057
+:1011B00085FF14C040E050E068E070E0CE010E947E
+:1011C0007F0A8091E8008E778093E80080E1FE013D
+:1011D000AEE5B1E001900D928A95E1F7DF91CF91F4
+:1011E00008958091F001811109C00E94140C0E94A1
+:1011F000710C8091E20084608093E2000895109267
+:10120000F001089508950C9408210E94691A0E9423
+:101210000E210E94170F0C94100842E061EC81E04F
+:101220000E948E0B42E061EC82E00E948E0B42E055
+:1012300061EC83E00E948E0B42E161EC84E00C944F
+:101240008E0B8091F301833009F455C030F4813066
+:1012500071F0823009F48EC008958A3009F47AC0A2
+:101260008B3009F460C0893009F09CC020C08091A7
+:10127000F201813A09F096C08091E800877F80935F
+:10128000E8008091F6019091F701892B21F460E14B
+:101290008EE591E003C060E080E090E070E00E94A5
+:1012A000CA0A8091E8008B778093E80008958091C6
+:1012B000F201813209F076C08091F6019091F70138
+:1012C000009719F0039709F06DC08091E800877FBF
+:1012D0008093E8008091E80082FD05C08091F101D3
+:1012E0008111F8CF5FC08091F10080936E018091F1
+:1012F000E8008B7753C08091F201813A09F052C027
+:101300008091F6019091F701892B09F04BC08091F3
+:10131000E800877F8093E8008091E80080FFFCCFA1
+:1013200080910C0136C08091F2018132D9F5809113
+:10133000F6019091F701892BA9F58091E800877F4C
+:101340008093E8000E94C30B8091F40180930C010C
+:101350000C94B0138091F201813221F58091E80064
+:10136000877F8093E8000E94C30B8091F5018093F2
+:101370006F0108958091F201813AA1F48091E80013
+:10138000877F8093E8008091E80080FFFCCF809108
+:101390006F018093F1008091E8008E778093E800E0
+:1013A0000C94C30B089584B7877F84BF88E10FB680
+:1013B000F89480936000109260000FBE90E080E887
+:1013C0000FB6F89480936100909361000FBE0E9465
+:1013D000660F0E94140C0E94710C8091E2008460E0
+:1013E0008093E20078940E94F70E0E94680F82E0DA
+:1013F00091E00E94120F0E94F6208091F101853049
+:1014000069F40E94301A8091EF018823B1F30E94A1
+:101410005B1A882391F30E94690AEFCF0E946E0F36
+:10142000ECCF292F332723303105C9F064F4213064
+:10143000310581F02230310509F043C08DE690E09E
+:1014400026EE31E042C021323105F1F02232310581
+:1014500041F137C082E190E023E532E036C09927C0
+:101460008130910541F08230910541F0892B49F599
+:10147000E2EEF1E005C0EAECF1E002C0E2EBF1E0FF
+:10148000849190E09F0121C06430D8F4E62FF0E011
+:10149000EE0FFF1FEE5DFE4F2081318189E090E06D
+:1014A00014C0643070F470E0FB01EE0FFF1FE65EC5
+:1014B000FE4F20813181FB01EA5EFE4F808190E08A
+:1014C00004C080E090E020E030E0FA013183208326
+:1014D000089580E189BD82E189BD09B400FEFDCF98
+:1014E0008091D8008F7D8093D8008091E000826049
+:1014F0008093E0008091E00081FDFCCF0895CF92C1
+:10150000DF92EF92FF920F931F93CF93DF93EC0143
+:101510008B016A010E94E20B811133C0C114D10416
+:1015200039F0F60180819181081B190BC80FD91F72
+:10153000E12CF12C0115110519F18091E80085FDD0
+:1015400016C08091E8008E778093E800C114D10422
+:1015500049F0F60180819181E80EF91EF182E08266
+:1015600085E00FC00E94E20B882321F30AC0899115
+:101570008093F10001501109FFEFEF1AFF0ADACF53
+:1015800080E0DF91CF911F910F91FF90EF90DF905E
+:10159000CF9008952091F8013091F901261737076F
+:1015A00048F06115710539F42091E8002E772093F9
+:1015B000E80001C0B90140E061157105A9F1209171
+:1015C000F101222309F443C0253009F442C02091DF
+:1015D000E80023FD40C02091E80022FD32C02091A8
+:1015E000E80020FFE9CF4091F3002091F20030E0C5
+:1015F000342BFC01CF016115710559F028303105FC
+:1016000040F481918093F100615071092F5F3F4F49
+:10161000F1CF41E02830310509F040E02091E800A9
+:101620002E772093E800C8CF4111C9CF0AC080911E
+:10163000F101882361F0853061F08091E80083FD3D
+:101640000AC08091E80082FFF2CF80E0089582E036
+:10165000089583E0089581E008952091F801309184
+:10166000F9012617370748F06115710539F4209103
+:10167000E8002E772093E80001C0B901FC0120E0CA
+:101680006115710591F18091F101882309F440C041
+:10169000853009F43FC08091E80083FD3DC0809112
+:1016A000E80082FD2FC08091E80080FFE9CF209103
+:1016B000F3008091F20090E0922B6115710559F0D2
+:1016C0008830910540F424912093F10031966150C7
+:1016D00071090196F2CF21E0089709F020E080918E
+:1016E000E8008E778093E800CBCF2111CCCF0AC0E1
+:1016F0008091F101882361F0853061F08091E800EC
+:1017000083FD0AC08091E80082FFF2CF80E0089557
+:1017100082E0089583E0089581E00895982F97303E
+:1017200058F59093E900981739F07091EC002091EA
+:10173000ED005091F00003C0242F762F50E021FFE0
+:1017400019C03091EB003E7F3093EB003091ED00FB
+:101750003D7F3093ED003091EB0031603093EB0032
+:101760007093EC002093ED005093F0002091EE0078
+:1017700027FF07C09F5FD3CF8F708093E90081E080
+:10178000089580E008958091F20187FF11C0809153
+:10179000E80082FD05C08091F1018111F8CF11C0F0
+:1017A0008091E8008B770BC08091F101882349F08C
+:1017B0008091E80080FFF8CF8091E8008E778093D9
+:1017C000E80008952091E4003091E50095E640910D
+:1017D000EC00842F817040FF22C08091E80080FDE2
+:1017E0001CC08091F101882391F0853091F08091A7
+:1017F000EB0085FD10C04091E4005091E5004217D8
+:10180000530729F39A01915011F784E0089582E07B
+:10181000089583E0089581E0089580E0089540915F
+:10182000E80042FFDECF08950E94820C0E948A0CDD
+:10183000E0EEF0E0808181608083E8EDF0E080817F
+:101840008F77808319BCA7EDB0E08C918E7F8C934D
+:1018500080818F7E80831092F00108950F931F93F3
+:10186000CF93DF930E94820C0E948A0CC8EDD0E0D7
+:1018700088818F77888388818068888388818F7D3D
+:10188000888319BC1092F1011092ED011092EF01C2
+:101890001092EE0100EE10E0F80180818B7F8083D2
+:1018A00088818160888342E060E080E00E948E0B46
+:1018B000E1EEF0E080818E7F8083E2EEF0E08081D7
+:1018C00081608083808188608083F80180818E7F41
+:1018D0008083888180618883DF91CF911F910F91F0
+:1018E0000895E8EDF0E080818F7E8083E7EDF0E001
+:1018F00080818160808384E082BF81E08093F001F9
+:101900000C942E0CE8EDF0E080818E7F80831092A5
+:10191000E20008951092DA001092E10008951F92FB
+:101920000F920FB60F9211242F933F934F935F9313
+:101930006F937F938F939F93AF93BF93EF93FF9397
+:101940008091E10082FF0BC08091E20082FF07C01E
+:101950008091E1008B7F8093E1000E94F60E8091E0
+:10196000DA0080FF1FC08091D80080FF1BC08091EB
+:10197000DA008E7F8093DA008091D90080FF0DC05D
+:1019800080E189BD82E189BD09B400FEFDCF81E01F
+:101990008093F1010E94F10805C019BC1092F10179
+:1019A0000E94FF088091E10080FF19C08091E20051
+:1019B00080FF15C08091E2008E7F8093E2008091CD
+:1019C000E20080618093E2008091D8008062809381
+:1019D000D80019BC85E08093F1010E940309809131
+:1019E000E10084FF30C08091E20084FF2CC080E1E0
+:1019F00089BD82E189BD09B400FEFDCF8091D80088
+:101A00008F7D8093D8008091E1008F7E8093E100EC
+:101A10008091E2008F7E8093E2008091E2008160FD
+:101A20008093E2008091ED01882311F084E007C0EB
+:101A30008091E30087FD02C081E001C083E08093D4
+:101A4000F1010E9405098091E10083FF29C0809186
+:101A5000E20083FF25C08091E100877F8093E10051
+:101A600082E08093F1011092ED018091E1008E7F80
+:101A70008093E1008091E2008E7F8093E20080916C
+:101A8000E20080618093E20042E060E080E00E943A
+:101A90008E0B8091F00088608093F0000E94020914
+:101AA000FF91EF91BF91AF919F918F917F916F9136
+:101AB0005F914F913F912F910F900FBE0F901F900C
+:101AC00018951F920F920FB60F9211242F933F93E8
+:101AD0004F935F936F937F938F939F93AF93BF9336
+:101AE000CF93DF93EF93FF93C091E900CF70809184
+:101AF000EC00D82FD17080FDD0E81092E9008091E1
+:101B0000F000877F8093F00078940E94A50D1092DA
+:101B1000E9008091F00088608093F000CD2BCF70B9
+:101B2000C093E900FF91EF91DF91CF91BF91AF9109
+:101B30009F918F917F916F915F914F913F912F91E5
+:101B40000F900FBE0F901F9018951F93CF93DF93A8
+:101B5000CDB7DEB7AA970FB6F894DEBF0FBECDBFE4
+:101B6000E2EFF1E088E08E0F9091F10091938E13F7
+:101B7000FBCF0E9421098091E80083FF1FC1809163
+:101B8000F2019091F301492F50E04A30510508F0DD
+:101B900015C1FA01EA5AFF4F0C949022803881F067
+:101BA000823809F00BC18091F6018F708093E900B3
+:101BB0008091EB0085FB882780F91092E90006C030
+:101BC0008091EE019091EF01911182609091E80077
+:101BD000977F9093E8008093F1001092F100C8C0C5
+:101BE000282F2D7F09F0EAC0882319F0823061F098
+:101BF000E5C08091F401813009F0E0C0933009F034
+:101C000080E08093EF012BC08091F401811127C007
+:101C10008091F6018F7009F4D1C08093E900209182
+:101C2000EB0020FF1CC0933021F48091EB00806218
+:101C300014C09091EB0090619093EB0021E030E0B4
+:101C4000A90102C0440F551F8A95E2F74093EA00AC
+:101C50001092EA008091EB0088608093EB00109274
+:101C6000E9008091E800877F86C08111A7C01091AC
+:101C7000F4011F778091E3008078812B8093E3004B
+:101C80008091E800877F8093E8000E94C30B8091D9
+:101C9000E80080FFFCCF8091E30080688093E30040
+:101CA000111102C082E001C083E08093F10186C07F
+:101CB0008058823008F082C08091F4019091F50143
+:101CC0008C3D53E0950779F583E08A838AE2898326
+:101CD0004FB7F894DE01139620E03EE051E2E32F87
+:101CE000F0E050935700E49120FF03C0E295EF70BD
+:101CF0003F5FEF708E2F90E0EA3010F0C79601C082
+:101D0000C0968D939D932F5F243149F74FBF8091EB
+:101D1000E800877F8093E8006AE270E0CE010196D8
+:101D20000E94CA0A14C0AE014F5F5F4F6091F60176
+:101D30000E94110ABC01009709F440C09091E8008C
+:101D4000977F9093E80089819A810E942D0B809162
+:101D5000E8008B778093E80031C0803879F5809176
+:101D6000E800877F8093E8008091ED018093F10087
+:101D70008091E8008E778093E8000E94C30B1EC01C
+:101D800081111CC09091F4019230C0F48091E80060
+:101D9000877F8093E8009093ED010E94C30B8091B0
+:101DA000ED01811106C08091E30087FD02C081E052
+:101DB00001C084E08093F1010E940D098091E80048
+:101DC00083FF0AC08091E800877F8093E8008091BC
+:101DD000EB0080628093EB00AA960FB6F894DEBF0A
+:101DE0000FBECDBFDF91CF911F9108950895CF937E
+:101DF0008091F1018823A1F0C091E900CF7090910A
+:101E0000EC00892F817090FD80E8C82B1092E900CA
+:101E10008091E80083FD0E94A50DCF70C093E9007A
+:101E2000CF91089590937501809374010895E09186
+:101E30007401F0917501309721F00190F081E02D4F
+:101E4000099480E00895E0917401F0917501309754
+:101E500021F00280F381E02D09940895E09174014E
+:101E6000F0917501309721F00480F581E02D0994FF
+:101E7000089520917201309173018217930771F0D8
+:101E80009093730180937201E0917401F091750158
+:101E9000309721F00680F781E02D09940895209174
+:101EA0007001309171018217930771F09093710165
+:101EB00080937001E0917401F0917501309721F0E9
+:101EC0000084F185E02D0994089508950C94650F20
+:101ED0000E946F1A0E9489020C94311B9F92AF924C
+:101EE000BF92CF92DF92EF92FF920F931F93CF9307
+:101EF000DF9300D000D000D0CDB7DEB70E94A102A2
+:101F00000DE010E0AA24A394B12C902E802F0E9403
+:101F10008F03980129583E4F6901F901F080F82696
+:101F2000A1F40150110988F78FEF89838A831B82FE
+:101F30000E94781A8160782F9D838C8349815A8111
+:101F40006B818D810E9405102FC09091DA0191FF65
+:101F500004C08E830E9495038E8125E030E0A501A8
+:101F6000022E01C0440F0A94EAF7E42E4F21C1F07B
+:101F700029839A828E2191E009F490E09B830E944C
+:101F8000781A8160782F9D838C8349815A816B8177
+:101F90008D810E940510F6018081E826E08204C050
+:101FA00021503109E0F6BDCF0E94181E1091760134
+:101FB0000E94170F1817B9F00E94170F809376012F
+:101FC00026960FB6F894DEBF0FBECDBFDF91CF913E
+:101FD0001F910F91FF90EF90DF90CF90BF90AF9047
+:101FE0009F900C94100826960FB6F894DEBF0FBE93
+:101FF000CDBFDF91CF911F910F91FF90EF90DF90B8
+:10200000CF90BF90AF909F900895CF93DF93CDB7BF
+:10201000DEB72B970FB6F894DEBF0FBECDBF4F8350
+:10202000588769877A878B87DE01119686E0FD01E4
+:1020300011928A95E9F785E0FE01379601900D929D
+:102040008A95E1F749815A816B817C818D819E81DE
+:102050000E944E162B960FB6F894DEBF0FBECDBF72
+:10206000DF91CF910895CF93882309F4C2C0C82F80
+:10207000823859F40E94170F81FDBBC089E30E948A
+:1020800028190E94F51989E30CC0833879F40E945D
+:10209000170F80FDAEC083E50E9428190E94F51934
+:1020A00083E50E946A19CF910C94F519843859F48C
+:1020B0000E94170F82FD9DC087E40E9428190E948C
+:1020C000F51987E4EECF8CEF8C0F813A48F48C2F12
+:1020D0000E945B2081118DC08C2F0E942819E3CFB4
+:1020E00080E28C0F883048F4C77081E001C0880F0F
+:1020F000CA95EAF70E94AE19D6CF8BE58C0F8330D4
+:1021000078F4C53A29F0C63A31F083E890E005C08A
+:1021100081E890E002C082E890E0CF910C94390F02
+:1021200088E58C0F833108F064C0C83A39F1C93AA8
+:1021300041F1CA3A49F1CB3A51F1CC3A59F1CD3A91
+:1021400061F1C03B69F1CE3A71F1CF3A79F1C13B0F
+:1021500081F1C23B89F1C33B91F1C43B99F1C53B8D
+:10216000A1F1C63BA9F1C73BB1F1C83BB9F1C93BED
+:10217000C1F1CA3BC9F180E090E038C082EE90E046
+:1021800035C089EE90E032C08AEE90E02FC085EB3A
+:1021900090E02CC086EB90E029C087EB90E026C051
+:1021A0008CEC90E023C08DEC90E020C083E891E0BF
+:1021B0001DC08AE891E01AC082E991E017C084E965
+:1021C00091E014C081E292E011C083E292E00EC07F
+:1021D00084E292E00BC085E292E008C086E292E0E1
+:1021E00005C087E292E002C08AE292E0CF910C94AF
+:1021F0004F0FCF910895882309F44BC0823859F4CA
+:102200000E94170F81FF45C089E30E9428190E9490
+:10221000F51989E30CC0833871F40E94170F80FF11
+:1022200038C083E50E9428190E94F51983E50E94B1
+:102230006A190C94F519843859F40E94170F82FF1B
+:1022400028C087E40E9428190E94F51987E4EFCF7F
+:102250009CEF980F913A58F390E2980F983050F411
+:10226000877091E001C0990F8A95EAF7892F0E9443
+:10227000B419DFCF9BE5980F933020F480E090E015
+:102280000C94390F885A833120F480E090E00C944C
+:102290004F0F0895882321F00E94AE190C94F51970
+:1022A0000895882321F00E94B4190C94F51908951B
+:1022B0007F928F929F92AF92BF92CF92DF92EF92D6
+:1022C000FF920F931F93CF93DF931F92CDB7DEB78B
+:1022D0007C01C62E772EFC01058102950F701281BC
+:1022E00011110E94CB190E942119882379F0112322
+:1022F00069F080E28C0D883048F082E00E940A1973
+:102300000E94211991E0D82ED92601C0D12CE72DA9
+:10231000E295EF70F0E0E05AFF4F0C949022872D89
+:10232000807F072D0F70882311F00295007F112305
+:1023300089F0002309F490C180E28C0D883020F4EC
+:10234000802F0E94AE1903C0802F0E94BE190E94E8
+:10235000F51982C18C2D0E94FB10002309F495C150
+:1023600080E28C0D883020F4802F0E94B41903C0C5
+:10237000802F0E94C4190E94F51987C1972D907F64
+:10238000872D8F70903211F08295807FCC2021F0C4
+:10239000F1E0CF16B1F01EC0112349F0002309F47B
+:1023A00014C1013009F011C10E94DE196EC1002371
+:1023B00019F0013009F469C189830E94E11989810A
+:1023C0000AC1112321F0023008F05FC1FEC00111E3
+:1023D0005CC101C1112321F0002309F4F6C03CC106
+:1023E000002309F4F8C03EC1872D86958695837039
+:1023F00090E0009719F0019761F047C1112321F097
+:102400008C2D972D937002C080E090E00E94390FD0
+:102410003CC1112321F08C2D972D937002C080E0D8
+:1024200090E00E944F0F31C18C2D112319F00E94B2
+:10243000201D02C00E94881D0E940D1E26C1872DEE
+:10244000837009F052C0111120C18C2D82958695A0
+:102450008770880F880F9C2D9F70892E912CA12C3E
+:10246000B12C082E04C0880C991CAA1CBB1C0A9411
+:10247000D2F7C4FE14C00FE010E020E030E0B90154
+:10248000A80104C0440F551F661F771F8A95D2F715
+:10249000CB01BA01609570958095909503C060E07E
+:1024A00070E0CB01272D26952695237030E0223051
+:1024B000310569F02330310589F0682979298A29A5
+:1024C0009B292130310571F00E949617DEC06829E2
+:1024D00079298A299B290E94B217D7C00E94961792
+:1024E000C501B4010E947A17D0C0112319F0872DBD
+:1024F000817001C08695882309F4C7C08C2D829510
+:1025000086958770880F880F9C2D9F70892E912C3F
+:10251000A12CB12C082E04C0880C991CAA1CBB1C31
+:102520000A94D2F7C4FE14C00FE010E020E030E0BF
+:10253000B901A80104C0440F551F661F771F8A9573
+:10254000D2F7CB01BA01609570958095909503C044
+:1025500060E070E0CB01272D269526952370422F51
+:1025600050E04230510569F04330510589F0682947
+:1025700079298A299B294130510571F00E947018F0
+:1025800084C0682979298A299B290E948C187DC0DA
+:102590000E947018C501B4010E94541876C08C2D99
+:1025A00090E0FC01E05EF109E531F10508F050C072
+:1025B000E059FF4F0C9490220C2D0F70872D8F71D6
+:1025C000112331F00E94ED17802F0E944A115DC047
+:1025D0000E940E18802F0E94511157C0112339F00C
+:1025E000011153C0872D8F710E9433184EC00230E5
+:1025F00008F04BC0F7CF112339F0872D8F710E945F
+:10260000ED1743C01123C9F3872D8F710E940E1857
+:102610003CC0112329F0872D8F710E94D81735C037
+:102620000E94CE1732C0112351F0172D1F71812F38
+:102630000E94ED1763E0812F0E94011926C081E0FE
+:102640000E940A19023008F182E00E940A191DC096
+:10265000112331F0002389F28C2D0E94331015C014
+:10266000002391F28C2D0E94FB100FC0472D4F705C
+:102670006C2DC7010E946B040E94F21606C0472D04
+:102680004F706C2DC7010E941F05DD20F9F00E94DC
+:10269000FD1880FD1BC0F70112820E94F7180E94EE
+:1026A000ED17C7010E9475130E94F7180F90DF9174
+:1026B000CF911F910F91FF90EF90DF90CF90BF903F
+:1026C000AF909F908F907F900C940E180F90DF9199
+:1026D000CF911F910F91FF90EF90DF90CF90BF901F
+:1026E000AF909F908F907F9008950F931F93CF93FB
+:1026F000DF93EC01888199812B813C81232BB9F0F8
+:102700009F3F11F48F3F99F0CE010E9477048823F8
+:1027100071F0688179818A810E94F3188C010E948E
+:10272000A8180E946F17B801CE010E945811DF91BE
+:10273000CF911F910F9108950E94CB190E94DB1930
+:102740000E94A0190E94F5190E94BE1E0E940D1E33
+:1027500080E090E00E94390F80E090E00C944F0FF1
+:102760000E94BB190C949C130E94E818292F2295F3
+:102770002F7030E02C3031054CF42A3031056CF4E8
+:102780002250310922303105A8F407C02C30310520
+:1027900069F02F30310551F00DC0803F69F018F419
+:1027A000803E40F409C0843F29F406C093FB88278B
+:1027B00080F9089580E0089581E00895CF93DF9334
+:1027C00000D000D01F92CDB7DEB70F900F900F90C2
+:1027D0000F900F90DF91CF910895CF93DF9300D0AA
+:1027E00000D000D0CDB7DEB726960FB6F894DEBF86
+:1027F0000FBECDBFDF91CF9108951F93CF93DF938D
+:10280000C091850116E080918601C81799F0D0E04B
+:102810001C9FF0011D9FF00D1124E957FE4F4081D0
+:10282000518162817381848195810E94ED1321968B
+:10283000C770E9CFDF91CF911F9108954091B70103
+:102840005091B8016091B9017091BA018091BB01BA
+:102850009091BC010C94ED138091BC0182958F7016
+:1028600009F054C08091B901882309F44FC08091C8
+:102870008501A09186016091B7017091B8014091E6
+:10288000BA015091BB01B6E08A1709F43FC090E04D
+:1028900041155105C1F17F3F11F46F3FA1F1B89F80
+:1028A000F001B99FF00D1124E957FE4F21817213F9
+:1028B0002AC02081621327C02281211124C02381D4
+:1028C00034812417350710F421503109241B350BAE
+:1028D000283C3105C0F42091BC012F702061209369
+:1028E000BC0126E0289FF001299FF00D1124E45738
+:1028F000FE4F80818F708061808387EB91E00E9422
+:1029000075130C94FD1301968770BECF0895CF9276
+:10291000DF92EF92FF920F931F93CF93DF93CDB788
+:10292000DEB762970FB6F894DEBF0FBECDBF8C0145
+:1029300085E0F801DE011D9601900D928A95E1F780
+:10294000D8014C9111965C91119712966C91129747
+:102950001396CD90DC9014973091B7017091B80127
+:102960008091BA019091BB01009709F46BC17F3F40
+:1029700019F43F3F09F466C1E090B901EE2009F473
+:10298000C0C02091BC01C816D90628F0F601E81B8A
+:10299000F90BCF0104C0809590958C0D9D1DFF24EF
+:1029A000F394883C910578F0F12C207F09F0C6C0A3
+:1029B0007C2DD98AC88A89890E94DE1387EB91E031
+:1029C0000E947513B1C0822F807F09F046C0751335
+:1029D00014C0341312C0611110C02F7020612093F5
+:1029E000BC010E941E1487EB91E00E947513809138
+:1029F000BC01D80115968C932EC0CD2819F15F3FEC
+:102A000011F44F3FF9F0F62E61111CC08091850141
+:102A10002091860136E0821709F45AC090E0389F71
+:102A2000F001399FF00D1124E957FE4F71815713C2
+:102A300006C07081471303C07281711103C00196F3
+:102A40008770E9CFF62E662309F418C18091BC0186
+:102A500081608093BC01F12C11C1751308C034133F
+:102A600006C0611104C08091BC01D801C3C04D876C
+:102A70005E878D859E856A8B0E94B4136A89882340
+:102A8000E1F16623D1F12091BC01822F82958F70F4
+:102A900090E0029774F08091B7019091B801988707
+:102AA0008F831986DB86CA862C87CE0107960E9403
+:102AB000751386E0F801A7EBB1E001900D928A95BD
+:102AC000E1F70E942C140E941E14FF24F394D6C038
+:102AD0004D875E878D859E850E94E818292F229557
+:102AE0002F7030E0223031050CF0BCC09F7009F02F
+:102AF000B6C0805E883008F4C1C0C8010E9475135A
+:102B0000E4CFC816D90608F453C0F601E81BF90B48
+:102B1000CF01883C910508F450C0F12C7C2DD98A56
+:102B2000C88A89890E94DE13E7EBF1E086E0DF01C5
+:102B30001D928A95E9F70E941E14A0C0751314C057
+:102B4000341312C0611110C08091BC01F80185835B
+:102B5000C8010E94751386E0E7EBF1E0DF011D92EA
+:102B60008A95E9F7FE2C8AC04D875E878D859E8504
+:102B70006A8B0E94B4136A89882309F4BECF662346
+:102B800009F4BBCF2091BC01822F82958F7090E019
+:102B900002970CF48ECF8091B7019091B8019A837F
+:102BA00089831B82DD82CC822E83CE0101967FCF6A
+:102BB000809590958C0D9D1DACCFF62E662309F463
+:102BC0009CCF75132EC034132CC02091BC0120FD66
+:102BD0001FC0822F82958F70D9F0D80115962C9343
+:102BE00015978F3049F08F5F982F9295907F822FA5
+:102BF0008F70892B15968C93C8010E94751386E0FF
+:102C0000F801A7EBB1E001900D928A95E1F793CF1F
+:102C100086E0F801A7EBB1E001900D928A95E1F70B
+:102C20002DC04D875E878D859E850E94B4138111CE
+:102C300040CF8091BC0181608093BC01C8010E949B
+:102C400075131CC0662309F458CF4D875E878D85A8
+:102C50009E850E94B413882309F44FCF2ACF811197
+:102C600048CF0CC0243031050CF047CF9F7009F4D9
+:102C700040CFF8019581907F09F03BCF8F2D629670
+:102C80000FB6F894DEBF0FBECDBFDF91CF911F917D
+:102C90000F91FF90EF90DF90CF9008951F93CF9307
+:102CA000DF93CDB7DEB72C970FB6F894DEBF0FBE1B
+:102CB000CDBF4F83588769877A878B879C87CE01E2
+:102CC00007960E948714882369F08F8198852A854A
+:102CD0003B85232BF1F19F3F09F063C08F3F09F043
+:102CE00060C037C086E0FE013796DE011196019084
+:102CF0000D928A95E1F76F817885EA85FB8530979B
+:102D000041F17F3F11F46F3F21F12091860130E0C6
+:102D1000C9010196877099274091850150E0841779
+:102D2000950709F447C069837A83FD83EC8396E0B5
+:102D3000929FD001939FB00D1124A957BE4FFE0161
+:102D4000319601900D929A95E1F7809386010E9449
+:102D5000FD1316E080918501909186018917C1F1DC
+:102D6000189FC001112489579E4F0E948714882301
+:102D700079F1E09185011E9FF0011124E957FE4F82
+:102D80004081518162817381848195810E94ED131C
+:102D90008091850190E00196877099278093850145
+:102DA000D9CF4F81588569857A858B859C850E940E
+:102DB000ED13CFCF0E94B0131092860110928501BF
+:102DC000E7EBF1E086E0DF011D928A95E9F7C1CFDC
+:102DD0002C960FB6F894DEBF0FBECDBFDF91CF911A
+:102DE0001F910895EF92FF920F931F93CF93DF935C
+:102DF0008C01009709F46CC0F12CEE24E394E801F7
+:102E00002196F8018491843740F4843008F051C051
+:102E1000813081F0823019F15BC0853709F444C0FC
+:102E2000A8F19CE7980F903708F052C08F770E9466
+:102E3000FB1041C00E5F1F4FFE01C49180E28C0F5A
+:102E4000883048F4C7708E2D01C0880FCA95EAF704
+:102E50000E94CE1914C08C2F0E9433102DC00E5F1B
+:102E60001F4FFE01C49180E28C0F883058F4C77068
+:102E70008E2D01C0880FCA95EAF70E94D4190E94CE
+:102E8000F5191AC08C2F0E94FB1016C00E5F1F4F41
+:102E9000FE01C491CC2381F08FE99FE00197F1F707
+:102EA00000C00000C150F6CF0E5F1F4FFE01F4902E
+:102EB00003C00E9433108E018F2D882309F49FCF09
+:102EC000EFE9FFE03197F1F700C000008150F5CF46
+:102ED000DF91CF911F910F91FF90EF90089508958A
+:102EE0006093C1017093C2018093C3019093C401A8
+:102EF0000C949C130F931F930091C1011091C20178
+:102F00002091C3013091C401DC01CB01802B912BB6
+:102F1000A22BB32B8093C1019093C201A093C30154
+:102F2000B093C4011F910F910C949C130F931F93A6
+:102F30000091C1011091C2012091C3013091C401DF
+:102F4000DC01CB0180239123A223B3238093C10111
+:102F50009093C201A093C301B093C4011F910F913C
+:102F60000C949C130F931F930091C1011091C20107
+:102F70002091C3013091C401DC01CB01802791274E
+:102F8000A227B3278093C1019093C201A093C301EC
+:102F9000B093C4011F910F910C949C131092BD012A
+:102FA0001092BE011092BF011092C0010C949C13AC
+:102FB00041E050E060E070E004C0440F551F661F20
+:102FC000771F8A95D2F74093BD015093BE0160935D
+:102FD000BF017093C0010C949C1341E050E060E08D
+:102FE00070E004C0440F551F661F771F8A95D2F703
+:102FF0008091BD019091BE01A091BF01B091C0012F
+:10300000482B592B6A2B7B2B4093BD015093BE015B
+:103010006093BF017093C0010C949C1341E050E099
+:1030200060E070E004C0440F551F661F771F8A954B
+:10303000D2F740955095609570958091BD01909123
+:10304000BE01A091BF01B091C001482359236A235A
+:103050007B234093BD015093BE016093BF017093E9
+:10306000C0010C949C1341E050E060E070E004C0AB
+:10307000440F551F661F771F8A95D2F78091BD01B7
+:103080009091BE01A091BF01B091C001482759277E
+:103090006A277B274093BD015093BE016093BF0117
+:1030A0007093C0010C949C130F931F930091BD016A
+:1030B0001091BE012091BF013091C001DC01CB0114
+:1030C000802B912BA22BB32B8093BD019093BE013B
+:1030D000A093BF01B093C0011F910F910C949C135A
+:1030E0000F931F930091BD011091BE012091BF016C
+:1030F0003091C001DC01CB0180239123A223B323B3
+:103100008093BD019093BE01A093BF01B093C00115
+:103110001F910F910C949C130F931F930091BD016D
+:103120001091BE012091BF013091C001DC01CB01A3
+:1031300080279127A227B3278093BD019093BE01DA
+:10314000A093BF01B093C0011F910F910C949C13E9
+:103150000895CF92DF92EF92FF920F931F93CF9338
+:10316000DF938C01C090C101D090C201E090C301F7
+:10317000F090C4018091BD019091BE01A091BF016A
+:10318000B091C001C82AD92AEA2AFB2ACFE1D0E0AF
+:10319000D701C6010C2E04C0B695A79597958795C3
+:1031A0000A94D2F780FF06C0B8018C2F0E947507E1
+:1031B000019721F4219760F780E001C08C2FDF9107
+:1031C000CF911F910F91FF90EF90DF90CF900895D6
+:1031D000CF93DF93EC010E94A918BE010E947507EE
+:1031E000DF91CF910895CB010E94E8180895809156
+:1031F000C50185958595859508958091C501877050
+:10320000089598E0899F90011124262B2093C501F1
+:103210000C94ED172091C501809582238093C50100
+:10322000982F977069F430E0482F552747FD509547
+:103230002417350729F08595859585950C940E18EA
+:1032400008959091C501977081E009F480E0089598
+:1032500090910C01992321F090910D01911109C0D9
+:1032600020910E0130910F01F90132969FEF40E05D
+:103270001FC0982F9695969596959F3050F5E091A2
+:103280000E01F0910F01E90FF11D877021E030E090
+:10329000A90102C0440F551F8A95E2F7CA01918126
+:1032A000892B818308959F3F39F04F5F4E3041F065
+:1032B00051915813F8CF0DC05111F7CF942FF5CF7E
+:1032C0009F3F39F0F901E90FF11D97FDFA958283CF
+:1032D0000895089590910C01992321F090910D018A
+:1032E000911109C020910E0130910F01F901329620
+:1032F000205F3F4F1FC0982F9695969596959F30CB
+:10330000F0F4E0910E01F0910F01E90FF11D8770CB
+:1033100021E030E0A90102C0440F551F8A95E2F771
+:10332000CA01809591818923818308953196E2179E
+:10333000F30729F090819813F9CF1082F7CF089501
+:1033400081E090E0E0910E01F0910F01E80FF91F8C
+:103350001082019680319105A9F708959091D901C5
+:10336000892B8093D901089580959091D901892363
+:103370008093D90108951092D90108959091D801B0
+:10338000892B8093D801089580959091D801892345
+:103390008093D80108951092D80108959091D70193
+:1033A000892B8093D701089580959091D701892327
+:1033B0008093D70108951092D70108958093C60194
+:1033C00008951092C601089580910E0190910F0109
+:1033D000FC0131969C01205F3F4F80E0919191115B
+:1033E0008F5FE217F307D1F70895E0910E01F09196
+:1033F0000F018091D9018083E0910E01F0910F01BE
+:1034000090818091D801892B8083E0910E01F09109
+:103410000F0190818091D701892B80838091C60113
+:10342000882361F0E0910E01F0910F019081892BCA
+:1034300080830E94E41981111092C60180910E01CF
+:1034400090910F010C94230F20E0009739F0AC010C
+:1034500041505109842395232F5FF7CF822F089580
+:103460008091F101843021F11092DB0120E488E1A8
+:1034700090E00FB6F894A895809360000FBE20935B
+:10348000600080E00E94100883B7817F846083BF62
+:1034900083B7816083BF7894889583B78E7F83BF1D
+:1034A00088E10FB6F89480936000109260000FBE20
+:1034B0000895089508950E94591A0E94A1020E9439
+:1034C0005A1A0E94960391E0811101C090E0892F61
+:1034D00008950E94B0130E94170F0C94100882E008
+:1034E00084BD93E095BD9AEF97BD80936E000895DB
+:1034F0002FB7F8948091DC019091DD01A091DE015D
+:10350000B091DF012FBF0895CF92DF92EF92FF922B
+:103510000F931F932FB7F8944091DC015091DD0178
+:103520006091DE017091DF012FBF6A017B01EE2403
+:10353000FF248C0120E030E0C016D106E206F3063D
+:1035400010F4415051099A01281B390BC9011F91F0
+:103550000F91FF90EF90DF90CF9008951F920F9200
+:103560000FB60F9211248F939F93AF93BF938091C7
+:10357000DC019091DD01A091DE01B091DF010196A7
+:10358000A11DB11D8093DC019093DD01A093DE01AC
+:10359000B093DF01BF91AF919F918F910F900FBEBC
+:1035A0000F901F9018950E94140CF8942FEF87EA43
+:1035B00091E6215080409040E1F700C0000087E094
+:1035C00090EBDC018093FB019093FC01A093FD0143
+:1035D000B093FE019CE088E10FB6F894A895809323
+:1035E00060000FBE90936000FFCFEF92FF920F93A9
+:1035F0001F93CF93DF93D82FCDE08C2F0E948F03A2
+:1036000005E010E0E82EF12CC701002E02C09595D0
+:1036100087950A94E2F780FF09C0602F7C2F80E035
+:103620000E942005D81302C081E006C00150110994
+:1036300058F7C15010F780E0DF91CF911F910F91A3
+:10364000FF90EF900895CF93C82F8CE20E94F51A57
+:10365000882321F08C2FCF910C94F51A80E0CF9124
+:103660000895CF930E94781C811102C00E945E1CB5
+:10367000C5E6C15049F00E94A1028FE39CE9019781
+:10368000F1F700C00000F5CF89E20E94231B8111F1
+:1036900013C18AE20E94231B81110E945E1C85E0F7
+:1036A0000E94231B81110E94D31A0E94831C8093C5
+:1036B000DA0187E00E94231B8823A9F18BE10E9495
+:1036C000231B882351F08091DA0181FB222720F906
+:1036D00091E0922790FB81F90EC08EE00E94231B9F
+:1036E000882361F08091DA0182FB222720F991E0A2
+:1036F000922790FB82F98093DA0115C080E10E9445
+:10370000231B9091DA01882341F093FB222720F9B3
+:1037100081E0822780FB93F904C0892F809580FB8C
+:1037200090F99093DA018091DA010E94871C0E943F
+:10373000951C8093FA0180EE0E94231B882341F0A0
+:103740008091FA01982F909590FB80F98093FA016F
+:1037500089E30E94231B882359F08091FA0181FBA1
+:10376000222720F991E0922790FB81F98093FA01BA
+:1037700082EE0E94231B882359F08091FA0182FB7C
+:10378000222720F991E0922790FB82F98093FA0199
+:1037900086EE0E94231B882359F08091FA0183FB57
+:1037A000222720F991E0922790FB83F98093FA0178
+:1037B00083EE0E94231B882359F08091FA0184FB39
+:1037C000222720F991E0922790FB84F98093FA0157
+:1037D00085E30E94231B882359F08091FA0185FB21
+:1037E000222720F991E0922790FB85F98093FA0136
+:1037F00081E30E94231B882359F08091FA0186FB04
+:10380000222720F991E0922790FB86F98093FA0114
+:1038100081E10E94231B882359F08091FA0187FBE4
+:10382000222720F991E0922790FB87F98093FA01F3
+:103830008091FA010E94991C8091FA0187FB8827E8
+:1038400080F980930D0187E20E94231BC82F8EE12F
+:103850000E94231B8111C2608FE10E94231B8111F2
+:10386000C46080E20E94231B8111C86081E20E9433
+:10387000231B8111C06182E20E94231B8111C0625F
+:1038800083E20E94231B8111C06484E20E94231BF7
+:10389000882311F0C06802C0CC2329F08C2F0E942D
+:1038A000901C6C2F03C00E948C1C682F70E080E07D
+:1038B00090E0CF910C947017CF9108956DEE7EEF4C
+:1038C00080E090E00E94CA2260E082E090E00E94E6
+:1038D000B82260E083E090E00E94B82260E084E0DB
+:1038E00090E00E94B82260E085E090E00C94B8225D
+:1038F00080E090E00E94B22221E08D3E9E4F09F0D0
+:1039000020E0822F089582E090E00C94AA22682F94
+:1039100082E090E00C94B82283E090E00C94AA221C
+:10392000682F83E090E00C94B82284E090E00C943F
+:10393000AA22682F84E090E00C94B8228091E201E2
+:1039400080FF0BC06091130185E0689FB0011124D6
+:1039500075956795759567952BC081FF09C0609136
+:10396000130185E0689FB00111247595679520C00B
+:1039700082FF07C06091130185E0689FB0011124A8
+:1039800017C09091E3019923D1F06091120196172D
+:1039900088F72091130185E0289F90011124929FC0
+:1039A000A001939F500D112470E0CA010E947C2257
+:1039B0006038710540F46115710539F002C065E0A9
+:1039C00070E0862F08958FE7089581E00895809133
+:1039D000E20180FF08C06091110170E07595679564
+:1039E0007595679521C081FF06C06091110170E057
+:1039F0007595679519C082FF04C06091110170E050
+:103A000010C09091E3019923C1F0609110019617C5
+:103A1000A0F780911101899FC001112470E00E94DC
+:103A20007C226038710528F46115710521F0862F1C
+:103A300008958FE7089581E0089561E070E0F4CF84
+:103A4000803F21F40E949E1C819504C0813F29F48F
+:103A50000E949E1C8093E6010895823F21F40E94FB
+:103A60009E1C819504C0833F29F40E949E1C809374
+:103A7000E5010895893F19F40E94E71C05C08A3FBB
+:103A800031F40E94E71C81958093E70108958B3FF4
+:103A900021F40E94E71C819504C08C3F29F40E9408
+:103AA000E71C8093E8010895843F21F48091E401AC
+:103AB000816017C0853F21F48091E401826011C0CC
+:103AC000863F21F48091E40184600BC0873F21F49C
+:103AD0008091E401886005C0883F31F48091E40161
+:103AE00080618093E40108958D3F21F48091E2018B
+:103AF00081600BC08E3F21F48091E201826005C09D
+:103B00008F3F29F48091E20184608093E20108955F
+:103B1000803F39F48091E60187FF6CC01092E60186
+:103B200069C0813F29F48091E6011816BCF362C098
+:103B30009091E501823F29F497FF5CC01092E50166
+:103B400059C0833F19F41916CCF354C0893F41F48E
+:103B50008091E70118160CF04DC01092E7014AC0A1
+:103B60008A3F29F48091E70187FF44C0F6CF8B3F5D
+:103B700039F48091E80187FF3DC01092E8013AC016
+:103B80008C3F29F48091E8011816BCF333C0843FC0
+:103B900021F48091E4018E7F17C0853F21F480914C
+:103BA000E4018D7F11C0863F21F48091E4018B7F79
+:103BB0000BC0873F21F48091E401877F05C0883FD7
+:103BC00031F48091E4018F7E8093E40113C08D3F36
+:103BD00021F48091E2018E7F0BC08E3F21F4809111
+:103BE000E2018D7F05C08F3F29F48091E2018B7F38
+:103BF0008093E2018091E50181110EC08091E60180
+:103C000081110AC08091E701811106C08091E8010D
+:103C1000811102C01092E301089584EE91E00E94A8
+:103C20002E0F0E94781A9093E1018093E00108958D
+:103C30001F93CF93DF938091E0019091E1010E9467
+:103C4000841AAC019091E301992321F02091140191
+:103C500030E006C0209115018AE0289F90011124D0
+:103C60004217530708F486C08091E501C091E60130
+:103C7000D091E7011091E801811107C0C11176C010
+:103C8000D11174C0111172C075C09F3F19F09F5FB0
+:103C90009093E301181624F40E949E1C8093E50182
+:103CA0008091E50187FF05C00E949E1C819580934D
+:103CB000E5011C1624F40E949E1C8093E60180916D
+:103CC000E60187FF05C00E949E1C81958093E60156
+:103CD0006091E501662339F1C091E601CC2319F129
+:103CE000772767FD7095872F972F0E948D2123E3FB
+:103CF00033E343E35FE30E94F1210E945A21609382
+:103D0000E5016C2F772767FD7095872F972F0E940D
+:103D10008D2123E333E343E35FE30E94F1210E941B
+:103D20005A216093E6011D1624F40E94E71C80933B
+:103D3000E7018091E70187FF05C00E94E71C81959C
+:103D40008093E701111624F40E94E71C8093E80198
+:103D50008091E80187FF05C00E94E71C8195809350
+:103D6000E801DF91CF911F910C940D1E9F3F09F048
+:103D70008ECF96CFDF91CF911F910895E4EEF1E0C1
+:103D800085E0DF011D928A95E9F71092E301109218
+:103D9000E2010895833081F128F4813059F08230B6
+:103DA000D1F00895853009F449C0B8F1863009F49E
+:103DB00056C0089580911501262F30E0280F311D3F
+:103DC0002F3F310524F4680F6093150108958FEF9C
+:103DD00080931501089580911401262F30E0280F5B
+:103DE000311D2F3F310524F4680F609314010895AD
+:103DF0008FEF80931401089580911301262F30E0F6
+:103E0000280F311D2F3F310524F4680F60931301F3
+:103E100008958FEF80931301089580911201262F4A
+:103E200030E0280F311D2F3F310524F4680F6093D7
+:103E3000120108958FEF809312010895809111016E
+:103E4000262F30E0280F311D2F3F310524F4680F55
+:103E50006093110108958FEF80931101089580916F
+:103E60001001262F30E0280F311D2F3F310524F49B
+:103E7000680F6093100108958FEF809310010895EB
+:103E8000833011F128F4813049F0823091F00895A7
+:103E9000853081F120F18630C1F1089580911501BE
+:103EA000681720F4861B8093150108951092150160
+:103EB000089580911401681720F4861B80931401E3
+:103EC000089510921401089580911301681720F449
+:103ED000861B809313010895109213010895809119
+:103EE0001201681720F4861B809312010895109226
+:103EF0001201089580911101681720F4861B8093A8
+:103F00001101089510921101089580911001681710
+:103F100020F4861B809310010895109210010895DB
+:103F20000F931F938D3109F46BC008F03FC08E30A2
+:103F300009F47FC0C0F4873009F469C068F48630A2
+:103F400009F0B1C08091DA01817F8E7F8093DA0120
+:103F500081E08093EA01A8C0883009F4A2C08B30C8
+:103F600009F49FC0A0C0863109F49BC078F4803169
+:103F700009F472C0813109F096C00E94B01390918B
+:103F80000D0181E0892780930D018BC0893109F4EF
+:103F900088C08B3109F087C08091DA0181FB22272C
+:103FA00020F991E0922790FB81F94CC0853309F408
+:103FB00070C048F4873209F46CC008F459C08932E3
+:103FC00009F467C070C0833438F48A3308F04EC0F7
+:103FD000883309F466C067C0833409F45AC0883452
+:103FE00009F061C00E94B0130FEF13ED20E3015000
+:103FF00010402040E1F700C000000E94D31A51C0D9
+:104000000E9414210E94170F0E9410084AC090912C
+:10401000DA01892F8095817080FB90F929F09660F4
+:1040200098609093DA0140C0997F977F9093DA016E
+:1040300038C08091DA0182FB222720F991E0922793
+:1040400090FB82F98093DA01992359F18091DA018A
+:1040500081608093DA0125C08091DA0183FB2227F9
+:1040600020F991E0922790FB83F9ECCF895301C0AE
+:104070008D5141E050E060E070E08A019B0104C096
+:10408000000F111F221F331F8A95D2F7C901B801F3
+:1040900004C061E070E080E090E00E9470170E9430
+:1040A000B01381E001C080E01F910F91089580E07E
+:1040B000089580E00895CF93C82F8091EA01813060
+:1040C00079F018F08230E9F187C0E0910E01F091AB
+:1040D0000F018081813169F0823209F07FC009C00F
+:1040E000E0910E01F0910F018081813111F0823257
+:1040F00061F48C2F0E945720811104C08C2F0E94E4
+:10410000901F1DC081E090E01AC08C2F0E945920A2
+:10411000811114C0C43179F048F4CB3079F0C0314A
+:1041200009F060C082E08093EA0108C0C93219F04A
+:10413000C83321F057C01092EA0154C081E0817069
+:1041400053C0C93289F118F5C43171F1A8F4C730F0
+:1041500009F046C08AE08093150194E19093140120
+:1041600093E0909313018093120188E080931101F2
+:1041700088E28093100134C0CE51C63088F5EC2F10
+:10418000F0E0E65DFE4F80818093E90129C0CE34E6
+:10419000E9F020F4CB3421F56AE013C0C13579F0A1
+:1041A000C235F1F461E00DC08091E901882319F076
+:1041B0001092E90115C081E08093EA0115C061E029
+:1041C00006C08091E9010E94CA1E0AC06AE080917F
+:1041D000E9010E94401F04C01092EA0180E004C07F
+:1041E00081E002C080E0ABCFCF910895E1E8F0E03C
+:1041F0008081886080838081816080838FB7F8941C
+:1042000093E09093890090ED909388008FBF08957C
+:10421000EFE6F0E08081826080830895EFE6F0E0D1
+:1042200080818D7F80830895EFE6F0E0908182E0C9
+:104230008927808308951F920F920FB60F92112441
+:104240002F933F934F935F936F937F938F939F939E
+:10425000AF93BF93EF93FF938091EB019091EC01AB
+:1042600001969093EC018093EB01811103C082E0F1
+:104270000E941008E091EC01E695E695F0E0E05A26
+:10428000FC4FE4918091EB018E1303C080E00E940B
+:104290001008FF91EF91BF91AF919F918F917F9106
+:1042A0006F915F914F913F912F910F900FBE0F90A3
+:1042B0001F90189504D06894B1118DC0089570D0E6
+:1042C00088F09F5790F0B92F9927B751A0F0D1F0FF
+:1042D000660F771F881F991F1AF0BA95C9F712C089
+:1042E000B13081F077D0B1E0089574C0672F782F96
+:1042F0008827B85F39F0B93FCCF3869577956795F5
+:10430000B395D9F73EF490958095709561957F4F60
+:104310008F4F9F4F0895E89409C097FB3EF4909506
+:104320008095709561957F4F8F4F9F4F9923A9F08E
+:10433000F92F96E9BB279395F6958795779567951D
+:10434000B795F111F8CFFAF4BB0F11F460FF1BC061
+:104350006F5F7F4F8F4F9F4F16C0882311F096E9F4
+:1043600011C0772321F09EE8872F762F05C06623A2
+:1043700071F096E8862F70E060E02AF09A95660F5B
+:10438000771F881FDAF7880F9695879597F9089514
+:1043900057FD9058440F551F59F05F3F71F04795F6
+:1043A000880F97FB991F61F09F3F79F087950895DB
+:1043B000121613061406551FF2CF4695F1DF08C0FA
+:1043C000161617061806991FF1CF86957105610517
+:1043D00008940895E894BB2766277727CB0197F9BF
+:1043E00008950BD078C069D028F06ED018F09523CE
+:1043F00009F05AC05FC01124EECFCADFA0F3959F29
+:10440000D1F3950F50E0551F629FF001729FBB27BB
+:10441000F00DB11D639FAA27F00DB11DAA1F649F67
+:104420006627B00DA11D661F829F2227B00DA11D1A
+:10443000621F739FB00DA11D621F839FA00D611DA0
+:10444000221F749F3327A00D611D231F849F600DC1
+:10445000211D822F762F6A2F11249F5750408AF0FA
+:10446000E1F088234AF0EE0FFF1FBB1F661F771F86
+:10447000881F91505040A9F79E3F510570F014C01D
+:10448000AACF5F3FECF3983EDCF38695779567956E
+:10449000B795F795E7959F5FC1F7FE2B880F911DA4
+:1044A0009695879597F9089597F99F6780E870E04A
+:1044B00060E008959FEF80EC089500240A9416169A
+:1044C000170618060906089500240A941216130602
+:1044D000140605060895092E0394000C11F4882390
+:1044E00052F0BB0F40F4BF2B11F460FF04C06F5FAC
+:1044F0007F4F8F4F9F4F089597FB072E16F4009420
+:1045000007D077FD09D00E94962207FC05D03EF423
+:10451000909581959F4F0895709561957F4F08956F
+:10452000EE0FFF1F0590F491E02D0994AA1BBB1B11
+:1045300051E107C0AA1FBB1FA617B70710F0A61BA3
+:10454000B70B881F991F5A95A9F780959095BC01C4
+:10455000CD010895F999FECF92BD81BDF89A9927B2
+:1045600080B50895A8E1B0E042E050E00C94D2227A
+:10457000262FF999FECF92BD81BDF89A019700B41C
+:10458000021639F01FBA20BD0FB6F894FA9AF99ABC
+:104590000FBE08950196272F0E94B9220C94B822CD
+:1045A000DC01CB01FC01F999FECF06C0F2BDE1BDF3
+:1045B000F89A319600B40D9241505040B8F70895E2
+:0445C000F894FFCF9D
+:1045C40002201208A0087D08490815080101C70146
+:1045D40028080A03140A3F4D36392103D4029E02E7
+:1045E4006502F80111022A024302010203040506CE
+:0445F40007080900AB
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/supercoder/config_user.h b/keyboards/ergodox_ez/keymaps/supercoder/config_user.h new file mode 100644 index 000000000..8da138372 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/supercoder/config_user.h @@ -0,0 +1,9 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H 1 + +#include "config.h" + +#undef LOCKING_SUPPORT_ENABLE +#undef LOCKING_RESYNC_ENABLE + +#endif diff --git a/keyboards/ergodox_ez/keymaps/supercoder/images/layout.png b/keyboards/ergodox_ez/keymaps/supercoder/images/layout.png Binary files differnew file mode 100644 index 000000000..c72958c6e --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/supercoder/images/layout.png diff --git a/keyboards/ergodox_ez/keymaps/supercoder/images/supercoder_2000.jpg b/keyboards/ergodox_ez/keymaps/supercoder/images/supercoder_2000.jpg Binary files differnew file mode 100644 index 000000000..d690eaf02 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/supercoder/images/supercoder_2000.jpg diff --git a/keyboards/ergodox_ez/keymaps/supercoder/keymap.c b/keyboards/ergodox_ez/keymaps/supercoder/keymap.c new file mode 100644 index 000000000..ca21d30fd --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/supercoder/keymap.c @@ -0,0 +1,75 @@ +/* + * SuperCoder 2000 layout + */ + +#include "ergodox_ez.h" + +/* Layers */ + +#define SC2K 0 // default layer + +/* The Keymap */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Keymap 0: Base Layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | 1 | 1 | 1 | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | 1 | 1 | 1 | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | 0 | 0 | 0 | 0 | 0 | 0 |------| |------| 1 | 1 | 1 | 1 | 1 | 1 | + * |-----------+------+------+------+------+------| 0 | | 1 |------+------+------+------+------+-----------| + * | 0 | 0 | 0 | 0 | 0 | 0 | | | | 1 | 1 | 1 | 1 | 1 | 1 | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 1 | 1 | 1 | + * `-----------------------------------' `-----------------------------------' + * ,-------------. ,-------------. + * | DONE | DONE | | DONE | DONE | + * ,------|------|------| |------+------+------. + * | | | DONE | | DONE | | | + * | DONE | DONE |------| |------| DONE | DONE | + * | | | DONE | | DONE | | | + * `--------------------' `--------------------' + */ +[SC2K] = KEYMAP( + // left hand + KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 +,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 +,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 +,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 +,KC_0 ,KC_0 ,KC_0 ,KC_0 ,KC_0 + + ,KC_ENT ,KC_ENT + ,KC_ENT + ,KC_ENT ,KC_ENT ,KC_ENT + + // right hand + ,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 ,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 ,KC_1 + ,KC_1 ,KC_1 ,KC_1 ,KC_1 ,KC_1 + + ,KC_ENT ,KC_ENT + ,KC_ENT + ,KC_ENT ,KC_ENT ,KC_ENT + ), +}; + +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) { +}; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { +} diff --git a/keyboards/ergodox_ez/keymaps/supercoder/makefile.mk b/keyboards/ergodox_ez/keymaps/supercoder/makefile.mk new file mode 100644 index 000000000..41a195d9c --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/supercoder/makefile.mk @@ -0,0 +1,6 @@ +BOOTMAGIC_ENABLE=no +COMMAND_ENABLE=no +SLEEP_LED_ENABLE=no +UNICODE_ENABLE=no +MOUSEKEY_ENABLE=no +EXTRAKEY_ENABLE=no diff --git a/keyboards/ergodox_ez/keymaps/techtomas/compiled.hex b/keyboards/ergodox_ez/keymaps/techtomas/compiled.hex new file mode 100644 index 000000000..6bab27524 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/techtomas/compiled.hex @@ -0,0 +1,1169 @@ +:100000000C94D1020C9415030C9415030C94150355
+:100010000C9415030C9415030C9415030C94150300
+:100020000C9415030C9415030C94BD0D0C948F0EB9
+:100030000C9415030C9415030C9415030C941503E0
+:100040000C9415030C9499220C9415030C9415032D
+:100050000C9415030C942C1C0C9415030C94150390
+:100060000C9415030C9415030C9415030C941503B0
+:100070000C9415030C9415030C9415030C941503A0
+:100080000C9415030C9415030C9415030C94150390
+:100090000C9415030C9415030C9415030C94150380
+:1000A0000C9415030C9415030C941503FC0E1E0FF1
+:1000B0000C101E0F0C10630F860F0C10DB0FEE0FD1
+:1000C000BD12BD12EC12EC122213421373147314FE
+:1000D0004D137314FD13FD136414731473146D1412
+:1000E0000A140A140A140A140A140A140A140A1420
+:1000F0000A140A140A140A140A140A140A140A1410
+:100100001C1429143014371441140000F0A1F0A27B
+:10011000F0A335422B77297FE100504100001E00FB
+:10012000140004001D004F434D431F001A00160029
+:100130001B00E0004C002000080007000600E20061
+:100140002A002100150009001900E3004A4122009D
+:1001500017000A0005000000E0002C082F00000036
+:100160002B000000E3002D00300000002B020000F7
+:10017000E30423001C000B0011000000E302240034
+:1001800018000D001000E7004B4225000C000E0087
+:10019000360052002C00260012000F0037005100DC
+:1001A00028002700130033423842C3004E412E007E
+:1001B0003177347FE500C10000000100010001003B
+:1001C0000100010000003A001E022002220201008C
+:1001D00001003B001F0221022302010001003C003C
+:1001E0002F0226022F00010001003D0030022702ED
+:1001F0003000010001003E003102350035020000F0
+:1002000001000100360200006900000001002B001F
+:10021000370200006A00000001003F003302330093
+:100220002402000001004000240021001E002700DD
+:1002300001004100250022001F003700010042009C
+:100240002600230020002E0001004300310025027B
+:100250002D002E020100440045000100280001008D
+:100260000000010001000100010001000000010088
+:10027000140801001D080100010001001A08010016
+:100280001B08010001000100010001000608010037
+:100290000100010001000100190801000100010036
+:1002A0000100010006010000010001002B02000016
+:1002B0000100000001000100AE000000A8000000E5
+:1002C00001000100AC00AA000100000001000100D3
+:1002D000AB00A900010001000100010001000100C4
+:1002E0000100010001000100010001000100010006
+:1002F00001000100460001000100010001000100B1
+:1003000001000100010001000000A5000100010042
+:1003100001000100000001000100010001000100D6
+:10032000010001000100F2000100010001000100D4
+:10033000F000F10001000100010001000100F300E4
+:1003400001000100E20001000100F400F5000000DE
+:10035000E1000100010000000100000001000100B7
+:1003600001000000010000004A00010001005000EF
+:10037000010000004D0001000100510001000100DA
+:100380000100010001005200010001000100010014
+:1003900001004F0001000100010001000100010007
+:1003A0000100010001000100010001000100010045
+:1003B000000016034500720067006F0044006F00E4
+:1003C0007800200045005A00000016034500720026
+:1003D00067006F0044006F007800200045005A005D
+:1003E00000000403090409026D00040100A0FA09D9
+:1003F0000400000103010100092111010001224054
+:10040000000705810308000A090401000103010235
+:1004100000092111010001224D0007058203080097
+:100420000A09040200010300000009211101000172
+:100430002236000705830308000A090403000103AC
+:100440000000000921110100012239000705840381
+:100450001000011201100100000008EDFE07130159
+:10046000000102000105010906A101050719E029A3
+:10047000E715002501950875018102050819012974
+:1004800005950575019102950175039101050719FF
+:1004900000297715002501957875018102C00501B5
+:1004A0000980A101850216010026B7001A01002A61
+:1004B000B700751095018100C0050C0901A10185E7
+:1004C00003160100269C021A01002A9C0275109551
+:1004D000018100C005010902A1010901A10005096E
+:1004E0001901290515002501950575018102950160
+:1004F000750381010501093009311581257F9502B8
+:100500007508810609381581257F950175088106D2
+:10051000050C0A38021581257F950175088106C0F2
+:10052000C005010906A101050719E029E715002505
+:100530000195087501810295017508810105081969
+:100540000129059505750191029501750391010534
+:1005500007190029FF150026FF0095067508810080
+:10056000C0000000000000000000000001020406BE
+:100570000A0F17202C3A4A5D71879DB3C7DAE9F557
+:10058000FCFFFCF5E9DAC7B39D87715D4A3A2C2080
+:10059000170F0A060402010000000000000000001E
+:1005A000000011241FBECFEFDAE0DEBFCDBF04B6DE
+:1005B00003FE24C08091FB019091FC01A091FD01FC
+:1005C000B091FE018730904BA740B04BB9F4109228
+:1005D000FB011092FC011092FD011092FE0114BE6D
+:1005E00084B7877F84BF88E10FB6F894809360005A
+:1005F000109260000FBEE0E0FFE3099511E0A0E07B
+:10060000B1E0E0ECF8E402C005900D92A433B1072C
+:10061000D9F711E0A4E3B1E001C01D92AB3FB107EF
+:10062000E1F70E94010B0C945E240C9400001092E0
+:10063000B9008AE08093B800089594EA9093BC00D2
+:100640009091BC0097FFFCCF9091B900987F9830B3
+:1006500021F0903111F081E008958093BB0084E88F
+:100660008093BC008091BC0087FFFCCF8091B900D3
+:10067000887F883111F0803471F780E0089584E933
+:100680008093BC008091BC0084FDFCCF08958093D2
+:10069000BB0084E88093BC008091BC0087FFFCCF46
+:1006A0009091B900987F81E0983209F480E0089534
+:1006B00084E88093BC008091BC0087FFFCCF8091D0
+:1006C000BB00089580910101811115C080E40E9452
+:1006D0001D038093010181110CC082E10E94470338
+:1006E00080930101811105C08FEF0E944703809321
+:1006F00001010E943F0384B1807F84B985B1807F6E
+:1007000085B98AB1837F8AB98BB1837F8BB93E98D3
+:10071000469808950E941D05809301010E9462037E
+:1007200080B38C7080BB81B3836F81BBA5E3B1E0E4
+:10073000E3E4F1E08EE08E0F11921D928E13FCCF58
+:100740000C940705BF92CF92DF92EF92FF920F9326
+:100750001F93CF93DF9380910101882379F08091DB
+:1007600034018F5F80933401811108C00E941D0500
+:1007700080930101811102C00E94AF0405E311E0E2
+:10078000C0E0D0E0DD24D39482E0C82EEE24E394D0
+:10079000F12CC730D10500F580910101811164C0B1
+:1007A00080E40E941D0380930101811112C082E147
+:1007B0000E9447038093010181110BC0C7010C2ED9
+:1007C00001C0880F0A94EAF780950E94470380933E
+:1007D00001010E943F0348C0CA30A1F028F4C8308C
+:1007E00059F0C93061F005C0CC3089F070F0CD30DF
+:1007F00089F0209A289810C0219A29980DC0229A31
+:100800002A980AC0239A2B9807C0529A01C0539A7B
+:100810005B9802C03E9A469890EA9A95F1F79FB18C
+:10082000799902C082E001C080E091709D25982BEB
+:100830007C9902C084E001C080E0892B7D9902C0D0
+:1008400038E001C030E0832B7E9902C020E101C076
+:1008500020E0822B9FB19095991F9927991F92951F
+:10086000990F907E892B0FC080910101811149C0A1
+:1008700080E40E941D0380930101882379F1B12C4B
+:100880000E943F038B2DF8019081981719F0808307
+:10089000C09200010E94620321960F5F1F4FCE306D
+:1008A000D10509F076CF80910001882361F1815054
+:1008B00080930001882339F08FE99FE00197F1F7D9
+:1008C00000C0000020C0A3E4B1E0E5E3F1E0CF0107
+:1008D000825F91919D938E13FCCF15C083E10E949E
+:1008E0004703809301018111CACF81E40E941D0357
+:1008F000809301018111C3CF0E945803B82EB09498
+:10090000BFCF80E0C0CF0E94AD0481E0DF91CF91E6
+:100910001F910F91FF90EF90DF90CF90BF900895BF
+:10092000E82FF0E0ED5BFE4F8081089508950F936E
+:100930001F93CF93DF93C3E4D1E010E00C2F025F4D
+:10094000899190E00E94521B180F0C13F9CF812F50
+:10095000DF91CF911F910F9108950C947D055698CA
+:100960005E9825982D9826982E9827982F988FEF87
+:1009700090E0909389008093880090938B008093FF
+:100980008A0090938D0080938C00259A2D9A2FEFEA
+:1009900080E792E0215080409040E1F700C00000E5
+:1009A000269A2E9A2FEF80E792E0215080409040C7
+:1009B000E1F700C00000279A2F9A2FEF80E792E01E
+:1009C000215080409040E1F700C0000025982D980C
+:1009D0002FEF80E792E0215080409040E1F700C087
+:1009E000000026982E982FEF80E792E0215080405B
+:1009F0009040E1F700C0000027982F9856985E9825
+:100A000025982D9826982E9827982F98089589EA4A
+:100A10008093800089E08093810024982C983F98EF
+:100A20008AB18F748AB96E98479A8BB1806B8BB9F3
+:100A3000769A0E94AF040C947C0580E280930101B9
+:100A40008091510181110EC00E94170381E08093B3
+:100A500051012FEF83ED90E3215080409040E1F76A
+:100A600000C0000080E40E941D03809301018111F9
+:100A70002EC00E94470380930101811128C00E946B
+:100A8000470380930101811122C08FE30E94470335
+:100A90008093010181111BC00E943F0380E40E94EA
+:100AA0001D0380930101811112C08CE00E94470355
+:100AB0008093010181110BC00E94470380930101C3
+:100AC000811105C08FE30E944703809301010E94BA
+:100AD0003F0380910101089561110BC0FC018281E7
+:100AE000882321F085EE0E94611103C085EE0E94EB
+:100AF000291280E090E0089508956091BD01709101
+:100B0000BE018091BF019091C0010E945E1B56986A
+:100B10005E9825982D9826982E9827982F988230A1
+:100B200039F0833041F0813041F4259A2D9A0895AF
+:100B3000269A2E9A0895279A2F9A089581E008956B
+:100B400081E008950C94A00508950F931F93CF930F
+:100B5000DF938C01FC01C081D181CE010E94D719A5
+:100B6000BE010E944E06EC01B8010E94A205882336
+:100B700009F48DC0F8018281882309F44AC080916C
+:100B80005D0181111FC0C431F0E5DF0709F051C0DC
+:100B90000E94A40581E080935D010E94F61B909362
+:100BA0005C0180935B0110925401109256011092E7
+:100BB0005501109258011092570110925A0110924B
+:100BC000590165C080915B0190915C010E94021CFB
+:100BD000883C910570F480915401E82FF0E0EE0F0D
+:100BE000FF1FEB5AFE4FD183C0838F5F8093540168
+:100BF0004EC0C43880E5D80721F0C538D04501F192
+:100C00003AC0F8018281882341F01092520182E0BB
+:100C10001EC0C438E0E5DE0759F58091520181110C
+:100C200006C086E20E94611186E20E94291282E0DB
+:100C30001CC0C438F0E5DF0741F3C538D045D9F40E
+:100C4000F8018281882331F01092530180E20E94E2
+:100C500078121DC080915301811106C087E20E9465
+:100C6000611187E20E94291280E20E947F120FC068
+:100C7000C538D04529F381E0809352018093530118
+:100C8000C801DF91CF911F910F910C949E0580E0D8
+:100C9000DF91CF911F910F910895089596E0799F6C
+:100CA000F001112494E5899FE00DF11D1124E60F58
+:100CB000F11DEE0FFF1FEE5EFE4F8591949108959A
+:100CC000880F991FFC01E657F04085919491089593
+:100CD000880F991FFC01E65FFE4F8591949108955E
+:100CE0000F931F93CF93DF93EC01811520E39207BD
+:100CF00050F5C11580E2D80708F0C3C0CB3BD10541
+:100D000090F4C83AD10508F06AC0C53AD10508F098
+:100D10005BC0C430D10508F0D0C1219709F0CAC129
+:100D200001E010E00AC2CF3FD10511F008F0C5C1C3
+:100D3000C03FD10508F0A2C0CE01805E910908979E
+:100D400008F4BBC1B7C1C13090E5D90709F4A2C00E
+:100D500020F5C0318FE4D80770F4C11590E4D907AD
+:100D600008F094C0C11521E3D20708F0A3C1DD2724
+:100D70008E01106CE2C1C115D04509F09BC10E94E3
+:100D8000DE148FEF94E32CE0815090402040E1F797
+:100D900000C000000E94511CD0C1C11597E5D907C1
+:100DA00058F4C03121E5D20708F01CC1C43180E5F8
+:100DB000D80708F475C07EC1CE01905781159041C7
+:100DC00008F078C1DF7073C1C53AD10509F477C165
+:100DD000C63AD10509F076C102E810E4AEC1C83ABE
+:100DE000D10509F472C1C93AD10509F471C1CA3AF1
+:100DF000D10509F470C1CB3AD10509F46FC1CC3AE1
+:100E0000D10509F46EC1CD3AD10509F46DC1C03BDD
+:100E1000D10509F46CC1CE3AD10509F46BC1CF3AC2
+:100E2000D10509F46AC1C13BD10509F469C1C23BCE
+:100E3000D10509F468C1C33BD10509F467C1C43BBE
+:100E4000D10509F466C1C53BD10509F465C1C63BAE
+:100E5000D10509F464C1C73BD10509F463C1C83B9E
+:100E6000D10509F462C1C93BD10509F461C1CA3B8E
+:100E7000D10509F460C100E014E45FC18E01106582
+:100E80005CC1CE019F700E94680658C1DF708E0160
+:100E9000106A53C18091DA0181608093DA014DC1FB
+:100EA0000E94F61D811102C00E94DC1D0E94131ECB
+:100EB00090E09093FB018093FA01C23080E5D8075F
+:100EC00021F48091FA01816086C0C43090E5D90791
+:100ED00021F48091FA0182607EC0C63020E5D207FD
+:100EE00021F48091FA01846076C0C83080E5D8078B
+:100EF00019F48091FA0127C0CA3090E5D90721F48E
+:100F00008091FA01806167C0CC3020E5D20721F4DE
+:100F10008091FA0180625FC0CE3080E5D80721F46D
+:100F20008091FA01806457C0C03190E5D90721F45F
+:100F30008091FA0180684FC0C23120E5D20729F4C0
+:100F40008091FA018460886046C0C33080E5D8078C
+:100F500021F48091FA018E7F3EC0C53090E5D9071B
+:100F600021F48091FA018D7F36C0C73020E5D20789
+:100F700021F48091FA018B7F2EC0C93080E5D8071B
+:100F800019F48091FA0126C0CB3090E5D90721F4FD
+:100F90008091FA018F7E1FC0CD3020E5D20721F469
+:100FA0008091FA018F7D17C0CF3080E5D80721F4FA
+:100FB0008091FA018F7B0FC0C13190E5D90721F4F0
+:100FC0008091FA018F7707C0C331D04531F4809109
+:100FD000FA018B7F877F8093FA018091FA010E944A
+:100FE000171EABC08D2F99278F70992781309105DF
+:100FF000D9F49E012370332702C0880F991F2A95C8
+:10100000E2F79C688E0144E0000F111F4A95E1F75A
+:1010100000271370802B912B53E0CC0FDD1F5A95C6
+:10102000E1F7C076DD272FC08230910531F4DC2F47
+:10103000CC278E01016F106A80C08330910569F45E
+:10104000CE018370992701E010E002C0000F111F4C
+:101050008A95E2F7C8019C680FC084309105B9F405
+:10106000CE018370992701E010E002C0000F111F2C
+:101070008A95E2F7C8019A6823E0CC0FDD1F2A9514
+:10108000E1F7C07ED7708C010C2B1D2B56C085302C
+:10109000910531F4DC2FCC278E01046F106A4DC00E
+:1010A000069709F04AC0CF71DD27DC2FCC278E01CF
+:1010B000106243C000E010E040C08E013EC001E875
+:1010C00010E43BC003E810E438C002EE14E435C07D
+:1010D00009EE14E432C00AEE14E42FC005EB14E468
+:1010E0002CC006EB14E429C007EB14E426C00CEC7A
+:1010F00014E423C00DEC14E420C003E815E41DC083
+:101100000AE815E41AC002E915E417C004E915E479
+:1011100014C001E216E411C003E216E40EC004E2BA
+:1011200016E40BC005E216E408C006E216E405C0AA
+:1011300007E216E402C00AE216E4C801DF91CF918B
+:101140001F910F91089596E0799FF001112494E585
+:10115000899FE00DF11D1124E60FF11DEE0FFF1F19
+:10116000EE5EFE4F85919491803E9105E0F4803CC7
+:10117000910558F58133910509F46FC048F489321F
+:10118000910509F463C08A32910509F46DC072C0FB
+:1011900089339105E9F082389105D1F085339105C5
+:1011A00009F44DC067C0833E910581F138F4803E5B
+:1011B0009105B9F0823E9105D9F05CC0863E91055B
+:1011C00061F1873E9105A1F155C00E946006089526
+:1011D0002091FA0120FD02C021FF4CC080EE90E07A
+:1011E00049C08091FA0180FFF9CF89E390E042C0C5
+:1011F0008091FA0182FF0EC08091FA0184FF03C042
+:1012000080E090E037C083EE90E034C08091FA0136
+:1012100082FFF2CF82EE90E02DC08091FA0183FF31
+:101220000BC08091FA0184FDEBCF87EE90E022C0E5
+:101230008091FA0183FFF5CF86EE90E01BC080918C
+:10124000FA0185FF07C089E290E014C08091FA019D
+:1012500085FFF9CF85E390E00DC08091FA0186FF0C
+:1012600007C08AE290E006C08091FA0186FFF9CFBC
+:1012700081E390E00E947006089508950C943D0962
+:1012800080916E010895CF93DF9300D01F92CDB768
+:10129000DEB79C018091F101843019F593E09983C8
+:1012A0003B832A839093E9008FEF9091E80081506F
+:1012B00095FD06C095ED9A95F1F700008111F5CFE7
+:1012C0008091E80085FF0DC040E050E063E070E0F1
+:1012D000CE0101960E94AD0B8091E8008E7780933D
+:1012E000E8000F900F900F90DF91CF910895CF936A
+:1012F000DF9300D01F92CDB7DEB72091F1012430EB
+:1013000021F522E029839B838A8383E08093E9008F
+:101310008FEF9091E800815095FD06C095ED9A956C
+:10132000F1F700008111F5CF8091E80085FF0DC035
+:1013300040E050E063E070E0CE0101960E94AD0B0A
+:101340008091E8008E778093E8000F900F900F90C7
+:10135000DF91CF9108952091F1012430F1F422E042
+:101360002093E9002FEF3091E800215035FD06C0B1
+:1013700035ED3A95F1F700002111F5CF2091E80005
+:1013800025FF0BC040E050E065E070E00E94AD0B2F
+:101390008091E8008E778093E8000895CF93DF93E3
+:1013A000EC019091F101943009F046C080910C015C
+:1013B0008823D9F080910D018823B9F09093E9003A
+:1013C0008FEF9091E800815095FD06C095E19A95C8
+:1013D000F1F700008111F5CF8091E80085FF2CC066
+:1013E00040E050E060E170E017C081E08093E900E8
+:1013F0008FEF9091E800815095FD06C095ED9A958C
+:10140000F1F700008111F5CF8091E80085FF14C04D
+:1014100040E050E068E070E0CE010E94AD0B8091AA
+:10142000E8008E778093E80080E1FE01AEE5B1E050
+:1014300001900D928A95E1F7DF91CF910895809107
+:10144000F001811109C00E94420D0E949F0D809100
+:10145000E20084608093E20008951092F001089504
+:1014600008950C9486220E94E71B0E948C220E9401
+:1014700045100C943E0942E061EC81E00E94BC0CF6
+:1014800042E061EC82E00E94BC0C42E061EC83E04F
+:101490000E94BC0C42E161EC84E00C94BC0C809195
+:1014A000F301833009F455C030F4813071F082309B
+:1014B00009F48EC008958A3009F47AC08B3009F49B
+:1014C00060C0893009F09CC020C08091F201813A4F
+:1014D00009F096C08091E800877F8093E8008091B2
+:1014E000F6019091F701892B21F460E18EE591E0FE
+:1014F00003C060E080E090E070E00E94F80B809113
+:10150000E8008B778093E80008958091F2018132A2
+:1015100009F076C08091F6019091F701009719F0DB
+:10152000039709F06DC08091E800877F8093E80001
+:101530008091E80082FD05C08091F1018111F8CF12
+:101540005FC08091F10080936E018091E8008B77FD
+:1015500053C08091F201813A09F052C08091F601A6
+:101560009091F701892B09F04BC08091E800877FAB
+:101570008093E8008091E80080FFFCCF80910C010F
+:1015800036C08091F2018132D9F58091F6019091B7
+:10159000F701892BA9F58091E800877F8093E80007
+:1015A0000E94F10C8091F40180930C010C94DE14E4
+:1015B0008091F201813221F58091E800877F80934C
+:1015C000E8000E94F10C8091F50180936F0108956D
+:1015D0008091F201813AA1F48091E800877F8093A5
+:1015E000E8008091E80080FFFCCF80916F0180933C
+:1015F000F1008091E8008E778093E8000C94F10C64
+:10160000089584B7877F84BF88E10FB6F8948093EC
+:101610006000109260000FBE90E080E80FB6F89472
+:1016200080936100909361000FBE0E9494100E940D
+:10163000420D0E949F0D8091E20084608093E20041
+:1016400078940E9425100E94961082E091E00E94FA
+:1016500040100E9474228091F101853069F40E944B
+:10166000AE1B8091EF018823B1F30E94D91B882320
+:1016700091F30E94970BEFCF0E949C10ECCF292F83
+:10168000332723303105C9F064F42130310581F06E
+:101690002230310509F043C08DE690E026EE33E0BC
+:1016A00042C021323105F1F02232310541F137C01B
+:1016B00082E190E023E534E036C09927813091053E
+:1016C00041F08230910541F0892B49F5E2EEF3E0DB
+:1016D00005C0EAECF3E002C0E2EBF3E0849190E0B5
+:1016E0009F0121C06430D8F4E62FF0E0EE0FFF1F19
+:1016F000EE5DFE4F2081318189E090E014C06430BE
+:1017000070F470E0FB01EE0FFF1FE65EFE4F2081DC
+:101710003181FB01EA5EFE4F808190E004C080E0F1
+:1017200090E020E030E0FA0131832083089580E1E9
+:1017300089BD82E189BD09B400FEFDCF8091D8004A
+:101740008F7D8093D8008091E00082608093E000DC
+:101750008091E00081FDFCCF0895CF92DF92EF925F
+:10176000FF920F931F93CF93DF93EC018B016A01DC
+:101770000E94100D811133C0C114D10439F0F6015B
+:1017800080819181081B190BC80FD91FE12CF12C06
+:101790000115110519F18091E80085FD16C08091B1
+:1017A000E8008E778093E800C114D10449F0F60177
+:1017B00080819181E80EF91EF182E08285E00FC000
+:1017C0000E94100D882321F30AC089918093F100B3
+:1017D00001501109FFEFEF1AFF0ADACF80E0DF9125
+:1017E000CF911F910F91FF90EF90DF90CF900895D0
+:1017F0002091F8013091F9012617370748F061155B
+:10180000710539F42091E8002E772093E80001C09B
+:10181000B90140E061157105A9F12091F101222380
+:1018200009F443C0253009F442C02091E80023FDAB
+:1018300040C02091E80022FD32C02091E80020FF46
+:10184000E9CF4091F3002091F20030E0342BFC010D
+:10185000CF016115710559F02830310540F48191AF
+:101860008093F100615071092F5F3F4FF1CF41E04C
+:101870002830310509F040E02091E8002E772093D0
+:10188000E800C8CF4111C9CF0AC08091F101882377
+:1018900061F0853061F08091E80083FD0AC080919D
+:1018A000E80082FFF2CF80E0089582E0089583E0AF
+:1018B000089581E008952091F8013091F9012617EB
+:1018C000370748F06115710539F42091E8002E774B
+:1018D0002093E80001C0B901FC0120E06115710509
+:1018E00091F18091F101882309F440C0853009F419
+:1018F0003FC08091E80083FD3DC08091E80082FDFB
+:101900002FC08091E80080FFE9CF2091F300809103
+:10191000F20090E0922B6115710559F08830910525
+:1019200040F424912093F1003196615071090196A1
+:10193000F2CF21E0089709F020E08091E8008E774F
+:101940008093E800CBCF2111CCCF0AC08091F10168
+:10195000882361F0853061F08091E80083FD0AC042
+:101960008091E80082FFF2CF80E0089582E0089540
+:1019700083E0089581E00895982F973058F590936B
+:10198000E900981739F07091EC002091ED0050912A
+:10199000F00003C0242F762F50E021FF19C03091B2
+:1019A000EB003E7F3093EB003091ED003D7F3093B4
+:1019B000ED003091EB0031603093EB007093EC0060
+:1019C0002093ED005093F0002091EE0027FF07C018
+:1019D0009F5FD3CF8F708093E90081E0089580E00E
+:1019E00008958091F20187FF11C08091E80082FD87
+:1019F00005C08091F1018111F8CF11C08091E800FC
+:101A00008B770BC08091F101882349F08091E80029
+:101A100080FFF8CF8091E8008E778093E8000895EA
+:101A20002091E4003091E50095E64091EC00842F90
+:101A3000817040FF22C08091E80080FD1CC0809131
+:101A4000F101882391F0853091F08091EB0085FDC4
+:101A500010C04091E4005091E5004217530729F36C
+:101A60009A01915011F784E0089582E0089583E08F
+:101A7000089581E0089580E008954091E80042FFD4
+:101A8000DECF08950E94B00D0E94B80DE0EEF0E0A8
+:101A9000808181608083E8EDF0E080818F778083B2
+:101AA00019BCA7EDB0E08C918E7F8C9380818F7EE6
+:101AB00080831092F00108950F931F93CF93DF93CB
+:101AC0000E94B00D0E94B80DC8EDD0E088818F77DC
+:101AD000888388818068888388818F7D888319BC0A
+:101AE0001092F1011092ED011092EF011092EE01AF
+:101AF00000EE10E0F80180818B7F80838881816017
+:101B0000888342E060E080E00E94BC0CE1EEF0E0FF
+:101B100080818E7F8083E2EEF0E08081816080832F
+:101B2000808188608083F80180818E7F80838881B6
+:101B300080618883DF91CF911F910F910895E8ED27
+:101B4000F0E080818F7E8083E7EDF0E0808181602E
+:101B5000808384E082BF81E08093F0010C945C0D6F
+:101B6000E8EDF0E080818E7F80831092E20008959E
+:101B70001092DA001092E10008951F920F920FB6B2
+:101B80000F9211242F933F934F935F936F937F9303
+:101B90008F939F93AF93BF93EF93FF938091E10057
+:101BA00082FF0BC08091E20082FF07C08091E100BC
+:101BB0008B7F8093E1000E9424108091DA0080FFE7
+:101BC0001FC08091D80080FF1BC08091DA008E7FFB
+:101BD0008093DA008091D90080FF0DC080E189BD3B
+:101BE00082E189BD09B400FEFDCF81E08093F1015F
+:101BF0000E941F0A05C019BC1092F1010E942D0A13
+:101C00008091E10080FF19C08091E20080FF15C043
+:101C10008091E2008E7F8093E2008091E2008061FB
+:101C20008093E2008091D80080628093D80019BC34
+:101C300085E08093F1010E94310A8091E10084FFE8
+:101C400030C08091E20084FF2CC080E189BD82E138
+:101C500089BD09B400FEFDCF8091D8008F7D8093AF
+:101C6000D8008091E1008F7E8093E1008091E200B6
+:101C70008F7E8093E2008091E20081608093E20099
+:101C80008091ED01882311F084E007C08091E3008A
+:101C900087FD02C081E001C083E08093F1010E94D2
+:101CA000330A8091E10083FF29C08091E20083FF25
+:101CB00025C08091E100877F8093E10082E08093DE
+:101CC000F1011092ED018091E1008E7F8093E1009F
+:101CD0008091E2008E7F8093E2008091E20080613B
+:101CE0008093E20042E060E080E00E94BC0C8091C2
+:101CF000F00088608093F0000E94300AFF91EF911D
+:101D0000BF91AF919F918F917F916F915F914F9113
+:101D10003F912F910F900FBE0F901F9018951F921B
+:101D20000F920FB60F9211242F933F934F935F930F
+:101D30006F937F938F939F93AF93BF93CF93DF93D3
+:101D4000EF93FF93C091E900CF708091EC00D82F02
+:101D5000D17080FDD0E81092E9008091F000877F7B
+:101D60008093F00078940E94D30E1092E900809145
+:101D7000F00088608093F000CD2BCF70C093E90015
+:101D8000FF91EF91DF91CF91BF91AF919F918F9193
+:101D90007F916F915F914F913F912F910F900FBE67
+:101DA0000F901F9018951F93CF93DF93CDB7DEB799
+:101DB000AA970FB6F894DEBF0FBECDBFE2EFF1E0F9
+:101DC00088E08E0F9091F10091938E13FBCF0E94CB
+:101DD0004F0A8091E80083FF1FC18091F20190912A
+:101DE000F301492F50E04A30510508F015C1FA01BE
+:101DF000EA5AFF4F0C940E24803881F0823809F0A3
+:101E00000BC18091F6018F708093E9008091EB0007
+:101E100085FB882780F91092E90006C08091EE01C9
+:101E20009091EF01911182609091E800977F9093DB
+:101E3000E8008093F1001092F100C8C0282F2D7F98
+:101E400009F0EAC0882319F0823061F0E5C0809182
+:101E5000F401813009F0E0C0933009F080E0809314
+:101E6000EF012BC08091F401811127C08091F60110
+:101E70008F7009F4D1C08093E9002091EB0020FF1E
+:101E80001CC0933021F48091EB00806214C09091CB
+:101E9000EB0090619093EB0021E030E0A90102C0DB
+:101EA000440F551F8A95E2F74093EA001092EA002A
+:101EB0008091EB0088608093EB001092E9008091A4
+:101EC000E800877F86C08111A7C01091F4011F77B9
+:101ED0008091E3008078812B8093E3008091E8007B
+:101EE000877F8093E8000E94F10C8091E80080FFDA
+:101EF000FCCF8091E30080688093E300111102C061
+:101F000082E001C083E08093F10186C08058823076
+:101F100008F082C08091F4019091F5018C3D53E06E
+:101F2000950779F583E08A838AE289834FB7F8942D
+:101F3000DE01139620E03EE051E2E32FF0E0509303
+:101F40005700E49120FF03C0E295EF703F5FEF7010
+:101F50008E2F90E0EA3010F0C79601C0C0968D93A6
+:101F60009D932F5F243149F74FBF8091E800877F11
+:101F70008093E8006AE270E0CE0101960E94F80BBF
+:101F800014C0AE014F5F5F4F6091F6010E943F0B9E
+:101F9000BC01009709F440C09091E800977F9093AE
+:101FA000E80089819A810E945B0C8091E8008B7720
+:101FB0008093E80031C0803879F58091E800877F10
+:101FC0008093E8008091ED018093F1008091E8001A
+:101FD0008E778093E8000E94F10C1EC081111CC016
+:101FE0009091F4019230C0F48091E800877F809353
+:101FF000E8009093ED010E94F10C8091ED018111B8
+:1020000006C08091E30087FD02C081E001C084E04A
+:102010008093F1010E943B0A8091E80083FF0AC08F
+:102020008091E800877F8093E8008091EB008062D8
+:102030008093EB00AA960FB6F894DEBF0FBECDBF1B
+:10204000DF91CF911F9108950895CF938091F10171
+:102050008823A1F0C091E900CF709091EC00892F06
+:10206000817090FD80E8C82B1092E9008091E80013
+:1020700083FD0E94D30ECF70C093E900CF910895E5
+:1020800090937501809374010895E0917401F0912B
+:102090007501309721F00190F081E02D099480E0E6
+:1020A0000895E0917401F0917501309721F002805C
+:1020B000F381E02D09940895E0917401F091750188
+:1020C000309721F00480F581E02D09940895209146
+:1020D0007201309173018217930771F0909373012D
+:1020E00080937201E0917401F0917501309721F0B5
+:1020F0000680F781E02D09940895209170013091B8
+:1021000071018217930771F09093710180937001B0
+:10211000E0917401F0917501309721F00084F18510
+:10212000E02D0994089508950C9493100E94ED1BDE
+:102130000E948A030C94AF1C9F92AF92BF92CF92E1
+:10214000DF92EF92FF920F931F93CF93DF9300D014
+:1021500000D000D0CDB7DEB70E94A2030DE010E0A2
+:10216000AA24A394B12C902E802F0E949004980151
+:1021700029583E4F6901F901F080F826A1F4015079
+:10218000110988F78FEF89838A831B820E94F61BCF
+:102190008160782F9D838C8349815A816B818D81E9
+:1021A0000E9433112FC09091DA0191FF04C08E83F9
+:1021B0000E9496048E8125E030E0A501022E01C028
+:1021C000440F0A94EAF7E42E4F21C1F029839A8242
+:1021D0008E2191E009F490E09B830E94F61B8160C0
+:1021E000782F9D838C8349815A816B818D810E94D8
+:1021F0003311F6018081E826E08204C021503109C4
+:10220000E0F6BDCF0E94961F109176010E94451006
+:102210001817B9F00E9445108093760126960FB6E4
+:10222000F894DEBF0FBECDBFDF91CF911F910F910C
+:10223000FF90EF90DF90CF90BF90AF909F900C9465
+:102240003E0926960FB6F894DEBF0FBECDBFDF91D4
+:10225000CF911F910F91FF90EF90DF90CF90BF90A3
+:10226000AF909F900895CF93DF93CDB7DEB72B97B4
+:102270000FB6F894DEBF0FBECDBF4F835887698776
+:102280007A878B87DE01119686E0FD0111928A958F
+:10229000E9F785E0FE01379601900D928A95E1F706
+:1022A00049815A816B817C818D819E810E947C173E
+:1022B0002B960FB6F894DEBF0FBECDBFDF91CF9146
+:1022C0000895CF93882309F4C2C0C82F823859F4E7
+:1022D0000E94451081FDBBC089E30E94561A0E94EE
+:1022E000231B89E30CC0833879F40E94451080FDDC
+:1022F000AEC083E50E94561A0E94231B83E50E940C
+:10230000981ACF910C94231B843859F40E944510DD
+:1023100082FD9DC087E40E94561A0E94231B87E419
+:10232000EECF8CEF8C0F813A48F48C2F0E94D9218C
+:1023300081118DC08C2F0E94561AE3CF80E28C0F42
+:10234000883048F4C77081E001C0880FCA95EAF769
+:102350000E94DC1AD6CF8BE58C0F833078F4C53A17
+:1023600029F0C63A31F083E890E005C081E890E0BA
+:1023700002C082E890E0CF910C94671088E58C0F42
+:10238000833108F064C0C83A39F1C93A41F1CA3A18
+:1023900049F1CB3A51F1CC3A59F1CD3A61F1C03B18
+:1023A00069F1CE3A71F1CF3A79F1C13B81F1C23B8B
+:1023B00089F1C33B91F1C43B99F1C53BA1F1C63B07
+:1023C000A9F1C73BB1F1C83BB9F1C93BC1F1CA3B67
+:1023D000C9F180E090E038C082EE90E035C089EE2F
+:1023E00090E032C08AEE90E02FC085EB90E02CC0E8
+:1023F00086EB90E029C087EB90E026C08CEC90E063
+:1024000023C08DEC90E020C083E891E01DC08AE8F5
+:1024100091E01AC082E991E017C084E991E014C00C
+:1024200081E292E011C083E292E00EC084E292E089
+:102430000BC085E292E008C086E292E005C087E228
+:1024400092E002C08AE292E0CF910C947D10CF918D
+:102450000895882309F44BC0823859F40E9445102E
+:1024600081FF45C089E30E94561A0E94231B89E31D
+:102470000CC0833871F40E94451080FF38C083E59A
+:102480000E94561A0E94231B83E50E94981A0C94FE
+:10249000231B843859F40E94451082FF28C087E42A
+:1024A0000E94561A0E94231B87E4EFCF9CEF980FDF
+:1024B000913A58F390E2980F983050F4877091E079
+:1024C00001C0990F8A95EAF7892F0E94E21ADFCF9F
+:1024D0009BE5980F933020F480E090E00C94671017
+:1024E000885A833120F480E090E00C947D100895A8
+:1024F000882321F00E94DC1A0C94231B0895882362
+:1025000021F00E94E21A0C94231B08957F928F926F
+:102510009F92AF92BF92CF92DF92EF92FF920F9372
+:102520001F93CF93DF931F92CDB7DEB77C01C62EEA
+:10253000772EFC01058102950F70128111110E9406
+:10254000F91A0E944F1A882379F0112369F080E26A
+:102550008C0D883048F082E00E94381A0E944F1A91
+:1025600091E0D82ED92601C0D12CE72DE295EF704D
+:10257000F0E0E05AFF4F0C940E24872D807F072D4A
+:102580000F70882311F00295007F112389F000233A
+:1025900009F490C180E28C0D883020F4802F0E94D5
+:1025A000DC1A03C0802F0E94EC1A0E94231B82C1F8
+:1025B0008C2D0E942912002309F495C180E28C0D14
+:1025C000883020F4802F0E94E21A03C0802F0E94DE
+:1025D000F21A0E94231B87C1972D907F872D8F7041
+:1025E000903211F08295807FCC2021F0F1E0CF165F
+:1025F000B1F01EC0112349F0002309F414C10130C9
+:1026000009F011C10E940C1B6EC1002319F00130AA
+:1026100009F469C189830E940F1B89810AC11123B2
+:1026200021F0023008F05FC1FEC001115CC101C1A0
+:10263000112321F0002309F4F6C03CC1002309F462
+:10264000F8C03EC1872D86958695837090E00097EF
+:1026500019F0019761F047C1112321F08C2D972DBE
+:10266000937002C080E090E00E9467103CC111238B
+:1026700021F08C2D972D937002C080E090E00E9495
+:102680007D1031C18C2D112319F00E949E1E02C0B5
+:102690000E94061F0E948B1F26C1872D837009F0A0
+:1026A00052C0111120C18C2D829586958770880F9C
+:1026B000880F9C2D9F70892E912CA12CB12C082E57
+:1026C00004C0880C991CAA1CBB1C0A94D2F7C4FE37
+:1026D00014C00FE010E020E030E0B901A80104C010
+:1026E000440F551F661F771F8A95D2F7CB01BA0199
+:1026F000609570958095909503C060E070E0CB0187
+:10270000272D26952695237030E02230310569F07B
+:102710002330310589F0682979298A299B292130BC
+:10272000310571F00E94C418DEC0682979298A2910
+:102730009B290E94E018D7C00E94C418C501B401AB
+:102740000E94A818D0C0112319F0872D817001C0F4
+:102750008695882309F4C7C08C2D8295869587704D
+:10276000880F880F9C2D9F70892E912CA12CB12C45
+:10277000082E04C0880C991CAA1CBB1C0A94D2F712
+:10278000C4FE14C00FE010E020E030E0B901A80161
+:1027900004C0440F551F661F771F8A95D2F7CB01DF
+:1027A000BA01609570958095909503C060E070E0E7
+:1027B000CB01272D269526952370422F50E04230DD
+:1027C000510569F04330510589F0682979298A2932
+:1027D0009B294130510571F00E949E1984C06829DF
+:1027E00079298A299B290E94BA197DC00E949E19C5
+:1027F000C501B4010E94821976C08C2D90E0FC01C5
+:10280000E05EF109E531F10508F050C0E059FF4FF5
+:102810000C940E240C2D0F70872D8F71112331F025
+:102820000E941B19802F0E9478125DC00E943C19E3
+:10283000802F0E947F1257C0112339F0011153C01D
+:10284000872D8F710E9461194EC0023008F04BC075
+:10285000F7CF112339F0872D8F710E941B1943C0C8
+:102860001123C9F3872D8F710E943C193CC011239D
+:1028700029F0872D8F710E94061935C00E94FC181F
+:1028800032C0112351F0172D1F71812F0E941B1987
+:1028900063E0812F0E942F1A26C081E00E94381A1F
+:1028A000023008F182E00E94381A1DC0112331F075
+:1028B000002389F28C2D0E94611115C0002391F232
+:1028C0008C2D0E9429120FC0472D4F706C2DC7010F
+:1028D0000E946C050E94201806C0472D4F706C2D79
+:1028E000C7010E944D06DD20F9F00E942B1A80FDE1
+:1028F0001BC0F70112820E94251A0E941B19C701F2
+:102900000E94A3140E94251A0F90DF91CF911F916E
+:102910000F91FF90EF90DF90CF90BF90AF909F907E
+:102920008F907F900C943C190F90DF91CF911F9165
+:102930000F91FF90EF90DF90CF90BF90AF909F905E
+:102940008F907F9008950F931F93CF93DF93EC01A7
+:10295000888199812B813C81232BB9F09F3F11F411
+:102960008F3F99F0CE010E94A505882371F0688100
+:1029700079818A810E94211A8C010E94D6190E94B5
+:102980009D18B801CE010E948612DF91CF911F9150
+:102990000F9108950E94F91A0E94091B0E94CE1AF5
+:1029A0000E94231B0E943C200E948B1F80E090E02D
+:1029B0000E94671080E090E00C947D100E94E91A5C
+:1029C0000C94CA140E94161A292F22952F7030E0F9
+:1029D0002C3031054CF42A3031056CF42250310989
+:1029E00022303105A8F407C02C30310569F02F30B2
+:1029F000310551F00DC0803F69F018F4803E40F47D
+:102A000009C0843F29F406C093FB882780F9089504
+:102A100080E0089581E00895CF93DF9300D000D047
+:102A20001F92CDB7DEB70F900F900F900F900F90C1
+:102A3000DF91CF910895CF93DF9300D000D000D0E5
+:102A4000CDB7DEB726960FB6F894DEBF0FBECDBF6A
+:102A5000DF91CF9108951F93CF93DF93C0918501AC
+:102A600016E080918601C81799F0D0E01C9FF00114
+:102A70001D9FF00D1124E957FE4F40815181628165
+:102A80007381848195810E941B152196C770E9CFBF
+:102A9000DF91CF911F9108954091B7015091B801F6
+:102AA0006091B9017091BA018091BB019091BC0114
+:102AB0000C941B158091BC0182958F7009F054C055
+:102AC0008091B901882309F44FC080918501A091BC
+:102AD00086016091B7017091B8014091BA0150919F
+:102AE000BB01B6E08A1709F43FC090E041155105DB
+:102AF000C1F17F3F11F46F3FA1F1B89FF001B99F81
+:102B0000F00D1124E957FE4F218172132AC0208154
+:102B1000621327C02281211124C02381348124170C
+:102B2000350710F421503109241B350B283C3105A1
+:102B3000C0F42091BC012F7020612093BC0126E0DD
+:102B4000289FF001299FF00D1124E457FE4F80814A
+:102B50008F708061808387EB91E00E94A3140C94B6
+:102B60002B1501968770BECF0895CF92DF92EF921A
+:102B7000FF920F931F93CF93DF93CDB7DEB762978A
+:102B80000FB6F894DEBF0FBECDBF8C0185E0F80113
+:102B9000DE011D9601900D928A95E1F7D8014C91C6
+:102BA00011965C91119712966C9112971396CD9095
+:102BB000DC9014973091B7017091B8018091BA01FF
+:102BC0009091BB01009709F46BC17F3F19F43F3F1F
+:102BD00009F466C1E090B901EE2009F4C0C020916B
+:102BE000BC01C816D90628F0F601E81BF90BCF0185
+:102BF00004C0809590958C0D9D1DFF24F394883C16
+:102C0000910578F0F12C207F09F0C6C07C2DD98A7F
+:102C1000C88A89890E940C1587EB91E00E94A31451
+:102C2000B1C0822F807F09F046C0751314C03413E1
+:102C300012C0611110C02F7020612093BC010E944E
+:102C40004C1587EB91E00E94A3148091BC01D80140
+:102C500015968C932EC0CD2819F15F3F11F44F3F8C
+:102C6000F9F0F62E61111CC080918501209186013A
+:102C700036E0821709F45AC090E0389FF001399F7E
+:102C8000F00D1124E957FE4F7181571306C0708172
+:102C9000471303C07281711103C001968770E9CF99
+:102CA000F62E662309F418C18091BC0181608093DF
+:102CB000BC01F12C11C1751308C0341306C0611199
+:102CC00004C08091BC01D801C3C04D875E878D854B
+:102CD0009E856A8B0E94E2146A898823E1F166234B
+:102CE000D1F12091BC01822F82958F7090E00297E4
+:102CF00074F08091B7019091B80198878F831986FD
+:102D0000DB86CA862C87CE0107960E94A31486E034
+:102D1000F801A7EBB1E001900D928A95E1F70E94CE
+:102D20005A150E944C15FF24F394D6C04D875E8738
+:102D30008D859E850E94161A292F22952F7030E0CE
+:102D4000223031050CF0BCC09F7009F0B6C0805E27
+:102D5000883008F4C1C0C8010E94A314E4CFC8168B
+:102D6000D90608F453C0F601E81BF90BCF01883CE3
+:102D7000910508F450C0F12C7C2DD98AC88A898924
+:102D80000E940C15E7EBF1E086E0DF011D928A95C9
+:102D9000E9F70E944C15A0C0751314C0341312C07B
+:102DA000611110C08091BC01F8018583C8010E94A7
+:102DB000A31486E0E7EBF1E0DF011D928A95E9F7C5
+:102DC000FE2C8AC04D875E878D859E856A8B0E940A
+:102DD000E2146A89882309F4BECF662309F4BBCFC5
+:102DE0002091BC01822F82958F7090E002970CF4A5
+:102DF0008ECF8091B7019091B8019A8389831B820D
+:102E0000DD82CC822E83CE0101967FCF8095909576
+:102E10008C0D9D1DACCFF62E662309F49CCF751347
+:102E20002EC034132CC02091BC0120FD1FC0822F66
+:102E300082958F70D9F0D80115962C9315978F3005
+:102E400049F08F5F982F9295907F822F8F70892BFA
+:102E500015968C93C8010E94A31486E0F801A7EB95
+:102E6000B1E001900D928A95E1F793CF86E0F801E9
+:102E7000A7EBB1E001900D928A95E1F72DC04D8747
+:102E80005E878D859E850E94E214811140CF8091DE
+:102E9000BC0181608093BC01C8010E94A3141CC0C6
+:102EA000662309F458CF4D875E878D859E850E94E5
+:102EB000E214882309F44FCF2ACF811148CF0CC0E8
+:102EC000243031050CF047CF9F7009F440CFF80152
+:102ED0009581907F09F03BCF8F2D62960FB6F894C5
+:102EE000DEBF0FBECDBFDF91CF911F910F91FF903D
+:102EF000EF90DF90CF9008951F93CF93DF93CDB7DE
+:102F0000DEB72C970FB6F894DEBF0FBECDBF4F8350
+:102F1000588769877A878B879C87CE0107960E949E
+:102F2000B515882369F08F8198852A853B85232BE9
+:102F3000F1F19F3F09F063C08F3F09F060C037C0D7
+:102F400086E0FE013796DE01119601900D928A957A
+:102F5000E1F76F817885EA85FB85309741F17F3F06
+:102F600011F46F3F21F12091860130E0C9010196F3
+:102F7000877099274091850150E08417950709F4DF
+:102F800047C069837A83FD83EC8396E0929FD001EA
+:102F9000939FB00D1124A957BE4FFE0131960190A9
+:102FA0000D929A95E1F7809386010E942B1516E009
+:102FB00080918501909186018917C1F1189FC00108
+:102FC000112489579E4F0E94B515882379F1E0910D
+:102FD00085011E9FF0011124E957FE4F4081518168
+:102FE00062817381848195810E941B158091850186
+:102FF00090E001968770992780938501D9CF4F8102
+:10300000588569857A858B859C850E941B15CFCF55
+:103010000E94DE141092860110928501E7EBF1E028
+:1030200086E0DF011D928A95E9F7C1CF2C960FB695
+:10303000F894DEBF0FBECDBFDF91CF911F910895F1
+:10304000EF92FF920F931F93CF93DF938C01009722
+:1030500009F46CC0F12CEE24E394E8012196F80108
+:103060008491843740F4843008F051C0813081F07D
+:10307000823019F15BC0853709F444C0A8F19CE7A0
+:10308000980F903708F052C08F770E94291241C0E4
+:103090000E5F1F4FFE01C49180E28C0F883048F410
+:1030A000C7708E2D01C0880FCA95EAF70E94FC1ADE
+:1030B00014C08C2F0E9461112DC00E5F1F4FFE01A6
+:1030C000C49180E28C0F883058F4C7708E2D01C0F7
+:1030D000880FCA95EAF70E94021B0E94231B1AC0A0
+:1030E0008C2F0E94291216C00E5F1F4FFE01C49143
+:1030F000CC2381F08FE99FE00197F1F700C0000039
+:10310000C150F6CF0E5F1F4FFE01F49003C00E9426
+:1031100061118E018F2D882309F49FCFEFE9FFE025
+:103120003197F1F700C000008150F5CFDF91CF91CA
+:103130001F910F91FF90EF90089508956093C10142
+:103140007093C2018093C3019093C4010C94CA147C
+:103150000F931F930091C1011091C2012091C301EF
+:103160003091C401DC01CB01802B912BA22BB32B1E
+:103170008093C1019093C201A093C301B093C40195
+:103180001F910F910C94CA140F931F930091C101CA
+:103190001091C2012091C3013091C401DC01CB0127
+:1031A00080239123A223B3238093C1019093C20172
+:1031B000A093C301B093C4011F910F910C94CA1442
+:1031C0000F931F930091C1011091C2012091C3017F
+:1031D0003091C401DC01CB0180279127A227B327BE
+:1031E0008093C1019093C201A093C301B093C40125
+:1031F0001F910F910C94CA141092BD011092BE0140
+:103200001092BF011092C0010C94CA1441E050E02A
+:1032100060E070E004C0440F551F661F771F8A9559
+:10322000D2F74093BD015093BE016093BF017093EC
+:10323000C0010C94CA1441E050E060E070E004C0AA
+:10324000440F551F661F771F8A95D2F78091BD01E5
+:103250009091BE01A091BF01B091C001482B592BA4
+:103260006A2B7B2B4093BD015093BE016093BF013D
+:103270007093C0010C94CA1441E050E060E070E02B
+:1032800004C0440F551F661F771F8A95D2F74095DB
+:103290005095609570958091BD019091BE01A0916F
+:1032A000BF01B091C001482359236A237B23409377
+:1032B000BD015093BE016093BF017093C0010C9497
+:1032C000CA1441E050E060E070E004C0440F551FB4
+:1032D000661F771F8A95D2F78091BD019091BE013C
+:1032E000A091BF01B091C001482759276A277B27C9
+:1032F0004093BD015093BE016093BF017093C00124
+:103300000C94CA140F931F930091BD011091BE013C
+:103310002091BF013091C001DC01CB01802B912BAA
+:10332000A22BB32B8093BD019093BE01A093BF014C
+:10333000B093C0011F910F910C94CA140F931F9367
+:103340000091BD011091BE012091BF013091C001DB
+:10335000DC01CB0180239123A223B3238093BD0101
+:103360009093BE01A093BF01B093C0011F910F9134
+:103370000C94CA140F931F930091BD011091BE01CC
+:103380002091BF013091C001DC01CB018027912742
+:10339000A227B3278093BD019093BE01A093BF01E4
+:1033A000B093C0011F910F910C94CA140895CF924D
+:1033B000DF92EF92FF920F931F93CF93DF938C01D5
+:1033C000C090C101D090C201E090C301F090C4014F
+:1033D0008091BD019091BE01A091BF01B091C0014B
+:1033E000C82AD92AEA2AFB2ACFE1D0E0D701C601B0
+:1033F0000C2E04C0B695A795979587950A94D2F799
+:1034000080FF06C0B8018C2F0E94A308019721F409
+:10341000219760F780E001C08C2FDF91CF911F9141
+:103420000F91FF90EF90DF90CF900895CF93DF93AF
+:10343000EC010E94D719BE010E94A308DF91CF9131
+:103440000895CB010E94161A08958091C5018595B3
+:103450008595859508958091C5018770089598E0B8
+:10346000899F90011124262B2093C5010C941B19D0
+:103470002091C501809582238093C501982F977074
+:1034800069F430E0482F552747FD5095241735073C
+:1034900029F08595859585950C943C190895909112
+:1034A000C501977081E009F480E0089590910C01C6
+:1034B000992321F090910D01911109C020910E01E5
+:1034C00030910F01F90132969FEF40E01FC0982F15
+:1034D0009695969596959F3050F5E0910E01F09156
+:1034E0000F01E90FF11D877021E030E0A90102C052
+:1034F000440F551F8A95E2F7CA019181892B818378
+:1035000008959F3F39F04F5F4E3041F0519158136D
+:10351000F8CF0DC05111F7CF942FF5CF9F3F39F061
+:10352000F901E90FF11D97FDFA9582830895089539
+:1035300090910C01992321F090910D01911109C0F6
+:1035400020910E0130910F01F9013296205F3F4F1B
+:103550001FC0982F9695969596959F30F0F4E09120
+:103560000E01F0910F01E90FF11D877021E030E0AD
+:10357000A90102C0440F551F8A95E2F7CA01809540
+:1035800091818923818308953196E217F30729F009
+:1035900090819813F9CF1082F7CF089581E090E0E1
+:1035A000E0910E01F0910F01E80FF91F10820196D2
+:1035B00080319105A9F708959091D901892B8093C5
+:1035C000D901089580959091D90189238093D901DB
+:1035D00008951092D90108959091D801892B809374
+:1035E000D801089580959091D80189238093D801BE
+:1035F00008951092D80108959091D701892B809356
+:10360000D701089580959091D70189238093D701A0
+:1036100008951092D70108958093C60108951092DD
+:10362000C601089580910E0190910F01FC01319621
+:103630009C01205F3F4F80E0919191118F5FE217D5
+:10364000F307D1F70895E0910E01F0910F018091F9
+:10365000D9018083E0910E01F0910F01908180915A
+:10366000D801892B8083E0910E01F0910F019081A8
+:103670008091D701892B80838091C601882361F0D6
+:10368000E0910E01F0910F019081892B80830E94BF
+:10369000121B81111092C60180910E0190910F01B1
+:1036A0000C94511020E0009739F0AC0141505109C1
+:1036B000842395232F5FF7CF822F0895CF92DF9237
+:1036C000EF92FF926C01EE24FF24C114D104E104B7
+:1036D000F10421F0C701B60120E101C020E0C72EAE
+:1036E000D82EE92EFF24C114D104E104F10419F00D
+:1036F000285FC701B6016B017C0154E0F694E794A2
+:10370000D794C7945A95D1F7C114D104E104F104B8
+:1037100019F02C5FC701B6016B017C0142E0F69401
+:10372000E794D794C7944A95D1F7C114D104E10422
+:10373000F10419F02E5FC701B601DC01CB01B6958B
+:10374000A79597958795892B8A2B8B2B09F02F5F4F
+:10375000822FFF90EF90DF90CF9008958091F1013C
+:10376000843021F11092DB0120E488E190E00FB673
+:10377000F894A895809360000FBE2093600080E0CD
+:103780000E943E0983B7817F846083BF83B78160D5
+:1037900083BF7894889583B78E7F83BF88E10FB607
+:1037A000F89480936000109260000FBE0895089511
+:1037B00008950E94D71B0E94A2030E94D81B0E945A
+:1037C000970491E0811101C090E0892F08950E9433
+:1037D000DE140E9445100C943E0982E084BD93E003
+:1037E00095BD9AEF97BD80936E0008952FB7F8941A
+:1037F0008091DC019091DD01A091DE01B091DF01AB
+:103800002FBF0895CF92DF92EF92FF920F931F93F5
+:103810002FB7F8944091DC015091DD016091DE01F9
+:103820007091DF012FBF6A017B01EE24FF248C0120
+:1038300020E030E0C016D106E206F30610F4415055
+:1038400051099A01281B390BC9011F910F91FF9053
+:10385000EF90DF90CF9008951F920F920FB60F92C6
+:1038600011248F939F93AF93BF938091DC0190912C
+:10387000DD01A091DE01B091DF010196A11DB11D16
+:103880008093DC019093DD01A093DE01B093DF0112
+:10389000BF91AF919F918F910F900FBE0F901F908E
+:1038A00018950E94420DF8942FEF87EA91E6215077
+:1038B00080409040E1F700C0000087E090EBDC0121
+:1038C0008093FB019093FC01A093FD01B093FE0156
+:1038D0009CE088E10FB6F894A895809360000FBE35
+:1038E00090936000FFCFEF92FF920F931F93CF93BF
+:1038F000DF93D82FCDE08C2F0E94900405E010E0DC
+:10390000E82EF12CC701002E02C0959587950A94E8
+:10391000E2F780FF09C0602F7C2F80E00E944E06F6
+:10392000D81302C081E006C00150110958F7C150F8
+:1039300010F780E0DF91CF911F910F91FF90EF90F2
+:103940000895CF93C82F8CE20E94731C882321F026
+:103950008C2FCF910C94731C80E0CF910895CF935E
+:103960000E94F61D811102C00E94DC1DC5E6C150F7
+:1039700049F00E94A2038FE39CE90197F1F700C090
+:103980000000F5CF89E20E94A11C811113C18AE2D7
+:103990000E94A11C81110E94DC1D85E00E94A11CD7
+:1039A00081110E94511C0E94011E8093DA0187E060
+:1039B0000E94A11C8823A9F18BE10E94A11C8823ED
+:1039C00051F08091DA0181FB222720F991E09227C2
+:1039D00090FB81F90EC08EE00E94A11C882361F04B
+:1039E0008091DA0182FB222720F991E0922790FB57
+:1039F00082F98093DA0115C080E10E94A11C9091A8
+:103A0000DA01882341F093FB222720F981E0822705
+:103A100080FB93F904C0892F809580FB90F99093E7
+:103A2000DA018091DA010E94051E0E94131E809324
+:103A3000FA0180EE0E94A11C882341F08091FA01D6
+:103A4000982F909590FB80F98093FA0189E30E946A
+:103A5000A11C882359F08091FA0181FB222720F9CB
+:103A600091E0922790FB81F98093FA0182EE0E9407
+:103A7000A11C882359F08091FA0182FB222720F9AA
+:103A800091E0922790FB82F98093FA0186EE0E94E2
+:103A9000A11C882359F08091FA0183FB222720F989
+:103AA00091E0922790FB83F98093FA0183EE0E94C4
+:103AB000A11C882359F08091FA0184FB222720F968
+:103AC00091E0922790FB84F98093FA0185E30E94AC
+:103AD000A11C882359F08091FA0185FB222720F947
+:103AE00091E0922790FB85F98093FA0181E30E948F
+:103AF000A11C882359F08091FA0186FB222720F926
+:103B000091E0922790FB86F98093FA0181E10E946F
+:103B1000A11C882359F08091FA0187FB222720F904
+:103B200091E0922790FB87F98093FA018091FA0146
+:103B30000E94171E8091FA0187FB882780F98093E5
+:103B40000D0187E20E94A11CC82F8EE10E94A11CDA
+:103B50008111C2608FE10E94A11C8111C46080E2CA
+:103B60000E94A11C8111C86081E20E94A11C8111E8
+:103B7000C06182E20E94A11C8111C06283E20E94A6
+:103B8000A11C8111C06484E20E94A11C882311F051
+:103B9000C06802C0CC2329F08C2F0E940E1E6C2F0F
+:103BA00003C00E940A1E682F70E080E090E0CF9171
+:103BB0000C949E18CF9108956DEE7EEF80E090E01A
+:103BC0000E94482460E082E090E00E94362460E099
+:103BD00083E090E00E94362460E084E090E00E9460
+:103BE000362460E085E090E00C94362480E090E09C
+:103BF0000E94302421E08D3E9E4F09F020E0822F6C
+:103C0000089582E090E00C942824682F82E090E0F0
+:103C10000C94362483E090E00C942824682F83E0F1
+:103C200090E00C94362484E090E00C942824682FD3
+:103C300084E090E00C9436248091E20180FF0BC078
+:103C40006091130185E0689FB00111247595679517
+:103C5000759567952BC081FF09C06091130185E0C0
+:103C6000689FB00111247595679520C082FF07C039
+:103C70006091130185E0689FB001112417C09091F5
+:103C8000E3019923D1F060911201961788F72091F2
+:103C9000130185E0289F90011124929FA001939F1A
+:103CA000500D112470E0CA010E94FA23603871059A
+:103CB00040F46115710539F002C065E070E0862FAF
+:103CC00008958FE7089581E008958091E20180FFD3
+:103CD00008C06091110170E07595679575956795BD
+:103CE00021C081FF06C06091110170E07595679554
+:103CF00019C082FF04C06091110170E010C0909162
+:103D0000E3019923C1F0609110019617A0F780910B
+:103D10001101899FC001112470E00E94FA236038CC
+:103D2000710528F46115710521F0862F08958FE73C
+:103D3000089581E0089561E070E0F4CF803F21F4C0
+:103D40000E941C1E819504C0813F29F40E941C1E04
+:103D50008093E6010895823F21F40E941C1E819504
+:103D600004C0833F29F40E941C1E8093E50108953E
+:103D7000893F19F40E94651E05C08A3F31F40E94F4
+:103D8000651E81958093E70108958B3F21F40E9481
+:103D9000651E819504C08C3F29F40E94651E8093A6
+:103DA000E8010895843F21F48091E401816017C007
+:103DB000853F21F48091E401826011C0863F21F4A7
+:103DC0008091E40184600BC0873F21F48091E4017D
+:103DD000886005C0883F31F48091E4018061809360
+:103DE000E40108958D3F21F48091E20181600BC0D0
+:103DF0008E3F21F48091E201826005C08F3F29F45B
+:103E00008091E20184608093E2010895803F39F45B
+:103E10008091E60187FF6CC01092E60169C0813F86
+:103E200029F48091E6011816BCF362C09091E50177
+:103E3000823F29F497FF5CC01092E50159C0833F8F
+:103E400019F41916CCF354C0893F41F48091E7016D
+:103E500018160CF04DC01092E7014AC08A3F29F4B1
+:103E60008091E70187FF44C0F6CF8B3F39F4809102
+:103E7000E80187FF3DC01092E8013AC08C3F29F469
+:103E80008091E8011816BCF333C0843F21F480917F
+:103E9000E4018E7F17C0853F21F48091E4018D7F7E
+:103EA00011C0863F21F48091E4018B7F0BC0873FD6
+:103EB00021F48091E401877F05C0883F31F480912F
+:103EC000E4018F7E8093E40113C08D3F21F4809143
+:103ED000E2018E7F0BC08E3F21F48091E2018D7F45
+:103EE00005C08F3F29F48091E2018B7F8093E2012E
+:103EF0008091E50181110EC08091E60181110AC017
+:103F00008091E701811106C08091E801811102C012
+:103F10001092E301089584EE91E00E945C100E94EB
+:103F2000F61B9093E1018093E00108951F93CF93D6
+:103F3000DF938091E0019091E1010E94021CAC01AD
+:103F40009091E301992321F02091140130E006C003
+:103F5000209115018AE0289F9001112442175307F0
+:103F600008F486C08091E501C091E601D091E70197
+:103F70001091E801811107C0C11176C0D11174C040
+:103F8000111172C075C09F3F19F09F5F9093E301BC
+:103F9000181624F40E941C1E8093E5018091E5010F
+:103FA00087FF05C00E941C1E81958093E5011C16A9
+:103FB00024F40E941C1E8093E6018091E60187FF95
+:103FC00005C00E941C1E81958093E6016091E50169
+:103FD000662339F1C091E601CC2319F1772767FDFB
+:103FE0007095872F972F0E940B2323E333E343E33E
+:103FF0005FE30E946F230E94D8226093E5016C2F3B
+:10400000772767FD7095872F972F0E940B2323E357
+:1040100033E343E35FE30E946F230E94D82260935F
+:10402000E6011D1624F40E94651E8093E70180912D
+:10403000E70187FF05C00E94651E81958093E70117
+:10404000111624F40E94651E8093E8018091E80116
+:1040500087FF05C00E94651E81958093E801DF916E
+:10406000CF911F910C948B1F9F3F09F08ECF96CF5D
+:10407000DF91CF911F910895E4EEF1E085E0DF013B
+:104080001D928A95E9F71092E3011092E2010895DA
+:10409000833081F128F4813059F08230D1F00895D5
+:1040A000853009F449C0B8F1863009F456C0089546
+:1040B00080911501262F30E0280F311D2F3F31054B
+:1040C00024F4680F6093150108958FEF8093150114
+:1040D000089580911401262F30E0280F311D2F3FC5
+:1040E000310524F4680F6093140108958FEF8093D5
+:1040F0001401089580911301262F30E0280F311DFF
+:104100002F3F310524F4680F6093130108958FEF5A
+:1041100080931301089580911201262F30E0280F1B
+:10412000311D2F3F310524F4680F6093120108956B
+:104130008FEF80931201089580911101262F30E0B6
+:10414000280F311D2F3F310524F4680F60931101B2
+:1041500008958FEF80931101089580911001262F0B
+:1041600030E0280F311D2F3F310524F4680F609394
+:10417000100108958FEF809310010895833011F19D
+:1041800028F4813049F0823091F00895853081F132
+:1041900020F18630C1F1089580911501681720F44F
+:1041A000861B809315010895109215010895809142
+:1041B0001401681720F4861B80931401089510924F
+:1041C0001401089580911301681720F4861B8093D1
+:1041D0001301089510921301089580911201681738
+:1041E00020F4861B80931201089510921201089505
+:1041F00080911101681720F4861B809311010895A6
+:1042000010921101089580911001681720F4861B07
+:104210008093100108951092100108950F931F9339
+:104220008D3109F46BC008F03FC08E3009F47FC0B7
+:10423000C0F4873009F469C068F4863009F0B1C071
+:104240008091DA01817F8E7F8093DA0181E0809313
+:10425000EA01A8C0883009F4A2C08B3009F49FC0DD
+:10426000A0C0863109F49BC078F4803109F472C093
+:10427000813109F096C00E94DE1490910D0181E019
+:10428000892780930D018BC0893109F488C08B3157
+:1042900009F087C08091DA0181FB222720F991E0A3
+:1042A000922790FB81F94CC0853309F470C048F423
+:1042B000873209F46CC008F459C0893209F467C028
+:1042C00070C0833438F48A3308F04EC0883309F460
+:1042D00066C067C0833409F45AC0883409F061C0ED
+:1042E0000E94DE140FEF13ED20E301501040204038
+:1042F000E1F700C000000E94511C51C00E949222B0
+:104300000E9445100E943E094AC09091DA01892F0F
+:104310008095817080FB90F929F096609860909369
+:10432000DA0140C0997F977F9093DA0138C080917D
+:10433000DA0182FB222720F991E0922790FB82F993
+:104340008093DA01992359F18091DA018160809399
+:10435000DA0125C08091DA0183FB222720F991E060
+:10436000922790FB83F9ECCF895301C08D5141E036
+:1043700050E060E070E08A019B0104C0000F111F53
+:10438000221F331F8A95D2F7C901B80104C061E02A
+:1043900070E080E090E00E949E180E94DE1481E0B0
+:1043A00001C080E01F910F91089580E0089580E0A2
+:1043B0000895CF93C82F8091EA01813079F018F0E9
+:1043C0008230E9F187C0E0910E01F0910F01808108
+:1043D000813169F0823209F07FC009C0E0910E019D
+:1043E000F0910F018081813111F0823261F48C2FC4
+:1043F0000E94D521811104C08C2F0E940E211DC066
+:1044000081E090E01AC08C2F0E94D721811114C046
+:10441000C43179F048F4CB3079F0C03109F060C094
+:1044200082E08093EA0108C0C93219F0C83321F054
+:1044300057C01092EA0154C081E0817053C0C93264
+:1044400089F118F5C43171F1A8F4C73009F046C0FC
+:104450008AE08093150194E19093140193E0909386
+:1044600013018093120188E08093110188E2809308
+:10447000100134C0CE51C63088F5EC2FF0E0E65D77
+:10448000FE4F80818093E90129C0CE34E9F020F409
+:10449000CB3421F56AE013C0C13579F0C235F1F4AF
+:1044A00061E00DC08091E901882319F01092E901C3
+:1044B00015C081E08093EA0115C061E006C08091DB
+:1044C000E9010E9448200AC06AE08091E9010E9447
+:1044D000BE2004C01092EA0180E004C081E002C066
+:1044E00080E0ABCFCF910895E1E8F0E08081886073
+:1044F00080838081816080838FB7F89493E090936C
+:10450000890090ED909388008FBF0895EFE6F0E06A
+:104510008081826080830895EFE6F0E080818D7F66
+:1045200080830895EFE6F0E0908182E08927808320
+:1045300008951F920F920FB60F9211242F933F935D
+:104540004F935F936F937F938F939F93AF93BF939B
+:10455000EF93FF938091EB019091EC010196909382
+:10456000EC018093EB01811103C082E00E943E09BF
+:10457000E091EC01E695E695F0E0EF59FA4FE49111
+:104580008091EB018E1303C080E00E943E09FF91F1
+:10459000EF91BF91AF919F918F917F916F915F91BB
+:1045A0004F913F912F910F900FBE0F901F90189534
+:1045B00004D06894B1118DC0089570D088F09F57D1
+:1045C00090F0B92F9927B751A0F0D1F0660F771F5F
+:1045D000881F991F1AF0BA95C9F712C0B13081F03F
+:1045E00077D0B1E0089574C0672F782F8827B85F1F
+:1045F00039F0B93FCCF3869577956795B395D9F7A0
+:104600003EF490958095709561957F4F8F4F9F4FA9
+:104610000895E89409C097FB3EF4909580957095B5
+:1046200061957F4F8F4F9F4F9923A9F0F92F96E9FE
+:10463000BB279395F695879577956795B795F11173
+:10464000F8CFFAF4BB0F11F460FF1BC06F5F7F4F10
+:104650008F4F9F4F16C0882311F096E911C0772322
+:1046600021F09EE8872F762F05C0662371F096E82B
+:10467000862F70E060E02AF09A95660F771F881FFA
+:10468000DAF7880F9695879597F9089557FD905812
+:10469000440F551F59F05F3F71F04795880F97FB06
+:1046A000991F61F09F3F79F08795089512161306C0
+:1046B0001406551FF2CF4695F1DF08C016161706EF
+:1046C0001806991FF1CF8695710561050894089524
+:1046D000E894BB2766277727CB0197F908950BD07D
+:1046E00078C069D028F06ED018F0952309F05AC030
+:1046F0005FC01124EECFCADFA0F3959FD1F3950FD1
+:1047000050E0551F629FF001729FBB27F00DB11D55
+:10471000639FAA27F00DB11DAA1F649F6627B00DE5
+:10472000A11D661F829F2227B00DA11D621F739FCE
+:10473000B00DA11D621F839FA00D611D221F749FDC
+:104740003327A00D611D231F849F600D211D822F23
+:10475000762F6A2F11249F5750408AF0E1F088236A
+:104760004AF0EE0FFF1FBB1F661F771F881F915077
+:104770005040A9F79E3F510570F014C0AACF5F3F8B
+:10478000ECF3983EDCF3869577956795B795F795AA
+:10479000E7959F5FC1F7FE2B880F911D9695879532
+:1047A00097F9089597F99F6780E870E060E00895B1
+:1047B0009FEF80EC089500240A9416161706180639
+:1047C0000906089500240A94121613061406050615
+:1047D0000895092E0394000C11F4882352F0BB0FA6
+:1047E00040F4BF2B11F460FF04C06F5F7F4F8F4F09
+:1047F0009F4F089597FB072E16F4009407D077FD7E
+:1048000009D00E94142407FC05D03EF490958195B0
+:104810009F4F0895709561957F4F0895EE0FFF1F8C
+:104820000590F491E02D0994AA1BBB1B51E107C030
+:10483000AA1FBB1FA617B70710F0A61BB70B881F30
+:10484000991F5A95A9F780959095BC01CD010895BF
+:10485000F999FECF92BD81BDF89A992780B5089548
+:10486000A8E1B0E042E050E00C945024262FF999E2
+:10487000FECF92BD81BDF89A019700B4021639F0BF
+:104880001FBA20BD0FB6F894FA9AF99A0FBE089590
+:104890000196272F0E9437240C943624DC01CB018B
+:1048A000FC01F999FECF06C0F2BDE1BDF89A319640
+:1048B00000B40D9241505040B8F70895F894FFCFDE
+:1048C00002204009CE09AB09770943090101C7015C
+:1048D00028080A03140A404D36392105D4049E04E1
+:1048E0006504F80311042A044304010203040506C5
+:0448F00007080900AC
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/techtomas/keymap.c b/keyboards/ergodox_ez/keymaps/techtomas/keymap.c new file mode 100644 index 000000000..1ff6618b9 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/techtomas/keymap.c @@ -0,0 +1,231 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define APP 2 // app layer +#define CNTL 3 // control layer + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | L2/` | 1 | 2 | 3 | 4 | 5 |CmdSpc| | - | 6 | 7 | 8 | 9 | 0 | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | MEH/Tab| Q | W | E | R | T | [ | | ] | Y | U | I | O | P | MEH/\ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * |Hyp/Esc | A | S | D | F | G |------| |------| H | J | K | L | L2/; | Hyp/' | + * |--------+------+------+------+------+------| Tab | | STab |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | L2// | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |L1/Lft|L3/Rht| LCtl | LAlt | LGui | | Rgui | Up | Dn | L3 | L1 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | LCtl | LGui | |AltGui|ShfGui| + * ,-------|------|------| |------+--------+------. + * | | |L1/Hom| |L2/PUp| | | + * | Backsp|Delete|------| |------| Enter | Space | + * | | |L3/End| |L1/PDn| | | + * `--------------------' `-----------------------' + */ +// 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(APP,KC_GRV), KC_1, KC_2, KC_3, KC_4, KC_5, LGUI(KC_SPC), + MEH_T(KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, + ALL_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_TAB, + LT(SYMB,KC_LEFT), LT(CNTL,KC_RIGHT), KC_LCTL, KC_LALT, KC_LGUI, + KC_LCTL, KC_LGUI, + LT(SYMB,KC_HOME), + KC_BSPC, KC_DELETE, LT(CNTL,KC_END), + // right hand + KC_MINS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, MEH_T(KC_BSLS), + KC_H, KC_J, KC_K, KC_L, LT(APP,KC_SCLN), ALL_T(KC_QUOT), + S(KC_TAB), KC_N, KC_M, KC_COMM, KC_DOT, LT(APP,KC_SLSH), KC_RSFT, + KC_RGUI, KC_UP, KC_DOWN, KC_FN3, KC_FN1, + LALT(KC_LGUI), S(KC_LGUI), + LT(APP,KC_PGUP), + LT(SYMB,KC_PGDN), KC_ENT, KC_SPC + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | Tab | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | ! | @ | { | } | | | < | | > | : | 7 | 8 | 9 | / | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | # | $ | ( | ) | ` |------| |------| ; | 4 | 5 | 6 | * | | + * |--------+------+------+------+------+------| F14 | | F15 |------+------+------+------+------+--------| + * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | - | Entr | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | 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,S(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_F14, + 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_TAB, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + S(KC_DOT), KC_COLN, KC_7, KC_8, KC_9, KC_BSLS, KC_F12, + KC_SCLN, KC_4, KC_5, KC_6, KC_ASTR, KC_TRNS, + KC_F15, KC_AMPR, KC_1, KC_2, KC_3, KC_MINS, KC_ENT, + KC_0, KC_DOT, KC_EQL, KC_PLUS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 2: App Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | CmdQ | CmdW | | | | Stab | | Play | Prev | Next | | |PrtSc | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------| VolDn|VolUp | | | | | + * |--------+------+------+------+------+------| | | Mute |------+------+------+------+------+--------| + * | | CmdZ | CmdX | CmdC | CmdY | CtrlC| | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// Control +[APP] = KEYMAP( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, LGUI(KC_Q), LGUI(KC_W), KC_TRNS, KC_TRNS, KC_TRNS, S(KC_TAB), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, LGUI(KC_Z), LGUI(KC_X), LGUI(KC_C), LGUI(KC_V), LCTL(KC_C), 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_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, + KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, 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_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* Keymap 3: Control Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Pwr | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| Lclk |------| |------| Lft | Down | Up | Right| | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | Rclk | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Shift| | | Home | End | + * ,------|------|------| |------+------+------. + * | | | LAtl | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// Control +[CNTL] = KEYMAP( + KC_PWR, 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_BTN1, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN2, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LSFT, KC_TRNS, + KC_LALT, + 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_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_HOME, KC_END, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), + [2] = ACTION_LAYER_TAP_TOGGLE(APP), + [3] = ACTION_LAYER_TAP_TOGGLE(CNTL) // 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_ez/keymaps/techtomas/readme.md b/keyboards/ergodox_ez/keymaps/techtomas/readme.md new file mode 100644 index 000000000..36e0591a8 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/techtomas/readme.md @@ -0,0 +1,57 @@ +# Techtomas Configuration + +## Base Layer + +The base layer is a merge of what I liked with the default layout and the ordinary layout. The thumb cluster is more like the Kinesis advantage and the top row of the cluster is convient for use on the mac. + +* The Caps Lock postion handles [Hyper/Esc](http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/) +* The Tab key toggles MEH. +* The top vertical mods on the left and right are [ and ]. +* The bottom vertical mods on the left and right are tab and shift+tab +* The HYPER and MEH key are made in the same location on the right side of the board as well. Using Keyboard Maestro for OS X makes one-handed shortcuts very easy. +* Layer switching is focused around the thumb clusters plus some additional locations for convience. + +## Symbol Layer +The symbol layer can be tap/toggled with the bottom right key and also toggled on the thumb clusters. + +The bottom two vertical mods are set to F14 and F15 which is the default for changing screen brightness on the mac + +## App Layer +The app layer is used to control media playback and also some application shortcuts (OS X Focused). +It can be toggled on the left board in the top left corner (tilde/grave) or using your pinky on the right side of the board using either ; or /. +There is one additional toggle on the right thumb cluster for quick access to play and mute key combos. + +### Current App shortcuts defined +* Q = CMD+Q +* W = CMD+W +* Z = CMD+Z +* X = CMD+X +* C = CMD+C +* V = CMD+V +* B = CTRL+C +* P = Print Screen + +## Control Layer +The control layer is meant to help easily navigate and select text. It can also be stacked ontop of the Symbol layer when needed. + +The right arrow key and End key toggle the control layer on the left board. There is also a tap toggle for the layer in the same position on the right side of the board. + +On the left board you have mouse control with left & right click in the location of the G and B keys. +On the right board you have vim-style arrow keys using hjkl + +The left thumb cluster moves shift and alt within easy reach while holding the toggle (end). So far I've found this convient to navigate and skip around text when using the hjkl arrow keys. I found that it was easy to get the alt key stuck on depending on what key you released first so I added the PREVENT_STUCK_MODIFIERS to the config.h to help with that. + +## Changelog + +* May 4th, 2016 (v1.2): + * Moved layer toggles around to match my habbits of typing + * Enabled Prevent Stuck Modifers in my config.h (L3 + Alt on cluster would get stuck) + * Changed media layer to be more like an app layer with some quick shortcuts (mac centric) + * Moved around the base layer arrow keys so mod keys were more accesible + +* Apr 29, 2016 (V1.1): + * Added F14 and F15 to symbol layer + * Added control layer toggle to A key. + +* Apr 28, 2016 (V1.0): + * Modified config based on the default layout plus inspiration from the ordinary layout diff --git a/keyboards/ergodox_ez/keymaps/tm2030/README.md b/keyboards/ergodox_ez/keymaps/tm2030/README.md new file mode 100644 index 000000000..ae69adf78 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/tm2030/README.md @@ -0,0 +1,136 @@ +# TypeMatrix™ 2030 inspired layout + +This is a [TypeMatrix™ 2030](http://typematrix.com/2030/features.php) inspired layout for the ErgoDox EZ. The _TypeMatrix_ is a nice small ergonomic keyboard with a matrix layout, and it provides several nice features like `enter`, `backspace` and `delete` at the center, bigger `shift` keys and international `cut`, `copy` and `paste` keys. + +The idea in this ErgoDox layout is to make it is as close as possible to the TM2030, such that it would be easy to switch between the TM and the ErgoDox. No _fancy_ features have been implemented, as this is intended to be a base for further customization if desired. Some keys have been duplicated in order to accomodate for most people. + +Most of the TM2030 features are supported except +* automatic window switching (alt-tab key, at the left of the space key) +* show desktop key (at the right of the space key) +* 102/106 modes + +Dvorak mode is even supported by pressing [`Magic`](/TMK_README.md#magic-commands)+`1` (`Magic` is by default `LShift`+`RShift`) + +Some keys had to be moved around to fit into the ErgoDox, especially the `F1`-`F12` keys and the arrow keys. + +## Base Layer +This is the default layer, close to the TM with the following differences: + + - Top row (with the `F`-keys) and rightmost column (with application shortcuts) are removed, the corresponding keys are displaced elsewhere. + - Bottom-left keys are reorganized on a single row as: `Ctrl`, `fn`, `Gui`, `Play`, `App`/`Alt`. + - `shuffle` and `desktop` are not supported. + - `right-shift` is moved on `'`, `\` and on the right thumb (the latter is actually the only _true_ `right-shift`, and must be used in the `Magic` key combination). + - `right-ctrl` is moved on `End`. + - `]` is moved in place of the dash (`-`). + - Dash (`-`) and `=` are moved on bottom right row. + - Arrows and `PgUp`/`PgDn` are moved on the thumbs. + +``` +,--------------------------------------------------. ,--------------------------------------------------. +| ` | 1 | 2 | 3 | 4 | 5 | Del | | Del | 6 | 7 | 8 | 9 | 0 | ] | +|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| +| Tab | Q | W | E | R | T |Backsp| |Backsp| Y | U | I | O | P | [ | +|--------+------+------+------+------+------|ace | |ace |------+------+------+------+------+--------| +| LShift | A | S | D | F | G |------| |------| H | J | K | L | ; | '/Shift| +|--------+------+------+------+------+------|Enter | |Enter |------+------+------+------+------+--------| +| LShift | Z | X | C | V | B | | | | N | M | , | . | / | \/Shift| +`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + |LCtrl | fn | LGui | Play |App/Alt| | RAlt | - | Home | = |End/Ctl| + `-----------------------------------' `-----------------------------------' + ,--------------. ,-------------. + |Esc/Alt| num | | Left |Right | + ,------+-------+------| |------+------+------. + | | | PgUp | | Up | | | + |Space |LShift |------| |------|RShift|Space | + | | | PgDn | | Down | | | + `---------------------' `--------------------' +``` + +### Layer Switching +- Use `num` to toggle the Numeric Layer. +- Hold `fn` to temporarily activate the Numeric & Fn Layers. + +As on the original TM 2030, when `num` layer is activated, holding `fn` disables it but enables the other `fn` keys. + +## Dvorak Layer +Same as Layer 0 but with _Dvorak_ layout, to use with QWERTY OS layout. + +Enable Dvorak layout with [`Magic`](/TMK_README.md#magic-commands)+`1` (`LShift`+`RShift`+`1`), disable with `Magic`-`0`. + +The middle (green) led indicates when the Dvorak layer is activated. + + ,--------------------------------------------------. ,--------------------------------------------------. + | ` | 1 | 2 | 3 | 4 | 5 | Del | | Del | 6 | 7 | 8 | 9 | 0 | = | + |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + | Tab | ' | , | . | P | Y |Backsp| |Backsp| F | G | C | R | L | / | + |--------+------+------+------+------+------|ace | |ace |------+------+------+------+------+--------| + | LShift | A | O | E | U | I |------| |------| D | H | T | N | S | -/Shift| + |--------+------+------+------+------+------|Enter | |Enter |------+------+------+------+------+--------| + | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | \/Shift| + `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + |LCtrl | fn | LGui | Play |App/Alt| | RAlt | [ | Home | ] |End/Ctl| + `-----------------------------------' `-----------------------------------' + ,--------------. ,-------------. + |Esc/Alt| num | | Left |Right | + ,------+-------+------| |------+------+------. + | | | PgUp | | Up | | | + |Space |LShift |------| |------|RShift|Space | + | | | PgDn | | Down | | | + `---------------------' `--------------------' + +## Numeric Layer +Numeric layer close to the TM when toggling `num`, with the following differences: + +- Numpad is displaced by 1 to the top left. +- Arrows are displaced by 1 to the left. +- Provides access to `F1`-`F12`, `caps-lock` and `num-lock`. + +The numeric layer is indicated with the left (red) led. Caps-lock is indicated with the right (blue) led. + + ,--------------------------------------------------. ,--------------------------------------------------. + | | 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| + ,------|------|------| |------+------+------. + | | | | | | | | + | | |------| |------| | | + | | | | | | | | + `--------------------' `--------------------' + +## Fn Layer +Activated simultaneously with the Numeric layer when holding the `fn` key. As on the TM, it provides access to the following features: +- `cut`, `copy` and `paste` +- `volume up`, `volume down` and `mute` — as opposed to the TM, these are only on left hand +- `previous track` and `next track` +- `calculator`, `mail` and `browser home` +- `insert`, `power`, `sleep`, `wake`, `print screen`, `scroll-lock` and `pause` + +Note: the `eject` key does not work due to jackhumbert/qmk_firmware#82 + + ,--------------------------------------------------. ,--------------------------------------------------. + | | | | | | |Insert| |Insert|Eject |Power |Sleep | Wake |PrtScr|ScrollLk| + |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + | | | | | | |VolUp | | | | | | | | Pause | + |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + | | | | Calc | Mail |Browsr|------| |------| | | | | | | + |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + | | | cut | copy |paste | Mute |VolDn | | | | | | | | | + `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + | | | | | | | | | | | | + `----------------------------------' `----------------------------------' + ,-------------. ,-------------. + | | | | | | + ,------|------|------| |------+------+------. + | | | | | Next | | | + | Mute | |------| |------| | | + | | | | | Prev | | | + `--------------------' `--------------------' diff --git a/keyboards/ergodox_ez/keymaps/tm2030/compiled.hex b/keyboards/ergodox_ez/keymaps/tm2030/compiled.hex new file mode 100644 index 000000000..35837dc30 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/tm2030/compiled.hex @@ -0,0 +1,1224 @@ +:100000000C94CA040C940E050C940E050C940E0569
+:100010000C940E050C940E050C940E050C940E0514
+:100020000C940E050C940E050C94C30F0C949510B3
+:100030000C940E050C940E050C940E050C940E05F4
+:100040000C940E050C944F240C940E050C940E0584
+:100050000C940E050C94E21D0C940E050C940E05E8
+:100060000C940E050C940E050C940E050C940E05C4
+:100070000C940E050C940E050C940E050C940E05B4
+:100080000C940E050C940E050C940E050C940E05A4
+:100090000C940E050C940E050C940E050C940E0594
+:1000A0000C940E050C940E050C940E0502112411EF
+:1000B00012122411121269118C111212E111F41191
+:1000C000C314C314F214F2142815481579167916BE
+:1000D00053157916031603166A16791679167316D0
+:1000E00010161016101610161016101610161016E0
+:1000F00010161016101610161016101610161016D0
+:1001000022162F1636163D16471675190162026221
+:10011000016202620035002B00E100E100E0000016
+:10012000001E00140004001D0002304E001F001AC3
+:100130000016001B00E300E1002000080007000695
+:1001400000AE002C00210015000900190065744B59
+:1001500000220017000A000500000029744C002A44
+:100160000000002800000008544C002A000000286D
+:10017000000000500023001C000B00110000004F85
+:1001800000240018000D001000E600520025000CAD
+:10019000000E0036002D002C00260012000F003744
+:1001A000004A00E50027001300330038002E0051FC
+:1001B0000030002F00347231724D71000035002B79
+:1001C00000E100E100E00000001E00340004003304
+:1001D0000002304E001F00360012001400E300E160
+:1001E000002000370008000D00AE002C0021001395
+:1001F0000018000E0065744B0022001C000C001B50
+:1002000000000029744C002A0000002800000008AB
+:10021000544C002A00000028000000500023000970
+:10022000000700050000004F0024000A000B00102A
+:1002300000E60052002500060017001A002F002CCF
+:100240000026001500110019004A00E50027000FE4
+:100250000016001D00300051002E0038002D7231B4
+:10026000724D71000000000000000000000000005E
+:10027000000000000000000000000000000000007E
+:10028000000000000000000000000000000000006E
+:10029000000000000000000000000000000000005E
+:1002A000000000000000000000000000000000004E
+:1002B000000000000000000000000000000000003E
+:1002C000000000000000000000000000000000002E
+:1002D000000000000000000000000000000000001E
+:1002E000000000000000000000000000000000000E
+:1002F00000000000000000000000000000000000FE
+:1003000000000000000000000000000000000000ED
+:1003100000000000000000000000000000000000DD
+:1003200000000000000000000000000000000000CD
+:1003300000000000000000000000000000000000BD
+:1003400000000000000000000000000000000000AD
+:10035000000000000000000000000000000000009D
+:10036000000000000000000000000000000000008D
+:10037000000000000000000000000000000000007D
+:10038000000000000000000000000000000000006D
+:10039000000000000000000000000000000000005D
+:1003A000000000000000000000000000000000004D
+:1003B000000000000000000000000000000000003D
+:1003C000000000000000000000000000000000002D
+:1003D000000000000000000000000000000000001D
+:1003E000000000000000000000000000000000000D
+:1003F00000000000000000000000000000000000FD
+:1004000000000000000000000000000000000000EC
+:1004100000000000000000000000000000000000DC
+:1004200000000000000000000000000000000000CC
+:1004300000000000000000000000000000000000BC
+:1004400000000000000000000000000000000000AC
+:10045000000000000000000000000000000000009C
+:10046000000000000000000000000000000000008C
+:10047000000000000000000000000000000000007C
+:10048000000000000000000000000000000000006C
+:10049000000000000000000000000000000000005C
+:1004A000000000000000000000000000000000004C
+:1004B000000000000000000000000000000000003C
+:1004C000000000000000000000000000000000002C
+:1004D000000000000000000000000000000000001C
+:1004E000000000000000000000000000000000000C
+:1004F00000000000000000000000000000000000FC
+:1005000000000000000000000000000000000000EB
+:1005100000000000000000000000000000000000DB
+:1005200000000000000000000000000000000000CB
+:1005300000000000000000000000000000000000BB
+:1005400000000000000000000000000000000000AB
+:10055000000000000000000000000000000000009B
+:10056000000000000000000000000000000000008B
+:10057000000000000000000000000000000000007B
+:10058000000000000000000000000000000000006B
+:10059000000000000000000000000000000000005B
+:1005A000000000000000000000000000000000004B
+:1005B000000000000000000000000000000000003B
+:1005C000000000000000000000000000000000002B
+:1005D000000000000000000000000000000000001B
+:1005E000000000000000000000000000000000000B
+:1005F00000000000000000000000000000000000FB
+:1006000000000000000000000000000000000000EA
+:1006100000000000000000000000000000000000DA
+:1006200000000000000000000000000000000000CA
+:1006300000000000000000000000000000000000BA
+:1006400000000000000000000000000000000000AA
+:100650000000000000010001000100010001000095
+:10066000003A003F0044000100010001003B00404F
+:100670000045000100010001003C004100010001B3
+:1006800000010001003D00420001000100010001E5
+:10069000003E0043000100010000000100010001D4
+:1006A00000000001000000010001000100000050F6
+:1006B00000000053003F00010052005100000039CB
+:1006C0000040004A004D004F00010001002B005F78
+:1006D000005C00590062000100540060005D005A97
+:1006E0000001300100550061005E005B0063000105
+:1006F00000560057005700580058710000010001D3
+:1007000000010001000100000001000100010001E2
+:1007100000010001000100010001004C0201000184
+:100720000001000100B20049010100A80001000120
+:1007300000B10049020100010001000100B500A85C
+:1007400000000001004900A9000000AA000000010B
+:1007500000490001000000010000000100B000019C
+:10076000000100010000000100A5000100010001DE
+:10077000000100AC00A60001000100010001000121
+:1007800000A7000100010001000100010046000176
+:1007900000010001000100AB00470048000100011A
+:1007A000000100000016034500720067006F00445E
+:1007B000006F007800200045005A00000016034535
+:1007C00000720067006F0044006F00780020004551
+:1007D000005A0000000403090409026D000401002E
+:1007E000A0FA090400000103010100092111010020
+:1007F00001223F000705810308000A0904010001E6
+:1008000003010200092111010001224D00070582A8
+:100810000308000A09040200010300000009211175
+:100820000100012236000705830308000A090403BA
+:100830000001030000000921110100012239000715
+:100840000584031000011201100100000008EDFEF4
+:10085000071301000102000105010906A1010507B6
+:1008600019E029E7150025019508750181020508A1
+:1008700019012905950575019102950175039101ED
+:100880000507190029771500250195787501810262
+:10089000C005010980A101850216010026B7001AD2
+:1008A00001002AB700751095018100C0050C0901EF
+:1008B000A1018503160100269C021A01002A9C0250
+:1008C000751095018100C005010902A1010901A16E
+:1008D00000050919012905150025019505750181F6
+:1008E0000295017503810105010930093115812542
+:1008F0007F95027508810609381581257F95017558
+:10090000088106050C0A38021581257F95017508B6
+:100910008106C0C005010906A101050719E029E704
+:100920001500250195087501810295017508810161
+:1009300005081901290595057501910295017503B1
+:1009400091010507190029FF150025FF9506750877
+:100950008100C00000000000000000000000010253
+:1009600004060A0F17202C3A4A5D71879DB3C7DA37
+:10097000E9F5FCFFFCF5E9DAC7B39D87715D4A3AFA
+:100980002C20170F0A0604020100000000000000DE
+:100990000000000011241FBECFEFDAE0DEBFCDBFA4
+:1009A00004B603FE24C08091FB019091FC01A0914C
+:1009B000FD01B091FE018730904BA740B04BB9F4D8
+:1009C0001092FB011092FC011092FD011092FE01A9
+:1009D00014BE84B7877F84BF88E10FB6F8948093F4
+:1009E0006000109260000FBEE0E0FFE3099511E0A7
+:1009F000A0E0B1E0ECE2FCE402C005900D92A4336B
+:100A0000B107D9F711E0A4E3B1E001C01D92AB3FFB
+:100A1000B107E1F70E94070D0C9414260C94000016
+:100A20001092B9008AE08093B800089594EA9093F8
+:100A3000BC009091BC0097FFFCCF9091B900987FCB
+:100A4000983021F0903111F081E008958093BB003F
+:100A500084E88093BC008091BC0087FFFCCF80912C
+:100A6000B900887F883111F0803471F780E00895F3
+:100A700084E98093BC008091BC0084FDFCCF089584
+:100A80008093BB0084E88093BC008091BC0087FF0A
+:100A9000FCCF9091B900987F81E0983209F480E012
+:100AA000089584E88093BC008091BC0087FFFCCF50
+:100AB0008091BB00089580910101811115C080E4EF
+:100AC0000E9416058093010181110CC082E10E94F1
+:100AD000400580930101811105C08FEF0E94400500
+:100AE000809301010E94380584B1807F84B985B16B
+:100AF000807F85B98AB1837F8AB98BB1837F8BB9B7
+:100B00003E98469808950E941607809301010E941E
+:100B10005B0580B38C7080BB81B3836F81BBA5E321
+:100B2000B1E0E3E4F1E08EE08E0F11921D928E139E
+:100B3000FCCF0C940007BF92CF92DF92EF92FF920E
+:100B40000F931F93CF93DF9380910101882379F056
+:100B5000809134018F5F80933401811108C00E941D
+:100B6000160780930101811102C00E94A80605E3C7
+:100B700011E0C0E0D0E0DD24D39482E0C82EEE2462
+:100B8000E394F12CC730D10500F58091010181116A
+:100B900064C080E40E94160580930101811112C097
+:100BA00082E10E9440058093010181110BC0C701C1
+:100BB0000C2E01C0880F0A94EAF780950E94400528
+:100BC000809301010E94380548C0CA30A1F028F482
+:100BD000C83059F0C93061F005C0CC3089F070F0F0
+:100BE000CD3089F0209A289810C0219A29980DC0FC
+:100BF000229A2A980AC0239A2B9807C0529A01C0B9
+:100C0000539A5B9802C03E9A469890EA9A95F1F7FB
+:100C10009FB1799902C082E001C080E091709D256A
+:100C2000982B7C9902C084E001C080E0892B7D99DB
+:100C300002C038E001C030E0832B7E9902C020E181
+:100C400001C020E0822B9FB19095991F9927991F91
+:100C50009295990F907E892B0FC08091010181118F
+:100C600049C080E40E94160580930101882379F130
+:100C7000B12C0E9438058B2DF8019081981719F03E
+:100C80008083C09200010E945B0521960F5F1F4F79
+:100C9000CE30D10509F076CF80910001882361F133
+:100CA000815080930001882339F08FE99FE00197FC
+:100CB000F1F700C0000020C0A3E4B1E0E5E3F1E0FB
+:100CC000CF01825F91919D938E13FCCF15C083E17C
+:100CD0000E944005809301018111CACF81E40E94E6
+:100CE0001605809301018111C3CF0E945105B82ED2
+:100CF000B094BFCF80E0C0CF0E94A60681E0DF9114
+:100D0000CF911F910F91FF90EF90DF90CF90BF9008
+:100D10000895E82FF0E0ED5BFE4F8081089508957F
+:100D20000F931F93CF93DF93C3E4D1E010E00C2F18
+:100D3000025F899190E00E94581D180F0C13F9CFA3
+:100D4000812FDF91CF911F910F9108950C947B0714
+:100D500056985E9825982D9826982E9827982F9823
+:100D60008FEF90E0909389008093880090938B00A0
+:100D700080938A0090938D0080938C00259A2D9A01
+:100D80002FEF80E792E0215080409040E1F700C0D3
+:100D90000000269A2E9A2FEF80E792E021508040A3
+:100DA0009040E1F700C00000279A2F9A2FEF80E7CC
+:100DB00092E0215080409040E1F700C0000025986B
+:100DC0002D982FEF80E792E0215080409040E1F78E
+:100DD00000C0000026982E982FEF80E792E0215067
+:100DE00080409040E1F700C0000027982F98569867
+:100DF0005E9825982D9826982E9827982F980895D4
+:100E000089EA8093800089E08093810024982C985F
+:100E10003F988AB18F748AB96E98479A8BB1806B6C
+:100E20008BB9769A0E94A8060C947A0780E2809388
+:100E300001018091510181110EC00E94100581E0D5
+:100E4000809351012FEF83ED90E32150804090403B
+:100E5000E1F700C0000080E40E94160580930101C4
+:100E600081112EC00E94400580930101811128C08C
+:100E70000E94400580930101811122C08FE30E94EE
+:100E800040058093010181111BC00E94380580E458
+:100E90000E94160580930101811112C08CE00E940E
+:100EA00040058093010181110BC00E944005809391
+:100EB0000101811105C08FE30E944005809301016B
+:100EC0000E943805809101010895613049F0623037
+:100ED00059F488E00E94671B89E00E94671B04C0E8
+:100EE000FC018281811103C080E090E008958AE0D6
+:100EF00091E00895089556985E9825982D98269823
+:100F00002E9827982F988091BD019091BE01A091B5
+:100F1000BF01B091C00190FF02C0259A2D9A809127
+:100F2000C1019091C201A091C301B091C401029787
+:100F3000A105B10511F4269A2E9A0E944B1281FF49
+:100F400002C0279A2F9A089581E0089581E00895BC
+:100F50000C94A60708950F931F93CF93DF938C01F2
+:100F6000FC01C081D181CE010E94DD1BBE010E9427
+:100F70005408EC01B8010E94A807882309F48DC029
+:100F8000F8018281882309F44AC080915D018111B2
+:100F90001FC0C431F0E5DF0709F051C00E94AA0765
+:100FA00081E080935D010E94AC1D90935C01809371
+:100FB0005B0110925401109256011092550110924B
+:100FC00058011092570110925A011092590165C0B0
+:100FD00080915B0190915C010E94B81D883C910555
+:100FE00070F480915401E82FF0E0EE0FFF1FEB5AF0
+:100FF000FE4FD183C0838F5F809354014EC0C438AD
+:1010000080E5D80721F0C538D04501F13AC0F80194
+:101010008281882341F01092520182E01EC0C438C0
+:10102000E0E5DE0759F580915201811106C086E2A4
+:101030000E94671386E20E942F1482E01CC0C4380D
+:10104000F0E5DF0741F3C538D045D9F4F8018281D6
+:10105000882331F01092530180E20E947E141DC05B
+:1010600080915301811106C087E20E94671387E2D5
+:101070000E942F1480E20E9485140FC0C538D0450D
+:1010800029F381E08093520180935301C801DF91DD
+:10109000CF911F910F910C94A40780E0DF91CF9125
+:1010A0001F910F910895089596E0799FF001112402
+:1010B00094E5899FE00DF11D1124E60FF11DEE0F5F
+:1010C000FF1FEB5EFE4F859194910895880F991F45
+:1010D000FC01EB56F040859194910895880F991F7B
+:1010E000FC01EB5EFE4F8591949108950F931F9341
+:1010F000CF93DF93EC01811520E3920750F5C115E2
+:1011000080E2D80708F0C3C0CB3BD10590F4C83AC1
+:10111000D10508F06AC0C53AD10508F05BC0C430FB
+:10112000D10508F0D0C1219709F0CAC101E010E053
+:101130000AC2CF3FD10511F008F0C5C1C03FD105AB
+:1011400008F0A2C0CE01805E9109089708F4BBC1E7
+:10115000B7C1C13090E5D90709F4A2C020F5C0316C
+:101160008FE4D80770F4C11590E4D90708F094C053
+:10117000C11521E3D20708F0A3C1DD278E01106C51
+:10118000E2C1C115D04509F09BC10E94E4168FEF62
+:1011900094E32CE0815090402040E1F700C0000033
+:1011A0000E94071ED0C1C11597E5D90758F4C03178
+:1011B00021E5D20708F01CC1C43180E5D80708F446
+:1011C00075C07EC1CE0190578115904108F078C15D
+:1011D000DF7073C1C53AD10509F477C1C63AD105AC
+:1011E00009F076C102E810E4AEC1C83AD10509F4AD
+:1011F00072C1C93AD10509F471C1CA3AD10509F4DD
+:1012000070C1CB3AD10509F46FC1CC3AD10509F4CC
+:101210006EC1CD3AD10509F46DC1C03BD10509F4C9
+:101220006CC1CE3AD10509F46BC1CF3AD10509F4AE
+:101230006AC1C13BD10509F469C1C23BD10509F4BA
+:1012400068C1C33BD10509F467C1C43BD10509F4AA
+:1012500066C1C53BD10509F465C1C63BD10509F49A
+:1012600064C1C73BD10509F463C1C83BD10509F48A
+:1012700062C1C93BD10509F461C1CA3BD10509F47A
+:1012800060C100E014E45FC18E0110655CC1CE0155
+:101290009F700E946E0858C1DF708E01106A53C1A2
+:1012A0008091DA0181608093DA014DC10E94AC1F08
+:1012B000811102C00E94921F0E94C91F90E090936A
+:1012C000FB018093FA01C23080E5D80721F48091B8
+:1012D000FA01816086C0C43090E5D90721F480917D
+:1012E000FA0182607EC0C63020E5D20721F48091E9
+:1012F000FA01846076C0C83080E5D80719F480917F
+:10130000FA0127C0CA3090E5D90721F48091FA018B
+:10131000806167C0CC3020E5D20721F48091FA01CA
+:1013200080625FC0CE3080E5D80721F48091FA0159
+:10133000806457C0C03190E5D90721F48091FA014B
+:1013400080684FC0C23120E5D20729F48091FA01AC
+:101350008460886046C0C33080E5D80721F480915E
+:10136000FA018E7F3EC0C53090E5D90721F4809107
+:10137000FA018D7F36C0C73020E5D20721F4809175
+:10138000FA018B7F2EC0C93080E5D80719F480910F
+:10139000FA0126C0CB3090E5D90721F48091FA01FB
+:1013A0008F7E1FC0CD3020E5D20721F48091FA0155
+:1013B0008F7D17C0CF3080E5D80721F48091FA01E6
+:1013C0008F7B0FC0C13190E5D90721F48091FA01DC
+:1013D0008F7707C0C331D04531F48091FA018B7FFC
+:1013E000877F8093FA018091FA010E94CD1FABC0E4
+:1013F0008D2F99278F70992781309105D9F49E01FF
+:101400002370332702C0880F991F2A95E2F79C6842
+:101410008E0144E0000F111F4A95E1F70027137079
+:10142000802B912B53E0CC0FDD1F5A95E1F7C0764E
+:10143000DD272FC08230910531F4DC2FCC278E01BF
+:10144000016F106A80C08330910569F4CE0183700A
+:10145000992701E010E002C0000F111F8A95E2F702
+:10146000C8019C680FC084309105B9F4CE01837027
+:10147000992701E010E002C0000F111F8A95E2F7E2
+:10148000C8019A6823E0CC0FDD1F2A95E1F7C07EE2
+:10149000D7708C010C2B1D2B56C08530910531F473
+:1014A000DC2FCC278E01046F106A4DC0069709F01F
+:1014B0004AC0CF71DD27DC2FCC278E01106243C0DC
+:1014C00000E010E040C08E013EC001E810E43BC0E7
+:1014D00003E810E438C002EE14E435C009EE14E469
+:1014E00032C00AEE14E42FC005EB14E42CC006EB66
+:1014F00014E429C007EB14E426C00CEC14E423C068
+:101500000DEC14E420C003E815E41DC00AE815E45E
+:101510001AC002E915E417C004E915E414C001E299
+:1015200016E411C003E216E40EC004E216E40BC098
+:1015300005E216E408C006E216E405C007E216E478
+:1015400002C00AE216E4C801DF91CF911F910F910A
+:10155000089596E0799FF001112494E5899FE00DAC
+:10156000F11D1124E60FF11DEE0FFF1FEB5EFE4F84
+:1015700085919491803E9105E0F4803C910558F569
+:101580008133910509F46FC048F48932910509F45B
+:1015900063C08A32910509F46DC072C08933910528
+:1015A000E9F082389105D1F08533910509F44DC0F9
+:1015B00067C0833E910581F138F4803E9105B9F012
+:1015C000823E9105D9F05CC0863E910561F1873E6F
+:1015D0009105A1F155C00E94660808952091FA0175
+:1015E00020FD02C021FF4CC080EE90E049C08091F8
+:1015F000FA0180FFF9CF89E390E042C08091FA01BF
+:1016000082FF0EC08091FA0184FF03C080E090E069
+:1016100037C083EE90E034C08091FA0182FFF2CFB0
+:1016200082EE90E02DC08091FA0183FF0BC0809183
+:10163000FA0184FDEBCF87EE90E022C08091FA01A1
+:1016400083FFF5CF86EE90E01BC08091FA0185FF05
+:1016500007C089E290E014C08091FA0185FFF9CFBC
+:1016600085E390E00DC08091FA0186FF07C08AE211
+:1016700090E006C08091FA0186FFF9CF81E390E007
+:101680000E947608089508950C94430B80916E0192
+:101690000895CF93DF9300D01F92CDB7DEB79C01A2
+:1016A0008091F101843019F593E099833B832A837B
+:1016B0009093E9008FEF9091E800815095FD06C06E
+:1016C00095ED9A95F1F700008111F5CF8091E80032
+:1016D00085FF0DC040E050E063E070E0CE01019670
+:1016E0000E94B30D8091E8008E778093E8000F9000
+:1016F0000F900F90DF91CF910895CF93DF9300D09B
+:101700001F92CDB7DEB72091F101243021F522E000
+:1017100029839B838A8383E08093E9008FEF9091F4
+:10172000E800815095FD06C095ED9A95F1F700000F
+:101730008111F5CF8091E80085FF0DC040E050E0B9
+:1017400063E070E0CE0101960E94B30D8091E80045
+:101750008E778093E8000F900F900F90DF91CF91DC
+:1017600008952091F1012430F1F422E02093E90062
+:101770002FEF3091E800215035FD06C035ED3A9548
+:10178000F1F700002111F5CF2091E80025FF0BC0F3
+:1017900040E050E065E070E00E94B30D8091E80009
+:1017A0008E778093E8000895CF93DF93EC019091BA
+:1017B000F101943009F046C080910C018823D9F0E2
+:1017C00080910D018823B9F09093E9008FEF9091FB
+:1017D000E800815095FD06C095E19A95F1F700006B
+:1017E0008111F5CF8091E80085FF2CC040E050E0EA
+:1017F00060E170E017C081E08093E9008FEF909185
+:10180000E800815095FD06C095ED9A95F1F700002E
+:101810008111F5CF8091E80085FF14C040E050E0D1
+:1018200068E070E0CE010E94B30D8091E8008E77F1
+:101830008093E80080E1FE01AEE5B1E001900D92F9
+:101840008A95E1F7DF91CF9108958091F0018111A0
+:1018500009C00E94480F0E94A50F8091E200846099
+:101860008093E20008951092F001089508950C9479
+:101870003C240E949D1D0E9442240E944B120C9405
+:10188000440B42E061EC81E00E94C20E42E061EC58
+:1018900082E00E94C20E42E061EC83E00E94C20E30
+:1018A00042E161EC84E00C94C20E8091F30183303C
+:1018B00009F455C030F4813071F0823009F48EC0E3
+:1018C00008958A3009F47AC08B3009F460C08930F9
+:1018D00009F09CC020C08091F201813A09F096C0C5
+:1018E0008091E800877F8093E8008091F6019091D5
+:1018F000F701892B21F460E18EE591E003C060E0FF
+:1019000080E090E070E00E94FE0D8091E8008B770F
+:101910008093E80008958091F201813209F076C049
+:101920008091F6019091F701009719F0039709F063
+:101930006DC08091E800877F8093E8008091E80087
+:1019400082FD05C08091F1018111F8CF5FC08091C7
+:10195000F10080936E018091E8008B7753C08091F5
+:10196000F201813A09F052C08091F6019091F7019D
+:10197000892B09F04BC08091E800877F8093E800B5
+:101980008091E80080FFFCCF80910C0136C08091EF
+:10199000F2018132D9F58091F6019091F701892BFE
+:1019A000A9F58091E800877F8093E8000E94F70EF8
+:1019B0008091F40180930C010C94E4168091F20163
+:1019C000813221F58091E800877F8093E8000E94B2
+:1019D000F70E8091F50180936F0108958091F201D7
+:1019E000813AA1F48091E800877F8093E80080919C
+:1019F000E80080FFFCCF80916F018093F10080911F
+:101A0000E8008E778093E8000C94F70E089584B771
+:101A1000877F84BF88E10FB6F894809360001092AE
+:101A200060000FBE90E080E80FB6F89480936100EC
+:101A3000909361000FBE0E949A120E94480F0E946C
+:101A4000A50F8091E20084608093E20078940E9468
+:101A50002B120E949C1282E091E00E9446120E948A
+:101A60002A248091F101853069F40E94641D8091DF
+:101A7000EF018823B1F30E948F1D882391F30E9408
+:101A80009D0DEFCF0E94A212ECCF292F33272330D8
+:101A90003105C9F064F42130310581F0223031057F
+:101AA00009F043C08DE690E029ED37E042C02132D5
+:101AB0003105F1F02232310541F137C082E190E089
+:101AC00026E438E036C099278130910541F0823014
+:101AD000910541F0892B49F5E5EDF7E005C0EDEB07
+:101AE000F7E002C0E5EAF7E0849190E09F0121C0B1
+:101AF0006430D8F4E62FF0E0EE0FFF1FEE5DFE4FEE
+:101B00002081318189E090E014C0643070F470E08D
+:101B1000FB01EE0FFF1FE65EFE4F20813181FB01CE
+:101B2000EA5EFE4F808190E004C080E090E020E01B
+:101B300030E0FA0131832083089580E189BD82E19C
+:101B400089BD09B400FEFDCF8091D8008F7D8093C0
+:101B5000D8008091E00082608093E0008091E000F6
+:101B600081FDFCCF0895CF92DF92EF92FF920F9309
+:101B70001F93CF93DF93EC018B016A010E94160F34
+:101B8000811133C0C114D10439F0F60180819181F3
+:101B9000081B190BC80FD91FE12CF12C01151105D9
+:101BA00019F18091E80085FD16C08091E8008E77DC
+:101BB0008093E800C114D10449F0F601808191813D
+:101BC000E80EF91EF182E08285E00FC00E94160F38
+:101BD000882321F30AC089918093F10001501109F3
+:101BE000FFEFEF1AFF0ADACF80E0DF91CF911F916C
+:101BF0000F91FF90EF90DF90CF9008952091F80122
+:101C00003091F9012617370748F06115710539F44D
+:101C10002091E8002E772093E80001C0B90140E050
+:101C200061157105A9F12091F101222309F443C046
+:101C3000253009F442C02091E80023FD40C02091E6
+:101C4000E80022FD32C02091E80020FFE9CF40915A
+:101C5000F3002091F20030E0342BFC01CF0161153C
+:101C6000710559F02830310540F481918093F100DD
+:101C7000615071092F5F3F4FF1CF41E028303105AE
+:101C800009F040E02091E8002E772093E800C8CFCB
+:101C90004111C9CF0AC08091F101882361F08530DC
+:101CA00061F08091E80083FD0AC08091E80082FF26
+:101CB000F2CF80E0089582E0089583E0089581E006
+:101CC00008952091F8013091F9012617370748F05F
+:101CD0006115710539F42091E8002E772093E80012
+:101CE00001C0B901FC0120E06115710591F18091FD
+:101CF000F101882309F440C0853009F43FC0809188
+:101D0000E80083FD3DC08091E80082FD2FC08091F6
+:101D1000E80080FFE9CF2091F3008091F20090E08D
+:101D2000922B6115710559F08830910540F424918A
+:101D30002093F1003196615071090196F2CF21E0B4
+:101D4000089709F020E08091E8008E778093E80002
+:101D5000CBCF2111CCCF0AC08091F101882361F053
+:101D6000853061F08091E80083FD0AC08091E80031
+:101D700082FFF2CF80E0089582E0089583E0089525
+:101D800081E00895982F973058F59093E9009817BF
+:101D900039F07091EC002091ED005091F00003C0FB
+:101DA000242F762F50E021FF19C03091EB003E7FA9
+:101DB0003093EB003091ED003D7F3093ED0030919A
+:101DC000EB0031603093EB007093EC002093ED005A
+:101DD0005093F0002091EE0027FF07C09F5FD3CF04
+:101DE0008F708093E90081E0089580E008958091EC
+:101DF000F20187FF11C08091E80082FD05C080914B
+:101E0000F1018111F8CF11C08091E8008B770BC0F0
+:101E10008091F101882349F08091E80080FFF8CF9C
+:101E20008091E8008E778093E80008952091E40087
+:101E30003091E50095E64091EC00842F817040FFE1
+:101E400022C08091E80080FD1CC08091F1018823B0
+:101E500091F0853091F08091EB0085FD10C04091AC
+:101E6000E4005091E5004217530729F39A0191507D
+:101E700011F784E0089582E0089583E0089581E0F9
+:101E8000089580E008954091E80042FFDECF089574
+:101E90000E94B60F0E94BE0FE0EEF0E080818160EC
+:101EA0008083E8EDF0E080818F77808319BCA7ED17
+:101EB000B0E08C918E7F8C9380818F7E8083109296
+:101EC000F00108950F931F93CF93DF930E94B60FF5
+:101ED0000E94BE0FC8EDD0E088818F77888388810B
+:101EE0008068888388818F7D888319BC1092F10176
+:101EF0001092ED011092EF011092EE0100EE10E051
+:101F0000F80180818B7F808388818160888342E0B3
+:101F100060E080E00E94C20EE1EEF0E080818E7F02
+:101F20008083E2EEF0E08081816080838081886040
+:101F30008083F80180818E7F80838881806188839F
+:101F4000DF91CF911F910F910895E8EDF0E080812E
+:101F50008F7E8083E7EDF0E080818160808384E084
+:101F600082BF81E08093F0010C94620FE8EDF0E015
+:101F700080818E7F80831092E20008951092DA00B3
+:101F80001092E10008951F920F920FB60F92112444
+:101F90002F933F934F935F936F937F938F939F9371
+:101FA000AF93BF93EF93FF938091E10082FF0BC04B
+:101FB0008091E20082FF07C08091E1008B7F8093D7
+:101FC000E1000E942A128091DA0080FF1FC08091F8
+:101FD000D80080FF1BC08091DA008E7F8093DA00EA
+:101FE0008091D90080FF0DC080E189BD82E189BD6B
+:101FF00009B400FEFDCF81E08093F1010E94250C21
+:1020000005C019BC1092F1010E94330C8091E100CF
+:1020100080FF19C08091E20080FF15C08091E2002E
+:102020008E7F8093E2008091E20080618093E200E5
+:102030008091D80080628093D80019BC85E080939D
+:10204000F1010E94370C8091E10084FF30C0809143
+:10205000E20084FF2CC080E189BD82E189BD09B422
+:1020600000FEFDCF8091D8008F7D8093D8008091B5
+:10207000E1008F7E8093E1008091E2008F7E80936B
+:10208000E2008091E20081608093E2008091ED01A6
+:10209000882311F084E007C08091E30087FD02C02F
+:1020A00081E001C083E08093F1010E94390C8091AE
+:1020B000E10083FF29C08091E20083FF25C0809169
+:1020C000E100877F8093E10082E08093F10110922C
+:1020D000ED018091E1008E7F8093E1008091E2002C
+:1020E0008E7F8093E2008091E20080618093E20025
+:1020F00042E060E080E00E94C20E8091F0008860C3
+:102100008093F0000E94360CFF91EF91BF91AF9148
+:102110009F918F917F916F915F914F913F912F91FF
+:102120000F900FBE0F901F9018951F920F920FB631
+:102130000F9211242F933F934F935F936F937F934D
+:102140008F939F93AF93BF93CF93DF93EF93FF93BF
+:10215000C091E900CF708091EC00D82FD17080FD44
+:10216000D0E81092E9008091F000877F8093F00022
+:1021700078940E94D9101092E9008091F000886054
+:102180008093F000CD2BCF70C093E900FF91EF91C9
+:10219000DF91CF91BF91AF919F918F917F916F917F
+:1021A0005F914F913F912F910F900FBE0F901F9015
+:1021B00018951F93CF93DF93CDB7DEB7AA970FB6CD
+:1021C000F894DEBF0FBECDBFE2EFF1E088E08E0FE6
+:1021D0009091F10091938E13FBCF0E94550C80914A
+:1021E000E80083FF1FC18091F2019091F301492F14
+:1021F00050E04A30510508F015C1FA01EA5AFF4F84
+:102200000C94C425803881F0823809F00BC180918C
+:10221000F6018F708093E9008091EB0085FB8827A1
+:1022200080F91092E90006C08091EE019091EF01D3
+:10223000911182609091E800977F9093E8008093DD
+:10224000F1001092F100C8C0282F2D7F09F0EAC0DC
+:10225000882319F0823061F0E5C08091F40181306B
+:1022600009F0E0C0933009F080E08093EF012BC0CB
+:102270008091F401811127C08091F6018F7009F4DB
+:10228000D1C08093E9002091EB0020FF1CC0933067
+:1022900021F48091EB00806214C09091EB0090617A
+:1022A0009093EB0021E030E0A90102C0440F551FDC
+:1022B0008A95E2F74093EA001092EA008091EB00E1
+:1022C00088608093EB001092E9008091E800877F9E
+:1022D00086C08111A7C01091F4011F778091E3009F
+:1022E0008078812B8093E3008091E800877F809342
+:1022F000E8000E94F70E8091E80080FFFCCF8091FB
+:10230000E30080688093E300111102C082E001C005
+:1023100083E08093F10186C08058823008F082C04B
+:102320008091F4019091F5018C3D53E0950779F58A
+:1023300083E08A838AE289834FB7F894DE0113969B
+:1023400020E03EE051E2E32FF0E050935700E491AB
+:1023500020FF03C0E295EF703F5FEF708E2F90E09B
+:10236000EA3010F0C79601C0C0968D939D932F5F01
+:10237000243149F74FBF8091E800877F8093E800C0
+:102380006AE270E0CE0101960E94FE0D14C0AE011B
+:102390004F5F5F4F6091F6010E94450DBC010097B1
+:1023A00009F440C09091E800977F9093E8008981FC
+:1023B0009A810E94610E8091E8008B778093E800FB
+:1023C00031C0803879F58091E800877F8093E800FC
+:1023D0008091ED018093F1008091E8008E778093E9
+:1023E000E8000E94F70E1EC081111CC09091F401FC
+:1023F0009230C0F48091E800877F8093E80090934A
+:10240000ED010E94F70E8091ED01811106C08091CF
+:10241000E30087FD02C081E001C084E08093F10108
+:102420000E94410C8091E80083FF0AC08091E8007F
+:10243000877F8093E8008091EB0080628093EB00BF
+:10244000AA960FB6F894DEBF0FBECDBFDF91CF9135
+:102450001F9108950895CF938091F1018823A1F0F1
+:10246000C091E900CF709091EC00892F817090FDB0
+:1024700080E8C82B1092E9008091E80083FD0E945B
+:10248000D910CF70C093E900CF9108959093750152
+:10249000809374010895E0917401F0917501309773
+:1024A00021F00190F081E02D099480E00895E09101
+:1024B0007401F0917501309721F00280F381E02DD5
+:1024C00009940895E0917401F0917501309721F01D
+:1024D0000480F581E02D09940895209172013091D6
+:1024E00073018217930771F09093730180937201C7
+:1024F000E0917401F0917501309721F00680F78129
+:10250000E02D099408952091700130917101821796
+:10251000930771F09093710180937001E0917401C1
+:10252000F0917501309721F00084F185E02D099438
+:10253000089508950C9499120E94A31D0E9483058A
+:102540000C94651E9F92AF92BF92CF92DF92EF9252
+:10255000FF920F931F93CF93DF9300D000D000D052
+:10256000CDB7DEB70E949B050DE010E0AA24A3942E
+:10257000B12C902E802F0E948906980129583E4F39
+:102580006901F901F080F826A1F40150110988F7DA
+:102590008FEF89838A831B820E94AC1D8160782F14
+:1025A0009D838C8349815A816B818D810E9439136F
+:1025B0002FC09091DA0191FF04C08E830E948F0694
+:1025C0008E8125E030E0A501022E01C0440F0A945F
+:1025D000EAF7E42E4F21C1F029839A828E2191E0FF
+:1025E00009F490E09B830E94AC1D8160782F9D834D
+:1025F0008C8349815A816B818D810E943913F60148
+:102600008081E826E08204C021503109E0F6BDCF88
+:102610000E944C21109176010E944B121817B9F0BC
+:102620000E944B128093760126960FB6F894DEBF77
+:102630000FBECDBFDF91CF911F910F91FF90EF9013
+:10264000DF90CF90BF90AF909F900C94440B269654
+:102650000FB6F894DEBF0FBECDBFDF91CF911F91B3
+:102660000F91FF90EF90DF90CF90BF90AF909F9031
+:102670000895CF93DF93CDB7DEB72B970FB6F894BD
+:10268000DEBF0FBECDBF4F83588769877A878B87A0
+:10269000DE01119686E0FD0111928A95E9F785E049
+:1026A000FE01379601900D928A95E1F749815A8192
+:1026B0006B817C818D819E810E9482192B960FB641
+:1026C000F894DEBF0FBECDBFDF91CF910895CF93B9
+:1026D000882309F4C2C0C82F823859F40E944B12D3
+:1026E00081FDBBC089E30E945C1C0E94291D89E317
+:1026F0000CC0833879F40E944B1280FDAEC083E594
+:102700000E945C1C0E94291D83E50E949E1CCF91A3
+:102710000C94291D843859F40E944B1282FD9DC0EF
+:1027200087E40E945C1C0E94291D87E4EECF8CEF99
+:102730008C0F813A48F48C2F0E948F2381118DC019
+:102740008C2F0E945C1CE3CF80E28C0F883048F411
+:10275000C77081E001C0880FCA95EAF70E94E21CA9
+:10276000D6CF8BE58C0F833078F4C53A29F0C63A82
+:1027700031F083E890E005C081E890E002C082E893
+:1027800090E0CF910C946D1288E58C0F833108F0A6
+:1027900064C0C83A39F1C93A41F1CA3A49F1CB3A71
+:1027A00051F1CC3A59F1CD3A61F1C03B69F1CE3AE1
+:1027B00071F1CF3A79F1C13B81F1C23B89F1C33B61
+:1027C00091F1C43B99F1C53BA1F1C63BA9F1C73BCF
+:1027D000B1F1C83BB9F1C93BC1F1CA3BC9F180E0D5
+:1027E00090E038C082EE90E035C089EE90E032C0D3
+:1027F0008AEE90E02FC085EB90E02CC086EB90E055
+:1028000029C087EB90E026C08CEC90E023C08DECD3
+:1028100090E020C083E891E01DC08AE891E01AC0F2
+:1028200082E991E017C084E991E014C081E292E06E
+:1028300011C083E292E00EC084E292E00BC085E218
+:1028400092E008C086E292E005C087E292E002C012
+:102850008AE292E0CF910C948312CF91089588235D
+:1028600009F44BC0823859F40E944B1281FF45C0D5
+:1028700089E30E945C1C0E94291D89E30CC08338F7
+:1028800071F40E944B1280FF38C083E50E945C1CEB
+:102890000E94291D83E50E949E1C0C94291D8438EA
+:1028A00059F40E944B1282FF28C087E40E945C1CEE
+:1028B0000E94291D87E4EFCF9CEF980F913A58F3BF
+:1028C00090E2980F983050F4877091E001C0990F12
+:1028D0008A95EAF7892F0E94E81CDFCF9BE5980FC5
+:1028E000933020F480E090E00C946D12885A83318C
+:1028F00020F480E090E00C9483120895882321F066
+:102900000E94E21C0C94291D0895882321F00E9446
+:10291000E81C0C94291D08957F928F929F92AF928C
+:10292000BF92CF92DF92EF92FF920F931F93CF93BC
+:10293000DF931F92CDB7DEB77C01C62E772EFC0148
+:10294000058102950F70128111110E94FF1C0E94D7
+:10295000551C882379F0112369F080E28C0D8830B2
+:1029600048F082E00E943E1C0E94551C91E0D82E47
+:10297000D92601C0D12CE72DE295EF70F0E0E05AA6
+:10298000FF4F0C94C425872D807F072D0F7088235F
+:1029900011F00295007F112389F0002309F490C102
+:1029A00080E28C0D883020F4802F0E94E21C03C04E
+:1029B000802F0E94F21C0E94291D82C18C2D0E9432
+:1029C0002F14002309F495C180E28C0D883020F487
+:1029D000802F0E94E81C03C0802F0E94F81C0E94D8
+:1029E000291D87C1972D907F872D8F70903211F010
+:1029F0008295807FCC2021F0F1E0CF16B1F01EC08F
+:102A0000112349F0002309F414C1013009F011C168
+:102A10000E94121D6EC1002319F0013009F469C132
+:102A200089830E94151D89810AC1112321F002307A
+:102A300008F05FC1FEC001115CC101C1112321F08A
+:102A4000002309F4F6C03CC1002309F4F8C03EC1DC
+:102A5000872D86958695837090E0009719F00197F1
+:102A600061F047C1112321F08C2D972D937002C086
+:102A700080E090E00E946D123CC1112321F08C2D6A
+:102A8000972D937002C080E090E00E94831231C1C4
+:102A90008C2D112319F00E94542002C00E94BC20EA
+:102AA0000E94412126C1872D837009F052C0111167
+:102AB00020C18C2D829586958770880F880F9C2D5C
+:102AC0009F70892E912CA12CB12C082E04C0880C4B
+:102AD000991CAA1CBB1C0A94D2F7C4FE14C00FE0B8
+:102AE00010E020E030E0B901A80104C0440F551FF8
+:102AF000661F771F8A95D2F7CB01BA016095709552
+:102B00008095909503C060E070E0CB01272D26955D
+:102B10002695237030E02230310569F023303105ED
+:102B200089F0682979298A299B292130310571F09A
+:102B30000E94CA1ADEC0682979298A299B290E9425
+:102B4000E61AD7C00E94CA1AC501B4010E94AE1A83
+:102B5000D0C0112319F0872D817001C0869588237C
+:102B600009F4C7C08C2D829586958770880F880FD1
+:102B70009C2D9F70892E912CA12CB12C082E04C065
+:102B8000880C991CAA1CBB1C0A94D2F7C4FE14C062
+:102B90000FE010E020E030E0B901A80104C0440FCC
+:102BA000551F661F771F8A95D2F7CB01BA01609532
+:102BB00070958095909503C060E070E0CB01272D63
+:102BC000269526952370422F50E04230510569F03A
+:102BD0004330510589F0682979298A299B29413098
+:102BE000510571F00E94A41B84C0682979298A29A3
+:102BF0009B290E94C01B7DC00E94A41BC501B4017B
+:102C00000E94881B76C08C2D90E0FC01E05EF109EB
+:102C1000E531F10508F050C0E059FF4F0C94C42590
+:102C20000C2D0F70872D8F71112331F00E94211B05
+:102C3000802F0E947E145DC00E94421B802F0E9444
+:102C4000851457C0112339F0011153C0872D8F719E
+:102C50000E94671B4EC0023008F04BC0F7CF112313
+:102C600039F0872D8F710E94211B43C01123C9F3B6
+:102C7000872D8F710E94421B3CC0112329F0872DA4
+:102C80008F710E940C1B35C00E94021B32C01123A1
+:102C900051F0172D1F71812F0E94211B63E0812F9E
+:102CA0000E94351C26C081E00E943E1C023008F1C3
+:102CB00082E00E943E1C1DC0112331F0002389F2E6
+:102CC0008C2D0E94671315C0002391F28C2D0E9459
+:102CD0002F140FC0472D4F706C2DC7010E94650740
+:102CE0000E94261A06C0472D4F706C2DC7010E9406
+:102CF0005308DD20F9F00E94311C80FD1BC0F70154
+:102D000012820E942B1C0E94211BC7010E94A9163F
+:102D10000E942B1C0F90DF91CF911F910F91FF907C
+:102D2000EF90DF90CF90BF90AF909F908F907F906B
+:102D30000C94421B0F90DF91CF911F910F91FF9048
+:102D4000EF90DF90CF90BF90AF909F908F907F904B
+:102D500008950F931F93CF93DF93EC01888199819E
+:102D60002B813C81232BB9F09F3F11F48F3F99F0C9
+:102D7000CE010E94AB07882371F0688179818A8136
+:102D80000E94271C8C010E94DC1B0E94A31AB80120
+:102D9000CE010E948C14DF91CF911F910F91089565
+:102DA0000E94FF1C0E940F1D0E94D41C0E94291D1E
+:102DB0000E94F2210E94412180E090E00E946D1269
+:102DC00080E090E00C9483120E94EF1C0C94D016CB
+:102DD0000E941C1C292F22952F7030E02C303105C9
+:102DE0004CF42A3031056CF422503109223031057F
+:102DF000A8F407C02C30310569F02F30310551F0AF
+:102E00000DC0803F69F018F4803E40F409C0843F53
+:102E100029F406C093FB882780F9089580E008957F
+:102E200081E00895CF93DF9300D000D01F92CDB7FB
+:102E3000DEB70F900F900F900F900F90DF91CF9112
+:102E40000895CF93DF9300D000D000D0CDB7DEB788
+:102E500026960FB6F894DEBF0FBECDBFDF91CF919F
+:102E600008951F93CF93DF93C091850116E0809161
+:102E70008601C81799F0D0E01C9FF0011D9FF00D4E
+:102E80001124E957FE4F4081518162817381848111
+:102E900095810E9421172196C770E9CFDF91CF91CC
+:102EA0001F9108954091B7015091B8016091B90107
+:102EB0007091BA018091BB019091BC010C942117D3
+:102EC0008091BC0182958F7009F054C08091B90146
+:102ED000882309F44FC080918501A09186016091FB
+:102EE000B7017091B8014091BA015091BB01B6E0B1
+:102EF0008A1709F43FC090E041155105C1F17F3FA9
+:102F000011F46F3FA1F1B89FF001B99FF00D1124AA
+:102F1000E957FE4F218172132AC02081621327C016
+:102F20002281211124C0238134812417350710F414
+:102F300021503109241B350B283C3105C0F4209168
+:102F4000BC012F7020612093BC0126E0289FF00176
+:102F5000299FF00D1124E457FE4F80818F7080610E
+:102F6000808387EB91E00E94A9160C94311701969B
+:102F70008770BECF0895CF92DF92EF92FF920F93AA
+:102F80001F93CF93DF93CDB7DEB762970FB6F89458
+:102F9000DEBF0FBECDBF8C0185E0F801DE011D96BE
+:102FA00001900D928A95E1F7D8014C9111965C91B0
+:102FB000119712966C9112971396CD90DC901497FE
+:102FC0003091B7017091B8018091BA019091BB0125
+:102FD000009709F46BC17F3F19F43F3F09F466C1C4
+:102FE000E090B901EE2009F4C0C02091BC01C816E0
+:102FF000D90628F0F601E81BF90BCF0104C0809533
+:1030000090958C0D9D1DFF24F394883C910578F0DC
+:10301000F12C207F09F0C6C07C2DD98AC88A898905
+:103020000E94121787EB91E00E94A916B1C0822F6F
+:10303000807F09F046C0751314C0341312C06111AB
+:1030400010C02F7020612093BC010E94521787EBA3
+:1030500091E00E94A9168091BC01D80115968C932D
+:103060002EC0CD2819F15F3F11F44F3FF9F0F62E35
+:1030700061111CC0809185012091860136E0821784
+:1030800009F45AC090E0389FF001399FF00D1124E7
+:10309000E957FE4F7181571306C07081471303C073
+:1030A0007281711103C001968770E9CFF62E6623F5
+:1030B00009F418C18091BC0181608093BC01F12C9E
+:1030C00011C1751308C0341306C0611104C080918A
+:1030D000BC01D801C3C04D875E878D859E856A8BF4
+:1030E0000E94E8166A898823E1F16623D1F12091D4
+:1030F000BC01822F82958F7090E0029774F08091CE
+:10310000B7019091B80198878F831986DB86CA86AC
+:103110002C87CE0107960E94A91686E0F801A7EB3E
+:10312000B1E001900D928A95E1F70E9460170E942C
+:103130005217FF24F394D6C04D875E878D859E85F8
+:103140000E941C1C292F22952F7030E0223031055F
+:103150000CF0BCC09F7009F0B6C0805E883008F4E7
+:10316000C1C0C8010E94A916E4CFC816D90608F448
+:1031700053C0F601E81BF90BCF01883C910508F418
+:1031800050C0F12C7C2DD98AC88A89890E941217D7
+:10319000E7EBF1E086E0DF011D928A95E9F70E94F6
+:1031A0005217A0C0751314C0341312C0611110C09F
+:1031B0008091BC01F8018583C8010E94A91686E0B0
+:1031C000E7EBF1E0DF011D928A95E9F7FE2C8AC05A
+:1031D0004D875E878D859E856A8B0E94E8166A8979
+:1031E000882309F4BECF662309F4BBCF2091BC012C
+:1031F000822F82958F7090E002970CF48ECF809191
+:10320000B7019091B8019A8389831B82DD82CC82B9
+:103210002E83CE0101967FCF809590958C0D9D1DBC
+:10322000ACCFF62E662309F49CCF75132EC0341351
+:103230002CC02091BC0120FD1FC0822F82958F7071
+:10324000D9F0D80115962C9315978F3049F08F5FE0
+:10325000982F9295907F822F8F70892B15968C9343
+:10326000C8010E94A91686E0F801A7EBB1E0019021
+:103270000D928A95E1F793CF86E0F801A7EBB1E0D4
+:1032800001900D928A95E1F72DC04D875E878D855F
+:103290009E850E94E816811140CF8091BC0181601B
+:1032A0008093BC01C8010E94A9161CC0662309F4C2
+:1032B00058CF4D875E878D859E850E94E8168823AE
+:1032C00009F44FCF2ACF811148CF0CC024303105EB
+:1032D0000CF047CF9F7009F440CFF8019581907FA3
+:1032E00009F03BCF8F2D62960FB6F894DEBF0FBE6C
+:1032F000CDBFDF91CF911F910F91FF90EF90DF90A5
+:10330000CF9008951F93CF93DF93CDB7DEB72C975F
+:103310000FB6F894DEBF0FBECDBF4F8358876987C5
+:103320007A878B879C87CE0107960E94BB178823DC
+:1033300069F08F8198852A853B85232BF1F19F3F8A
+:1033400009F063C08F3F09F060C037C086E0FE011E
+:103350003796DE01119601900D928A95E1F76F8103
+:103360007885EA85FB85309741F17F3F11F46F3F07
+:1033700021F12091860130E0C901019687709927DB
+:103380004091850150E08417950709F447C069838F
+:103390007A83FD83EC8396E0929FD001939FB00DDA
+:1033A0001124A957BE4FFE01319601900D929A95B6
+:1033B000E1F7809386010E94311716E08091850124
+:1033C000909186018917C1F1189FC0011124895776
+:1033D0009E4F0E94BB17882379F1E09185011E9FC3
+:1033E000F0011124E957FE4F4081518162817381C0
+:1033F000848195810E9421178091850190E001963A
+:103400008770992780938501D9CF4F815885698529
+:103410007A858B859C850E942117CFCF0E94E41668
+:103420001092860110928501E7EBF1E086E0DF0162
+:103430001D928A95E9F7C1CF2C960FB6F894DEBF9E
+:103440000FBECDBFDF91CF911F910895EF92FF92F4
+:103450000F931F93CF93DF938C01009709F46CC0F7
+:10346000F12CEE24E394E8012196F801849184374D
+:1034700040F4843008F051C0813081F0823019F17D
+:103480005BC0853709F444C0A8F19CE7980F9037DA
+:1034900008F052C08F770E942F1441C00E5F1F4F5B
+:1034A000FE01C49180E28C0F883048F4C7708E2DE5
+:1034B00001C0880FCA95EAF70E94021D14C08C2F24
+:1034C0000E9467132DC00E5F1F4FFE01C49180E262
+:1034D0008C0F883058F4C7708E2D01C0880FCA95A4
+:1034E000EAF70E94081D0E94291D1AC08C2F0E9415
+:1034F0002F1416C00E5F1F4FFE01C491CC2381F024
+:103500008FE99FE00197F1F700C00000C150F6CFAE
+:103510000E5F1F4FFE01F49003C00E9467138E01DF
+:103520008F2D882309F49FCFEFE9FFE03197F1F762
+:1035300000C000008150F5CFDF91CF911F910F9116
+:10354000FF90EF90089508956093C1017093C201B8
+:103550008093C3019093C4010C94D0160F931F93D2
+:103560000091C1011091C2012091C3013091C401A9
+:10357000DC01CB01802B912BA22BB32B8093C101BB
+:103580009093C201A093C301B093C4011F910F9106
+:103590000C94D0160F931F930091C1011091C2019A
+:1035A0002091C3013091C401DC01CB018023912320
+:1035B000A223B3238093C1019093C201A093C301BE
+:1035C000B093C4011F910F910C94D0160F931F93C9
+:1035D0000091C1011091C2012091C3013091C40139
+:1035E000DC01CB0180279127A227B3278093C1015B
+:1035F0009093C201A093C301B093C4011F910F9196
+:103600000C94D0161092BD011092BE011092BF0111
+:103610001092C0010C94D01641E050E060E070E0E0
+:1036200004C0440F551F661F771F8A95D2F7409339
+:10363000BD015093BE016093BF017093C0010C9413
+:10364000D01641E050E060E070E004C0440F551F28
+:10365000661F771F8A95D2F78091BD019091BE01B8
+:10366000A091BF01B091C001482B592B6A2B7B2B35
+:103670004093BD015093BE016093BF017093C001A0
+:103680000C94D01641E050E060E070E004C0440FBC
+:10369000551F661F771F8A95D2F740955095609504
+:1036A00070958091BD019091BE01A091BF01B09134
+:1036B000C001482359236A237B234093BD015093C3
+:1036C000BE016093BF017093C0010C94D01641E01D
+:1036D00050E060E070E004C0440F551F661F771F84
+:1036E0008A95D2F78091BD019091BE01A091BF0152
+:1036F000B091C001482759276A277B274093BD0115
+:103700005093BE016093BF017093C0010C94D0161A
+:103710000F931F930091BD011091BE012091BF0135
+:103720003091C001DC01CB01802B912BA22BB32B5C
+:103730008093BD019093BE01A093BF01B093C001DF
+:103740001F910F910C94D0160F931F930091BD0100
+:103750001091BE012091BF013091C001DC01CB016D
+:1037600080239123A223B3238093BD019093BE01B4
+:10377000A093BF01B093C0011F910F910C94D0167C
+:103780000F931F930091BD011091BE012091BF01C5
+:103790003091C001DC01CB0180279127A227B327FC
+:1037A0008093BD019093BE01A093BF01B093C0016F
+:1037B0001F910F910C94D0160895CF92DF92EF9243
+:1037C000FF920F931F93CF93DF938C01C090C101A1
+:1037D000D090C201E090C301F090C4018091BD017E
+:1037E0009091BE01A091BF01B091C001C82AD92A11
+:1037F000EA2AFB2ACFE1D0E0D701C6010C2E04C093
+:10380000B695A795979587950A94D2F780FF06C03D
+:10381000B8018C2F0E94A90A019721F4219760F723
+:1038200080E001C08C2FDF91CF911F910F91FF900D
+:10383000EF90DF90CF900895CF93DF93EC010E943B
+:10384000DD1BBE010E94A90ADF91CF910895CB0133
+:103850000E941C1C08958091C501859585958595CC
+:1038600008958091C5018770089598E0899F90011F
+:103870001124262B2093C5010C94211B2091C501F6
+:10388000809582238093C501982F977069F430E06A
+:10389000482F552747FD50952417350729F0859562
+:1038A000859585950C94421B08959091C50197705C
+:1038B00081E009F480E0089590910C01992321F0B2
+:1038C00090910D01911109C020910E0130910F01CD
+:1038D000F90132969FEF40E01FC0982F969596957C
+:1038E00096959F3050F5E0910E01F0910F01E90F90
+:1038F000F11D877021E030E0A90102C0440F551F7F
+:103900008A95E2F7CA019181892B818308959F3FAF
+:1039100039F04F5F4E3041F051915813F8CF0DC040
+:103920005111F7CF942FF5CF9F3F39F0F901E90FEF
+:10393000F11D97FDFA9582830895089590910C01E9
+:10394000992321F090910D01911109C020910E0150
+:1039500030910F01F9013296205F3F4F1FC0982F21
+:103960009695969596959F30F0F4E0910E01F09122
+:103970000F01E90FF11D877021E030E0A90102C0BD
+:10398000440F551F8A95E2F7CA01809591818923DA
+:10399000818308953196E217F30729F090819813F7
+:1039A000F9CF1082F7CF089581E090E0E0910E0109
+:1039B000F0910F01E80FF91F1082019680319105F7
+:1039C000A9F708959091D901892B8093D901089581
+:1039D00080959091D90189238093D90108951092FF
+:1039E000D90108959091D801892B8093D801089529
+:1039F00080959091D80189238093D80108951092E1
+:103A0000D80108959091D701892B8093D70108950B
+:103A100080959091D70189238093D70108951092C2
+:103A2000D70108958093C60108951092C6010895A4
+:103A300080910E0190910F01FC0131969C01205F55
+:103A40003F4F80E0919191118F5FE217F307D1F71B
+:103A50000895E0910E01F0910F018091D9018083CA
+:103A6000E0910E01F0910F0190818091D801892B96
+:103A70008083E0910E01F0910F0190818091D70138
+:103A8000892B80838091C601882361F0E0910E012B
+:103A9000F0910F019081892B80830E94181D811164
+:103AA0001092C60180910E0190910F010C94571253
+:103AB00020E0009739F0AC0141505109842395234F
+:103AC0002F5FF7CF822F08958091F101843021F18B
+:103AD0001092DB0120E488E190E00FB6F894A895FD
+:103AE000809360000FBE2093600080E00E94440B32
+:103AF00083B7817F846083BF83B7816083BF7894FD
+:103B0000889583B78E7F83BF88E10FB6F894809342
+:103B10006000109260000FBE0895089508950E94FD
+:103B20008D1D0E949B050E948E1D0E94900691E0B3
+:103B3000811101C090E0892F08950E94E4160E942F
+:103B40004B120C94440B82E084BD93E095BD9AEF38
+:103B500097BD80936E0008952FB7F8948091DC0193
+:103B60009091DD01A091DE01B091DF012FBF08959A
+:103B7000CF92DF92EF92FF920F931F932FB7F8949B
+:103B80004091DC015091DD016091DE017091DF0117
+:103B90002FBF6A017B01EE24FF248C0120E030E07E
+:103BA000C016D106E206F30610F4415051099A01FD
+:103BB000281B390BC9011F910F91FF90EF90DF90E7
+:103BC000CF9008951F920F920FB60F9211248F93EA
+:103BD0009F93AF93BF938091DC019091DD01A09101
+:103BE000DE01B091DF010196A11DB11D8093DC01C2
+:103BF0009093DD01A093DE01B093DF01BF91AF91FF
+:103C00009F918F910F900FBE0F901F9018950E945B
+:103C1000480FF8942FEF87EA91E6215080409040BA
+:103C2000E1F700C0000087E090EBDC018093FB012E
+:103C30009093FC01A093FD01B093FE019CE088E10C
+:103C40000FB6F894A895809360000FBE9093600023
+:103C5000FFCFEF92FF920F931F93CF93DF93D82F55
+:103C6000CDE08C2F0E94890605E010E0E82EF12CB3
+:103C7000C701002E02C0959587950A94E2F780FF50
+:103C800009C0602F7C2F80E00E945408D81302C026
+:103C900081E006C00150110958F7C15010F780E0CB
+:103CA000DF91CF911F910F91FF90EF900895CF93E7
+:103CB000C82F8CE20E94291E882321F08C2FCF91DF
+:103CC0000C94291E80E0CF910895CF930E94AC1FE1
+:103CD000811102C00E94921FC5E6C15049F00E94A6
+:103CE0009B058FE39CE90197F1F700C00000F5CF39
+:103CF00089E20E94571E811113C18AE20E94571E59
+:103D000081110E94921F85E00E94571E81110E941E
+:103D1000071E0E94B71F8093DA0187E00E94571E9A
+:103D20008823A9F18BE10E94571E882351F08091CE
+:103D3000DA0181FB222720F991E0922790FB81F99B
+:103D40000EC08EE00E94571E882361F08091DA0138
+:103D500082FB222720F991E0922790FB82F9809341
+:103D6000DA0115C080E10E94571E9091DA01882384
+:103D700041F093FB222720F981E0822780FB93F911
+:103D800004C0892F809580FB90F99093DA0180918F
+:103D9000DA010E94BB1F0E94C91F8093FA0180EEC6
+:103DA0000E94571E882341F08091FA01982F909528
+:103DB00090FB80F98093FA0189E30E94571E8823C3
+:103DC00059F08091FA0181FB222720F991E0922796
+:103DD00090FB81F98093FA0182EE0E94571E88239E
+:103DE00059F08091FA0182FB222720F991E0922775
+:103DF00090FB82F98093FA0186EE0E94571E882379
+:103E000059F08091FA0183FB222720F991E0922753
+:103E100090FB83F98093FA0183EE0E94571E88235A
+:103E200059F08091FA0184FB222720F991E0922732
+:103E300090FB84F98093FA0185E30E94571E882342
+:103E400059F08091FA0185FB222720F991E0922711
+:103E500090FB85F98093FA0181E30E94571E882325
+:103E600059F08091FA0186FB222720F991E09227F0
+:103E700090FB86F98093FA0181E10E94571E882306
+:103E800059F08091FA0187FB222720F991E09227CF
+:103E900090FB87F98093FA018091FA010E94CD1F6F
+:103EA0008091FA0187FB882780F980930D0187E2D2
+:103EB0000E94571EC82F8EE10E94571E8111C260BA
+:103EC0008FE10E94571E8111C46080E20E94571E3C
+:103ED0008111C86081E20E94571E8111C06182E297
+:103EE0000E94571E8111C06283E20E94571E8111F9
+:103EF000C06484E20E94571E882311F0C06802C08B
+:103F0000CC2329F08C2F0E94C41F6C2F03C00E9469
+:103F1000C01F682F70E080E090E0CF910C94A41A4D
+:103F2000CF9108956DEE7EEF80E090E00E94FE2537
+:103F300060E082E090E00E94EC2560E083E090E0A9
+:103F40000E94EC2560E084E090E00E94EC2560E0B7
+:103F500085E090E00C94EC2580E090E00E94E6255E
+:103F600021E08D3E9E4F09F020E0822F089582E0EF
+:103F700090E00C94DE25682F82E090E00C94EC2514
+:103F800083E090E00C94DE25682F83E090E00C94B1
+:103F9000EC2584E090E00C94DE25682F84E090E02E
+:103FA0000C94EC258091E20180FF0BC0609113011D
+:103FB00085E0689FB00111247595679575956795A3
+:103FC0002BC081FF09C06091130185E0689FB0019B
+:103FD00011247595679520C082FF07C06091130179
+:103FE00085E0689FB001112417C09091E3019923E7
+:103FF000D1F060911201961788F72091130185E0A6
+:10400000289F90011124929FA001939F500D11248D
+:1040100070E0CA010E94B0256038710540F4611556
+:10402000710539F002C065E070E0862F08958FE7D2
+:10403000089581E008958091E20180FF08C06091B9
+:10404000110170E0759567957595679521C081FFA1
+:1040500006C06091110170E07595679519C082FFE7
+:1040600004C06091110170E010C09091E3019923A8
+:10407000C1F0609110019617A0F780911101899FFE
+:10408000C001112470E00E94B0256038710528F449
+:104090006115710521F0862F08958FE7089581E05D
+:1040A000089561E070E0F4CF803F21F40E94D21FB8
+:1040B000819504C0813F29F40E94D21F8093E601BC
+:1040C0000895823F21F40E94D21F819504C0833F4E
+:1040D00029F40E94D21F8093E5010895893F19F4C5
+:1040E0000E941B2005C08A3F31F40E941B2081954D
+:1040F0008093E70108958B3F21F40E941B20819556
+:1041000004C08C3F29F40E941B208093E80108958D
+:10411000843F21F48091E401816017C0853F21F440
+:104120008091E401826011C0863F21F48091E40116
+:1041300084600BC0873F21F48091E401886005C052
+:10414000883F31F48091E40180618093E401089517
+:104150008D3F21F48091E20181600BC08E3F21F4FC
+:104160008091E201826005C08F3F29F48091E201D5
+:1041700084608093E2010895803F39F48091E601E4
+:1041800087FF6CC01092E60169C0813F29F48091DD
+:10419000E6011816BCF362C09091E501823F29F454
+:1041A00097FF5CC01092E50159C0833F19F41916BE
+:1041B000CCF354C0893F41F48091E70118160CF00C
+:1041C0004DC01092E7014AC08A3F29F48091E7016F
+:1041D00087FF44C0F6CF8B3F39F48091E80187FF19
+:1041E0003DC01092E8013AC08C3F29F48091E8016B
+:1041F0001816BCF333C0843F21F48091E4018E7F14
+:1042000017C0853F21F48091E4018D7F11C0863F66
+:1042100021F48091E4018B7F0BC0873F21F48091D2
+:10422000E401877F05C0883F31F48091E4018F7EEF
+:104230008093E40113C08D3F21F48091E2018E7FD1
+:104240000BC08E3F21F48091E2018D7F05C08F3F2E
+:1042500029F48091E2018B7F8093E2018091E50156
+:1042600081110EC08091E60181110AC08091E701A1
+:10427000811106C08091E801811102C01092E30112
+:10428000089584EE91E00E9462120E94AC1D90930A
+:10429000E1018093E00108951F93CF93DF93809114
+:1042A000E0019091E1010E94B81DAC019091E30101
+:1042B000992321F02091140130E006C020911501CE
+:1042C0008AE0289F900111244217530708F486C002
+:1042D0008091E501C091E601D091E7011091E801DC
+:1042E000811107C0C11176C0D11174C0111172C003
+:1042F00075C09F3F19F09F5F9093E301181624F457
+:104300000E94D21F8093E5018091E50187FF05C0DF
+:104310000E94D21F81958093E5011C1624F40E940F
+:10432000D21F8093E6018091E60187FF05C00E94BD
+:10433000D21F81958093E6016091E501662339F1F2
+:10434000C091E601CC2319F1772767FD7095872F7F
+:10435000972F0E94C12423E333E343E35FE30E94EA
+:1043600025250E948E246093E5016C2F772767FD39
+:104370007095872F972F0E94C12423E333E343E3F3
+:104380005FE30E9425250E948E246093E6011D169E
+:1043900024F40E941B208093E7018091E70187FFAE
+:1043A00005C00E941B2081958093E701111624F41B
+:1043B0000E941B208093E8018091E80187FF05C0DF
+:1043C0000E941B2081958093E801DF91CF911F917E
+:1043D0000C9441219F3F09F08ECF96CFDF91CF9172
+:1043E0001F910895E4EEF1E085E0DF011D928A95CA
+:1043F000E9F71092E3011092E2010895833081F110
+:1044000028F4813059F08230D1F00895853009F4D4
+:1044100049C0B8F1863009F456C00895809115015D
+:10442000262F30E0280F311D2F3F310524F4680F6F
+:104430006093150108958FEF809315010895809181
+:104440001401262F30E0280F311D2F3F310524F4B1
+:10445000680F6093140108958FEF809314010895FD
+:1044600080911301262F30E0280F311D2F3F310599
+:1044700024F4680F6093130108958FEF8093130164
+:10448000089580911201262F30E0280F311D2F3F13
+:10449000310524F4680F6093120108958FEF809323
+:1044A0001201089580911101262F30E0280F311D4F
+:1044B0002F3F310524F4680F6093110108958FEFA9
+:1044C00080931101089580911001262F30E0280F6C
+:1044D000311D2F3F310524F4680F609310010895BA
+:1044E0008FEF809310010895833011F128F481300B
+:1044F00049F0823091F00895853081F120F18630C5
+:10450000C1F1089580911501681720F4861B8093EE
+:1045100015010895109215010895809114016817EE
+:1045200020F4861B809314010895109214010895BD
+:1045300080911301681720F4861B8093130108955E
+:1045400010921301089580911201681720F4861BC0
+:104550008093120108951092120108958091110123
+:10456000681720F4861B80931101089510921101A1
+:10457000089580911001681720F4861B8093100124
+:1045800008951092100108950F931F938D3109F42F
+:104590006BC008F03FC08E3009F47FC0C0F4873094
+:1045A00009F469C068F4863009F0B1C08091DA017D
+:1045B000817F8E7F8093DA0181E08093EA01A8C039
+:1045C000883009F4A2C08B3009F49FC0A0C08631A6
+:1045D00009F49BC078F4803109F472C0813109F08C
+:1045E00096C00E94E41690910D0181E08927809386
+:1045F0000D018BC0893109F488C08B3109F087C067
+:104600008091DA0181FB222720F991E0922790FB2B
+:1046100081F94CC0853309F470C048F4873209F43D
+:104620006CC008F459C0893209F467C070C0833483
+:1046300038F48A3308F04EC0883309F466C067C086
+:10464000833409F45AC0883409F061C00E94E4162A
+:104650000FEF13ED20E3015010402040E1F700C0C0
+:1046600000000E94071E51C00E9448240E944B1265
+:104670000E94440B4AC09091DA01892F8095817085
+:1046800080FB90F929F0966098609093DA0140C021
+:10469000997F977F9093DA0138C08091DA0182FB8D
+:1046A000222720F991E0922790FB82F98093DA018A
+:1046B000992359F18091DA0181608093DA0125C054
+:1046C0008091DA0183FB222720F991E0922790FB69
+:1046D00083F9ECCF895301C08D5141E050E060E097
+:1046E00070E08A019B0104C0000F111F221F331FBD
+:1046F0008A95D2F7C901B80104C061E070E080E09A
+:1047000090E00E94A41A0E94E41681E001C080E0BB
+:104710001F910F91089580E0089580E00895CF9350
+:10472000C82F8091EA01813079F018F08230E9F1E8
+:1047300087C0E0910E01F0910F018081813169F015
+:10474000823209F07FC009C0E0910E01F0910F01A3
+:104750008081813111F0823261F48C2F0E948B2391
+:10476000811104C08C2F0E94C4221DC081E090E002
+:104770001AC08C2F0E948D23811114C0C43179F08E
+:1047800048F4CB3079F0C03109F060C082E080930A
+:10479000EA0108C0C93219F0C83321F057C010929D
+:1047A000EA0154C081E0817053C0C93289F118F523
+:1047B000C43171F1A8F4C73009F046C08AE0809393
+:1047C000150194E19093140193E090931301809369
+:1047D000120188E08093110188E28093100134C0B7
+:1047E000CE51C63088F5EC2FF0E0E65DFE4F8081BB
+:1047F0008093E90129C0CE34E9F020F4CB3421F5CF
+:104800006AE013C0C13579F0C235F1F461E00DC042
+:104810008091E901882319F01092E90115C081E027
+:104820008093EA0115C061E006C08091E9010E9411
+:10483000FE210AC06AE08091E9010E94742204C04E
+:104840001092EA0180E004C081E002C080E0ABCFBA
+:10485000CF910895E1E8F0E08081886080838081D5
+:10486000816080838FB7F89493E09093890090EDF6
+:10487000909388008FBF0895EFE6F0E0808182601A
+:1048800080830895EFE6F0E080818D7F8083089536
+:10489000EFE6F0E0908182E08927808308951F92FF
+:1048A0000F920FB60F9211242F933F934F935F9364
+:1048B0006F937F938F939F93AF93BF93EF93FF93E8
+:1048C0008091EB019091EC0101969093EC01809323
+:1048D000EB01811103C082E00E94440BE091EC01E6
+:1048E000E695E695F0E0ED5AF64FE4918091EB0104
+:1048F0008E1303C080E00E94440BFF91EF91BF91A3
+:10490000AF919F918F917F916F915F914F913F9167
+:104910002F910F900FBE0F901F90189504D06894A0
+:10492000B1118DC0089570D088F09F5790F0B92FC5
+:104930009927B751A0F0D1F0660F771F881F991FF4
+:104940001AF0BA95C9F712C0B13081F077D0B1E052
+:10495000089574C0672F782F8827B85F39F0B93F62
+:10496000CCF3869577956795B395D9F73EF49095F6
+:104970008095709561957F4F8F4F9F4F0895E89474
+:1049800009C097FB3EF490958095709561957F4F97
+:104990008F4F9F4F9923A9F0F92F96E9BB27939545
+:1049A000F695879577956795B795F111F8CFFAF455
+:1049B000BB0F11F460FF1BC06F5F7F4F8F4F9F4F86
+:1049C00016C0882311F096E911C0772321F09EE8E4
+:1049D000872F762F05C0662371F096E8862F70E04A
+:1049E00060E02AF09A95660F771F881FDAF7880F24
+:1049F0009695879597F9089557FD9058440F551F40
+:104A000059F05F3F71F04795880F97FB991F61F050
+:104A10009F3F79F087950895121613061406551FC7
+:104A2000F2CF4695F1DF08C0161617061806991F33
+:104A3000F1CF86957105610508940895E894BB2728
+:104A400066277727CB0197F908950BD078C069D0F6
+:104A500028F06ED018F0952309F05AC05FC01124D9
+:104A6000EECFCADFA0F3959FD1F3950F50E0551F0D
+:104A7000629FF001729FBB27F00DB11D639FAA27B3
+:104A8000F00DB11DAA1F649F6627B00DA11D661F02
+:104A9000829F2227B00DA11D621F739FB00DA11D23
+:104AA000621F839FA00D611D221F749F3327A00DDD
+:104AB000611D231F849F600D211D822F762F6A2F79
+:104AC00011249F5750408AF0E1F088234AF0EE0FFE
+:104AD000FF1FBB1F661F771F881F91505040A9F70B
+:104AE0009E3F510570F014C0AACF5F3FECF3983E93
+:104AF000DCF3869577956795B795F795E7959F5F72
+:104B0000C1F7FE2B880F911D9695879597F908950B
+:104B100097F99F6780E870E060E008959FEF80EC70
+:104B2000089500240A941616170618060906089513
+:104B300000240A9412161306140605060895092E79
+:104B40000394000C11F4882352F0BB0F40F4BF2BE8
+:104B500011F460FF04C06F5F7F4F8F4F9F4F089528
+:104B600097FB072E16F4009407D077FD09D00E941A
+:104B7000CA2507FC05D03EF4909581959F4F089576
+:104B8000709561957F4F0895EE0FFF1F0590F4918A
+:104B9000E02D0994AA1BBB1B51E107C0AA1FBB1F34
+:104BA000A617B70710F0A61BB70B881F991F5A95B9
+:104BB000A9F780959095BC01CD010895F999FECF94
+:104BC00092BD81BDF89A992780B50895A8E1B0E01B
+:104BD00042E050E00C940626262FF999FECF92BDB4
+:104BE00081BDF89A019700B4021639F01FBA20BDB2
+:104BF0000FB6F894FA9AF99A0FBE08950196272FE6
+:104C00000E94ED250C94EC25DC01CB01FC01F99907
+:104C1000FECF06C0F2BDE1BDF89A319600B40D9208
+:0C4C200041505040B8F70895F894FFCFC1
+:104C2C000220460BD40BB10B7D0B490B0101C701C4
+:104C3C0028080A03140A3F4D36391409C70891088D
+:104C4C005808EB0704081D08360801020304050682
+:044C5C00070809003C
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/tm2030/keymap.c b/keyboards/ergodox_ez/keymaps/tm2030/keymap.c new file mode 100644 index 000000000..ca8075226 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/tm2030/keymap.c @@ -0,0 +1,242 @@ +/* TypeMatrix-2030-like keymap */ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "led.h" + +#define BASE 0 // default layer +#define DVRK 1 // Dvorak layer +#define NUMR 8 // numeric layer +#define FNLR 9 // fn layer + +#define MDBL0 1 +#define MFNLR 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | Del | | Del | 6 | 7 | 8 | 9 | 0 | ] | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T |Backsp| |Backsp| Y | U | I | O | P | [ | + * |--------+------+------+------+------+------|ace | |ace |------+------+------+------+------+--------| + * | LShift | A | S | D | F | G |------| |------| H | J | K | L | ; | '/Shift| + * |--------+------+------+------+------+------|Enter | |Enter |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | \/Shift| + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |LCtrl | fn | LGui | Play |App/Alt| | RAlt | - | Home | = |End/Ctl| + * `-----------------------------------' `-----------------------------------' + * ,--------------. ,-------------. + * |Esc/Alt| num | | Left |Right | + * ,------+-------+------| |------+------+------. + * | | | PgUp | | Up | | | + * |Space |LShift |------| |------|RShift|Space | + * | | | PgDn | | Down | | | + * `---------------------' `--------------------' + */ +// 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_DELT, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPC, + KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT, + KC_LCTL, M(MFNLR), KC_LGUI,KC_MPLY,ALT_T(KC_APP), + + ALT_T(KC_ESC), TG(NUMR), + KC_PGUP, + KC_SPC, KC_LSFT, KC_PGDN, + + // right hand + KC_DELT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC, + KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, SFT_T(KC_QUOT), + KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_BSLS), + KC_RALT, KC_MINS, KC_HOME, KC_EQL, CTL_T(KC_END), + + KC_LEFT, KC_RGHT, + KC_UP, + KC_DOWN, KC_RSFT, KC_SPC + ), +/* Dvorak layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | Del | | Del | 6 | 7 | 8 | 9 | 0 | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | ' | , | . | P | Y |Backsp| |Backsp| F | G | C | R | L | / | + * |--------+------+------+------+------+------|ace | |ace |------+------+------+------+------+--------| + * | LShift | A | O | E | U | I |------| |------| D | H | T | N | S | -/Shift| + * |--------+------+------+------+------+------|Enter | |Enter |------+------+------+------+------+--------| + * | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | \/Shift| + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * |LCtrl | fn | LGui | Play |App/Alt| | RAlt | [ | Home | ] |End/Ctl| + * `-----------------------------------' `-----------------------------------' + * ,--------------. ,-------------. + * |Esc/Alt| num | | Left |Right | + * ,------+-------+------| |------+------+------. + * | | | PgUp | | Up | | | + * |Space |LShift |------| |------|RShift|Space | + * | | | PgDn | | Down | | | + * `---------------------' `--------------------' + */ +// If it accepts an argument (i.e, is a function), it doesn't need KC_. +// Otherwise, it needs KC_* +[DVRK] = KEYMAP( // layer 0 : default + // left hand + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_DELT, + KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_BSPC, + KC_LSFT, KC_A, KC_O, KC_E, KC_U, KC_I, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_ENT, + KC_LCTL, M(MFNLR), KC_LGUI, KC_MPLY, ALT_T(KC_APP), + + ALT_T(KC_ESC), TG(NUMR), + KC_PGUP, + KC_SPC, KC_LSFT, KC_PGDN, + + // right hand + KC_DELT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, + KC_BSPC, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, + KC_D, KC_H, KC_T, KC_N, KC_S, SFT_T(KC_MINS), + KC_ENT, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_T(KC_BSLS), + KC_RALT, KC_LBRC, KC_HOME, KC_RBRC, CTL_T(KC_END), + + KC_LEFT, KC_RGHT, + KC_UP, + KC_DOWN, KC_RSFT, KC_SPC + ), +/* 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 +[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(MDBL0),KC_PDOT, CTL_T(KC_PENT), + + KC_NLCK, KC_CAPS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +/* fn layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | |Insert| |Insert|Eject |Power |Sleep | Wake |PrtScr|ScrollLk| + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | |VolUp | | | | | | | | Pause | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | Calc | Mail |Browsr|------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | cut | copy |paste | Mute |VolDn | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | Next | | | + * | Mute | |------| |------| | | + * | | | | | Prev | | | + * `--------------------' `--------------------' + */ +// MEDIA AND MOUSE +[FNLR] = KEYMAP( + KC_TRNS, 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, + KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_MAIL, KC_WHOM, + KC_TRNS, KC_TRNS, LSFT(KC_DELT),LCTL(KC_INS),LSFT(KC_INS), KC_MUTE, KC_VOLD, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_MUTE, KC_TRNS, KC_TRNS, + // 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_MPRV, + KC_MNXT, 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 MDBL0: + if (record->event.pressed) { + return MACRO( I(25), T(P0), T(P0), END ); + } + break; + case MFNLR: + layer_invert(NUMR); + layer_invert(FNLR); + 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 << NUMR)) { + ergodox_right_led_1_on(); + } + // led 2: Dvorak layer + if (default_layer_state == 1 << DVRK) { + 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_ez/keymaps/tonyabra_osx/compiled.hex b/keyboards/ergodox_ez/keymaps/tonyabra_osx/compiled.hex new file mode 100644 index 000000000..336362a58 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/tonyabra_osx/compiled.hex @@ -0,0 +1,1158 @@ +:100000000C947A020C94BE020C94BE020C94BE02B4
+:100010000C94BE020C94BE020C94BE020C94BE0260
+:100020000C94BE020C94BE020C94620D0C94340E1F
+:100030000C94BE020C94BE020C94BE020C94BE0240
+:100040000C94BE020C943E220C94BE020C94BE0290
+:100050000C94BE020C94D11B0C94BE020C94BE02F4
+:100060000C94BE020C94BE020C94BE020C94BE0210
+:100070000C94BE020C94BE020C94BE020C94BE0200
+:100080000C94BE020C94BE020C94BE020C94BE02F0
+:100090000C94BE020C94BE020C94BE020C94BE02E0
+:1000A0000C94BE020C94BE020C94BE02A10EC30EB0
+:1000B000B10FC30EB10F080F2B0FB10F800F930FAD
+:1000C0006212621291129112C712E71218141814D8
+:1000D000F2121814A213A2130914181418141214EB
+:1000E000AF13AF13AF13AF13AF13AF13AF13AF1300
+:1000F000AF13AF13AF13AF13AF13AF13AF13AF13F0
+:10010000C113CE13D513DC13E6130000F0A12900B0
+:100110002B002A00E100015400001E00140004001E
+:100120001D0035004D001F001A0016001B002F0097
+:100130002A00200008000700060030002C002100E3
+:1001400015000900190034004A00220017000A00B7
+:10015000050000004C002E0001540000E3000000E8
+:10016000E2002D0001540000E3000000E60023003F
+:100170001C000B0011000000E400240018000D001A
+:10018000100050004B0025000C000E0036005200FD
+:100190002800260012000F00370051002B00270016
+:1001A0001300330038004F004E00280031003400A7
+:1001B000E5000254000001000100010001000100FF
+:1001C00000003A001E0220022202010001003B0052
+:1001D0001F0221022302010001003C002F0226021F
+:1001E0002F00010001003D00300227023000010015
+:1001F00001003E003102350035020000010001001F
+:1002000001000000010000000100010001000000E9
+:100210000100000001003F005200510024020000D4
+:1002200001004000240021001E00010001004100E7
+:10023000250022001F003700010042002600230095
+:10024000200027000100430025022E0231002E006D
+:100250000100440045000100010001000000010010
+:100260000100010001000100000001000100010087
+:1002700001000100010001000100F2000100010085
+:1002800001000100F000F1000100F4000100010094
+:100290000100F3000100F500010001000100010070
+:1002A0000100000001000100010000000100000049
+:1002B0000100010001000000010000000100010038
+:1002C0000100010001000000010001000100010027
+:1002D0000100A9000100010001000100AC00AA001A
+:1002E000B600010001000100AB00A8000100010000
+:1002F0000100010001000100010001000100AE0049
+:1003000001000100000016034500720067006F0045
+:1003100044006F007800200045005A0000001603DA
+:100320004500720067006F0044006F0078002000F5
+:1003300045005A0000000403090409026D0004018D
+:1003400000A0FA09040000010301010009211101C4
+:100350000001223F000705810308000A090401008B
+:100360000103010200092111010001224D000705CE
+:10037000820308000A0904020001030000000921A9
+:10038000110100012236000705830308000A090451
+:1003900003000103000000092111010001223900BE
+:1003A000070584031000011201100100000008ED90
+:1003B000FE071301000102000105010906A1010564
+:1003C0000719E029E7150025019508750181020547
+:1003D000081901290595057501910295017503918B
+:1003E0000105071900297715002501957875018108
+:1003F00002C005010980A101850216010026B7008F
+:100400001A01002AB700751095018100C0050C097A
+:1004100001A1018503160100269C021A01002A9CF5
+:1004200002751095018100C005010902A1010901B1
+:10043000A10005091901290515002501950575017A
+:10044000810295017503810105010930093115818A
+:10045000257F95027508810609381581257F95014C
+:1004600075088106050C0A38021581257F950175EE
+:10047000088106C0C005010906A101050719E02988
+:10048000E715002501950875018102950175088120
+:100490000105081901290595057501910295017558
+:1004A0000391010507190029FF150025FF95067521
+:1004B000088100C0000000000000000000000001F2
+:1004C0000204060A0F17202C3A4A5D71879DB3C7B4
+:1004D000DAE9F5FCFFFCF5E9DAC7B39D87715D4AFF
+:1004E0003A2C20170F0A0604020100000000000049
+:1004F0000000000011241FBECFEFDAE0DEBFCDBF49
+:1005000004B603FE24C08091FB019091FC01A091F0
+:10051000FD01B091FE018730904BA740B04BB9F47C
+:100520001092FB011092FC011092FD011092FE014D
+:1005300014BE84B7877F84BF88E10FB6F894809398
+:100540006000109260000FBEE0E0FFE3099511E04B
+:10055000A0E0B1E0EAE0F8E402C005900D92A43317
+:10056000B107D9F711E0A4E3B1E001C01D92AB3FA0
+:10057000B107E1F70E94A60A0C9403240C94000032
+:100580001092B9008AE08093B800089594EA90939D
+:10059000BC009091BC0097FFFCCF9091B900987F70
+:1005A000983021F0903111F081E008958093BB00E4
+:1005B00084E88093BC008091BC0087FFFCCF8091D1
+:1005C000B900887F883111F0803471F780E0089598
+:1005D00084E98093BC008091BC0084FDFCCF089529
+:1005E0008093BB0084E88093BC008091BC0087FFAF
+:1005F000FCCF9091B900987F81E0983209F480E0B7
+:10060000089584E88093BC008091BC0087FFFCCFF4
+:100610008091BB00089580910101811115C080E493
+:100620000E94C6028093010181110CC082E10E94E8
+:10063000F00280930101811105C08FEF0E94F0024A
+:10064000809301010E94E80284B1807F84B985B162
+:10065000807F85B98AB1837F8AB98BB1837F8BB95B
+:100660003E98469808950E94C604809301010E9416
+:100670000B0380B38C7080BB81B3836F81BBA5E318
+:10068000B1E0E3E4F1E08EE08E0F11921D928E1343
+:10069000FCCF0C94B004BF92CF92DF92EF92FF9206
+:1006A0000F931F93CF93DF9380910101882379F0FB
+:1006B000809134018F5F80933401811108C00E94C2
+:1006C000C60480930101811102C00E94580405E311
+:1006D00011E0C0E0D0E0DD24D39482E0C82EEE2407
+:1006E000E394F12CC730D10500F58091010181110F
+:1006F00064C080E40E94C60280930101811112C08F
+:1007000082E10E94F0028093010181110BC0C701B8
+:100710000C2E01C0880F0A94EAF780950E94F0021F
+:10072000809301010E94E80248C0CA30A1F028F479
+:10073000C83059F0C93061F005C0CC3089F070F094
+:10074000CD3089F0209A289810C0219A29980DC0A0
+:10075000229A2A980AC0239A2B9807C0529A01C05D
+:10076000539A5B9802C03E9A469890EA9A95F1F7A0
+:100770009FB1799902C082E001C080E091709D250F
+:10078000982B7C9902C084E001C080E0892B7D9980
+:1007900002C038E001C030E0832B7E9902C020E126
+:1007A00001C020E0822B9FB19095991F9927991F36
+:1007B0009295990F907E892B0FC080910101811134
+:1007C00049C080E40E94C60280930101882379F128
+:1007D000B12C0E94E8028B2DF8019081981719F036
+:1007E0008083C09200010E940B0321960F5F1F4F70
+:1007F000CE30D10509F076CF80910001882361F1D8
+:10080000815080930001882339F08FE99FE00197A0
+:10081000F1F700C0000020C0A3E4B1E0E5E3F1E09F
+:10082000CF01825F91919D938E13FCCF15C083E120
+:100830000E94F002809301018111CACF81E40E94DD
+:10084000C602809301018111C3CF0E940103B82E1B
+:10085000B094BFCF80E0C0CF0E94560481E0DF910A
+:10086000CF911F910F91FF90EF90DF90CF90BF90AD
+:100870000895E82FF0E0ED5BFE4F80810895089524
+:100880000F931F93CF93DF93C3E4D1E010E00C2FBD
+:10089000025F899190E00E94F71A180F0C13F9CFAC
+:1008A000812FDF91CF911F910F9108950C94260510
+:1008B00056985E9825982D9826982E9827982F98C8
+:1008C0008FEF90E0909389008093880090938B0045
+:1008D00080938A0090938D0080938C00259A2D9AA6
+:1008E0002FEF80E792E0215080409040E1F700C078
+:1008F0000000269A2E9A2FEF80E792E02150804048
+:100900009040E1F700C00000279A2F9A2FEF80E770
+:1009100092E0215080409040E1F700C0000025980F
+:100920002D982FEF80E792E0215080409040E1F732
+:1009300000C0000026982E982FEF80E792E021500B
+:1009400080409040E1F700C0000027982F9856980B
+:100950005E9825982D9826982E9827982F98089578
+:1009600089EA8093800089E08093810024982C9804
+:100970003F988AB18F748AB96E98479A8BB1806B11
+:100980008BB9769A0E9458040C94250580E28093D6
+:1009900001018091510181110EC00E94C00281E0CD
+:1009A000809351012FEF83ED90E3215080409040E0
+:1009B000E1F700C0000080E40E94C60280930101BC
+:1009C00081112EC00E94F00280930101811128C084
+:1009D0000E94F00280930101811122C08FE30E94E6
+:1009E000F0028093010181111BC00E94E80280E4A3
+:1009F0000E94C60280930101811112C08CE00E9406
+:100A0000F0028093010181110BC00E94F0028093DB
+:100A10000101811105C08FE30E94F0028093010162
+:100A20000E94E80280910101089561110BC0FC0150
+:100A30008281882321F085EE0E94061103C085EE95
+:100A40000E94CE1180E090E0089508956091BD016C
+:100A50007091BE018091BF019091C0010E94031B63
+:100A600056985E9825982D9826982E9827982F9816
+:100A7000813019F0823021F00895259A2D9A089539
+:100A8000269A2E9A089581E0089581E008950C94A5
+:100A9000450508950F931F93CF93DF938C01FC01BD
+:100AA000C081D181CE010E947C19BE010E94F30554
+:100AB000EC01B8010E944705882309F48DC0F801B4
+:100AC0008281882309F44AC080915D0181111FC091
+:100AD000C431F0E5DF0709F051C00E94490581E00B
+:100AE00080935D010E949B1B90935C0180935B014E
+:100AF0001092540110925601109255011092580113
+:100B00001092570110925A011092590165C08091BC
+:100B10005B0190915C010E94A71B883C910570F4D9
+:100B200080915401E82FF0E0EE0FFF1FEB5AFE4FCB
+:100B3000D183C0838F5F809354014EC0C43880E559
+:100B4000D80721F0C538D04501F13AC0F8018281BB
+:100B5000882341F01092520182E01EC0C438E0E5C3
+:100B6000DE0759F580915201811106C086E20E948C
+:100B7000061186E20E94CE1182E01CC0C438F0E566
+:100B8000DF0741F3C538D045D9F4F80182818823C5
+:100B900031F01092530180E20E941D121DC080911D
+:100BA0005301811106C087E20E94061187E20E946C
+:100BB000CE1180E20E9424120FC0C538D04529F31F
+:100BC00081E08093520180935301C801DF91CF915E
+:100BD0001F910F910C94430580E0DF91CF911F91FD
+:100BE0000F910895089596E0799FF001112494E5FE
+:100BF000899FE00DF11D1124E60FF11DEE0FFF1F7F
+:100C0000E25FFE4F859194910895880F991FFC0132
+:100C1000E657F040859194910895880F991FFC0143
+:100C2000E65FFE4F8591949108950F931F93CF93A4
+:100C3000DF93EC01811520E3920750F5C11580E2A6
+:100C4000D80708F0C3C0CB3BD10590F4C83AD10512
+:100C500008F06AC0C53AD10508F05BC0C430D105C0
+:100C600008F0D0C1219709F0CAC101E010E00AC222
+:100C7000CF3FD10511F008F0C5C1C03FD10508F044
+:100C8000A2C0CE01805E9109089708F4BBC1B7C12C
+:100C9000C13090E5D90709F4A2C020F5C0318FE436
+:100CA000D80770F4C11590E4D90708F094C0C115B5
+:100CB00021E3D20708F0A3C1DD278E01106CE2C149
+:100CC000C115D04509F09BC10E9483148FEF94E3B6
+:100CD0002CE0815090402040E1F700C000000E94CD
+:100CE000F61BD0C1C11597E5D90758F4C03121E5ED
+:100CF000D20708F01CC1C43180E5D80708F475C0DC
+:100D00007EC1CE0190578115904108F078C1DF7007
+:100D100073C1C53AD10509F477C1C63AD10509F0C6
+:100D200076C102E810E4AEC1C83AD10509F472C137
+:100D3000C93AD10509F471C1CA3AD10509F470C1A3
+:100D4000CB3AD10509F46FC1CC3AD10509F46EC193
+:100D5000CD3AD10509F46DC1C03BD10509F46CC190
+:100D6000CE3AD10509F46BC1CF3AD10509F46AC175
+:100D7000C13BD10509F469C1C23BD10509F468C181
+:100D8000C33BD10509F467C1C43BD10509F466C171
+:100D9000C53BD10509F465C1C63BD10509F464C161
+:100DA000C73BD10509F463C1C83BD10509F462C151
+:100DB000C93BD10509F461C1CA3BD10509F460C141
+:100DC00000E014E45FC18E0110655CC1CE019F702C
+:100DD0000E940D0658C1DF708E01106A53C18091C8
+:100DE000DA0181608093DA014DC10E949B1D81115F
+:100DF00002C00E94811D0E94B81D90E09093FB01EB
+:100E00008093FA01C23080E5D80721F48091FA017D
+:100E1000816086C0C43090E5D90721F48091FA0141
+:100E200082607EC0C63020E5D20721F48091FA01AD
+:100E3000846076C0C83080E5D80719F48091FA0143
+:100E400027C0CA3090E5D90721F48091FA0180616A
+:100E500067C0CC3020E5D20721F48091FA0180628E
+:100E60005FC0CE3080E5D80721F48091FA0180641C
+:100E700057C0C03190E5D90721F48091FA0180680C
+:100E80004FC0C23120E5D20729F48091FA01846075
+:100E9000886046C0C33080E5D80721F48091FA010C
+:100EA0008E7F3EC0C53090E5D90721F48091FA01CC
+:100EB0008D7F36C0C73020E5D20721F48091FA013A
+:100EC0008B7F2EC0C93080E5D80719F48091FA01D4
+:100ED00026C0CB3090E5D90721F48091FA018F7EAE
+:100EE0001FC0CD3020E5D20721F48091FA018F7D1B
+:100EF00017C0CF3080E5D80721F48091FA018F7BAD
+:100F00000FC0C13190E5D90721F48091FA018F77A4
+:100F100007C0C331D04531F48091FA018B7F877FC0
+:100F20008093FA018091FA010E94BC1DABC08D2F05
+:100F300099278F70992781309105D9F49E012370EC
+:100F4000332702C0880F991F2A95E2F79C688E010B
+:100F500044E0000F111F4A95E1F700271370802B22
+:100F6000912B53E0CC0FDD1F5A95E1F7C076DD27BA
+:100F70002FC08230910531F4DC2FCC278E01016F18
+:100F8000106A80C08330910569F4CE01837099277F
+:100F900001E010E002C0000F111F8A95E2F7C801BE
+:100FA0009C680FC084309105B9F4CE0183709927F5
+:100FB00001E010E002C0000F111F8A95E2F7C8019E
+:100FC0009A6823E0CC0FDD1F2A95E1F7C07ED77029
+:100FD0008C010C2B1D2B56C08530910531F4DC2F74
+:100FE000CC278E01046F106A4DC0069709F04AC0E5
+:100FF000CF71DD27DC2FCC278E01106243C000E0CB
+:1010000010E040C08E013EC001E810E43BC003E8A0
+:1010100010E438C002EE14E435C009EE14E432C026
+:101020000AEE14E42FC005EB14E42CC006EB14E424
+:1010300029C007EB14E426C00CEC14E423C00DEC2B
+:1010400014E420C003E815E41DC00AE815E41AC042
+:1010500002E915E417C004E915E414C001E216E43E
+:1010600011C003E216E40EC004E216E40BC005E270
+:1010700016E408C006E216E405C007E216E402C062
+:101080000AE216E4C801DF91CF911F910F910895F4
+:1010900096E0799FF001112494E5899FE00DF11D00
+:1010A0001124E60FF11DEE0FFF1FE25FFE4F859149
+:1010B0009491803E9105E0F4803C910558F5813390
+:1010C000910509F46FC048F48932910509F463C0B1
+:1010D0008A32910509F46DC072C089339105E9F037
+:1010E00082389105D1F08533910509F44DC067C070
+:1010F000833E910581F138F4803E9105B9F0823E3E
+:101100009105D9F05CC0863E910561F1873E91055D
+:10111000A1F155C00E94050608952091FA0120FD15
+:1011200002C021FF4CC080EE90E049C08091FA01DE
+:1011300080FFF9CF89E390E042C08091FA0182FFFD
+:101140000EC08091FA0184FF03C080E090E037C0B8
+:1011500083EE90E034C08091FA0182FFF2CF82EEFC
+:1011600090E02DC08091FA0183FF0BC08091FA01BD
+:1011700084FDEBCF87EE90E022C08091FA0183FFDF
+:10118000F5CF86EE90E01BC08091FA0185FF07C085
+:1011900089E290E014C08091FA0185FFF9CF85E3E0
+:1011A00090E00DC08091FA0186FF07C08AE290E0CE
+:1011B00006C08091FA0186FFF9CF81E390E00E949A
+:1011C0001506089508950C94E20880916E01089523
+:1011D000CF93DF9300D01F92CDB7DEB79C018091F3
+:1011E000F101843019F593E099833B832A8390932E
+:1011F000E9008FEF9091E800815095FD06C095EDD4
+:101200009A95F1F700008111F5CF8091E80085FFF4
+:101210000DC040E050E063E070E0CE0101960E9416
+:10122000520B8091E8008E778093E8000F900F902A
+:101230000F90DF91CF910895CF93DF9300D01F924D
+:10124000CDB7DEB72091F101243021F522E02983CA
+:101250009B838A8383E08093E9008FEF9091E8007D
+:10126000815095FD06C095ED9A95F1F7000081112A
+:10127000F5CF8091E80085FF0DC040E050E063E0CD
+:1012800070E0CE0101960E94520B8091E8008E77AB
+:101290008093E8000F900F900F90DF91CF91089509
+:1012A0002091F1012430F1F422E02093E9002FEFA6
+:1012B0003091E800215035FD06C035ED3A95F1F743
+:1012C00000002111F5CF2091E80025FF0BC040E080
+:1012D00050E065E070E00E94520B8091E8008E774C
+:1012E0008093E8000895CF93DF93EC019091F10192
+:1012F000943009F046C080910C018823D9F0809188
+:101300000D018823B9F09093E9008FEF9091E800E8
+:10131000815095FD06C095E19A95F1F70000811185
+:10132000F5CF8091E80085FF2CC040E050E060E1FF
+:1013300070E017C081E08093E9008FEF9091E800A2
+:10134000815095FD06C095ED9A95F1F70000811149
+:10135000F5CF8091E80085FF14C040E050E068E0E0
+:1013600070E0CE010E94520B8091E8008E7780934E
+:10137000E80080E1FE01AEE5B1E001900D928A95B2
+:10138000E1F7DF91CF9108958091F001811109C0BB
+:101390000E94E70C0E94440D8091E20084608093DB
+:1013A000E20008951092F001089508950C942B2204
+:1013B0000E948C1B0E9431220E94EA0F0C94E308C9
+:1013C00042E061EC81E00E94610C42E061EC82E06D
+:1013D0000E94610C42E061EC83E00E94610C42E1FA
+:1013E00061EC84E00C94610C8091F301833009F48A
+:1013F00055C030F4813071F0823009F48EC0089508
+:101400008A3009F47AC08B3009F460C0893009F061
+:101410009CC020C08091F201813A09F096C0809171
+:10142000E800877F8093E8008091F6019091F701B2
+:10143000892B21F460E18EE591E003C060E080E05B
+:1014400090E070E00E949D0B8091E8008B77809384
+:10145000E80008958091F201813209F076C0809110
+:10146000F6019091F701009719F0039709F06DC00C
+:101470008091E800877F8093E8008091E80082FDFA
+:1014800005C08091F1018111F8CF5FC08091F1001A
+:1014900080936E018091E8008B7753C08091F201B8
+:1014A000813A09F052C08091F6019091F701892BA1
+:1014B00009F04BC08091E800877F8093E80080911D
+:1014C000E80080FFFCCF80910C0136C08091F201D2
+:1014D0008132D9F58091F6019091F701892BA9F518
+:1014E0008091E800877F8093E8000E94960C8091AD
+:1014F000F40180930C010C9483148091F2018132E9
+:1015000021F58091E800877F8093E8000E94960C87
+:101510008091F50180936F0108958091F201813AE5
+:10152000A1F48091E800877F8093E8008091E80033
+:1015300080FFFCCF80916F018093F1008091E800E3
+:101540008E778093E8000C94960C089584B7877F7B
+:1015500084BF88E10FB6F894809360001092600019
+:101560000FBE90E080E80FB6F894809361009093EE
+:1015700061000FBE0E9439100E94E70C0E94440DCA
+:101580008091E20084608093E20078940E94CA0F08
+:101590000E943B1082E091E00E94E50F0E94192218
+:1015A0008091F101853069F40E94531B8091EF0115
+:1015B0008823B1F30E947E1B882391F30E943C0B89
+:1015C000EFCF0E944110ECCF292F33272330310574
+:1015D000C9F064F42130310581F02230310509F081
+:1015E00043C08DE690E02AE333E042C0213231056A
+:1015F000F1F02232310541F137C082E190E027EA73
+:1016000033E036C099278130910541F08230910551
+:1016100041F0892B49F5E6E3F3E005C0EEE1F3E0A4
+:1016200002C0E6E0F3E0849190E09F0121C06430C5
+:10163000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081A5
+:10164000318189E090E014C0643070F470E0FB01F7
+:10165000EE0FFF1FE65EFE4F20813181FB01EA5E47
+:10166000FE4F808190E004C080E090E020E030E018
+:10167000FA0131832083089580E189BD82E189BD2B
+:1016800009B400FEFDCF8091D8008F7D8093D800F3
+:101690008091E00082608093E0008091E00081FD15
+:1016A000FCCF0895CF92DF92EF92FF920F931F939A
+:1016B000CF93DF93EC018B016A010E94B50C81117D
+:1016C00033C0C114D10439F0F60180819181081B27
+:1016D000190BC80FD91FE12CF12C0115110519F1B7
+:1016E0008091E80085FD16C08091E8008E77809398
+:1016F000E800C114D10449F0F60180819181E80E1F
+:10170000F91EF182E08285E00FC00E94B50C8823AB
+:1017100021F30AC089918093F10001501109FFEF74
+:10172000EF1AFF0ADACF80E0DF91CF911F910F917E
+:10173000FF90EF90DF90CF9008952091F8013091C5
+:10174000F9012617370748F06115710539F4209122
+:10175000E8002E772093E80001C0B90140E0611550
+:101760007105A9F12091F101222309F443C025302C
+:1017700009F442C02091E80023FD40C02091E80018
+:1017800022FD32C02091E80020FFE9CF4091F30014
+:101790002091F20030E0342BFC01CF01611571057E
+:1017A00059F02830310540F481918093F100615067
+:1017B00071092F5F3F4FF1CF41E02830310509F02B
+:1017C00040E02091E8002E772093E800C8CF411137
+:1017D000C9CF0AC08091F101882361F0853061F0A2
+:1017E0008091E80083FD0AC08091E80082FFF2CF7B
+:1017F00080E0089582E0089583E0089581E00895EF
+:101800002091F8013091F9012617370748F061154A
+:10181000710539F42091E8002E772093E80001C08B
+:10182000B901FC0120E06115710591F18091F10190
+:10183000882309F440C0853009F43FC08091E80056
+:1018400083FD3DC08091E80082FD2FC08091E800BB
+:1018500080FFE9CF2091F3008091F20090E0922B7D
+:101860006115710559F08830910540F42491209359
+:10187000F1003196615071090196F2CF21E008978D
+:1018800009F020E08091E8008E778093E800CBCFCC
+:101890002111CCCF0AC08091F101882361F08530FD
+:1018A00061F08091E80083FD0AC08091E80082FF2A
+:1018B000F2CF80E0089582E0089583E0089581E00A
+:1018C0000895982F973058F59093E900981739F0BC
+:1018D0007091EC002091ED005091F00003C0242F96
+:1018E000762F50E021FF19C03091EB003E7F3093FE
+:1018F000EB003091ED003D7F3093ED003091EB0037
+:1019000031603093EB007093EC002093ED00509326
+:10191000F0002091EE0027FF07C09F5FD3CF8F70AC
+:101920008093E90081E0089580E008958091F201BC
+:1019300087FF11C08091E80082FD05C08091F10110
+:101940008111F8CF11C08091E8008B770BC0809196
+:10195000F101882349F08091E80080FFF8CF809161
+:10196000E8008E778093E80008952091E40030919C
+:10197000E50095E64091EC00842F817040FF22C085
+:101980008091E80080FD1CC08091F101882391F0D6
+:10199000853091F08091EB0085FD10C04091E4000E
+:1019A0005091E5004217530729F39A01915011F71E
+:1019B00084E0089582E0089583E0089581E0089529
+:1019C00080E008954091E80042FFDECF08950E9434
+:1019D000550D0E945D0DE0EEF0E080818160808316
+:1019E000E8EDF0E080818F77808319BCA7EDB0E04F
+:1019F0008C918E7F8C9380818F7E80831092F001FA
+:101A000008950F931F93CF93DF930E94550D0E946B
+:101A10005D0DC8EDD0E088818F77888388818068EC
+:101A2000888388818F7D888319BC1092F101109280
+:101A3000ED011092EF011092EE0100EE10E0F801BE
+:101A400080818B7F808388818160888342E060E031
+:101A500080E00E94610CE1EEF0E080818E7F808367
+:101A6000E2EEF0E080818160808380818860808305
+:101A7000F80180818E7F8083888180618883DF91F7
+:101A8000CF911F910F910895E8EDF0E080818F7E56
+:101A90008083E7EDF0E080818160808384E082BF15
+:101AA00081E08093F0010C94010DE8EDF0E080817D
+:101AB0008E7F80831092E20008951092DA001092D7
+:101AC000E10008951F920F920FB60F9211242F93E9
+:101AD0003F934F935F936F937F938F939F93AF93B6
+:101AE000BF93EF93FF938091E10082FF0BC0809141
+:101AF000E20082FF07C08091E1008B7F8093E100CC
+:101B00000E94C90F8091DA0080FF1FC08091D80029
+:101B100080FF1BC08091DA008E7F8093DA00809175
+:101B2000D90080FF0DC080E189BD82E189BD09B483
+:101B300000FEFDCF81E08093F1010E94C40905C041
+:101B400019BC1092F1010E94D2098091E10080FF3E
+:101B500019C08091E20080FF15C08091E2008E7F65
+:101B60008093E2008091E20080618093E2008091A6
+:101B7000D80080628093D80019BC85E08093F10181
+:101B80000E94D6098091E10084FF30C08091E2007C
+:101B900084FF2CC080E189BD82E189BD09B400FECB
+:101BA000FDCF8091D8008F7D8093D8008091E10097
+:101BB0008F7E8093E1008091E2008F7E8093E2002F
+:101BC0008091E20081608093E2008091ED018823A2
+:101BD00011F084E007C08091E30087FD02C081E03E
+:101BE00001C083E08093F1010E94D8098091E10057
+:101BF00083FF29C08091E20083FF25C08091E1002E
+:101C0000877F8093E10082E08093F1011092ED01E3
+:101C10008091E1008E7F8093E1008091E2008E7FD1
+:101C20008093E2008091E20080618093E20042E0D4
+:101C300060E080E00E94610C8091F00088608093F9
+:101C4000F0000E94D509FF91EF91BF91AF919F9154
+:101C50008F917F916F915F914F913F912F910F9055
+:101C60000FBE0F901F9018951F920F920FB60F92F4
+:101C700011242F933F934F935F936F937F938F9391
+:101C80009F93AF93BF93CF93DF93EF93FF93C09155
+:101C9000E900CF708091EC00D82FD17080FDD0E8A2
+:101CA0001092E9008091F000877F8093F000789493
+:101CB0000E94780E1092E9008091F0008860809375
+:101CC000F000CD2BCF70C093E900FF91EF91DF9131
+:101CD000CF91BF91AF919F918F917F916F915F91C4
+:101CE0004F913F912F910F900FBE0F901F9018951D
+:101CF0001F93CF93DF93CDB7DEB7AA970FB6F894B3
+:101D0000DEBF0FBECDBFE2EFF1E088E08E0F909115
+:101D1000F10091938E13FBCF0E94F4098091E800AB
+:101D200083FF1FC18091F2019091F301492F50E090
+:101D30004A30510508F015C1FA01EA5AFF4F0C94D8
+:101D4000B323803881F0823809F00BC18091F6010D
+:101D50008F708093E9008091EB0085FB882780F9E4
+:101D60001092E90006C08091EE019091EF0191116F
+:101D700082609091E800977F9093E8008093F10053
+:101D80001092F100C8C0282F2D7F09F0EAC08823E7
+:101D900019F0823061F0E5C08091F401813009F0E2
+:101DA000E0C0933009F080E08093EF012BC0809178
+:101DB000F401811127C08091F6018F7009F4D1C020
+:101DC0008093E9002091EB0020FF1CC0933021F4A8
+:101DD0008091EB00806214C09091EB009061909331
+:101DE000EB0021E030E0A90102C0440F551F8A95A5
+:101DF000E2F74093EA001092EA008091EB008860DD
+:101E00008093EB001092E9008091E800877F86C004
+:101E10008111A7C01091F4011F778091E3008078B1
+:101E2000812B8093E3008091E800877F8093E80016
+:101E30000E94960C8091E80080FFFCCF8091E30027
+:101E400080688093E300111102C082E001C083E04A
+:101E50008093F10186C08058823008F082C0809162
+:101E6000F4019091F5018C3D53E0950779F583E0FD
+:101E70008A838AE289834FB7F894DE01139620E0C3
+:101E80003EE051E2E32FF0E050935700E49120FF51
+:101E900003C0E295EF703F5FEF708E2F90E0EA3065
+:101EA00010F0C79601C0C0968D939D932F5F24318B
+:101EB00049F74FBF8091E800877F8093E8006AE28E
+:101EC00070E0CE0101960E949D0B14C0AE014F5FE1
+:101ED0005F4F6091F6010E94E40ABC01009709F48B
+:101EE00040C09091E800977F9093E80089819A81A3
+:101EF0000E94000C8091E8008B778093E80031C04D
+:101F0000803879F58091E800877F8093E8008091A0
+:101F1000ED018093F1008091E8008E778093E800D6
+:101F20000E94960C1EC081111CC09091F401923049
+:101F3000C0F48091E800877F8093E8009093ED01E2
+:101F40000E94960C8091ED01811106C08091E30002
+:101F500087FD02C081E001C084E08093F1010E940E
+:101F6000E0098091E80083FF0AC08091E800877F44
+:101F70008093E8008091EB0080628093EB00AA964A
+:101F80000FB6F894DEBF0FBECDBFDF91CF911F918A
+:101F900008950895CF938091F1018823A1F0C09115
+:101FA000E900CF709091EC00892F817090FD80E85E
+:101FB000C82B1092E9008091E80083FD0E94780E02
+:101FC000CF70C093E900CF910895909375018093ED
+:101FD00074010895E0917401F0917501309721F03A
+:101FE0000190F081E02D099480E00895E091740162
+:101FF000F0917501309721F00280F381E02D099472
+:102000000895E0917401F0917501309721F00480FA
+:10201000F581E02D099408952091720130917301AA
+:102020008217930771F09093730180937201E0918E
+:102030007401F0917501309721F00680F781E02D51
+:1020400009940895209170013091710182179307CE
+:1020500071F09093710180937001E0917401F0919F
+:102060007501309721F00084F185E02D09940895E1
+:1020700008950C9438100E94921B0E9433030C9414
+:10208000541C9F92AF92BF92CF92DF92EF92FF9239
+:102090000F931F93CF93DF9300D000D000D0CDB724
+:1020A000DEB70E944B030DE010E0AA24A394B12CEC
+:1020B000902E802F0E943904980129583E4F6901C3
+:1020C000F901F080F826A1F40150110988F78FEF8B
+:1020D00089838A831B820E949B1B8160782F9D834A
+:1020E0008C8349815A816B818D810E94D8102FC0C9
+:1020F0009091DA0191FF04C08E830E943F048E818B
+:1021000025E030E0A501022E01C0440F0A94EAF751
+:10211000E42E4F21C1F029839A828E2191E009F4A7
+:1021200090E09B830E949B1B8160782F9D838C8312
+:1021300049815A816B818D810E94D810F60180817E
+:10214000E826E08204C021503109E0F6BDCF0E94AC
+:102150003B1F109176010E94EA0F1817B9F00E94F8
+:10216000EA0F8093760126960FB6F894DEBF0FBE75
+:10217000CDBFDF91CF911F910F91FF90EF90DF9036
+:10218000CF90BF90AF909F900C94E30826960FB627
+:10219000F894DEBF0FBECDBFDF91CF911F910F919D
+:1021A000FF90EF90DF90CF90BF90AF909F900895F9
+:1021B000CF93DF93CDB7DEB72B970FB6F894DEBF82
+:1021C0000FBECDBF4F83588769877A878B87DE0123
+:1021D000119686E0FD0111928A95E9F785E0FE01EE
+:1021E000379601900D928A95E1F749815A816B816A
+:1021F0007C818D819E810E9421172B960FB6F894C9
+:10220000DEBF0FBECDBFDF91CF910895CF9388235E
+:1022100009F4C2C0C82F823859F40E94EA0F81FD28
+:10222000BBC089E30E94FB190E94C81A89E30CC055
+:10223000833879F40E94EA0F80FDAEC083E50E94E6
+:10224000FB190E94C81A83E50E943D1ACF910C9495
+:10225000C81A843859F40E94EA0F82FD9DC087E4B1
+:102260000E94FB190E94C81A87E4EECF8CEF8C0FF6
+:10227000813A48F48C2F0E947E2181118DC08C2FD1
+:102280000E94FB19E3CF80E28C0F883048F4C770BE
+:1022900081E001C0880FCA95EAF70E94811AD6CF63
+:1022A0008BE58C0F833078F4C53A29F0C63A31F0CB
+:1022B00083E890E005C081E890E002C082E890E009
+:1022C000CF910C940C1088E58C0F833108F064C01A
+:1022D000C83A39F1C93A41F1CA3A49F1CB3A51F118
+:1022E000CC3A59F1CD3A61F1C03B69F1CE3A71F186
+:1022F000CF3A79F1C13B81F1C23B89F1C33B91F106
+:10230000C43B99F1C53BA1F1C63BA9F1C73BB1F173
+:10231000C83BB9F1C93BC1F1CA3BC9F180E090E0CB
+:1023200038C082EE90E035C089EE90E032C08AEE8F
+:1023300090E02FC085EB90E02CC086EB90E029C0A8
+:1023400087EB90E026C08CEC90E023C08DEC90E011
+:1023500020C083E891E01DC08AE891E01AC082E9BC
+:1023600091E017C084E991E014C081E292E011C0CD
+:1023700083E292E00EC084E292E00BC085E292E03C
+:1023800008C086E292E005C087E292E002C08AE2DD
+:1023900092E0CF910C942210CF910895882309F4F4
+:1023A0004BC0823859F40E94EA0F81FF45C089E38F
+:1023B0000E94FB190E94C81A89E30CC0833871F48B
+:1023C0000E94EA0F80FF38C083E50E94FB190E943B
+:1023D000C81A83E50E943D1A0C94C81A843859F42F
+:1023E0000E94EA0F82FF28C087E40E94FB190E9426
+:1023F000C81A87E4EFCF9CEF980F913A58F390E218
+:10240000980F983050F4877091E001C0990F8A9529
+:10241000EAF7892F0E94871ADFCF9BE5980F933048
+:1024200020F480E090E00C940C10885A833120F462
+:1024300080E090E00C9422100895882321F00E94FF
+:10244000811A0C94C81A0895882321F00E94871AD3
+:102450000C94C81A08957F928F929F92AF92BF9268
+:10246000CF92DF92EF92FF920F931F93CF93DF9360
+:102470001F92CDB7DEB77C01C62E772EFC010581F9
+:1024800002950F70128111110E949E1A0E94F41978
+:10249000882379F0112369F080E28C0D883048F0B0
+:1024A00082E00E94DD190E94F41991E0D82ED9260D
+:1024B00001C0D12CE72DE295EF70F0E0E05AFF4F1C
+:1024C0000C94B323872D807F072D0F70882311F084
+:1024D0000295007F112389F0002309F490C180E266
+:1024E0008C0D883020F4802F0E94811A03C0802F29
+:1024F0000E94911A0E94C81A82C18C2D0E94CE118E
+:10250000002309F495C180E28C0D883020F4802FDF
+:102510000E94871A03C0802F0E94971A0E94C81A2F
+:1025200087C1972D907F872D8F70903211F0829503
+:10253000807FCC2021F0F1E0CF16B1F01EC0112336
+:1025400049F0002309F414C1013009F011C10E94BF
+:10255000B11A6EC1002319F0013009F469C18983F1
+:102560000E94B41A89810AC1112321F0023008F0B7
+:102570005FC1FEC001115CC101C1112321F0002324
+:1025800009F4F6C03CC1002309F4F8C03EC1872D10
+:1025900086958695837090E0009719F0019761F019
+:1025A00047C1112321F08C2D972D937002C080E03C
+:1025B00090E00E940C103CC1112321F08C2D972D2E
+:1025C000937002C080E090E00E94221031C18C2DF7
+:1025D000112319F00E94431E02C00E94AB1E0E94EC
+:1025E000301F26C1872D837009F052C0111120C100
+:1025F0008C2D829586958770880F880F9C2D9F70F3
+:10260000892E912CA12CB12C082E04C0880C991C69
+:10261000AA1CBB1C0A94D2F7C4FE14C00FE010E041
+:1026200020E030E0B901A80104C0440F551F661F27
+:10263000771F8A95D2F7CB01BA0160957095809586
+:10264000909503C060E070E0CB01272D269526957C
+:10265000237030E02230310569F02330310589F0F4
+:10266000682979298A299B292130310571F00E9436
+:102670006918DEC0682979298A299B290E94851852
+:10268000D7C00E946918C501B4010E944D18D0C07E
+:10269000112319F0872D817001C08695882309F4D4
+:1026A000C7C08C2D829586958770880F880F9C2DCA
+:1026B0009F70892E912CA12CB12C082E04C0880C5F
+:1026C000991CAA1CBB1C0A94D2F7C4FE14C00FE0CC
+:1026D00010E020E030E0B901A80104C0440F551F0C
+:1026E000661F771F8A95D2F7CB01BA016095709566
+:1026F0008095909503C060E070E0CB01272D269572
+:1027000026952370422F50E04230510569F0433046
+:10271000510589F0682979298A299B294130510579
+:1027200071F00E94431984C0682979298A299B295C
+:102730000E945F197DC00E944319C501B4010E9427
+:10274000271976C08C2D90E0FC01E05EF109E5319F
+:10275000F10508F050C0E059FF4F0C94B3230C2D45
+:102760000F70872D8F71112331F00E94C018802FB8
+:102770000E941D125DC00E94E118802F0E94241249
+:1027800057C0112339F0011153C0872D8F710E945A
+:1027900006194EC0023008F04BC0F7CF112339F0B4
+:1027A000872D8F710E94C01843C01123C9F3872D54
+:1027B0008F710E94E1183CC0112329F0872D8F7181
+:1027C0000E94AB1835C00E94A11832C0112351F0ED
+:1027D000172D1F71812F0E94C01863E0812F0E9466
+:1027E000D41926C081E00E94DD19023008F182E090
+:1027F0000E94DD191DC0112331F0002389F28C2DB8
+:102800000E94061115C0002391F28C2D0E94CE115A
+:102810000FC0472D4F706C2DC7010E9415050E94F7
+:10282000C51706C0472D4F706C2DC7010E94F205D9
+:10283000DD20F9F00E94D01980FD1BC0F701128243
+:102840000E94CA190E94C018C7010E9448140E9421
+:10285000CA190F90DF91CF911F910F91FF90EF90C8
+:10286000DF90CF90BF90AF909F908F907F900C940F
+:10287000E1180F90DF91CF911F910F91FF90EF9092
+:10288000DF90CF90BF90AF909F908F907F900895F2
+:102890000F931F93CF93DF93EC01888199812B8154
+:1028A0003C81232BB9F09F3F11F48F3F99F0CE016B
+:1028B0000E944A05882371F0688179818A810E948B
+:1028C000C6198C010E947B190E944218B801CE01E2
+:1028D0000E942B12DF91CF911F910F9108950E94BA
+:1028E0009E1A0E94AE1A0E94731A0E94C81A0E9471
+:1028F000E11F0E94301F80E090E00E940C1080E0F9
+:1029000090E00C9422100E948E1A0C946F140E9476
+:10291000BB19292F22952F7030E02C3031054CF453
+:102920002A3031056CF42250310922303105A8F4E7
+:1029300007C02C30310569F02F30310551F00DC042
+:10294000803F69F018F4803E40F409C0843F29F4C8
+:1029500006C093FB882780F9089580E0089581E000
+:102960000895CF93DF9300D000D01F92CDB7DEB78C
+:102970000F900F900F900F900F90DF91CF910895CF
+:10298000CF93DF9300D000D000D0CDB7DEB726962E
+:102990000FB6F894DEBF0FBECDBFDF91CF91089583
+:1029A0001F93CF93DF93C091850116E0809186013C
+:1029B000C81799F0D0E01C9FF0011D9FF00D112465
+:1029C000E957FE4F408151816281738184819581F5
+:1029D0000E94C0142196C770E9CFDF91CF911F915B
+:1029E00008954091B7015091B8016091B90170917B
+:1029F000BA018091BB019091BC010C94C0148091EC
+:102A0000BC0182958F7009F054C08091B901882370
+:102A100009F44FC080918501A09186016091B701B2
+:102A20007091B8014091BA015091BB01B6E08A178C
+:102A300009F43FC090E041155105C1F17F3F11F409
+:102A40006F3FA1F1B89FF001B99FF00D1124E95734
+:102A5000FE4F218172132AC02081621327C0228178
+:102A6000211124C0238134812417350710F421500B
+:102A70003109241B350B283C3105C0F42091BC01E1
+:102A80002F7020612093BC0126E0289FF001299F30
+:102A9000F00D1124E457FE4F80818F708061808398
+:102AA00087EB91E00E9448140C94D0140196877033
+:102AB000BECF0895CF92DF92EF92FF920F931F93B4
+:102AC000CF93DF93CDB7DEB762970FB6F894DEBF32
+:102AD0000FBECDBF8C0185E0F801DE011D9601908F
+:102AE0000D928A95E1F7D8014C9111965C9111975E
+:102AF00012966C9112971396CD90DC9014973091AA
+:102B0000B7017091B8018091BA019091BB01009713
+:102B100009F46BC17F3F19F43F3F09F466C1E090AF
+:102B2000B901EE2009F4C0C02091BC01C816D90635
+:102B300028F0F601E81BF90BCF0104C080959095B1
+:102B40008C0D9D1DFF24F394883C910578F0F12CA9
+:102B5000207F09F0C6C07C2DD98AC88A89890E9445
+:102B6000B11487EB91E00E944814B1C0822F807F9E
+:102B700009F046C0751314C0341312C0611110C09F
+:102B80002F7020612093BC010E94F11487EB91E02B
+:102B90000E9448148091BC01D80115968C932EC0D8
+:102BA000CD2819F15F3F11F44F3FF9F0F62E611176
+:102BB0001CC0809185012091860136E0821709F4BE
+:102BC0005AC090E0389FF001399FF00D1124E95769
+:102BD000FE4F7181571306C07081471303C0728185
+:102BE000711103C001968770E9CFF62E662309F4B0
+:102BF00018C18091BC0181608093BC01F12C11C18E
+:102C0000751308C0341306C0611104C08091BC0163
+:102C1000D801C3C04D875E878D859E856A8B0E94D3
+:102C200087146A898823E1F16623D1F12091BC01E0
+:102C3000822F82958F7090E0029774F08091B70197
+:102C40009091B80198878F831986DB86CA862C8776
+:102C5000CE0107960E94481486E0F801A7EBB1E088
+:102C600001900D928A95E1F70E94FF140E94F114E1
+:102C7000FF24F394D6C04D875E878D859E850E9484
+:102C8000BB19292F22952F7030E0223031050CF02E
+:102C9000BCC09F7009F0B6C0805E883008F4C1C027
+:102CA000C8010E944814E4CFC816D90608F453C0DE
+:102CB000F601E81BF90BCF01883C910508F450C0E0
+:102CC000F12C7C2DD98AC88A89890E94B114E7EB3E
+:102CD000F1E086E0DF011D928A95E9F70E94F11488
+:102CE000A0C0751314C0341312C0611110C08091BC
+:102CF000BC01F8018583C8010E94481486E0E7EB17
+:102D0000F1E0DF011D928A95E9F7FE2C8AC04D871C
+:102D10005E878D859E856A8B0E9487146A898823C9
+:102D200009F4BECF662309F4BBCF2091BC01822FEA
+:102D300082958F7090E002970CF48ECF8091B7014E
+:102D40009091B8019A8389831B82DD82CC822E8385
+:102D5000CE0101967FCF809590958C0D9D1DACCFB7
+:102D6000F62E662309F49CCF75132EC034132CC0A5
+:102D70002091BC0120FD1FC0822F82958F70D9F059
+:102D8000D80115962C9315978F3049F08F5F982FA7
+:102D90009295907F822F8F70892B15968C93C80106
+:102DA0000E94481486E0F801A7EBB1E001900D9273
+:102DB0008A95E1F793CF86E0F801A7EBB1E00190A7
+:102DC0000D928A95E1F72DC04D875E878D859E8592
+:102DD0000E948714811140CF8091BC018160809353
+:102DE000BC01C8010E9448141CC0662309F458CFD6
+:102DF0004D875E878D859E850E948714882309F400
+:102E00004FCF2ACF811148CF0CC0243031050CF0B0
+:102E100047CF9F7009F440CFF8019581907F09F06A
+:102E20003BCF8F2D62960FB6F894DEBF0FBECDBF9D
+:102E3000DF91CF911F910F91FF90EF90DF90CF9096
+:102E400008951F93CF93DF93CDB7DEB72C970FB6BE
+:102E5000F894DEBF0FBECDBF4F83588769877A874E
+:102E60008B879C87CE0107960E945A15882369F0AC
+:102E70008F8198852A853B85232BF1F19F3F09F0AF
+:102E800063C08F3F09F060C037C086E0FE0137960F
+:102E9000DE01119601900D928A95E1F76F81788598
+:102EA000EA85FB85309741F17F3F11F46F3F21F1B7
+:102EB0002091860130E0C9010196877099274091E1
+:102EC000850150E08417950709F447C069837A8328
+:102ED000FD83EC8396E0929FD001939FB00D112467
+:102EE000A957BE4FFE01319601900D929A95E1F7D8
+:102EF000809386010E94D01416E080918501909104
+:102F000086018917C1F1189FC001112489579E4F6E
+:102F10000E945A15882379F1E09185011E9FF001E6
+:102F20001124E957FE4F4081518162817381848170
+:102F300095810E94C0148091850190E00196877070
+:102F4000992780938501D9CF4F81588569857A85E6
+:102F50008B859C850E94C014CFCF0E948314109251
+:102F6000860110928501E7EBF1E086E0DF011D921A
+:102F70008A95E9F7C1CF2C960FB6F894DEBF0FBE45
+:102F8000CDBFDF91CF911F910895EF92FF920F93E4
+:102F90001F93CF93DF938C01009709F46CC0F12C41
+:102FA000EE24E394E8012196F8018491843740F4FB
+:102FB000843008F051C0813081F0823019F15BC05B
+:102FC000853709F444C0A8F19CE7980F903708F0C2
+:102FD00052C08F770E94CE1141C00E5F1F4FFE017D
+:102FE000C49180E28C0F883048F4C7708E2D01C0E8
+:102FF000880FCA95EAF70E94A11A14C08C2F0E946C
+:1030000006112DC00E5F1F4FFE01C49180E28C0F90
+:10301000883058F4C7708E2D01C0880FCA95EAF722
+:103020000E94A71A0E94C81A1AC08C2F0E94CE11A3
+:1030300016C00E5F1F4FFE01C491CC2381F08FE9B3
+:103040009FE00197F1F700C00000C150F6CF0E5F7E
+:103050001F4FFE01F49003C00E9406118E018F2DB8
+:10306000882309F49FCFEFE9FFE03197F1F700C023
+:1030700000008150F5CFDF91CF911F910F91FF900C
+:10308000EF90089508956093C1017093C2018093F9
+:10309000C3019093C4010C946F140F931F9300917C
+:1030A000C1011091C2012091C3013091C401DC0122
+:1030B000CB01802B912BA22BB32B8093C10190933A
+:1030C000C201A093C301B093C4011F910F910C944E
+:1030D0006F140F931F930091C1011091C2012091B1
+:1030E000C3013091C401DC01CB0180239123A223D1
+:1030F000B3238093C1019093C201A093C301B09305
+:10310000C4011F910F910C946F140F931F930091A2
+:10311000C1011091C2012091C3013091C401DC01B1
+:10312000CB0180279127A227B3278093C1019093D9
+:10313000C201A093C301B093C4011F910F910C94DD
+:103140006F141092BD011092BE011092BF01109237
+:10315000C0010C946F1441E050E060E070E004C0E6
+:10316000440F551F661F771F8A95D2F74093BD0104
+:103170005093BE016093BF017093C0010C946F1413
+:1031800041E050E060E070E004C0440F551F661F4E
+:10319000771F8A95D2F78091BD019091BE01A091D1
+:1031A000BF01B091C001482B592B6A2B7B2B409358
+:1031B000BD015093BE016093BF017093C0010C9498
+:1031C0006F1441E050E060E070E004C0440F551F10
+:1031D000661F771F8A95D2F7409550956095709538
+:1031E0008091BD019091BE01A091BF01B091C0013D
+:1031F000482359236A237B234093BD015093BE018A
+:103200006093BF017093C0010C946F1441E050E0D3
+:1032100060E070E004C0440F551F661F771F8A9559
+:10322000D2F78091BD019091BE01A091BF01B091F4
+:10323000C001482759276A277B274093BD01509337
+:10324000BE016093BF017093C0010C946F140F9383
+:103250001F930091BD011091BE012091BF013091DB
+:10326000C001DC01CB01802B912BA22BB32B8093CF
+:10327000BD019093BE01A093BF01B093C0011F9107
+:103280000F910C946F140F931F930091BD01109137
+:10329000BE012091BF013091C001DC01CB01802330
+:1032A0009123A223B3238093BD019093BE01A093E9
+:1032B000BF01B093C0011F910F910C946F140F9335
+:1032C0001F930091BD011091BE012091BF0130916B
+:1032D000C001DC01CB0180279127A227B32780936F
+:1032E000BD019093BE01A093BF01B093C0011F9197
+:1032F0000F910C946F140895CF92DF92EF92FF928A
+:103300000F931F93CF93DF938C01C090C101D09096
+:10331000C201E090C301F090C4018091BD01909181
+:10332000BE01A091BF01B091C001C82AD92AEA2AE2
+:10333000FB2ACFE1D0E0D701C6010C2E04C0B69520
+:10334000A795979587950A94D2F780FF06C0B80194
+:103350008C2F0E944808019721F4219760F780E0A4
+:1033600001C08C2FDF91CF911F910F91FF90EF90B3
+:10337000DF90CF900895CF93DF93EC010E947C19EA
+:10338000BE010E944808DF91CF910895CB010E94B1
+:10339000BB1908958091C5018595859585950895FA
+:1033A0008091C5018770089598E0899F900111244C
+:1033B000262B2093C5010C94C0182091C50180953F
+:1033C00082238093C501982F977069F430E0482FCD
+:1033D000552747FD50952417350729F08595859584
+:1033E00085950C94E11808959091C501977081E03E
+:1033F00009F480E0089590910C01992321F09091B7
+:103400000D01911109C020910E0130910F01F901B8
+:1034100032969FEF40E01FC0982F9695969596950F
+:103420009F3050F5E0910E01F0910F01E90FF11D71
+:10343000877021E030E0A90102C0440F551F8A9532
+:10344000E2F7CA019181892B818308959F3F39F06A
+:103450004F5F4E3041F051915813F8CF0DC05111CC
+:10346000F7CF942FF5CF9F3F39F0F901E90FF11D08
+:1034700097FDFA9582830895089590910C01992300
+:1034800021F090910D01911109C020910E01309110
+:103490000F01F9013296205F3F4F1FC0982F96957C
+:1034A000969596959F30F0F4E0910E01F0910F0102
+:1034B000E90FF11D877021E030E0A90102C0440F3F
+:1034C000551F8A95E2F7CA018095918189238183EE
+:1034D00008953196E217F30729F090819813F9CFF8
+:1034E0001082F7CF089581E090E0E0910E01F09115
+:1034F0000F01E80FF91F1082019680319105A9F79D
+:1035000008959091D901892B8093D90108958095D0
+:103510009091D90189238093D90108951092D901FE
+:1035200008959091D801892B8093D80108958095B2
+:103530009091D80189238093D80108951092D801E1
+:1035400008959091D701892B8093D7010895809594
+:103550009091D70189238093D70108951092D701C4
+:1035600008958093C60108951092C6010895809130
+:103570000E0190910F01FC0131969C01205F3F4F9D
+:1035800080E0919191118F5FE217F307D1F70895D1
+:10359000E0910E01F0910F018091D9018083E091BB
+:1035A0000E01F0910F0190818091D801892B8083C9
+:1035B000E0910E01F0910F0190818091D701892B4C
+:1035C00080838091C601882361F0E0910E01F09123
+:1035D0000F019081892B80830E94B71A811110926C
+:1035E000C60180910E0190910F010C94F60F20E01E
+:1035F000009739F0AC0141505109842395232F5F86
+:10360000F7CF822F0895CF92DF92EF92FF926C0155
+:10361000EE24FF24C114D104E104F10421F0C70118
+:10362000B60120E101C020E0C72ED82EE92EFF24EC
+:10363000C114D104E104F10419F0285FC701B601F7
+:103640006B017C0154E0F694E794D794C7945A95A3
+:10365000D1F7C114D104E104F10419F02C5FC701C2
+:10366000B6016B017C0142E0F694E794D794C794CD
+:103670004A95D1F7C114D104E104F10419F02E5F89
+:10368000C701B601DC01CB01B695A7959795879543
+:10369000892B8A2B8B2B09F02F5F822FFF90EF90C5
+:1036A000DF90CF9008958091F101843021F1109244
+:1036B000DB0120E488E190E00FB6F894A8958093B0
+:1036C00060000FBE2093600080E00E94E30883B793
+:1036D000817F846083BF83B7816083BF789488953E
+:1036E00083B78E7F83BF88E10FB6F8948093600024
+:1036F000109260000FBE0895089508950E947C1BEB
+:103700000E944B030E947D1B0E94400491E08111A6
+:1037100001C090E0892F08950E9483140E94EA0F4F
+:103720000C94E30882E084BD93E095BD9AEF97BDC9
+:1037300080936E0008952FB7F8948091DC019091EA
+:10374000DD01A091DE01B091DF012FBF0895CF927E
+:10375000DF92EF92FF920F931F932FB7F89440914F
+:10376000DC015091DD016091DE017091DF012FBF1E
+:103770006A017B01EE24FF248C0120E030E0C016BA
+:10378000D106E206F30610F4415051099A01281BB4
+:10379000390BC9011F910F91FF90EF90DF90CF90EF
+:1037A00008951F920F920FB60F9211248F939F933B
+:1037B000AF93BF938091DC019091DD01A091DE0178
+:1037C000B091DF010196A11DB11D8093DC019093A2
+:1037D000DD01A093DE01B093DF01BF91AF919F9116
+:1037E0008F910F900FBE0F901F9018950E94E70CBD
+:1037F000F8942FEF87EA91E6215080409040E1F75E
+:1038000000C0000087E090EBDC018093FB01909307
+:10381000FC01A093FD01B093FE019CE088E10FB68E
+:10382000F894A895809360000FBE90936000FFCF3E
+:10383000EF92FF920F931F93CF93DF93D82FCDE09A
+:103840008C2F0E94390405E010E0E82EF12CC7010E
+:10385000002E02C0959587950A94E2F780FF09C073
+:10386000602F7C2F80E00E94F305D81302C081E016
+:1038700006C00150110958F7C15010F780E0DF91E0
+:10388000CF911F910F91FF90EF900895CF93C82F84
+:103890008CE20E94181C882321F08C2FCF910C946D
+:1038A000181C80E0CF910895CF930E949B1D811139
+:1038B00002C00E94811DC5E6C15049F00E944B0321
+:1038C0008FE39CE90197F1F700C00000F5CF89E292
+:1038D0000E94461C811113C18AE20E94461C81117C
+:1038E0000E94811D85E00E94461C81110E94F61BEA
+:1038F0000E94A61D8093DA0187E00E94461C88235F
+:10390000A9F18BE10E94461C882351F08091DA01D5
+:1039100081FB222720F991E0922790FB81F90EC0CC
+:103920008EE00E94461C882361F08091DA0182FBC0
+:10393000222720F991E0922790FB82F98093DA0107
+:1039400015C080E10E94461C9091DA01882341F065
+:1039500093FB222720F981E0822780FB93F904C0A2
+:10396000892F809580FB90F99093DA018091DA019C
+:103970000E94AA1D0E94B81D8093FA0180EE0E9449
+:10398000461C882341F08091FA01982F909590FB76
+:1039900080F98093FA0189E30E94461C882359F03C
+:1039A0008091FA0181FB222720F991E0922790FB78
+:1039B00081F98093FA0182EE0E94461C882359F017
+:1039C0008091FA0182FB222720F991E0922790FB57
+:1039D00082F98093FA0186EE0E94461C882359F0F2
+:1039E0008091FA0183FB222720F991E0922790FB36
+:1039F00083F98093FA0183EE0E94461C882359F0D4
+:103A00008091FA0184FB222720F991E0922790FB14
+:103A100084F98093FA0185E30E94461C882359F0BB
+:103A20008091FA0185FB222720F991E0922790FBF3
+:103A300085F98093FA0181E30E94461C882359F09E
+:103A40008091FA0186FB222720F991E0922790FBD2
+:103A500086F98093FA0181E10E94461C882359F07F
+:103A60008091FA0187FB222720F991E0922790FBB1
+:103A700087F98093FA018091FA010E94BC1D809120
+:103A8000FA0187FB882780F980930D0187E20E9465
+:103A9000461CC82F8EE10E94461C8111C2608FE136
+:103AA0000E94461C8111C46080E20E94461C811164
+:103AB000C86081E20E94461C8111C06182E20E94BE
+:103AC000461C8111C06283E20E94461C8111C064C1
+:103AD00084E20E94461C882311F0C06802C0CC23F7
+:103AE00029F08C2F0E94B31D6C2F03C00E94AF1DC4
+:103AF000682F70E080E090E0CF910C944318CF9154
+:103B000008956DEE7EEF80E090E00E94ED2360E08E
+:103B100082E090E00E94DB2360E083E090E00E947E
+:103B2000DB2360E084E090E00E94DB2360E085E03E
+:103B300090E00C94DB2380E090E00E94D52321E00C
+:103B40008D3E9E4F09F020E0822F089582E090E0A4
+:103B50000C94CD23682F82E090E00C94DB2383E06B
+:103B600090E00C94CD23682F83E090E00C94DB234D
+:103B700084E090E00C94CD23682F84E090E00C94D6
+:103B8000DB238091E20180FF0BC06091130185E08F
+:103B9000689FB001112475956795759567952BC041
+:103BA00081FF09C06091130185E0689FB001112475
+:103BB0007595679520C082FF07C06091130185E06D
+:103BC000689FB001112417C09091E3019923D1F0AF
+:103BD00060911201961788F72091130185E0289FC4
+:103BE00090011124929FA001939F500D112470E029
+:103BF000CA010E949F236038710540F46115710568
+:103C000039F002C065E070E0862F08958FE70895CF
+:103C100081E008958091E20180FF08C06091110168
+:103C200070E0759567957595679521C081FF06C011
+:103C30006091110170E07595679519C082FF04C00D
+:103C40006091110170E010C09091E3019923C1F0DF
+:103C5000609110019617A0F780911101899FC00112
+:103C6000112470E00E949F236038710528F46115CB
+:103C7000710521F0862F08958FE7089581E008955A
+:103C800061E070E0F4CF803F21F40E94C11D819576
+:103C900004C0813F29F40E94C11D8093E60108956C
+:103CA000823F21F40E94C11D819504C0833F29F405
+:103CB0000E94C11D8093E5010895893F19F40E9477
+:103CC0000A1E05C08A3F31F40E940A1E8195809326
+:103CD000E70108958B3F21F40E940A1E819504C0DC
+:103CE0008C3F29F40E940A1E8093E8010895843FC6
+:103CF00021F48091E401816017C0853F21F4809117
+:103D0000E401826011C0863F21F48091E401846067
+:103D10000BC0873F21F48091E401886005C0883F93
+:103D200031F48091E40180618093E40108958D3F36
+:103D300021F48091E20181600BC08E3F21F48091DB
+:103D4000E201826005C08F3F29F48091E201846026
+:103D50008093E2010895803F39F48091E60187FF66
+:103D60006CC01092E60169C0813F29F48091E601A0
+:103D70001816BCF362C09091E501823F29F497FFC9
+:103D80005CC01092E50159C0833F19F41916CCF3B9
+:103D900054C0893F41F48091E70118160CF04DC0E2
+:103DA0001092E7014AC08A3F29F48091E70187FF1A
+:103DB00044C0F6CF8B3F39F48091E80187FF3DC0C6
+:103DC0001092E8013AC08C3F29F48091E80118165E
+:103DD000BCF333C0843F21F48091E4018E7F17C08F
+:103DE000853F21F48091E4018D7F11C0863F21F44D
+:103DF0008091E4018B7F0BC0873F21F48091E40127
+:103E0000877F05C0883F31F48091E4018F7E8093E5
+:103E1000E40113C08D3F21F48091E2018E7F0BC03D
+:103E20008E3F21F48091E2018D7F05C08F3F29F400
+:103E30008091E2018B7F8093E2018091E501811105
+:103E40000EC08091E60181110AC08091E7018111C5
+:103E500006C08091E801811102C01092E30108952B
+:103E600084EE91E00E9401100E949B1B9093E1015F
+:103E70008093E00108951F93CF93DF938091E00139
+:103E80009091E1010E94A71BAC019091E30199235D
+:103E900021F02091140130E006C0209115018AE044
+:103EA000289F900111244217530708F486C080917F
+:103EB000E501C091E601D091E7011091E80181117F
+:103EC00007C0C11176C0D11174C0111172C075C084
+:103ED0009F3F19F09F5F9093E301181624F40E940E
+:103EE000C11D8093E5018091E50187FF05C00E9417
+:103EF000C11D81958093E5011C1624F40E94C11D0B
+:103F00008093E6018091E60187FF05C00E94C11DF4
+:103F100081958093E6016091E501662339F1C091B6
+:103F2000E601CC2319F1772767FD7095872F972F2E
+:103F30000E94B02223E333E343E35FE30E941423B0
+:103F40000E947D226093E5016C2F772767FD7095B5
+:103F5000872F972F0E94B02223E333E343E35FE3ED
+:103F60000E9414230E947D226093E6011D1624F412
+:103F70000E940A1E8093E7018091E70187FF05C038
+:103F80000E940A1E81958093E701111624F40E9475
+:103F90000A1E8093E8018091E80187FF05C00E9416
+:103FA0000A1E81958093E801DF91CF911F910C94B7
+:103FB000301F9F3F09F08ECF96CFDF91CF911F9199
+:103FC0000895E4EEF1E085E0DF011D928A95E9F7BE
+:103FD0001092E3011092E2010895833081F128F4F8
+:103FE000813059F08230D1F00895853009F449C00C
+:103FF000B8F1863009F456C0089580911501262F36
+:1040000030E0280F311D2F3F310524F4680F6093F5
+:10401000150108958FEF8093150108958091140183
+:10402000262F30E0280F311D2F3F310524F4680F73
+:104030006093140108958FEF809314010895809187
+:104040001301262F30E0280F311D2F3F310524F4B6
+:10405000680F6093130108958FEF80931301089503
+:1040600080911201262F30E0280F311D2F3F31059E
+:1040700024F4680F6093120108958FEF809312016A
+:10408000089580911101262F30E0280F311D2F3F18
+:10409000310524F4680F6093110108958FEF809328
+:1040A0001101089580911001262F30E0280F311D55
+:1040B0002F3F310524F4680F6093100108958FEFAE
+:1040C000809310010895833011F128F4813049F074
+:1040D000823091F00895853081F120F18630C1F170
+:1040E000089580911501681720F4861B80931501AF
+:1040F000089510921501089580911401681720F415
+:10410000861B8093140108951092140108958091E4
+:104110001301681720F4861B8093130108951092F1
+:104120001301089580911201681720F4861B809373
+:1041300012010895109212010895809111016817DB
+:1041400020F4861B809311010895109211010895A7
+:1041500080911001681720F4861B80931001089548
+:104160001092100108950F931F938D3109F46BC0C5
+:1041700008F03FC08E3009F47FC0C0F4873009F4E6
+:1041800069C068F4863009F0B1C08091DA01817F9E
+:104190008E7F8093DA0181E08093EA01A8C08830A5
+:1041A00009F4A2C08B3009F49FC0A0C0863109F485
+:1041B0009BC078F4803109F472C0813109F096C057
+:1041C0000E94831490910D0181E0892780930D0155
+:1041D0008BC0893109F488C08B3109F087C0809188
+:1041E000DA0181FB222720F991E0922790FB81F9E7
+:1041F0004CC0853309F470C048F4873209F46CC0B0
+:1042000008F459C0893209F467C070C0833438F4A7
+:104210008A3308F04EC0883309F466C067C083341F
+:1042200009F45AC0883409F061C00E9483140FEF6A
+:1042300013ED20E3015010402040E1F700C00000E2
+:104240000E94F61B51C00E9437220E94EA0F0E9472
+:10425000E3084AC09091DA01892F8095817080FB34
+:1042600090F929F0966098609093DA0140C0997FA8
+:10427000977F9093DA0138C08091DA0182FB222780
+:1042800020F991E0922790FB82F98093DA0199233B
+:1042900059F18091DA0181608093DA0125C0809123
+:1042A000DA0183FB222720F991E0922790FB83F922
+:1042B000ECCF895301C08D5141E050E060E070E0E7
+:1042C0008A019B0104C0000F111F221F331F8A9512
+:1042D000D2F7C901B80104C061E070E080E090E06D
+:1042E0000E9443180E94831481E001C080E01F9166
+:1042F0000F91089580E0089580E00895CF93C82F2E
+:104300008091EA01813079F018F08230E9F187C0BC
+:10431000E0910E01F0910F018081813169F08232CC
+:1043200009F07FC009C0E0910E01F0910F0180817A
+:10433000813111F0823261F48C2F0E947A21811137
+:1043400004C08C2F0E94B3201DC081E090E01AC0F1
+:104350008C2F0E947C21811114C0C43179F048F463
+:10436000CB3079F0C03109F060C082E08093EA017F
+:1043700008C0C93219F0C83321F057C01092EA01C1
+:1043800054C081E0817053C0C93289F118F5C4313D
+:1043900071F1A8F4C73009F046C08AE08093150196
+:1043A00094E19093140193E0909313018093120190
+:1043B00088E08093110188E28093100134C0CE51CF
+:1043C000C63088F5EC2FF0E0E65DFE4F80818093EB
+:1043D000E90129C0CE34E9F020F4CB3421F56AE0BC
+:1043E00013C0C13579F0C235F1F461E00DC08091A0
+:1043F000E901882319F01092E90115C081E080934A
+:10440000EA0115C061E006C08091E9010E94ED1F3C
+:104410000AC06AE08091E9010E94632004C0109202
+:10442000EA0180E004C081E002C080E0ABCFCF9120
+:104430000895E1E8F0E08081886080838081816078
+:1044400080838FB7F89493E09093890090ED9093D8
+:1044500088008FBF0895EFE6F0E08081826080835E
+:104460000895EFE6F0E080818D7F80830895EFE688
+:10447000F0E0908182E08927808308951F920F9257
+:104480000FB60F9211242F933F934F935F936F9327
+:104490007F938F939F93AF93BF93EF93FF938091FD
+:1044A000EB019091EC0101969093EC018093EB016C
+:1044B000811103C082E00E94E308E091EC01E695DF
+:1044C000E695F0E0EC54FB4FE4918091EB018E1304
+:1044D00003C080E00E94E308FF91EF91BF91AF918C
+:1044E0009F918F917F916F915F914F913F912F910C
+:1044F0000F900FBE0F901F90189504D06894B111C3
+:104500008DC0089570D088F09F5790F0B92F9927EB
+:10451000B751A0F0D1F0660F771F881F991F1AF0CE
+:10452000BA95C9F712C0B13081F077D0B1E00895E3
+:1045300074C0672F782F8827B85F39F0B93FCCF364
+:10454000869577956795B395D9F73EF490958095C4
+:10455000709561957F4F8F4F9F4F0895E89409C0E4
+:1045600097FB3EF490958095709561957F4F8F4FA6
+:104570009F4F9923A9F0F92F96E9BB279395F695BC
+:10458000879577956795B795F111F8CFFAF4BB0F3A
+:1045900011F460FF1BC06F5F7F4F8F4F9F4F16C09E
+:1045A000882311F096E911C0772321F09EE8872F28
+:1045B000762F05C0662371F096E8862F70E060E0E4
+:1045C0002AF09A95660F771F881FDAF7880F96955D
+:1045D000879597F9089557FD9058440F551F59F046
+:1045E0005F3F71F04795880F97FB991F61F09F3FE0
+:1045F00079F087950895121613061406551FF2CF09
+:104600004695F1DF08C0161617061806991FF1CF58
+:1046100086957105610508940895E894BB2766277F
+:104620007727CB0197F908950BD078C069D028F08F
+:104630006ED018F0952309F05AC05FC01124EECF58
+:10464000CADFA0F3959FD1F3950F50E0551F629FED
+:10465000F001729FBB27F00DB11D639FAA27F00DDB
+:10466000B11DAA1F649F6627B00DA11D661F829F02
+:104670002227B00DA11D621F739FB00DA11D621FE7
+:10468000839FA00D611D221F749F3327A00D611D04
+:10469000231F849F600D211D822F762F6A2F1124E6
+:1046A0009F5750408AF0E1F088234AF0EE0FFF1F39
+:1046B000BB1F661F771F881F91505040A9F79E3F70
+:1046C000510570F014C0AACF5F3FECF3983EDCF3C5
+:1046D000869577956795B795F795E7959F5FC1F7AD
+:1046E000FE2B880F911D9695879597F9089597F958
+:1046F0009F6780E870E060E008959FEF80EC089588
+:1047000000240A94161617061806090608950024B0
+:104710000A9412161306140605060895092E03942A
+:10472000000C11F4882352F0BB0F40F4BF2B11F49E
+:1047300060FF04C06F5F7F4F8F4F9F4F089597FBBF
+:10474000072E16F4009407D077FD09D00E94B923F4
+:1047500007FC05D03EF4909581959F4F0895709584
+:1047600061957F4F0895EE0FFF1F0590F491E02DA6
+:104770000994AA1BBB1B51E107C0AA1FBB1FA617A8
+:10478000B70710F0A61BB70B881F991F5A95A9F7FA
+:1047900080959095BC01CD010895F999FECF92BD09
+:1047A00081BDF89A992780B50895A8E1B0E042E06C
+:1047B00050E00C94F523262FF999FECF92BD81BDD0
+:1047C000F89A019700B4021639F01FBA20BD0FB64F
+:1047D000F894FA9AF99A0FBE08950196272F0E942D
+:1047E000DC230C94DB23DC01CB01FC01F999FECF27
+:1047F00006C0F2BDE1BDF89A319600B40D92415069
+:0A4800005040B8F70895F894FFCF78
+:10480A000220E508730950091C09E8080101C701DB
+:10481A0028080A03140A3F4D363975042804F2039E
+:10482A00B9034C0365037E039703010203040506DB
+:04483A000708090062
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/tonyabra_osx/keymap.c b/keyboards/ergodox_ez/keymaps/tonyabra_osx/keymap.c new file mode 100644 index 000000000..87b9fb676 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/tonyabra_osx/keymap.c @@ -0,0 +1,184 @@ +#include "ergodox_ez.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 | = | | - | 6 | 7 | 8 | 9 | 0 | Enter | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | BkSp | A | S | D | F | G |------| |------| H | J | K | L | ; | '" | + * |--------+------+------+------+------+------| LGui | | LGui |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | L1 | ` | { | } | '" | | Left | Up | Down | Right| L2 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | Del | Alt | | Alt | Ctrl | + * ,------|------|------| |------+--------+------. + * | | | 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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, + KC_TAB, 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, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LGUI, + TG(SYMB), KC_GRV, KC_LBRC, KC_RBRC,KC_QUOT, + KC_DELT,KC_LALT, + KC_HOME, + KC_SPC,KC_BSPC,KC_END, + // right hand + KC_MINS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_ENT, + TG(SYMB), 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_LGUI, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, + KC_LEFT,KC_UP, KC_DOWN,KC_RIGHT, TG(MDIA), + KC_RALT, KC_RCTL, + 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| |------| |------| | | | | | 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) { + 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/tonyabra_osx/readme.md b/keyboards/ergodox_ez/keymaps/tonyabra_osx/readme.md new file mode 100644 index 000000000..f9d76efc2 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/tonyabra_osx/readme.md @@ -0,0 +1,5 @@ +# ErgoDox EZ OS X Simplified Configuration + +This keyboard configuration replaces the hyper and meh keys with the command key. It also removes all of the meta keys that require a "hold" because I found that I hesitate when I type, which can accidentally fire those combinations. On the upper left of the left hand, I mimicked the Mac placement of tab and escape, and on the upper right of the right hand, I placed an additional enter key for convenience when breezing through prompts. + +This is my standard working configuration for now, but I can see myself tweaking it as I use it more. I highly recommend you do the same.
\ No newline at end of file diff --git a/keyboards/ergodox_ez/keymaps/townk_osx/compiled.hex b/keyboards/ergodox_ez/keymaps/townk_osx/compiled.hex new file mode 100644 index 000000000..c8db30edf --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/townk_osx/compiled.hex @@ -0,0 +1,1171 @@ +:100000000C9495020C94D9020C94D9020C94D90248
+:100010000C94D9020C94D9020C94D9020C94D902F4
+:100020000C94D9020C94D9020C94670E0C94390FDD
+:100030000C94D9020C94D9020C94D9020C94D902D4
+:100040000C94D9020C94A3220C94D9020C94D902DA
+:100050000C94D9020C94851D0C94D9020C94D902ED
+:100060000C94D9020C94D9020C94D9020C94D902A4
+:100070000C94D9020C94D9020C94D9020C94D90294
+:100080000C94D9020C94D9020C94D9020C94D90284
+:100090000C94D9020C94D9020C94D9020C94D90274
+:1000A0000C94D9020C94D9020C94D902A60FC80F53
+:1000B000B610C80FB6100D103010B610851098107D
+:1000C0006913691395139513D813F8135315531522
+:1000D00003145315B014B0144415531553154D158E
+:1000E000BD14BD14BD14BD14BD14BD14BD14BD1488
+:1000F000BD14BD14BD14BD14BD14BD14BD14BD1478
+:10010000CE14DB14E214E914F314021902E3000123
+:10011000E3011900020602E30001E30106000213F5
+:100120000001E00104020402E001130002290001C1
+:10013000E00104020402E00129000000F4A2002210
+:1001400030A135002B003161C200C10000001E004B
+:10015000140004001D0001534D001F001A0016007A
+:100160001B00E0004C002000080007000600E20031
+:100170002A002100150009001900E3004A002200AE
+:1001800017000A00050000000A3029006B67000014
+:100190006D6F00000B3066006C6700006E6F000032
+:1001A0000C3023001C000B00110000000D30240057
+:1001B00018000D001000E7004B0025000C000E0099
+:1001C0003600E6002C00260012000F0037002F61D9
+:1001D00028002700130033003800C3004E002D0014
+:1001E0002E003461C200C10000000000FF00FE00CC
+:1001F000FD00000000000000000000000000010001
+:100200000000F400F900F200FB0000000000F5001F
+:10021000F000F100000000000000F600FA00F3001A
+:10022000FC000000000000000000000000000000D2
+:1002300000000000000000000000000000002B0291
+:100240002B0000005800000000009C005F005C00D4
+:10025000590000000000540060005D005A00620078
+:100260000000550061005E005B0063000000230297
+:100270005700560067008500010026022702000093
+:10028000000001000000000000000000000000006D
+:100290000000000000003900E100010000003A0009
+:1002A000AD00B0000000000000003B00BC00AC004E
+:1002B0000000010000003C00AF00AE0000000100A3
+:1002C00000003D00BB00AB000000010000003E004C
+:1002D000000000000000000000003F0001000000DE
+:1002E00001000000000040000100000001000000CB
+:1002F000000041000000500000000000000042002B
+:100300000000510000000100000043000000520006
+:10031000000001000000440000004F000000010048
+:100320000000450000000000000000000000A900DF
+:10033000AA00A800E50001000000160345007200B5
+:1003400067006F0044006F007800200045005A00ED
+:10035000000016034500720067006F0044006F0044
+:100360007800200045005A00000004030904090237
+:100370006D00040100A0FA0904000001030101005E
+:100380000921110100012240000705810308000A2C
+:1003900009040100010301020009211101000122E9
+:1003A0004D000705820308000A090402000103004A
+:1003B000000009211101000122360007058303080E
+:1003C000000A0904030001030000000921110100D3
+:1003D00001223900070584031000011201100100F9
+:1003E000000008EDFE0713010001020001050109EC
+:1003F00006A101050719E029E715002501950875F3
+:1004000001810205081901290595057501910295DB
+:10041000017503910105071900297715002501953C
+:100420007875018102C005010980A10185021601CC
+:100430000026B7001A01002AB70075109501810047
+:10044000C0050C0901A1018503160100269C021AB2
+:1004500001002A9C02751095018100C00501090266
+:10046000A1010901A10005091901290515002501AE
+:10047000950575018102950175038101050109301A
+:1004800009311581257F9502750881060938158186
+:10049000257F950175088106050C0A38021581250E
+:1004A0007F950175088106C0C005010906A10105F7
+:1004B0000719E029E71500250195087501810295C6
+:1004C0000175088101050819012905950575019136
+:1004D000029501750391010507190029FF150026F2
+:1004E000FF00950675088100C000000000000000B4
+:1004F00000000000010204060A0F17202C3A4A5D92
+:1005000071879DB3C7DAE9F5FCFFFCF5E9DAC7B3FB
+:100510009D87715D4A3A2C20170F0A0604020100DC
+:100520000000000000000000000011241FBECFEFFB
+:10053000DAE0DEBFCDBF04B603FE24C08091030223
+:1005400090910402A0910502B09106028730904B71
+:10055000A740B04BB9F4109203021092040210921B
+:1005600005021092060214BE84B7877F84BF88E11B
+:100570000FB6F89480936000109260000FBEE0E028
+:10058000FFE3099511E0A0E0B1E0E4EDF8E402C07A
+:1005900005900D92A433B107D9F712E0A4E3B1E0BE
+:1005A00001C01D92A330B107E1F70E94AF0B0C947C
+:1005B00068240C9400001092B9008AE08093B8007F
+:1005C000089594EA9093BC009091BC0097FFFCCFF3
+:1005D0009091B900987F983021F0903111F081E02E
+:1005E00008958093BB0084E88093BC008091BC0098
+:1005F00087FFFCCF8091B900887F883111F080346B
+:1006000071F780E0089584E98093BC008091BC007C
+:1006100084FDFCCF08958093BB0084E88093BC00E8
+:100620008091BC0087FFFCCF9091B900987F81E05A
+:10063000983209F480E0089584E88093BC008091AA
+:10064000BC0087FFFCCF8091BB00089580B38C7005
+:1006500080BB81B3836F81BB0895809101018111BB
+:1006600015C080E40E94E1028093010181110CC059
+:1006700082E10E940B0380930101811105C08FEF7D
+:100680000E940B03809301010E94030384B1807FC9
+:1006900084B985B1807F85B98AB1837F8AB98BB1EE
+:1006A000837F8BB93E98469808950E94F704809303
+:1006B00001010E942D030E942603A5E3B1E0E3E4BB
+:1006C000F1E08EE08E0F11921D928E13FCCF0C94F0
+:1006D000E1040E94F704809301010E942D030E940F
+:1006E0002603A5E3B1E0E3E4F1E08EE08E0F119282
+:1006F0001D928E13FCCF0895BF92CF92DF92EF929E
+:10070000FF920F931F93CF93DF9380910101882372
+:1007100079F0809134018F5F80933401811108C09A
+:100720000E94F70480930101811102C00E94890494
+:1007300005E311E0C0E0D0E0DD24D39482E0C82ED0
+:10074000EE24E394F12CC730D10500F5809101012E
+:10075000811164C080E40E94E10280930101811153
+:1007600012C082E10E940B038093010181110BC032
+:10077000C7010C2E01C0880F0A94EAF780950E94E9
+:100780000B03809301010E94030348C0CA30A1F00B
+:1007900028F4C83059F0C93061F005C0CC3089F078
+:1007A00070F0CD3089F0209A289810C0219A2998AD
+:1007B0000DC0229A2A980AC0239A2B9807C0529AF1
+:1007C00001C0539A5B9802C03E9A469890EA9A9567
+:1007D000F1F79FB1799902C082E001C080E0917089
+:1007E0009D25982B7C9902C084E001C080E0892B74
+:1007F0007D9902C038E001C030E0832B7E9902C0B1
+:1008000020E101C020E0822B9FB19095991F99278C
+:10081000991F9295990F907E892B0FC080910101AD
+:10082000811149C080E40E94E10280930101882384
+:1008300079F1B12C0E9403038B2DF8019081981758
+:1008400019F08083C09200010E942D0321960F5F52
+:100850001F4FCE30D10509F076CF8091000188235B
+:1008600061F1815080930001882339F08FE99FE086
+:100870000197F1F700C0000020C0A3E4B1E0E5E378
+:10088000F1E0CF01825F91919D938E13FCCF15C053
+:1008900083E10E940B03809301018111CACF81E49F
+:1008A0000E94E102809301018111C3CF0E941C03C9
+:1008B000B82EB094BFCF80E0C0CF0E94870481E003
+:1008C000DF91CF911F910F91FF90EF90DF90CF902C
+:1008D000BF900895E82FF0E0ED5BFE4F8081089512
+:1008E00008950F931F93CF93DF93C3E4D1E010E0FB
+:1008F0000C2F025F899190E00E94AC1C180F0C1322
+:10090000F9CF812FDF91CF911F910F9108950C9412
+:100910007A0556985E9825982D9826982E982798AF
+:100920002F988FEF90E090938900809388009093A8
+:100930008B0080938A0090938D0080938C00259A81
+:100940002D9A2FEF80E792E0215080409040E1F710
+:1009500000C00000269A2E9A2FEF80E792E02150E7
+:1009600080409040E1F700C00000279A2F9A2FEFB7
+:1009700080E792E0215080409040E1F700C0000005
+:1009800025982D982FEF80E792E0215080409040ED
+:10099000E1F700C0000026982E982FEF80E792E044
+:1009A000215080409040E1F700C0000027982F9828
+:1009B00056985E9825982D9826982E9827982F98C7
+:1009C000089589EA8093800089E0809381002498CB
+:1009D0002C983F988AB18F748AB96E98479A8BB1D8
+:1009E000806B8BB9769A0E9489040C94790580E219
+:1009F000809301018091510181110EC00E94DB02A0
+:100A000081E0809351012FEF83ED90E321508040EE
+:100A10009040E1F700C0000080E40E94E102809372
+:100A2000010181112EC00E940B03809301018111ED
+:100A300028C00E940B0380930101811122C08FE323
+:100A40000E940B038093010181111BC00E940303CC
+:100A500080E40E94E10280930101811112C08CE0C8
+:100A60000E940B038093010181110BC00E940B03B4
+:100A700080930101811105C08FE30E940B038093D5
+:100A800001010E940303809101010895FC016B3074
+:100A900079F018F46A3031F01DC06C3079F06D30A7
+:100AA00099F018C08281811118C08CE291E00895FC
+:100AB0008281811115C08EE191E0089582818111BA
+:100AC00012C084E191E00895828181110FC08AE013
+:100AD00091E0089580E090E008958FE291E008951C
+:100AE00081E291E0089589E191E008958FE091E03D
+:100AF00008950895CF936091BF017091C0018091D6
+:100B0000C1019091C2010E94B81CC82F56985E98EE
+:100B100025982D9826982E9827982F988FE090E06A
+:100B2000909389008093880090938B0080938A0033
+:100B300090938D0080938C00CC2329F0C13029F450
+:100B4000C093520102C01092520180915201813033
+:100B500011F4279A2F9A0E94EF10867011F0259AAF
+:100B60002D9AC23041F40E94351B811104C0279890
+:100B70002F98269A2E9AE0910E01F0910F01808114
+:100B8000982F927259F08D7D49F48FEF90E09093F9
+:100B9000890080938800259A2D9A08C00E94621CC3
+:100BA000827221F00E94081B882379F3CF91089567
+:100BB00081E0089581E008950C94DA050895282FC6
+:100BC000882339F090E02A3010F44D960895069766
+:100BD000089587E290E00895AF92BF92DF92EF927E
+:100BE000FF920F931F93CF93DF938C01FC01C08181
+:100BF000D181CE010E94B11ABE010E945C09EC01B4
+:100C0000B8010E94DC05882309F4C9C1F80182817A
+:100C1000882309F4BEC080915F0181111FC0C431D7
+:100C2000F0E7DF0709F0B5C10E94DE0581E080939F
+:100C30005F010E944F1D90935E0180935D011092B1
+:100C40005601109258011092570110925A011092B9
+:100C5000590110925C0110925B01A1C180915D016C
+:100C600090915E010E945B1D883C910570F480911B
+:100C70005601E82FF0E0EE0FFF1FE95AFE4FD18337
+:100C8000C0838F5F809356018AC1C13020E8D207AC
+:100C900008F451C0F8018281882309F47EC05E0106
+:100CA000E894B7F880915501813079F050F08230A6
+:100CB000C1F482EE0E940B1287E50E940B1287E5B9
+:100CC0000EC082EE0E940B120CC080EE0E940B122E
+:100CD00081EE0E940B1288E10E940B1288E10E94B3
+:100CE000D3128CE0E82EF12CC5010E2C02C0969593
+:100CF00087950A94E2F78F700E94DF05D82E0E9434
+:100D00000B128D2D0E94D312F4E0EF1AF1082CEF94
+:100D1000E2162FEFF20641F780915501813029F05C
+:100D200010F0823041F482EE04C080EE0E94D312B3
+:100D300081EE0E94D312C43180E7D80768F4C23034
+:100D400090E7D90708F046C0C115E0E7DE0771F06B
+:100D5000C130D047A1F10CC1C33320E7D20709F459
+:100D6000D8C0C433D04709F4EBC002C1F801828176
+:100D7000882309F402C10E94B815FFEF24E38CE038
+:100D8000F15020408040E1F700C000000E94AA1D01
+:100D900006C1C13080E8D80770F2C43120E7D2071D
+:100DA00008F0B3C0C23080E7D807A0F4C11590E7BF
+:100DB000D90709F4E2C0C130D04709F0D9C0F80121
+:100DC0008281882309F4D9C08091E10181608093F8
+:100DD000E101E5C0F8018281882309F4CEC00E94B8
+:100DE000041E811102C00E94EA1D0E94171E90E09D
+:100DF0009093F5018093F401C230F0E7DF0721F40E
+:100E00008091F40181607AC0C33020E7D20721F4D9
+:100E10008091F401826072C0C43080E7D80721F469
+:100E20008091F40184606AC0C53090E7D90719F455
+:100E30008091F40127C0C630E0E7DE0721F48091FD
+:100E4000F40180615BC0C730F0E7DF0721F48091D7
+:100E5000F401806253C0C83020E7D20721F48091AA
+:100E6000F40180644BC0C93080E7D80721F4809139
+:100E7000F401806843C0CA3090E7D90729F4809113
+:100E8000F401846088603AC0CB30E0E7DE0721F4EB
+:100E90008091F4018E7F32C0CC30F0E7DF0721F47F
+:100EA0008091F4018D7F2AC0CD3020E7D20721F454
+:100EB0008091F4018B7F22C0CE3080E7D80719F4EF
+:100EC0008091F4011AC08091F401CF3090E7D907E6
+:100ED00011F48F7E13C0C031E0E7DE0711F48F7D7F
+:100EE0000DC0C131F0E7DF0711F48F7B07C0C231BD
+:100EF000D04711F48F7702C08B7F877F8093F401F6
+:100F00008091F4010E941B1E4AC0C333F0E7DF0743
+:100F1000A1F4F8018281882321F01092530182E02C
+:100F200016C080915301811106C086E20E940B1207
+:100F300086E20E94D31282E018C0C433D047C1F4C5
+:100F4000F8018281882331F01092540180E20E94DE
+:100F5000221325C080915401811106C087E20E94AE
+:100F60000B1287E20E94D31280E20E94291317C05D
+:100F700081E08093530180935401C801DF91CF91A8
+:100F80001F910F91FF90EF90DF90BF90AF900C9466
+:100F9000D805C130F0E8DF0708F081CECCCE80E084
+:100FA000DF91CF911F910F91FF90EF90DF90BF9055
+:100FB000AF90089526E0729FF001112444E5849FCC
+:100FC000E00DF11D1124E60FF11DEE0FFF1FEE5B8A
+:100FD000FE4F859194910E946E09811560E49607F9
+:100FE000B0F5811570E3970708F0DEC0803E9105EB
+:100FF000D8F4803C910508F06CC0883A910578F4EB
+:10100000853A910508F06BC08130910509F452C111
+:1010100008F40FC18430910508F04CC10AC18B3B24
+:10102000910508F467C005C18F3F910509F048F4A8
+:10103000803F910508F0ADC0883E910508F43AC1A3
+:10104000F8C0811520E2920708F0A5C00895811527
+:1010500043E5940790F4811562E5960708F0C8C04F
+:10106000811571E5970708F0BEC0811520E592074C
+:1010700008F09DC09F70906A0895811545E594071A
+:10108000D8F4811564E5960708F0C8C0482F469546
+:10109000469570E2479FA00111248370992721E0B3
+:1010A00030E0B90102C0660F771F8A95E2F7CB01E5
+:1010B000842B952B9A680895811576E5970708F497
+:1010C000B2C09C0130562115304108F0B2C09F706B
+:1010D000AEC0FC01EE0FFF1FE654F04062C0853A3F
+:1010E000910509F4A9C0863A910509F0A8C082E8E3
+:1010F00090E40895883A910509F4A4C0893A9105CD
+:1011000009F4A3C08A3A910509F4A2C08B3A91056B
+:1011100009F4A1C08C3A910509F4A0C08D3A91055B
+:1011200009F49FC0803B910509F49EC08E3A910559
+:1011300009F49DC08F3A910509F49CC0813B91054B
+:1011400009F49BC0823B910509F49AC0833B910549
+:1011500009F499C0843B910509F498C0853B910539
+:1011600009F497C0863B910509F496C0873B910529
+:1011700009F495C0883B910509F494C0893B910519
+:1011800009F493C08A3B910509F492C080E094E48D
+:10119000089590650895FC01FF70EE0FFF1FE65C57
+:1011A000FE4F8591949108959927906C0895482F4A
+:1011B000437021E030E002C0220F331F4A95E2F76E
+:1011C0003C68AC0164E0569547956A95E1F7437039
+:1011D000342B8F708695869560E2869FC00111241E
+:1011E000822B932B0895982F8827816F906A0895FA
+:1011F000482F4695469570E2479FA00111248370C1
+:10120000992721E030E0B90102C0660F771F8A9567
+:10121000E2F7CB01842B952B9C680895982F8827A3
+:10122000846F906A08958F719927982F882790620C
+:10123000089580E090E0089581E890E4089583E8BF
+:1012400090E4089582EE94E4089589EE94E408957C
+:101250008AEE94E4089585EB94E4089586EB94E493
+:10126000089587EB94E408958CEC94E408958DEC54
+:1012700094E4089583E895E408958AE895E4089550
+:1012800082E995E4089584E995E4089581E296E47D
+:10129000089583E296E4089584E296E4089585E251
+:1012A00096E4089586E296E4089587E296E4089528
+:1012B0008AE296E40895089596E0799FF00111245A
+:1012C00094E5899FE00DF11D1124E60FF11DEE0F4D
+:1012D000FF1FEE5BFE4F8591949108958238910532
+:1012E00049F1B0F48133910509F458C048F48932CA
+:1012F000910509F44EC08A32910509F454C008954D
+:101300008533910509F440C08933910599F008951A
+:10131000833E910529F138F4803E910591F0823E9B
+:101320009105A1F00895863E9105F9F0873E91055B
+:1013300031F108952091F40120FD3AC021FD38C01B
+:1013400008958091F40180FD35C032C08091F40190
+:1013500082FF32C08091F40184FD30C083EE39C039
+:101360008091F40182FD28C0F5CF8091F40183FFC4
+:1013700027C08091F40184FD21C087EE2AC08091AE
+:10138000F40183FD1DC0F5CF8091F40185FD1AC0E5
+:101390001BC08091F40185FD17C014C08091F40139
+:1013A00086FD14C015C08091F40186FD11C00EC0E9
+:1013B00080EE0FC089E30DC082EE0BC080E009C053
+:1013C00086EE07C089E205C085E303C08AE201C05A
+:1013D00081E390E0089508950C94EB0980917001E9
+:1013E0000895CF93DF9300D01F92CDB7DEB79C0155
+:1013F0008091FA01843019F593E099833B832A8325
+:101400009093E9008FEF9091E800815095FD06C020
+:1014100095ED9A95F1F700008111F5CF8091E800E4
+:1014200085FF0DC040E050E063E070E0CE01019622
+:101430000E94570C8091E8008E778093E8000F900F
+:101440000F900F90DF91CF910895CF93DF9300D04D
+:101450001F92CDB7DEB72091FA01243021F522E0AA
+:1014600029839B838A8383E08093E9008FEF9091A7
+:10147000E800815095FD06C095ED9A95F1F70000C2
+:101480008111F5CF8091E80085FF0DC040E050E06C
+:1014900063E070E0CE0101960E94570C8091E80055
+:1014A0008E778093E8000F900F900F90DF91CF918F
+:1014B00008952091FA012430F1F422E02093E9000C
+:1014C0002FEF3091E800215035FD06C035ED3A95FB
+:1014D000F1F700002111F5CF2091E80025FF0BC0A6
+:1014E00040E050E065E070E00E94570C8091E80019
+:1014F0008E778093E8000895CF93DF93EC0190916D
+:10150000FA01943009F046C080910C018823D9F08B
+:1015100080910D018823B9F09093E9008FEF9091AD
+:10152000E800815095FD06C095E19A95F1F700001D
+:101530008111F5CF8091E80085FF2CC040E050E09C
+:1015400060E170E017C081E08093E9008FEF909137
+:10155000E800815095FD06C095ED9A95F1F70000E1
+:101560008111F5CF8091E80085FF14C040E050E084
+:1015700068E070E0CE010E94570C8091E8008E7701
+:101580008093E80080E1FE01A0E6B1E001900D92B9
+:101590008A95E1F7DF91CF9108958091F90181114A
+:1015A00009C00E94EC0D0E94490E8091E200846007
+:1015B0008093E20008951092F901089508950C9423
+:1015C00090220E94401D0E9496220E94EF100C94CF
+:1015D000EC0942E061EC81E00E94660D42E061ECC2
+:1015E00082E00E94660D42E061EC83E00E94660D9D
+:1015F00042E161EC84E00C94660D8091FC01833043
+:1016000009F455C030F4813071F0823009F48EC095
+:1016100008958A3009F47AC08B3009F460C08930AB
+:1016200009F09CC020C08091FB01813A09F096C06E
+:101630008091E800877F8093E8008091FF0190917E
+:101640000002892B21F460E180E691E003C060E0B4
+:1016500080E090E070E00E94A20C8091E8008B771F
+:101660008093E80008958091FB01813209F076C0F3
+:101670008091FF0190910002009719F0039709F003
+:101680006DC08091E800877F8093E8008091E8003A
+:1016900082FD05C08091FA018111F8CF5FC0809171
+:1016A000F100809370018091E8008B7753C08091A6
+:1016B000FB01813A09F052C08091FF019091000234
+:1016C000892B09F04BC08091E800877F8093E80068
+:1016D0008091E80080FFFCCF80910C0136C08091A2
+:1016E000FB018132D9F58091FF0190910002892B95
+:1016F000A9F58091E800877F8093E8000E949B0D08
+:101700008091FD0180930C010C94B8158091FB0130
+:10171000813221F58091E800877F8093E8000E9464
+:101720009B0D8091FE018093710108958091FB01D2
+:10173000813AA1F48091E800877F8093E80080914E
+:10174000E80080FFFCCF809171018093F1008091CF
+:10175000E8008E778093E8000C949B0D089584B781
+:10176000877F84BF88E10FB6F89480936000109261
+:1017700060000FBE80E880936100109261000E94BB
+:101780003E110E94EC0D0E94490E8091E20084609F
+:101790008093E20078940E94CF100E94401182E072
+:1017A00091E00E94EA100E947E228091FA01853029
+:1017B00069F40E94081D8091F8018823B1F30E940A
+:1017C000321D882391F30E94410CEFCF0E944611F5
+:1017D000ECCF292F332723303105C9F064F42130B1
+:1017E000310581F02230310509F043C08DE690E0EB
+:1017F0002EE633E042C021323105F1F022323105CC
+:1018000041F137C082E190E02BED33E036C09927FB
+:101810008130910541F08230910541F0892B49F5E5
+:10182000EAE6F3E005C0E2E5F3E002C0EAE3F3E054
+:10183000849190E09F0121C06430D8F4E62FF0E05D
+:10184000EE0FFF1FEE5DFE4F2081318189E090E0B9
+:1018500014C0643070F470E0FB01EE0FFF1FE65E11
+:10186000FE4F20813181FB01EA5EFE4F808190E0D6
+:1018700004C080E090E020E030E0FA013183208372
+:10188000089580E189BD82E189BD09B400FEFDCFE4
+:101890008091D8008F7D8093D8008091E000826095
+:1018A0008093E0008091E00081FDFCCF0895CF920D
+:1018B000DF92EF92FF920F931F93CF93DF93EC0190
+:1018C0008B016A010E94BA0D811133C0C114D10489
+:1018D00039F0F60180819181081B190BC80FD91FBF
+:1018E000E12CF12C0115110519F18091E80085FD1D
+:1018F00016C08091E8008E778093E800C114D1046F
+:1019000049F0F60180819181E80EF91EF182E082B2
+:1019100085E00FC00E94BA0D882321F30AC0899187
+:101920008093F10001501109FFEFEF1AFF0ADACF9F
+:1019300080E0DF91CF911F910F91FF90EF90DF90AA
+:10194000CF900895209101023091020226173707A7
+:1019500048F06115710539F42091E8002E77209345
+:10196000E80001C0B90140E061157105A9F12091BD
+:10197000FA01222309F443C0253009F442C0209122
+:10198000E80023FD40C02091E80022FD32C02091F4
+:10199000E80020FFE9CF4091F3002091F20030E011
+:1019A000342BFC01CF016115710559F02830310548
+:1019B00040F481918093F100615071092F5F3F4F96
+:1019C000F1CF41E02830310509F040E02091E800F6
+:1019D0002E772093E800C8CF4111C9CF0AC080916B
+:1019E000FA01882361F0853061F08091E80083FD81
+:1019F0000AC08091E80082FFF2CF80E0089582E083
+:101A0000089583E0089581E00895209101023091C6
+:101A100002022617370748F06115710539F4209145
+:101A2000E8002E772093E80001C0B901FC0120E016
+:101A30006115710591F18091FA01882309F440C084
+:101A4000853009F43FC08091E80083FD3DC080915E
+:101A5000E80082FD2FC08091E80080FFE9CF20914F
+:101A6000F3008091F20090E0922B6115710559F01E
+:101A70008830910540F424912093F1003196615013
+:101A800071090196F2CF21E0089709F020E08091DA
+:101A9000E8008E778093E800CBCF2111CCCF0AC02D
+:101AA0008091FA01882361F0853061F08091E8002F
+:101AB00083FD0AC08091E80082FFF2CF80E00895A4
+:101AC00082E0089583E0089581E00895982F97308B
+:101AD00058F59093E900981739F07091EC00209137
+:101AE000ED005091F00003C0242F762F50E021FF2D
+:101AF00019C03091EB003E7F3093EB003091ED0048
+:101B00003D7F3093ED003091EB0031603093EB007E
+:101B10007093EC002093ED005093F0002091EE00C4
+:101B200027FF07C09F5FD3CF8F708093E90081E0CC
+:101B3000089580E008958091FB0187FF11C0809196
+:101B4000E80082FD05C08091FA018111F8CF11C033
+:101B50008091E8008B770BC08091FA01882349F0CF
+:101B60008091E80080FFF8CF8091E8008E77809325
+:101B7000E80008952091E4003091E50095E6409159
+:101B8000EC00842F817040FF22C08091E80080FD2E
+:101B90001CC08091FA01882391F0853091F08091EA
+:101BA000EB0085FD10C04091E4005091E500421724
+:101BB000530729F39A01915011F784E0089582E0C8
+:101BC000089583E0089581E0089580E008954091AC
+:101BD000E80042FFDECF08950E945A0E0E94620E76
+:101BE000E0EEF0E0808181608083E8EDF0E08081CC
+:101BF0008F77808319BCA7EDB0E08C918E7F8C939A
+:101C000080818F7E80831092F90108950F931F9336
+:101C1000CF93DF930E945A0E0E94620EC8EDD0E06F
+:101C200088818F77888388818068888388818F7D89
+:101C3000888319BC1092FA011092F6011092F801F3
+:101C40001092F70100EE10E0F80180818B7F808315
+:101C500088818160888342E060E080E00E94660DB8
+:101C6000E1EEF0E080818E7F8083E2EEF0E0808123
+:101C700081608083808188608083F80180818E7F8D
+:101C80008083888180618883DF91CF911F910F913C
+:101C90000895E8EDF0E080818F7E8083E7EDF0E04D
+:101CA00080818160808384E082BF81E08093F9013C
+:101CB0000C94060EE8EDF0E080818E7F8083109218
+:101CC000E20008951092DA001092E10008951F9248
+:101CD0000F920FB60F9211242F933F934F935F9360
+:101CE0006F937F938F939F93AF93BF93EF93FF93E4
+:101CF0008091E10082FF0BC08091E20082FF07C06B
+:101D00008091E1008B7F8093E1000E94CE10809152
+:101D1000DA0080FF1FC08091D80080FF1BC0809137
+:101D2000DA008E7F8093DA008091D90080FF0DC0A9
+:101D300080E189BD82E189BD09B400FEFDCF81E06B
+:101D40008093FA010E94CD0A05C019BC1092FA01D5
+:101D50000E94DB0A8091E10080FF19C08091E200BF
+:101D600080FF15C08091E2008E7F8093E200809119
+:101D7000E20080618093E2008091D80080628093CD
+:101D8000D80019BC85E08093FA010E94DF0A809197
+:101D9000E10084FF30C08091E20084FF2CC080E12C
+:101DA00089BD82E189BD09B400FEFDCF8091D800D4
+:101DB0008F7D8093D8008091E1008F7E8093E10039
+:101DC0008091E2008F7E8093E2008091E20081604A
+:101DD0008093E2008091F601882311F084E007C02F
+:101DE0008091E30087FD02C081E001C083E0809321
+:101DF000FA010E94E10A8091E10083FF29C08091ED
+:101E0000E20083FF25C08091E100877F8093E1009D
+:101E100082E08093FA011092F6018091E1008E7FBA
+:101E20008093E1008091E2008E7F8093E2008091B8
+:101E3000E20080618093E20042E060E080E00E9486
+:101E4000660D8091F00088608093F0000E94DE0AA9
+:101E5000FF91EF91BF91AF919F918F917F916F9182
+:101E60005F914F913F912F910F900FBE0F901F9058
+:101E700018951F920F920FB60F9211242F933F9334
+:101E80004F935F936F937F938F939F93AF93BF9382
+:101E9000CF93DF93EF93FF93C091E900CF708091D0
+:101EA000EC00D82FD17080FDD0E81092E90080912D
+:101EB000F000877F8093F00078940E947D0F10924D
+:101EC000E9008091F00088608093F000CD2BCF7006
+:101ED000C093E900FF91EF91DF91CF91BF91AF9156
+:101EE0009F918F917F916F915F914F913F912F9132
+:101EF0000F900FBE0F901F9018951F93CF93DF93F5
+:101F0000CDB7DEB7AA970FB6F894DEBF0FBECDBF30
+:101F1000EBEFF1E088E08E0F9091F10091938E133A
+:101F2000FBCF0E94FD0A8091E80083FF1FC18091D2
+:101F3000FB019091FC01492F50E04A30510508F017
+:101F400015C1FA01EA5AFF4F0C941824803881F029
+:101F5000823809F00BC18091FF018F708093E900F6
+:101F60008091EB0085FB882780F91092E90006C07C
+:101F70008091F7019091F801911182609091E800B1
+:101F8000977F9093E8008093F1001092F100C8C011
+:101F9000282F2D7F09F0EAC0882319F0823061F0E4
+:101FA000E5C08091FD01813009F0E0C0933009F077
+:101FB00080E08093F8012BC08091FD01811127C042
+:101FC0008091FF018F7009F4D1C08093E9002091C6
+:101FD000EB0020FF1CC0933021F48091EB00806265
+:101FE00014C09091EB0090619093EB0021E030E001
+:101FF000A90102C0440F551F8A95E2F74093EA00F9
+:102000001092EA008091EB0088608093EB001092C0
+:10201000E9008091E800877F86C08111A7C01091F8
+:10202000FD011F778091E3008078812B8093E3008E
+:102030008091E800877F8093E8000E949B0D80914B
+:10204000E80080FFFCCF8091E30080688093E3008C
+:10205000111102C082E001C083E08093FA0186C0C2
+:102060008058823008F082C08091FD019091FE017D
+:102070008C3D53E0950779F583E08A838AE2898372
+:102080004FB7F894DE01139620E03EE051E2E32FD3
+:10209000F0E050935700E49120FF03C0E295EF7009
+:1020A0003F5FEF708E2F90E0EA3010F0C79601C0CE
+:1020B000C0968D939D932F5F243149F74FBF809138
+:1020C000E800877F8093E8006AE270E0CE01019625
+:1020D0000E94A20C14C0AE014F5F5F4F6091FF01E0
+:1020E0000E94E90BBC01009709F440C09091E80000
+:1020F000977F9093E80089819A810E94050D8091D5
+:10210000E8008B778093E80031C0803879F58091C2
+:10211000E800877F8093E8008091F6018093F100CA
+:102120008091E8008E778093E8000E949B0D1EC08E
+:1021300081111CC09091FD019230C0F48091E800A3
+:10214000877F8093E8009093F6010E949B0D809119
+:10215000F601811106C08091E30087FD02C081E095
+:1021600001C084E08093FA010E94E90A8091E800AE
+:1021700083FF0AC08091E800877F8093E800809108
+:10218000EB0080628093EB00AA960FB6F894DEBF56
+:102190000FBECDBFDF91CF911F9108950895CF93CA
+:1021A0008091FA018823A1F0C091E900CF7090914D
+:1021B000EC00892F817090FD80E8C82B1092E90017
+:1021C0008091E80083FD0E947D0FCF70C093E900ED
+:1021D000CF91089590937701809376010895E091CF
+:1021E0007601F0917701309721F00190F081E02D98
+:1021F000099480E00895E0917601F091770130979D
+:1022000021F00280F381E02D09940895E091760198
+:10221000F0917701309721F00480F581E02D099449
+:10222000089520917401309175018217930771F020
+:102230009093750180937401E0917601F09177019C
+:10224000309721F00680F781E02D099408952091C0
+:102250007201309173018217930771F090937301AB
+:1022600080937201E0917601F0917701309721F02F
+:102270000084F185E02D0994089508950C943D1192
+:102280000E94461D0E9455030C94CC1D9F92AF9254
+:10229000BF92CF92DF92EF92FF920F931F93CF9353
+:1022A000DF9300D000D000D0CDB7DEB70E947C0312
+:1022B0000DE010E0AA24A394B12C902E802F0E9450
+:1022C0006A04980127583E4F6901F901F080F82609
+:1022D000A1F40150110988F78FEF89838A831B824B
+:1022E0000E944F1D8160782F9D838C8349815A8184
+:1022F0006B818D810E94DD112FC09091E10191FFD2
+:1023000004C08E830E9470048E8125E030E0A50118
+:10231000022E01C0440F0A94EAF7E42E4F21C1F0C7
+:1023200029839A828E2191E009F490E09B830E9498
+:102330004F1D8160782F9D838C8349815A816B81E9
+:102340008D810E94DD11F6018081E826E08204C0C3
+:1023500021503109E0F6BDCF0E949A1F10917801FB
+:102360000E94EF101817B9F00E94EF1080937801C7
+:1023700026960FB6F894DEBF0FBECDBFDF91CF918A
+:102380001F910F91FF90EF90DF90CF90BF90AF9093
+:102390009F900C94EC0926960FB6F894DEBF0FBE02
+:1023A000CDBFDF91CF911F910F91FF90EF90DF9004
+:1023B000CF90BF90AF909F900895CF93DF93CDB70C
+:1023C000DEB72B970FB6F894DEBF0FBECDBF4F839D
+:1023D000588769877A878B87DE01119686E0FD0131
+:1023E00011928A95E9F785E0FE01379601900D92EA
+:1023F0008A95E1F749815A816B817C818D819E812B
+:102400000E9456182B960FB6F894DEBF0FBECDBFB4
+:10241000DF91CF910895CF93882309F4C2C0C82FCC
+:10242000823859F40E94EF1081FDBBC089E30E94FD
+:10243000991B0E94761C89E30CC0833879F40E94B2
+:10244000EF1080FDAEC083E50E94991B0E94761CB0
+:1024500083E50E94DB1BCF910C94761C843859F4E1
+:102460000E94EF1082FD9DC087E40E94991B0E948C
+:10247000761C87E4EECF8CEF8C0F813A48F48C2FDA
+:102480000E94E42181118DC08C2F0E94991BE3CF03
+:1024900080E28C0F883048F4C77081E001C0880F5B
+:1024A000CA95EAF70E94221CD6CF8BE58C0F8330A9
+:1024B00078F4C53A29F0C63A31F083E890E005C0D7
+:1024C00081E890E002C082E890E0CF910C94111175
+:1024D00088E58C0F833108F064C0C83A39F1C93AF5
+:1024E00041F1CA3A49F1CB3A51F1CC3A59F1CD3ADE
+:1024F00061F1C03B69F1CE3A71F1CF3A79F1C13B5C
+:1025000081F1C23B89F1C33B91F1C43B99F1C53BD9
+:10251000A1F1C63BA9F1C73BB1F1C83BB9F1C93B39
+:10252000C1F1CA3BC9F180E090E038C082EE90E092
+:1025300035C089EE90E032C08AEE90E02FC085EB86
+:1025400090E02CC086EB90E029C087EB90E026C09D
+:102550008CEC90E023C08DEC90E020C083E891E00B
+:102560001DC08AE891E01AC082E991E017C084E9B1
+:1025700091E014C081E292E011C083E292E00EC0CB
+:1025800084E292E00BC085E292E008C086E292E02D
+:1025900005C087E292E002C08AE292E0CF910C94FB
+:1025A0002711CF910895882309F44BC0823859F43C
+:1025B0000E94EF1081FF45C089E30E94991B0E9491
+:1025C000761C89E30CC0833871F40E94EF1080FF01
+:1025D00038C083E50E94991B0E94761C83E50E9407
+:1025E000DB1B0C94761C843859F40E94EF1082FF98
+:1025F00028C087E40E94991B0E94761C87E4EFCFD5
+:102600009CEF980F913A58F390E2980F983050F45D
+:10261000877091E001C0990F8A95EAF7892F0E948F
+:10262000281CDFCF9BE5980F933020F480E090E0EA
+:102630000C941111885A833120F480E090E00C94BE
+:1026400027110895882321F00E94221C0C94761CE7
+:102650000895882321F00E94281C0C94761C08956C
+:102660008F929F92AF92BF92DF92EF92FF920F9361
+:102670001F93CF93DF937C01D62FC72FFC010281DC
+:10268000158112951F700E94351B882319F082E076
+:102690000E94771B01110E943F1C0E94921B8823FD
+:1026A00079F0002369F080E28D0F883048F082E0F5
+:1026B0000E94771B0E94921B91E0D82ED92601C060
+:1026C000D12CEC2FE295EF70F0E0E05AFF4F0C9424
+:1026D00018248C2F807FCF70882311F0C295C07F83
+:1026E000002389F0CC2309F4C4C180E28D0F883027
+:1026F00020F48C2F0E94221C03C08C2F0E94321CBD
+:102700000E94761CB6C18D2F0E94D312CC2309F4EF
+:10271000CAC1D05E8C2FD83018F40E94281C02C089
+:102720000E94381C0E94761CBEC18C2F807FCF7007
+:10273000803211F0C295C07FDD2319F0D13029F12C
+:102740002DC0002381F0112369F1113021F48C2F69
+:102750000E94521CA8C1123029F50E945B1C8C2FCC
+:102760000E94021B1FC0112369F0113041F40E9426
+:102770001F1C8C2309F497C10E94051B03C0123053
+:1027800009F491C10E945B1C11C0002321F012309A
+:1027900008F089C107C0111186C108C0002321F0CB
+:1027A000111167C18C2FF1C011116AC18C2FF3C0B8
+:1027B0008C2F86958695837090E0009719F001978D
+:1027C00061F071C1002321F08D2F9C2F937002C006
+:1027D00080E090E00E94111166C1002321F08D2F4E
+:1027E0009C2F937002C080E090E00E9427115BC193
+:1027F0008D2F002319F00E94A21E02C00E940A1F02
+:102800000E948F1F50C18C2F837009F050C001119E
+:102810004AC18D2F829586958770880F880F9D2FCE
+:102820009F70892E912CA12CB12C082E04C0880CED
+:10283000991CAA1CBB1C0A94D2F7D4FF14C00FE049
+:1028400010E020E030E0B901A80104C0440F551F9A
+:10285000661F771F8A95D2F7CB01BA0160957095F4
+:102860008095909503C060E070E0CB01C695C69559
+:10287000C370D0E0C230D10561F0C330D10581F022
+:10288000682979298A299B29219771F00E949E192C
+:102890000AC1682979298A299B290E94BA1903C18A
+:1028A0000E949E19C501B4010E948219FCC0002338
+:1028B00019F08C2F817001C08695882309F4F3C02C
+:1028C0008D2F829586958770880F880F9D2F9F701A
+:1028D000892E912CA12CB12C082E04C0880C991C97
+:1028E000AA1CBB1C0A94D2F7D4FF14C00FE010E05E
+:1028F00020E030E0B901A80104C0440F551F661F55
+:10290000771F8A95D2F7CB01BA01609570958095B3
+:10291000909503C060E070E0CB01C695C695C3708A
+:102920004C2F50E04230510569F04330510589F099
+:10293000682979298A299B294130510571F00E9423
+:10294000781AB1C0682979298A299B290E94941A8A
+:10295000AAC00E94781AC501B4010E945C1AA3C0E3
+:102960008D2F90E0FC01E05EF109E531F10508F002
+:102970007BC0E059FF4F0C941824DF708C2F8F71AF
+:10298000002331F00E94F5198D2F0E9422138BC075
+:102990000E94161A8D2F0E94291385C0002339F03A
+:1029A000111181C08C2F8F710E943B1A7CC0123094
+:1029B00008F079C0F7CF002339F08C2F8F710E9477
+:1029C000F51971C00023C9F38C2F8F710E94161A5C
+:1029D0006AC0002329F08C2F8F710E94E01963C018
+:1029E0000E94D61960C00023B9F00E94FF1A0E940D
+:1029F000281C0E94311B843029F40E94701B8C2FEC
+:102A00008F7162C0123008F06CC0CF718C2F0E94A1
+:102A1000F51963E08C2F0DC00E94FF1A0E94221C42
+:102A20001230A0F00E94701B0E94051B64E08C2FE6
+:102A30008F71DF91CF911F910F91FF90EF90DF90F9
+:102A4000BF90AF909F908F900C94601B81E0DF91BE
+:102A5000CF911F910F91FF90EF90DF90BF90AF90BB
+:102A60009F908F900C94771B002339F0112309F469
+:102A7000A4CF8D2F0E940B1216C0112309F4A4CFEE
+:102A80008D2F0E94D3120FC04C2F4F706D2FC70196
+:102A90000E9446050E94FA1806C04C2F4F706D2FF9
+:102AA000C7010E945B09DD20E1F00E94311B80FD1F
+:102AB00018C0F70112820E942B1B0E94F519C70152
+:102AC0000E947D150E942B1BDF91CF911F910F91CA
+:102AD000FF90EF90DF90BF90AF909F908F900C94FD
+:102AE000161ADF91CF911F910F91FF90EF90DF9019
+:102AF000BF90AF909F908F9008950F931F93CF93A7
+:102B0000DF93EC01888199812B813C81232BB9F0E3
+:102B10009F3F11F48F3F99F0CE010E94EC0588236E
+:102B200071F0688179818A810E94FB1A8C010E9470
+:102B3000B01A0E947719B801CE010E943013DF91BC
+:102B4000CF911F910F9108950E943F1C0E944F1C2E
+:102B50000E94111C0E94761C0E9440200E948F1F20
+:102B600080E090E00E94111180E090E00C94271129
+:102B70000E942F1C0C94A4150E94F01A292F229554
+:102B80002F7030E02C3031054CF42A3031056CF4D4
+:102B90002250310922303105A8F407C02C3031050C
+:102BA00069F02F30310551F00DC0803F69F018F405
+:102BB000803E40F409C0843F29F406C093FB882777
+:102BC00080F9089580E0089581E00895CF93DF9320
+:102BD00000D000D01F92CDB7DEB70F900F900F90AE
+:102BE0000F900F90DF91CF910895CF93DF9300D096
+:102BF00000D000D0CDB7DEB726960FB6F894DEBF72
+:102C00000FBECDBFDF91CF9108951F93CF93DF9378
+:102C1000C091870116E080918801C81799F0D0E033
+:102C20001C9FF0011D9FF00D1124E757FE4F4081BE
+:102C3000518162817381848195810E94F51521966D
+:102C4000C770E9CFDF91CF911F9108954091B901ED
+:102C50005091BA016091BB017091BC018091BD019E
+:102C60009091BE010C94F5158091BE0182958F70F4
+:102C700009F054C08091BB01882309F44FC08091B2
+:102C80008701A09188016091B9017091BA014091CA
+:102C9000BC015091BD01B6E08A1709F43FC090E035
+:102CA00041155105C1F17F3F11F46F3FA1F1B89F6C
+:102CB000F001B99FF00D1124E757FE4F21817213E7
+:102CC0002AC02081621327C02281211124C02381C0
+:102CD00034812417350710F421503109241B350B9A
+:102CE000283C3105C0F42091BE012F702061209353
+:102CF000BE0126E0289FF001299FF00D1124E25724
+:102D0000FE4F80818F708061808389EB91E00E940B
+:102D10007D150C94051601968770BECF0895CF924D
+:102D2000DF92EF92FF920F931F93CF93DF93CDB774
+:102D3000DEB762970FB6F894DEBF0FBECDBF8C0131
+:102D400085E0F801DE011D9601900D928A95E1F76C
+:102D5000D8014C9111965C91119712966C91129733
+:102D60001396CD90DC9014973091B9017091BA010F
+:102D70008091BC019091BD01009709F46BC17F3F28
+:102D800019F43F3F09F466C1E090BB01EE2009F45D
+:102D9000C0C02091BE01C816D90628F0F601E81B74
+:102DA000F90BCF0104C0809590958C0D9D1DFF24DB
+:102DB000F394883C910578F0F12C207F09F0C6C08F
+:102DC0007C2DD98AC88A89890E94E61589EB91E011
+:102DD0000E947D15B1C0822F807F09F046C0751317
+:102DE00014C0341312C0611110C02F7020612093E1
+:102DF000BE010E94261689EB91E00E947D1580910C
+:102E0000BE01D80115968C932EC0CD2819F15F3FD5
+:102E100011F44F3FF9F0F62E61111CC0809187012B
+:102E20002091880136E0821709F45AC090E0389F5B
+:102E3000F001399FF00D1124E757FE4F71815713B0
+:102E400006C07081471303C07281711103C00196DF
+:102E50008770E9CFF62E662309F418C18091BE0170
+:102E600081608093BE01F12C11C1751308C0341329
+:102E700006C0611104C08091BE01D801C3C04D8756
+:102E80005E878D859E856A8B0E94BC156A89882322
+:102E9000E1F16623D1F12091BE01822F82958F70DE
+:102EA00090E0029774F08091B9019091BA019887EF
+:102EB0008F831986DB86CA862C87CE0107960E94EF
+:102EC0007D1586E0F801A9EBB1E001900D928A959D
+:102ED000E1F70E9434160E942616FF24F394D6C010
+:102EE0004D875E878D859E850E94F01A292F229539
+:102EF0002F7030E0223031050CF0BCC09F7009F01B
+:102F0000B6C0805E883008F4C1C0C8010E947D153B
+:102F1000E4CFC816D90608F453C0F601E81BF90B34
+:102F2000CF01883C910508F450C0F12C7C2DD98A42
+:102F3000C88A89890E94E615E9EBF1E086E0DF01A5
+:102F40001D928A95E9F70E942616A0C0751314C039
+:102F5000341312C0611110C08091BE01F801858345
+:102F6000C8010E947D1586E0E9EBF1E0DF011D92CA
+:102F70008A95E9F7FE2C8AC04D875E878D859E85F0
+:102F80006A8B0E94BC156A89882309F4BECF662328
+:102F900009F4BBCF2091BE01822F82958F7090E003
+:102FA00002970CF48ECF8091B9019091BA019A8367
+:102FB00089831B82DD82CC822E83CE0101967FCF56
+:102FC000809590958C0D9D1DACCFF62E662309F44F
+:102FD0009CCF75132EC034132CC02091BE0120FD50
+:102FE0001FC0822F82958F70D9F0D80115962C932F
+:102FF00015978F3049F08F5F982F9295907F822F91
+:103000008F70892B15968C93C8010E947D1586E0E0
+:10301000F801A9EBB1E001900D928A95E1F793CF09
+:1030200086E0F801A9EBB1E001900D928A95E1F7F5
+:103030002DC04D875E878D859E850E94BC158111B0
+:1030400040CF8091BE0181608093BE01C8010E9483
+:103050007D151CC0662309F458CF4D875E878D858A
+:103060009E850E94BC15882309F44FCF2ACF811179
+:1030700048CF0CC0243031050CF047CF9F7009F4C5
+:1030800040CFF8019581907F09F03BCF8F2D62965C
+:103090000FB6F894DEBF0FBECDBFDF91CF911F9169
+:1030A0000F91FF90EF90DF90CF9008951F93CF93F3
+:1030B000DF93CDB7DEB72C970FB6F894DEBF0FBE07
+:1030C000CDBF4F83588769877A878B879C87CE01CE
+:1030D00007960E948F16882369F08F8198852A852C
+:1030E0003B85232BF1F19F3F09F063C08F3F09F02F
+:1030F00060C037C086E0FE013796DE011196019070
+:103100000D928A95E1F76F817885EA85FB85309786
+:1031100041F17F3F11F46F3F21F12091880130E0B0
+:10312000C9010196877099274091870150E0841763
+:10313000950709F447C069837A83FD83EC8396E0A1
+:10314000929FD001939FB00D1124A757BE4FFE014F
+:10315000319601900D929A95E1F7809388010E9433
+:10316000051616E080918701909188018917C1F1B9
+:10317000189FC001112487579E4F0E948F168823E5
+:1031800079F1E09187011E9FF0011124E757FE4F6E
+:103190004081518162817381848195810E94F515FE
+:1031A0008091870190E0019687709927809387012D
+:1031B000D9CF4F81588569857A858B859C850E94FA
+:1031C000F515CFCF0E94B815109288011092870193
+:1031D000E9EBF1E086E0DF011D928A95E9F7C1CFC6
+:1031E0002C960FB6F894DEBF0FBECDBFDF91CF9106
+:1031F0001F910895EF92FF920F931F93CF93DF9348
+:103200008C01009709F46CC0F12CEE24E394E801E2
+:103210002196F8018491843740F4843008F051C03D
+:10322000813081F0823019F15BC0853709F444C0E8
+:10323000A8F19CE7980F903708F052C08F770E9452
+:10324000D31241C00E5F1F4FFE01C49180E28C0F6C
+:10325000883048F4C7708E2D01C0880FCA95EAF7F0
+:103260000E94421C14C08C2F0E940B122DC00E5FB6
+:103270001F4FFE01C49180E28C0F883058F4C77054
+:103280008E2D01C0880FCA95EAF70E94481C0E9443
+:10329000761C1AC08C2F0E94D31216C00E5F1F4FCF
+:1032A000FE01C491CC2381F08FE99FE00197F1F7F3
+:1032B00000C00000C150F6CF0E5F1F4FFE01F4901A
+:1032C00003C00E940B128E018F2D882309F49FCF1B
+:1032D000EFE9FFE03197F1F700C000008150F5CF32
+:1032E000DF91CF911F910F91FF90EF900895089576
+:1032F0006093C3017093C4018093C5019093C6018C
+:103300000C94A4150F931F930091C3011091C40155
+:103310002091C5013091C601DC01CB01802B912B9E
+:10332000A22BB32B8093C3019093C401A093C5013A
+:10333000B093C6011F910F910C94A4150F931F9386
+:103340000091C3011091C4012091C5013091C601C3
+:10335000DC01CB0180239123A223B3238093C301FB
+:103360009093C401A093C501B093C6011F910F9122
+:103370000C94A4150F931F930091C3011091C401E5
+:103380002091C5013091C601DC01CB018027912736
+:10339000A227B3278093C3019093C401A093C501D2
+:1033A000B093C6011F910F910C94A4151092BF0108
+:1033B0001092C0011092C1011092C2010C94A41588
+:1033C00041E050E060E070E004C0440F551F661F0C
+:1033D000771F8A95D2F74093BF015093C001609345
+:1033E000C1017093C2010C94A41541E050E060E06B
+:1033F00070E004C0440F551F661F771F8A95D2F7EF
+:103400008091BF019091C001A091C101B091C20112
+:10341000482B592B6A2B7B2B4093BF015093C00143
+:103420006093C1017093C2010C94A41541E050E077
+:1034300060E070E004C0440F551F661F771F8A9537
+:10344000D2F740955095609570958091BF0190910D
+:10345000C001A091C101B091C201482359236A2340
+:103460007B234093BF015093C0016093C1017093CF
+:10347000C2010C94A41541E050E060E070E004C08B
+:10348000440F551F661F771F8A95D2F78091BF01A1
+:103490009091C001A091C101B091C2014827592764
+:1034A0006A277B274093BF015093C0016093C101FD
+:1034B0007093C2010C94A4150F931F930091BF0148
+:1034C0001091C0012091C1013091C201DC01CB01FA
+:1034D000802B912BA22BB32B8093BF019093C00123
+:1034E000A093C101B093C2011F910F910C94A41538
+:1034F0000F931F930091BF011091C0012091C10152
+:103500003091C201DC01CB0180239123A223B3239C
+:103510008093BF019093C001A093C101B093C201F9
+:103520001F910F910C94A4150F931F930091BF014D
+:103530001091C0012091C1013091C201DC01CB0189
+:1035400080279127A227B3278093BF019093C001C2
+:10355000A093C101B093C2011F910F910C94A415C7
+:103560000895CF92DF92EF92FF920F931F93CF9324
+:10357000DF938C01C090C301D090C401E090C501DD
+:10358000F090C6018091BF019091C001A091C1014E
+:10359000B091C201C82AD92AEA2AFB2ACFE1D0E099
+:1035A000D701C6010C2E04C0B695A79597958795AF
+:1035B0000A94D2F780FF06C0B8018C2F0E94DA0768
+:1035C000019721F4219760F780E001C08C2FDF91F3
+:1035D000CF911F910F91FF90EF90DF90CF900895C2
+:1035E000CF93DF93EC010E94B11ABE010E94DA076B
+:1035F000DF91CF910895CB010E94F01A0895809138
+:10360000CC0108958093CC0108951092CC010895C7
+:103610000E944F1D2091CA013091CB018217930760
+:1036200050F00E944F1D2091CA013091CB01821BA6
+:10363000930B9C010AC00E944F1D2091CA0130913A
+:10364000CB0120953095280F391F81E0283B3B4066
+:1036500008F480E008958091C90185958595859548
+:1036600008958091C901877008950E944F1D20918F
+:10367000C7013091C80182179307A8F00E944F1D1F
+:103680002091C7013091C801821B930B883B9B405E
+:1036900010F480E013C08091C90182FB882780F973
+:1036A00091E089270BC00E944F1D2091C7013091E6
+:1036B000C80120953095820F931FE8CF817008953F
+:1036C00098E0899F90011124262B2093C9010E9424
+:1036D000F5190E944F1D9093C8018093C70108956A
+:1036E0001092C9011092C8011092C701089520914B
+:1036F000C901809582238093C901982F977089F41E
+:1037000030E0482F552747FD50952417350749F0DD
+:103710008595859585950E94161A1092C80110927C
+:10372000C70108959091C901977081E009F480E084
+:10373000089590910C01992321F090910D01911120
+:1037400009C020910E0130910F01F90132969FEFCF
+:1037500040E01FC0982F9695969596959F3050F50E
+:10376000E0910E01F0910F01E90FF11D877021E04A
+:1037700030E0A90102C0440F551F8A95E2F7CA0143
+:103780009181892B818308959F3F39F04F5F4E309F
+:1037900041F051915813F8CF0DC05111F7CF942F2C
+:1037A000F5CF9F3F39F0F901E90FF11D97FDFA952B
+:1037B00082830895089590910C01992321F09091AE
+:1037C0000D01911109C020910E0130910F01F901F5
+:1037D0003296205F3F4F1FC0982F969596959695ED
+:1037E0009F30F0F4E0910E01F0910F01E90FF11D0F
+:1037F000877021E030E0A90102C0440F551F8A956F
+:10380000E2F7CA01809591818923818308953196D9
+:10381000E217F30729F090819813F9CF1082F7CFC0
+:10382000089581E090E0E0910E01F0910F01E80F22
+:10383000F91F1082019680319105A9F708958091B2
+:10384000E00108959091E001892B8093E0010895B3
+:1038500080959091E00189238093E0010895109272
+:10386000E00108959091DF01892B8093DF01089595
+:1038700080959091DF0189238093DF010895109254
+:10388000DF0108959091DE01892B8093DE01089578
+:1038900080959091DE0189238093DE010895109236
+:1038A000DE0108958093CD010E944F1D9093CB01BE
+:1038B0008093CA0108951092CD011092CB0110920D
+:1038C000CA0108958091CD01089580910E019091D3
+:1038D0000F01FC0131969C01205F3F4F80E09191E8
+:1038E00091118F5FE217F307D1F70895E0910E0170
+:1038F000F0910F018091E0018083E0910E01F09141
+:103900000F0190818091DF01892B8083E0910E016E
+:10391000F0910F0190818091DE01892B808380914D
+:10392000CD01882399F00E94081B81110E945B1C25
+:10393000E0910E01F0910F0190818091CD01892BD2
+:1039400080830E94651C81110E945B1C80910E0186
+:1039500090910F010C94FB1020E0009739F0AC011E
+:1039600041505109842395232F5FF7CF822F08956B
+:10397000CF92DF92EF92FF926C01EE24FF24C114EC
+:10398000D104E104F10421F0C701B60120E101C036
+:1039900020E0C72ED82EE92EFF24C114D104E10463
+:1039A000F10419F0285FC701B6016B017C0154E0F6
+:1039B000F694E794D794C7945A95D1F7C114D104DB
+:1039C000E104F10419F02C5FC701B6016B017C0121
+:1039D00042E0F694E794D794C7944A95D1F7C1147E
+:1039E000D104E104F10419F02E5FC701B601DC0136
+:1039F000CB01B695A79597958795892B8A2B8B2B0D
+:103A000009F02F5F822FFF90EF90DF90CF90089505
+:103A10008091FA01843021F11092E20120E488E1E2
+:103A200090E00FB6F894A895809360000FBE2093A5
+:103A3000600080E00E94EC0983B7817F846083BFCF
+:103A400083B7816083BF7894889583B78E7F83BF67
+:103A500088E10FB6F89480936000109260000FBE6A
+:103A6000089508950E9469030E947C030E94311DFD
+:103A70000E94710491E0811101C090E0892F0895A6
+:103A80000E94B8150E94EF100C94EC0982E084BDEE
+:103A900093E095BD9AEF97BD80936E0008952FB780
+:103AA000F8948091E3019091E401A091E501B09137
+:103AB000E6012FBF0895CF92DF92EF92FF920F930E
+:103AC0001F932FB7F8944091E3015091E401609166
+:103AD000E5017091E6012FBF6A017B01EE24FF240E
+:103AE0008C0120E030E0C016D106E206F30610F4A7
+:103AF000415051099A01281B390BC9011F910F919F
+:103B0000FF90EF90DF90CF9008951F920F920FB625
+:103B10000F9211248F939F93AF93BF938091E301F2
+:103B20009091E401A091E501B091E6010196A11DFB
+:103B3000B11D8093E3019093E401A093E501B0935C
+:103B4000E601BF91AF919F918F910F900FBE0F90A3
+:103B50001F9018950E94EC0DF8942FEF87EA91E6DC
+:103B6000215080409040E1F700C0000087E090EBDA
+:103B7000DC018093030290930402A0930502B093AA
+:103B800006029CE088E10FB6F894A8958093600047
+:103B90000FBE90936000FFCF0E94041E811102C0EF
+:103BA0000E94EA1D0E940F1E8093E1010E94171ED1
+:103BB00090E09093F5018093F40187FB882780F9CA
+:103BC00080930D010E94131E682F70E080E090E04A
+:103BD0000C9478196DEE7EEF80E090E00E94522404
+:103BE00060E082E090E00E94402460E083E090E0AA
+:103BF0000E94402460E084E090E00E94402460E065
+:103C000085E090E00C94402480E090E00E943A240B
+:103C100021E08D3E9E4F09F020E0822F089582E042
+:103C200090E00C94322483E090E00C94322484E001
+:103C300090E00C943224682F84E090E00C944024AF
+:103C40008091E90180FF0BC06091130185E0689FBE
+:103C5000B001112475956795759567952BC081FF07
+:103C600009C06091130185E0689FB001112475952A
+:103C7000679520C082FF07C06091130185E0689FAF
+:103C8000B001112417C09091EA019923D1F06091FD
+:103C90001201961788F72091130185E0289F900163
+:103CA0001124929FA001939F500D112470E0CA012E
+:103CB0000E9404246038710540F46115710539F0E3
+:103CC00002C065E070E0862F08958FE7089581E0D7
+:103CD00008958091E90180FF08C06091110170E0B2
+:103CE000759567957595679521C081FF06C06091B0
+:103CF000110170E07595679519C082FF04C060914D
+:103D0000110170E010C09091EA019923C1F0609117
+:103D100010019617A0F780911101899FC00111240D
+:103D200070E00E9404246038710528F46115710563
+:103D300021F0862F08958FE7089581E0089561E0CE
+:103D400070E0F4CF803F21F40E94201E819504C0D2
+:103D5000813F29F40E94201E8093ED010895823F47
+:103D600021F40E94201E819504C0833F29F40E9403
+:103D7000201E8093EC010895893F19F40E94691E6A
+:103D800005C08A3F31F40E94691E81958093EE013F
+:103D900008958B3F21F40E94691E819504C08C3FD9
+:103DA00029F40E94691E8093EF010895843F21F455
+:103DB0008091EB01816017C0853F21F48091EB0178
+:103DC000826011C0863F21F48091EB0184600BC0BA
+:103DD000873F21F48091EB01886005C0883F31F472
+:103DE0008091EB0180618093EB0108958D3F21F478
+:103DF0008091E90181600BC08E3F21F48091E9013F
+:103E0000826005C08F3F29F48091E901846080932E
+:103E1000E9010895803F39F48091ED0187FF6CC07E
+:103E20001092ED0169C0813F29F48091ED011816CF
+:103E3000BCF362C09091EC01823F29F497FF5CC013
+:103E40001092EC0159C0833F19F41916CCF354C0F9
+:103E5000893F41F48091EE0118160CF04DC010928C
+:103E6000EE014AC08A3F29F48091EE0187FF44C0E9
+:103E7000F6CF8B3F39F48091EF0187FF3DC0109260
+:103E8000EF013AC08C3F29F48091EF011816BCF382
+:103E900033C0843F21F48091EB018E7F17C0853FB2
+:103EA00021F48091EB018D7F11C0863F21F4809138
+:103EB000EB018B7F0BC0873F21F48091EB01877F63
+:103EC00005C0883F31F48091EB018F7E8093EB0138
+:103ED00013C08D3F21F48091E9018E7F0BC08E3F8E
+:103EE00021F48091E9018D7F05C08F3F29F48091F5
+:103EF000E9018B7F8093E9018091EC0181110EC073
+:103F00008091ED0181110AC08091EE01811106C0FE
+:103F10008091EF01811102C01092EA0108958BEEA9
+:103F200091E00E9406110E944F1D9093E80180933A
+:103F3000E70108951F93CF93DF938091E70190915C
+:103F4000E8010E945B1DAC019091EA01992321F0E8
+:103F50002091140130E006C0209115018AE0289FCD
+:103F6000900111244217530708F486C08091EC0198
+:103F7000C091ED01D091EE011091EF01811107C0C8
+:103F8000C11176C0D11174C0111172C075C09F3FAC
+:103F900019F09F5F9093EA01181624F40E94201EE6
+:103FA0008093EC018091EC0187FF05C00E94201EE8
+:103FB00081958093EC011C1624F40E94201E8093AE
+:103FC000ED018091ED0187FF05C00E94201E8195C3
+:103FD0008093ED016091EC01662339F1C091ED0110
+:103FE000CC2319F1772767FD7095872F972F0E94B3
+:103FF000152323E333E343E35FE30E9479230E9425
+:10400000E2226093EC016C2F772767FD7095872F74
+:10401000972F0E94152323E333E343E35FE30E94DA
+:1040200079230E94E2226093ED011D1624F40E9480
+:10403000691E8093EE018091EE0187FF05C00E940A
+:10404000691E81958093EE01111624F40E94691E69
+:104050008093EF018091EF0187FF05C00E94691EE8
+:1040600081958093EF01DF91CF911F910C948F1F69
+:104070009F3F09F08ECF96CFDF91CF911F9108958A
+:10408000EBEEF1E085E0DF011D928A95E9F71092F1
+:10409000EA011092E9010895833081F128F481301A
+:1040A00059F08230D1F00895853009F449C0B8F153
+:1040B000863009F456C0089580911501262F30E00E
+:1040C000280F311D2F3F310524F4680F609315012F
+:1040D00008958FEF80931501089580911401262F84
+:1040E00030E0280F311D2F3F310524F4680F609315
+:1040F000140108958FEF80931401089580911301A6
+:10410000262F30E0280F311D2F3F310524F4680F92
+:104110006093130108958FEF8093130108958091A8
+:104120001201262F30E0280F311D2F3F310524F4D6
+:10413000680F6093120108958FEF80931201089524
+:1041400080911101262F30E0280F311D2F3F3105BE
+:1041500024F4680F6093110108958FEF809311018B
+:10416000089580911001262F30E0280F311D2F3F38
+:10417000310524F4680F6093100108958FEF809348
+:1041800010010895833011F128F4813049F0823014
+:1041900091F00895853081F120F18630C1F10895C4
+:1041A00080911501681720F4861B809315010895EE
+:1041B00010921501089580911401681720F4861B50
+:1041C00080931401089510921401089580911301B1
+:1041D000681720F4861B8093130108951092130131
+:1041E000089580911201681720F4861B80931201B4
+:1041F000089510921201089580911101681720F41A
+:10420000861B8093110108951092110108958091E9
+:104210001001681720F4861B8093100108951092F6
+:10422000100108950F931F938D3109F471C008F0A8
+:1042300045C0803109F485C008F5873009F46FC0A6
+:1042400068F4863009F0ADC08091E101817F8E7FF6
+:104250008093E10181E08093F101A4C08B3009F4E7
+:104260009EC08E3009F09DC08091E10182FB222723
+:1042700020F991E0922790FB82F96CC0863109F415
+:104280008EC060F4813109F08CC00E94B815909105
+:104290000D0181E0892780930D0181C0893109F4E6
+:1042A0007EC08B3109F07DC08091E10181FB222726
+:1042B00020F991E0922790FB81F94CC0853309F4F5
+:1042C00066C048F4873209F462C008F44FC08932EE
+:1042D00009F45DC066C0833438F48A3308F044C002
+:1042E000883309F45CC05DC0833409F450C088345D
+:1042F00009F057C00E94B8150FEF13ED20E30150ED
+:1043000010402040E1F700C000000E94AA1D47C0F5
+:104310000E949C220E94EF100E94EC0940C09091E4
+:10432000E101892F8095817080FB90F929F09660DA
+:1043300098609093E10136C0997F977F9093E10157
+:104340002EC08091E10183FB222720F991E0922782
+:1043500090FB83F98093E101992309F18091E101B8
+:1043600081608093E1011BC0895301C08D5141E000
+:1043700050E060E070E08A019B0104C0000F111F53
+:10438000221F331F8A95D2F7C901B80104C061E02A
+:1043900070E080E090E00E9478190E94B81581E0FA
+:1043A00001C080E01F910F91089580E0089580E0A2
+:1043B00008958E518A3030F4E82FF0E0E65DFE4F2C
+:1043C0008081089580E00895CF93C82F8091F101F6
+:1043D000813079F018F08230E9F186C0E0910E0169
+:1043E000F0910F018081813169F0823209F07EC045
+:1043F00009C0E0910E01F0910F018081813111F02F
+:10440000823261F48C2F0E94D521811104C08C2F3F
+:104410000E9412211DC081E090E01AC08C2F0E94E2
+:10442000D721811114C0C43179F048F4CB3079F030
+:10443000C03109F05FC082E08093F10108C0C93249
+:1044400019F0C83321F056C01092F10153C081E039
+:10445000817052C0C93281F110F5C43169F1A8F4FC
+:10446000C73009F045C08AE08093150194E190932C
+:10447000140193E0909313018093120188E08093DC
+:10448000110188E28093100133C082EE8C0F8630D8
+:1044900078F58C2F0E94D9218093F00129C0CE3469
+:1044A000E9F020F4CB3421F56AE013C0C13579F08E
+:1044B000C235F1F461E00DC08091F001882319F05C
+:1044C0001092F00115C081E08093F10115C061E008
+:1044D00006C08091F0010E944C200AC06AE08091E1
+:1044E000F0010E94C22004C01092F10180E004C0DB
+:1044F00081E002C080E0ACCFCF910895E1E8F0E028
+:104500008081886080838081816080838FB7F89408
+:1045100093E09093890090ED909388008FBF089569
+:10452000EFE6F0E08081826080830895EFE6F0E0BE
+:1045300080818D7F80830895EFE6F0E0908182E0B6
+:104540008927808308951F920F920FB60F9211242E
+:104550002F933F934F935F936F937F938F939F938B
+:10456000AF93BF93EF93FF938091F2019091F3018A
+:1045700001969093F3018093F201811103C082E0D0
+:104580000E94EC09E091F301E695E695F0E0E75131
+:10459000FB4FE4918091F2018E1303C080E00E94F2
+:1045A000EC09FF91EF91BF91AF919F918F917F9116
+:1045B0006F915F914F913F912F910F900FBE0F9090
+:1045C0001F90189504D06894B1118DC0089570D0D3
+:1045D00088F09F5790F0B92F9927B751A0F0D1F0EC
+:1045E000660F771F881F991F1AF0BA95C9F712C076
+:1045F000B13081F077D0B1E0089574C0672F782F83
+:104600008827B85F39F0B93FCCF3869577956795E1
+:10461000B395D9F73EF490958095709561957F4F4D
+:104620008F4F9F4F0895E89409C097FB3EF49095F3
+:104630008095709561957F4F8F4F9F4F9923A9F07B
+:10464000F92F96E9BB279395F6958795779567950A
+:10465000B795F111F8CFFAF4BB0F11F460FF1BC04E
+:104660006F5F7F4F8F4F9F4F16C0882311F096E9E1
+:1046700011C0772321F09EE8872F762F05C066238F
+:1046800071F096E8862F70E060E02AF09A95660F48
+:10469000771F881FDAF7880F9695879597F9089501
+:1046A00057FD9058440F551F59F05F3F71F04795E3
+:1046B000880F97FB991F61F09F3F79F087950895C8
+:1046C000121613061406551FF2CF4695F1DF08C0E7
+:1046D000161617061806991FF1CF86957105610504
+:1046E00008940895E894BB2766277727CB0197F9AC
+:1046F00008950BD078C069D028F06ED018F09523BB
+:1047000009F05AC05FC01124EECFCADFA0F3959F15
+:10471000D1F3950F50E0551F629FF001729FBB27A8
+:10472000F00DB11D639FAA27F00DB11DAA1F649F54
+:104730006627B00DA11D661F829F2227B00DA11D07
+:10474000621F739FB00DA11D621F839FA00D611D8D
+:10475000221F749F3327A00D611D231F849F600DAE
+:10476000211D822F762F6A2F11249F5750408AF0E7
+:10477000E1F088234AF0EE0FFF1FBB1F661F771F73
+:10478000881F91505040A9F79E3F510570F014C00A
+:10479000AACF5F3FECF3983EDCF38695779567955B
+:1047A000B795F795E7959F5FC1F7FE2B880F911D91
+:1047B0009695879597F9089597F99F6780E870E037
+:1047C00060E008959FEF80EC089500240A94161687
+:1047D000170618060906089500240A9412161306EF
+:1047E000140605060895092E0394000C11F488237D
+:1047F00052F0BB0F40F4BF2B11F460FF04C06F5F99
+:104800007F4F8F4F9F4F089597FB072E16F400940C
+:1048100007D077FD09D00E941E2407FC05D03EF486
+:10482000909581959F4F0895709561957F4F08955C
+:10483000EE0FFF1F0590F491E02D0994AA1BBB1BFE
+:1048400051E107C0AA1FBB1FA617B70710F0A61B90
+:10485000B70B881F991F5A95A9F780959095BC01B1
+:10486000CD010895F999FECF92BD81BDF89A99279F
+:1048700080B50895A8E1B0E042E050E00C945A24DD
+:10488000262FF999FECF92BD81BDF89A019700B409
+:10489000021639F01FBA20BD0FB6F894FA9AF99AA9
+:1048A0000FBE08950196272F0E9441240C944024A6
+:1048B000DC01CB01FC01F999FECF06C0F2BDE1BDE0
+:1048C000F89A319600B40D9241505040B8F70895CF
+:0448D000F894FFCF8A
+:1048D4000220EE097C0A590A250AF1090101CE01D8
+:1048E40028080A03140A404D3639A9045C04260436
+:1048F400ED0380039903B203CB030102030405060D
+:044904000708090097
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/townk_osx/config.h b/keyboards/ergodox_ez/keymaps/townk_osx/config.h new file mode 100644 index 000000000..58ba690af --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/townk_osx/config.h @@ -0,0 +1,92 @@ +/* +Copyright 2012 Jun Wako <wakojun@gmail.com> +Copyright 2013 Oleg Kostyuk <cub.uanic@gmail.com> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x1307 +#define DEVICE_VER 0x0001 +#define MANUFACTURER ErgoDox EZ +#define PRODUCT ErgoDox EZ +#define DESCRIPTION t.m.k. keyboard firmware for Ergodox + +/* key matrix size */ +#define MATRIX_ROWS 14 +#define MATRIX_COLS 6 + +#define MOUSEKEY_DELAY 100 +#define MOUSEKEY_INTERVAL 20 +#define MOUSEKEY_MAX_SPEED 3 +#define MOUSEKEY_TIME_TO_MAX 10 + +#define TAPPING_TOGGLE 1 + +#define COLS (int []){ F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } +#define ROWS (int []){ D0, D5, B5, B6 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 2 +#define TAPPING_TERM 200 +#define IGNORE_MOD_TAP_INTERRUPT // this makes it possible to do rolling combos (zx) with keys that convert to other keys on hold (z becomes ctrl when you hold it, and when this option isn't enabled, z rapidly followed by x actually sends Ctrl-x. That's bad.) + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || \ + keyboard_report->mods == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) \ +) + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +// #define NO_DEBUG + +/* disable print */ +// #define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION +//#define DEBUG_MATRIX_SCAN_RATE +#define ONESHOT_TAP_TOGGLE 2 +#define ONESHOT_TIMEOUT 3000 + +#endif diff --git a/keyboards/ergodox_ez/keymaps/townk_osx/keymap.c b/keyboards/ergodox_ez/keymaps/townk_osx/keymap.c new file mode 100644 index 000000000..07e58a491 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/townk_osx/keymap.c @@ -0,0 +1,285 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "action_util.h" +#include "led.h" +#include "keymap.h" +#include "timer.h" + +/* + +# Why this Layout + +This layout was based on Kinesis layout and other ErgoDox user layouts +available. It's target to be used on a MacOS but I'm pretty sure it can be +addapted to Windows and/or Linux easily. + +## Function Key + +The `fn` key work almost like it would in any other keyboard with the exception +it has a semi-sticky behavior. What does that mean? + +Well, if you press the `fn` and release it, the keyboard will be put on the +_function layout_ and the next key stroke will be processed as if the `fn` key +was pressed. Aftwards, the leyout get back to _normal_. If you hold `fn` and +press any other key, when you release them, the keyboard leyout is back to +_normal_. + +While pressing the `fn` with the left hand and strikeing the other keys on the +right hand is farly easy, the same cannot being said for the other keys on the +left side. So, instead of trying to do contorcionism with my left hand, I +decided to do a semi-sticky version of `fn`. This way, I can press the `fn` +key with my pinky, release it and press the `1` key to issue an `F1` to the +operating system. + +## Key-Pad Key + +The `key pad` key is a layout switch key. If pressed, it will put the keyboard +on the _key pad layout_ and stay there until key is pressed again. + +This is used to make the keyboard behave mostly like a **num pad keyboard**. + +## Notes +- Regardless in which layout you are, keys from other layouts are not + accessible. This means that if you are on the _key pad layout_, the left hand + will be pretty much unusable. + Of course that like anything else, there are exceptions to this rule. + Modifiers should remain accessible throughout the layers. +- The _shift key_ is, like the _function key_, also configured to have a sticky + behavior. +- All sticky keys have a timeout of 3 seconds. + +*/ +#define BASE 0 +#define KEYPAD 1 +#define FN 2 + +#define MACRO_TMUX_ESC 10 +#define MACRO_TMUX_PASTE 11 +#define MACRO_OSX_COPY 12 +#define MACRO_OSX_PASTE 13 + +#define M_TESC M(MACRO_TMUX_ESC) +#define M_TPASTE M(MACRO_TMUX_PASTE) +#define M_OSXCPY M(MACRO_OSX_COPY) +#define M_OSXPST M(MACRO_OSX_PASTE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Base Layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | `~ | 1 | 2 | 3 | 4 | 5 | ESC | | Pwr | 6 | 7 | 8 | 9 | 0 | - _ | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | Tab | Q | W | E | R | T | F16 | | F17 | Y | U | I | O | P | = + | + * |-----------+------+------+------+------+------| Meh | | Meh |------+------+------+------+------+-----------| + * | \ (Ctrl) | A | S | D | F | G |------| |------| H | J | K | L | ; | ' " (Ctrl)| + * |-----------+------+------+------+------+------| F18 | | F19 |------+------+------+------+------+-----------| + * | LShift | Z | X | C | V | B | Hyper| | Hyper| N | M | , | . | / | RShift | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | FN | KPAD |LCtrl | LAlt | LGui | | RGui | RAlt | RCtrl| KPAD | FN | + * `-----------------------------------' `-----------------------------------' + * ,-------------. ,-------------. + * | M(0) | M(1) | | M(2) | M(3) | + * ,------|------|------| |------+------+------. + * | | | Home | | PgUp | | | + * |Backsp| Del |------| |------| Enter| Space| + * | | | End | | PgDn | | | + * `--------------------' `--------------------' + * + * M(0) = Ctrk+A Esc + * (this is used to issue the Esc key to the Tmux application) + * M(1) = Ctrk+A P + * (this is used to issue the Paste key to the Tmux application) + * M(2) = Cmd+C + * M(3) = Cmd+V + */ +[BASE]=KEYMAP(//left half + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, MEH_T(KC_F16), + CTL_T(KC_BSLS), KC_A, KC_S, KC_D, KC_F, KC_G, + KC_FN2, KC_Z, KC_X, KC_C, KC_V, KC_B, ALL_T(KC_F18), + KC_FN1, TG(KEYPAD), KC_LCTRL, KC_LALT, KC_LGUI, + M_TESC, M_TPASTE, + KC_HOME, + KC_BSPC, KC_DELT, KC_END, + //right half + KC_POWER, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + MEH_T(KC_F17), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_EQL, + KC_H, KC_J, KC_K, KC_L, KC_SCLN, CTL_T(KC_QUOT), + ALL_T(KC_F19), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_FN2, + KC_RGUI, KC_RALT, CTL_T(KC_LBRC), KC_FN3, KC_FN1, + M_OSXCPY, M_OSXPST, + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC), + +/* Keymap 1: KeyPad Layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | | | LClk | RClk | MClk | | | | BTab | Clear| / | * | ^ | ( | | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | M.Accel 2 | |ScrlUp| U |ScrlDn| | | | Tab | 7 | 8 | 9 | + | ) | | + * |-----------+------+------+------+------+------| | | |------+------+------+------+------+-----------| + * | M.Accel 1 | | L | D | R | |------| |------| 4 | 5 | 6 | - | | | + * |-----------+------+------+------+------+------| | |Return|------+------+------+------+------+-----------| + * | M.Accel 0 | |ScrlL | |ScrlR | | | | | 1 | 2 | 3 | = | | | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | | XXXX | | | | | 0 | . | , | XXXX | | + * `-----------------------------------' `-----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | XXXX | | + * | | |------| |------| XXXX | | + * | | | | | | XXXX | | + * `--------------------' `--------------------' + */ +[KEYPAD]=KEYMAP(//left half + KC_NO, KC_NO, KC_MS_BTN1, KC_MS_BTN2, KC_MS_BTN3, KC_NO, KC_NO, + KC_MS_ACCEL2, KC_NO, KC_MS_WH_UP, KC_MS_U, KC_MS_WH_DOWN, KC_NO, KC_NO, + KC_MS_ACCEL1, KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, + KC_MS_ACCEL0, KC_NO, KC_MS_WH_LEFT, KC_NO, KC_MS_WH_RIGHT, KC_NO, KC_NO, + KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, + KC_NO, + KC_NO, KC_NO, KC_NO, + //right half + LSFT(KC_TAB), KC_CLEAR, KC_KP_SLASH, KC_KP_ASTERISK, KC_CIRCUMFLEX, KC_LPRN, KC_NO, + KC_TAB, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, KC_RPRN, KC_NO, + KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_MINUS, KC_NO, KC_NO, + KC_KP_ENTER, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_EQUAL, KC_NO, KC_NO, + KC_KP_0, KC_KP_DOT, KC_KP_COMMA, KC_TRNS, KC_NO, + KC_NO, KC_NO, + KC_NO, + KC_NO, KC_TRNS, KC_NO), + +/* Keymap 2: Functions Layer + * + * ,-----------------------------------------------------. ,-----------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | Vol. Up | + * |-----------+------+------+------+------+-------------| |------+------+------+------+------+------+-----------| + * | | Stop | Rw | Rec | FF | | XXXX | | XXXX | | | | | | Vol. Down | + * |-----------+------+------+------+------+------| XXXX | | XXXX |------+------+------+------+------+-----------| + * | CapsLock | Eject| Prev | Play | Next | |------| |------| Left | Down | Up | Right| | Mute | + * |-----------+------+------+------+------+------| XXXX | | XXXX |------+------+------+------+------+-----------| + * | L Shift | | | | | | XXXX | | XXXX | | | | | | R Shift | + * `-----------+------+------+------+------+-------------' `-------------+------+------+------+------+-----------' + * | XXXXX | | XXXX | XXXX | XXXX | | XXXX | XXXX | XXXX | | XXXXX | + * `-----------------------------------' `-----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + * + * XXX = These keys are transparent keys that, when pressed, they issue the key from the previous layer. + */ +[FN]=KEYMAP(//left half + KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_NO, KC_MEDIA_STOP, KC_MEDIA_REWIND, KC_MEDIA_SELECT, KC_MEDIA_FAST_FORWARD, KC_NO, KC_TRNS, + KC_CAPS, KC_MEDIA_EJECT, KC_MEDIA_PREV_TRACK, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_NEXT_TRACK, KC_NO, + KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, + KC_NO, KC_NO, + KC_NO, + KC_NO, KC_NO, KC_NO, + //right half + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_VOLU, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLD, + KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_NO, KC_MUTE, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_RSFT, + KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, + KC_NO, KC_NO, + KC_NO, + KC_NO, KC_NO, KC_NO)}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_ONESHOT(FN), + [2] = ACTION_MODS_ONESHOT(MOD_LSFT), // Sticky shift light. Tap for the next keypress to be shifted. Hold for regular shift. + [3] = ACTION_LAYER_TAP_KEY(KEYPAD, KC_RBRC), +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + // MACRODOWN only works in this function + switch(id) { + case MACRO_TMUX_ESC: + if (record->event.pressed) { + return MACRO(D(LCTRL), T(A), U(LCTRL), D(ESC), END); + } + return MACRO(U(ESC), END); + case MACRO_TMUX_PASTE: + if (record->event.pressed) { + return MACRO(D(LCTRL), T(A), U(LCTRL), D(P), END); + } + return MACRO(U(P), END); + case MACRO_OSX_COPY: + if (record->event.pressed) { + return MACRO(D(LGUI), D(C), END); + } + return MACRO(U(C), U(LGUI), END); + case MACRO_OSX_PASTE: + if (record->event.pressed) { + return MACRO(D(LGUI), D(V), END); + } + return MACRO(U(V), U(LGUI), END); + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { +}; + +uint8_t current_layer = BASE; + +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + uint8_t layer = biton32(layer_state); + + ergodox_led_all_off(); + ergodox_led_all_set(LED_BRIGHTNESS_LO); + + switch (layer) { + case BASE: + current_layer = BASE; + break; + case KEYPAD: + current_layer = KEYPAD; + break; + default: + // none + break; + } + + // layer leds + if (current_layer == KEYPAD) { + ergodox_right_led_3_on(); + } + + // capslock + if (host_keyboard_leds() & (3<<USB_LED_CAPS_LOCK)) { + ergodox_right_led_1_on(); + } + + // Temporary leds + + // The function layer takes over other layers and we need to reflect that on the leds. + // If the current layer is the BASE, we simply turn on the FN led, but if the current + // layer is the KEYPAD, than we must turn it off before turning on the FN led. + if (layer == FN && !has_oneshot_layer_timed_out()) { + ergodox_right_led_3_off(); + ergodox_right_led_2_on(); + } + + // if the shifted is pressed I show the case led in a brighter color. This is nice to + // differenciate the shift from the capslock. + // Notice that I make sure that we're not using the shift on a chord shortcut (pressing + // shift togather with other modifiers). + if((keyboard_report->mods & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) && // is shift pressed and there is no other + !(keyboard_report->mods & (~MOD_BIT(KC_LSFT) & ~MOD_BIT(KC_RSFT)))) || // modifier being pressed as well + (get_oneshot_mods() & (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) && !has_oneshot_mods_timed_out())) { // or the one shot shift didn't timed out + ergodox_right_led_1_set(LED_BRIGHTNESS_HI); + ergodox_right_led_1_on(); + } +}; diff --git a/keyboards/ergodox_ez/keymaps/townk_osx/makefile.mk b/keyboards/ergodox_ez/keymaps/townk_osx/makefile.mk new file mode 100644 index 000000000..e757557bd --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/townk_osx/makefile.mk @@ -0,0 +1,4 @@ +# I don't want my keyboard blinking lights when is suppose to be asleep. +SLEEP_LED_ENABLE = no + +CONFIG_H = keymaps/$(KEYMAP)/config.h diff --git a/keyboards/ergodox_ez/keymaps/townk_osx/readme.md b/keyboards/ergodox_ez/keymaps/townk_osx/readme.md new file mode 100644 index 000000000..c2853ca17 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/townk_osx/readme.md @@ -0,0 +1,77 @@ +# Townk's Keymap + +Trying to take care of an enjury on my arm I borrow an ergonomic keyboard from +a frient ([Kinesis Advantage](http://www.kinesis-ergo.com/shop/advantage-pro-for-pc-mac/)). + +I really enjoyed my time with it but there were some anoyancies: + +* The curvature on the keys bothered me since I'm a Vim user and using the + motion keys on my editor was awkard. +* I had to spend too much time remapping the keyboard to make some symbol keys + more accessible to me. +* The fact that my hands had to stay close to each other was a bit stressfull + to my sholders. + +After a long research I find out that Ergodox EZ would be perfect for my needs +and purchase one. Before the keyboard even got in my hands I started to think +on the layout I would use on it and soon enough I planed couple adjustments +from the Kinesis I was using so far. + +## The layout + +Here are the layout mapping in images so you can have a glimpse on it: + +![Base Layout](townk_osx_base.png) +![fn Layout](townk_osx_fn.png) +![Keypad & Mouse Layout](townk_osx_keypad.png) + +Notice that, differently from the default behavior, my layer keys are not transparent +by default, which means that if you press any non-labeled white key, nothing will be +handled to the OS. + +### One shot keys + +It all started with the access to the function keys (F1, F2, F3...), since +those keys are located on a different layer I needed a way to press them with +minimal effort without disrupting my flow. + +For me, togglihg a layer to press a button and than toggle it back is a waste +of time (although I admit it's a single tap from what I have), so I decided to +do it as a one shot key. I could press it and the next pressed key would be +handled by the target layer which just after it delivers the key to the OS it +would get back to the previous layer. + +After setting up my layout to do just that I realized that occasionally I +would stop myseld on the middle of the process and the one shot layer would be +still triggered until I press any other key. So to prevent me from tapping +keys I don't want I added a timeout of 3 seconds for the one shot actions. + +Ultimately I tested the shift key as a one shot one and really like it, so +here you have it, all the one shot keys on my layout. + +## Glossary + +If you're not familiar with the Mac symbols used on some keys, here is a +reference to them: + +| Symbol | Description | +| :----: | ------------------- | +| ⌘ | Command | +| ⇪ | Caps Lock | +| ⇧ | Shift | +| ⌥ | Option (alt) | +| ⎋ | Esc | +| ⇥ | Tab forward | +| ⇤ | Tab backward | +| ⌃ | Control | +| ␣ | Space | +| ⌫ | Backspace | +| ⌦ | Delete | +| ⏎ | Enter | +| ⌤ | Return | +| ⌽ | Power on/off button | +| ↖ | Home | +| ↘ | End | +| ⇞ | Page up | +| ⇟ | Page down | +| ⌧ | Clear | diff --git a/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_base.png b/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_base.png Binary files differnew file mode 100644 index 000000000..f9bc8b443 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_base.png diff --git a/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_fn.png b/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_fn.png Binary files differnew file mode 100644 index 000000000..983b72348 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_fn.png diff --git a/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_keypad.png b/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_keypad.png Binary files differnew file mode 100644 index 000000000..8f04b4327 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/townk_osx/townk_osx_keypad.png diff --git a/keyboards/ergodox_ez/keymaps/twey/compiled.hex b/keyboards/ergodox_ez/keymaps/twey/compiled.hex new file mode 100644 index 000000000..dafb36705 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/twey/compiled.hex @@ -0,0 +1,1178 @@ +:100000000C94CE020C9412030C9412030C94120361
+:100010000C9412030C9412030C9412030C9412030C
+:100020000C9412030C9412030C94040E0C94D60E30
+:100030000C9412030C9412030C9412030C941203EC
+:100040000C9412030C94E0220C9412030C941203EF
+:100050000C9412030C94731C0C9412030C94120352
+:100060000C9412030C9412030C9412030C941203BC
+:100070000C9412030C9412030C9412030C941203AC
+:100080000C9412030C9412030C9412030C9412039C
+:100090000C9412030C9412030C9412030C9412038C
+:1000A0000C9412030C9412030C941203430F650F6B
+:1000B0005310650F5310AA0FCD0F53102210351097
+:1000C000041304133313331369138913BA14BA14C2
+:1000D0009413BA1444144414AB14BA14BA14B414D8
+:1000E00051145114511451145114511451145114E8
+:1000F00051145114511451145114511451145114D8
+:100100006314701477147E1488140000F0A32E007A
+:100110004C002A00E100015200001E0034000400DF
+:1001200033000000E3001F00360012001400350009
+:1001300028002000370008000D005000E2002100D8
+:10014000130018000E004F00000022001C000C00DD
+:100150001B0000004B000030290000002B000000B5
+:100160004E00000039000000280000004A00230073
+:1001700009000700050000004D0024000A000B00E4
+:1001800010005200E6002500060017001A0051007A
+:10019000E40026001500110019002F002C00270094
+:1001A0000F0016001D0030000352310038002D00F2
+:1001B000E500015200000100010001000100010002
+:1001C00000003A001E0220022202010001003B0052
+:1001D0001F0221022302010001003C002F0226021F
+:1001E0002F00010001003D00300227023000010015
+:1001F00001003E003102350035020000010001001F
+:1002000001000000010000000100010001000000E9
+:100210000100000001003F005200510024020000D4
+:1002200001004000240021001E00010001004100E7
+:10023000250022001F003700010042002600230095
+:10024000200027000100430025022E0231002E006D
+:100250000100440045000100010001000000000011
+:100260000000000000000100000000001E0014005B
+:1002700014000000000000001E001A00160000001C
+:10028000190000001E000800070001000600000021
+:100290001E00150009000100000000001E001C00E7
+:1002A0001C000000000001001C0000001C000000F9
+:1002B000000000001C0000001C0000000000000006
+:1002C0001E001C001C000000000000001E001800A2
+:1002D0000D000100000000001E000C000E000100D7
+:1002E000100000001E0012000F00000011000000AE
+:1002F0001E00130033000000010000001E002F004C
+:1003000034000100000001000100010001000100B3
+:1003100000000100010001000100010001000100D6
+:100320000100F2000100010001000100F000F100F5
+:100330000100F400010001000100F3000100F500DC
+:1003400001000100010001000100000001000100A6
+:100350000100000001000000010001000100000098
+:100360000100000001000100010001000100000087
+:1003700001000100B600AC000100A900010001006D
+:100380000100AE000100AA00B6000100B700AB00FA
+:100390000100A800010001000100010001000100AE
+:1003A000010001000100010001000100000016032E
+:1003B0004500720067006F0044006F007800200065
+:1003C00045005A00000016034500720067006F00E8
+:1003D00044006F007800200045005A00000004032C
+:1003E000090409026D00040100A0FA0904000001DB
+:1003F00003010100092111010001223F00070581CD
+:100400000308000A09040100010301020009211187
+:10041000010001224D000705820308000A090402B9
+:10042000000103000000092111010001223600072C
+:1004300005830308000A0904030001030000000902
+:100440002111010001223900070584031000011267
+:1004500001100100000008EDFE0713010001020079
+:100460000105010906A101050719E029E715002585
+:100470000195087501810205081901290595057581
+:10048000019102950175039101050719002977155E
+:10049000002501957875018102C005010980A1013F
+:1004A000850216010026B7001A01002AB700751050
+:1004B00095018100C0050C0901A101850316010009
+:1004C000269C021A01002A9C02751095018100C029
+:1004D00005010902A1010901A10005091901290568
+:1004E00015002501950575018102950175038101AE
+:1004F0000501093009311581257F950275088106AE
+:1005000009381581257F950175088106050C0A3883
+:10051000021581257F950175088106C0C005010976
+:1005200006A101050719E029E715002501950875C1
+:1005300001810295017508810105081901290595B8
+:1005400005750191029501750391010507190029AF
+:10055000FF150025FF950675088100C0000000000A
+:1005600000000000000000010204060A0F17202C02
+:100570003A4A5D71879DB3C7DAE9F5FCFFFCF5E9FE
+:10058000DAC7B39D87715D4A3A2C20170F0A06041B
+:1005900002010000000000000000000011241FBE46
+:1005A000CFEFDAE0DEBFCDBF04B603FE24C08091FA
+:1005B000FB019091FC01A091FD01B091FE018730FB
+:1005C000904BA740B04BB9F41092FB011092FC0184
+:1005D0001092FD011092FE0114BE84B7877F84BF84
+:1005E00088E10FB6F89480936000109260000FBE0F
+:1005F000E0E0FFE3099511E0A0E0B1E0EEE4F9E40A
+:1006000002C005900D92A433B107D9F711E0A4E31D
+:10061000B1E001C01D92AB3FB107E1F70E94480B6A
+:100620000C94A5240C9400001092B9008AE08093E9
+:10063000B800089594EA9093BC009091BC0097FF95
+:10064000FCCF9091B900987F983021F0903111F053
+:1006500081E008958093BB0084E88093BC00809182
+:10066000BC0087FFFCCF8091B900887F883111F0F2
+:10067000803471F780E0089584E98093BC00809114
+:10068000BC0084FDFCCF08958093BB0084E8809378
+:10069000BC008091BC0087FFFCCF9091B900987F8F
+:1006A00081E0983209F480E0089584E88093BC00EA
+:1006B0008091BC0087FFFCCF8091BB0008958091A2
+:1006C0000101811115C080E40E941A038093010189
+:1006D00081110CC082E10E944403809301018111C9
+:1006E00005C08FEF0E944403809301010E943C03E8
+:1006F00084B1807F84B985B1807F85B98AB1837FD9
+:100700008AB98BB1837F8BB93E98469808950E9431
+:100710001A05809301010E945F0380B38C7080BB37
+:1007200081B3836F81BBA5E3B1E0E3E4F1E08EE048
+:100730008E0F11921D928E13FCCF0C940405BF9264
+:10074000CF92DF92EF92FF920F931F93CF93DF939D
+:1007500080910101882379F0809134018F5F80932B
+:100760003401811108C00E941A0580930101811192
+:1007700002C00E94AC0405E311E0C0E0D0E0DD243B
+:10078000D39482E0C82EEE24E394F12CC730D10537
+:1007900000F580910101811164C080E40E941A0378
+:1007A00080930101811112C082E10E944403809371
+:1007B000010181110BC0C7010C2E01C0880F0A94E2
+:1007C000EAF780950E944403809301010E943C0354
+:1007D00048C0CA30A1F028F4C83059F0C93061F0DF
+:1007E00005C0CC3089F070F0CD3089F0209A28987F
+:1007F00010C0219A29980DC0229A2A980AC0239ADB
+:100800002B9807C0529A01C0539A5B9802C03E9A37
+:10081000469890EA9A95F1F79FB1799902C082E0E3
+:1008200001C080E091709D25982B7C9902C084E0E6
+:1008300001C080E0892B7D9902C038E001C030E022
+:10084000832B7E9902C020E101C020E0822B9FB162
+:100850009095991F9927991F9295990F907E892BB2
+:100860000FC080910101811149C080E40E941A03E8
+:1008700080930101882379F1B12C0E943C038B2DD8
+:10088000F8019081981719F08083C09200010E94AE
+:100890005F0321960F5F1F4FCE30D10509F076CF51
+:1008A00080910001882361F18150809300018823A9
+:1008B00039F08FE99FE00197F1F700C0000020C0F8
+:1008C000A3E4B1E0E5E3F1E0CF01825F91919D9374
+:1008D0008E13FCCF15C083E10E9444038093010175
+:1008E0008111CACF81E40E941A0380930101811112
+:1008F000C3CF0E945503B82EB094BFCF80E0C0CFC5
+:100900000E94AA0481E0DF91CF911F910F91FF9087
+:10091000EF90DF90CF90BF900895E82FF0E0ED5B6F
+:10092000FE4F8081089508950F931F93CF93DF9317
+:10093000C3E4D1E010E00C2F025F899190E00E94A7
+:10094000991B180F0C13F9CF812FDF91CF911F91B5
+:100950000F9108950C94B40556985E9825982D989B
+:1009600026982E9827982F988FEF90E090938900E3
+:100970008093880090938B0080938A0090938D00E1
+:1009800080938C00259A2D9A2FEF80E792E02150DA
+:1009900080409040E1F700C00000269A2E9A2FEF89
+:1009A00080E792E0215080409040E1F700C00000D5
+:1009B000279A2F9A2FEF80E792E0215080409040B5
+:1009C000E1F700C0000025982D982FEF80E792E016
+:1009D000215080409040E1F700C0000026982E98FA
+:1009E0002FEF80E792E0215080409040E1F700C077
+:1009F000000027982F9856985E9825982D9826984D
+:100A00002E9827982F98089589EA8093800089E08E
+:100A10008093810024982C983F988AB18F748AB96A
+:100A20006E98479A8BB1806B8BB9769A0E94AC0412
+:100A30000C94B30580E280930101809151018111F2
+:100A40000EC00E94140381E0809351012FEF83EDCB
+:100A500090E3215080409040E1F700C0000080E426
+:100A60000E941A038093010181112EC00E94440349
+:100A700080930101811128C00E94440380930101E9
+:100A8000811122C08FE30E944403809301018111F0
+:100A90001BC00E943C0380E40E941A038093010162
+:100AA000811112C08CE00E944403809301018111E6
+:100AB0000BC00E94440380930101811105C08FE3A4
+:100AC0000E944403809301010E943C038091010134
+:100AD0000895CF93DF93EC016091BD017091BE0149
+:100AE0008091BF019091C0010E94A51BCD2BE9F020
+:100AF000823021F082E00E94621903C082E00E94ED
+:100B0000831988E00E94A81185E10E94A81189E05C
+:100B10000E94A81189E10E94A81182E10E94A811F7
+:100B20008FE0DF91CF910C94A81188E00E947012A1
+:100B300085E10E94701289E00E94701289E10E9492
+:100B4000701282E10E9470128FE0DF91CF910C94BD
+:100B50007012611105C0FC01828190E00E9469055C
+:100B600080E090E0089508950F931F938091BD0158
+:100B70009091BE01A091BF01B091C0018C019D0177
+:100B80000470112722273327AC01BD014870552777
+:100B90006627772756985E9825982D9826982E9840
+:100BA00027982F9881FF02C0259A2D9A012B022B9E
+:100BB000032B11F0269A2E9A452B462B472B11F02A
+:100BC000279A2F9A1F910F91089581E0089581E04F
+:100BD00008950C94E70508950F931F93CF93DF9327
+:100BE0008C01FC01C081D181CE010E941E1ABE0180
+:100BF0000E949506EC01B8010E94E905882309F4DA
+:100C00008DC0F8018281882309F44AC080915D017A
+:100C100081111FC0C431F0E5DF0709F051C00E9407
+:100C2000EB0581E080935D010E943D1C90935C0187
+:100C300080935B011092540110925601109255015D
+:100C4000109258011092570110925A0110925901B6
+:100C500065C080915B0190915C010E94491C883CB9
+:100C6000910570F480915401E82FF0E0EE0FFF1F22
+:100C7000EB5AFE4FD183C0838F5F809354014EC0E7
+:100C8000C43880E5D80721F0C538D04501F13AC015
+:100C9000F8018281882341F01092520182E01EC047
+:100CA000C438E0E5DE0759F580915201811106C094
+:100CB00086E20E94A81186E20E94701282E01CC0A7
+:100CC000C438F0E5DF0741F3C538D045D9F4F80161
+:100CD0008281882331F01092530180E20E94BF127A
+:100CE0001DC080915301811106C087E20E94A811A6
+:100CF00087E20E94701280E20E94C6120FC0C538BF
+:100D0000D04529F381E08093520180935301C801BB
+:100D1000DF91CF911F910F910C94E50580E0DF9159
+:100D2000CF911F910F910895089596E0799FF0015A
+:100D3000112494E5899FE00DF11D1124E60FF11DAA
+:100D4000EE0FFF1FE25FFE4F859194910895880F8B
+:100D5000991FFC01E657F040859194910895880F02
+:100D6000991FFC01E65FFE4F8591949108950F93C2
+:100D70001F93CF93DF93EC01811520E3920750F589
+:100D8000C11580E2D80708F0C3C0CB3BD10590F471
+:100D9000C83AD10508F06AC0C53AD10508F05BC071
+:100DA000C430D10508F0D0C1219709F0CAC101E0D3
+:100DB00010E00AC2CF3FD10511F008F0C5C1C03F15
+:100DC000D10508F0A2C0CE01805E9109089708F411
+:100DD000BBC1B7C1C13090E5D90709F4A2C020F565
+:100DE000C0318FE4D80770F4C11590E4D90708F03A
+:100DF00094C0C11521E3D20708F0A3C1DD278E01FD
+:100E0000106CE2C1C115D04509F09BC10E942515A7
+:100E10008FEF94E32CE0815090402040E1F700C038
+:100E200000000E94981CD0C1C11597E5D90758F45D
+:100E3000C03121E5D20708F01CC1C43180E5D807D4
+:100E400008F475C07EC1CE0190578115904108F01D
+:100E500078C1DF7073C1C53AD10509F477C1C63ACC
+:100E6000D10509F076C102E810E4AEC1C83AD10557
+:100E700009F472C1C93AD10509F471C1CA3AD10560
+:100E800009F470C1CB3AD10509F46FC1CC3AD10550
+:100E900009F46EC1CD3AD10509F46DC1C03BD1054D
+:100EA00009F46CC1CE3AD10509F46BC1CF3AD10532
+:100EB00009F46AC1C13BD10509F469C1C23BD1053E
+:100EC00009F468C1C33BD10509F467C1C43BD1052E
+:100ED00009F466C1C53BD10509F465C1C63BD1051E
+:100EE00009F464C1C73BD10509F463C1C83BD1050E
+:100EF00009F462C1C93BD10509F461C1CA3BD105FE
+:100F000009F460C100E014E45FC18E0110655CC1AA
+:100F1000CE019F700E94AF0658C1DF708E01106A2B
+:100F200053C18091DA0181608093DA014DC10E9442
+:100F30003D1E811102C00E94231E0E945A1E90E095
+:100F40009093FB018093FA01C23080E5D80721F429
+:100F50008091FA01816086C0C43090E5D90721F400
+:100F60008091FA0182607EC0C63020E5D20721F46C
+:100F70008091FA01846076C0C83080E5D80719F402
+:100F80008091FA0127C0CA3090E5D90721F48091F9
+:100F9000FA01806167C0CC3020E5D20721F480914E
+:100FA000FA0180625FC0CE3080E5D80721F48091DD
+:100FB000FA01806457C0C03190E5D90721F48091CF
+:100FC000FA0180684FC0C23120E5D20729F4809130
+:100FD000FA018460886046C0C33080E5D80721F4F8
+:100FE0008091FA018E7F3EC0C53090E5D90721F48B
+:100FF0008091FA018D7F36C0C73020E5D20721F4F9
+:101000008091FA018B7F2EC0C93080E5D80719F492
+:101010008091FA0126C0CB3090E5D90721F4809168
+:10102000FA018F7E1FC0CD3020E5D20721F48091D8
+:10103000FA018F7D17C0CF3080E5D80721F4809169
+:10104000FA018F7B0FC0C13190E5D90721F480915F
+:10105000FA018F7707C0C331D04531F48091FA018E
+:101060008B7F877F8093FA018091FA010E945E1E38
+:10107000ABC08D2F99278F70992781309105D9F4B6
+:101080009E012370332702C0880F991F2A95E2F72B
+:101090009C688E0144E0000F111F4A95E1F700277C
+:1010A0001370802B912B53E0CC0FDD1F5A95E1F785
+:1010B000C076DD272FC08230910531F4DC2FCC279C
+:1010C0008E01016F106A80C08330910569F4CE01F2
+:1010D0008370992701E010E002C0000F111F8A956C
+:1010E000E2F7C8019C680FC084309105B9F4CE01C5
+:1010F0008370992701E010E002C0000F111F8A954C
+:10110000E2F7C8019A6823E0CC0FDD1F2A95E1F7CA
+:10111000C07ED7708C010C2B1D2B56C085309105DD
+:1011200031F4DC2FCC278E01046F106A4DC0069776
+:1011300009F04AC0CF71DD27DC2FCC278E01106269
+:1011400043C000E010E040C08E013EC001E810E462
+:101150003BC003E810E438C002EE14E435C009EEE9
+:1011600014E432C00AEE14E42FC005EB14E42CC0E2
+:1011700006EB14E429C007EB14E426C00CEC14E4DD
+:1011800023C00DEC14E420C003E815E41DC00AE8F8
+:1011900015E41AC002E915E417C004E915E414C007
+:1011A00001E216E411C003E216E40EC004E216E404
+:1011B0000BC005E216E408C006E216E405C007E22B
+:1011C00016E402C00AE216E4C801DF91CF911F9134
+:1011D0000F91089596E0799FF001112494E5899F7D
+:1011E000E00DF11D1124E60FF11DEE0FFF1FE25F70
+:1011F000FE4F85919491803E9105E0F4803C9105ED
+:1012000058F58133910509F46FC048F4893291058E
+:1012100009F463C08A32910509F46DC072C0893344
+:101220009105E9F082389105D1F08533910509F4F3
+:101230004DC067C0833E910581F138F4803E910531
+:10124000B9F0823E9105D9F05CC0863E910561F10E
+:10125000873E9105A1F155C00E94A70608952091EF
+:10126000FA0120FD02C021FF4CC080EE90E049C091
+:101270008091FA0180FFF9CF89E390E042C080912C
+:10128000FA0182FF0EC08091FA0184FF03C080E062
+:1012900090E037C083EE90E034C08091FA0182FF85
+:1012A000F2CF82EE90E02DC08091FA0183FF0BC057
+:1012B0008091FA0184FDEBCF87EE90E022C080910F
+:1012C000FA0183FFF5CF86EE90E01BC08091FA0112
+:1012D00085FF07C089E290E014C08091FA0185FF84
+:1012E000F9CF85E390E00DC08091FA0186FF07C039
+:1012F0008AE290E006C08091FA0186FFF9CF81E38F
+:1013000090E00E94B706089508950C948409809196
+:101310006E010895CF93DF9300D01F92CDB7DEB753
+:101320009C018091F101843019F593E099833B830E
+:101330002A839093E9008FEF9091E800815095FD0A
+:1013400006C095ED9A95F1F700008111F5CF8091D7
+:10135000E80085FF0DC040E050E063E070E0CE01A2
+:1013600001960E94F40B8091E8008E778093E8004C
+:101370000F900F900F90DF91CF910895CF93DF934F
+:1013800000D01F92CDB7DEB72091F101243021F5B6
+:1013900022E029839B838A8383E08093E9008FEF97
+:1013A0009091E800815095FD06C095ED9A95F1F772
+:1013B00000008111F5CF8091E80085FF0DC040E06D
+:1013C00050E063E070E0CE0101960E94F40B809142
+:1013D000E8008E778093E8000F900F900F90DF91D8
+:1013E000CF9108952091F1012430F1F422E020936F
+:1013F000E9002FEF3091E800215035FD06C035EDB2
+:101400003A95F1F700002111F5CF2091E80025FF72
+:101410000BC040E050E065E070E00E94F40B80916A
+:10142000E8008E778093E8000895CF93DF93EC0176
+:101430009091F101943009F046C080910C0188230D
+:10144000D9F080910D018823B9F09093E9008FEFD6
+:101450009091E800815095FD06C095E19A95F1F7CD
+:1014600000008111F5CF8091E80085FF2CC040E09D
+:1014700050E060E170E017C081E08093E9008FEFF9
+:101480009091E800815095FD06C095ED9A95F1F791
+:1014900000008111F5CF8091E80085FF14C040E085
+:1014A00050E068E070E0CE010E94F40B8091E8000B
+:1014B0008E778093E80080E1FE01AEE5B1E0019017
+:1014C0000D928A95E1F7DF91CF9108958091F00117
+:1014D000811109C00E94890D0E94E60D8091E200F1
+:1014E00084608093E20008951092F00108950895B9
+:1014F0000C94CD220E942E1C0E94D3220E948C109C
+:101500000C94850942E061EC81E00E94030D42E009
+:1015100061EC82E00E94030D42E061EC83E00E94F6
+:10152000030D42E161EC84E00C94030D8091F30122
+:10153000833009F455C030F4813071F0823009F401
+:101540008EC008958A3009F47AC08B3009F460C0E7
+:10155000893009F09CC020C08091F201813A09F0E5
+:1015600096C08091E800877F8093E8008091F60123
+:101570009091F701892B21F460E18EE591E003C0A1
+:1015800060E080E090E070E00E943F0C8091E80015
+:101590008B778093E80008958091F201813209F001
+:1015A00076C08091F6019091F701009719F00397AA
+:1015B00009F06DC08091E800877F8093E8008091FA
+:1015C000E80082FD05C08091F1018111F8CF5FC074
+:1015D0008091F10080936E018091E8008B7753C079
+:1015E0008091F201813A09F052C08091F601909108
+:1015F000F701892B09F04BC08091E800877F809329
+:10160000E8008091E80080FFFCCF80910C0136C09B
+:101610008091F2018132D9F58091F6019091F70124
+:10162000892BA9F58091E800877F8093E8000E94CC
+:10163000380D8091F40180930C010C942515809154
+:10164000F201813221F58091E800877F8093E800E4
+:101650000E94380D8091F50180936F01089580916B
+:10166000F201813AA1F48091E800877F8093E8003D
+:101670008091E80080FFFCCF80916F018093F100A2
+:101680008091E8008E778093E8000C94380D0895DF
+:1016900084B7877F84BF88E10FB6F8948093600099
+:1016A000109260000FBE90E080E80FB6F89480932F
+:1016B0006100909361000FBE0E94DB100E94890DB3
+:1016C0000E94E60D8091E20084608093E2007894AD
+:1016D0000E946C100E94DD1082E091E00E94871051
+:1016E0000E94BB228091F101853069F40E94F51BB4
+:1016F0008091EF018823B1F30E94201C882391F38D
+:101700000E94DE0BEFCF0E94E310ECCF292F33278E
+:1017100023303105C9F064F42130310581F02230E5
+:10172000310509F043C08DE690E022EE33E042C07F
+:1017300021323105F1F02232310541F137C082E129
+:1017400090E02FE434E036C099278130910541F0D4
+:101750008230910541F0892B49F5EEEDF3E005C0AB
+:10176000E6ECF3E002C0EEEAF3E0849190E09F0142
+:1017700021C06430D8F4E62FF0E0EE0FFF1FEE5DDD
+:10178000FE4F2081318189E090E014C0643070F414
+:1017900070E0FB01EE0FFF1FE65EFE4F20813181FE
+:1017A000FB01EA5EFE4F808190E004C080E090E0A3
+:1017B00020E030E0FA0131832083089580E189BD83
+:1017C00082E189BD09B400FEFDCF8091D8008F7DF4
+:1017D0008093D8008091E00082608093E000809147
+:1017E000E00081FDFCCF0895CF92DF92EF92FF924F
+:1017F0000F931F93CF93DF93EC018B016A010E943B
+:10180000570D811133C0C114D10439F0F601808124
+:101810009181081B190BC80FD91FE12CF12C011560
+:10182000110519F18091E80085FD16C08091E8004E
+:101830008E778093E800C114D10449F0F6018081CD
+:101840009181E80EF91EF182E08285E00FC00E94CE
+:10185000570D882321F30AC089918093F10001502C
+:101860001109FFEFEF1AFF0ADACF80E0DF91CF9185
+:101870001F910F91FF90EF90DF90CF9008952091EE
+:10188000F8013091F9012617370748F06115710505
+:1018900039F42091E8002E772093E80001C0B901C7
+:1018A00040E061157105A9F12091F101222309F4AD
+:1018B00043C0253009F442C02091E80023FD40C018
+:1018C0002091E80022FD32C02091E80020FFE9CFFE
+:1018D0004091F3002091F20030E0342BFC01CF0165
+:1018E0006115710559F02830310540F481918093DC
+:1018F000F100615071092F5F3F4FF1CF41E0283077
+:10190000310509F040E02091E8002E772093E800AF
+:10191000C8CF4111C9CF0AC08091F101882361F07D
+:10192000853061F08091E80083FD0AC08091E80075
+:1019300082FFF2CF80E0089582E0089583E0089569
+:1019400081E008952091F8013091F90126173707B9
+:1019500048F06115710539F42091E8002E77209345
+:10196000E80001C0B901FC0120E06115710591F1A9
+:101970008091F101882309F440C0853009F43FC00B
+:101980008091E80083FD3DC08091E80082FD2FC07A
+:101990008091E80080FFE9CF2091F3008091F20070
+:1019A00090E0922B6115710559F08830910540F453
+:1019B00024912093F1003196615071090196F2CF84
+:1019C00021E0089709F020E08091E8008E7780936D
+:1019D000E800CBCF2111CCCF0AC08091F101882340
+:1019E00061F0853061F08091E80083FD0AC080914C
+:1019F000E80082FFF2CF80E0089582E0089583E05E
+:101A0000089581E00895982F973058F59093E90054
+:101A1000981739F07091EC002091ED005091F00092
+:101A200003C0242F762F50E021FF19C03091EB0026
+:101A30003E7F3093EB003091ED003D7F3093ED0021
+:101A40003091EB0031603093EB007093EC00209309
+:101A5000ED005093F0002091EE0027FF07C09F5F3C
+:101A6000D3CF8F708093E90081E0089580E00895DE
+:101A70008091F20187FF11C08091E80082FD05C0CE
+:101A80008091F1018111F8CF11C08091E8008B772E
+:101A90000BC08091F101882349F08091E80080FF1C
+:101AA000F8CF8091E8008E778093E8000895209128
+:101AB000E4003091E50095E64091EC00842F8170C0
+:101AC00040FF22C08091E80080FD1CC08091F101A0
+:101AD000882391F0853091F08091EB0085FD10C056
+:101AE0004091E4005091E5004217530729F39A0111
+:101AF000915011F784E0089582E0089583E00895FD
+:101B000081E0089580E008954091E80042FFDECF33
+:101B100008950E94F70D0E94FF0DE0EEF0E0808135
+:101B200081608083E8EDF0E080818F77808319BC4D
+:101B3000A7EDB0E08C918E7F8C9380818F7E808327
+:101B40001092F00108950F931F93CF93DF930E949B
+:101B5000F70D0E94FF0DC8EDD0E088818F77888354
+:101B600088818068888388818F7D888319BC1092E2
+:101B7000F1011092ED011092EF011092EE0100EED2
+:101B800010E0F80180818B7F808388818160888369
+:101B900042E060E080E00E94030DE1EEF0E0808131
+:101BA0008E7F8083E2EEF0E080818160808380819F
+:101BB00088608083F80180818E7F80838881806146
+:101BC0008883DF91CF911F910F910895E8EDF0E0A8
+:101BD00080818F7E8083E7EDF0E08081816080836B
+:101BE00084E082BF81E08093F0010C94A30DE8EDC6
+:101BF000F0E080818E7F80831092E2000895109241
+:101C0000DA001092E10008951F920F920FB60F9222
+:101C100011242F933F934F935F936F937F938F93F1
+:101C20009F93AF93BF93EF93FF938091E10082FF67
+:101C30000BC08091E20082FF07C08091E1008B7FA2
+:101C40008093E1000E946B108091DA0080FF1FC03A
+:101C50008091D80080FF1BC08091DA008E7F809336
+:101C6000DA008091D90080FF0DC080E189BD82E15A
+:101C700089BD09B400FEFDCF81E08093F1010E948F
+:101C8000660A05C019BC1092F1010E94740A809185
+:101C9000E10080FF19C08091E20080FF15C08091B3
+:101CA000E2008E7F8093E2008091E2008061809369
+:101CB000E2008091D80080628093D80019BC85E052
+:101CC0008093F1010E94780A8091E10084FF30C086
+:101CD0008091E20084FF2CC080E189BD82E189BD52
+:101CE00009B400FEFDCF8091D8008F7D8093D8008D
+:101CF0008091E1008F7E8093E1008091E2008F7EF1
+:101D00008093E2008091E20081608093E200809104
+:101D1000ED01882311F084E007C08091E30087FD86
+:101D200002C081E001C083E08093F1010E947A0A41
+:101D30008091E10083FF29C08091E20083FF25C0EC
+:101D40008091E100877F8093E10082E08093F10140
+:101D50001092ED018091E1008E7F8093E1008091EF
+:101D6000E2008E7F8093E2008091E20080618093A8
+:101D7000E20042E060E080E00E94030D8091F0000C
+:101D800088608093F0000E94770AFF91EF91BF91E5
+:101D9000AF919F918F917F916F915F914F913F9103
+:101DA0002F910F900FBE0F901F9018951F920F92BA
+:101DB0000FB60F9211242F933F934F935F936F931E
+:101DC0007F938F939F93AF93BF93CF93DF93EF93C3
+:101DD000FF93C091E900CF708091EC00D82FD170B3
+:101DE00080FDD0E81092E9008091F000877F809319
+:101DF000F00078940E941A0F1092E9008091F00090
+:101E000088608093F000CD2BCF70C093E900FF91E4
+:101E1000EF91DF91CF91BF91AF919F918F917F9182
+:101E20006F915F914F913F912F910F900FBE0F9047
+:101E30001F9018951F93CF93DF93CDB7DEB7AA9766
+:101E40000FB6F894DEBF0FBECDBFE2EFF1E088E041
+:101E50008E0F9091F10091938E13FBCF0E94960A02
+:101E60008091E80083FF1FC18091F2019091F301FE
+:101E7000492F50E04A30510508F015C1FA01EA5ADD
+:101E8000FF4F0C945524803881F0823809F00BC143
+:101E90008091F6018F708093E9008091EB0085FBC3
+:101EA000882780F91092E90006C08091EE01909198
+:101EB000EF01911182609091E800977F9093E80084
+:101EC0008093F1001092F100C8C0282F2D7F09F0F7
+:101ED000EAC0882319F0823061F0E5C08091F401F6
+:101EE000813009F0E0C0933009F080E08093EF0189
+:101EF0002BC08091F401811127C08091F6018F7071
+:101F000009F4D1C08093E9002091EB0020FF1CC0B0
+:101F1000933021F48091EB00806214C09091EB002B
+:101F200090619093EB0021E030E0A90102C0440FE2
+:101F3000551F8A95E2F74093EA001092EA008091DB
+:101F4000EB0088608093EB001092E9008091E8003C
+:101F5000877F86C08111A7C01091F4011F778091FF
+:101F6000E3008078812B8093E3008091E800877FF5
+:101F70008093E8000E94380D8091E80080FFFCCF3C
+:101F80008091E30080688093E300111102C082E039
+:101F900001C083E08093F10186C08058823008F050
+:101FA00082C08091F4019091F5018C3D53E095073A
+:101FB00079F583E08A838AE289834FB7F894DE015A
+:101FC000139620E03EE051E2E32FF0E050935700FB
+:101FD000E49120FF03C0E295EF703F5FEF708E2F1A
+:101FE00090E0EA3010F0C79601C0C0968D939D93A3
+:101FF0002F5F243149F74FBF8091E800877F80939E
+:10200000E8006AE270E0CE0101960E943F0C14C025
+:10201000AE014F5F5F4F6091F6010E94860BBC01DD
+:10202000009709F440C09091E800977F9093E800F2
+:1020300089819A810E94A20C8091E8008B7780931D
+:10204000E80031C0803879F58091E800877F80937F
+:10205000E8008091ED018093F1008091E8008E7797
+:102060008093E8000E94380D1EC081111CC0909121
+:10207000F4019230C0F48091E800877F8093E800FB
+:102080009093ED010E94380D8091ED01811106C001
+:102090008091E30087FD02C081E001C084E080936D
+:1020A000F1010E94820A8091E80083FF0AC08091BA
+:1020B000E800877F8093E8008091EB008062809346
+:1020C000EB00AA960FB6F894DEBF0FBECDBFDF912E
+:1020D000CF911F9108950895CF938091F1018823A6
+:1020E000A1F0C091E900CF709091EC00892F817030
+:1020F00090FD80E8C82B1092E9008091E80083FDF4
+:102100000E941A0FCF70C093E900CF910895909369
+:102110007501809374010895E0917401F091750147
+:10212000309721F00190F081E02D099480E008952E
+:10213000E0917401F0917501309721F00280F381F4
+:10214000E02D09940895E0917401F09175013097A4
+:1021500021F00480F581E02D099408952091720109
+:10216000309173018217930771F0909373018093FC
+:102170007201E0917401F0917501309721F00680B1
+:10218000F781E02D0994089520917001309171013B
+:102190008217930771F09093710180937001E09121
+:1021A0007401F0917501309721F00084F185E02DE4
+:1021B0000994089508950C94DA100E94341C0E942A
+:1021C00087030C94F61C9F92AF92BF92CF92DF923E
+:1021D000EF92FF920F931F93CF93DF9300D000D025
+:1021E00000D0CDB7DEB70E949F030DE010E0AA2417
+:1021F000A394B12C902E802F0E948D049801295811
+:102200003E4F6901F901F080F826A1F4015011094F
+:1022100088F78FEF89838A831B820E943D1C81602F
+:10222000782F9D838C8349815A816B818D810E9497
+:102230007A112FC09091DA0191FF04C08E830E9421
+:1022400093048E8125E030E0A501022E01C0440FE9
+:102250000A94EAF7E42E4F21C1F029839A828E2155
+:1022600091E009F490E09B830E943D1C8160782FEF
+:102270009D838C8349815A816B818D810E947A1163
+:10228000F6018081E826E08204C021503109E0F6A1
+:10229000BDCF0E94DD1F109176010E948C1018178F
+:1022A000B9F00E948C108093760126960FB6F894B0
+:1022B000DEBF0FBECDBFDF91CF911F910F91FF9079
+:1022C000EF90DF90CF90BF90AF909F900C948509D6
+:1022D00026960FB6F894DEBF0FBECDBFDF91CF912B
+:1022E0001F910F91FF90EF90DF90CF90BF90AF9034
+:1022F0009F900895CF93DF93CDB7DEB72B970FB69E
+:10230000F894DEBF0FBECDBF4F83588769877A87A9
+:102310008B87DE01119686E0FD0111928A95E9F71F
+:1023200085E0FE01379601900D928A95E1F749818B
+:102330005A816B817C818D819E810E94C3172B966F
+:102340000FB6F894DEBF0FBECDBFDF91CF910895D9
+:10235000CF93882309F4C2C0C82F823859F40E9451
+:102360008C1081FDBBC089E30E949D1A0E946A1BEC
+:1023700089E30CC0833879F40E948C1080FDAEC0D4
+:1023800083E50E949D1A0E946A1B83E50E94DF1A62
+:10239000CF910C946A1B843859F40E948C1082FDF2
+:1023A0009DC087E40E949D1A0E946A1B87E4EECFBD
+:1023B0008CEF8C0F813A48F48C2F0E9420228111DF
+:1023C0008DC08C2F0E949D1AE3CF80E28C0F883045
+:1023D00048F4C77081E001C0880FCA95EAF70E94EF
+:1023E000231BD6CF8BE58C0F833078F4C53A29F0C8
+:1023F000C63A31F083E890E005C081E890E002C081
+:1024000082E890E0CF910C94AE1088E58C0F833178
+:1024100008F064C0C83A39F1C93A41F1CA3A49F101
+:10242000CB3A51F1CC3A59F1CD3A61F1C03B69F167
+:10243000CE3A71F1CF3A79F1C13B81F1C23B89F1DA
+:10244000C33B91F1C43B99F1C53BA1F1C63BA9F156
+:10245000C73BB1F1C83BB9F1C93BC1F1CA3BC9F1B6
+:1024600080E090E038C082EE90E035C089EE90E0E8
+:1024700032C08AEE90E02FC085EB90E02CC086EB56
+:1024800090E029C087EB90E026C08CEC90E023C060
+:102490008DEC90E020C083E891E01DC08AE891E0D7
+:1024A0001AC082E991E017C084E991E014C081E28A
+:1024B00092E011C083E292E00EC084E292E00BC091
+:1024C00085E292E008C086E292E005C087E292E0F1
+:1024D00002C08AE292E0CF910C94C410CF9108958B
+:1024E000882309F44BC0823859F40E948C1081FF74
+:1024F00045C089E30E949D1A0E946A1B89E30CC0B3
+:10250000833871F40E948C1080FF38C083E50E94EC
+:102510009D1A0E946A1B83E50E94DF1A0C946A1BB5
+:10252000843859F40E948C1082FF28C087E40E94EE
+:102530009D1A0E946A1B87E4EFCF9CEF980F913A97
+:1025400058F390E2980F983050F4877091E001C0F2
+:10255000990F8A95EAF7892F0E94291BDFCF9BE507
+:10256000980F933020F480E090E00C94AE10885ADD
+:10257000833120F480E090E00C94C4100895882307
+:1025800021F00E94231B0C946A1B0895882321F0DC
+:102590000E94291B0C946A1B08957F928F929F9230
+:1025A000AF92BF92CF92DF92EF92FF920F931F9361
+:1025B000CF93DF931F92CDB7DEB77C01C62E772E67
+:1025C000FC01058102950F70128111110E94401BC0
+:1025D0000E94961A882379F0112369F080E28C0D0D
+:1025E000883048F082E00E947F1A0E94961A91E09B
+:1025F000D82ED92601C0D12CE72DE295EF70F0E05E
+:10260000E05AFF4F0C945524872D807F072D0F70C3
+:10261000882311F00295007F112389F0002309F42B
+:1026200090C180E28C0D883020F4802F0E94231B03
+:1026300003C0802F0E94331B0E946A1B82C18C2D15
+:102640000E947012002309F495C180E28C0D88303D
+:1026500020F4802F0E94291B03C0802F0E94391B69
+:102660000E946A1B87C1972D907F872D8F709032B3
+:1026700011F08295807FCC2021F0F1E0CF16B1F0EF
+:102680001EC0112349F0002309F414C1013009F0E0
+:1026900011C10E94531B6EC1002319F0013009F4CF
+:1026A00069C189830E94561B89810AC1112321F0C7
+:1026B000023008F05FC1FEC001115CC101C11123ED
+:1026C00021F0002309F4F6C03CC1002309F4F8C04E
+:1026D0003EC1872D86958695837090E0009719F00E
+:1026E000019761F047C1112321F08C2D972D937034
+:1026F00002C080E090E00E94AE103CC1112321F0A6
+:102700008C2D972D937002C080E090E00E94C41041
+:1027100031C18C2D112319F00E94E51E02C00E94C8
+:102720004D1F0E94D21F26C1872D837009F052C011
+:10273000111120C18C2D829586958770880F880F86
+:102740009C2D9F70892E912CA12CB12C082E04C099
+:10275000880C991CAA1CBB1C0A94D2F7C4FE14C096
+:102760000FE010E020E030E0B901A80104C0440F00
+:10277000551F661F771F8A95D2F7CB01BA01609566
+:1027800070958095909503C060E070E0CB01272D97
+:1027900026952695237030E02230310569F02330EC
+:1027A000310589F0682979298A299B292130310549
+:1027B00071F00E940B19DEC0682979298A299B29AA
+:1027C0000E942719D7C00E940B19C501B4010E94AD
+:1027D000EF18D0C0112319F0872D817001C08695A4
+:1027E000882309F4C7C08C2D829586958770880F41
+:1027F000880F9C2D9F70892E912CA12CB12C082E16
+:1028000004C0880C991CAA1CBB1C0A94D2F7C4FEF5
+:1028100014C00FE010E020E030E0B901A80104C0CE
+:10282000440F551F661F771F8A95D2F7CB01BA0157
+:10283000609570958095909503C060E070E0CB0145
+:10284000272D269526952370422F50E042305105C2
+:1028500069F04330510589F0682979298A299B2933
+:102860004130510571F00E94E51984C06829792929
+:102870008A299B290E94011A7DC00E94E519C50181
+:10288000B4010E94C91976C08C2D90E0FC01E05E75
+:10289000F109E531F10508F050C0E059FF4F0C9403
+:1028A00055240C2D0F70872D8F71112331F00E944C
+:1028B0006219802F0E94BF125DC00E948319802F71
+:1028C0000E94C61257C0112339F0011153C0872D41
+:1028D0008F710E94A8194EC0023008F04BC0F7CF8C
+:1028E000112339F0872D8F710E94621943C0112383
+:1028F000C9F3872D8F710E9483193CC0112329F0E1
+:10290000872D8F710E944D1935C00E94431932C026
+:10291000112351F0172D1F71812F0E94621963E05E
+:10292000812F0E94761A26C081E00E947F1A023011
+:1029300008F182E00E947F1A1DC0112331F00023AC
+:1029400089F28C2D0E94A81115C0002391F28C2DC4
+:102950000E9470120FC0472D4F706C2DC7010E944E
+:10296000A9050E94671806C0472D4F706C2DC7013E
+:102970000E949406DD20F9F00E94721A80FD1BC0AF
+:10298000F70112820E946C1A0E946219C7010E940C
+:10299000EA140E946C1A0F90DF91CF911F910F9152
+:1029A000FF90EF90DF90CF90BF90AF909F908F906F
+:1029B0007F900C9483190F90DF91CF911F910F910D
+:1029C000FF90EF90DF90CF90BF90AF909F908F904F
+:1029D0007F9008950F931F93CF93DF93EC0188812D
+:1029E00099812B813C81232BB9F09F3F11F48F3FBC
+:1029F00099F0CE010E94EC05882371F068817981FD
+:102A00008A810E94681A8C010E941D1A0E94E41893
+:102A1000B801CE010E94CD12DF91CF911F910F918D
+:102A200008950E94401B0E94501B0E94151B0E948B
+:102A30006A1B0E9483200E94D21F80E090E00E94C7
+:102A4000AE1080E090E00C94C4100E94301B0C94F7
+:102A500011150E945D1A292F22952F7030E02C301D
+:102A600031054CF42A3031056CF422503109223002
+:102A70003105A8F407C02C30310569F02F3031053D
+:102A800051F00DC0803F69F018F4803E40F409C059
+:102A9000843F29F406C093FB882780F9089580E0DD
+:102AA000089581E00895CF93DF9300D000D01F9266
+:102AB000CDB7DEB70F900F900F900F900F90DF9172
+:102AC000CF910895CF93DF9300D000D000D0CDB741
+:102AD000DEB726960FB6F894DEBF0FBECDBFDF91EE
+:102AE000CF9108951F93CF93DF93C091850116E096
+:102AF00080918601C81799F0D0E01C9FF0011D9FBE
+:102B0000F00D1124E957FE4F40815181628173819C
+:102B1000848195810E9462152196C770E9CFDF916B
+:102B2000CF911F9108954091B7015091B8016091E4
+:102B3000B9017091BA018091BB019091BC010C94D4
+:102B400062158091BC0182958F7009F054C080910C
+:102B5000B901882309F44FC080918501A0918601B5
+:102B60006091B7017091B8014091BA015091BB01D9
+:102B7000B6E08A1709F43FC090E041155105C1F154
+:102B80007F3F11F46F3FA1F1B89FF001B99FF00DA5
+:102B90001124E957FE4F218172132AC0208162134C
+:102BA00027C02281211124C02381348124173507B5
+:102BB00010F421503109241B350B283C3105C0F499
+:102BC0002091BC012F7020612093BC0126E0289F3A
+:102BD000F001299FF00D1124E457FE4F80818F7082
+:102BE0008061808387EB91E00E94EA140C94721557
+:102BF00001968770BECF0895CF92DF92EF92FF9239
+:102C00000F931F93CF93DF93CDB7DEB762970FB6C5
+:102C1000F894DEBF0FBECDBF8C0185E0F801DE0168
+:102C20001D9601900D928A95E1F7D8014C9111966D
+:102C30005C91119712966C9112971396CD90DC903F
+:102C400014973091B7017091B8018091BA019091B9
+:102C5000BB01009709F46BC17F3F19F43F3F09F4B2
+:102C600066C1E090B901EE2009F4C0C02091BC011A
+:102C7000C816D90628F0F601E81BF90BCF0104C0ED
+:102C8000809590958C0D9D1DFF24F394883C9105B3
+:102C900078F0F12C207F09F0C6C07C2DD98AC88A33
+:102CA00089890E94531587EB91E00E94EA14B1C014
+:102CB000822F807F09F046C0751314C0341312C0F0
+:102CC000611110C02F7020612093BC010E949315E8
+:102CD00087EB91E00E94EA148091BC01D80115961F
+:102CE0008C932EC0CD2819F15F3F11F44F3FF9F0BE
+:102CF000F62E61111CC0809185012091860136E07D
+:102D0000821709F45AC090E0389FF001399FF00D06
+:102D10001124E957FE4F7181571306C07081471384
+:102D200003C07281711103C001968770E9CFF62E3E
+:102D3000662309F418C18091BC0181608093BC01B5
+:102D4000F12C11C1751308C0341306C0611104C001
+:102D50008091BC01D801C3C04D875E878D859E855B
+:102D60006A8B0E9429156A898823E1F16623D1F1D3
+:102D70002091BC01822F82958F7090E0029774F0B1
+:102D80008091B7019091B80198878F831986DB866F
+:102D9000CA862C87CE0107960E94EA1486E0F801C5
+:102DA000A7EBB1E001900D928A95E1F70E94A11581
+:102DB0000E949315FF24F394D6C04D875E878D85BE
+:102DC0009E850E945D1A292F22952F7030E02230B7
+:102DD00031050CF0BCC09F7009F0B6C0805E883031
+:102DE00008F4C1C0C8010E94EA14E4CFC816D9068D
+:102DF00008F453C0F601E81BF90BCF01883C91059C
+:102E000008F450C0F12C7C2DD98AC88A89890E9487
+:102E10005315E7EBF1E086E0DF011D928A95E9F7B3
+:102E20000E949315A0C0751314C0341312C0611111
+:102E300010C08091BC01F8018583C8010E94EA148A
+:102E400086E0E7EBF1E0DF011D928A95E9F7FE2CC1
+:102E50008AC04D875E878D859E856A8B0E94291565
+:102E60006A89882309F4BECF662309F4BBCF209179
+:102E7000BC01822F82958F7090E002970CF48ECF68
+:102E80008091B7019091B8019A8389831B82DD827A
+:102E9000CC822E83CE0101967FCF809590958C0DAC
+:102EA0009D1DACCFF62E662309F49CCF75132EC062
+:102EB00034132CC02091BC0120FD1FC0822F8295AD
+:102EC0008F70D9F0D80115962C9315978F3049F053
+:102ED0008F5F982F9295907F822F8F70892B1596F8
+:102EE0008C93C8010E94EA1486E0F801A7EBB1E0D8
+:102EF00001900D928A95E1F793CF86E0F801A7EB58
+:102F0000B1E001900D928A95E1F72DC04D875E8763
+:102F10008D859E850E942915811140CF8091BC012D
+:102F200081608093BC01C8010E94EA141CC0662322
+:102F300009F458CF4D875E878D859E850E9429159F
+:102F4000882309F44FCF2ACF811148CF0CC02430F9
+:102F500031050CF047CF9F7009F440CFF8019581FF
+:102F6000907F09F03BCF8F2D62960FB6F894DEBFAD
+:102F70000FBECDBFDF91CF911F910F91FF90EF90CA
+:102F8000DF90CF9008951F93CF93DF93CDB7DEB737
+:102F90002C970FB6F894DEBF0FBECDBF4F83588776
+:102FA00069877A878B879C87CE0107960E94FC15DC
+:102FB000882369F08F8198852A853B85232BF1F141
+:102FC0009F3F09F063C08F3F09F060C037C086E0C3
+:102FD000FE013796DE01119601900D928A95E1F778
+:102FE0006F817885EA85FB85309741F17F3F11F449
+:102FF0006F3F21F12091860130E0C9010196877071
+:1030000099274091850150E08417950709F447C03E
+:1030100069837A83FD83EC8396E0929FD001939F2E
+:10302000B00D1124A957BE4FFE01319601900D92AB
+:103030009A95E1F7809386010E94721516E08091BF
+:103040008501909186018917C1F1189FC001112453
+:1030500089579E4F0E94FC15882379F1E0918501E4
+:103060001E9FF0011124E957FE4F4081518162817A
+:103070007381848195810E9462158091850190E021
+:1030800001968770992780938501D9CF4F81588504
+:1030900069857A858B859C850E946215CFCF0E94B9
+:1030A00025151092860110928501E7EBF1E086E08C
+:1030B000DF011D928A95E9F7C1CF2C960FB6F894DF
+:1030C000DEBF0FBECDBFDF91CF911F910895EF926C
+:1030D000FF920F931F93CF93DF938C01009709F416
+:1030E0006CC0F12CEE24E394E8012196F801849160
+:1030F000843740F4843008F051C0813081F0823050
+:1031000019F15BC0853709F444C0A8F19CE7980F1A
+:10311000903708F052C08F770E94701241C00E5F46
+:103120001F4FFE01C49180E28C0F883048F4C770B5
+:103130008E2D01C0880FCA95EAF70E94431B14C068
+:103140008C2F0E94A8112DC00E5F1F4FFE01C4914D
+:1031500080E28C0F883058F4C7708E2D01C0880F24
+:10316000CA95EAF70E94491B0E946A1B1AC08C2F5D
+:103170000E94701216C00E5F1F4FFE01C491CC2337
+:1031800081F08FE99FE00197F1F700C00000C15086
+:10319000F6CF0E5F1F4FFE01F49003C00E94A811EE
+:1031A0008E018F2D882309F49FCFEFE9FFE031973F
+:1031B000F1F700C000008150F5CFDF91CF911F9152
+:1031C0000F91FF90EF90089508956093C10170935F
+:1031D000C2018093C3019093C4010C9411150F9305
+:1031E0001F930091C1011091C2012091C301309140
+:1031F000C401DC01CB01802B912BA22BB32B80933C
+:10320000C1019093C201A093C301B093C4011F9167
+:103210000F910C9411150F931F930091C101109100
+:10322000C2012091C3013091C401DC01CB01802394
+:103230009123A223B3238093C1019093C201A09351
+:10324000C301B093C4011F910F910C9411150F93FA
+:103250001F930091C1011091C2012091C3013091CF
+:10326000C401DC01CB0180279127A227B3278093DB
+:10327000C1019093C201A093C301B093C4011F91F7
+:103280000F910C9411151092BD011092BE01109275
+:10329000BF011092C0010C94111541E050E060E0B4
+:1032A00070E004C0440F551F661F771F8A95D2F740
+:1032B0004093BD015093BE016093BF017093C00164
+:1032C0000C94111541E050E060E070E004C0440F40
+:1032D000551F661F771F8A95D2F78091BD01909187
+:1032E000BE01A091BF01B091C001482B592B6A2BA0
+:1032F0007B2B4093BD015093BE016093BF0170933F
+:10330000C0010C94111541E050E060E070E004C091
+:10331000440F551F661F771F8A95D2F74095509529
+:10332000609570958091BD019091BE01A091BF0103
+:10333000B091C001482359236A237B234093BD01E8
+:103340005093BE016093BF017093C0010C9411159E
+:1033500041E050E060E070E004C0440F551F661F7C
+:10336000771F8A95D2F78091BD019091BE01A091FF
+:10337000BF01B091C001482759276A277B27409396
+:10338000BD015093BE016093BF017093C0010C94C6
+:1033900011150F931F930091BD011091BE01209153
+:1033A000BF013091C001DC01CB01802B912BA22BFE
+:1033B000B32B8093BD019093BE01A093BF01B09346
+:1033C000C0011F910F910C9411150F931F93009141
+:1033D000BD011091BE012091BF013091C001DC01FF
+:1033E000CB0180239123A223B3238093BD0190932B
+:1033F000BE01A093BF01B093C0011F910F910C9427
+:1034000011150F931F930091BD011091BE012091E2
+:10341000BF013091C001DC01CB0180279127A22799
+:10342000B3278093BD019093BE01A093BF01B093D9
+:10343000C0011F910F910C9411150895CF92DF9246
+:10344000EF92FF920F931F93CF93DF938C01C09065
+:10345000C101D090C201E090C301F090C4018091FD
+:10346000BD019091BE01A091BF01B091C001C82AD9
+:10347000D92AEA2AFB2ACFE1D0E0D701C6010C2ED7
+:1034800004C0B695A795979587950A94D2F780FFC3
+:1034900006C0B8018C2F0E94EA08019721F42197F9
+:1034A00060F780E001C08C2FDF91CF911F910F91C9
+:1034B000FF90EF90DF90CF900895CF93DF93EC01D2
+:1034C0000E941E1ABE010E94EA08DF91CF91089562
+:1034D000CB010E945D1A08958091C501859585955F
+:1034E000859508958091C5018770089598E0899F1A
+:1034F00090011124262B2093C5010C946219209170
+:10350000C501809582238093C501982F977069F437
+:1035100030E0482F552747FD50952417350729F0EF
+:103520008595859585950C94831908959091C5018D
+:10353000977081E009F480E0089590910C0199233F
+:1035400021F090910D01911109C020910E0130914F
+:103550000F01F90132969FEF40E01FC0982F96951A
+:10356000969596959F3050F5E0910E01F0910F01E0
+:10357000E90FF11D877021E030E0A90102C0440F7E
+:10358000551F8A95E2F7CA019181892B818308959D
+:103590009F3F39F04F5F4E3041F051915813F8CFB3
+:1035A0000DC05111F7CF942FF5CF9F3F39F0F9019E
+:1035B000E90FF11D97FDFA95828308950895909182
+:1035C0000C01992321F090910D01911109C02091D6
+:1035D0000E0130910F01F9013296205F3F4F1FC05D
+:1035E000982F9695969596959F30F0F4E0910E0160
+:1035F000F0910F01E90FF11D877021E030E0A90182
+:1036000002C0440F551F8A95E2F7CA018095918147
+:103610008923818308953196E217F30729F0908179
+:103620009813F9CF1082F7CF089581E090E0E091F0
+:103630000E01F0910F01E80FF91F10820196803101
+:103640009105A9F708959091D901892B8093D9010B
+:10365000089580959091D90189238093D901089587
+:103660001092D90108959091D801892B8093D801A7
+:10367000089580959091D80189238093D801089569
+:103680001092D80108959091D701892B8093D7018A
+:10369000089580959091D70189238093D70108954B
+:1036A0001092D70108958093C60108951092C60123
+:1036B000089580910E0190910F01FC0131969C01BB
+:1036C000205F3F4F80E0919191118F5FE217F307E8
+:1036D000D1F70895E0910E01F0910F018091D90189
+:1036E0008083E0910E01F0910F0190818091D801CB
+:1036F000892B8083E0910E01F0910F0190818091E0
+:10370000D701892B80838091C601882361F0E091E5
+:103710000E01F0910F019081892B80830E94591B2B
+:1037200081111092C60180910E0190910F010C94AD
+:10373000981020E0009739F0AC01415051098423E2
+:1037400095232F5FF7CF822F0895CF92DF92EF92CC
+:10375000FF926C01EE24FF24C114D104E104F104B2
+:1037600021F0C701B60120E101C020E0C72ED82E0C
+:10377000E92EFF24C114D104E104F10419F0285FFB
+:10378000C701B6016B017C0154E0F694E794D7942D
+:10379000C7945A95D1F7C114D104E104F10419F08A
+:1037A0002C5FC701B6016B017C0142E0F694E794FF
+:1037B000D794C7944A95D1F7C114D104E104F10418
+:1037C00019F02E5FC701B601DC01CB01B695A795B4
+:1037D00097958795892B8A2B8B2B09F02F5F822F4A
+:1037E000FF90EF90DF90CF9008958091F1018430A9
+:1037F00021F11092DB0120E488E190E00FB6F8940B
+:10380000A895809360000FBE2093600080E00E9426
+:10381000850983B7817F846083BF83B7816083BF5D
+:103820007894889583B78E7F83BF88E10FB6F8942C
+:1038300080936000109260000FBE0895089508956F
+:103840000E941E1C0E949F030E941F1C0E94940441
+:1038500091E0811101C090E0892F08950E94251503
+:103860000E948C100C94850982E084BD93E095BD84
+:103870009AEF97BD80936E0008952FB7F8948091CA
+:10388000DC019091DD01A091DE01B091DF012FBF3D
+:103890000895CF92DF92EF92FF920F931F932FB76D
+:1038A000F8944091DC015091DD016091DE0170914E
+:1038B000DF012FBF6A017B01EE24FF248C0120E091
+:1038C00030E0C016D106E206F30610F4415051096B
+:1038D0009A01281B390BC9011F910F91FF90EF909E
+:1038E000DF90CF9008951F920F920FB60F92112480
+:1038F0008F939F93AF93BF938091DC019091DD01F3
+:10390000A091DE01B091DF010196A11DB11D809350
+:10391000DC019093DD01A093DE01B093DF01BF9144
+:10392000AF919F918F910F900FBE0F901F901895A0
+:103930000E94890DF8942FEF87EA91E6215080408C
+:103940009040E1F700C0000087E090EBDC0180933D
+:10395000FB019093FC01A093FD01B093FE019CE05C
+:1039600088E10FB6F894A895809360000FBE9093FD
+:103970006000FFCFEF92FF920F931F93CF93DF93DF
+:10398000D82FCDE08C2F0E948D0405E010E0E82EAA
+:10399000F12CC701002E02C0959587950A94E2F795
+:1039A00080FF09C0602F7C2F80E00E949506D8130D
+:1039B00002C081E006C00150110958F7C15010F74C
+:1039C00080E0DF91CF911F910F91FF90EF900895CC
+:1039D000CF93C82F8CE20E94BA1C882321F08C2F31
+:1039E000CF910C94BA1C80E0CF910895CF930E94A0
+:1039F0003D1E811102C00E94231EC5E6C15049F040
+:103A00000E949F038FE39CE90197F1F700C000003B
+:103A1000F5CF89E20E94E81C811113C18AE20E945D
+:103A2000E81C81110E94231E85E00E94E81C811180
+:103A30000E94981C0E94481E8093DA0187E00E9431
+:103A4000E81C8823A9F18BE10E94E81C882351F02F
+:103A50008091DA0181FB222720F991E0922790FBE7
+:103A600081F90EC08EE00E94E81C882361F08091ED
+:103A7000DA0182FB222720F991E0922790FB82F95C
+:103A80008093DA0115C080E10E94E81C9091DA0170
+:103A9000882341F093FB222720F981E0822780FBD5
+:103AA00093F904C0892F809580FB90F99093DA01F7
+:103AB0008091DA010E944C1E0E945A1E8093FA01E6
+:103AC00080EE0E94E81C882341F08091FA01982F33
+:103AD000909590FB80F98093FA0189E30E94E81C9D
+:103AE000882359F08091FA0181FB222720F991E087
+:103AF000922790FB81F98093FA0182EE0E94E81CE4
+:103B0000882359F08091FA0182FB222720F991E065
+:103B1000922790FB82F98093FA0186EE0E94E81CBE
+:103B2000882359F08091FA0183FB222720F991E044
+:103B3000922790FB83F98093FA0183EE0E94E81CA0
+:103B4000882359F08091FA0184FB222720F991E023
+:103B5000922790FB84F98093FA0185E30E94E81C88
+:103B6000882359F08091FA0185FB222720F991E002
+:103B7000922790FB85F98093FA0181E30E94E81C6B
+:103B8000882359F08091FA0186FB222720F991E0E1
+:103B9000922790FB86F98093FA0181E10E94E81C4C
+:103BA000882359F08091FA0187FB222720F991E0C0
+:103BB000922790FB87F98093FA018091FA010E9485
+:103BC0005E1E8091FA0187FB882780F980930D01A2
+:103BD00087E20E94E81CC82F8EE10E94E81C811138
+:103BE000C2608FE10E94E81C8111C46080E20E94E3
+:103BF000E81C8111C86081E20E94E81C8111C0614B
+:103C000082E20E94E81C8111C06283E20E94E81CEB
+:103C10008111C06484E20E94E81C882311F0C0680E
+:103C200002C0CC2329F08C2F0E94551E6C2F03C09C
+:103C30000E94511E682F70E080E090E0CF910C94BC
+:103C4000E518CF9108956DEE7EEF80E090E00E9440
+:103C50008F2460E082E090E00E947D2460E083E0B9
+:103C600090E00E947D2460E084E090E00E947D244A
+:103C700060E085E090E00C947D2480E090E00E947C
+:103C8000772421E08D3E9E4F09F020E0822F089599
+:103C900082E090E00C946F24682F82E090E00C9416
+:103CA0007D2483E090E00C946F24682F83E090E003
+:103CB0000C947D2484E090E00C946F24682F84E0C1
+:103CC00090E00C947D248091E20180FF0BC0609114
+:103CD000130185E0689FB00111247595679575956E
+:103CE00067952BC081FF09C06091130185E0689F33
+:103CF000B00111247595679520C082FF07C06091BF
+:103D0000130185E0689FB001112417C09091E30171
+:103D10009923D1F060911201961788F72091130131
+:103D200085E0289F90011124929FA001939F500D40
+:103D3000112470E0CA010E9441246038710540F4EA
+:103D40006115710539F002C065E070E0862F0895B5
+:103D50008FE7089581E008958091E20180FF08C017
+:103D60006091110170E0759567957595679521C013
+:103D700081FF06C06091110170E07595679519C0CB
+:103D800082FF04C06091110170E010C09091E301C6
+:103D90009923C1F0609110019617A0F7809111014D
+:103DA000899FC001112470E00E9441246038710590
+:103DB00028F46115710521F0862F08958FE7089585
+:103DC00081E0089561E070E0F4CF803F21F40E942B
+:103DD000631E819504C0813F29F40E94631E809375
+:103DE000E6010895823F21F40E94631E819504C07C
+:103DF000833F29F40E94631E8093E5010895893F63
+:103E000019F40E94AC1E05C08A3F31F40E94AC1E1A
+:103E100081958093E70108958B3F21F40E94AC1EA9
+:103E2000819504C08C3F29F40E94AC1E8093E80168
+:103E30000895843F21F48091E401816017C0853F9B
+:103E400021F48091E401826011C0863F21F48091C9
+:103E5000E40184600BC0873F21F48091E401886015
+:103E600005C0883F31F48091E40180618093E401D2
+:103E700008958D3F21F48091E20181600BC08E3F57
+:103E800021F48091E201826005C08F3F29F4809186
+:103E9000E20184608093E2010895803F39F48091CB
+:103EA000E60187FF6CC01092E60169C0813F29F4EA
+:103EB0008091E6011816BCF362C09091E501823F43
+:103EC00029F497FF5CC01092E50159C0833F19F4B3
+:103ED0001916CCF354C0893F41F48091E7011816BC
+:103EE0000CF04DC01092E7014AC08A3F29F480913E
+:103EF000E70187FF44C0F6CF8B3F39F48091E8019A
+:103F000087FF3DC01092E8013AC08C3F29F48091B0
+:103F1000E8011816BCF333C0843F21F48091E4011A
+:103F20008E7F17C0853F21F48091E4018D7F11C001
+:103F3000863F21F48091E4018B7F0BC0873F21F401
+:103F40008091E401877F05C0883F31F48091E401CE
+:103F50008F7E8093E40113C08D3F21F48091E201B4
+:103F60008E7F0BC08E3F21F48091E2018D7F05C0D2
+:103F70008F3F29F48091E2018B7F8093E201809151
+:103F8000E50181110EC08091E60181110AC0809186
+:103F9000E701811106C08091E801811102C01092F1
+:103FA000E301089584EE91E00E94A3100E943D1C5D
+:103FB0009093E1018093E00108951F93CF93DF93E5
+:103FC0008091E0019091E1010E94491CAC01909127
+:103FD000E301992321F02091140130E006C02091E3
+:103FE00015018AE0289F900111244217530708F415
+:103FF00086C08091E501C091E601D091E701109162
+:10400000E801811107C0C11176C0D11174C011112E
+:1040100072C075C09F3F19F09F5F9093E30118161F
+:1040200024F40E94631E8093E5018091E50187FFDF
+:1040300005C00E94631E81958093E5011C1624F43F
+:104040000E94631E8093E6018091E60187FF05C010
+:104050000E94631E81958093E6016091E5016623CD
+:1040600039F1C091E601CC2319F1772767FD7095EE
+:10407000872F972F0E94522323E333E343E35FE329
+:104080000E94B6230E941F236093E5016C2F7727BF
+:1040900067FD7095872F972F0E94522323E333E308
+:1040A00043E35FE30E94B6230E941F236093E6016F
+:1040B0001D1624F40E94AC1E8093E7018091E70155
+:1040C00087FF05C00E94AC1E81958093E701111601
+:1040D00024F40E94AC1E8093E8018091E80187FFE0
+:1040E00005C00E94AC1E81958093E801DF91CF91BD
+:1040F0001F910C94D21F9F3F09F08ECF96CFDF9176
+:10410000CF911F910895E4EEF1E085E0DF011D926B
+:104110008A95E9F71092E3011092E2010895833045
+:1041200081F128F4813059F08230D1F00895853042
+:1041300009F449C0B8F1863009F456C00895809159
+:104140001501262F30E0280F311D2F3F310524F4B3
+:10415000680F6093150108958FEF809315010895FE
+:1041600080911401262F30E0280F311D2F3F31059B
+:1041700024F4680F6093140108958FEF8093140165
+:10418000089580911301262F30E0280F311D2F3F15
+:10419000310524F4680F6093130108958FEF809325
+:1041A0001301089580911201262F30E0280F311D50
+:1041B0002F3F310524F4680F6093120108958FEFAB
+:1041C00080931201089580911101262F30E0280F6D
+:1041D000311D2F3F310524F4680F609311010895BC
+:1041E0008FEF80931101089580911001262F30E008
+:1041F000280F311D2F3F310524F4680F6093100103
+:1042000008958FEF809310010895833011F128F401
+:10421000813049F0823091F00895853081F120F1AC
+:104220008630C1F1089580911501681720F4861B2E
+:10423000809315010895109215010895809114013D
+:10424000681720F4861B80931401089510921401BE
+:10425000089580911301681720F4861B8093130141
+:10426000089510921301089580911201681720F4A7
+:10427000861B809312010895109212010895809177
+:104280001101681720F4861B809311010895109284
+:104290001101089580911001681720F4861B809306
+:1042A000100108951092100108950F931F938D31FE
+:1042B00009F46BC008F03FC08E3009F47FC0C0F431
+:1042C000873009F469C068F4863009F0B1C0809184
+:1042D000DA01817F8E7F8093DA0181E08093EA01A9
+:1042E000A8C0883009F4A2C08B3009F49FC0A0C0D8
+:1042F000863109F49BC078F4803109F472C08131B1
+:1043000009F096C00E94251590910D0181E0892742
+:1043100080930D018BC0893109F488C08B3109F07D
+:1043200087C08091DA0181FB222720F991E0922752
+:1043300090FB81F94CC0853309F470C048F4873292
+:1043400009F46CC008F459C0893209F467C070C020
+:10435000833438F48A3308F04EC0883309F466C0D9
+:1043600067C0833409F45AC0883409F061C00E94E0
+:1043700025150FEF13ED20E3015010402040E1F729
+:1043800000C000000E94981C51C00E94D9220E94C7
+:104390008C100E9485094AC09091DA01892F80957E
+:1043A000817080FB90F929F0966098609093DA0113
+:1043B00040C0997F977F9093DA0138C08091DA01ED
+:1043C00082FB222720F991E0922790FB82F98093CB
+:1043D000DA01992359F18091DA0181608093DA0141
+:1043E00025C08091DA0183FB222720F991E09227F2
+:1043F00090FB83F9ECCF895301C08D5141E050E02F
+:1044000060E070E08A019B0104C0000F111F221FB1
+:10441000331F8A95D2F7C901B80104C061E070E08A
+:1044200080E090E00E94E5180E94251581E001C01F
+:1044300080E01F910F91089580E0089580E0089535
+:10444000CF93C82F8091EA01813079F018F0823043
+:10445000E9F187C0E0910E01F0910F018081813177
+:1044600069F0823209F07FC009C0E0910E01F0913D
+:104470000F018081813111F0823261F48C2F0E9412
+:104480001C22811104C08C2F0E9455211DC081E087
+:1044900090E01AC08C2F0E941E22811114C0C431DA
+:1044A00079F048F4CB3079F0C03109F060C082E097
+:1044B0008093EA0108C0C93219F0C83321F057C00F
+:1044C0001092EA0154C081E0817053C0C93289F171
+:1044D00018F5C43171F1A8F4C73009F046C08AE07C
+:1044E0008093150194E19093140193E0909313014C
+:1044F0008093120188E08093110188E2809310017B
+:1045000034C0CE51C63088F5EC2FF0E0E65DFE4FAA
+:1045100080818093E90129C0CE34E9F020F4CB34C6
+:1045200021F56AE013C0C13579F0C235F1F461E0DC
+:104530000DC08091E901882319F01092E90115C09E
+:1045400081E08093EA0115C061E006C08091E90135
+:104550000E948F200AC06AE08091E9010E94052133
+:1045600004C01092EA0180E004C081E002C080E053
+:10457000ABCFCF910895E1E8F0E08081886080833F
+:104580008081816080838FB7F89493E09093890055
+:1045900090ED909388008FBF0895EFE6F0E0808162
+:1045A000826080830895EFE6F0E080818D7F8083D4
+:1045B0000895EFE6F0E0908182E0892780830895F6
+:1045C0001F920F920FB60F9211242F933F934F9388
+:1045D0005F936F937F938F939F93AF93BF93EF936B
+:1045E000FF938091EB019091EC0101969093EC0187
+:1045F0008093EB01811103C082E00E948509E09164
+:10460000EC01E695E695F0E0E45AFA4FE4918091EA
+:10461000EB018E1303C080E00E948509FF91EF91AA
+:10462000BF91AF919F918F917F916F915F914F91CA
+:104630003F912F910F900FBE0F901F90189504D0AF
+:104640006894B1118DC0089570D088F09F5790F094
+:10465000B92F9927B751A0F0D1F0660F771F881FA7
+:10466000991F1AF0BA95C9F712C0B13081F077D00E
+:10467000B1E0089574C0672F782F8827B85F39F0AC
+:10468000B93FCCF3869577956795B395D9F73EF406
+:1046900090958095709561957F4F8F4F9F4F0895AE
+:1046A000E89409C097FB3EF49095809570956195CC
+:1046B0007F4F8F4F9F4F9923A9F0F92F96E9BB2782
+:1046C0009395F695879577956795B795F111F8CFFE
+:1046D000FAF4BB0F11F460FF1BC06F5F7F4F8F4F69
+:1046E0009F4F16C0882311F096E911C0772321F05F
+:1046F0009EE8872F762F05C0662371F096E8862FF7
+:1047000070E060E02AF09A95660F771F881FDAF74D
+:10471000880F9695879597F9089557FD9058440FFF
+:10472000551F59F05F3F71F04795880F97FB991F10
+:1047300061F09F3F79F087950895121613061406CD
+:10474000551FF2CF4695F1DF08C01616170618065A
+:10475000991FF1CF86957105610508940895E89435
+:10476000BB2766277727CB0197F908950BD078C030
+:1047700069D028F06ED018F0952309F05AC05FC0B8
+:104780001124EECFCADFA0F3959FD1F3950F50E02F
+:10479000551F629FF001729FBB27F00DB11D639FF3
+:1047A000AA27F00DB11DAA1F649F6627B00DA11D99
+:1047B000661F829F2227B00DA11D621F739FB00D3F
+:1047C000A11D621F839FA00D611D221F749F3327AF
+:1047D000A00D611D231F849F600D211D822F762F48
+:1047E0006A2F11249F5750408AF0E1F088234AF045
+:1047F000EE0FFF1FBB1F661F771F881F9150504091
+:10480000A9F79E3F510570F014C0AACF5F3FECF3AB
+:10481000983EDCF3869577956795B795F795E7957C
+:104820009F5FC1F7FE2B880F911D9695879597F98D
+:10483000089597F99F6780E870E060E008959FEF22
+:1048400080EC089500240A94161617061806090627
+:10485000089500240A9412161306140605060895F6
+:10486000092E0394000C11F4882352F0BB0F40F47E
+:10487000BF2B11F460FF04C06F5F7F4F8F4F9F4FBE
+:10488000089597FB072E16F4009407D077FD09D002
+:104890000E945B2407FC05D03EF4909581959F4FC4
+:1048A0000895709561957F4F0895EE0FFF1F059055
+:1048B000F491E02D0994AA1BBB1B51E107C0AA1F6C
+:1048C000BB1FA617B70710F0A61BB70B881F991FB1
+:1048D0005A95A9F780959095BC01CD010895F99955
+:1048E000FECF92BD81BDF89A992780B50895A8E1C1
+:1048F000B0E042E050E00C949724262FF999FECFC7
+:1049000092BD81BDF89A019700B4021639F01FBA22
+:1049100020BD0FB6F894FA9AF99A0FBE0895019641
+:10492000272F0E947E240C947D24DC01CB01FC0106
+:10493000F999FECF06C0F2BDE1BDF89A319600B4F8
+:0E4940000D9241505040B8F70895F894FFCF03
+:10494E0002208709150AF209BE098A090101C70169
+:10495E0028080A03140A3F4D36391D05D0049A045F
+:10496E006104F4030D0426043F040102030405064A
+:04497E00070809001D
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/twey/keymap.c b/keyboards/ergodox_ez/keymaps/twey/keymap.c new file mode 100644 index 000000000..019930f2a --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/twey/keymap.c @@ -0,0 +1,221 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +#include "keymap_plover.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define STEN 2 // steno +#define MDIA 3 // media keys + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,---------------------------------------------------. ,---------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | STEN | | NONE | 6 | 7 | 8 | 9 | 0 | \ | + * |--------+------+------+------+-------+-------------| |-------+------+------+------+------+------+--------| + * | Del | ' | , | . | P | Y | Esc | | Caps | F | G | C | R | L | / | + * |--------+------+------+------+-------+------| | | |------+------+------+------+------+--------| + * | BkSp | A | O | E | U | I |------| |-------| D | H | T | N | S | - | + * |--------+------+------+------+-------+------| Tab | | Enter |------+------+------+------+------+--------| + * | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | RShift | + * `--------+------+------+------+-------+-------------' `--------------+------+------+------+------+--------' + * | L1 | NONE | Grv | Left | Right | | Up | Down | [ | ] | L1 | + * `-----------------------------------' `----------------------------------' + * ,--------------. ,---------------. + * | PgUp | PgDn | | Home | End | + * ,------|-------|------| |-------+-------+------. + * | | | NONE | | AltGr | | | + * | Alt | Enter |------| |-------| Space | Ctrl | + * | | | Supr | | ~MDIA | | | + * `---------------------' `----------------------' + */ +// 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(0), + KC_DELT, KC_QUOT, KC_COMM,KC_DOT, KC_P, KC_Y, KC_ESC, + 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_TAB, + MO(SYMB), KC_NO, KC_GRV, KC_LEFT,KC_RGHT, + KC_PGUP,KC_PGDN, + KC_NO, + KC_LALT,KC_ENT ,KC_LGUI, + // right hand + KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + KC_CAPS, 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_ENT, KC_B, KC_M, KC_W, KC_V, KC_Z , KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, MO(SYMB), + KC_HOME, KC_END, + KC_RALT, + MO(MDIA),KC_SPC,KC_RCTL + ), +/* 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 +), + +[STEN] = KEYMAP( // layout: layer 2: Steno for Plover + // left hand + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, + KC_NO, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_STAR, + KC_NO, PV_LS, PV_LT, PV_LP, PV_LH, PV_STAR, + KC_NO, PV_LS, PV_LK, PV_LW, PV_LR, PV_STAR, PV_STAR, + KC_TRNS,KC_NO, KC_NO, KC_TRNS, KC_TRNS, + KC_NO, KC_NO, + KC_NO, + PV_A, PV_O, KC_NO, + // right hand + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + PV_STAR, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, PV_NUM, + PV_STAR, PV_RF, PV_RP, PV_RL, PV_RT, PV_RD, + PV_STAR, PV_STAR, PV_RR, PV_RB, PV_RG, PV_RS, PV_RZ, + KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_TRNS, + KC_NO, KC_NO, + KC_NO, + KC_TRNS,PV_E, PV_U +), + +/* Keymap 3: Media and mouse keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | MsUp | | | | | | | Back | | Frwd | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |MsLeft|MsDown|MsRght| |------| |------| | Prev | Play | Next | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// 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_WBAK, KC_TRNS, KC_WFWD, KC_TRNS, KC_TRNS, + KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_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(MDIA) // FN1 - Momentary Layer 3 (Media) +}; + +void toggle_steno(int pressed) +{ + uint8_t layer = biton32(layer_state); + + if (pressed) { + if (layer != STEN) layer_on(STEN); else layer_off(STEN); + + register_code(PV_LP); + register_code(PV_LH); + register_code(PV_LR); + register_code(PV_O); + register_code(PV_RL); + register_code(PV_RG); + } else { + unregister_code(PV_LP); + unregister_code(PV_LH); + unregister_code(PV_LR); + unregister_code(PV_O); + unregister_code(PV_RL); + unregister_code(PV_RG); + } +} + +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: + toggle_steno(record->event.pressed); + 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) { + uint32_t layer0 = layer_state & (1UL << 0), + layer1 = layer_state & (1UL << 1), + layer2 = layer_state & (1UL << 2), + layer3 = layer_state & (1UL << 3); + + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + + if (layer1) ergodox_right_led_1_on(); + if (layer2) ergodox_right_led_2_on(); + if (layer3) ergodox_right_led_3_on(); +}; diff --git a/keyboards/ergodox_ez/keymaps/twey/readme.md b/keyboards/ergodox_ez/keymaps/twey/readme.md new file mode 100644 index 000000000..979e4261e --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/twey/readme.md @@ -0,0 +1,17 @@ +# Twey's Home Configuration +## Layers +- Layer 0: Non-ANSI Dvorak layout, with modified modifiers — all + modifiers on thumb keys, as well as return and space. +- Layer 1: Default symbol layout. +- Layer 2: Plover-oriented stenography layer. +- Layer 3: Extended media/mouse layout. + +## Unusual features +The Plover key (top right key on the left half) also sends my Plover +‘toggle’ chord (SH-FT) when pressed, as well as toggling the steno +layer, so you can toggle between steno and typing modes with a single +keypress. + +If you want to use this feature, you'll need to add the +`commands.json` dictionary to your Plover dictionaries, or define the +toggle stroke (`PHROLG`) yourself. diff --git a/keyboards/ergodox_ez/keymaps/workman_osx_mdw/compiled.hex b/keyboards/ergodox_ez/keymaps/workman_osx_mdw/compiled.hex new file mode 100644 index 000000000..8bde2f29d --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/workman_osx_mdw/compiled.hex @@ -0,0 +1,1213 @@ +:100000000C947B030C94BF030C94BF030C94BF03AC
+:100010000C94BF030C94BF030C94BF030C94BF0358
+:100020000C94BF030C94BF030C946C100C943E1101
+:100030000C94BF030C94BF030C94BF030C94BF0338
+:100040000C94BF030C94F8230C94BF030C94BF03CF
+:100050000C94BF030C94DA1E0C94BF030C94BF03E2
+:100060000C94BF030C94BF030C94BF030C94BF0308
+:100070000C94BF030C94BF030C94BF030C94BF03F8
+:100080000C94BF030C94BF030C94BF030C94BF03E8
+:100090000C94BF030C94BF030C94BF030C94BF03D8
+:1000A0000C94BF030C94BF030C94BF03AB11CD1190
+:1000B000BB12CD11BB1212123512BB128A129D1245
+:1000C0006C156C159B159B15D115F1152217221770
+:1000D000FC152217AC16AC161317221722171C1783
+:1000E000B916B916B916B916B916B916B916B91698
+:1000F000B916B916B916B916B916B916B916B91688
+:10010000CB16D816DF16E616F0160122022201C41D
+:1001100002C4000121022101C402C4000120022006
+:1001200001C402C400011F021F01C402C400013146
+:10013000023101C402C40001E10131023102E101D6
+:10014000C402C4000126022601C402C40001250223
+:100150002501C402C4000124022401C402C4000118
+:1001600023022301C402C40001E10134023402E18C
+:1001700001C402C400012D022D01C402C40001E12A
+:100180000127022702E101C402C40001E1012502A6
+:100190002502E101C402C400011E021E01C402C402
+:1001A0000001E10130023002E101C402C40001E1BA
+:1001B000012F022F02E101C402C40001270227011E
+:1001C000C402C400012E022E01C402C40001E101D8
+:1001D00026022602E101C402C4000138023801C42B
+:1001E00002C40001E1011E021E02E101C402C400BA
+:1001F0000130023001C402C400012F022F01C402E9
+:10020000C40001E1012D022D02E101C402C400017C
+:10021000E10121022102E101C402C40001E1011F48
+:10022000021F02E101C402C40001E1012E022E02FC
+:10023000E101C402C40001E10138023802E101C455
+:1002400002C40001E10124022402E101C402C4004D
+:1002500001E10122022202E101C402C4000000F017
+:10026000A101840884088A35002B00296FE1000071
+:100270000000001E00140004001D0000004D001FBF
+:1002800000070016001B00E0002C00200015000BEA
+:10029000001000E2002A0021001A0017000600E307
+:1002A000004A00220005000A00190000000000506A
+:1002B00000015300000000000000004F0001530047
+:1002C0000000670000000023000D001C000E00006D
+:1002D0000000002400090011000F0050004B002511
+:1002E00000180008003600510028002600130012F4
+:1002F00000370052002C00270033000C0038614FFB
+:10030000004E002D0031003400E500C40000000163
+:1003100000010001000100010000003A0022023843
+:10032000002300010001003B0024022602240001FA
+:100330000001003C0038022E002500010001003DB4
+:10034000002E0227002600010001003E001F022FA0
+:100350000231020000010001000100000001000064
+:100360000001000100010000000100000001003F49
+:10037000002102300238000000010040002D021E62
+:10038000001F000100010041002F00250220000194
+:10039000000100420030002702210001000100435B
+:1003A000001E022D0022000100010044004500341F
+:1003B0000001000100000001000100010001000136
+:1003C0000000000100010001000100010001000126
+:1003D000000100F2000100010001000100F000F145
+:1003E000000100F400010001000100F3000100F52C
+:1003F00000010001000100010001000000010001F6
+:1004000000010000000100000001000100010000E7
+:1004100000010000000100010001000100010000D6
+:100420000001000100010001000100A9000100011C
+:100430000001000100AC00AA00B6000100010001AB
+:1004400000AB00A800010001000100010001000153
+:1004500000010001000100AE0001000100000001E8
+:1004600000010001000100010000003A0064306D4D
+:10047000307830010001003B0065306E307930018A
+:100480000001003C0066306F307A30010001003D11
+:1004900000673070307B30010001003E0068307131
+:1004A000307C30000001000100010000000100006C
+:1004B0000001000100010000000100000001003FF8
+:1004C00000693072307D300000010040006A3073F6
+:1004D000307E300100010041006B3074307F30010C
+:1004E00000010042006C3075308030010001004393
+:1004F00000823076308130010001004400450077F1
+:100500003001000100000016034500720067006F13
+:100510000044006F007800200045005A00000016DB
+:10052000034500720067006F0044006F00780020F0
+:100530000045005A0000000403090409026D00048C
+:100540000100A0FA090400000103010100092111C2
+:100550000100012240000705810308000A09040187
+:10056000000103010200092111010001224D0007D1
+:1005700005820308000A09040200010300000009C3
+:1005800021110100012236000705830308000A0932
+:1005900004030001030000000921110100012239B8
+:1005A000000705840310000112011001000000087B
+:1005B000EDFE071301000102000105010906A1017A
+:1005C000050719E029E71500250195087501810245
+:1005D0000508190129059505750191029501750315
+:1005E00091010507190029771500250195787501F6
+:1005F0008102C005010980A101850216010026B70C
+:10060000001A01002AB700751095018100C0050C81
+:100610000901A1018503160100269C021A01002A86
+:100620009C02751095018100C005010902A1010914
+:1006300001A1000509190129051500250195057578
+:100640000181029501750381010501093009311508
+:1006500081257F95027508810609381581257F95CA
+:100660000175088106050C0A38021581257F950160
+:1006700075088106C0C005010906A101050719E03A
+:1006800029E7150025019508750181029501750876
+:10069000810105081901290595057501910295014A
+:1006A000750391010507190029FF150026FF009524
+:1006B0000675088100C00000000000000000000076
+:1006C00000010204060A0F17202C3A4A5D71879D2B
+:1006D000B3C7DAE9F5FCFFFCF5E9DAC7B39D87712A
+:1006E0005D4A3A2C20170F0A0604020100000000A0
+:1006F00000000000000011241FBECFEFDAE0DEBFD3
+:10070000CDBF04B603FE24C08091FD019091FE018F
+:10071000A091FF01B09100028730904BA740B04BF1
+:10072000B9F41092FD011092FE011092FF01109297
+:10073000000214BE84B7877F84BF88E10FB6F894A7
+:1007400080936000109260000FBEE0E0FFE3099527
+:1007500011E0A0E0B1E0EEE7FBE402C005900D92ED
+:10076000A433B107D9F711E0A4E3B1E001C01D92B1
+:10077000AD3FB107E1F70E94B40D0C94BD250C9478
+:1007800000001092B9008AE08093B800089594EABE
+:100790009093BC009091BC0097FFFCCF9091B90062
+:1007A000987F983021F0903111F081E00895809386
+:1007B000BB0084E88093BC008091BC0087FFFCCF25
+:1007C0008091B900887F883111F0803471F780E022
+:1007D000089584E98093BC008091BC0084FDFCCF27
+:1007E00008958093BB0084E88093BC008091BC0096
+:1007F00087FFFCCF9091B900987F81E0983209F48F
+:1008000080E0089584E88093BC008091BC0087FF5D
+:10081000FCCF8091BB00089580B38C7080BB81B306
+:10082000836F81BB089580910101811115C080E41F
+:100830000E94C7038093010181110CC082E10E94D4
+:10084000F10380930101811105C08FEF0E94F10334
+:10085000809301010E94E90384B1807F84B985B14E
+:10086000807F85B98AB1837F8AB98BB1837F8BB949
+:100870003E98469808950E94DD05809301010E94EC
+:1008800013040E940C04A5E3B1E0E3E4F1E08EE080
+:100890008E0F11921D928E13FCCF0C94C7050E94EF
+:1008A000DD05809301010E9413040E940C04A5E35E
+:1008B000B1E0E3E4F1E08EE08E0F11921D928E1311
+:1008C000FCCF0895BF92CF92DF92EF92FF920F93E9
+:1008D0001F93CF93DF9380910101882379F080915A
+:1008E00034018F5F80933401811108C00E94DD05BF
+:1008F00080930101811102C00E946F0505E311E0A0
+:10090000C0E0D0E0DD24D39482E0C82EEE24E3944E
+:10091000F12CC730D10500F580910101811164C02F
+:1009200080E40E94C70380930101811112C082E11B
+:100930000E94F1038093010181110BC0C7010C2EAD
+:1009400001C0880F0A94EAF780950E94F103809312
+:1009500001010E94E90348C0CA30A1F028F4C83060
+:1009600059F0C93061F005C0CC3089F070F0CD305D
+:1009700089F0209A289810C0219A29980DC0229AAF
+:100980002A980AC0239A2B9807C0529A01C0539AFA
+:100990005B9802C03E9A469890EA9A95F1F79FB10B
+:1009A000799902C082E001C080E091709D25982B6A
+:1009B0007C9902C084E001C080E0892B7D9902C04F
+:1009C00038E001C030E0832B7E9902C020E101C0F5
+:1009D00020E0822B9FB19095991F9927991F92959E
+:1009E000990F907E892B0FC080910101811149C020
+:1009F00080E40E94C70380930101882379F1B12C20
+:100A00000E94E9038B2DF8019081981719F08083DB
+:100A1000C09200010E94130421960F5F1F4FCE3039
+:100A2000D10509F076CF80910001882361F18150D2
+:100A300080930001882339F08FE99FE00197F1F757
+:100A400000C0000020C0A3E4B1E0E5E3F1E0CF0185
+:100A5000825F91919D938E13FCCF15C083E10E941C
+:100A6000F103809301018111CACF81E40E94C70381
+:100A7000809301018111C3CF0E940204B82EB0946B
+:100A8000BFCF80E0C0CF0E946D0581E0DF91CF91A4
+:100A90001F910F91FF90EF90DF90CF90BF9008953E
+:100AA000E82FF0E0ED5BFE4F8081089508950F93ED
+:100AB0001F93CF93DF93C3E4D1E010E00C2F025FCC
+:100AC000899190E00E94011E180F0C13F9CF812F1D
+:100AD000DF91CF911F910F9108950C94C007569804
+:100AE0005E9825982D9826982E9827982F988FEF06
+:100AF00090E0909389008093880090938B0080937E
+:100B00008A0090938D0080938C00259A2D9A2FEF68
+:100B100080E792E0215080409040E1F700C0000063
+:100B2000269A2E9A2FEF80E792E021508040904045
+:100B3000E1F700C00000279A2F9A2FEF80E792E09C
+:100B4000215080409040E1F700C0000025982D988A
+:100B50002FEF80E792E0215080409040E1F700C005
+:100B6000000026982E982FEF80E792E021508040D9
+:100B70009040E1F700C0000027982F9856985E98A3
+:100B800025982D9826982E9827982F98089589EAC9
+:100B90008093800089E08093810024982C983F986E
+:100BA0008AB18F748AB96E98479A8BB1806B8BB972
+:100BB000769A0E946F050C94BF0780E28093010132
+:100BC0008091510181110EC00E94C10381E0809388
+:100BD00051012FEF83ED90E3215080409040E1F7E9
+:100BE00000C0000080E40E94C703809301018111CE
+:100BF0002EC00E94F10380930101811128C00E9440
+:100C0000F10380930101811122C08FE30E94F1035F
+:100C10008093010181111BC00E94E90380E40E94BE
+:100C2000C70380930101811112C08CE00E94F1037F
+:100C30008093010181110BC00E94F1038093010197
+:100C4000811105C08FE30E94F103809301010E948E
+:100C5000E903809101010895CF93DF93EC0162379E
+:100C600009F4C6C038F56A3609F483C098F46636CC
+:100C700009F463C048F4643609F451C008F056C062
+:100C8000662309F441C01CC1683609F464C008F445
+:100C90005BC068C06E3609F48FC030F46C3609F45E
+:100CA00076C008F46DC081C0603709F493C008F4C1
+:100CB0008AC097C06A3709F4D1C080F4663709F456
+:100CC000B3C030F4643709F4A1C008F498C0A5C0DB
+:100CD000683709F4B7C008F4AEC0BAC06E3709F47B
+:100CE000D5C030F46C3709F4C5C008F4BDC0C8C025
+:100CF000603809F4D7C008F4CFC0613809F4D8C00F
+:100D0000623809F44BC0DCC08A81882321F085EE6B
+:100D10000E941014D5C085EE0E94D814D1C00E9444
+:100D2000AB1B8A81882309F4CBC0CDC00E94AB1BCA
+:100D30008A81882309F4C4C0C9C00E94AB1B8A8180
+:100D4000882309F4BDC0C5C00E94AB1B8A818823DB
+:100D500009F4B6C0C1C00E94AB1B8A81882309F484
+:100D6000AFC0BDC00E94AB1B8A81882309F4A8C014
+:100D7000B9C00E94AB1B8A81882309F4A1C0B5C009
+:100D80000E94AB1B8A81882309F49AC0B1C00E94DB
+:100D9000AB1B8A81882309F493C0ADC00E94AB1BB2
+:100DA0008A81882309F48CC0A9C00E94AB1B8A8168
+:100DB000882309F485C0A5C00E94AB1B8A818823C3
+:100DC00009F47EC0A1C00E94AB1B8A81882309F46C
+:100DD00077C09DC00E94AB1B8A81882309F470C034
+:100DE00099C00E94AB1B8A81882309F469C095C011
+:100DF0000E94AB1B8A81882309F462C091C00E94C3
+:100E0000AB1B8A81882309F45BC08DC00E94AB1B99
+:100E10008A81882309F454C089C00E94AB1B8A814F
+:100E2000882309F44DC085C00E94AB1B8A818823AA
+:100E300009F446C081C00E94AB1B8A81882309F453
+:100E40003FC07DC00E94AB1B8A818823C9F17AC054
+:100E50000E94AB1B8A81882399F177C00E94AB1B4B
+:100E60008A81882369F174C00E94AB1B8A81882320
+:100E700039F171C00E94AB1B8A81882309F16EC0D1
+:100E80000E94AB1B8A818823D9F06BC00E94AB1BE8
+:100E90008A818823A9F068C00E94AB1B8A818823BD
+:100EA00079F065C00E94AB1B8A81882349F062C03B
+:100EB0000E94AB1B8A81882319F08AE091E05CC014
+:100EC00080E090E059C080E592E056C083E492E073
+:100ED00053C086E392E050C089E292E04DC08CE1BD
+:100EE00092E04AC08FE092E047C082E092E044C0C6
+:100EF00089EF91E041C080EF91E03EC083EE91E048
+:100F00003BC08AED91E038C08DEC91E035C084ECB7
+:100F100091E032C08BEB91E02FC08EEA91E02CC0C3
+:100F200081EA91E029C088E991E026C08BE891E050
+:100F300023C08EE791E020C085E791E01DC088E6E0
+:100F400091E01AC08FE591E017C086E591E014C0EA
+:100F50008DE491E011C084E491E00EC087E391E05C
+:100F60000BC08EE291E008C085E291E005C08CE103
+:100F700091E002C083E191E0DF91CF91089508955F
+:100F80006091BE017091BF018091C0019091C1013B
+:100F90000E940D1E56985E9825982D9826982E989A
+:100FA00027982F98813019F0823021F00895259AE2
+:100FB0002D9A0895269A2E9A089581E0089581E049
+:100FC00008950C94DF070895282F882339F090E0C6
+:100FD0002A3010F44D9608950697089587E290E020
+:100FE0000895AF92BF92DF92EF92FF920F931F93FB
+:100FF000CF93DF938C01FC01C081D181CE010E948F
+:10100000861CBE010E94610BEC01B8010E94E10741
+:10101000882309F4C9C1F8018281882309F4BEC07C
+:1010200080915E0181111FC0C431F0E7DF0709F034
+:10103000B5C10E94E30781E080935E010E94A41E77
+:1010400090935D0180935C011092550110925701BD
+:1010500010925601109259011092580110925B01A2
+:1010600010925A01A1C180915C0190915D010E9492
+:10107000B01E883C910570F480915501E82FF0E096
+:10108000EE0FFF1FEA5AFE4FD183C0838F5F80931C
+:1010900055018AC1C13020E8D20708F451C0F801D7
+:1010A0008281882309F47EC05E01E894B7F88091BC
+:1010B0005401813079F050F08230C1F482EE0E9408
+:1010C000101487E50E94101487E50EC082EE0E947E
+:1010D00010140CC080EE0E94101481EE0E941014B7
+:1010E00088E10E94101488E10E94D8148CE0E82E58
+:1010F000F12CC5010E2C02C0969587950A94E2F753
+:101100008F700E94E407D82E0E9410148D2D0E942B
+:10111000D814F4E0EF1AF1082CEFE2162FEFF206E4
+:1011200041F780915401813029F010F0823041F470
+:1011300082EE04C080EE0E94D81481EE0E94D81482
+:10114000C43180E7D80768F4C23090E7D90708F0C7
+:1011500046C0C115E0E7DE0771F0C130D047A1F10C
+:101160000CC1C33320E7D20709F4D8C0C433D04739
+:1011700009F4EBC002C1F8018281882309F402C19D
+:101180000E948D17FFEF24E38CE0F1502040804057
+:10119000E1F700C000000E94FF1E06C1C13080E8D8
+:1011A000D80770F2C43120E7D20708F0B3C0C230CC
+:1011B00080E7D807A0F4C11590E7D90709F4E2C089
+:1011C000C130D04709F0D9C0F8018281882309F4E1
+:1011D000D9C08091DB0181608093DB01E5C0F8011B
+:1011E0008281882309F4CEC00E94591F811102C058
+:1011F0000E943F1F0E946C1F90E09093EF0180932C
+:10120000EE01C230F0E7DF0721F48091EE0181604A
+:101210007AC0C33020E7D20721F48091EE018260CA
+:1012200072C0C43080E7D80721F48091EE01846059
+:101230006AC0C53090E7D90719F48091EE0127C044
+:10124000C630E0E7DE0721F48091EE0180615BC0EB
+:10125000C730F0E7DF0721F48091EE01806253C0D0
+:10126000C83020E7D20721F48091EE0180644BC0A2
+:10127000C93080E7D80721F48091EE01806843C02F
+:10128000CA3090E7D90729F48091EE018460886024
+:101290003AC0CB30E0E7DE0721F48091EE018E7F8B
+:1012A00032C0CC30F0E7DF0721F48091EE018D7F72
+:1012B0002AC0CD3020E7D20721F48091EE018B7F48
+:1012C00022C0CE3080E7D80719F48091EE011AC011
+:1012D0008091EE01CF3090E7D90711F48F7E13C0D3
+:1012E000C031E0E7DE0711F48F7D0DC0C131F0E7BA
+:1012F000DF0711F48F7B07C0C231D04711F48F771D
+:1013000002C08B7F877F8093EE018091EE010E9467
+:10131000701F4AC0C333F0E7DF07A1F4F8018281F0
+:10132000882321F01092520182E016C08091520170
+:10133000811106C086E20E94101486E20E94D81431
+:1013400082E018C0C433D047C1F4F80182818823F9
+:1013500031F01092530180E20E94271525C0809140
+:101360005301811106C087E20E94101487E20E9497
+:10137000D81480E20E942E1517C081E0809352019C
+:1013800080935301C801DF91CF911F910F91FF907E
+:10139000EF90DF90BF90AF900C94DD07C130F0E884
+:1013A000DF0708F081CECCCE80E0DF91CF911F9196
+:1013B0000F91FF90EF90DF90BF90AF90089526E0DF
+:1013C000729FF001112444E5849FE00DF11D11246A
+:1013D000E60FF11DEE0FFF1FE959FD4F8591949126
+:1013E0000E94730B811560E49607B0F5811570E3D8
+:1013F000970708F0DEC0803E9105D8F4803C910547
+:1014000008F06CC0883A910578F4853A910508F0A7
+:101410006BC08130910509F452C108F40FC18430CA
+:10142000910508F04CC10AC18B3B910508F467C0D7
+:1014300005C18F3F910509F048F4803F910508F000
+:10144000ADC0883E910508F43AC1F8C0811520E28C
+:10145000920708F0A5C00895811543E5940790F41C
+:10146000811562E5960708F0C8C0811571E59707F8
+:1014700008F0BEC0811520E5920708F09DC09F705E
+:10148000906A0895811545E59407D8F4811564E5BF
+:10149000960708F0C8C0482F4695469570E2479FCA
+:1014A000A00111248370992721E030E0B90102C026
+:1014B000660F771F8A95E2F7CB01842B952B9A68EC
+:1014C0000895811576E5970708F4B2C09C0130565F
+:1014D0002115304108F0B2C09F70AEC0FC01EE0F84
+:1014E000FF1FE352FF4F62C0853A910509F4A9C07E
+:1014F000863A910509F0A8C082E890E40895883AF8
+:10150000910509F4A4C0893A910509F4A3C08A3A67
+:10151000910509F4A2C08B3A910509F4A1C08C3A57
+:10152000910509F4A0C08D3A910509F49FC0803B54
+:10153000910509F49EC08E3A910509F49DC08F3A39
+:10154000910509F49CC0813B910509F49BC0823B45
+:10155000910509F49AC0833B910509F499C0843B35
+:10156000910509F498C0853B910509F497C0863B25
+:10157000910509F496C0873B910509F495C0883B15
+:10158000910509F494C0893B910509F493C08A3B05
+:10159000910509F492C080E094E40895906508955F
+:1015A000FC01FF70EE0FFF1FE35AFD4F85919491F0
+:1015B00008959927906C0895482F437021E030E0FA
+:1015C00002C0220F331F4A95E2F73C68AC0164E089
+:1015D000569547956A95E1F74370342B8F70869541
+:1015E000869560E2869FC0011124822B932B08957B
+:1015F000982F8827816F906A0895482F46954695C1
+:1016000070E2479FA00111248370992721E030E008
+:10161000B90102C0660F771F8A95E2F7CB01842BD0
+:10162000952B9C680895982F8827846F906A089559
+:101630008F719927982F88279062089580E090E015
+:10164000089581E890E4089583E890E4089582EE97
+:1016500094E4089589EE94E408958AEE94E408955C
+:1016600085EB94E4089586EB94E4089587EB94E485
+:1016700008958CEC94E408958DEC94E4089583E847
+:1016800095E408958AE895E4089582E995E408953B
+:1016900084E995E4089581E296E4089583E296E46E
+:1016A000089584E296E4089585E296E4089586E23A
+:1016B00096E4089587E296E408958AE296E4089510
+:1016C000089596E0799FF001112494E5899FE00D3B
+:1016D000F11D1124E60FF11DEE0FFF1FE959FD4F1B
+:1016E0008591949108958238910549F1B0F4813340
+:1016F000910509F458C048F48932910509F44EC0A7
+:101700008A32910509F454C008958533910509F48E
+:1017100040C08933910599F00895833E910529F1E0
+:1017200038F4803E910591F0823E9105A1F0089534
+:10173000863E9105F9F0873E910531F1089520919B
+:10174000EE0120FD3AC021FD38C008958091EE01E0
+:1017500080FD35C032C08091EE0182FF32C08091A1
+:10176000EE0184FD30C083EE39C08091EE0182FD30
+:1017700028C0F5CF8091EE0183FF27C08091EE0154
+:1017800084FD21C087EE2AC08091EE0183FD1DC03B
+:10179000F5CF8091EE0185FD1AC01BC08091EE014E
+:1017A00085FD17C014C08091EE0186FD14C015C0E0
+:1017B0008091EE0186FD11C00EC080EE0FC089E35E
+:1017C0000DC082EE0BC080E009C086EE07C089E242
+:1017D00005C085E303C08AE201C081E390E008957B
+:1017E00008950C94F00B80916F010895CF93DF93CF
+:1017F00000D01F92CDB7DEB79C018091F4018430F8
+:1018000019F593E099833B832A839093E9008FEF46
+:101810009091E800815095FD06C095ED9A95F1F7FD
+:1018200000008111F5CF8091E80085FF0DC040E0F8
+:1018300050E063E070E0CE0101960E945C0E809162
+:10184000E8008E778093E8000F900F900F90DF9163
+:10185000CF910895CF93DF9300D01F92CDB7DEB71D
+:101860002091F401243021F522E029839B838A838F
+:1018700083E08093E9008FEF9091E800815095FD1F
+:1018800006C095ED9A95F1F700008111F5CF809192
+:10189000E80085FF0DC040E050E063E070E0CE015D
+:1018A00001960E945C0E8091E8008E778093E8009C
+:1018B0000F900F900F90DF91CF9108952091F40138
+:1018C0002430F1F422E02093E9002FEF3091E8007A
+:1018D000215035FD06C035ED3A95F1F70000211194
+:1018E000F5CF2091E80025FF0BC040E050E065E017
+:1018F00070E00E945C0E8091E8008E778093E80093
+:101900000895CF93DF93EC019091F401943009F0A6
+:1019100046C080910C018823D9F080910D01882365
+:10192000B9F09093E9008FEF9091E800815095FD18
+:1019300006C095E19A95F1F700008111F5CF8091ED
+:10194000E80085FF2CC040E050E060E170E017C087
+:1019500081E08093E9008FEF9091E800815095FD40
+:1019600006C095ED9A95F1F700008111F5CF8091B1
+:10197000E80085FF14C040E050E068E070E0CE0170
+:101980000E945C0E8091E8008E778093E80080E1F1
+:10199000FE01AFE5B1E001900D928A95E1F7DF918C
+:1019A000CF9108958091F301811109C00E94F10F38
+:1019B0000E944E108091E20084608093E2000895BE
+:1019C0001092F301089508950C94E5230E94951E4A
+:1019D0000E94EB230E94F4120C94F10B42E061ECA4
+:1019E00081E00E946B0F42E061EC82E00E946B0F8D
+:1019F00042E061EC83E00E946B0F42E161EC84E025
+:101A00000C946B0F8091F601833009F455C030F4CB
+:101A1000813071F0823009F48EC008958A3009F463
+:101A20007AC08B3009F460C0893009F09CC020C0B6
+:101A30008091F501813A09F096C08091E800877F96
+:101A40008093E8008091F9019091FA01892B21F4AB
+:101A500060E18FE591E003C060E080E090E070E03D
+:101A60000E94A70E8091E8008B778093E80008958C
+:101A70008091F501813209F076C08091F901909151
+:101A8000FA01009719F0039709F06DC08091E80002
+:101A9000877F8093E8008091E80082FD05C08091F7
+:101AA000F4018111F8CF5FC08091F10080936F0144
+:101AB0008091E8008B7753C08091F501813A09F05D
+:101AC00052C08091F9019091FA01892B09F04BC025
+:101AD0008091E800877F8093E8008091E80080FF94
+:101AE000FCCF80910C0136C08091F5018132D9F58F
+:101AF0008091F9019091FA01892BA9F58091E80074
+:101B0000877F8093E8000E94A00F8091F701809367
+:101B10000C010C948D178091F501813221F5809193
+:101B2000E800877F8093E8000E94A00F8091F80171
+:101B30008093700108958091F501813AA1F480911C
+:101B4000E800877F8093E8008091E80080FFFCCF69
+:101B5000809170018093F1008091E8008E778093EE
+:101B6000E8000C94A00F089584B7877F84BF88E1B4
+:101B70000FB6F89480936000109260000FBE80E86A
+:101B800080936100109261000E9443130E94F10F44
+:101B90000E944E108091E20084608093E20078946D
+:101BA0000E94D4120E94451382E091E00E94EF123D
+:101BB0000E94D3238091F401853069F40E945D1E58
+:101BC0008091F2018823B1F30E94871E882391F34C
+:101BD0000E94460EEFCF0E944B13ECCF292F3327E4
+:101BE00023303105C9F064F42130310581F0223011
+:101BF000310509F043C08DE690E02BE335E042C0AB
+:101C000021323105F1F02232310541F137C082E154
+:101C100090E028EA35E036C099278130910541F0FF
+:101C20008230910541F0892B49F5E7E3F5E005C0E5
+:101C3000EFE1F5E002C0E7E0F5E0849190E09F017C
+:101C400021C06430D8F4E62FF0E0EE0FFF1FEE5D08
+:101C5000FE4F2081318189E090E014C0643070F43F
+:101C600070E0FB01EE0FFF1FE65EFE4F2081318129
+:101C7000FB01EA5EFE4F808190E004C080E090E0CE
+:101C800020E030E0FA0131832083089580E189BDAE
+:101C900082E189BD09B400FEFDCF8091D8008F7D1F
+:101CA0008093D8008091E00082608093E000809172
+:101CB000E00081FDFCCF0895CF92DF92EF92FF927A
+:101CC0000F931F93CF93DF93EC018B016A010E9466
+:101CD000BF0F811133C0C114D10439F0F6018081E6
+:101CE0009181081B190BC80FD91FE12CF12C01158C
+:101CF000110519F18091E80085FD16C08091E8007A
+:101D00008E778093E800C114D10449F0F6018081F8
+:101D10009181E80EF91EF182E08285E00FC00E94F9
+:101D2000BF0F882321F30AC089918093F1000150ED
+:101D30001109FFEFEF1AFF0ADACF80E0DF91CF91B0
+:101D40001F910F91FF90EF90DF90CF900895209119
+:101D5000FB013091FC012617370748F0611571052A
+:101D600039F42091E8002E772093E80001C0B901F2
+:101D700040E061157105A9F12091F401222309F4D5
+:101D800043C0253009F442C02091E80023FD40C043
+:101D90002091E80022FD32C02091E80020FFE9CF29
+:101DA0004091F3002091F20030E0342BFC01CF0190
+:101DB0006115710559F02830310540F48191809307
+:101DC000F100615071092F5F3F4FF1CF41E02830A2
+:101DD000310509F040E02091E8002E772093E800DB
+:101DE000C8CF4111C9CF0AC08091F401882361F0A6
+:101DF000853061F08091E80083FD0AC08091E800A1
+:101E000082FFF2CF80E0089582E0089583E0089594
+:101E100081E008952091FB013091FC0126173707DE
+:101E200048F06115710539F42091E8002E77209370
+:101E3000E80001C0B901FC0120E06115710591F1D4
+:101E40008091F401882309F440C0853009F43FC033
+:101E50008091E80083FD3DC08091E80082FD2FC0A5
+:101E60008091E80080FFE9CF2091F3008091F2009B
+:101E700090E0922B6115710559F08830910540F47E
+:101E800024912093F1003196615071090196F2CFAF
+:101E900021E0089709F020E08091E8008E77809398
+:101EA000E800CBCF2111CCCF0AC08091F401882368
+:101EB00061F0853061F08091E80083FD0AC0809177
+:101EC000E80082FFF2CF80E0089582E0089583E089
+:101ED000089581E00895982F973058F59093E90080
+:101EE000981739F07091EC002091ED005091F000BE
+:101EF00003C0242F762F50E021FF19C03091EB0052
+:101F00003E7F3093EB003091ED003D7F3093ED004C
+:101F10003091EB0031603093EB007093EC00209334
+:101F2000ED005093F0002091EE0027FF07C09F5F67
+:101F3000D3CF8F708093E90081E0089580E0089509
+:101F40008091F50187FF11C08091E80082FD05C0F6
+:101F50008091F4018111F8CF11C08091E8008B7756
+:101F60000BC08091F401882349F08091E80080FF44
+:101F7000F8CF8091E8008E778093E8000895209153
+:101F8000E4003091E50095E64091EC00842F8170EB
+:101F900040FF22C08091E80080FD1CC08091F401C8
+:101FA000882391F0853091F08091EB0085FD10C081
+:101FB0004091E4005091E5004217530729F39A013C
+:101FC000915011F784E0089582E0089583E0089528
+:101FD00081E0089580E008954091E80042FFDECF5F
+:101FE00008950E945F100E946710E0EEF0E080818B
+:101FF00081608083E8EDF0E080818F77808319BC79
+:10200000A7EDB0E08C918E7F8C9380818F7E808352
+:102010001092F30108950F931F93CF93DF930E94C3
+:102020005F100E946710C8EDD0E088818F778883A9
+:1020300088818068888388818F7D888319BC10920D
+:10204000F4011092F0011092F2011092F10100EEF1
+:1020500010E0F80180818B7F808388818160888394
+:1020600042E060E080E00E946B0FE1EEF0E08081F2
+:102070008E7F8083E2EEF0E08081816080838081CA
+:1020800088608083F80180818E7F80838881806171
+:102090008883DF91CF911F910F910895E8EDF0E0D3
+:1020A00080818F7E8083E7EDF0E080818160808396
+:1020B00084E082BF81E08093F3010C940B10E8ED83
+:1020C000F0E080818E7F80831092E200089510926C
+:1020D000DA001092E10008951F920F920FB60F924E
+:1020E00011242F933F934F935F936F937F938F931D
+:1020F0009F93AF93BF93EF93FF938091E10082FF93
+:102100000BC08091E20082FF07C08091E1008B7FCD
+:102110008093E1000E94D3128091DA0080FF1FC0FB
+:102120008091D80080FF1BC08091DA008E7F809361
+:10213000DA008091D90080FF0DC080E189BD82E185
+:1021400089BD09B400FEFDCF81E08093F4010E94B7
+:10215000D20C05C019BC1092F4010E94E00C8091D1
+:10216000E10080FF19C08091E20080FF15C08091DE
+:10217000E2008E7F8093E2008091E2008061809394
+:10218000E2008091D80080628093D80019BC85E07D
+:102190008093F4010E94E40C8091E10084FF30C040
+:1021A0008091E20084FF2CC080E189BD82E189BD7D
+:1021B00009B400FEFDCF8091D8008F7D8093D800B8
+:1021C0008091E1008F7E8093E1008091E2008F7E1C
+:1021D0008093E2008091E20081608093E200809130
+:1021E000F001882311F084E007C08091E30087FDAF
+:1021F00002C081E001C083E08093F4010E94E60CFC
+:102200008091E10083FF29C08091E20083FF25C017
+:102210008091E100877F8093E10082E08093F40168
+:102220001092F0018091E1008E7F8093E100809117
+:10223000E2008E7F8093E2008091E20080618093D3
+:10224000E20042E060E080E00E946B0F8091F000CD
+:1022500088608093F0000E94E30CFF91EF91BF91A2
+:10226000AF919F918F917F916F915F914F913F912E
+:102270002F910F900FBE0F901F9018951F920F92E5
+:102280000FB60F9211242F933F934F935F936F9349
+:102290007F938F939F93AF93BF93CF93DF93EF93EE
+:1022A000FF93C091E900CF708091EC00D82FD170DE
+:1022B00080FDD0E81092E9008091F000877F809344
+:1022C000F00078940E9482111092E9008091F00051
+:1022D00088608093F000CD2BCF70C093E900FF9110
+:1022E000EF91DF91CF91BF91AF919F918F917F91AE
+:1022F0006F915F914F913F912F910F900FBE0F9073
+:102300001F9018951F93CF93DF93CDB7DEB7AA9791
+:102310000FB6F894DEBF0FBECDBFE5EFF1E088E069
+:102320008E0F9091F10091938E13FBCF0E94020DBE
+:102330008091E80083FF1FC18091F5019091F60123
+:10234000492F50E04A30510508F015C1FA01EA5A08
+:10235000FF4F0C946D25803881F0823809F00BC155
+:102360008091F9018F708093E9008091EB0085FBEB
+:10237000882780F91092E90006C08091F1019091C0
+:10238000F201911182609091E800977F9093E800AC
+:102390008093F1001092F100C8C0282F2D7F09F022
+:1023A000EAC0882319F0823061F0E5C08091F7011E
+:1023B000813009F0E0C0933009F080E08093F201B1
+:1023C0002BC08091F701811127C08091F9018F7096
+:1023D00009F4D1C08093E9002091EB0020FF1CC0DC
+:1023E000933021F48091EB00806214C09091EB0057
+:1023F00090619093EB0021E030E0A90102C0440F0E
+:10240000551F8A95E2F74093EA001092EA00809106
+:10241000EB0088608093EB001092E9008091E80067
+:10242000877F86C08111A7C01091F7011F77809127
+:10243000E3008078812B8093E3008091E800877F20
+:102440008093E8000E94A00F8091E80080FFFCCFFD
+:102450008091E30080688093E300111102C082E064
+:1024600001C083E08093F40186C08058823008F078
+:1024700082C08091F7019091F8018C3D53E095075F
+:1024800079F583E08A838AE289834FB7F894DE0185
+:10249000139620E03EE051E2E32FF0E05093570026
+:1024A000E49120FF03C0E295EF703F5FEF708E2F45
+:1024B00090E0EA3010F0C79601C0C0968D939D93CE
+:1024C0002F5F243149F74FBF8091E800877F8093C9
+:1024D000E8006AE270E0CE0101960E94A70E14C0E7
+:1024E000AE014F5F5F4F6091F9010E94EE0DBC019C
+:1024F000009709F440C09091E800977F9093E8001E
+:1025000089819A810E940A0F8091E8008B778093DD
+:10251000E80031C0803879F58091E800877F8093AA
+:10252000E8008091F0018093F1008091E8008E77BF
+:102530008093E8000E94A00F1EC081111CC09091E2
+:10254000F7019230C0F48091E800877F8093E80023
+:102550009093F0010E94A00F8091F001811106C0BC
+:102560008091E30087FD02C081E001C084E0809398
+:10257000F4010E94EE0C8091E80083FF0AC0809174
+:10258000E800877F8093E8008091EB008062809371
+:10259000EB00AA960FB6F894DEBF0FBECDBFDF9159
+:1025A000CF911F9108950895CF938091F4018823CE
+:1025B000A1F0C091E900CF709091EC00892F81705B
+:1025C00090FD80E8C82B1092E9008091E80083FD1F
+:1025D0000E948211CF70C093E900CF91089590932B
+:1025E0007601809375010895E0917501F09176016F
+:1025F000309721F00190F081E02D099480E008955A
+:10260000E0917501F0917601309721F00280F3811D
+:10261000E02D09940895E0917501F09176013097CD
+:1026200021F00480F581E02D099408952091730133
+:10263000309174018217930771F090937401809325
+:102640007301E0917501F0917601309721F00680D9
+:10265000F781E02D09940895209171013091720164
+:102660008217930771F09093720180937101E0914A
+:102670007501F0917601309721F00084F185E02D0D
+:102680000994089508950C9442130E949B1E0E9481
+:102690003B040C94211F9F92AF92BF92CF92DF9286
+:1026A000EF92FF920F931F93CF93DF9300D000D050
+:1026B00000D0CDB7DEB70E9462040DE010E0AA247E
+:1026C000A394B12C902E802F0E9450059801285879
+:1026D0003E4F6901F901F080F826A1F4015011097B
+:1026E00088F78FEF89838A831B820E94A41E8160F2
+:1026F000782F9D838C8349815A816B818D810E94C3
+:10270000E2132FC09091DB0191FF04C08E830E94E1
+:1027100056058E8125E030E0A501022E01C0440F50
+:102720000A94EAF7E42E4F21C1F029839A828E2180
+:1027300091E009F490E09B830E94A41E8160782FB1
+:102740009D838C8349815A816B818D810E94E21324
+:10275000F6018081E826E08204C021503109E0F6CC
+:10276000BDCF0E94EF20109177010E94F41218173C
+:10277000B9F00E94F4128093770126960FB6F89470
+:10278000DEBF0FBECDBFDF91CF911F910F91FF90A4
+:10279000EF90DF90CF90BF90AF909F900C94F10B93
+:1027A00026960FB6F894DEBF0FBECDBFDF91CF9156
+:1027B0001F910F91FF90EF90DF90CF90BF90AF905F
+:1027C0009F900895CF93DF93CDB7DEB72B970FB6C9
+:1027D000F894DEBF0FBECDBF4F83588769877A87D5
+:1027E0008B87DE01119686E0FD0111928A95E9F74B
+:1027F00085E0FE01379601900D928A95E1F74981B7
+:102800005A816B817C818D819E810E942B1A2B962F
+:102810000FB6F894DEBF0FBECDBFDF91CF91089504
+:10282000CF93882309F4C2C0C82F823859F40E947C
+:10283000F41281FDBBC089E30E94051D0E94D21DD8
+:1028400089E30CC0833879F40E94F41280FDAEC095
+:1028500083E50E94051D0E94D21D83E50E94471D4D
+:10286000CF910C94D21D843859F40E94F41282FD49
+:102870009DC087E40E94051D0E94D21D87E4EECF13
+:102880008CEF8C0F813A48F48C2F0E9439238111F0
+:102890008DC08C2F0E94051DE3CF80E28C0F883005
+:1028A00048F4C77081E001C0880FCA95EAF70E941A
+:1028B0008B1DD6CF8BE58C0F833078F4C53A29F089
+:1028C000C63A31F083E890E005C081E890E002C0AC
+:1028D00082E890E0CF910C94161388E58C0F833139
+:1028E00008F064C0C83A39F1C93A41F1CA3A49F12D
+:1028F000CB3A51F1CC3A59F1CD3A61F1C03B69F193
+:10290000CE3A71F1CF3A79F1C13B81F1C23B89F105
+:10291000C33B91F1C43B99F1C53BA1F1C63BA9F181
+:10292000C73BB1F1C83BB9F1C93BC1F1CA3BC9F1E1
+:1029300080E090E038C082EE90E035C089EE90E013
+:1029400032C08AEE90E02FC085EB90E02CC086EB81
+:1029500090E029C087EB90E026C08CEC90E023C08B
+:102960008DEC90E020C083E891E01DC08AE891E002
+:102970001AC082E991E017C084E991E014C081E2B5
+:1029800092E011C083E292E00EC084E292E00BC0BC
+:1029900085E292E008C086E292E005C087E292E01C
+:1029A00002C08AE292E0CF910C942C13CF9108954B
+:1029B000882309F44BC0823859F40E94F41281FF35
+:1029C00045C089E30E94051D0E94D21D89E30CC009
+:1029D000833871F40E94F41280FF38C083E50E94AE
+:1029E000051D0E94D21D83E50E94471D0C94D21D37
+:1029F000843859F40E94F41282FF28C087E40E94B0
+:102A0000051D0E94D21D87E4EFCF9CEF980F913AED
+:102A100058F390E2980F983050F4877091E001C01D
+:102A2000990F8A95EAF7892F0E94911DDFCF9BE5C8
+:102A3000980F933020F480E090E00C941613885A9D
+:102A4000833120F480E090E00C942C1308958823C7
+:102A500021F00E948B1D0C94D21D0895882321F033
+:102A60000E94911D0C94D21D08957F928F929F9287
+:102A7000AF92BF92CF92DF92EF92FF920F931F938C
+:102A8000CF93DF931F92CDB7DEB77C01C62E772E92
+:102A9000FC01058102950F70128111110E94A81D81
+:102AA0000E94FE1C882379F0112369F080E28C0DCE
+:102AB000883048F082E00E94E71C0E94FE1C91E0F2
+:102AC000D82ED92601C0D12CE72DE295EF70F0E089
+:102AD000E05AFF4F0C946D25872D807F072D0F70D6
+:102AE000882311F00295007F112389F0002309F457
+:102AF00090C180E28C0D883020F4802F0E948B1DC5
+:102B000003C0802F0E949B1D0E94D21D82C18C2D6C
+:102B10000E94D814002309F495C180E28C0D8830FE
+:102B200020F4802F0E94911D03C0802F0E94A11DC0
+:102B30000E94D21D87C1972D907F872D8F70903274
+:102B400011F08295807FCC2021F0F1E0CF16B1F01A
+:102B50001EC0112349F0002309F414C1013009F00B
+:102B600011C10E94BB1D6EC1002319F0013009F490
+:102B700069C189830E94BE1D89810AC1112321F088
+:102B8000023008F05FC1FEC001115CC101C1112318
+:102B900021F0002309F4F6C03CC1002309F4F8C079
+:102BA0003EC1872D86958695837090E0009719F039
+:102BB000019761F047C1112321F08C2D972D93705F
+:102BC00002C080E090E00E9416133CC1112321F066
+:102BD0008C2D972D937002C080E090E00E942C1302
+:102BE00031C18C2D112319F00E94F71F02C00E94E1
+:102BF0005F200E94E42026C1872D837009F052C017
+:102C0000111120C18C2D829586958770880F880FB1
+:102C10009C2D9F70892E912CA12CB12C082E04C0C4
+:102C2000880C991CAA1CBB1C0A94D2F7C4FE14C0C1
+:102C30000FE010E020E030E0B901A80104C0440F2B
+:102C4000551F661F771F8A95D2F7CB01BA01609591
+:102C500070958095909503C060E070E0CB01272DC2
+:102C600026952695237030E02230310569F0233017
+:102C7000310589F0682979298A299B292130310574
+:102C800071F00E94731BDEC0682979298A299B296B
+:102C90000E948F1BD7C00E94731BC501B4010E9404
+:102CA000571BD0C0112319F0872D817001C0869564
+:102CB000882309F4C7C08C2D829586958770880F6C
+:102CC000880F9C2D9F70892E912CA12CB12C082E41
+:102CD00004C0880C991CAA1CBB1C0A94D2F7C4FE21
+:102CE00014C00FE010E020E030E0B901A80104C0FA
+:102CF000440F551F661F771F8A95D2F7CB01BA0183
+:102D0000609570958095909503C060E070E0CB0170
+:102D1000272D269526952370422F50E042305105ED
+:102D200069F04330510589F0682979298A299B295E
+:102D30004130510571F00E944D1C84C068297929E9
+:102D40008A299B290E94691C7DC00E944D1CC501D7
+:102D5000B4010E94311C76C08C2D90E0FC01E05E35
+:102D6000F109E531F10508F050C0E059FF4F0C942E
+:102D70006D250C2D0F70872D8F71112331F00E945E
+:102D8000CA1B802F0E9427155DC00E94EB1B802F5D
+:102D90000E942E1557C0112339F0011153C0872D01
+:102DA0008F710E94101C4EC0023008F04BC0F7CF4C
+:102DB000112339F0872D8F710E94CA1B43C0112344
+:102DC000C9F3872D8F710E94EB1B3CC0112329F0A2
+:102DD000872D8F710E94B51B35C00E94AB1B32C07E
+:102DE000112351F0172D1F71812F0E94CA1B63E020
+:102DF000812F0E94DE1C26C081E00E94E71C023069
+:102E000008F182E00E94E71C1DC0112331F000236D
+:102E100089F28C2D0E94101415C0002391F28C2D84
+:102E20000E94D8140FC0472D4F706C2DC7010E940F
+:102E30002C060E94CF1A06C0472D4F706C2DC7017B
+:102E40000E94600BDD20F9F00E94DA1C80FD1BC09F
+:102E5000F70112820E94D41C0E94CA1BC7010E9463
+:102E600052170E94D41C0F90DF91CF911F910F91A8
+:102E7000FF90EF90DF90CF90BF90AF909F908F909A
+:102E80007F900C94EB1B0F90DF91CF911F910F91CE
+:102E9000FF90EF90DF90CF90BF90AF909F908F907A
+:102EA0007F9008950F931F93CF93DF93EC01888158
+:102EB00099812B813C81232BB9F09F3F11F48F3FE7
+:102EC00099F0CE010E94F107882371F06881798121
+:102ED0008A810E94D01C8C010E94851C0E944C1B80
+:102EE000B801CE010E943515DF91CF911F910F914E
+:102EF00008950E94A81D0E94B81D0E947D1D0E9479
+:102F0000D21D0E9495210E94E42080E090E00E9462
+:102F1000161380E090E00C942C130E94981D0C94E2
+:102F200079170E94C51C292F22952F7030E02C3074
+:102F300031054CF42A3031056CF42250310922302D
+:102F40003105A8F407C02C30310569F02F30310568
+:102F500051F00DC0803F69F018F4803E40F409C084
+:102F6000843F29F406C093FB882780F9089580E008
+:102F7000089581E00895CF93DF9300D000D01F9291
+:102F8000CDB7DEB70F900F900F900F900F90DF919D
+:102F9000CF910895CF93DF9300D000D000D0CDB76C
+:102FA000DEB726960FB6F894DEBF0FBECDBFDF9119
+:102FB000CF9108951F93CF93DF93C091860116E0C0
+:102FC00080918701C81799F0D0E01C9FF0011D9FE8
+:102FD000F00D1124E857FE4F4081518162817381C9
+:102FE000848195810E94CA172196C770E9CFDF912D
+:102FF000CF911F9108954091B8015091B90160910E
+:10300000BA017091BB018091BC019091BD010C94FB
+:10301000CA178091BD0182958F7009F054C08091CC
+:10302000BA01882309F44FC080918601A0918701DD
+:103030006091B8017091B9014091BB015091BC0100
+:10304000B6E08A1709F43FC090E041155105C1F17F
+:103050007F3F11F46F3FA1F1B89FF001B99FF00DD0
+:103060001124E857FE4F218172132AC02081621378
+:1030700027C02281211124C02381348124173507E0
+:1030800010F421503109241B350B283C3105C0F4C4
+:103090002091BD012F7020612093BD0126E0289F63
+:1030A000F001299FF00D1124E357FE4F80818F70AE
+:1030B0008061808388EB91E00E9452170C94DA17AC
+:1030C00001968770BECF0895CF92DF92EF92FF9264
+:1030D0000F931F93CF93DF93CDB7DEB762970FB6F1
+:1030E000F894DEBF0FBECDBF8C0185E0F801DE0194
+:1030F0001D9601900D928A95E1F7D8014C91119699
+:103100005C91119712966C9112971396CD90DC906A
+:1031100014973091B8017091B9018091BB019091E1
+:10312000BC01009709F46BC17F3F19F43F3F09F4DC
+:1031300066C1E090BA01EE2009F4C0C02091BD0143
+:10314000C816D90628F0F601E81BF90BCF0104C018
+:10315000809590958C0D9D1DFF24F394883C9105DE
+:1031600078F0F12C207F09F0C6C07C2DD98AC88A5E
+:1031700089890E94BB1788EB91E00E945217B1C069
+:10318000822F807F09F046C0751314C0341312C01B
+:10319000611110C02F7020612093BD010E94FB17A8
+:1031A00088EB91E00E9452178091BD01D8011596DD
+:1031B0008C932EC0CD2819F15F3F11F44F3FF9F0E9
+:1031C000F62E61111CC0809186012091870136E0A6
+:1031D000821709F45AC090E0389FF001399FF00D32
+:1031E0001124E857FE4F7181571306C070814713B1
+:1031F00003C07281711103C001968770E9CFF62E6A
+:10320000662309F418C18091BD0181608093BD01DE
+:10321000F12C11C1751308C0341306C0611104C02C
+:103220008091BD01D801C3C04D875E878D859E8585
+:103230006A8B0E9491176A898823E1F16623D1F194
+:103240002091BD01822F82958F7090E0029774F0DB
+:103250008091B8019091B90198878F831986DB8698
+:10326000CA862C87CE0107960E94521786E0F80185
+:10327000A8EBB1E001900D928A95E1F70E94091840
+:103280000E94FB17FF24F394D6C04D875E878D857F
+:103290009E850E94C51C292F22952F7030E0223078
+:1032A00031050CF0BCC09F7009F0B6C0805E88305C
+:1032B00008F4C1C0C8010E945217E4CFC816D9064D
+:1032C00008F453C0F601E81BF90BCF01883C9105C7
+:1032D00008F450C0F12C7C2DD98AC88A89890E94B3
+:1032E000BB17E8EBF1E086E0DF011D928A95E9F774
+:1032F0000E94FB17A0C0751314C0341312C06111D3
+:1033000010C08091BD01F8018583C8010E94521749
+:1033100086E0E8EBF1E0DF011D928A95E9F7FE2CEB
+:103320008AC04D875E878D859E856A8B0E94911726
+:103330006A89882309F4BECF662309F4BBCF2091A4
+:10334000BD01822F82958F7090E002970CF48ECF92
+:103350008091B8019091B9019A8389831B82DD82A3
+:10336000CC822E83CE0101967FCF809590958C0DD7
+:103370009D1DACCFF62E662309F49CCF75132EC08D
+:1033800034132CC02091BD0120FD1FC0822F8295D7
+:103390008F70D9F0D80115962C9315978F3049F07E
+:1033A0008F5F982F9295907F822F8F70892B159623
+:1033B0008C93C8010E94521786E0F801A8EBB1E097
+:1033C00001900D928A95E1F793CF86E0F801A8EB82
+:1033D000B1E001900D928A95E1F72DC04D875E878F
+:1033E0008D859E850E949117811140CF8091BD01EE
+:1033F00081608093BD01C8010E9452171CC06623E2
+:1034000009F458CF4D875E878D859E850E94911760
+:10341000882309F44FCF2ACF811148CF0CC0243024
+:1034200031050CF047CF9F7009F440CFF80195812A
+:10343000907F09F03BCF8F2D62960FB6F894DEBFD8
+:103440000FBECDBFDF91CF911F910F91FF90EF90F5
+:10345000DF90CF9008951F93CF93DF93CDB7DEB762
+:103460002C970FB6F894DEBF0FBECDBF4F835887A1
+:1034700069877A878B879C87CE0107960E9464189C
+:10348000882369F08F8198852A853B85232BF1F16C
+:103490009F3F09F063C08F3F09F060C037C086E0EE
+:1034A000FE013796DE01119601900D928A95E1F7A3
+:1034B0006F817885EA85FB85309741F17F3F11F474
+:1034C0006F3F21F12091870130E0C901019687709B
+:1034D00099274091860150E08417950709F447C069
+:1034E00069837A83FD83EC8396E0929FD001939F5A
+:1034F000B00D1124A857BE4FFE01319601900D92D8
+:103500009A95E1F7809387010E94DA1716E080917F
+:103510008601909187018917C1F1189FC00111247C
+:1035200088579E4F0E946418882379F1E0918601A4
+:103530001E9FF0011124E857FE4F408151816281A6
+:103540007381848195810E94CA178091860190E0E1
+:1035500001968770992780938601D9CF4F8158852E
+:1035600069857A858B859C850E94CA17CFCF0E947A
+:103570008D171092870110928601E8EBF1E086E04A
+:10358000DF011D928A95E9F7C1CF2C960FB6F8940A
+:10359000DEBF0FBECDBFDF91CF911F910895EF9297
+:1035A000FF920F931F93CF93DF938C01009709F441
+:1035B0006CC0F12CEE24E394E8012196F80184918B
+:1035C000843740F4843008F051C0813081F082307B
+:1035D00019F15BC0853709F444C0A8F19CE7980F46
+:1035E000903708F052C08F770E94D81441C00E5F08
+:1035F0001F4FFE01C49180E28C0F883048F4C770E1
+:103600008E2D01C0880FCA95EAF70E94AB1D14C029
+:103610008C2F0E9410142DC00E5F1F4FFE01C4910D
+:1036200080E28C0F883058F4C7708E2D01C0880F4F
+:10363000CA95EAF70E94B11D0E94D21D1AC08C2FB4
+:103640000E94D81416C00E5F1F4FFE01C491CC23F8
+:1036500081F08FE99FE00197F1F700C00000C150B1
+:10366000F6CF0E5F1F4FFE01F49003C00E941014AE
+:103670008E018F2D882309F49FCFEFE9FFE031976A
+:10368000F1F700C000008150F5CFDF91CF911F917D
+:103690000F91FF90EF90089508956093C201709389
+:1036A000C3018093C4019093C5010C9479170F93C3
+:1036B0001F930091C2011091C3012091C401309168
+:1036C000C501DC01CB01802B912BA22BB32B809366
+:1036D000C2019093C301A093C401B093C5011F918F
+:1036E0000F910C9479170F931F930091C2011091C1
+:1036F000C3012091C4013091C501DC01CB018023BD
+:103700009123A223B3238093C2019093C301A0937A
+:10371000C401B093C5011F910F910C9479170F93B9
+:103720001F930091C2011091C3012091C4013091F7
+:10373000C501DC01CB0180279127A227B327809305
+:10374000C2019093C301A093C401B093C5011F911E
+:103750000F910C9479171092BE011092BF01109234
+:10376000C0011092C1010C94791741E050E060E073
+:1037700070E004C0440F551F661F771F8A95D2F76B
+:103780004093BE015093BF016093C0017093C1018B
+:103790000C94791741E050E060E070E004C0440F01
+:1037A000551F661F771F8A95D2F78091BE019091B1
+:1037B000BF01A091C001B091C101482B592B6A2BC8
+:1037C0007B2B4093BE015093BF016093C001709367
+:1037D000C1010C94791741E050E060E070E004C052
+:1037E000440F551F661F771F8A95D2F74095509555
+:1037F000609570958091BE019091BF01A091C0012C
+:10380000B091C101482359236A237B234093BE0111
+:103810005093BF016093C0017093C1010C9479175C
+:1038200041E050E060E070E004C0440F551F661FA7
+:10383000771F8A95D2F78091BE019091BF01A09128
+:10384000C001B091C101482759276A277B274093BF
+:10385000BE015093BF016093C0017093C1010C94ED
+:1038600079170F931F930091BE011091BF01209112
+:10387000C0013091C101DC01CB01802B912BA22B27
+:10388000B32B8093BE019093BF01A093C001B0936E
+:10389000C1011F910F910C9479170F931F93009101
+:1038A000BE011091BF012091C0013091C101DC0126
+:1038B000CB0180239123A223B3238093BE01909355
+:1038C000BF01A093C001B093C1011F910F910C944F
+:1038D00079170F931F930091BE011091BF012091A2
+:1038E000C0013091C101DC01CB0180279127A227C3
+:1038F000B3278093BE019093BF01A093C001B09302
+:10390000C1011F910F910C9479170895CF92DF9206
+:10391000EF92FF920F931F93CF93DF938C01C09090
+:10392000C201D090C301E090C401F090C501809124
+:10393000BE019091BF01A091C001B091C101C82A00
+:10394000D92AEA2AFB2ACFE1D0E0D701C6010C2E02
+:1039500004C0B695A795979587950A94D2F780FFEE
+:1039600006C0B8018C2F0E94DF09019721F421972E
+:1039700060F780E001C08C2FDF91CF911F910F91F4
+:10398000FF90EF90DF90CF900895CF93DF93EC01FD
+:103990000E94861CBE010E94DF09DF91CF9108952D
+:1039A000CB010E94C51C08958091C601859585951F
+:1039B000859508958091C6018770089598E0899F44
+:1039C00090011124262B2093C6010C94CA1B209130
+:1039D000C601809582238093C601982F977069F461
+:1039E00030E0482F552747FD50952417350729F01B
+:1039F0008595859585950C94EB1B08959091C6014E
+:103A0000977081E009F480E0089590910C0199236A
+:103A100021F090910D01911109C020910E0130917A
+:103A20000F01F90132969FEF40E01FC0982F969545
+:103A3000969596959F3050F5E0910E01F0910F010B
+:103A4000E90FF11D877021E030E0A90102C0440FA9
+:103A5000551F8A95E2F7CA019181892B81830895C8
+:103A60009F3F39F04F5F4E3041F051915813F8CFDE
+:103A70000DC05111F7CF942FF5CF9F3F39F0F901C9
+:103A8000E90FF11D97FDFA958283089508959091AD
+:103A90000C01992321F090910D01911109C0209101
+:103AA0000E0130910F01F9013296205F3F4F1FC088
+:103AB000982F9695969596959F30F0F4E0910E018B
+:103AC000F0910F01E90FF11D877021E030E0A901AD
+:103AD00002C0440F551F8A95E2F7CA018095918173
+:103AE0008923818308953196E217F30729F09081A5
+:103AF0009813F9CF1082F7CF089581E090E0E0911C
+:103B00000E01F0910F01E80FF91F1082019680312C
+:103B10009105A9F708959091DA01892B8093DA0134
+:103B2000089580959091DA0189238093DA010895B0
+:103B30001092DA0108959091D901892B8093D901CF
+:103B4000089580959091D90189238093D901089592
+:103B50001092D90108959091D801892B8093D801B2
+:103B6000089580959091D80189238093D801089574
+:103B70001092D80108958093C70108951092C7014B
+:103B8000089580910E0190910F01FC0131969C01E6
+:103B9000205F3F4F80E0919191118F5FE217F30713
+:103BA000D1F70895E0910E01F0910F018091DA01B3
+:103BB0008083E0910E01F0910F0190818091D901F5
+:103BC000892B8083E0910E01F0910F01908180910B
+:103BD000D801892B80838091C701882361F0E0910F
+:103BE0000E01F0910F019081892B80830E94C11DED
+:103BF00081111092C70180910E0190910F010C94D8
+:103C0000001320E0009739F0AC01415051098423A2
+:103C100095232F5FF7CF822F0895CF92DF92EF92F7
+:103C2000FF926C01EE24FF24C114D104E104F104DD
+:103C300021F0C701B60120E101C020E0C72ED82E37
+:103C4000E92EFF24C114D104E104F10419F0285F26
+:103C5000C701B6016B017C0154E0F694E794D79458
+:103C6000C7945A95D1F7C114D104E104F10419F0B5
+:103C70002C5FC701B6016B017C0142E0F694E7942A
+:103C8000D794C7944A95D1F7C114D104E104F10443
+:103C900019F02E5FC701B601DC01CB01B695A795DF
+:103CA00097958795892B8A2B8B2B09F02F5F822F75
+:103CB000FF90EF90DF90CF9008958091F4018430D1
+:103CC00021F11092DC0120E488E190E00FB6F89435
+:103CD000A895809360000FBE2093600080E00E9452
+:103CE000F10B83B7817F846083BF83B7816083BF1B
+:103CF0007894889583B78E7F83BF88E10FB6F89458
+:103D000080936000109260000FBE089508950E9495
+:103D10004F040E9462040E94861E0E94570591E093
+:103D2000811101C090E0892F08950E948D170E9493
+:103D3000F4120C94F10B82E084BD93E095BD9AEFF0
+:103D400097BD80936E0008952FB7F8948091DD01A0
+:103D50009091DE01A091DF01B091E0012FBF0895A5
+:103D6000CF92DF92EF92FF920F931F932FB7F894A9
+:103D70004091DD015091DE016091DF017091E00121
+:103D80002FBF6A017B01EE24FF248C0120E030E08C
+:103D9000C016D106E206F30610F4415051099A010B
+:103DA000281B390BC9011F910F91FF90EF90DF90F5
+:103DB000CF9008951F920F920FB60F9211248F93F8
+:103DC0009F93AF93BF938091DD019091DE01A0910D
+:103DD000DF01B091E0010196A11DB11D8093DD01CD
+:103DE0009093DE01A093DF01B093E001BF91AF910A
+:103DF0009F918F910F900FBE0F901F9018950E946A
+:103E0000F10FF8942FEF87EA91E62150804090401F
+:103E1000E1F700C0000087E090EBDC018093FD013A
+:103E20009093FE01A093FF01B09300029CE088E113
+:103E30000FB6F894A895809360000FBE9093600031
+:103E4000FFCF0E94591F811102C00E943F1F0E9494
+:103E5000641F8093DB010E946C1F90E09093EF0140
+:103E60008093EE0187FB882780F980930D010E94E3
+:103E7000681F682F70E080E090E00C944D1B6DEEA1
+:103E80007EEF80E090E00E94A72560E082E090E075
+:103E90000E94952560E083E090E00E94952560E017
+:103EA00084E090E00E94952560E085E090E00C942D
+:103EB000952580E090E00E948F2521E08D3E9E4F69
+:103EC00009F020E0822F089582E090E00C9487258D
+:103ED00083E090E00C94872584E090E00C948725A3
+:103EE000682F84E090E00C9495258091E30180FF99
+:103EF0000BC06091130185E0689FB0011124759596
+:103F00006795759567952BC081FF09C06091130176
+:103F100085E0689FB00111247595679520C082FFE8
+:103F200007C06091130185E0689FB001112417C09C
+:103F30009091E4019923D1F060911201961788F7CE
+:103F40002091130185E0289F90011124929FA001E8
+:103F5000939F500D112470E0CA010E9459256038CA
+:103F6000710540F46115710539F002C065E070E03B
+:103F7000862F08958FE7089581E008958091E301E9
+:103F800080FF08C06091110170E075956795759587
+:103F9000679521C081FF06C06091110170E07595A1
+:103FA000679519C082FF04C06091110170E010C0D4
+:103FB0009091E4019923C1F0609110019617A0F748
+:103FC00080911101899FC001112470E00E94592540
+:103FD0006038710528F46115710521F0862F089568
+:103FE0008FE7089581E0089561E070E0F4CF803FAD
+:103FF00021F40E94751F819504C0813F29F40E941D
+:10400000751F8093E7010895823F21F40E94751F78
+:10401000819504C0833F29F40E94751F8093E601B7
+:104020000895893F19F40E94BE1F05C08A3F31F4EC
+:104030000E94BE1F81958093E80108958B3F21F473
+:104040000E94BE1F819504C08C3F29F40E94BE1FB0
+:104050008093E9010895843F21F48091E501816016
+:1040600017C0853F21F48091E501826011C0863F31
+:1040700021F48091E50184600BC0873F21F4809199
+:10408000E501886005C0883F31F48091E5018061D9
+:104090008093E50108958D3F21F48091E3018160D3
+:1040A0000BC08E3F21F48091E301826005C08F3FF9
+:1040B00029F48091E30184608093E3010895803FB7
+:1040C00039F48091E70187FF6CC01092E70169C065
+:1040D000813F29F48091E7011816BCF362C09091EA
+:1040E000E601823F29F497FF5CC01092E60159C0B7
+:1040F000833F19F41916CCF354C0893F41F48091E1
+:10410000E80118160CF04DC01092E8014AC08A3F31
+:1041100029F48091E80187FF44C0F6CF8B3F39F442
+:104120008091E90187FF3DC01092E9013AC08C3FC0
+:1041300029F48091E9011816BCF333C0843F21F4BF
+:104140008091E5018E7F17C0853F21F48091E501C4
+:104150008D7F11C0863F21F48091E5018B7F0BC0DC
+:10416000873F21F48091E501877F05C0883F31F4C6
+:104170008091E5018F7E8093E50113C08D3F21F48E
+:104180008091E3018E7F0BC08E3F21F48091E3018B
+:104190008D7F05C08F3F29F48091E3018B7F809351
+:1041A000E3018091E60181110EC08091E701811148
+:1041B0000AC08091E801811106C08091E901811156
+:1041C00002C01092E401089585EE91E00E940B1365
+:1041D0000E94A41E9093E2018093E10108951F9331
+:1041E000CF93DF938091E1019091E2010E94B01E94
+:1041F000AC019091E401992321F02091140130E069
+:1042000006C0209115018AE0289F900111244217D1
+:10421000530708F486C08091E601C091E701D09170
+:10422000E8011091E901811107C0C11176C0D111D7
+:1042300074C0111172C075C09F3F19F09F5F9093B9
+:10424000E401181624F40E94751F8093E601809102
+:10425000E60187FF05C00E94751F81958093E601E6
+:104260001C1624F40E94751F8093E7018091E701DA
+:1042700087FF05C00E94751F81958093E7016091BB
+:10428000E601662339F1C091E701CC2319F17727C4
+:1042900067FD7095872F972F0E946A2423E333E3ED
+:1042A00043E35FE30E94CE240E9437246093E6013B
+:1042B0006C2F772767FD7095872F972F0E946A24B0
+:1042C00023E333E343E35FE30E94CE240E943724D9
+:1042D0006093E7011D1624F40E94BE1F8093E8013D
+:1042E0008091E80187FF05C00E94BE1F81958093E1
+:1042F000E801111624F40E94BE1F8093E901809109
+:10430000E90187FF05C00E94BE1F81958093E901E6
+:10431000DF91CF911F910C94E4209F3F09F08ECF45
+:1043200096CFDF91CF911F910895E5EEF1E085E002
+:10433000DF011D928A95E9F71092E4011092E301E2
+:104340000895833081F128F4813059F08230D1F022
+:104350000895853009F449C0B8F1863009F456C093
+:10436000089580911501262F30E0280F311D2F3F31
+:10437000310524F4680F6093150108958FEF809341
+:104380001501089580911401262F30E0280F311D6A
+:104390002F3F310524F4680F6093140108958FEFC7
+:1043A00080931401089580911301262F30E0280F87
+:1043B000311D2F3F310524F4680F609313010895D8
+:1043C0008FEF80931301089580911201262F30E022
+:1043D000280F311D2F3F310524F4680F609312011F
+:1043E00008958FEF80931201089580911101262F77
+:1043F00030E0280F311D2F3F310524F4680F609302
+:10440000110108958FEF809311010895809110019B
+:10441000262F30E0280F311D2F3F310524F4680F7F
+:104420006093100108958FEF8093100108958330F9
+:1044300011F128F4813049F0823091F008958530EF
+:1044400081F120F18630C1F108958091150168173E
+:1044500020F4861B8093150108951092150108958C
+:1044600080911401681720F4861B8093140108952D
+:1044700010921401089580911301681720F4861B8F
+:1044800080931301089510921301089580911201F1
+:10449000681720F4861B8093120108951092120170
+:1044A000089580911101681720F4861B80931101F3
+:1044B000089510921101089580911001681720F459
+:1044C000861B8093100108951092100108950F9398
+:1044D0001F938D3109F471C008F045C0803109F493
+:1044E00085C008F5873009F46FC068F4863009F09C
+:1044F000ADC08091DB01817F8E7F8093DB0181E005
+:104500008093EB01A4C08B3009F49EC08E3009F07B
+:104510009DC08091DB0182FB222720F991E0922748
+:1045200090FB82F96CC0863109F48EC060F4813151
+:1045300009F08CC00E948D1790910D0181E08927B0
+:1045400080930D0181C0893109F47EC08B3109F05F
+:104550007DC08091DB0181FB222720F991E0922729
+:1045600090FB81F94CC0853309F466C048F487326A
+:1045700009F462C008F44FC0893209F45DC066C016
+:10458000833438F48A3308F044C0883309F45CC0BB
+:104590005DC0833409F450C0883409F057C00E94CC
+:1045A0008D170FEF13ED20E3015010402040E1F78D
+:1045B00000C000000E94FF1E47C00E94F1230E941D
+:1045C000F4120E94F10B40C09091DB01892F80957D
+:1045D000817080FB90F929F0966098609093DB01E0
+:1045E00036C0997F977F9093DB012EC08091DB01CD
+:1045F00083FB222720F991E0922790FB83F9809397
+:10460000DB01992309F18091DB0181608093DB015B
+:104610001BC0895301C08D5141E050E060E070E063
+:104620008A019B0104C0000F111F221F331F8A95AE
+:10463000D2F7C901B80104C061E070E080E090E009
+:104640000E944D1B0E948D1781E001C080E01F91E8
+:104650000F91089580E0089580E008958E518A308A
+:1046600030F4E82FF0E0E65DFE4F8081089580E0B1
+:104670000895CF93C82F8091EB01813079F018F025
+:104680008230E9F186C0E0910E01F0910F01808146
+:10469000813169F0823209F07EC009C0E0910E01DB
+:1046A000F0910F018081813111F0823261F48C2F01
+:1046B0000E942A23811104C08C2F0E9467221DC0F2
+:1046C00081E090E01AC08C2F0E942C23811114C02D
+:1046D000C43179F048F4CB3079F0C03109F05FC0D3
+:1046E00082E08093EB0108C0C93219F0C83321F091
+:1046F00056C01092EB0153C081E0817052C0C932A4
+:1047000081F110F5C43169F1A8F4C73009F045C052
+:104710008AE08093150194E19093140193E09093C3
+:1047200013018093120188E08093110188E2809345
+:10473000100133C082EE8C0F863078F58C2F0E94EA
+:104740002E238093EA0129C0CE34E9F020F4CB3443
+:1047500021F56AE013C0C13579F0C235F1F461E0AA
+:104760000DC08091EA01882319F01092EA0115C06A
+:1047700081E08093EB0115C061E006C08091EA0101
+:104780000E94A1210AC06AE08091EA010E941722DA
+:1047900004C01092EB0180E004C081E002C080E020
+:1047A000ACCFCF910895E1E8F0E08081886080830C
+:1047B0008081816080838FB7F89493E09093890023
+:1047C00090ED909388008FBF0895EFE6F0E0808130
+:1047D000826080830895EFE6F0E080818D7F8083A2
+:1047E0000895EFE6F0E0908182E0892780830895C4
+:1047F0001F920F920FB60F9211242F933F934F9356
+:104800005F936F937F938F939F93AF93BF93EF9338
+:10481000FF938091EC019091ED0101969093ED0151
+:104820008093EC01811103C082E00E94F10BE091C2
+:10483000ED01E695E695F0E0EA54F94FE4918091B8
+:10484000EC018E1303C080E00E94F10BFF91EF9109
+:10485000BF91AF919F918F917F916F915F914F9198
+:104860003F912F910F900FBE0F901F90189504D07D
+:104870006894B1118DC0089570D088F09F5790F062
+:10488000B92F9927B751A0F0D1F0660F771F881F75
+:10489000991F1AF0BA95C9F712C0B13081F077D0DC
+:1048A000B1E0089574C0672F782F8827B85F39F07A
+:1048B000B93FCCF3869577956795B395D9F73EF4D4
+:1048C00090958095709561957F4F8F4F9F4F08957C
+:1048D000E89409C097FB3EF490958095709561959A
+:1048E0007F4F8F4F9F4F9923A9F0F92F96E9BB2750
+:1048F0009395F695879577956795B795F111F8CFCC
+:10490000FAF4BB0F11F460FF1BC06F5F7F4F8F4F36
+:104910009F4F16C0882311F096E911C0772321F02C
+:104920009EE8872F762F05C0662371F096E8862FC4
+:1049300070E060E02AF09A95660F771F881FDAF71B
+:10494000880F9695879597F9089557FD9058440FCD
+:10495000551F59F05F3F71F04795880F97FB991FDE
+:1049600061F09F3F79F0879508951216130614069B
+:10497000551FF2CF4695F1DF08C016161706180628
+:10498000991FF1CF86957105610508940895E89403
+:10499000BB2766277727CB0197F908950BD078C0FE
+:1049A00069D028F06ED018F0952309F05AC05FC086
+:1049B0001124EECFCADFA0F3959FD1F3950F50E0FD
+:1049C000551F629FF001729FBB27F00DB11D639FC1
+:1049D000AA27F00DB11DAA1F649F6627B00DA11D67
+:1049E000661F829F2227B00DA11D621F739FB00D0D
+:1049F000A11D621F839FA00D611D221F749F33277D
+:104A0000A00D611D231F849F600D211D822F762F15
+:104A10006A2F11249F5750408AF0E1F088234AF012
+:104A2000EE0FFF1FBB1F661F771F881F915050405E
+:104A3000A9F79E3F510570F014C0AACF5F3FECF379
+:104A4000983EDCF3869577956795B795F795E7954A
+:104A50009F5FC1F7FE2B880F911D9695879597F95B
+:104A6000089597F99F6780E870E060E008959FEFF0
+:104A700080EC089500240A941616170618060906F5
+:104A8000089500240A9412161306140605060895C4
+:104A9000092E0394000C11F4882352F0BB0F40F44C
+:104AA000BF2B11F460FF04C06F5F7F4F8F4F9F4F8C
+:104AB000089597FB072E16F4009407D077FD09D0D0
+:104AC0000E94732507FC05D03EF4909581959F4F79
+:104AD0000895709561957F4F0895EE0FFF1F059023
+:104AE000F491E02D0994AA1BBB1B51E107C0AA1F3A
+:104AF000BB1FA617B70710F0A61BB70B881F991F7F
+:104B00005A95A9F780959095BC01CD010895F99922
+:104B1000FECF92BD81BDF89A992780B50895A8E18E
+:104B2000B0E042E050E00C94AF25262FF999FECF7B
+:104B300092BD81BDF89A019700B4021639F01FBAF0
+:104B400020BD0FB6F894FA9AF99A0FBE089501960F
+:104B5000272F0E9496250C949525DC01CB01FC01A2
+:104B6000F999FECF06C0F2BDE1BDF89A319600B4C6
+:0E4B70000D9241505040B8F70895F894FFCFD1
+:104B7E000220F30B810C5E0C2A0CF60B0101C8010E
+:104B8E0028080A03140A404D363976062906F3051D
+:104B9E00BA054D0566057F05980501020304050655
+:044BAE0007080900EB
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/workman_osx_mdw/keymap.c b/keyboards/ergodox_ez/keymaps/workman_osx_mdw/keymap.c new file mode 100644 index 000000000..c9c0f4c27 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/workman_osx_mdw/keymap.c @@ -0,0 +1,366 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" +// README +// This keyboard layout is based on the [Workman Dead layout](https://github.com/ojbucao/Workman/tree/master/mac#workman-dead-for-programmers), which uses the comma as a dead key to trigger a second layer. +// Since I have more keys at my disposal on the ErgoDox, I moved the dead key to the bottom right. There are still a lot of +// blanks so still discovering what I like. +// If you aren't familiar with a dead key, the idea is that you tap the dead key which switches the layout. the next key you hit +// triggers the key you pressed AND switches the layout back to the original. For now I do this with a super kludgey macro and I +// look forward to learning about a more elegant way to do the same thing. Until then, this will have to do. + + +// TODO: Define layer names that make sense for the ErgoDox EZ. +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys +#define DEAD 3 // dead version of the symbols layer + +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 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | D | R | W | B | L1 | | L1 | J | F | U | P | ; | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | Hyper | A | S | H | T | G |------| |------| Y | N | E | O | I | ' | + * |--------+------+------+------+------+------| | | Meh |------+------+------+------+------+--------| + * | LShift | Z | X | M | C | V | | | | K | L | , | . |//Ctrl| RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | CTRL | OPT | CMD | | Left | Down | Up | Right| L3 | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * |Bckspc| Space|------| |------| Space |Enter | + * | | | 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_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, TG(1), + ALL_T(KC_ESC), KC_A, KC_S, KC_H, KC_T, KC_G, + KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_NO, + KC_NO, KC_NO, KC_LCTL,KC_LALT,KC_LGUI, + KC_NO, KC_NO, + KC_HOME, + KC_BSPC,KC_SPC,KC_END, + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(1), KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSLS, + KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT, + MEH_T(KC_NO),KC_K, KC_L, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + KC_LEFT,KC_DOWN,KC_UP, KC_RGHT, KC_FN4, + KC_NO, KC_NO, + KC_PGUP, + KC_PGDN,KC_SPC,KC_ENT + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | % | & | ? | + | @ | | | | $ | _ | [ | ] | ! | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | / | ( | = | 0 | { |------| |------| } | 1 | * | ) | - | " | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | 6 | 7 | 8 | 9 | | | | | | \ | 2 | 3 | 4 | 5 | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[SYMB] = KEYMAP( + // left hand + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS, KC_PERC, KC_AMPR, LSFT(KC_SLSH), LSFT(KC_EQL), KC_AT, KC_TRNS, + KC_TRNS, KC_SLSH, KC_LPRN, KC_EQL, KC_0, LSFT(KC_LBRC), + KC_TRNS, KC_6, KC_7, KC_8, KC_9, 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_F11, + KC_TRNS, KC_DLR, KC_UNDERSCORE, KC_LBRC, KC_RBRC, KC_EXLM, KC_F12, + KC_RCBR, KC_1, KC_ASTR, KC_RPRN, KC_MINS, KC_QUOT, + KC_TRNS, KC_SLSH, KC_2, KC_3, KC_4, KC_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 +), +/* 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 +), +/* Keymap 4: Dead Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | % | & | ? | + | @ | | | | $ | _ | [ | ] | ! | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | / | ( | = | 0 | { |------| |------| } | 1 | * | ) | - | " | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | 6 | 7 | 8 | 9 | | | | | | \ | 2 | 3 | 4 | 5 | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS +[DEAD] = KEYMAP( + // left hand + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, + KC_TRNS, M(100), M(101), M(102), M(103), M(104), KC_TRNS, + KC_TRNS, M(109), M(110), M(111), M(112), M(113), + KC_TRNS, M(120), M(121), M(122), M(123), M(124), 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, M(105), M(106), M(107), M(108), M(130), KC_F12, + M(114), M(115), M(116), M(117), M(118), M(119), + KC_TRNS, M(125), M(126), M(127), M(128), M(129), 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) + [2] = ACTION_LAYER_ON(BASE,0), // FN2 - Go back to the base layer + [3] = ACTION_LAYER_ON(DEAD,0), + [4] = ACTION_LAYER_TOGGLE(DEAD), +}; + +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; + case 100: + layer_clear(); + return MACRODOWN(D(LSFT), T(5), U(LSFT), T(FN4), END); + break; + case 101: + layer_clear(); + return MACRODOWN(D(LSFT), T(7), U(LSFT), T(FN4), END); + break; + case 102: + layer_clear(); + return MACRODOWN(D(LSFT), T(SLSH), U(LSFT), T(FN4), END); + break; + case 103: + layer_clear(); + return MACRODOWN(D(LSFT), T(EQL), U(LSFT), T(FN4), END); + break; + case 104: + layer_clear(); + return MACRODOWN(D(LSFT), T(2), U(LSFT), T(FN4), END); + break; + case 105: + layer_clear(); + return MACRODOWN(D(LSFT), T(4), U(LSFT), T(FN4), END); + break; + case 106: + layer_clear(); + return MACRODOWN(D(LSFT), T(MINS), U(LSFT), T(FN4), END); + break; + case 107: + layer_clear(); + return MACRODOWN(T(LBRC), T(FN4), END); + break; + case 108: + layer_clear(); + return MACRODOWN(T(RBRC), T(FN4), END); + break; + case 130: + layer_clear(); + return MACRODOWN(D(LSFT), T(1), U(LSFT), T(FN4), END); + break; + case 109: + layer_clear(); + return MACRODOWN(T(SLSH), T(FN4), END); + break; + case 110: + layer_clear(); + return MACRODOWN(D(LSFT), T(9), U(LSFT), T(FN4), END); + break; + case 111: + layer_clear(); + return MACRODOWN(T(EQL), T(FN4), END); + break; + case 112: + layer_clear(); + return MACRODOWN(T(0), T(FN4), END); + break; + case 113: + layer_clear(); + return MACRODOWN(D(LSFT), T(LBRC), U(LSFT), T(FN4), END); + break; + case 114: + layer_clear(); + return MACRODOWN(D(LSFT), T(RBRC), U(LSFT), T(FN4), END); + break; + case 115: + layer_clear(); + return MACRODOWN(T(1), T(FN4), END); + break; + case 116: + layer_clear(); + return MACRODOWN(D(LSFT), T(8), U(LSFT), T(FN4), END); + break; + case 117: + layer_clear(); + return MACRODOWN(D(LSFT), T(0), U(LSFT), T(FN4), END); + break; + case 118: + layer_clear(); + return MACRODOWN(T(MINS), T(FN4), END); + break; + case 119: + layer_clear(); + return MACRODOWN(D(LSFT), T(QUOT), U(LSFT), T(FN4), END); + break; + case 120: + layer_clear(); + return MACRODOWN(T(6), T(FN4), END); + break; + case 121: + layer_clear(); + return MACRODOWN(T(7), T(FN4), END); + break; + case 122: + layer_clear(); + return MACRODOWN(T(8), T(FN4), END); + break; + case 123: + layer_clear(); + return MACRODOWN(T(9), T(FN4), END); + break; + case 124: + layer_clear(); + return MACRODOWN(D(LSFT), T(BSLS), U(LSFT), T(FN4), END); + break; + case 125: + layer_clear(); + return MACRODOWN(T(BSLS), T(FN4), END); + break; + case 126: + layer_clear(); + return MACRODOWN(T(2), T(FN4), END); + break; + case 127: + layer_clear(); + return MACRODOWN(T(3), T(FN4), END); + break; + case 128: + layer_clear(); + return MACRODOWN(T(4), T(FN4), END); + break; + case 129: + layer_clear(); + return MACRODOWN(T(5), T(FN4), END); + break; + + default: + return MACRO_NONE; + } + 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/zweihander-osx/compiled.hex b/keyboards/ergodox_ez/keymaps/zweihander-osx/compiled.hex new file mode 100644 index 000000000..56a19987f --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/zweihander-osx/compiled.hex @@ -0,0 +1,1173 @@ +:100000000C94D3020C9417030C9417030C9417034D
+:100010000C9417030C9417030C9417030C941703F8
+:100020000C9417030C9417030C94DA0D0C94AC0E7B
+:100030000C9417030C9417030C9417030C941703D8
+:100040000C9417030C94B6220C9417030C9417030A
+:100050000C9417030C94491C0C9417030C9417036D
+:100060000C9417030C9417030C9417030C941703A8
+:100070000C9417030C9417030C9417030C94170398
+:100080000C9417030C9417030C9417030C94170388
+:100090000C9417030C9417030C9417030C94170378
+:1000A0000C9417030C9417030C941703190F3B0FB0
+:1000B00029103B0F2910800FA30F2910F80F0B10E8
+:1000C000DA12DA12091309133F135F139014901414
+:1000D0006A1390141A141A148114901490148A1428
+:1000E0002714271427142714271427142714271438
+:1000F0002714271427142714271427142714271428
+:10010000391446144D1454145E14750A01E2012C7E
+:10011000022C02E2746401160216010402040109B1
+:1001200002090104020401150215010C020C012848
+:10013000022800750A01E2012C022C02E27464011B
+:10014000170217010802080115021501100210011B
+:100150000C020C0111021101040204010F020F0133
+:1001600028022800750A01E2012C022C02E27464C4
+:100170000105020501050205010802080107020741
+:10018000010C020C011702170128022800750A0150
+:10019000E30116021602E301E3012B022B02E30145
+:1001A000E30115021502E300750A01E301160216C8
+:1001B00002E301E3012B022B02E3000000F0A12E79
+:1001C000004C002A00E100E00000001E00140004C2
+:1001D000001D00E200E2001F001A0016001B00E3F1
+:1001E000002A00200008000700060050002C002113
+:1001F000001500090019004F004B00220017000AEB
+:1002000000050000003500015401520000E3000029
+:10021000003400015401520000E3000000290023D3
+:10022000001C000B00110000002A00240018000D23
+:1002300000100052004E0025000C000E0036005148
+:10024000002800260012000F0037002F002B002787
+:10025000001300334238713000E0002D00310034CB
+:1002600078E5002C00000001000100010001000100
+:100270000000003A002F0036020100010001003B9F
+:1002800000300037020100010001003C002F02266F
+:10029000020100010001003D0030022702010001BF
+:1002A0000001003E003402340001000000010001A2
+:1002B0000001000000010000000100010001000039
+:1002C000000100000001003F0038002D0024020062
+:1002D0000001004000240021001E0027004A0041C8
+:1002E00000250022001F00370001004200260023E5
+:1002F00000200050000100430025022E022E004F76
+:10030000004D004400450001000100010000000113
+:10031000000100010001000100000069000100016E
+:10032000000100010001006A000100043001000129
+:1003300000010001004B004E00010001000100011E
+:100340000001300100010001004A000100033001FA
+:100350000002300000010001000100000001000067
+:100360000001001408010000000100000001001A53
+:100370000830082F082C0200000100350A520C50EA
+:10038000002C00A9000100350852005100AC00AA61
+:100390000019080100510C4F00AB00A8000608012D
+:1003A0000001000100010001001B08A5000100AED2
+:1003B0000001000100000016034500720067006F95
+:1003C0000044006F007800200045005A000000162D
+:1003D000034500720067006F0044006F0078002042
+:1003E0000045005A0000000403090409026D0004DE
+:1003F0000100A0FA09040000010301010009211114
+:10040000010001223F000705810308000A090401D9
+:10041000000103010200092111010001224D000722
+:1004200005820308000A0904020001030000000914
+:1004300021110100012236000705830308000A0983
+:100440000403000103000000092111010001223909
+:1004500000070584031000011201100100000008CC
+:10046000EDFE071301000102000105010906A101CB
+:10047000050719E029E71500250195087501810296
+:100480000508190129059505750191029501750366
+:100490009101050719002977150025019578750147
+:1004A0008102C005010980A101850216010026B75D
+:1004B000001A01002AB700751095018100C0050CD3
+:1004C0000901A1018503160100269C021A01002AD8
+:1004D0009C02751095018100C005010902A1010966
+:1004E00001A10005091901290515002501950575CA
+:1004F000018102950175038101050109300931155A
+:1005000081257F95027508810609381581257F951B
+:100510000175088106050C0A38021581257F9501B1
+:1005200075088106C0C005010906A101050719E08B
+:1005300029E71500250195087501810295017508C7
+:10054000810105081901290595057501910295019B
+:10055000750391010507190029FF150025FF950670
+:1005600075088100C00000000000000000000000CD
+:10057000010204060A0F17202C3A4A5D71879DB3C9
+:10058000C7DAE9F5FCFFFCF5E9DAC7B39D87715DD1
+:100590004A3A2C20170F0A0604020100000000004E
+:1005A00000000000000011241FBECFEFDAE0DEBF24
+:1005B000CDBF04B603FE24C08091FB019091FC01E5
+:1005C000A091FD01B091FE018730904BA740B04B48
+:1005D000B9F41092FB011092FC011092FD011092EF
+:1005E000FE0114BE84B7877F84BF88E10FB6F894FC
+:1005F00080936000109260000FBEE0E0FFE3099579
+:1006000011E0A0E0B1E0EAEFF8E402C005900D923D
+:10061000A433B107D9F711E0A4E3B1E001C01D9202
+:10062000AB3FB107E1F70E941E0B0C947B240C94A6
+:1006300000001092B9008AE08093B800089594EA0F
+:100640009093BC009091BC0097FFFCCF9091B900B3
+:10065000987F983021F0903111F081E008958093D7
+:10066000BB0084E88093BC008091BC0087FFFCCF76
+:100670008091B900887F883111F0803471F780E073
+:10068000089584E98093BC008091BC0084FDFCCF78
+:1006900008958093BB0084E88093BC008091BC00E7
+:1006A00087FFFCCF9091B900987F81E0983209F4E0
+:1006B00080E0089584E88093BC008091BC0087FFAF
+:1006C000FCCF8091BB00089580910101811115C07C
+:1006D00080E40E941F038093010181110CC082E11C
+:1006E0000E94490380930101811105C08FEF0E9490
+:1006F0004903809301010E94410384B1807F84B942
+:1007000085B1807F85B98AB1837F8AB98BB1837FB8
+:100710008BB93E98469808950E941F058093010169
+:100720000E94640380B38C7080BB81B3836F81BBF4
+:10073000A5E3B1E0E3E4F1E08EE08E0F11921D92AB
+:100740008E13FCCF0C940905BF92CF92DF92EF92EB
+:10075000FF920F931F93CF93DF9380910101882322
+:1007600079F0809134018F5F80933401811108C04A
+:100770000E941F0580930101811102C00E94B104F3
+:1007800005E311E0C0E0D0E0DD24D39482E0C82E80
+:10079000EE24E394F12CC730D10500F580910101DE
+:1007A000811164C080E40E941F03809301018111C4
+:1007B00012C082E10E9449038093010181110BC0A4
+:1007C000C7010C2E01C0880F0A94EAF780950E9499
+:1007D0004903809301010E94410348C0CA30A1F03F
+:1007E00028F4C83059F0C93061F005C0CC3089F028
+:1007F00070F0CD3089F0209A289810C0219A29985D
+:100800000DC0229A2A980AC0239A2B9807C0529AA0
+:1008100001C0539A5B9802C03E9A469890EA9A9516
+:10082000F1F79FB1799902C082E001C080E0917038
+:100830009D25982B7C9902C084E001C080E0892B23
+:100840007D9902C038E001C030E0832B7E9902C060
+:1008500020E101C020E0822B9FB19095991F99273C
+:10086000991F9295990F907E892B0FC0809101015D
+:10087000811149C080E40E941F03809301018823F5
+:1008800079F1B12C0E9441038B2DF80190819817CA
+:1008900019F08083C09200010E94640321960F5FCB
+:1008A0001F4FCE30D10509F076CF8091000188230B
+:1008B00061F1815080930001882339F08FE99FE036
+:1008C0000197F1F700C0000020C0A3E4B1E0E5E328
+:1008D000F1E0CF01825F91919D938E13FCCF15C003
+:1008E00083E10E944903809301018111CACF81E411
+:1008F0000E941F03809301018111C3CF0E945A03FC
+:10090000B82EB094BFCF80E0C0CF0E94AF0481E08A
+:10091000DF91CF911F910F91FF90EF90DF90CF90DB
+:10092000BF900895E82FF0E0ED5BFE4F80810895C1
+:1009300008950F931F93CF93DF93C3E4D1E010E0AA
+:100940000C2F025F899190E00E946F1B180F0C130F
+:10095000F9CF812FDF91CF911F910F9108950C94C2
+:100960009E0556985E9825982D9826982E9827983B
+:100970002F988FEF90E09093890080938800909358
+:100980008B0080938A0090938D0080938C00259A31
+:100990002D9A2FEF80E792E0215080409040E1F7C0
+:1009A00000C00000269A2E9A2FEF80E792E0215097
+:1009B00080409040E1F700C00000279A2F9A2FEF67
+:1009C00080E792E0215080409040E1F700C00000B5
+:1009D00025982D982FEF80E792E02150804090409D
+:1009E000E1F700C0000026982E982FEF80E792E0F4
+:1009F000215080409040E1F700C0000027982F98D8
+:100A000056985E9825982D9826982E9827982F9876
+:100A1000089589EA8093800089E08093810024987A
+:100A20002C983F988AB18F748AB96E98479A8BB187
+:100A3000806B8BB9769A0E94B1040C949D0580E27C
+:100A4000809301018091510181110EC00E94190310
+:100A500081E0809351012FEF83ED90E3215080409E
+:100A60009040E1F700C0000080E40E941F038093E3
+:100A7000010181112EC00E9449038093010181115F
+:100A800028C00E94490380930101811122C08FE395
+:100A90000E9449038093010181111BC00E94410300
+:100AA00080E40E941F0380930101811112C08CE039
+:100AB0000E9449038093010181110BC00E944903E8
+:100AC00080930101811105C08FE30E944903809347
+:100AD00001010E944103809101010895FC016230EF
+:100AE000B9F028F4662341F0613061F023C063302F
+:100AF000A9F06430C9F01EC082818823D9F088EA49
+:100B000091E0089582818823A9F08DE891E008950D
+:100B10008281882379F084E691E008958281882398
+:100B200049F083E391E008958281882319F08AE0F7
+:100B300091E0089580E090E0089508956091BD01EE
+:100B40007091BE018091BF019091C0010E947B1BFA
+:100B500056985E9825982D9826982E9827982F9825
+:100B6000813019F0823021F00895259A2D9A089548
+:100B7000269A2E9A089581E0089581E008950C94B4
+:100B8000BD0508950F931F93CF93DF938C01FC0154
+:100B9000C081D181CE010E94F419BE010E946B0672
+:100BA000EC01B8010E94BF05882309F48DC0F8014B
+:100BB0008281882309F44AC080915D0181111FC0A0
+:100BC000C431F0E5DF0709F051C00E94C10581E0A2
+:100BD00080935D010E94131C90935C0180935B01E4
+:100BE0001092540110925601109255011092580122
+:100BF0001092570110925A011092590165C08091CC
+:100C00005B0190915C010E941F1C883C910570F46F
+:100C100080915401E82FF0E0EE0FFF1FEB5AFE4FDA
+:100C2000D183C0838F5F809354014EC0C43880E568
+:100C3000D80721F0C538D04501F13AC0F8018281CA
+:100C4000882341F01092520182E01EC0C438E0E5D2
+:100C5000DE0759F580915201811106C086E20E949B
+:100C60007E1186E20E94461282E01CC0C438F0E584
+:100C7000DF0741F3C538D045D9F4F80182818823D4
+:100C800031F01092530180E20E9495121DC08091B4
+:100C90005301811106C087E20E947E1187E20E9403
+:100CA000461280E20E949C120FC0C538D04529F33D
+:100CB00081E08093520180935301C801DF91CF916D
+:100CC0001F910F910C94BB0580E0DF91CF911F9194
+:100CD0000F910895089596E0799FF001112494E50D
+:100CE000899FE00DF11D1124E60FF11DEE0FFF1F8E
+:100CF000E154FE4F859194910895880F991FFC014E
+:100D0000E55CFF4F859194910895880F991FFC0130
+:100D1000E554FE4F8591949108950F931F93CF93BF
+:100D2000DF93EC01811520E3920750F5C11580E2B5
+:100D3000D80708F0C3C0CB3BD10590F4C83AD10521
+:100D400008F06AC0C53AD10508F05BC0C430D105CF
+:100D500008F0D0C1219709F0CAC101E010E00AC231
+:100D6000CF3FD10511F008F0C5C1C03FD10508F053
+:100D7000A2C0CE01805E9109089708F4BBC1B7C13B
+:100D8000C13090E5D90709F4A2C020F5C0318FE445
+:100D9000D80770F4C11590E4D90708F094C0C115C4
+:100DA00021E3D20708F0A3C1DD278E01106CE2C158
+:100DB000C115D04509F09BC10E94FB148FEF94E34D
+:100DC0002CE0815090402040E1F700C000000E94DC
+:100DD0006E1CD0C1C11597E5D90758F4C03121E583
+:100DE000D20708F01CC1C43180E5D80708F475C0EB
+:100DF0007EC1CE0190578115904108F078C1DF7017
+:100E000073C1C53AD10509F477C1C63AD10509F0D5
+:100E100076C102E810E4AEC1C83AD10509F472C146
+:100E2000C93AD10509F471C1CA3AD10509F470C1B2
+:100E3000CB3AD10509F46FC1CC3AD10509F46EC1A2
+:100E4000CD3AD10509F46DC1C03BD10509F46CC19F
+:100E5000CE3AD10509F46BC1CF3AD10509F46AC184
+:100E6000C13BD10509F469C1C23BD10509F468C190
+:100E7000C33BD10509F467C1C43BD10509F466C180
+:100E8000C53BD10509F465C1C63BD10509F464C170
+:100E9000C73BD10509F463C1C83BD10509F462C160
+:100EA000C93BD10509F461C1CA3BD10509F460C150
+:100EB00000E014E45FC18E0110655CC1CE019F703B
+:100EC0000E94850658C1DF708E01106A53C180915F
+:100ED000DA0181608093DA014DC10E94131E8111F5
+:100EE00002C00E94F91D0E94301E90E09093FB0109
+:100EF0008093FA01C23080E5D80721F48091FA018D
+:100F0000816086C0C43090E5D90721F48091FA0150
+:100F100082607EC0C63020E5D20721F48091FA01BC
+:100F2000846076C0C83080E5D80719F48091FA0152
+:100F300027C0CA3090E5D90721F48091FA01806179
+:100F400067C0CC3020E5D20721F48091FA0180629D
+:100F50005FC0CE3080E5D80721F48091FA0180642B
+:100F600057C0C03190E5D90721F48091FA0180681B
+:100F70004FC0C23120E5D20729F48091FA01846084
+:100F8000886046C0C33080E5D80721F48091FA011B
+:100F90008E7F3EC0C53090E5D90721F48091FA01DB
+:100FA0008D7F36C0C73020E5D20721F48091FA0149
+:100FB0008B7F2EC0C93080E5D80719F48091FA01E3
+:100FC00026C0CB3090E5D90721F48091FA018F7EBD
+:100FD0001FC0CD3020E5D20721F48091FA018F7D2A
+:100FE00017C0CF3080E5D80721F48091FA018F7BBC
+:100FF0000FC0C13190E5D90721F48091FA018F77B4
+:1010000007C0C331D04531F48091FA018B7F877FCF
+:101010008093FA018091FA010E94341EABC08D2F9B
+:1010200099278F70992781309105D9F49E012370FB
+:10103000332702C0880F991F2A95E2F79C688E011A
+:1010400044E0000F111F4A95E1F700271370802B31
+:10105000912B53E0CC0FDD1F5A95E1F7C076DD27C9
+:101060002FC08230910531F4DC2FCC278E01016F27
+:10107000106A80C08330910569F4CE01837099278E
+:1010800001E010E002C0000F111F8A95E2F7C801CD
+:101090009C680FC084309105B9F4CE018370992704
+:1010A00001E010E002C0000F111F8A95E2F7C801AD
+:1010B0009A6823E0CC0FDD1F2A95E1F7C07ED77038
+:1010C0008C010C2B1D2B56C08530910531F4DC2F83
+:1010D000CC278E01046F106A4DC0069709F04AC0F4
+:1010E000CF71DD27DC2FCC278E01106243C000E0DA
+:1010F00010E040C08E013EC001E810E43BC003E8B0
+:1011000010E438C002EE14E435C009EE14E432C035
+:101110000AEE14E42FC005EB14E42CC006EB14E433
+:1011200029C007EB14E426C00CEC14E423C00DEC3A
+:1011300014E420C003E815E41DC00AE815E41AC051
+:1011400002E915E417C004E915E414C001E216E44D
+:1011500011C003E216E40EC004E216E40BC005E27F
+:1011600016E408C006E216E405C007E216E402C071
+:101170000AE216E4C801DF91CF911F910F91089503
+:1011800096E0799FF001112494E5899FE00DF11D0F
+:101190001124E60FF11DEE0FFF1FE154FE4F859164
+:1011A0009491803E9105E0F4803C910558F581339F
+:1011B000910509F46FC048F48932910509F463C0C0
+:1011C0008A32910509F46DC072C089339105E9F046
+:1011D00082389105D1F08533910509F44DC067C07F
+:1011E000833E910581F138F4803E9105B9F0823E4D
+:1011F0009105D9F05CC0863E910561F1873E91056D
+:10120000A1F155C00E947D0608952091FA0120FDAC
+:1012100002C021FF4CC080EE90E049C08091FA01ED
+:1012200080FFF9CF89E390E042C08091FA0182FF0C
+:101230000EC08091FA0184FF03C080E090E037C0C7
+:1012400083EE90E034C08091FA0182FFF2CF82EE0B
+:1012500090E02DC08091FA0183FF0BC08091FA01CC
+:1012600084FDEBCF87EE90E022C08091FA0183FFEE
+:10127000F5CF86EE90E01BC08091FA0185FF07C094
+:1012800089E290E014C08091FA0185FFF9CF85E3EF
+:1012900090E00DC08091FA0186FF07C08AE290E0DD
+:1012A00006C08091FA0186FFF9CF81E390E00E94A9
+:1012B0008D06089508950C945A0980916E01089541
+:1012C000CF93DF9300D01F92CDB7DEB79C01809102
+:1012D000F101843019F593E099833B832A8390933D
+:1012E000E9008FEF9091E800815095FD06C095EDE3
+:1012F0009A95F1F700008111F5CF8091E80085FF04
+:101300000DC040E050E063E070E0CE0101960E9425
+:10131000CA0B8091E8008E778093E8000F900F90C1
+:101320000F90DF91CF910895CF93DF9300D01F925C
+:10133000CDB7DEB72091F101243021F522E02983D9
+:101340009B838A8383E08093E9008FEF9091E8008C
+:10135000815095FD06C095ED9A95F1F70000811139
+:10136000F5CF8091E80085FF0DC040E050E063E0DC
+:1013700070E0CE0101960E94CA0B8091E8008E7742
+:101380008093E8000F900F900F90DF91CF91089518
+:101390002091F1012430F1F422E02093E9002FEFB5
+:1013A0003091E800215035FD06C035ED3A95F1F752
+:1013B00000002111F5CF2091E80025FF0BC040E08F
+:1013C00050E065E070E00E94CA0B8091E8008E77E3
+:1013D0008093E8000895CF93DF93EC019091F101A1
+:1013E000943009F046C080910C018823D9F0809197
+:1013F0000D018823B9F09093E9008FEF9091E800F8
+:10140000815095FD06C095E19A95F1F70000811194
+:10141000F5CF8091E80085FF2CC040E050E060E10E
+:1014200070E017C081E08093E9008FEF9091E800B1
+:10143000815095FD06C095ED9A95F1F70000811158
+:10144000F5CF8091E80085FF14C040E050E068E0EF
+:1014500070E0CE010E94CA0B8091E8008E778093E5
+:10146000E80080E1FE01AEE5B1E001900D928A95C1
+:10147000E1F7DF91CF9108958091F001811109C0CA
+:101480000E945F0D0E94BC0D8091E20084608093F9
+:10149000E20008951092F001089508950C94A3229B
+:1014A0000E94041C0E94A9220E9462100C945B09F5
+:1014B00042E061EC81E00E94D90C42E061EC82E004
+:1014C0000E94D90C42E061EC83E00E94D90C42E119
+:1014D00061EC84E00C94D90C8091F301833009F421
+:1014E00055C030F4813071F0823009F48EC0089517
+:1014F0008A3009F47AC08B3009F460C0893009F071
+:101500009CC020C08091F201813A09F096C0809180
+:10151000E800877F8093E8008091F6019091F701C1
+:10152000892B21F460E18EE591E003C060E080E06A
+:1015300090E070E00E94150C8091E8008B7780931A
+:10154000E80008958091F201813209F076C080911F
+:10155000F6019091F701009719F0039709F06DC01B
+:101560008091E800877F8093E8008091E80082FD09
+:1015700005C08091F1018111F8CF5FC08091F10029
+:1015800080936E018091E8008B7753C08091F201C7
+:10159000813A09F052C08091F6019091F701892BB0
+:1015A00009F04BC08091E800877F8093E80080912C
+:1015B000E80080FFFCCF80910C0136C08091F201E1
+:1015C0008132D9F58091F6019091F701892BA9F527
+:1015D0008091E800877F8093E8000E940E0D809143
+:1015E000F40180930C010C94FB148091F201813280
+:1015F00021F58091E800877F8093E8000E940E0D1E
+:101600008091F50180936F0108958091F201813AF4
+:10161000A1F48091E800877F8093E8008091E80042
+:1016200080FFFCCF80916F018093F1008091E800F2
+:101630008E778093E8000C940E0D089584B7877F11
+:1016400084BF88E10FB6F894809360001092600028
+:101650000FBE90E080E80FB6F894809361009093FD
+:1016600061000FBE0E94B1100E945F0D0E94BC0D70
+:101670008091E20084608093E20078940E9442109E
+:101680000E94B31082E091E00E945D100E949122BE
+:101690008091F101853069F40E94CB1B8091EF01AC
+:1016A0008823B1F30E94F61B882391F30E94B40BA8
+:1016B000EFCF0E94B910ECCF292F3327233031050B
+:1016C000C9F064F42130310581F02230310509F090
+:1016D00043C08DE690E02BEE33E042C0213231056D
+:1016E000F1F02232310541F137C082E190E028E586
+:1016F00034E036C099278130910541F08230910560
+:1017000041F0892B49F5E7EEF3E005C0EFECF3E09B
+:1017100002C0E7EBF3E0849190E09F0121C06430C8
+:10172000D8F4E62FF0E0EE0FFF1FEE5DFE4F2081B4
+:10173000318189E090E014C0643070F470E0FB0106
+:10174000EE0FFF1FE65EFE4F20813181FB01EA5E56
+:10175000FE4F808190E004C080E090E020E030E027
+:10176000FA0131832083089580E189BD82E189BD3A
+:1017700009B400FEFDCF8091D8008F7D8093D80002
+:101780008091E00082608093E0008091E00081FD24
+:10179000FCCF0895CF92DF92EF92FF920F931F93A9
+:1017A000CF93DF93EC018B016A010E942D0D811113
+:1017B00033C0C114D10439F0F60180819181081B36
+:1017C000190BC80FD91FE12CF12C0115110519F1C6
+:1017D0008091E80085FD16C08091E8008E778093A7
+:1017E000E800C114D10449F0F60180819181E80E2E
+:1017F000F91EF182E08285E00FC00E942D0D882342
+:1018000021F30AC089918093F10001501109FFEF83
+:10181000EF1AFF0ADACF80E0DF91CF911F910F918D
+:10182000FF90EF90DF90CF9008952091F8013091D4
+:10183000F9012617370748F06115710539F4209131
+:10184000E8002E772093E80001C0B90140E061155F
+:101850007105A9F12091F101222309F443C025303B
+:1018600009F442C02091E80023FD40C02091E80027
+:1018700022FD32C02091E80020FFE9CF4091F30023
+:101880002091F20030E0342BFC01CF01611571058D
+:1018900059F02830310540F481918093F100615076
+:1018A00071092F5F3F4FF1CF41E02830310509F03A
+:1018B00040E02091E8002E772093E800C8CF411146
+:1018C000C9CF0AC08091F101882361F0853061F0B1
+:1018D0008091E80083FD0AC08091E80082FFF2CF8A
+:1018E00080E0089582E0089583E0089581E00895FE
+:1018F0002091F8013091F9012617370748F061155A
+:10190000710539F42091E8002E772093E80001C09A
+:10191000B901FC0120E06115710591F18091F1019F
+:10192000882309F440C0853009F43FC08091E80065
+:1019300083FD3DC08091E80082FD2FC08091E800CA
+:1019400080FFE9CF2091F3008091F20090E0922B8C
+:101950006115710559F08830910540F42491209368
+:10196000F1003196615071090196F2CF21E008979C
+:1019700009F020E08091E8008E778093E800CBCFDB
+:101980002111CCCF0AC08091F101882361F085300C
+:1019900061F08091E80083FD0AC08091E80082FF39
+:1019A000F2CF80E0089582E0089583E0089581E019
+:1019B0000895982F973058F59093E900981739F0CB
+:1019C0007091EC002091ED005091F00003C0242FA5
+:1019D000762F50E021FF19C03091EB003E7F30930D
+:1019E000EB003091ED003D7F3093ED003091EB0046
+:1019F00031603093EB007093EC002093ED00509336
+:101A0000F0002091EE0027FF07C09F5FD3CF8F70BB
+:101A10008093E90081E0089580E008958091F201CB
+:101A200087FF11C08091E80082FD05C08091F1011F
+:101A30008111F8CF11C08091E8008B770BC08091A5
+:101A4000F101882349F08091E80080FFF8CF809170
+:101A5000E8008E778093E80008952091E4003091AB
+:101A6000E50095E64091EC00842F817040FF22C094
+:101A70008091E80080FD1CC08091F101882391F0E5
+:101A8000853091F08091EB0085FD10C04091E4001D
+:101A90005091E5004217530729F39A01915011F72D
+:101AA00084E0089582E0089583E0089581E0089538
+:101AB00080E008954091E80042FFDECF08950E9443
+:101AC000CD0D0E94D50DE0EEF0E080818160808335
+:101AD000E8EDF0E080818F77808319BCA7EDB0E05E
+:101AE0008C918E7F8C9380818F7E80831092F00109
+:101AF00008950F931F93CF93DF930E94CD0D0E9403
+:101B0000D50DC8EDD0E088818F7788838881806883
+:101B1000888388818F7D888319BC1092F10110928F
+:101B2000ED011092EF011092EE0100EE10E0F801CD
+:101B300080818B7F808388818160888342E060E040
+:101B400080E00E94D90CE1EEF0E080818E7F8083FE
+:101B5000E2EEF0E080818160808380818860808314
+:101B6000F80180818E7F8083888180618883DF9106
+:101B7000CF911F910F910895E8EDF0E080818F7E65
+:101B80008083E7EDF0E080818160808384E082BF24
+:101B900081E08093F0010C94790DE8EDF0E0808114
+:101BA0008E7F80831092E20008951092DA001092E6
+:101BB000E10008951F920F920FB60F9211242F93F8
+:101BC0003F934F935F936F937F938F939F93AF93C5
+:101BD000BF93EF93FF938091E10082FF0BC0809150
+:101BE000E20082FF07C08091E1008B7F8093E100DB
+:101BF0000E9441108091DA0080FF1FC08091D800C0
+:101C000080FF1BC08091DA008E7F8093DA00809184
+:101C1000D90080FF0DC080E189BD82E189BD09B492
+:101C200000FEFDCF81E08093F1010E943C0A05C0D7
+:101C300019BC1092F1010E944A0A8091E10080FFD4
+:101C400019C08091E20080FF15C08091E2008E7F74
+:101C50008093E2008091E20080618093E2008091B5
+:101C6000D80080628093D80019BC85E08093F10190
+:101C70000E944E0A8091E10084FF30C08091E20012
+:101C800084FF2CC080E189BD82E189BD09B400FEDA
+:101C9000FDCF8091D8008F7D8093D8008091E100A6
+:101CA0008F7E8093E1008091E2008F7E8093E2003E
+:101CB0008091E20081608093E2008091ED018823B1
+:101CC00011F084E007C08091E30087FD02C081E04D
+:101CD00001C083E08093F1010E94500A8091E100ED
+:101CE00083FF29C08091E20083FF25C08091E1003D
+:101CF000877F8093E10082E08093F1011092ED01F3
+:101D00008091E1008E7F8093E1008091E2008E7FE0
+:101D10008093E2008091E20080618093E20042E0E3
+:101D200060E080E00E94D90C8091F0008860809390
+:101D3000F0000E944D0AFF91EF91BF91AF919F91EA
+:101D40008F917F916F915F914F913F912F910F9064
+:101D50000FBE0F901F9018951F920F920FB60F9203
+:101D600011242F933F934F935F936F937F938F93A0
+:101D70009F93AF93BF93CF93DF93EF93FF93C09164
+:101D8000E900CF708091EC00D82FD17080FDD0E8B1
+:101D90001092E9008091F000877F8093F0007894A2
+:101DA0000E94F00E1092E9008091F000886080930C
+:101DB000F000CD2BCF70C093E900FF91EF91DF9140
+:101DC000CF91BF91AF919F918F917F916F915F91D3
+:101DD0004F913F912F910F900FBE0F901F9018952C
+:101DE0001F93CF93DF93CDB7DEB7AA970FB6F894C2
+:101DF000DEBF0FBECDBFE2EFF1E088E08E0F909125
+:101E0000F10091938E13FBCF0E946C0A8091E80041
+:101E100083FF1FC18091F2019091F301492F50E09F
+:101E20004A30510508F015C1FA01EA5AFF4F0C94E7
+:101E30002B24803881F0823809F00BC18091F601A3
+:101E40008F708093E9008091EB0085FB882780F9F3
+:101E50001092E90006C08091EE019091EF0191117E
+:101E600082609091E800977F9093E8008093F10062
+:101E70001092F100C8C0282F2D7F09F0EAC08823F6
+:101E800019F0823061F0E5C08091F401813009F0F1
+:101E9000E0C0933009F080E08093EF012BC0809187
+:101EA000F401811127C08091F6018F7009F4D1C02F
+:101EB0008093E9002091EB0020FF1CC0933021F4B7
+:101EC0008091EB00806214C09091EB009061909340
+:101ED000EB0021E030E0A90102C0440F551F8A95B4
+:101EE000E2F74093EA001092EA008091EB008860EC
+:101EF0008093EB001092E9008091E800877F86C014
+:101F00008111A7C01091F4011F778091E3008078C0
+:101F1000812B8093E3008091E800877F8093E80025
+:101F20000E940E0D8091E80080FFFCCF8091E300BD
+:101F300080688093E300111102C082E001C083E059
+:101F40008093F10186C08058823008F082C0809171
+:101F5000F4019091F5018C3D53E0950779F583E00C
+:101F60008A838AE289834FB7F894DE01139620E0D2
+:101F70003EE051E2E32FF0E050935700E49120FF60
+:101F800003C0E295EF703F5FEF708E2F90E0EA3074
+:101F900010F0C79601C0C0968D939D932F5F24319A
+:101FA00049F74FBF8091E800877F8093E8006AE29D
+:101FB00070E0CE0101960E94150C14C0AE014F5F77
+:101FC0005F4F6091F6010E945C0BBC01009709F421
+:101FD00040C09091E800977F9093E80089819A81B2
+:101FE0000E94780C8091E8008B778093E80031C0E4
+:101FF000803879F58091E800877F8093E8008091B0
+:10200000ED018093F1008091E8008E778093E800E5
+:102010000E940E0D1EC081111CC09091F4019230DF
+:10202000C0F48091E800877F8093E8009093ED01F1
+:102030000E940E0D8091ED01811106C08091E30098
+:1020400087FD02C081E001C084E08093F1010E941D
+:10205000580A8091E80083FF0AC08091E800877FDA
+:102060008093E8008091EB0080628093EB00AA9659
+:102070000FB6F894DEBF0FBECDBFDF91CF911F9199
+:1020800008950895CF938091F1018823A1F0C09124
+:10209000E900CF709091EC00892F817090FD80E86D
+:1020A000C82B1092E9008091E80083FD0E94F00E99
+:1020B000CF70C093E900CF910895909375018093FC
+:1020C00074010895E0917401F0917501309721F049
+:1020D0000190F081E02D099480E00895E091740171
+:1020E000F0917501309721F00280F381E02D099481
+:1020F0000895E0917401F0917501309721F004800A
+:10210000F581E02D099408952091720130917301B9
+:102110008217930771F09093730180937201E0919D
+:102120007401F0917501309721F00680F781E02D60
+:1021300009940895209170013091710182179307DD
+:1021400071F09093710180937001E0917401F091AE
+:102150007501309721F00084F185E02D09940895F0
+:1021600008950C94B0100E940A1C0E948C030C94D9
+:10217000CC1C9F92AF92BF92CF92DF92EF92FF92D0
+:102180000F931F93CF93DF9300D000D000D0CDB733
+:10219000DEB70E94A4030DE010E0AA24A394B12CA2
+:1021A000902E802F0E949204980129583E4F690179
+:1021B000F901F080F826A1F40150110988F78FEF9A
+:1021C00089838A831B820E94131C8160782F9D83E0
+:1021D0008C8349815A816B818D810E9450112FC05F
+:1021E0009091DA0191FF04C08E830E9498048E8141
+:1021F00025E030E0A501022E01C0440F0A94EAF761
+:10220000E42E4F21C1F029839A828E2191E009F4B6
+:1022100090E09B830E94131C8160782F9D838C83A8
+:1022200049815A816B818D810E945011F601808114
+:10223000E826E08204C021503109E0F6BDCF0E94BB
+:10224000B31F109176010E9462101817B9F00E9416
+:1022500062108093760126960FB6F894DEBF0FBE0B
+:10226000CDBFDF91CF911F910F91FF90EF90DF9045
+:10227000CF90BF90AF909F900C945B0926960FB6BD
+:10228000F894DEBF0FBECDBFDF91CF911F910F91AC
+:10229000FF90EF90DF90CF90BF90AF909F90089508
+:1022A000CF93DF93CDB7DEB72B970FB6F894DEBF91
+:1022B0000FBECDBF4F83588769877A878B87DE0132
+:1022C000119686E0FD0111928A95E9F785E0FE01FD
+:1022D000379601900D928A95E1F749815A816B8179
+:1022E0007C818D819E810E9499172B960FB6F89460
+:1022F000DEBF0FBECDBFDF91CF910895CF9388236E
+:1023000009F4C2C0C82F823859F40E94621081FDBE
+:10231000BBC089E30E94731A0E94401B89E30CC072
+:10232000833879F40E94621080FDAEC083E50E947C
+:10233000731A0E94401B83E50E94B51ACF910C943A
+:10234000401B843859F40E94621082FD9DC087E4CE
+:102350000E94731A0E94401B87E4EECF8CEF8C0F13
+:10236000813A48F48C2F0E94F62181118DC08C2F68
+:102370000E94731AE3CF80E28C0F883048F4C77054
+:1023800081E001C0880FCA95EAF70E94F91AD6CFFA
+:102390008BE58C0F833078F4C53A29F0C63A31F0DA
+:1023A00083E890E005C081E890E002C082E890E018
+:1023B000CF910C94841088E58C0F833108F064C0B1
+:1023C000C83A39F1C93A41F1CA3A49F1CB3A51F127
+:1023D000CC3A59F1CD3A61F1C03B69F1CE3A71F195
+:1023E000CF3A79F1C13B81F1C23B89F1C33B91F115
+:1023F000C43B99F1C53BA1F1C63BA9F1C73BB1F183
+:10240000C83BB9F1C93BC1F1CA3BC9F180E090E0DA
+:1024100038C082EE90E035C089EE90E032C08AEE9E
+:1024200090E02FC085EB90E02CC086EB90E029C0B7
+:1024300087EB90E026C08CEC90E023C08DEC90E020
+:1024400020C083E891E01DC08AE891E01AC082E9CB
+:1024500091E017C084E991E014C081E292E011C0DC
+:1024600083E292E00EC084E292E00BC085E292E04B
+:1024700008C086E292E005C087E292E002C08AE2EC
+:1024800092E0CF910C949A10CF910895882309F48B
+:102490004BC0823859F40E94621081FF45C089E325
+:1024A0000E94731A0E94401B89E30CC0833871F4A8
+:1024B0000E94621080FF38C083E50E94731A0E9458
+:1024C000401B83E50E94B51A0C94401B843859F4D4
+:1024D0000E94621082FF28C087E40E94731A0E9443
+:1024E000401B87E4EFCF9CEF980F913A58F390E2AE
+:1024F000980F983050F4877091E001C0990F8A9539
+:10250000EAF7892F0E94FF1ADFCF9BE5980F9330DF
+:1025100020F480E090E00C948410885A833120F4F9
+:1025200080E090E00C949A100895882321F00E9496
+:10253000F91A0C94401B0895882321F00E94FF1A79
+:102540000C94401B08957F928F929F92AF92BF92FE
+:10255000CF92DF92EF92FF920F931F93CF93DF936F
+:102560001F92CDB7DEB77C01C62E772EFC01058108
+:1025700002950F70128111110E94161B0E946C1A95
+:10258000882379F0112369F080E28C0D883048F0BF
+:1025900082E00E94551A0E946C1A91E0D82ED9262A
+:1025A00001C0D12CE72DE295EF70F0E0E05AFF4F2B
+:1025B0000C942B24872D807F072D0F70882311F01A
+:1025C0000295007F112389F0002309F490C180E275
+:1025D0008C0D883020F4802F0E94F91A03C0802FC0
+:1025E0000E94091B0E94401B82C18C2D0E94461232
+:1025F000002309F495C180E28C0D883020F4802FEF
+:102600000E94FF1A03C0802F0E940F1B0E94401BD4
+:1026100087C1972D907F872D8F70903211F0829512
+:10262000807FCC2021F0F1E0CF16B1F01EC0112345
+:1026300049F0002309F414C1013009F011C10E94CE
+:10264000291B6EC1002319F0013009F469C1898387
+:102650000E942C1B89810AC1112321F0023008F04D
+:102660005FC1FEC001115CC101C1112321F0002333
+:1026700009F4F6C03CC1002309F4F8C03EC1872D1F
+:1026800086958695837090E0009719F0019761F028
+:1026900047C1112321F08C2D972D937002C080E04B
+:1026A00090E00E9484103CC1112321F08C2D972DC5
+:1026B000937002C080E090E00E949A1031C18C2D8E
+:1026C000112319F00E94BB1E02C00E94231F0E940A
+:1026D000A81F26C1872D837009F052C0111120C197
+:1026E0008C2D829586958770880F880F9C2D9F7002
+:1026F000892E912CA12CB12C082E04C0880C991C79
+:10270000AA1CBB1C0A94D2F7C4FE14C00FE010E050
+:1027100020E030E0B901A80104C0440F551F661F36
+:10272000771F8A95D2F7CB01BA0160957095809595
+:10273000909503C060E070E0CB01272D269526958B
+:10274000237030E02230310569F02330310589F003
+:10275000682979298A299B292130310571F00E9445
+:10276000E118DEC0682979298A299B290E94FD1871
+:10277000D7C00E94E118C501B4010E94C518D0C09D
+:10278000112319F0872D817001C08695882309F4E3
+:10279000C7C08C2D829586958770880F880F9C2DD9
+:1027A0009F70892E912CA12CB12C082E04C0880C6E
+:1027B000991CAA1CBB1C0A94D2F7C4FE14C00FE0DB
+:1027C00010E020E030E0B901A80104C0440F551F1B
+:1027D000661F771F8A95D2F7CB01BA016095709575
+:1027E0008095909503C060E070E0CB01272D269581
+:1027F00026952370422F50E04230510569F0433056
+:10280000510589F0682979298A299B294130510588
+:1028100071F00E94BB1984C0682979298A299B29F3
+:102820000E94D7197DC00E94BB19C501B4010E9446
+:102830009F1976C08C2D90E0FC01E05EF109E53136
+:10284000F10508F050C0E059FF4F0C942B240C2DDB
+:102850000F70872D8F71112331F00E943819802F4E
+:102860000E9495125DC00E945919802F0E949C12EF
+:1028700057C0112339F0011153C0872D8F710E9469
+:102880007E194EC0023008F04BC0F7CF112339F04B
+:10289000872D8F710E94381943C01123C9F3872DEA
+:1028A0008F710E9459193CC0112329F0872D8F7117
+:1028B0000E94231935C00E94191932C0112351F00A
+:1028C000172D1F71812F0E94381963E0812F0E94FC
+:1028D0004C1A26C081E00E94551A023008F182E0AD
+:1028E0000E94551A1DC0112331F0002389F28C2D4E
+:1028F0000E947E1115C0002391F28C2D0E94461279
+:102900000FC0472D4F706C2DC7010E946E050E94AD
+:102910003D1806C0472D4F706C2DC7010E946A06F6
+:10292000DD20F9F00E94481A80FD1BC0F7011282D9
+:102930000E94421A0E943819C7010E94C0140E94C6
+:10294000421A0F90DF91CF911F910F91FF90EF905E
+:10295000DF90CF90BF90AF909F908F907F900C941E
+:1029600059190F90DF91CF911F910F91FF90EF9028
+:10297000DF90CF90BF90AF909F908F907F90089501
+:102980000F931F93CF93DF93EC01888199812B8163
+:102990003C81232BB9F09F3F11F48F3F99F0CE017A
+:1029A0000E94C205882371F0688179818A810E9422
+:1029B0003E1A8C010E94F3190E94BA18B801CE0188
+:1029C0000E94A312DF91CF911F910F9108950E9451
+:1029D000161B0E94261B0E94EB1A0E94401B0E949D
+:1029E00059200E94A81F80E090E00E94841080E09F
+:1029F00090E00C949A100E94061B0C94E7140E941D
+:102A0000331A292F22952F7030E02C3031054CF4E9
+:102A10002A3031056CF42250310922303105A8F4F6
+:102A200007C02C30310569F02F30310551F00DC051
+:102A3000803F69F018F4803E40F409C0843F29F4D7
+:102A400006C093FB882780F9089580E0089581E00F
+:102A50000895CF93DF9300D000D01F92CDB7DEB79B
+:102A60000F900F900F900F900F90DF91CF910895DE
+:102A7000CF93DF9300D000D000D0CDB7DEB726963D
+:102A80000FB6F894DEBF0FBECDBFDF91CF91089592
+:102A90001F93CF93DF93C091850116E0809186014B
+:102AA000C81799F0D0E01C9FF0011D9FF00D112474
+:102AB000E957FE4F40815181628173818481958104
+:102AC0000E9438152196C770E9CFDF91CF911F91F1
+:102AD00008954091B7015091B8016091B90170918A
+:102AE000BA018091BB019091BC010C943815809182
+:102AF000BC0182958F7009F054C08091B901882380
+:102B000009F44FC080918501A09186016091B701C1
+:102B10007091B8014091BA015091BB01B6E08A179B
+:102B200009F43FC090E041155105C1F17F3F11F418
+:102B30006F3FA1F1B89FF001B99FF00D1124E95743
+:102B4000FE4F218172132AC02081621327C0228187
+:102B5000211124C0238134812417350710F421501A
+:102B60003109241B350B283C3105C0F42091BC01F0
+:102B70002F7020612093BC0126E0289FF001299F3F
+:102B8000F00D1124E457FE4F80818F7080618083A7
+:102B900087EB91E00E94C0140C9448150196877051
+:102BA000BECF0895CF92DF92EF92FF920F931F93C3
+:102BB000CF93DF93CDB7DEB762970FB6F894DEBF41
+:102BC0000FBECDBF8C0185E0F801DE011D9601909E
+:102BD0000D928A95E1F7D8014C9111965C9111976D
+:102BE00012966C9112971396CD90DC9014973091B9
+:102BF000B7017091B8018091BA019091BB01009723
+:102C000009F46BC17F3F19F43F3F09F466C1E090BE
+:102C1000B901EE2009F4C0C02091BC01C816D90644
+:102C200028F0F601E81BF90BCF0104C080959095C0
+:102C30008C0D9D1DFF24F394883C910578F0F12CB8
+:102C4000207F09F0C6C07C2DD98AC88A89890E9454
+:102C5000291587EB91E00E94C014B1C0822F807FBC
+:102C600009F046C0751314C0341312C0611110C0AE
+:102C70002F7020612093BC010E94691587EB91E0C1
+:102C80000E94C0148091BC01D80115968C932EC06F
+:102C9000CD2819F15F3F11F44F3FF9F0F62E611185
+:102CA0001CC0809185012091860136E0821709F4CD
+:102CB0005AC090E0389FF001399FF00D1124E95778
+:102CC000FE4F7181571306C07081471303C0728194
+:102CD000711103C001968770E9CFF62E662309F4BF
+:102CE00018C18091BC0181608093BC01F12C11C19D
+:102CF000751308C0341306C0611104C08091BC0173
+:102D0000D801C3C04D875E878D859E856A8B0E94E2
+:102D1000FF146A898823E1F16623D1F12091BC0177
+:102D2000822F82958F7090E0029774F08091B701A6
+:102D30009091B80198878F831986DB86CA862C8785
+:102D4000CE0107960E94C01486E0F801A7EBB1E01F
+:102D500001900D928A95E1F70E9477150E946915FE
+:102D6000FF24F394D6C04D875E878D859E850E9493
+:102D7000331A292F22952F7030E0223031050CF0C4
+:102D8000BCC09F7009F0B6C0805E883008F4C1C036
+:102D9000C8010E94C014E4CFC816D90608F453C075
+:102DA000F601E81BF90BCF01883C910508F450C0EF
+:102DB000F12C7C2DD98AC88A89890E942915E7EBD4
+:102DC000F1E086E0DF011D928A95E9F70E9469151E
+:102DD000A0C0751314C0341312C0611110C08091CB
+:102DE000BC01F8018583C8010E94C01486E0E7EBAE
+:102DF000F1E0DF011D928A95E9F7FE2C8AC04D872C
+:102E00005E878D859E856A8B0E94FF146A89882360
+:102E100009F4BECF662309F4BBCF2091BC01822FF9
+:102E200082958F7090E002970CF48ECF8091B7015D
+:102E30009091B8019A8389831B82DD82CC822E8394
+:102E4000CE0101967FCF809590958C0D9D1DACCFC6
+:102E5000F62E662309F49CCF75132EC034132CC0B4
+:102E60002091BC0120FD1FC0822F82958F70D9F068
+:102E7000D80115962C9315978F3049F08F5F982FB6
+:102E80009295907F822F8F70892B15968C93C80115
+:102E90000E94C01486E0F801A7EBB1E001900D920A
+:102EA0008A95E1F793CF86E0F801A7EBB1E00190B6
+:102EB0000D928A95E1F72DC04D875E878D859E85A1
+:102EC0000E94FF14811140CF8091BC0181608093EA
+:102ED000BC01C8010E94C0141CC0662309F458CF6D
+:102EE0004D875E878D859E850E94FF14882309F497
+:102EF0004FCF2ACF811148CF0CC0243031050CF0C0
+:102F000047CF9F7009F440CFF8019581907F09F079
+:102F10003BCF8F2D62960FB6F894DEBF0FBECDBFAC
+:102F2000DF91CF911F910F91FF90EF90DF90CF90A5
+:102F300008951F93CF93DF93CDB7DEB72C970FB6CD
+:102F4000F894DEBF0FBECDBF4F83588769877A875D
+:102F50008B879C87CE0107960E94D215882369F043
+:102F60008F8198852A853B85232BF1F19F3F09F0BE
+:102F700063C08F3F09F060C037C086E0FE0137961E
+:102F8000DE01119601900D928A95E1F76F817885A7
+:102F9000EA85FB85309741F17F3F11F46F3F21F1C6
+:102FA0002091860130E0C9010196877099274091F0
+:102FB000850150E08417950709F447C069837A8337
+:102FC000FD83EC8396E0929FD001939FB00D112476
+:102FD000A957BE4FFE01319601900D929A95E1F7E7
+:102FE000809386010E94481516E08091850190919A
+:102FF00086018917C1F1189FC001112489579E4F7E
+:103000000E94D215882379F1E09185011E9FF0017D
+:103010001124E957FE4F408151816281738184817F
+:1030200095810E9438158091850190E00196877006
+:10303000992780938501D9CF4F81588569857A85F5
+:103040008B859C850E943815CFCF0E94FB1410926F
+:10305000860110928501E7EBF1E086E0DF011D9229
+:103060008A95E9F7C1CF2C960FB6F894DEBF0FBE54
+:10307000CDBFDF91CF911F910895EF92FF920F93F3
+:103080001F93CF93DF938C01009709F46CC0F12C50
+:10309000EE24E394E8012196F8018491843740F40A
+:1030A000843008F051C0813081F0823019F15BC06A
+:1030B000853709F444C0A8F19CE7980F903708F0D1
+:1030C00052C08F770E94461241C00E5F1F4FFE0113
+:1030D000C49180E28C0F883048F4C7708E2D01C0F7
+:1030E000880FCA95EAF70E94191B14C08C2F0E9402
+:1030F0007E112DC00E5F1F4FFE01C49180E28C0F28
+:10310000883058F4C7708E2D01C0880FCA95EAF731
+:103110000E941F1B0E94401B1AC08C2F0E94461247
+:1031200016C00E5F1F4FFE01C491CC2381F08FE9C2
+:103130009FE00197F1F700C00000C150F6CF0E5F8D
+:103140001F4FFE01F49003C00E947E118E018F2D4F
+:10315000882309F49FCFEFE9FFE03197F1F700C032
+:1031600000008150F5CFDF91CF911F910F91FF901B
+:10317000EF90089508956093C1017093C201809308
+:10318000C3019093C4010C94E7140F931F93009113
+:10319000C1011091C2012091C3013091C401DC0131
+:1031A000CB01802B912BA22BB32B8093C101909349
+:1031B000C201A093C301B093C4011F910F910C945D
+:1031C000E7140F931F930091C1011091C201209148
+:1031D000C3013091C401DC01CB0180239123A223E0
+:1031E000B3238093C1019093C201A093C301B09314
+:1031F000C4011F910F910C94E7140F931F9300913A
+:10320000C1011091C2012091C3013091C401DC01C0
+:10321000CB0180279127A227B3278093C1019093E8
+:10322000C201A093C301B093C4011F910F910C94EC
+:10323000E7141092BD011092BE011092BF011092CE
+:10324000C0010C94E71441E050E060E070E004C07D
+:10325000440F551F661F771F8A95D2F74093BD0113
+:103260005093BE016093BF017093C0010C94E714AA
+:1032700041E050E060E070E004C0440F551F661F5D
+:10328000771F8A95D2F78091BD019091BE01A091E0
+:10329000BF01B091C001482B592B6A2B7B2B409367
+:1032A000BD015093BE016093BF017093C0010C94A7
+:1032B000E71441E050E060E070E004C0440F551FA7
+:1032C000661F771F8A95D2F7409550956095709547
+:1032D0008091BD019091BE01A091BF01B091C0014C
+:1032E000482359236A237B234093BD015093BE0199
+:1032F0006093BF017093C0010C94E71441E050E06B
+:1033000060E070E004C0440F551F661F771F8A9568
+:10331000D2F78091BD019091BE01A091BF01B09103
+:10332000C001482759276A277B274093BD01509346
+:10333000BE016093BF017093C0010C94E7140F931A
+:103340001F930091BD011091BE012091BF013091EA
+:10335000C001DC01CB01802B912BA22BB32B8093DE
+:10336000BD019093BE01A093BF01B093C0011F9116
+:103370000F910C94E7140F931F930091BD011091CE
+:10338000BE012091BF013091C001DC01CB0180233F
+:103390009123A223B3238093BD019093BE01A093F8
+:1033A000BF01B093C0011F910F910C94E7140F93CC
+:1033B0001F930091BD011091BE012091BF0130917A
+:1033C000C001DC01CB0180279127A227B32780937E
+:1033D000BD019093BE01A093BF01B093C0011F91A6
+:1033E0000F910C94E7140895CF92DF92EF92FF9221
+:1033F0000F931F93CF93DF938C01C090C101D090A6
+:10340000C201E090C301F090C4018091BD01909190
+:10341000BE01A091BF01B091C001C82AD92AEA2AF1
+:10342000FB2ACFE1D0E0D701C6010C2E04C0B6952F
+:10343000A795979587950A94D2F780FF06C0B801A3
+:103440008C2F0E94C008019721F4219760F780E03B
+:1034500001C08C2FDF91CF911F910F91FF90EF90C2
+:10346000DF90CF900895CF93DF93EC010E94F41981
+:10347000BE010E94C008DF91CF910895CB010E9448
+:10348000331A08958091C501859585958595089590
+:103490008091C5018770089598E0899F900111245B
+:1034A000262B2093C5010C9438192091C5018095D5
+:1034B00082238093C501982F977069F430E0482FDC
+:1034C000552747FD50952417350729F08595859593
+:1034D00085950C94591908959091C501977081E0D4
+:1034E00009F480E0089590910C01992321F09091C6
+:1034F0000D01911109C020910E0130910F01F901C8
+:1035000032969FEF40E01FC0982F9695969596951E
+:103510009F3050F5E0910E01F0910F01E90FF11D80
+:10352000877021E030E0A90102C0440F551F8A9541
+:10353000E2F7CA019181892B818308959F3F39F079
+:103540004F5F4E3041F051915813F8CF0DC05111DB
+:10355000F7CF942FF5CF9F3F39F0F901E90FF11D17
+:1035600097FDFA9582830895089590910C0199230F
+:1035700021F090910D01911109C020910E0130911F
+:103580000F01F9013296205F3F4F1FC0982F96958B
+:10359000969596959F30F0F4E0910E01F0910F0111
+:1035A000E90FF11D877021E030E0A90102C0440F4E
+:1035B000551F8A95E2F7CA018095918189238183FD
+:1035C00008953196E217F30729F090819813F9CF07
+:1035D0001082F7CF089581E090E0E0910E01F09124
+:1035E0000F01E80FF91F1082019680319105A9F7AC
+:1035F00008959091D901892B8093D90108958095E0
+:103600009091D90189238093D90108951092D9010D
+:1036100008959091D801892B8093D80108958095C1
+:103620009091D80189238093D80108951092D801F0
+:1036300008959091D701892B8093D70108958095A3
+:103640009091D70189238093D70108951092D701D3
+:1036500008958093C60108951092C601089580913F
+:103660000E0190910F01FC0131969C01205F3F4FAC
+:1036700080E0919191118F5FE217F307D1F70895E0
+:10368000E0910E01F0910F018091D9018083E091CA
+:103690000E01F0910F0190818091D801892B8083D8
+:1036A000E0910E01F0910F0190818091D701892B5B
+:1036B00080838091C601882361F0E0910E01F09132
+:1036C0000F019081892B80830E942F1B8111109202
+:1036D000C60180910E0190910F010C946E1020E0B4
+:1036E000009739F0AC0141505109842395232F5F95
+:1036F000F7CF822F0895CF92DF92EF92FF926C0165
+:10370000EE24FF24C114D104E104F10421F0C70127
+:10371000B60120E101C020E0C72ED82EE92EFF24FB
+:10372000C114D104E104F10419F0285FC701B60106
+:103730006B017C0154E0F694E794D794C7945A95B2
+:10374000D1F7C114D104E104F10419F02C5FC701D1
+:10375000B6016B017C0142E0F694E794D794C794DC
+:103760004A95D1F7C114D104E104F10419F02E5F98
+:10377000C701B601DC01CB01B695A7959795879552
+:10378000892B8A2B8B2B09F02F5F822FFF90EF90D4
+:10379000DF90CF9008958091F101843021F1109253
+:1037A000DB0120E488E190E00FB6F894A8958093BF
+:1037B00060000FBE2093600080E00E945B0983B729
+:1037C000817F846083BF83B7816083BF789488954D
+:1037D00083B78E7F83BF88E10FB6F8948093600033
+:1037E000109260000FBE0895089508950E94F41B82
+:1037F0000E94A4030E94F51B0E94990491E081118C
+:1038000001C090E0892F08950E94FB140E9462106D
+:103810000C945B0982E084BD93E095BD9AEF97BD5F
+:1038200080936E0008952FB7F8948091DC019091F9
+:10383000DD01A091DE01B091DF012FBF0895CF928D
+:10384000DF92EF92FF920F931F932FB7F89440915E
+:10385000DC015091DD016091DE017091DF012FBF2D
+:103860006A017B01EE24FF248C0120E030E0C016C9
+:10387000D106E206F30610F4415051099A01281BC3
+:10388000390BC9011F910F91FF90EF90DF90CF90FE
+:1038900008951F920F920FB60F9211248F939F934A
+:1038A000AF93BF938091DC019091DD01A091DE0187
+:1038B000B091DF010196A11DB11D8093DC019093B1
+:1038C000DD01A093DE01B093DF01BF91AF919F9125
+:1038D0008F910F900FBE0F901F9018950E945F0D53
+:1038E000F8942FEF87EA91E6215080409040E1F76D
+:1038F00000C0000087E090EBDC018093FB01909317
+:10390000FC01A093FD01B093FE019CE088E10FB69D
+:10391000F894A895809360000FBE90936000FFCF4D
+:10392000EF92FF920F931F93CF93DF93D82FCDE0A9
+:103930008C2F0E94920405E010E0E82EF12CC701C4
+:10394000002E02C0959587950A94E2F780FF09C082
+:10395000602F7C2F80E00E946B06D81302C081E0AC
+:1039600006C00150110958F7C15010F780E0DF91EF
+:10397000CF911F910F91FF90EF900895CF93C82F93
+:103980008CE20E94901C882321F08C2FCF910C9404
+:10399000901C80E0CF910895CF930E94131E811157
+:1039A00002C00E94F91DC5E6C15049F00E94A4035F
+:1039B0008FE39CE90197F1F700C00000F5CF89E2A1
+:1039C0000E94BE1C811113C18AE20E94BE1C81119B
+:1039D0000E94F91D85E00E94BE1C81110E946E1C90
+:1039E0000E941E1E8093DA0187E00E94BE1C88237D
+:1039F000A9F18BE10E94BE1C882351F08091DA016D
+:103A000081FB222720F991E0922790FB81F90EC0DB
+:103A10008EE00E94BE1C882361F08091DA0182FB57
+:103A2000222720F991E0922790FB82F98093DA0116
+:103A300015C080E10E94BE1C9091DA01882341F0FC
+:103A400093FB222720F981E0822780FB93F904C0B1
+:103A5000892F809580FB90F99093DA018091DA01AB
+:103A60000E94221E0E94301E8093FA0180EE0E9466
+:103A7000BE1C882341F08091FA01982F909590FB0D
+:103A800080F98093FA0189E30E94BE1C882359F0D3
+:103A90008091FA0181FB222720F991E0922790FB87
+:103AA00081F98093FA0182EE0E94BE1C882359F0AE
+:103AB0008091FA0182FB222720F991E0922790FB66
+:103AC00082F98093FA0186EE0E94BE1C882359F089
+:103AD0008091FA0183FB222720F991E0922790FB45
+:103AE00083F98093FA0183EE0E94BE1C882359F06B
+:103AF0008091FA0184FB222720F991E0922790FB24
+:103B000084F98093FA0185E30E94BE1C882359F052
+:103B10008091FA0185FB222720F991E0922790FB02
+:103B200085F98093FA0181E30E94BE1C882359F035
+:103B30008091FA0186FB222720F991E0922790FBE1
+:103B400086F98093FA0181E10E94BE1C882359F016
+:103B50008091FA0187FB222720F991E0922790FBC0
+:103B600087F98093FA018091FA010E94341E8091B6
+:103B7000FA0187FB882780F980930D0187E20E9474
+:103B8000BE1CC82F8EE10E94BE1C8111C2608FE155
+:103B90000E94BE1C8111C46080E20E94BE1C811183
+:103BA000C86081E20E94BE1C8111C06182E20E9455
+:103BB000BE1C8111C06283E20E94BE1C8111C064E0
+:103BC00084E20E94BE1C882311F0C06802C0CC238E
+:103BD00029F08C2F0E942B1E6C2F03C00E94271EE1
+:103BE000682F70E080E090E0CF910C94BB18CF91EB
+:103BF00008956DEE7EEF80E090E00E94652460E025
+:103C000082E090E00E94532460E083E090E00E9414
+:103C1000532460E084E090E00E94532460E085E05B
+:103C200090E00C94532480E090E00E944D2421E029
+:103C30008D3E9E4F09F020E0822F089582E090E0B3
+:103C40000C944524682F82E090E00C94532483E088
+:103C500090E00C944524682F83E090E00C9453246A
+:103C600084E090E00C944524682F84E090E00C946C
+:103C700053248091E20180FF0BC06091130185E025
+:103C8000689FB001112475956795759567952BC050
+:103C900081FF09C06091130185E0689FB001112484
+:103CA0007595679520C082FF07C06091130185E07C
+:103CB000689FB001112417C09091E3019923D1F0BE
+:103CC00060911201961788F72091130185E0289FD3
+:103CD00090011124929FA001939F500D112470E038
+:103CE000CA010E9417246038710540F461157105FE
+:103CF00039F002C065E070E0862F08958FE70895DF
+:103D000081E008958091E20180FF08C06091110177
+:103D100070E0759567957595679521C081FF06C020
+:103D20006091110170E07595679519C082FF04C01C
+:103D30006091110170E010C09091E3019923C1F0EE
+:103D4000609110019617A0F780911101899FC00121
+:103D5000112470E00E9417246038710528F4611561
+:103D6000710521F0862F08958FE7089581E0089569
+:103D700061E070E0F4CF803F21F40E94391E81950C
+:103D800004C0813F29F40E94391E8093E601089502
+:103D9000823F21F40E94391E819504C0833F29F49B
+:103DA0000E94391E8093E5010895893F19F40E940D
+:103DB000821E05C08A3F31F40E94821E8195809345
+:103DC000E70108958B3F21F40E94821E819504C073
+:103DD0008C3F29F40E94821E8093E8010895843F5D
+:103DE00021F48091E401816017C0853F21F4809126
+:103DF000E401826011C0863F21F48091E401846077
+:103E00000BC0873F21F48091E401886005C0883FA2
+:103E100031F48091E40180618093E40108958D3F45
+:103E200021F48091E20181600BC08E3F21F48091EA
+:103E3000E201826005C08F3F29F48091E201846035
+:103E40008093E2010895803F39F48091E60187FF75
+:103E50006CC01092E60169C0813F29F48091E601AF
+:103E60001816BCF362C09091E501823F29F497FFD8
+:103E70005CC01092E50159C0833F19F41916CCF3C8
+:103E800054C0893F41F48091E70118160CF04DC0F1
+:103E90001092E7014AC08A3F29F48091E70187FF29
+:103EA00044C0F6CF8B3F39F48091E80187FF3DC0D5
+:103EB0001092E8013AC08C3F29F48091E80118166D
+:103EC000BCF333C0843F21F48091E4018E7F17C09E
+:103ED000853F21F48091E4018D7F11C0863F21F45C
+:103EE0008091E4018B7F0BC0873F21F48091E40136
+:103EF000877F05C0883F31F48091E4018F7E8093F5
+:103F0000E40113C08D3F21F48091E2018E7F0BC04C
+:103F10008E3F21F48091E2018D7F05C08F3F29F40F
+:103F20008091E2018B7F8093E2018091E501811114
+:103F30000EC08091E60181110AC08091E7018111D4
+:103F400006C08091E801811102C01092E30108953A
+:103F500084EE91E00E9479100E94131C9093E1017D
+:103F60008093E00108951F93CF93DF938091E00148
+:103F70009091E1010E941F1CAC019091E3019923F3
+:103F800021F02091140130E006C0209115018AE053
+:103F9000289F900111244217530708F486C080918E
+:103FA000E501C091E601D091E7011091E80181118E
+:103FB00007C0C11176C0D11174C0111172C075C093
+:103FC0009F3F19F09F5F9093E301181624F40E941D
+:103FD000391E8093E5018091E50187FF05C00E94AD
+:103FE000391E81958093E5011C1624F40E94391E28
+:103FF0008093E6018091E60187FF05C00E94391E8B
+:1040000081958093E6016091E501662339F1C091C5
+:10401000E601CC2319F1772767FD7095872F972F3D
+:104020000E94282323E333E343E35FE30E948C23CE
+:104030000E94F5226093E5016C2F772767FD70954C
+:10404000872F972F0E94282323E333E343E35FE383
+:104050000E948C230E94F5226093E6011D1624F431
+:104060000E94821E8093E7018091E70187FF05C0CF
+:104070000E94821E81958093E701111624F40E940C
+:10408000821E8093E8018091E80187FF05C00E94AD
+:10409000821E81958093E801DF91CF911F910C944E
+:1040A000A81F9F3F09F08ECF96CFDF91CF911F9130
+:1040B0000895E4EEF1E085E0DF011D928A95E9F7CD
+:1040C0001092E3011092E2010895833081F128F407
+:1040D000813059F08230D1F00895853009F449C01B
+:1040E000B8F1863009F456C0089580911501262F45
+:1040F00030E0280F311D2F3F310524F4680F609305
+:10410000150108958FEF8093150108958091140192
+:10411000262F30E0280F311D2F3F310524F4680F82
+:104120006093140108958FEF809314010895809196
+:104130001301262F30E0280F311D2F3F310524F4C5
+:10414000680F6093130108958FEF80931301089512
+:1041500080911201262F30E0280F311D2F3F3105AD
+:1041600024F4680F6093120108958FEF8093120179
+:10417000089580911101262F30E0280F311D2F3F27
+:10418000310524F4680F6093110108958FEF809337
+:104190001101089580911001262F30E0280F311D64
+:1041A0002F3F310524F4680F6093100108958FEFBD
+:1041B000809310010895833011F128F4813049F083
+:1041C000823091F00895853081F120F18630C1F17F
+:1041D000089580911501681720F4861B80931501BE
+:1041E000089510921501089580911401681720F424
+:1041F000861B8093140108951092140108958091F4
+:104200001301681720F4861B809313010895109200
+:104210001301089580911201681720F4861B809382
+:1042200012010895109212010895809111016817EA
+:1042300020F4861B809311010895109211010895B6
+:1042400080911001681720F4861B80931001089557
+:104250001092100108950F931F938D3109F46BC0D4
+:1042600008F03FC08E3009F47FC0C0F4873009F4F5
+:1042700069C068F4863009F0B1C08091DA01817FAD
+:104280008E7F8093DA0181E08093EA01A8C08830B4
+:1042900009F4A2C08B3009F49FC0A0C0863109F494
+:1042A0009BC078F4803109F472C0813109F096C066
+:1042B0000E94FB1490910D0181E0892780930D01EC
+:1042C0008BC0893109F488C08B3109F087C0809197
+:1042D000DA0181FB222720F991E0922790FB81F9F6
+:1042E0004CC0853309F470C048F4873209F46CC0BF
+:1042F00008F459C0893209F467C070C0833438F4B7
+:104300008A3308F04EC0883309F466C067C083342E
+:1043100009F45AC0883409F061C00E94FB140FEF01
+:1043200013ED20E3015010402040E1F700C00000F1
+:104330000E946E1C51C00E94AF220E9462100E9417
+:104340005B094AC09091DA01892F8095817080FBCA
+:1043500090F929F0966098609093DA0140C0997FB7
+:10436000977F9093DA0138C08091DA0182FB22278F
+:1043700020F991E0922790FB82F98093DA0199234A
+:1043800059F18091DA0181608093DA0125C0809132
+:10439000DA0183FB222720F991E0922790FB83F931
+:1043A000ECCF895301C08D5141E050E060E070E0F6
+:1043B0008A019B0104C0000F111F221F331F8A9521
+:1043C000D2F7C901B80104C061E070E080E090E07C
+:1043D0000E94BB180E94FB1481E001C080E01F9185
+:1043E0000F91089580E0089580E00895CF93C82F3D
+:1043F0008091EA01813079F018F08230E9F187C0CC
+:10440000E0910E01F0910F018081813169F08232DB
+:1044100009F07FC009C0E0910E01F0910F01808189
+:10442000813111F0823261F48C2F0E94F2218111CE
+:1044300004C08C2F0E942B211DC081E090E01AC087
+:104440008C2F0E94F421811114C0C43179F048F4FA
+:10445000CB3079F0C03109F060C082E08093EA018E
+:1044600008C0C93219F0C83321F057C01092EA01D0
+:1044700054C081E0817053C0C93289F118F5C4314C
+:1044800071F1A8F4C73009F046C08AE080931501A5
+:1044900094E19093140193E090931301809312019F
+:1044A00088E08093110188E28093100134C0CE51DE
+:1044B000C63088F5EC2FF0E0E65DFE4F80818093FA
+:1044C000E90129C0CE34E9F020F4CB3421F56AE0CB
+:1044D00013C0C13579F0C235F1F461E00DC08091AF
+:1044E000E901882319F01092E90115C081E0809359
+:1044F000EA0115C061E006C08091E9010E946520D3
+:104500000AC06AE08091E9010E94DB2004C0109299
+:10451000EA0180E004C081E002C080E0ABCFCF912F
+:104520000895E1E8F0E08081886080838081816087
+:1045300080838FB7F89493E09093890090ED9093E7
+:1045400088008FBF0895EFE6F0E08081826080836D
+:104550000895EFE6F0E080818D7F80830895EFE697
+:10456000F0E0908182E08927808308951F920F9266
+:104570000FB60F9211242F933F934F935F936F9336
+:104580007F938F939F93AF93BF93EF93FF9380910C
+:10459000EB019091EC0101969093EC018093EB017B
+:1045A000811103C082E00E945B09E091EC01E69575
+:1045B000E695F0E0EB59FA4FE4918091EB018E1310
+:1045C00003C080E00E945B09FF91EF91BF91AF9122
+:1045D0009F918F917F916F915F914F913F912F911B
+:1045E0000F900FBE0F901F90189504D06894B111D2
+:1045F0008DC0089570D088F09F5790F0B92F9927FB
+:10460000B751A0F0D1F0660F771F881F991F1AF0DD
+:10461000BA95C9F712C0B13081F077D0B1E00895F2
+:1046200074C0672F782F8827B85F39F0B93FCCF373
+:10463000869577956795B395D9F73EF490958095D3
+:10464000709561957F4F8F4F9F4F0895E89409C0F3
+:1046500097FB3EF490958095709561957F4F8F4FB5
+:104660009F4F9923A9F0F92F96E9BB279395F695CB
+:10467000879577956795B795F111F8CFFAF4BB0F49
+:1046800011F460FF1BC06F5F7F4F8F4F9F4F16C0AD
+:10469000882311F096E911C0772321F09EE8872F37
+:1046A000762F05C0662371F096E8862F70E060E0F3
+:1046B0002AF09A95660F771F881FDAF7880F96956C
+:1046C000879597F9089557FD9058440F551F59F055
+:1046D0005F3F71F04795880F97FB991F61F09F3FEF
+:1046E00079F087950895121613061406551FF2CF18
+:1046F0004695F1DF08C0161617061806991FF1CF68
+:1047000086957105610508940895E894BB2766278E
+:104710007727CB0197F908950BD078C069D028F09E
+:104720006ED018F0952309F05AC05FC01124EECF67
+:10473000CADFA0F3959FD1F3950F50E0551F629FFC
+:10474000F001729FBB27F00DB11D639FAA27F00DEA
+:10475000B11DAA1F649F6627B00DA11D661F829F11
+:104760002227B00DA11D621F739FB00DA11D621FF6
+:10477000839FA00D611D221F749F3327A00D611D13
+:10478000231F849F600D211D822F762F6A2F1124F5
+:104790009F5750408AF0E1F088234AF0EE0FFF1F48
+:1047A000BB1F661F771F881F91505040A9F79E3F7F
+:1047B000510570F014C0AACF5F3FECF3983EDCF3D4
+:1047C000869577956795B795F795E7959F5FC1F7BC
+:1047D000FE2B880F911D9695879597F9089597F967
+:1047E0009F6780E870E060E008959FEF80EC089597
+:1047F00000240A94161617061806090608950024C0
+:104800000A9412161306140605060895092E039439
+:10481000000C11F4882352F0BB0F40F4BF2B11F4AD
+:1048200060FF04C06F5F7F4F8F4F9F4F089597FBCE
+:10483000072E16F4009407D077FD09D00E9431248A
+:1048400007FC05D03EF4909581959F4F0895709593
+:1048500061957F4F0895EE0FFF1F0590F491E02DB5
+:104860000994AA1BBB1B51E107C0AA1FBB1FA617B7
+:10487000B70710F0A61BB70B881F991F5A95A9F709
+:1048800080959095BC01CD010895F999FECF92BD18
+:1048900081BDF89A992780B50895A8E1B0E042E07B
+:1048A00050E00C946D24262FF999FECF92BD81BD66
+:1048B000F89A019700B4021639F01FBA20BD0FB65E
+:1048C000F894FA9AF99A0FBE08950196272F0E943C
+:1048D00054240C945324DC01CB01FC01F999FECF44
+:1048E00006C0F2BDE1BDF89A319600B40D92415078
+:0A48F0005040B8F70895F894FFCF88
+:1048FA0002205D09EB09C809940960090101C70191
+:10490A0028080A03140A3F4D36392605D904A30498
+:10491A006A04FD0316042F04480401020304050671
+:04492A000708090071
+:00000001FF
diff --git a/keyboards/ergodox_ez/keymaps/zweihander-osx/keymap.c b/keyboards/ergodox_ez/keymaps/zweihander-osx/keymap.c new file mode 100644 index 000000000..3444152bc --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/zweihander-osx/keymap.c @@ -0,0 +1,233 @@ +#include "ergodox_ez.h" +#include "debug.h" +#include "action_layer.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys + +#define SGWK 0 // "sagewick", ⌘S ⌘⇥ +#define SGWF 1 // "sagewick freshly", ⌘S ⌘⇥ ⌘R +#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 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | L1 | | L1 | 6 | 7 | 8 | 9 | 0 | - | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | ⌦ | Q | W | E | R | T | ~L1 | | ~L1 | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | ⌫ | A | S | D | F | G |------| |------| H | J | K | L |; / L2| ' / L⌘ | + * |--------+------+------+------+------+------| L⌘ | | L⌘ |------+------+------+------+------+--------| + * | L⇧ | Z | X | C | V | B | | | | N | M | , | . | / / ⌃| R⇧ | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | L⌃ | L⌥ | L⌘ | ← | → | | ↑ | ↓ | [ | ] | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,---------------. + * | `~ | '" | | ⎋ | ⌫ | + * ,------|------|------| |------+--------+------. + * | | | PgUp | | PgDn | | | + * | | ⌫ |------| |------| ⇥ |Enter | + * | | | L⌥ | | L⌃ | | | + * `--------------------' `----------------------' + */ +// 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, TG(SYMB), + KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, MO(SYMB), + KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LGUI, + KC_LCTL, KC_LALT, KC_LGUI,KC_LEFT,KC_RGHT, + KC_GRV, KC_QUOT, + KC_PGUP, + KC_SPC,KC_BSPC,KC_LALT, + // 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, + KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),GUI_T(KC_QUOT), + KC_LGUI, KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + KC_UP, KC_DOWN,KC_LBRC,KC_RBRC, KC_SPC , + KC_ESC, KC_BSPC, + KC_PGDN, + KC_LCTL, KC_TAB, KC_ENT + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | [ | ] | { | } | " | | | | / | 7 | 8 | 9 | * | F12 | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | < | > | ( | ) | ' |------| |------| - | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | & | 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_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_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_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_0, KC_DOT, KC_LEFT, KC_RGHT, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_HOME, + KC_END , KC_TRNS, KC_TRNS +), +/* Keymap 2: Media keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | F14 | F15 | | | | | | ⌘Q | ⌘W | ⌘⇧` | ⌘` | | | Power | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | PgUp |⌘S⌘⇥⌘R| Term | | | | ⌘] | ⌥⌘↑ | ↑ | ⌥⌘↓ | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | |Safari| PgDn | | |------| |------| ⌘[ | ← | ↓ | → | | ⏯ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | |BBEdit| | | |L⇧+Spc| Spc | ⏮ | ⏭ | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | |VolUp |VolDn | Mute | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | Home | | End | | | + * | | |------| |------| ⌘C | ⌘V | + * | | | | | ⌘X | | | + * `--------------------' `--------------------' + */ +// 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_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, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + 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, + 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_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + LGUI(KC_X), LGUI(KC_C), LGUI(KC_V) +), +}; + +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 SGWK: + if (record->event.pressed) { + return MACRO( + I(10), + D(LGUI), T(S), U(LGUI), + D(LGUI), T(TAB), U(LGUI), + END); + } + break; + case SGWF: + if (record->event.pressed) { + return MACRO( + I(10), + D(LGUI), T(S), U(LGUI), + D(LGUI), T(TAB), U(LGUI), + D(LGUI), T(R), U(LGUI), + END); + } + break; + case BBED: + if (record->event.pressed) { + return MACRO( + I(10), + D(LALT), T(SPC), U(LALT), W(ALFRED_LEAD_TIME), + T(B), T(B), T(E), T(D), T(I), T(T), + T(ENT), + END); + } + break; + case TMNL: + if (record->event.pressed) { + return MACRO( + I(10), + D(LALT), T(SPC), U(LALT), W(ALFRED_LEAD_TIME), + T(T), T(E), T(R), T(M), T(I), T(N), T(A), T(L), + T(ENT), + END); + } + break; + case SAFA: + if (record->event.pressed) { + return MACRO( + I(10), + D(LALT), T(SPC), U(LALT), W(ALFRED_LEAD_TIME), + T(S), T(A), T(F), T(A), T(R), T(I), + T(ENT), + 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); + + 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/zweihander-osx/readme.markdown b/keyboards/ergodox_ez/keymaps/zweihander-osx/readme.markdown new file mode 100644 index 000000000..7bce7c690 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/zweihander-osx/readme.markdown @@ -0,0 +1,45 @@ +# The Zweihander Layout + +NB: the backtick (\`) is special in Markdown. If I write ⌘\` in this readme, I mean “command-backtick”, not “command-backslash-backtick”. + +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. + + +## mouse left-handed while doing other things with the right hand + +I tend to have my mouse in my left hand, but I like to use my other hand to make things go faster. I’ve added a bunch of buttons to the media layer to speed up browsing in Safari and Finder: + +- Close Window (⌘W) +- Back (⌘[) +- Forward (⌘]) +- Open and Close Parent Folder (⌥⌘↓) +- 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. + + +## use lots of modifier keys in OS X menu-item shortcuts + +I wanted to preserve the feel of a number of shortcuts that involve pressing lots of modifier keys at once; this is why the bottom left of the keyboard has shift, control, option, and command in the usual spaces. Further, some common shortcuts I press have a key on the right side of the keyboard. These shortcuts include: + +- Empty Trash Without Asking for Confirmation (⇧⌥⌘⌫) +- Shut Down Without Asking for Confirmation (⇧⌥⌘ power) + + +## 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. + + +## use spreadsheets + +All the common spreadsheet operations (+-*/=) are now on the right side of the symbol layer. diff --git a/keyboards/ergodox_ez/matrix.c b/keyboards/ergodox_ez/matrix.c new file mode 100644 index 000000000..2a7dfba21 --- /dev/null +++ b/keyboards/ergodox_ez/matrix.c @@ -0,0 +1,363 @@ +/* + +Note for ErgoDox EZ customizers: Here be dragons! +This is not a file you want to be messing with. +All of the interesting stuff for you is under keymaps/ :) +Love, Erez + +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/>. +*/ + +/* + * 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 "ergodox_ez.h" +#include "i2cmaster.h" +#ifdef DEBUG_MATRIX_SCAN_RATE +#include "timer.h" +#endif + +#ifndef DEBOUNCE +# define DEBOUNCE 5 +#endif +static uint8_t debouncing = DEBOUNCE; + +/* matrix state(1:on, 0:off) */ +static matrix_row_t matrix[MATRIX_ROWS]; +static matrix_row_t matrix_debouncing[MATRIX_ROWS]; + +static matrix_row_t read_cols(uint8_t row); +static void init_cols(void); +static void unselect_rows(void); +static void select_row(uint8_t row); + +static uint8_t mcp23018_reset_loop; + +#ifdef DEBUG_MATRIX_SCAN_RATE +uint32_t matrix_timer; +uint32_t matrix_scan_count; +#endif + + +__attribute__ ((weak)) +void matrix_init_kb(void) { +} + +__attribute__ ((weak)) +void matrix_scan_kb(void) { +} + +inline +uint8_t matrix_rows(void) +{ + return MATRIX_ROWS; +} + +inline +uint8_t matrix_cols(void) +{ + return MATRIX_COLS; +} + +void matrix_init(void) +{ + // initialize row and col + + mcp23018_status = init_mcp23018(); + + + unselect_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + matrix_debouncing[i] = 0; + } + +#ifdef DEBUG_MATRIX_SCAN_RATE + matrix_timer = timer_read32(); + matrix_scan_count = 0; +#endif + + matrix_init_kb(); + +} + +void matrix_power_up(void) { + mcp23018_status = init_mcp23018(); + + unselect_rows(); + init_cols(); + + // initialize matrix state: all keys off + for (uint8_t i=0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + matrix_debouncing[i] = 0; + } + +#ifdef DEBUG_MATRIX_SCAN_RATE + matrix_timer = timer_read32(); + matrix_scan_count = 0; +#endif + +} + +uint8_t matrix_scan(void) +{ + if (mcp23018_status) { // if there was an error + if (++mcp23018_reset_loop == 0) { + // since mcp23018_reset_loop is 8 bit - we'll try to reset once in 255 matrix scans + // this will be approx bit more frequent than once per second + print("trying to reset mcp23018\n"); + mcp23018_status = init_mcp23018(); + if (mcp23018_status) { + print("left side not responding\n"); + } else { + print("left side attached\n"); + ergodox_blink_all_leds(); + } + } + } + +#ifdef DEBUG_MATRIX_SCAN_RATE + matrix_scan_count++; + + uint32_t timer_now = timer_read32(); + if (TIMER_DIFF_32(timer_now, matrix_timer)>1000) { + print("matrix scan frequency: "); + pdec(matrix_scan_count); + print("\n"); + + matrix_timer = timer_now; + matrix_scan_count = 0; + } +#endif + + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + select_row(i); + matrix_row_t cols = read_cols(i); + if (matrix_debouncing[i] != cols) { + matrix_debouncing[i] = cols; + 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_kb(); + + 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 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; +} + +/* Column pin configuration + * + * Teensy + * col: 0 1 2 3 4 5 + * pin: F0 F1 F4 F5 F6 F7 + * + * MCP23018 + * col: 0 1 2 3 4 5 + * pin: B5 B4 B3 B2 B1 B0 + */ +static void init_cols(void) +{ + // init on mcp23018 + // not needed, already done as part of init_mcp23018() + + // init on teensy + // Input with pull-up(DDR:0, PORT:1) + DDRF &= ~(1<<7 | 1<<6 | 1<<5 | 1<<4 | 1<<1 | 1<<0); + PORTF |= (1<<7 | 1<<6 | 1<<5 | 1<<4 | 1<<1 | 1<<0); +} + +static matrix_row_t read_cols(uint8_t row) +{ + if (row < 7) { + if (mcp23018_status) { // if there was an error + return 0; + } else { + uint8_t data = 0; + mcp23018_status = i2c_start(I2C_ADDR_WRITE); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(GPIOB); if (mcp23018_status) goto out; + mcp23018_status = i2c_start(I2C_ADDR_READ); if (mcp23018_status) goto out; + data = i2c_readNak(); + data = ~data; + out: + i2c_stop(); + return data; + } + } else { + _delay_us(30); // without this wait read unstable value. + // read from teensy + return + (PINF&(1<<0) ? 0 : (1<<0)) | + (PINF&(1<<1) ? 0 : (1<<1)) | + (PINF&(1<<4) ? 0 : (1<<2)) | + (PINF&(1<<5) ? 0 : (1<<3)) | + (PINF&(1<<6) ? 0 : (1<<4)) | + (PINF&(1<<7) ? 0 : (1<<5)) ; + } +} + +/* Row pin configuration + * + * Teensy + * row: 7 8 9 10 11 12 13 + * pin: B0 B1 B2 B3 D2 D3 C6 + * + * MCP23018 + * row: 0 1 2 3 4 5 6 + * pin: A0 A1 A2 A3 A4 A5 A6 + */ +static void unselect_rows(void) +{ + // unselect on mcp23018 + if (mcp23018_status) { // if there was an error + // do nothing + } else { + // set all rows hi-Z : 1 + mcp23018_status = i2c_start(I2C_ADDR_WRITE); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(GPIOA); if (mcp23018_status) goto out; + mcp23018_status = i2c_write( 0xFF + & ~(0<<7) + ); if (mcp23018_status) goto out; + out: + i2c_stop(); + } + + // unselect on teensy + // Hi-Z(DDR:0, PORT:0) to unselect + DDRB &= ~(1<<0 | 1<<1 | 1<<2 | 1<<3); + PORTB &= ~(1<<0 | 1<<1 | 1<<2 | 1<<3); + DDRD &= ~(1<<2 | 1<<3); + PORTD &= ~(1<<2 | 1<<3); + DDRC &= ~(1<<6); + PORTC &= ~(1<<6); +} + +static void select_row(uint8_t row) +{ + if (row < 7) { + // select on mcp23018 + if (mcp23018_status) { // if there was an error + // do nothing + } else { + // set active row low : 0 + // set other rows hi-Z : 1 + mcp23018_status = i2c_start(I2C_ADDR_WRITE); if (mcp23018_status) goto out; + mcp23018_status = i2c_write(GPIOA); if (mcp23018_status) goto out; + mcp23018_status = i2c_write( 0xFF & ~(1<<row) + & ~(0<<7) + ); if (mcp23018_status) goto out; + out: + i2c_stop(); + } + } else { + // select on teensy + // Output low(DDR:1, PORT:0) to select + switch (row) { + case 7: + DDRB |= (1<<0); + PORTB &= ~(1<<0); + break; + case 8: + DDRB |= (1<<1); + PORTB &= ~(1<<1); + break; + case 9: + DDRB |= (1<<2); + PORTB &= ~(1<<2); + break; + case 10: + DDRB |= (1<<3); + PORTB &= ~(1<<3); + break; + case 11: + DDRD |= (1<<2); + PORTD &= ~(1<<3); + break; + case 12: + DDRD |= (1<<3); + PORTD &= ~(1<<3); + break; + case 13: + DDRC |= (1<<6); + PORTC &= ~(1<<6); + break; + } + } +} + diff --git a/keyboards/ergodox_ez/readme.md b/keyboards/ergodox_ez/readme.md new file mode 100644 index 000000000..b1e9d7eca --- /dev/null +++ b/keyboards/ergodox_ez/readme.md @@ -0,0 +1,45 @@ +# 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. `compiled.hex` - a compiled version of your keymap. This allows people to just download your hex file and flash it without having to set up a build toolchain to make it. +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/ergodox_ez/twimaster.c b/keyboards/ergodox_ez/twimaster.c new file mode 100644 index 000000000..f91c08e6e --- /dev/null +++ b/keyboards/ergodox_ez/twimaster.c @@ -0,0 +1,208 @@ +/************************************************************************* +* Title: I2C master library using hardware TWI interface +* Author: Peter Fleury <pfleury@gmx.ch> http://jump.to/fleury +* File: $Id: twimaster.c,v 1.3 2005/07/02 11:14:21 Peter Exp $ +* Software: AVR-GCC 3.4.3 / avr-libc 1.2.3 +* Target: any AVR device with hardware TWI +* Usage: API compatible with I2C Software Library i2cmaster.h +**************************************************************************/ +#include <inttypes.h> +#include <compat/twi.h> + +#include <i2cmaster.h> + + +/* define CPU frequency in Mhz here if not defined in Makefile */ +#ifndef F_CPU +#define F_CPU 16000000UL +#endif + +/* I2C clock in Hz */ +#define SCL_CLOCK 400000L + + +/************************************************************************* + Initialization of the I2C bus interface. Need to be called only once +*************************************************************************/ +void i2c_init(void) +{ + /* initialize TWI clock + * minimal values in Bit Rate Register (TWBR) and minimal Prescaler + * bits in the TWI Status Register should give us maximal possible + * I2C bus speed - about 444 kHz + * + * for more details, see 20.5.2 in ATmega16/32 secification + */ + + TWSR = 0; /* no prescaler */ + TWBR = 10; /* must be >= 10 for stable operation */ + +}/* i2c_init */ + + +/************************************************************************* + Issues a start condition and sends address and transfer direction. + return 0 = device accessible, 1= failed to access device +*************************************************************************/ +unsigned char i2c_start(unsigned char address) +{ + uint8_t twst; + + // send START condition + TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN); + + // wait until transmission completed + while(!(TWCR & (1<<TWINT))); + + // check value of TWI Status Register. Mask prescaler bits. + twst = TW_STATUS & 0xF8; + if ( (twst != TW_START) && (twst != TW_REP_START)) return 1; + + // send device address + TWDR = address; + TWCR = (1<<TWINT) | (1<<TWEN); + + // wail until transmission completed and ACK/NACK has been received + while(!(TWCR & (1<<TWINT))); + + // check value of TWI Status Register. Mask prescaler bits. + twst = TW_STATUS & 0xF8; + if ( (twst != TW_MT_SLA_ACK) && (twst != TW_MR_SLA_ACK) ) return 1; + + return 0; + +}/* i2c_start */ + + +/************************************************************************* + Issues a start condition and sends address and transfer direction. + If device is busy, use ack polling to wait until device is ready + + Input: address and transfer direction of I2C device +*************************************************************************/ +void i2c_start_wait(unsigned char address) +{ + uint8_t twst; + + + while ( 1 ) + { + // send START condition + TWCR = (1<<TWINT) | (1<<TWSTA) | (1<<TWEN); + + // wait until transmission completed + while(!(TWCR & (1<<TWINT))); + + // check value of TWI Status Register. Mask prescaler bits. + twst = TW_STATUS & 0xF8; + if ( (twst != TW_START) && (twst != TW_REP_START)) continue; + + // send device address + TWDR = address; + TWCR = (1<<TWINT) | (1<<TWEN); + + // wail until transmission completed + while(!(TWCR & (1<<TWINT))); + + // check value of TWI Status Register. Mask prescaler bits. + twst = TW_STATUS & 0xF8; + if ( (twst == TW_MT_SLA_NACK )||(twst ==TW_MR_DATA_NACK) ) + { + /* device busy, send stop condition to terminate write operation */ + TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTO); + + // wait until stop condition is executed and bus released + while(TWCR & (1<<TWSTO)); + + continue; + } + //if( twst != TW_MT_SLA_ACK) return 1; + break; + } + +}/* i2c_start_wait */ + + +/************************************************************************* + Issues a repeated start condition and sends address and transfer direction + + Input: address and transfer direction of I2C device + + Return: 0 device accessible + 1 failed to access device +*************************************************************************/ +unsigned char i2c_rep_start(unsigned char address) +{ + return i2c_start( address ); + +}/* i2c_rep_start */ + + +/************************************************************************* + Terminates the data transfer and releases the I2C bus +*************************************************************************/ +void i2c_stop(void) +{ + /* send stop condition */ + TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTO); + + // wait until stop condition is executed and bus released + while(TWCR & (1<<TWSTO)); + +}/* i2c_stop */ + + +/************************************************************************* + Send one byte to I2C device + + Input: byte to be transfered + Return: 0 write successful + 1 write failed +*************************************************************************/ +unsigned char i2c_write( unsigned char data ) +{ + uint8_t twst; + + // send data to the previously addressed device + TWDR = data; + TWCR = (1<<TWINT) | (1<<TWEN); + + // wait until transmission completed + while(!(TWCR & (1<<TWINT))); + + // check value of TWI Status Register. Mask prescaler bits + twst = TW_STATUS & 0xF8; + if( twst != TW_MT_DATA_ACK) return 1; + return 0; + +}/* i2c_write */ + + +/************************************************************************* + Read one byte from the I2C device, request more data from device + + Return: byte read from I2C device +*************************************************************************/ +unsigned char i2c_readAck(void) +{ + TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWEA); + while(!(TWCR & (1<<TWINT))); + + return TWDR; + +}/* i2c_readAck */ + + +/************************************************************************* + Read one byte from the I2C device, read is followed by a stop condition + + Return: byte read from I2C device +*************************************************************************/ +unsigned char i2c_readNak(void) +{ + TWCR = (1<<TWINT) | (1<<TWEN); + while(!(TWCR & (1<<TWINT))); + + return TWDR; + +}/* i2c_readNak */ diff --git a/keyboards/ergodox_ez/util/compile_keymap.py b/keyboards/ergodox_ez/util/compile_keymap.py new file mode 100644 index 000000000..7076a6ecb --- /dev/null +++ b/keyboards/ergodox_ez/util/compile_keymap.py @@ -0,0 +1,710 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +"""Compiler for keymap.c files + +This scrip will generate a keymap.c file from a simple +markdown file with a specific layout. + +Usage: + python compile_keymap.py INPUT_PATH [OUTPUT_PATH] +""" +from __future__ import division +from __future__ import print_function +from __future__ import absolute_import +from __future__ import unicode_literals + +import os +import io +import re +import sys +import json +import unicodedata +import collections +import itertools as it + +PY2 = sys.version_info.major == 2 + +if PY2: + chr = unichr + + +KEYBOARD_LAYOUTS = { + # These map positions in the parsed layout to + # positions in the KEYMAP MATRIX + 'ergodox_ez': [ + [ 0, 1, 2, 3, 4, 5, 6], [38, 39, 40, 41, 42, 43, 44], + [ 7, 8, 9, 10, 11, 12, 13], [45, 46, 47, 48, 49, 50, 51], + [14, 15, 16, 17, 18, 19 ], [ 52, 53, 54, 55, 56, 57], + [20, 21, 22, 23, 24, 25, 26], [58, 59, 60, 61, 62, 63, 64], + [27, 28, 29, 30, 31 ], [ 65, 66, 67, 68, 69], + [ 32, 33], [70, 71 ], + [ 34], [72 ], + [ 35, 36, 37], [73, 74, 75 ], + ] +} + +ROW_INDENTS = { + 'ergodox_ez': [0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 5, 0, 6, 0, 4, 0] +} + +BLANK_LAYOUTS = [ +# Compact Layout +""" +.------------------------------------.------------------------------------. +| | | | | | | | | | | | | | | +!-----+----+----+----+----+----------!-----+----+----+----+----+----+-----! +| | | | | | | | | | | | | | | +!-----+----+----+----x----x----! ! !----x----x----+----+----+-----! +| | | | | | |-----!-----! | | | | | | +!-----+----+----+----x----x----! ! !----x----x----+----+----+-----! +| | | | | | | | | | | | | | | +'-----+----+----+----+----+----------'----------+----+----+----+----+-----' + | | | | | | ! | | | | | + '------------------------' '------------------------' + .-----------. .-----------. + | | | ! | | + .-----+-----+-----! !-----+-----+-----. + ! ! | | ! | ! ! + ! ! !-----! !-----! ! ! + | | | | ! | | | + '-----------------' '-----------------' +""", + +# Wide Layout +""" +.---------------------------------------------. .---------------------------------------------. +| | | | | | | | ! | | | | | | | +!-------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+-------! +| | | | | | | | ! | | | | | | | +!-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------! +| | | | | | |-------! !-------! | | | | | | +!-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------! +| | | | | | | | ! | | | | | | | +'-------+-----+-----+-----+-----+-------------' '-------------+-----+-----+-----+-----+-------' + | | | | | | ! | | | | | + '------------------------------' '------------------------------' + .---------------. .---------------. + | | | ! | | + .-------+-------+-------! !-------+-------+-------. + ! ! | | ! | ! ! + ! ! !-------! !-------! ! ! + | | | | ! | | | + '-----------------------' '-----------------------' +""", +] + + +DEFAULT_CONFIG = { + "keymaps_includes": [ + "keymap_common.h", + ], + 'filler': "-+.'!:x", + 'separator': "|", + 'default_key_prefix': ["KC_"], +} + + +SECTIONS = [ + 'layout_config', + 'layers', +] + + +# Markdown Parsing + +ONELINE_COMMENT_RE = re.compile(r""" + ^ # comment must be at the start of the line + \s* # arbitrary whitespace + // # start of the comment + (.*) # the comment + $ # until the end of line +""", re.MULTILINE | re.VERBOSE +) + +INLINE_COMMENT_RE = re.compile(r""" + ([\,\"\[\]\{\}\d]) # anythig that might end a expression + \s+ # comment must be preceded by whitespace + // # start of the comment + \s # and succeded by whitespace + (?:[^\"\]\}\{\[]*) # the comment (except things which might be json) + $ # until the end of line +""", re.MULTILINE | re.VERBOSE) + +TRAILING_COMMA_RE = re.compile(r""" + , # the comma + (?:\s*) # arbitrary whitespace + $ # only works if the trailing comma is followed by newline + (\s*) # arbitrary whitespace + ([\]\}]) # end of an array or object +""", re.MULTILINE | re.VERBOSE) + + +def loads(raw_data): + if isinstance(raw_data, bytes): + raw_data = raw_data.decode('utf-8') + + raw_data = ONELINE_COMMENT_RE.sub(r"", raw_data) + raw_data = INLINE_COMMENT_RE.sub(r"\1", raw_data) + raw_data = TRAILING_COMMA_RE.sub(r"\1\2", raw_data) + return json.loads(raw_data) + + +def parse_config(path): + def reset_section(): + section.update({ + 'name': section.get('name', ""), + 'sub_name': "", + 'start_line': -1, + 'end_line': -1, + 'code_lines': [], + }) + + def start_section(line_index, line): + end_section() + if line.startswith("# "): + name = line[2:] + elif line.startswith("## "): + name = line[3:] + else: + name = "" + + name = name.strip().replace(" ", "_").lower() + if name in SECTIONS: + section['name'] = name + else: + section['sub_name'] = name + section['start_line'] = line_index + + def end_section(): + if section['start_line'] >= 0: + if section['name'] == 'layout_config': + config.update(loads("\n".join( + section['code_lines'] + ))) + elif section['sub_name'].startswith('layer'): + layer_name = section['sub_name'] + config['layer_lines'][layer_name] = section['code_lines'] + + reset_section() + + def amend_section(line_index, line): + section['end_line'] = line_index + section['code_lines'].append(line) + + config = DEFAULT_CONFIG.copy() + config.update({ + 'layer_lines': collections.OrderedDict(), + 'macro_ids': {'UM'}, + 'unicode_macros': {}, + }) + + section = {} + reset_section() + + with io.open(path, encoding="utf-8") as fh: + for i, line in enumerate(fh): + if line.startswith("#"): + start_section(i, line) + elif line.startswith(" "): + amend_section(i, line[4:]) + else: + # TODO: maybe parse description + pass + + end_section() + assert 'layout' in config + return config + +# header file parsing + +IF0_RE = re.compile(r""" + ^ + #if 0 + $.*? + #endif +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +COMMENT_RE = re.compile(r""" + /\* + .*? + \*/" +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +def read_header_file(path): + with io.open(path, encoding="utf-8") as fh: + data = fh.read() + data, _ = COMMENT_RE.subn("", data) + data, _ = IF0_RE.subn("", data) + return data + + +def regex_partial(re_str_fmt, flags): + def partial(*args, **kwargs): + re_str = re_str_fmt.format(*args, **kwargs) + return re.compile(re_str, flags) + return partial + + +KEYDEF_REP = regex_partial(r""" + #define + \s + ( + (?:{}) # the prefixes + (?:\w+) # the key name + ) # capture group end +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +ENUM_RE = re.compile(r""" + ( + enum + \s\w+\s + \{ + .*? # the enum content + \} + ; + ) # capture group end +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +ENUM_KEY_REP = regex_partial(r""" + ( + {} # the prefixes + \w+ # the key name + ) # capture group end +""", re.MULTILINE | re.DOTALL | re.VERBOSE) + + +def parse_keydefs(config, data): + prefix_options = "|".join(config['key_prefixes']) + keydef_re = KEYDEF_REP(prefix_options) + enum_key_re = ENUM_KEY_REP(prefix_options) + for match in keydef_re.finditer(data): + yield match.groups()[0] + + for enum_match in ENUM_RE.finditer(data): + enum = enum_match.groups()[0] + for key_match in enum_key_re.finditer(enum): + yield key_match.groups()[0] + + +def parse_valid_keys(config, out_path): + basepath = os.path.abspath(os.path.join(os.path.dirname(out_path))) + dirpaths = [] + subpaths = [] + while len(subpaths) < 6: + path = os.path.join(basepath, *subpaths) + dirpaths.append(path) + dirpaths.append(os.path.join(path, "tmk_core", "common")) + dirpaths.append(os.path.join(path, "quantum")) + subpaths.append('..') + + includes = set(config['keymaps_includes']) + includes.add("keycode.h") + + valid_keycodes = set() + for dirpath, include in it.product(dirpaths, includes): + include_path = os.path.join(dirpath, include) + if os.path.exists(include_path): + header_data = read_header_file(include_path) + valid_keycodes.update( + parse_keydefs(config, header_data) + ) + return valid_keycodes + + +# Keymap Parsing + +def iter_raw_codes(layer_lines, filler, separator): + filler_re = re.compile("[" + filler + " ]") + for line in layer_lines: + line, _ = filler_re.subn("", line.strip()) + if not line: + continue + codes = line.split(separator) + for code in codes[1:-1]: + yield code + + +def iter_indexed_codes(raw_codes, key_indexes): + key_rows = {} + key_indexes_flat = [] + + for row_index, key_indexes in enumerate(key_indexes): + for key_index in key_indexes: + key_rows[key_index] = row_index + key_indexes_flat.extend(key_indexes) + assert len(raw_codes) == len(key_indexes_flat) + for raw_code, key_index in zip(raw_codes, key_indexes_flat): + # we keep track of the row mostly for layout purposes + yield raw_code, key_index, key_rows[key_index] + + +LAYER_CHANGE_RE = re.compile(r""" + (DF|TG|MO)\(\d+\) +""", re.VERBOSE) + + +MACRO_RE = re.compile(r""" + M\(\w+\) +""", re.VERBOSE) + + +UNICODE_RE = re.compile(r""" + U[0-9A-F]{4} +""", re.VERBOSE) + + +NON_CODE = re.compile(r""" + ^[^A-Z0-9_]$ +""", re.VERBOSE) + + +def parse_uni_code(raw_code): + macro_id = "UC_" + ( + unicodedata.name(raw_code) + .replace(" ", "_") + .replace("-", "_") + ) + code = "M({})".format(macro_id) + uc_hex = "{:04X}".format(ord(raw_code)) + return code, macro_id, uc_hex + + +def parse_key_code(raw_code, key_prefixes, valid_keycodes): + if raw_code in valid_keycodes: + return raw_code + + for prefix in key_prefixes: + code = prefix + raw_code + if code in valid_keycodes: + return code + + +def parse_code(raw_code, key_prefixes, valid_keycodes): + if not raw_code: + return 'KC_TRNS', None, None + + if LAYER_CHANGE_RE.match(raw_code): + return raw_code, None, None + + if MACRO_RE.match(raw_code): + macro_id = raw_code[2:-1] + return raw_code, macro_id, None + + if UNICODE_RE.match(raw_code): + hex_code = raw_code[1:] + return parse_uni_code(chr(int(hex_code, 16))) + + if NON_CODE.match(raw_code): + return parse_uni_code(raw_code) + + code = parse_key_code(raw_code, key_prefixes, valid_keycodes) + return code, None, None + + +def parse_keymap(config, key_indexes, layer_lines, valid_keycodes): + keymap = {} + raw_codes = list(iter_raw_codes( + layer_lines, config['filler'], config['separator'] + )) + indexed_codes = iter_indexed_codes(raw_codes, key_indexes) + key_prefixes = config['key_prefixes'] + for raw_code, key_index, row_index in indexed_codes: + code, macro_id, uc_hex = parse_code( + raw_code, key_prefixes, valid_keycodes + ) + # TODO: line numbers for invalid codes + err_msg = "Could not parse key '{}' on row {}".format( + raw_code, row_index + ) + assert code is not None, err_msg + # print(repr(raw_code), repr(code), macro_id, uc_hex) + if macro_id: + config['macro_ids'].add(macro_id) + if uc_hex: + config['unicode_macros'][macro_id] = uc_hex + keymap[key_index] = (code, row_index) + return keymap + + +def parse_keymaps(config, valid_keycodes): + keymaps = collections.OrderedDict() + key_indexes = config.get( + 'key_indexes', KEYBOARD_LAYOUTS[config['layout']] + ) + # TODO: maybe validate key_indexes + + for layer_name, layer_lines, in config['layer_lines'].items(): + keymaps[layer_name] = parse_keymap( + config, key_indexes, layer_lines, valid_keycodes + ) + return keymaps + +# keymap.c output + +USERCODE = """ +// 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 L1: + ergodox_right_led_1_on(); + break; + case L2: + ergodox_right_led_2_on(); + break; + case L3: + ergodox_right_led_3_on(); + break; + case L4: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + break; + case L5: + ergodox_right_led_1_on(); + ergodox_right_led_3_on(); + break; + // case L6: + // ergodox_right_led_2_on(); + // ergodox_right_led_3_on(); + // break; + // case L7: + // ergodox_right_led_1_on(); + // ergodox_right_led_2_on(); + // ergodox_right_led_3_on(); + // break; + default: + ergodox_board_led_off(); + break; + } +}; +""" + +MACROCODE = """ +#define UC_MODE_WIN 0 +#define UC_MODE_LINUX 1 +#define UC_MODE_OSX 2 + +// TODO: allow default mode to be configured +static uint16_t unicode_mode = UC_MODE_WIN; + +uint16_t hextokeycode(uint8_t hex) {{ + if (hex == 0x0) {{ + return KC_P0; + }} + if (hex < 0xA) {{ + return KC_P1 + (hex - 0x1); + }} + return KC_A + (hex - 0xA); +}} + +void unicode_action_function(uint16_t hi, uint16_t lo) {{ + switch (unicode_mode) {{ + case UC_MODE_WIN: + register_code(KC_LALT); + + register_code(KC_PPLS); + unregister_code(KC_PPLS); + + register_code(hextokeycode((hi & 0xF0) >> 4)); + unregister_code(hextokeycode((hi & 0xF0) >> 4)); + register_code(hextokeycode((hi & 0x0F))); + unregister_code(hextokeycode((hi & 0x0F))); + register_code(hextokeycode((lo & 0xF0) >> 4)); + unregister_code(hextokeycode((lo & 0xF0) >> 4)); + register_code(hextokeycode((lo & 0x0F))); + unregister_code(hextokeycode((lo & 0x0F))); + + unregister_code(KC_LALT); + break; + case UC_MODE_LINUX: + register_code(KC_LCTL); + register_code(KC_LSFT); + + register_code(KC_U); + unregister_code(KC_U); + + register_code(hextokeycode((hi & 0xF0) >> 4)); + unregister_code(hextokeycode((hi & 0xF0) >> 4)); + register_code(hextokeycode((hi & 0x0F))); + unregister_code(hextokeycode((hi & 0x0F))); + register_code(hextokeycode((lo & 0xF0) >> 4)); + unregister_code(hextokeycode((lo & 0xF0) >> 4)); + register_code(hextokeycode((lo & 0x0F))); + unregister_code(hextokeycode((lo & 0x0F))); + + unregister_code(KC_LCTL); + unregister_code(KC_LSFT); + break; + case UC_MODE_OSX: + break; + }} +}} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {{ + if (!record->event.pressed) {{ + return MACRO_NONE; + }} + // MACRODOWN only works in this function + switch(id) {{ + case UM: + unicode_mode = (unicode_mode + 1) % 2; + break; +{macro_cases} +{unicode_macro_cases} + default: + break; + }} + return MACRO_NONE; +}}; +""" + + +UNICODE_MACRO_TEMPLATE = """ +case {macro_id}: + unicode_action_function(0x{hi:02x}, 0x{lo:02x}); + break; +""".strip() + + +def unicode_macro_cases(config): + for macro_id, uc_hex in config['unicode_macros'].items(): + hi = int(uc_hex, 16) >> 8 + lo = int(uc_hex, 16) & 0xFF + unimacro_keys = ", ".join( + "T({})".format( + "KP_" + digit if digit.isdigit() else digit + ) for digit in uc_hex + ) + yield UNICODE_MACRO_TEMPLATE.format( + macro_id=macro_id, hi=hi, lo=lo + ) + + +def iter_keymap_lines(keymap, row_indents=None): + col_widths = {} + col = 0 + # first pass, figure out the column widths + prev_row_index = None + for code, row_index in keymap.values(): + if row_index != prev_row_index: + col = 0 + if row_indents: + col = row_indents[row_index] + col_widths[col] = max(len(code), col_widths.get(col, 0)) + prev_row_index = row_index + col += 1 + + # second pass, yield the cell values + col = 0 + prev_row_index = None + for key_index in sorted(keymap): + code, row_index = keymap[key_index] + if row_index != prev_row_index: + col = 0 + yield "\n" + if row_indents: + for indent_col in range(row_indents[row_index]): + pad = " " * (col_widths[indent_col] - 4) + yield (" /*-*/" + pad) + col = row_indents[row_index] + else: + yield pad + yield " {}".format(code) + if key_index < len(keymap) - 1: + yield "," + # This will be yielded on the next iteration when + # we know that we're not at the end of a line. + pad = " " * (col_widths[col] - len(code)) + prev_row_index = row_index + col += 1 + + +def iter_keymap_parts(config, keymaps): + # includes + for include_path in config['keymaps_includes']: + yield '#include "{}"\n'.format(include_path) + + yield "\n" + + # definitions + for i, macro_id in enumerate(sorted(config['macro_ids'])): + yield "#define {} {}\n".format(macro_id, i) + + yield "\n" + + for i, layer_name in enumerate(config['layer_lines']): + yield '#define L{0:<3} {0:<5} // {1}\n'.format(i, layer_name) + + yield "\n" + + # keymaps + yield "const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\n" + + for i, layer_name in enumerate(config['layer_lines']): + # comment + layer_lines = config['layer_lines'][layer_name] + prefixed_lines = " * " + " * ".join(layer_lines) + yield "/*\n{} */\n".format(prefixed_lines) + + # keymap codes + keymap = keymaps[layer_name] + row_indents = ROW_INDENTS.get(config['layout']) + keymap_lines = "".join(iter_keymap_lines(keymap, row_indents)) + yield "[L{0}] = KEYMAP({1}\n),\n".format(i, keymap_lines) + + yield "};\n\n" + + # no idea what this is for + yield "const uint16_t PROGMEM fn_actions[] = {};\n" + + # macros + yield MACROCODE.format( + macro_cases="", + unicode_macro_cases="\n".join(unicode_macro_cases(config)), + ) + + # TODO: dynamically create blinking lights + yield USERCODE + + +def main(argv=sys.argv[1:]): + if not argv or '-h' in argv or '--help' in argv: + print(__doc__) + return 0 + + in_path = os.path.abspath(argv[0]) + if not os.path.exists(in_path): + print("No such file '{}'".format(in_path)) + return 1 + + if len(argv) > 1: + out_path = os.path.abspath(argv[1]) + else: + dirname = os.path.dirname(in_path) + out_path = os.path.join(dirname, "keymap.c") + + config = parse_config(in_path) + valid_keys = parse_valid_keys(config, out_path) + keymaps = parse_keymaps(config, valid_keys) + + with io.open(out_path, mode="w", encoding="utf-8") as fh: + for part in iter_keymap_parts(config, keymaps): + fh.write(part) + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/keyboards/ergodox_ez/util/readme.md b/keyboards/ergodox_ez/util/readme.md new file mode 100644 index 000000000..26c5e5d99 --- /dev/null +++ b/keyboards/ergodox_ez/util/readme.md @@ -0,0 +1,3 @@ +# ErgoDox EZ Utilities + +The Python script in this directory, by [mbarkhau](https://github.com/mbarkhau) allows you to write out a basic ErgoDox EZ keymap using Markdown notation, and then transpile it to C, which you can then compile. It's experimental, but if you're not comfortable using C, it's a nice option. |