From 649b33d7783cf3021928534b7ae127e0a89e8807 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 21 Jun 2016 22:39:54 -0400 Subject: Renames keyboard folder to keyboards, adds couple of tmk's fixes (#432) * fixes from tmk's repo * rename keyboard to keyboards --- keyboards/atomic/Makefile | 73 ++ keyboards/atomic/README.md | 25 + keyboards/atomic/atomic.c | 325 +++++ keyboards/atomic/atomic.h | 49 + keyboards/atomic/config.h | 158 +++ keyboards/atomic/keymaps/abienz.c | 36 + keyboards/atomic/keymaps/default/compiled.hex | 1118 ++++++++++++++++ keyboards/atomic/keymaps/default/keymap.c | 234 ++++ keyboards/atomic/keymaps/michelle.c | 183 +++ keyboards/atomic/keymaps/pvc/Makefile | 15 + keyboards/atomic/keymaps/pvc/compiled.hex | 1700 +++++++++++++++++++++++++ keyboards/atomic/keymaps/pvc/config.h | 166 +++ keyboards/atomic/keymaps/pvc/keymap.c | 578 +++++++++ 13 files changed, 4660 insertions(+) create mode 100644 keyboards/atomic/Makefile create mode 100644 keyboards/atomic/README.md create mode 100644 keyboards/atomic/atomic.c create mode 100644 keyboards/atomic/atomic.h create mode 100644 keyboards/atomic/config.h create mode 100644 keyboards/atomic/keymaps/abienz.c create mode 100644 keyboards/atomic/keymaps/default/compiled.hex create mode 100644 keyboards/atomic/keymaps/default/keymap.c create mode 100644 keyboards/atomic/keymaps/michelle.c create mode 100644 keyboards/atomic/keymaps/pvc/Makefile create mode 100644 keyboards/atomic/keymaps/pvc/compiled.hex create mode 100644 keyboards/atomic/keymaps/pvc/config.h create mode 100644 keyboards/atomic/keymaps/pvc/keymap.c (limited to 'keyboards/atomic') diff --git a/keyboards/atomic/Makefile b/keyboards/atomic/Makefile new file mode 100644 index 0000000000..08e9205cbf --- /dev/null +++ b/keyboards/atomic/Makefile @@ -0,0 +1,73 @@ + + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) +CONSOLE_ENABLE ?= no # Console for debug(+400) +COMMAND_ENABLE ?= yes # Commands for debug and configuration +NKRO_ENABLE ?= no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality +MIDI_ENABLE ?= no # MIDI controls +AUDIO_ENABLE ?= no # Audio output on port C6 +UNICODE_ENABLE ?= no # Unicode +BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../Makefile +endif \ No newline at end of file diff --git a/keyboards/atomic/README.md b/keyboards/atomic/README.md new file mode 100644 index 0000000000..9fe75f572e --- /dev/null +++ b/keyboards/atomic/README.md @@ -0,0 +1,25 @@ +Atomic keyboard firmware +====================== +DIY/Assembled ortholinear 60% keyboard by [Ortholinear Keyboards](http://ortholinearkeyboards.com). + +## Quantum MK Firmware + +For the full Quantum feature list, see [the parent README.md](/README.md). + +## Building + +Download or clone the whole firmware and navigate to the keyboards/atomic folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button. + +Depending on which keymap you would like to use, you will have to compile slightly differently. + +### Default +To build with the default keymap, simply run `make`. + +### Other Keymaps +Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a file in the keymaps folder named `.c` and see keymap document (you can find in top README.md) and existent keymap files. + +To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like: +``` +$ make KEYMAP=[default|jack|] +``` +Keymaps follow the format **__\.c__** and are stored in the `keymaps` folder. diff --git a/keyboards/atomic/atomic.c b/keyboards/atomic/atomic.c new file mode 100644 index 0000000000..fa218a48f3 --- /dev/null +++ b/keyboards/atomic/atomic.c @@ -0,0 +1,325 @@ +#include "atomic.h" + +__attribute__ ((weak)) +void matrix_init_user(void) { + // leave this function blank - it can be defined in a keymap file +}; + +__attribute__ ((weak)) +void matrix_scan_user(void) { + // leave this function blank - it can be defined in a keymap file +} + +__attribute__ ((weak)) +bool process_action_user(keyrecord_t *record) { + // leave this function blank - it can be defined in a keymap file + return true; +} + +__attribute__ ((weak)) +void led_set_user(uint8_t usb_led) { + // leave this function blank - it can be defined in a keymap file +} + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + MCUCR |= (1<= BACKLIGHT_LEVELS ) + { + // Turn on PWM control of PB7 + TCCR1A |= _BV(COM1C1); + + // Set the brightness to max + CHANNEL = 0xFFFF; + } + else + { + // Turn on PWM control of PB7 + TCCR1A |= _BV(COM1C1); + + // Set the brightness + CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); + } + breathing_intensity_default(); +} + + +void breathing_enable(void) +{ + if (get_backlight_level() == 0) + { + breathing_index = 0; + } + else + { + // Set breathing_index to be at the midpoint (brightest point) + breathing_index = 0x20 << breath_speed; + } + + breathing_halt = BREATHING_NO_HALT; + + // Enable breathing interrupt + TIMSK1 |= _BV(OCIE1A); +} + +void breathing_pulse(void) +{ + if (get_backlight_level() == 0) + { + breathing_index = 0; + } + else + { + // Set breathing_index to be at the midpoint + 1 (brightest point) + breathing_index = 0x21 << breath_speed; + } + + breathing_halt = BREATHING_HALT_ON; + + // Enable breathing interrupt + TIMSK1 |= _BV(OCIE1A); +} + +void breathing_disable(void) +{ + // Disable breathing interrupt + TIMSK1 &= ~_BV(OCIE1A); + backlight_set(get_backlight_level()); +} + +void breathing_self_disable(void) +{ + if (get_backlight_level() == 0) + { + breathing_halt = BREATHING_HALT_OFF; + } + else + { + breathing_halt = BREATHING_HALT_ON; + } + + //backlight_set(get_backlight_level()); +} + +void breathing_toggle(void) +{ + if (!is_breathing()) + { + if (get_backlight_level() == 0) + { + breathing_index = 0; + } + else + { + // Set breathing_index to be at the midpoint + 1 (brightest point) + breathing_index = 0x21 << breath_speed; + } + + breathing_halt = BREATHING_NO_HALT; + } + + // Toggle breathing interrupt + TIMSK1 ^= _BV(OCIE1A); + + // Restore backlight level + if (!is_breathing()) + { + backlight_set(get_backlight_level()); + } +} + +bool is_breathing(void) +{ + return (TIMSK1 && _BV(OCIE1A)); +} + +void breathing_intensity_default(void) +{ + //breath_intensity = (uint8_t)((uint16_t)100 * (uint16_t)get_backlight_level() / (uint16_t)BACKLIGHT_LEVELS); + breath_intensity = ((BACKLIGHT_LEVELS - get_backlight_level()) * ((BACKLIGHT_LEVELS + 1) / 2)); +} + +void breathing_intensity_set(uint8_t value) +{ + breath_intensity = value; +} + +void breathing_speed_default(void) +{ + breath_speed = 4; +} + +void breathing_speed_set(uint8_t value) +{ + bool is_breathing_now = is_breathing(); + uint8_t old_breath_speed = breath_speed; + + if (is_breathing_now) + { + // Disable breathing interrupt + TIMSK1 &= ~_BV(OCIE1A); + } + + breath_speed = value; + + if (is_breathing_now) + { + // Adjust index to account for new speed + breathing_index = (( (uint8_t)( (breathing_index) >> old_breath_speed ) ) & 0x3F) << breath_speed; + + // Enable breathing interrupt + TIMSK1 |= _BV(OCIE1A); + } + +} + +void breathing_speed_inc(uint8_t value) +{ + if ((uint16_t)(breath_speed - value) > 10 ) + { + breathing_speed_set(0); + } + else + { + breathing_speed_set(breath_speed - value); + } +} + +void breathing_speed_dec(uint8_t value) +{ + if ((uint16_t)(breath_speed + value) > 10 ) + { + breathing_speed_set(10); + } + else + { + breathing_speed_set(breath_speed + value); + } +} + +void breathing_defaults(void) +{ + breathing_intensity_default(); + breathing_speed_default(); + breathing_halt = BREATHING_NO_HALT; +} + +/* Breathing Sleep LED brighness(PWM On period) table + * (64[steps] * 4[duration]) / 64[PWM periods/s] = 4 second breath cycle + * + * http://www.wolframalpha.com/input/?i=%28sin%28+x%2F64*pi%29**8+*+255%2C+x%3D0+to+63 + * (0..63).each {|x| p ((sin(x/64.0*PI)**8)*255).to_i } + */ +static const uint8_t breathing_table[64] PROGMEM = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 4, 6, 10, + 15, 23, 32, 44, 58, 74, 93, 113, 135, 157, 179, 199, 218, 233, 245, 252, +255, 252, 245, 233, 218, 199, 179, 157, 135, 113, 93, 74, 58, 44, 32, 23, + 15, 10, 6, 4, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +}; + +ISR(TIMER1_COMPA_vect) +{ + // CHANNEL = (pgm_read_byte(&breathing_table[ ( (uint8_t)( (breathing_index++) >> breath_speed ) ) & 0x3F ] )) * breath_intensity; + + + uint8_t local_index = ( (uint8_t)( (breathing_index++) >> breath_speed ) ) & 0x3F; + + if (((breathing_halt == BREATHING_HALT_ON) && (local_index == 0x20)) || ((breathing_halt == BREATHING_HALT_OFF) && (local_index == 0x3F))) + { + // Disable breathing interrupt + TIMSK1 &= ~_BV(OCIE1A); + } + + CHANNEL = (uint16_t)(((uint16_t)pgm_read_byte(&breathing_table[local_index]) * 257)) >> breath_intensity; + +} + + + +#endif \ No newline at end of file diff --git a/keyboards/atomic/atomic.h b/keyboards/atomic/atomic.h new file mode 100644 index 0000000000..901761f514 --- /dev/null +++ b/keyboards/atomic/atomic.h @@ -0,0 +1,49 @@ +#ifndef ATOMIC_H +#define ATOMIC_H + +#include "quantum.h" +#include +#include +#include + +// This a shortcut to help you visually see your layout. +// The following is an example using the Planck MIT layout +// The first section contains all of the arguements +// The second converts the arguments into a two-dimensional array +#define KEYMAP_SEMI_STANDARD( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3C, K3D, K3E, \ + K40, K41, K43, K46, K4A, K4B, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, KC_NO, K3C, K3D, K3E }, \ + { K40, K41, KC_NO, K43, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E } \ +} + +void matrix_init_user(void); +void matrix_scan_user(void); +bool process_action_user(keyrecord_t *record); +void led_set_user(uint8_t usb_led); +void backlight_init_ports(void); + +void breathing_enable(void); +void breathing_pulse(void); +void breathing_disable(void); +void breathing_self_disable(void); +void breathing_toggle(void); +bool is_breathing(void); + + +void breathing_defaults(void); +void breathing_intensity_default(void); +void breathing_speed_default(void); +void breathing_speed_set(uint8_t value); +void breathing_speed_inc(uint8_t value); +void breathing_speed_dec(uint8_t value); + + +#endif \ No newline at end of file diff --git a/keyboards/atomic/config.h b/keyboards/atomic/config.h new file mode 100644 index 0000000000..bf9550e948 --- /dev/null +++ b/keyboards/atomic/config.h @@ -0,0 +1,158 @@ +/* +Copyright 2012 Jun Wako + +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 . +*/ + +#ifndef CONFIG_H +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x6060 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Ortholinear Keyboards +#define PRODUCT The Atomic Keyboard +#define DESCRIPTION A compact ortholinear keyboard + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { D0, D5, B5, B6, C6 } +#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7, D3, D2, D1 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +#define MAGIC_KEY_BOOTLOADER B +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +#endif diff --git a/keyboards/atomic/keymaps/abienz.c b/keyboards/atomic/keymaps/abienz.c new file mode 100644 index 0000000000..589a64dc4e --- /dev/null +++ b/keyboards/atomic/keymaps/abienz.c @@ -0,0 +1,36 @@ +#include "atomic.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = { /* Colemak */ + { KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NO }, + { KC_TAB, CM_Q, CM_W, CM_F, CM_P, CM_G, CM_J, CM_L, CM_U, CM_Y, CM_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL }, + { KC_BSPC, CM_A, CM_R, CM_S, CM_T, CM_D, CM_H, CM_N, CM_E, CM_I, CM_O, KC_QUOT, KC_ENT, KC_NO, KC_PGUP }, + { KC_LSFT, CM_Z, CM_X, CM_C, CM_V, CM_B, CM_K, CM_M, CM_COMM, CM_DOT, CM_SLSH, KC_RSFT, KC_NO, KC_UP, KC_PGDN }, + { KC_LCTL, KC_LGUI, KC_NO, KC_LALT, FUNC(1), KC_SPC, KC_NO, KC_RALT, FUNC(2), KC_RGUI, KC_NO, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT }, + }, + [1] = { /* function */ + { KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, 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_SLEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS }, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MPLY }, + { KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, FUNC(1), KC_TRNS, KC_NO, KC_TRNS, FUNC(2), KC_TRNS, KC_NO, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT }, + } +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(1), + [2] = ACTION_LAYER_MOMENTARY(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 0: + return MACRODOWN(TYPE(KC_T), END); + break; + } + return MACRO_NONE; +}; + diff --git a/keyboards/atomic/keymaps/default/compiled.hex b/keyboards/atomic/keymaps/default/compiled.hex new file mode 100644 index 0000000000..b9bb143ea8 --- /dev/null +++ b/keyboards/atomic/keymaps/default/compiled.hex @@ -0,0 +1,1118 @@ +:100000000C942A030C946E030C946E030C946E03F0 +:100010000C946E030C946E030C946E030C946E039C +:100020000C946E030C946E030C946A0D0C943C0EAD +:100030000C94531B0C946E030C946E030C946E037F +:100040000C946E030C94D6030C946E030C946E0304 +:100050000C946E030C94BB1B0C946E030C946E03F7 +:100060000C946E030C946E030C946E030C946E034C +:100070000C946E030C946E030C946E030C946E033C +:100080000C946E030C946E030C946E030C946E032C +:100090000C946E030C946E030C946E030C946E031C +:1000A0000C946E030C946E030C946E03A90ECB0E8D +:1000B000B90FCB0EB90F100F330FB90F880F9B0F6D +:1000C00085128512B412B412F31213136914691451 +:1000D0001E136914CE13CE1335143E146914631421 +:1000E000DB13DB13DB13DB13DB13DB13DB13DB13A0 +:1000F000DB13DB13DB13DB13DB13DB13DB13DB1390 +:10010000EB13F91300140714111400000000000091 +:100110000000000000010204060A0F17202C3A4AD2 +:100120005D71879DB3C7DAE9F5FCFFFCF5E9DAC735 +:10013000B39D87715D4A3A2C20170F0A060402010D +:100140000000000000000000000035001E001F003D +:100150002000210022002300240025002600270083 +:100160002D002E002A002A002B0014001A0008007F +:10017000150017001C0018000C00120013002F00BF +:10018000300031004C00290004001600070009006F +:100190000A000B000D000E000F0033003400280091 +:1001A00028004B00E1001D001B000600190005009F +:1001B00011001000360037003800E500E50052005D +:1001C0004E000030E000E200E30004512C002C005F +:1001D0000351E700E600E4000551500051004F00D4 +:1001E00035001E001F0020002100220023002400F3 +:1001F0002500260027002D002E002A002A002B00B3 +:1002000014001A00090013000A000D000F00180066 +:100210001C0033002F00300031004C002900040086 +:1002200015001600170007000B00110008000C0055 +:1002300012003400280028004B00E1001D001B00C4 +:100240000600190005000E001000360037003800C7 +:10025000E500E50052004E000030E000E200E3005F +:1002600004512C002C000351E700E600E400055186 +:10027000500051004F0035001E001F0020002100DB +:100280002200230024002500260027002D002E0038 +:100290002A002A002B0034003600370013001C000F +:1002A00009000A00060015000F002F003000310081 +:1002B0004C00290004001200080018000C00070080 +:1002C0000B001700110016003800280028004B0012 +:1002D000E100330014000D000E001B0005001000AB +:1002E0001A0019001D00E500E50052004E00003024 +:1002F000E000E200E30004512C002C000351E70071 +:10030000E600E4000551500051004F0001003A00A2 +:100310003B003C003D003E003F00400041004200E9 +:100320004300440045000100010001001E021F02BD +:100330002002210222022302240225022602270291 +:10034000010001000100490001003A003B003C00AF +:100350003D003E003F002D022E022F0230023102EE +:100360000100010001000100400041004200430083 +:1003700044004500010001000100010001000100EE +:100380000100010001000100010001000100010065 +:100390000100010001000100010001000100010055 +:1003A000010001003A003B003C003D003E003F00E0 +:1003B00040004100420043004400450001000100AC +:1003C00001001E001F002000210022002300240045 +:1003D000250026002700010001000100490001005E +:1003E0003A003B003C003D003E003F002D002E0047 +:1003F0002F00300031000100010001000100400029 +:10040000410042004300440045000100010001009A +:1004100001000100010001000100010001000100D4 +:1004200001000100010001000100010001000100C4 +:10043000010001000100010053003A003B003C00B4 +:100440003D003E003F0040004100420043004400A8 +:100450004500010001004700680069006A006B0068 +:100460006C006D006E006F00700071007200730010 +:10047000480046003900F800F700F600F500FD00DE +:10048000FF00AB00AA00A900AE00010001000100BE +:10049000F900010001000052015202520100010066 +:1004A000010001000100010001000100F000FA005C +:1004B00001000100010001000100F400F40001004E +:1004C0000100010001000100F200F100F300280327 +:1004D0005400680065002000410074006F006D004A +:1004E0006900630020004B006500790062006F0026 +:1004F00061007200640000002C034F007200740061 +:1005000068006F006C0069006E0065006100720099 +:1005100020004B006500790062006F0061007200EE +:10052000640073000000040309040902540003017D +:1005300000A0FA09040000010301010009211101D2 +:1005400000012240000705810308000A0904010098 +:100550000103010200092111010001224D000705DC +:10056000820308000A0904020001030000000921B7 +:10057000110100012236000705830308000A120159 +:10058000100100000008EDFE6060010001020001A2 +:1005900005010980A101850216010026B7001A0194 +:1005A000002AB700751095018100C0050C0901A152 +:1005B000018503160100269C021A01002A9C02757F +:1005C0001095018100C005010902A1010901A100E6 +:1005D00005091901290515002501950575018102F7 +:1005E0009501750381010501093009311581257FC8 +:1005F00095027508810609381581257F95017508D2 +:100600008106050C0A38021581257F950175088140 +:1006100006C0C005010906A101050719E029E71573 +:100620000025019508750181029501750881010574 +:100630000819012905950575019102950175039128 +:10064000010507190029FF150026FF00950675080A +:100650008100C00011241FBECFEFDAE0DEBFCDBFA6 +:1006600004B603FE24C08091F0019091F101A091A5 +:10067000F201B091F3018730904BA740B04BB9F431 +:100680001092F0011092F1011092F2011092F30118 +:1006900014BE84B7877F84BF88E10FB6F894809337 +:1006A0006000109260000FBEE0E0F8E3099511E0F1 +:1006B000A0E0B1E0EEE7F5E402C005900D92A234AF +:1006C000B107D9F711E0A2E4B1E001C01D92A03F4B +:1006D000B107E1F70E94B40A0C94BD220C9400000B +:1006E0000895089581E0089508950C9471030C9481 +:1006F00072030C9474030E94332123E030E0281B22 +:100700003109220F209346010895282F2F988091B8 +:100710008000211108C0877F8093800010928D0097 +:1007200010928C001BC0886080938000233018F0EA +:100730008FEF9FEF0FC083E090E0821B9109880F3D +:10074000991F2FEF3FEFA90102C0569547958A9553 +:10075000E2F7CA0190938D0080938C000C947B0388 +:100760000E947B0384E0809345011092420108952A +:10077000279A2F988FEF9FEF9093870080938600A2 +:100780008AE08093800089E1809381000E949C2010 +:100790000C94B00385B7806885BF85B7806885BF36 +:1007A0000E94B8036E9A769A0C9470031F920F926F +:1007B0000FB60F9211242F933F938F939F93EF9334 +:1007C000FF93E0914301F0914401CF010196909392 +:1007D0004401809343010090450102C0F695E795DE +:1007E0000A94E2F7EF7380914201823019F4E0320B +:1007F00051F404C0813039F4EF3329F480916F0053 +:100800008D7F80936F00F0E0E65FFE4FE49121E082 +:1008100031E0E29FC001E39F900D1124009046015A +:1008200002C0969587950A94E2F790938D00809385 +:100830008C00FF91EF919F918F913F912F910F909D +:100840000FBE0F901F90189561110DC0FC018281A1 +:10085000882331F085EE0E9429110E94F32003C005 +:1008600085EE0E94F11180E090E0089581E0089506 +:100870000C94360408950F931F93CF93DF938C014C +:10088000FC01C081D181CE010E94CD19BE010E9420 +:100890006C07EC01B8010E943804882309F470C188 +:1008A000F8018281882309F45BC080915201811193 +:1008B0001FC0C431F0E7DF0709F00AC10E943A0403 +:1008C00081E0809352010E94851B90935101809397 +:1008D00050011092490110924B0110924A0110925E +:1008E0004D0110924C0110924F0110924E0148C1DF +:1008F00080915001909151010E94911B883C91057B +:1009000070F480914901E82FF0E0EE0FFF1FE65BE5 +:10091000FE4FD183C0838F5F8093490131C1C431C1 +:1009200020E7D20708F024C1C23080E7D80710F5CD +:10093000C11590E7D90709F0DAC0F8018281882350 +:1009400009F4BFC00E94D414FFEF24E38CE0F150FF +:1009500020408040E1F700C000000E94E01B10C171 +:10096000C431F0E7DF0708F0CFC0C23020E7D2077C +:1009700008F49BC0F8018281882309F4A2C00E9478 +:100980003A1C811102C00E941B1C0E944D1C90E069 +:100990009093E1018093E001C230F0E7DF0721F49A +:1009A0008091E00181607AC0C33020E7D20721F452 +:1009B0008091E001826072C0C43080E7D80721F4E2 +:1009C0008091E00184606AC0C53090E7D90719F4CE +:1009D0008091E00127C0C630E0E7DE0721F4809176 +:1009E000E00180615BC0C730F0E7DF0721F4809150 +:1009F000E001806253C0C83020E7D20721F4809123 +:100A0000E00180644BC0C93080E7D80721F48091B1 +:100A1000E001806843C0CA3090E7D90729F480918B +:100A2000E001846088603AC0CB30E0E7DE0721F463 +:100A30008091E0018E7F32C0CC30F0E7DF0721F4F7 +:100A40008091E0018D7F2AC0CD3020E7D20721F4CC +:100A50008091E0018B7F22C0CE3080E7D80719F467 +:100A60008091E0011AC08091E001CF3090E7D90772 +:100A700011F48F7E13C0C031E0E7DE0711F48F7DE3 +:100A80000DC0C131F0E7DF0711F48F7B07C0C23121 +:100A9000D04711F48F7702C08B7F877F8093E0016E +:100AA0008091E0010E94511C6BC0C11580E7D807FE +:100AB00041F0C130D047F1F081E08093470180934D +:100AC0004801C801DF91CF911F910F910C947703DA +:100AD000C43120E7D20708F04BC0C23080E7D80706 +:100AE00008F048CFC11590E7D90709F42BCFC130E2 +:100AF000D04711F7F8018281882319F38091CF0143 +:100B000081608093CF013CC0C333E0E7DE07A1F4EE +:100B1000F8018281882321F01092470182E017C0FA +:100B200080914701811106C086E20E94291186E268 +:100B30000E94F11182E019C0C433D04709F0BCCF44 +:100B4000F8018281882331F01092480180E20E94EE +:100B5000401216C080914801811106C087E20E94B0 +:100B6000291187E20E94F11180E20E94471208C019 +:100B7000C333F0E7DF0761F2C433D04709F39CCFFA +:100B800080E0DF91CF911F910F9108950C94CA03DB +:100B90000C9475032FE0729FF00111243BE4839FB6 +:100BA000E00DF11D1124E60FF11DEE0FFF1FE65BB6 +:100BB000FE4F859194910E947E07811540E5940730 +:100BC00008F047C0811520E4920708F013C1883E61 +:100BD000910520F5803E910508F07CC1883A910589 +:100BE00078F4853A910508F0A5C08130910509F4A3 +:100BF00071C108F42EC18430910508F06BC129C180 +:100C00008B3B910508F4A1C0803C910508F421C1FB +:100C1000FC01EE0FFF1FE653F040E6C0811530E205 +:100C2000930758F4811541E0940708F053C1803FC1 +:100C3000910508F40EC190650895811520E392078F +:100C400008F0D5C0FC01FF70EE0FFF1FE65BFE4F02 +:100C5000CBC0811535E5930708F043C0811544E505 +:100C6000940708F0DEC0811522E5920708F581158A +:100C700031E5930708F0C1C0482F437021E030E010 +:100C800002C0220F331F4A95E2F73C68AC0164E0D2 +:100C9000569547956A95E1F74370342B8F7086958A +:100CA000869540E2849FC0011124822B932B0895E6 +:100CB000282F26952695AC0143705527811593451D +:100CC00008F0A0C080E2289F9001112481E090E00C +:100CD00002C0880F991F4A95E2F7822B932B9C68DC +:100CE00008958F3240E7940790F48F3120E7920700 +:100CF00008F0A2C0811536E5930708F497C09C015F +:100D000030562115304108F0A4C09F7093C0803345 +:100D100020E7920709F497C008F492C0813340E7B6 +:100D2000940709F493C08233904709F092C080E0A1 +:100D300093ED0895853A910509F48EC0863A9105A0 +:100D400009F08DC082E890E40895883A910509F48D +:100D500089C0893A910509F488C08A3A910509F455 +:100D600087C08B3A910509F486C08C3A910509F445 +:100D700085C08D3A910509F484C0803B910509F442 +:100D800083C08E3A910509F482C08F3A910509F427 +:100D900081C0813B910509F480C0823B910509F433 +:100DA0007FC0833B910509F47EC0843B910509F423 +:100DB0007DC0853B910509F47CC0863B910509F413 +:100DC0007BC0873B910509F47AC0883B910509F403 +:100DD00079C0893B910509F478C08A3B910509F4F3 +:100DE00077C080E094E408958591949108959927BF +:100DF000906C08959F70906A0895982F8827816F4E +:100E0000906A089590E2299F9001112481E090E07A +:100E100002C0880F991F4A95E2F7822B932B9A689C +:100E20000895982F8827846F906A08958F71992765 +:100E3000982F8827906208958F519047946D089558 +:100E400080E091ED089580E090ED089580E092EDCE +:100E5000089580E090E0089581E890E4089583E8A3 +:100E600090E4089582EE94E4089589EE94E4089560 +:100E70008AEE94E4089585EB94E4089586EB94E477 +:100E8000089587EB94E408958CEC94E408958DEC38 +:100E900094E4089583E895E408958AE895E4089534 +:100EA00082E995E4089584E995E4089581E296E461 +:100EB000089583E296E4089584E296E4089585E235 +:100EC00096E4089586E296E4089587E296E408950C +:100ED0008AE296E4089508959FE0799FF001112435 +:100EE0009BE4899FE00DF11D1124E60FF11DEE0F2B +:100EF000FF1FE65BFE4F859194910895823891051E +:100F000049F1B0F48133910509F458C048F48932AD +:100F1000910509F44EC08A32910509F454C0089530 +:100F20008533910509F440C08933910599F00895FE +:100F3000833E910529F138F4803E910591F0823E7F +:100F40009105A1F00895863E9105F9F0873E91053F +:100F500031F108952091E00120FD3AC021FD38C013 +:100F600008958091E00180FD35C032C08091E0019C +:100F700082FF32C08091E00184FD30C083EE39C031 +:100F80008091E00182FD28C0F5CF8091E00183FFD0 +:100F900027C08091E00184FD21C087EE2AC08091A6 +:100FA000E00183FD1DC0F5CF8091E00185FD1AC0F1 +:100FB0001BC08091E00185FD17C014C08091E00145 +:100FC00086FD14C015C08091E00186FD11C00EC0E1 +:100FD00080EE0FC089E30DC082EE0BC080E009C037 +:100FE00086EE07C089E205C085E303C08AE201C03E +:100FF00081E390E008950C947903E82FF0E0ED5D33 +:10100000FE4F8081E82FEF70F0E082958F7021E035 +:1010100030E0A90102C0440F551F8A95E2F740A3B2 +:1010200008950F931F93CF93DF93C4E0D0E001E0C6 +:1010300010E0FE01ED5DFE4F8081E82FEF70F0E0E3 +:1010400021A182958F70A80102C0440F551F8A9577 +:10105000E2F7CA01822B81A38C2F0E94FD07219702 +:1010600040F78EE090E061E070E0FC01EC5EFE4F46 +:101070002081E22FEF70F0E042A122952F70DB017A +:1010800002C0AA0FBB1F2A95E2F79D01242B22A3C1 +:10109000019758F7DF91CF911F910F9108950F930A +:1010A0001F93CF93DF9385B7806885BF85B780682E +:1010B00085BFC4E0D0E001E010E0FE01ED5DFE4F31 +:1010C0008081E82FEF70F0E021A182958F70A80158 +:1010D00002C0440F551F8A95E2F7CA01822B81A3F3 +:1010E0008C2F0E94FD07219740F78EE090E061E091 +:1010F00070E0FC01EC5EFE4F2081E22FEF70F0E02B +:1011000042A122952F70DB0102C0AA0FBB1F2A95B6 +:10111000E2F79D01242B22A3019758F7DF91CF918D +:101120001F910F910C94C605EF92FF920F931F939E +:10113000CF93DF930DE511E0C4E0EE24E394F12CAE +:10114000D5E08C2F0E94FD078EE090E040E050E05B +:10115000FC01EC5EFE4F6081E62FEF70F0E020A115 +:1011600030E062956F7002C0359527956A95E2F779 +:1011700020FD09C09701082E02C0220F331F0A94D8 +:10118000E2F7422B532B019718F7F80192918291C5 +:101190008F018417950721F051834083D09300017C +:1011A0008C2F0E94FD07C15060F68091000187FDE1 +:1011B0001FC08150809300018F3F39F08FE99FE07D +:1011C0000197F1F700C0000013C080E090E0FC013F +:1011D000E35AFE4FDC01AD5ABE4F18962D913C915B +:1011E0001997318720870297863FEFEF9E0779F79F +:1011F0000E94C80581E0DF91CF911F910F91FF9070 +:10120000EF900895E82FF0E0EE0FFF1FE35AFE4F36 +:1012100080819181089508950F931F93CF9307E6DE +:1012200011E0C0E0F801929182918F010E94FE1AB4 +:10123000C80FF1E00D351F07A9F78C2FCF911F9133 +:101240000F91089580916F010895CF93DF9300D09F +:101250001F92CDB7DEB79C018091E601843019F56D +:1012600093E099833B832A839093E9008FEF9091D9 +:10127000E800815095FD06C095ED9A95F1F70000C4 +:101280008111F5CF8091E80085FF0DC040E050E06E +:1012900063E070E0CE0101960E945A0B8091E80055 +:1012A0008E778093E8000F900F900F90DF91CF9191 +:1012B0000895CF93DF9300D01F92CDB7DEB7209172 +:1012C000E601243021F522E029839B838A8383E091 +:1012D0008093E9008FEF9091E800815095FD06C062 +:1012E00095ED9A95F1F700008111F5CF8091E80016 +:1012F00085FF0DC040E050E063E070E0CE01019654 +:101300000E945A0B8091E8008E778093E8000F903E +:101310000F900F90DF91CF9108952091E601243036 +:10132000F1F422E02093E9002FEF3091E800215002 +:1013300035FD06C035ED3A95F1F700002111F5CFE6 +:101340002091E80025FF0BC040E050E065E070E030 +:101350000E945A0B8091E8008E778093E8000895F0 +:10136000CF93DF932091E601243039F521E02093DB +:10137000E9002FEF3091E800215035FD06C035ED32 +:101380003A95F1F700002111F5CF2091E80025FFF3 +:1013900014C0EC0140E050E068E070E00E945A0B9D +:1013A0008091E8008E778093E80088E0FE01A7E650 +:1013B000B1E001900D928A95E1F7DF91CF91089508 +:1013C0008091E501811109C00E94EF0C0E944C0D33 +:1013D0008091E20084608093E20008951092E5011C +:1013E0000895089508950C94481B42E061EC81E053 +:1013F0000E94690C42E061EC82E00E94690C42E0CC +:1014000061EC83E00C94690C8091E801833009F46D +:1014100053C030F4813071F0823009F48CC00895EB +:101420008A3009F478C08B3009F45EC0893009F045 +:101430009AC020C08091E701813A09F094C0809160 +:10144000E800877F8093E8008091EB019091EC01A8 +:10145000892B21F468E087E691E003C060E080E03A +:1014600090E070E00E94A50B8091E8008B7780935C +:10147000E80008958091E701813209F074C08091FD +:10148000EB019091EC01892B09F06DC08091E8008F +:10149000877F8093E8008091E80082FD05C08091FD +:1014A000E6018111F8CF5FC08091F10080936F0158 +:1014B0008091E8008B7753C08091E701813A09F071 +:1014C00052C08091EB019091EC01892B09F04BC047 +:1014D0008091E800877F8093E8008091E80080FF9A +:1014E000FCCF80910B0136C08091E7018132D9F5A4 +:1014F0008091EB019091EC01892BA9F58091E80096 +:10150000877F8093E8000E949E0C8091E901809380 +:101510000B010C94D4148091E701813221F5809164 +:10152000E800877F8093E8000E949E0C8091EA018A +:101530008093700108958091E701813AA1F4809130 +:10154000E800877F8093E8008091E80080FFFCCF6F +:10155000809170018093F1008091E8008E778093F4 +:10156000E8000C949E0C089584B7877F84BF88E1BF +:101570000FB6F89480936000109260000FBE80E870 +:1015800080936100109261000E9441100E94EF0C54 +:101590000E944C0D8091E20084608093E200789478 +:1015A0000E94D20F0E94431081E091E00E94ED0F53 +:1015B0008091E601853069F40E940A1B8091E40164 +:1015C0008823B1F30E94371B882391F30E94440BB8 +:1015D000EFCF0E944B10ECCF292F3327233031055A +:1015E000C9F064F42130310581F02230310509F071 +:1015F00043C084E590E02AE235E042C02132310563 +:10160000F1F02232310541F137C082E190E02EE75E +:1016100035E036C099278130910541F0823091053F +:1016200041F0892B49F5E6E2F5E005C0E8EFF4E08A +:1016300002C0EEECF4E0849190E09F0121C06330A1 +:10164000D8F4E62FF0E0EE0FFF1FEF5CFE4F208195 +:10165000318189E090E014C0633070F470E0FB01E8 +:10166000EE0FFF1FE55DFE4F20813181FB01E85D3C +:10167000FE4F808190E004C080E090E020E030E008 +:10168000FA0131832083089580E189BD82E189BD1B +:1016900009B400FEFDCF8091D8008F7D8093D800E3 +:1016A0008091E00082608093E0008091E00081FD05 +:1016B000FCCF0895CF92DF92EF92FF920F931F938A +:1016C000CF93DF93EC018B016A010E94BD0C811165 +:1016D00033C0C114D10439F0F60180819181081B17 +:1016E000190BC80FD91FE12CF12C0115110519F1A7 +:1016F0008091E80085FD16C08091E8008E77809388 +:10170000E800C114D10449F0F60180819181E80E0E +:10171000F91EF182E08285E00FC00E94BD0C882393 +:1017200021F30AC089918093F10001501109FFEF64 +:10173000EF1AFF0ADACF80E0DF91CF911F910F916E +:10174000FF90EF90DF90CF9008952091ED013091C0 +:10175000EE012617370748F06115710539F420911D +:10176000E8002E772093E80001C0B90140E0611540 +:101770007105A9F12091E601222309F443C0253027 +:1017800009F442C02091E80023FD40C02091E80008 +:1017900022FD32C02091E80020FFE9CF4091F30004 +:1017A0002091F20030E0342BFC01CF01611571056E +:1017B00059F02830310540F481918093F100615057 +:1017C00071092F5F3F4FF1CF41E02830310509F01B +:1017D00040E02091E8002E772093E800C8CF411127 +:1017E000C9CF0AC08091E601882361F0853061F09D +:1017F0008091E80083FD0AC08091E80082FFF2CF6B +:1018000080E0089582E0089583E0089581E00895DE +:101810002091ED013091EE012617370748F0611550 +:10182000710539F42091E8002E772093E80001C07B +:10183000B901FC0120E06115710591F18091E6018B +:10184000882309F440C0853009F43FC08091E80046 +:1018500083FD3DC08091E80082FD2FC08091E800AB +:1018600080FFE9CF2091F3008091F20090E0922B6D +:101870006115710559F08830910540F42491209349 +:10188000F1003196615071090196F2CF21E008977D +:1018900009F020E08091E8008E778093E800CBCFBC +:1018A0002111CCCF0AC08091E601882361F08530F8 +:1018B00061F08091E80083FD0AC08091E80082FF1A +:1018C000F2CF80E0089582E0089583E0089581E0FA +:1018D0000895982F973058F59093E900981739F0AC +:1018E0007091EC002091ED005091F00003C0242F86 +:1018F000762F50E021FF19C03091EB003E7F3093EE +:10190000EB003091ED003D7F3093ED003091EB0026 +:1019100031603093EB007093EC002093ED00509316 +:10192000F0002091EE0027FF07C09F5FD3CF8F709C +:101930008093E90081E0089580E008958091E701B7 +:1019400087FF11C08091E80082FD05C08091E6010B +:101950008111F8CF11C08091E8008B770BC0809186 +:10196000E601882349F08091E80080FFF8CF80915C +:10197000E8008E778093E80008952091E40030918C +:10198000E50095E64091EC00842F817040FF22C075 +:101990008091E80080FD1CC08091E601882391F0D1 +:1019A000853091F08091EB0085FD10C04091E400FE +:1019B0005091E5004217530729F39A01915011F70E +:1019C00084E0089582E0089583E0089581E0089519 +:1019D00080E008954091E80042FFDECF08950E9424 +:1019E0005D0D0E94650DE0EEF0E0808181608083F6 +:1019F000E8EDF0E080818F77808319BCA7EDB0E03F +:101A00008C918E7F8C9380818F7E80831092E501F4 +:101A100008950F931F93CF93DF930E945D0D0E9453 +:101A2000650DC8EDD0E088818F77888388818068D4 +:101A3000888388818F7D888319BC1092E60110927B +:101A4000E2011092E4011092E30100EE10E0F801CF +:101A500080818B7F808388818160888342E060E021 +:101A600080E00E94690CE1EEF0E080818E7F80834F +:101A7000E2EEF0E0808181608083808188608083F5 +:101A8000F80180818E7F8083888180618883DF91E7 +:101A9000CF911F910F910895E8EDF0E080818F7E46 +:101AA0008083E7EDF0E080818160808384E082BF05 +:101AB00081E08093E5010C94090DE8EDF0E0808170 +:101AC0008E7F80831092E20008951092DA001092C7 +:101AD000E10008951F920F920FB60F9211242F93D9 +:101AE0003F934F935F936F937F938F939F93AF93A6 +:101AF000BF93EF93FF938091E10082FF0BC0809131 +:101B0000E20082FF07C08091E1008B7F8093E100BB +:101B10000E94D10F8091DA0080FF1FC08091D80011 +:101B200080FF1BC08091DA008E7F8093DA00809165 +:101B3000D90080FF0DC080E189BD82E189BD09B473 +:101B400000FEFDCF81E08093E6010E94E00905C020 +:101B500019BC1092E6010E94EE098091E10080FF1D +:101B600019C08091E20080FF15C08091E2008E7F55 +:101B70008093E2008091E20080618093E200809196 +:101B8000D80080628093D80019BC85E08093E6017C +:101B90000E94F2098091E10084FF30C08091E20050 +:101BA00084FF2CC080E189BD82E189BD09B400FEBB +:101BB000FDCF8091D8008F7D8093D8008091E10087 +:101BC0008F7E8093E1008091E2008F7E8093E2001F +:101BD0008091E20081608093E2008091E20188239D +:101BE00011F084E007C08091E30087FD02C081E02E +:101BF00001C083E08093E6010E94F3098091E10037 +:101C000083FF29C08091E20083FF25C08091E1001D +:101C1000877F8093E10082E08093E6011092E201E9 +:101C20008091E1008E7F8093E1008091E2008E7FC1 +:101C30008093E2008091E20080618093E20042E0C4 +:101C400060E080E00E94690C8091F00088608093E1 +:101C5000F0000E94F109FF91EF91BF91AF919F9128 +:101C60008F917F916F915F914F913F912F910F9045 +:101C70000FBE0F901F9018951F920F920FB60F92E4 +:101C800011242F933F934F935F936F937F938F9381 +:101C90009F93AF93BF93CF93DF93EF93FF93C09145 +:101CA000E900CF708091EC00D82FD17080FDD0E892 +:101CB0001092E9008091F000877F8093F000789483 +:101CC0000E94800E1092E9008091F000886080935D +:101CD000F000CD2BCF70C093E900FF91EF91DF9121 +:101CE000CF91BF91AF919F918F917F916F915F91B4 +:101CF0004F913F912F910F900FBE0F901F9018950D +:101D00001F93CF93DF93CDB7DEB7AA970FB6F894A2 +:101D1000DEBF0FBECDBFE7EEF1E088E08E0F909101 +:101D2000F10091938E13FBCF0E94040A8091E8008A +:101D300083FF1FC18091E7019091E801492F50E096 +:101D40004A30510508F015C1FA01EA5AFF4F0C94C8 +:101D50006D22803881F0823809F00BC18091EB014F +:101D60008F708093E9008091EB0085FB882780F9D4 +:101D70001092E90006C08091E3019091E401911175 +:101D800082609091E800977F9093E8008093F10043 +:101D90001092F100C8C0282F2D7F09F0EAC08823D7 +:101DA00019F0823061F0E5C08091E901813009F0DD +:101DB000E0C0933009F080E08093E4012BC0809173 +:101DC000E901811127C08091EB018F7009F4D1C026 +:101DD0008093E9002091EB0020FF1CC0933021F498 +:101DE0008091EB00806214C09091EB009061909321 +:101DF000EB0021E030E0A90102C0440F551F8A9595 +:101E0000E2F74093EA001092EA008091EB008860CC +:101E10008093EB001092E9008091E800877F86C0F4 +:101E20008111A7C01091E9011F778091E3008078AC +:101E3000812B8093E3008091E800877F8093E80006 +:101E40000E949E0C8091E80080FFFCCF8091E3000F +:101E500080688093E300111102C082E001C083E03A +:101E60008093E60186C08058823008F082C080915D +:101E7000E9019091EA018C3D53E0950779F583E003 +:101E80008A838AE289834FB7F894DE01139620E0B3 +:101E90003EE051E2E32FF0E050935700E49120FF41 +:101EA00003C0E295EF703F5FEF708E2F90E0EA3055 +:101EB00010F0C79601C0C0968D939D932F5F24317B +:101EC00049F74FBF8091E800877F8093E8006AE27E +:101ED00070E0CE0101960E94A50B14C0AE014F5FC9 +:101EE0005F4F6091EB010E94EC0ABC01009709F47E +:101EF00040C09091E800977F9093E80089819A8193 +:101F00000E94080C8091E8008B778093E80031C034 +:101F1000803879F58091E800877F8093E800809190 +:101F2000E2018093F1008091E8008E778093E800D1 +:101F30000E949E0C1EC081111CC09091E90192303C +:101F4000C0F48091E800877F8093E8009093E201DD +:101F50000E949E0C8091E201811106C08091E300F5 +:101F600087FD02C081E001C084E08093E6010E9409 +:101F7000F5098091E80083FF0AC08091E800877F1F +:101F80008093E8008091EB0080628093EB00AA963A +:101F90000FB6F894DEBF0FBECDBFDF91CF911F917A +:101FA00008950895CF938091E6018823A1F0C09110 +:101FB000E900CF709091EC00892F817090FD80E84E +:101FC000C82B1092E9008091E80083FD0E94800EEA +:101FD000CF70C093E900CF910895909376018093DC +:101FE00075010895E0917501F0917601309721F027 +:101FF0000190F081E02D099480E00895E091750151 +:10200000F0917601309721F00280F381E02D099460 +:102010000895E0917501F0917601309721F00480E8 +:10202000F581E02D09940895209173013091740198 +:102030008217930771F09093740180937301E0917C +:102040007501F0917601309721F00680F781E02D3F +:1020500009940895209171013091720182179307BC +:1020600071F09093720180937101E0917501F0918C +:102070007601309721F00084F185E02D09940895D0 +:1020800008950C9440100E947C1B0E944F080E94EF +:10209000021C0C949C205F926F927F928F929F9271 +:1020A000AF92BF92CF92DF92EF92FF920F931F9366 +:1020B000CF93DF9300D000D01F92CDB7DEB70E9440 +:1020C000940892E8C92E91E0D92E04E010E0AA24E9 +:1020D000A394B12C502E802F0E9402094C01F601CE +:1020E000729062906F016826792661147104A1F4E0 +:1020F0000150110978F78FEF89838A831B820E9430 +:10210000851B8160782F9D838C8349815A816B81E7 +:102110008D810E94FB1038C08091CF0181FD0E940B +:102120000B092EE030E07501022E02C0EE0CFF1C00 +:102130000A94E2F7C70186219721892B09F12983A7 +:102140005A828E209F2091E0892809F490E09B8399 +:102150000E94851B8160782F9D838C8349815A81E1 +:102160006B818D810E94FB10000F111FF801E85850 +:10217000FE4F80819181E826F926F182E08204C039 +:102180002150310980F6B4CF0E94D91D10917701FA +:102190000E94F20F1817D1F00E94F20F809377017E +:1021A0000F900F900F900F900F90DF91CF911F9194 +:1021B0000F91FF90EF90DF90CF90BF90AF909F90E6 +:1021C0008F907F906F905F900C94FB070F900F9013 +:1021D0000F900F900F90DF91CF911F910F91FF9073 +:1021E000EF90DF90CF90BF90AF909F908F907F90B7 +:1021F0006F905F900895CF93DF93CDB7DEB72B97A5 +:102200000FB6F894DEBF0FBECDBF4F8358876987E6 +:102210007A878B87DE01119686E0FD0111928A95FF +:10222000E9F785E0FE01379601900D928A95E1F776 +:1022300049815A816B817C818D819E810E947217B8 +:102240002B960FB6F894DEBF0FBECDBFDF91CF91B6 +:102250000895CF93882309F4C2C0C82F823859F457 +:102260000E94F20F81FDBBC089E30E944C1A0E94BC +:10227000CF1A89E30CC0833879F40E94F20F80FDF5 +:10228000AEC083E50E944C1A0E94CF1A83E50E94DB +:10229000691ACF910C94CF1A843859F40E94F20F26 +:1022A00082FD9DC087E40E944C1A0E94CF1A87E4E9 +:1022B000EECF8CEF8C0F813A48F48C2F0E940420D3 +:1022C00081118DC08C2F0E944C1AE3CF80E28C0FBD +:1022D000883048F4C77081E001C0880FCA95EAF7DA +:1022E0000E94881AD6CF8BE58C0F833078F4C53ADC +:1022F00029F0C63A31F083E890E005C081E890E02B +:1023000002C082E890E0CF910C94141088E58C0F05 +:10231000833108F064C0C83A39F1C93A41F1CA3A88 +:1023200049F1CB3A51F1CC3A59F1CD3A61F1C03B88 +:1023300069F1CE3A71F1CF3A79F1C13B81F1C23BFB +:1023400089F1C33B91F1C43B99F1C53BA1F1C63B77 +:10235000A9F1C73BB1F1C83BB9F1C93BC1F1CA3BD7 +:10236000C9F180E090E038C082EE90E035C089EE9F +:1023700090E032C08AEE90E02FC085EB90E02CC058 +:1023800086EB90E029C087EB90E026C08CEC90E0D3 +:1023900023C08DEC90E020C083E891E01DC08AE866 +:1023A00091E01AC082E991E017C084E991E014C07D +:1023B00081E292E011C083E292E00EC084E292E0FA +:1023C0000BC085E292E008C086E292E005C087E299 +:1023D00092E002C08AE292E0CF910C942A10CF9151 +:1023E0000895882309F44BC0823859F40E94F20FF3 +:1023F00081FF45C089E30E944C1A0E94CF1A89E3ED +:102400000CC0833871F40E94F20F80FF38C083E55E +:102410000E944C1A0E94CF1A83E50E94691A0C94FC +:10242000CF1A843859F40E94F20F82FF28C087E443 +:102430000E944C1A0E94CF1A87E4EFCF9CEF980FAE +:10244000913A58F390E2980F983050F4877091E0E9 +:1024500001C0990F8A95EAF7892F0E948E1ADFCF63 +:102460009BE5980F933020F480E090E00C941410DA +:10247000885A833120F480E090E00C942A1008956B +:10248000882321F00E94881A0C94CF1A089588237B +:1024900021F00E948E1A0C94CF1A08957F928F9289 +:1024A0009F92AF92BF92CF92DF92EF92FF920F93E3 +:1024B0001F93CF93DF931F92CDB7DEB77C01C62E5B +:1024C000772EFC01058102950F70128111110E9477 +:1024D000A51A0E94451A882379F0112369F080E239 +:1024E0008C0D883048F082E00E942E1A0E94451A16 +:1024F00091E0D82ED92601C0D12CE72DE295EF70BE +:10250000F0E0E05AFF4F0C946D22872D807F072D5D +:102510000F70882311F00295007F112389F00023AA +:1025200009F499C180E28C0D883020F4802F0E943C +:10253000881A03C0802F0E94981A0E94CF1A8BC15C +:102540008C2D0E94F111002309F4C3C180E28C0D8F +:10255000883020F4802F0E948E1A03C0802F0E94A2 +:102560009E1A0E94CF1AB5C1872D807F972D9F702C +:10257000803211F4892F03C0892F8295807FCC206F +:1025800021F0F1E0CF16A1F01DC0112339F0002396 +:1025900019F1013009F50E94B81A9BC1002319F006 +:1025A000013009F496C189830E94BB1A898110C148 +:1025B000112321F0063008F08CC10EC0053008F060 +:1025C00088C106C1112359F0002331F0F70195812C +:1025D00090FF41C19F7095830E9440127AC10023F1 +:1025E00009F4F6C03EC1872D86958695837090E0EC +:1025F000009719F0019761F06CC1112321F08C2D27 +:10260000972D937002C080E090E00E94141061C189 +:10261000112321F08C2D972D937002C080E090E063 +:102620000E942A1056C18C2D112319F00E94E11C22 +:1026300002C00E94491D0E94CE1D4BC1872D837090 +:1026400009F052C0111145C18C2D82958695877075 +:10265000880F880F9C2D9F70892E912CA12CB12C56 +:10266000082E04C0880C991CAA1CBB1C0A94D2F723 +:10267000C4FE14C00FE010E020E030E0B901A80172 +:1026800004C0440F551F661F771F8A95D2F7CB01F0 +:10269000BA01609570958095909503C060E070E0F8 +:1026A000CB01272D26952695237030E02230310569 +:1026B00069F02330310589F0682979298A299B2915 +:1026C0002130310571F00E94BA1803C168297929B7 +:1026D0008A299B290E94D618FCC00E94BA18C501FD +:1026E000B4010E949E18F5C0112319F0872D817046 +:1026F00001C08695882309F4ECC08C2D82958695BF +:102700008770880F880F9C2D9F70892E912CA12C8B +:10271000B12C082E04C0880C991CAA1CBB1C0A945E +:10272000D2F7C4FE14C00FE010E020E030E0B901A1 +:10273000A80104C0440F551F661F771F8A95D2F762 +:10274000CB01BA01609570958095909503C060E0CB +:1027500070E0CB01272D269526952370422F50E05F +:102760004230510569F04330510589F068297929D3 +:102770008A299B294130510571F00E949419A9C002 +:10278000682979298A299B290E94B019A2C00E9430 +:102790009419C501B4010E9478199BC08C2D90E05A +:1027A000FC01E05EF109E531F10508F050C0E059A7 +:1027B000FF4F0C946D220C2D0F70872D8F711123FC +:1027C00021F00E941119802F07CF0E943219802F0B +:1027D0000E9447127EC0112341F0053008F079C0F5 +:1027E000872D8F710E94571974C0063008F071C090 +:1027F000F7CF112339F0872D8F710E94111969C00D +:102800001123C9F3872D8F710E94321962C01123E1 +:1028100029F0872D8F710E94FC185BC00E94F2186E +:1028200058C0112351F0172D1F71812F0E941119CB +:1028300063E0812F0E94251A4CC081E00E942E1A6D +:10284000023008F446C082E00E942E1A42C01123D2 +:1028500031F0002381F28C2D0E9429113AC000230F +:1028600089F28C2D0E94F11134C0472D4F706C2DD0 +:10287000C7010E9424040E9416182BC0111129C000 +:10288000472D4F7050E042305105B9F04CF44115DE +:10289000510581F041305105E1F40E94C42019C076 +:1028A0004330510569F04430510599F48C2D0E9454 +:1028B00016210FC00E94AD200CC00E94E02009C06C +:1028C0000E94F32006C0472D4F706C2DC7010E9457 +:1028D0006B07DD20F9F00E94211A80FD1BC0F70173 +:1028E00012820E941B1A0E941119C7010E9499149A +:1028F0000E941B1A0F90DF91CF911F910F91FF90B3 +:10290000EF90DF90CF90BF90AF909F908F907F908F +:102910000C9432190F90DF91CF911F910F91FF907E +:10292000EF90DF90CF90BF90AF909F908F907F906F +:1029300008950F931F93CF93DF93EC0188819981C2 +:102940002B813C81232BB9F09F3F11F48F3F99F0ED +:10295000CE010E943B04882371F0688179818A81CD +:102960000E94171A8C010E94CC190E949318B8017A +:10297000CE010E944E12DF91CF911F910F910895C9 +:102980000E94A51A0E94B51A0E947A1A0E94CF1AB4 +:102990000E947F1E0E94CE1D80E090E00E941410D5 +:1029A00080E090E00C942A100E94951A0C94C014B8 +:1029B0000E940C1A292F22952F7030E02C303105FF +:1029C0004CF42A3031056CF42250310922303105A3 +:1029D000A8F407C02C30310569F02F30310551F0D3 +:1029E0000DC0803F69F018F4803E40F409C0843F78 +:1029F00029F406C093FB882780F9089580E00895A4 +:102A000081E00895CF93DF9300D000D01F92CDB71F +:102A1000DEB70F900F900F900F900F90DF91CF9136 +:102A20000895CF93DF9300D000D000D0CDB7DEB7AC +:102A300026960FB6F894DEBF0FBECDBFDF91CF91C3 +:102A400008951F93CF93DF93C091820116E0809188 +:102A50008301C81799F0D0E01C9FF0011D9FF00D75 +:102A60001124EC57FE4F4081518162817381848132 +:102A700095810E9411152196C770E9CFDF91CF9102 +:102A80001F9108954091B4015091B5016091B60134 +:102A90007091B7018091B8019091B9010C94111512 +:102AA0008091B90182958F7009F054C08091B60170 +:102AB000882309F44FC080918201A0918301609125 +:102AC000B4017091B5014091B7015091B801B6E0E1 +:102AD0008A1709F43FC090E041155105C1F17F3FCD +:102AE00011F46F3FA1F1B89FF001B99FF00D1124CF +:102AF000EC57FE4F218172132AC02081621327C038 +:102B00002281211124C0238134812417350710F438 +:102B100021503109241B350B283C3105C0F420918C +:102B2000B9012F7020612093B90126E0289FF001A0 +:102B3000299FF00D1124E757FE4F80818F7080612F +:102B4000808384EB91E00E9499140C9421150196E6 +:102B50008770BECF0895CF92DF92EF92FF920F93CE +:102B60001F93CF93DF93CDB7DEB762970FB6F8947C +:102B7000DEBF0FBECDBF8C0185E0F801DE011D96E2 +:102B800001900D928A95E1F7D8014C9111965C91D4 +:102B9000119712966C9112971396CD90DC90149722 +:102BA0003091B4017091B5018091B7019091B80155 +:102BB000009709F46BC17F3F19F43F3F09F466C1E8 +:102BC000E090B601EE2009F4C0C02091B901C8160A +:102BD000D90628F0F601E81BF90BCF0104C0809557 +:102BE00090958C0D9D1DFF24F394883C910578F001 +:102BF000F12C207F09F0C6C07C2DD98AC88A89892A +:102C00000E94021584EB91E00E949914B1C0822FBA +:102C1000807F09F046C0751314C0341312C06111CF +:102C200010C02F7020612093B9010E94421584EBDF +:102C300091E00E9499148091B901D80115968C9366 +:102C40002EC0CD2819F15F3F11F44F3FF9F0F62E59 +:102C500061111CC0809182012091830136E08217AE +:102C600009F45AC090E0389FF001399FF00D11240B +:102C7000EC57FE4F7181571306C07081471303C094 +:102C80007281711103C001968770E9CFF62E662319 +:102C900009F418C18091B90181608093B901F12CC8 +:102CA00011C1751308C0341306C0611104C08091AE +:102CB000B901D801C3C04D875E878D859E856A8B1B +:102CC0000E94D8146A898823E1F16623D1F120910A +:102CD000B901822F82958F7090E0029774F08091F5 +:102CE000B4019091B50198878F831986DB86CA86D7 +:102CF0002C87CE0107960E94991486E0F801A4EB78 +:102D0000B1E001900D928A95E1F70E9450150E9462 +:102D10004215FF24F394D6C04D875E878D859E852E +:102D20000E940C1A292F22952F7030E02230310595 +:102D30000CF0BCC09F7009F0B6C0805E883008F40B +:102D4000C1C0C8010E949914E4CFC816D90608F47E +:102D500053C0F601E81BF90BCF01883C910508F43C +:102D600050C0F12C7C2DD98AC88A89890E9402150D +:102D7000E4EBF1E086E0DF011D928A95E9F70E941D +:102D80004215A0C0751314C0341312C0611110C0D5 +:102D90008091B901F8018583C8010E94991486E0E9 +:102DA000E4EBF1E0DF011D928A95E9F7FE2C8AC081 +:102DB0004D875E878D859E856A8B0E94D8146A89AF +:102DC000882309F4BECF662309F4BBCF2091B90153 +:102DD000822F82958F7090E002970CF48ECF8091B5 +:102DE000B4019091B5019A8389831B82DD82CC82E4 +:102DF0002E83CE0101967FCF809590958C0D9D1DE1 +:102E0000ACCFF62E662309F49CCF75132EC0341375 +:102E10002CC02091B90120FD1FC0822F82958F7098 +:102E2000D9F0D80115962C9315978F3049F08F5F04 +:102E3000982F9295907F822F8F70892B15968C9367 +:102E4000C8010E94991486E0F801A4EBB1E001905A +:102E50000D928A95E1F793CF86E0F801A4EBB1E0FB +:102E600001900D928A95E1F72DC04D875E878D8583 +:102E70009E850E94D814811140CF8091B901816054 +:102E80008093B901C8010E9499141CC0662309F4FB +:102E900058CF4D875E878D859E850E94D8148823E4 +:102EA00009F44FCF2ACF811148CF0CC0243031050F +:102EB0000CF047CF9F7009F440CFF8019581907FC7 +:102EC00009F03BCF8F2D62960FB6F894DEBF0FBE90 +:102ED000CDBFDF91CF911F910F91FF90EF90DF90C9 +:102EE000CF9008951F93CF93DF93CDB7DEB72C9784 +:102EF0000FB6F894DEBF0FBECDBF4F8358876987EA +:102F00007A878B879C87CE0107960E94AB15882312 +:102F100069F08F8198852A853B85232BF1F19F3FAE +:102F200009F063C08F3F09F060C037C086E0FE0142 +:102F30003796DE01119601900D928A95E1F76F8127 +:102F40007885EA85FB85309741F17F3F11F46F3F2B +:102F500021F12091830130E0C90101968770992702 +:102F60004091820150E08417950709F447C06983B6 +:102F70007A83FD83EC8396E0929FD001939FB00DFE +:102F80001124AC57BE4FFE01319601900D929A95D7 +:102F9000E1F7809383010E94211516E08091820160 +:102FA000909183018917C1F1189FC00111248C579A +:102FB0009E4F0E94AB15882379F1E09182011E9FFC +:102FC000F0011124EC57FE4F4081518162817381E1 +:102FD000848195810E9411158091820190E0019673 +:102FE0008770992780938201D9CF4F815885698551 +:102FF0007A858B859C850E941115CFCF0E94D414B1 +:103000001092830110928201E4EBF1E086E0DF018F +:103010001D928A95E9F7C1CF2C960FB6F894DEBFC2 +:103020000FBECDBFDF91CF911F910895EF92FF9218 +:103030000F931F93CF93DF938C01009709F46CC01B +:10304000F12CEE24E394E8012196F8018491843771 +:1030500040F4843008F051C0813081F0823019F1A1 +:103060005BC0853709F444C0A8F19CE7980F9037FE +:1030700008F052C08F770E94F11141C00E5F1F4FC0 +:10308000FE01C49180E28C0F883048F4C7708E2D09 +:1030900001C0880FCA95EAF70E94A81A14C08C2FA5 +:1030A0000E9429112DC00E5F1F4FFE01C49180E2C6 +:1030B0008C0F883058F4C7708E2D01C0880FCA95C8 +:1030C000EAF70E94AE1A0E94CF1A1AC08C2F0E94F3 +:1030D000F11116C00E5F1F4FFE01C491CC2381F089 +:1030E0008FE99FE00197F1F700C00000C150F6CFD3 +:1030F0000E5F1F4FFE01F49003C00E9429118E0144 +:103100008F2D882309F49FCFEFE9FFE03197F1F786 +:1031100000C000008150F5CFDF91CF911F910F913A +:10312000FF90EF90089508956093BE017093BF01E2 +:103130008093C0019093C1010C94C0140F931F930E +:103140000091BE011091BF012091C0013091C101D9 +:10315000DC01CB01802B912BA22BB32B8093BE01E2 +:103160009093BF01A093C001B093C1011F910F9133 +:103170000C94C0140F931F930091BE011091BF01D6 +:103180002091C0013091C101DC01CB01802391234A +:10319000A223B3238093BE019093BF01A093C001EB +:1031A000B093C1011F910F910C94C0140F931F9302 +:1031B0000091BE011091BF012091C0013091C10169 +:1031C000DC01CB0180279127A227B3278093BE0182 +:1031D0009093BF01A093C001B093C1011F910F91C3 +:1031E0000C94C0141092BA011092BB011092BC0151 +:1031F0001092BD010C94C01441E050E060E070E01A +:1032000004C0440F551F661F771F8A95D2F740935D +:10321000BA015093BB016093BC017093BD010C9443 +:10322000C01441E050E060E070E004C0440F551F5E +:10323000661F771F8A95D2F78091BA019091BB01E2 +:10324000A091BC01B091BD01482B592B6A2B7B2B5F +:103250004093BA015093BB016093BC017093BD01D0 +:103260000C94C01441E050E060E070E004C0440FF2 +:10327000551F661F771F8A95D2F740955095609528 +:1032800070958091BA019091BB01A091BC01B09161 +:10329000BD01482359236A237B234093BA015093ED +:1032A000BB016093BC017093BD010C94C01441E05C +:1032B00050E060E070E004C0440F551F661F771FA8 +:1032C0008A95D2F78091BA019091BB01A091BC017F +:1032D000B091BD01482759276A277B274093BA013F +:1032E0005093BB016093BC017093BD010C94C0145A +:1032F0000F931F930091BA011091BB012091BC0163 +:103300003091BD01DC01CB01802B912BA22BB32B83 +:103310008093BA019093BB01A093BC01B093BD010F +:103320001F910F910C94C0140F931F930091BA0139 +:103330001091BB012091BC013091BD01DC01CB019A +:1033400080239123A223B3238093BA019093BB01DE +:10335000A093BC01B093BD011F910F910C94C014B8 +:103360000F931F930091BA011091BB012091BC01F2 +:103370003091BD01DC01CB0180279127A227B32723 +:103380008093BA019093BB01A093BC01B093BD019F +:103390001F910F910C94C0140895CF92DF92EF9279 +:1033A000FF920F931F93CF93DF938C01C090BE01C8 +:1033B000D090BF01E090C001F090C1018091BA01AE +:1033C0009091BB01A091BC01B091BD01C82AD92A3E +:1033D000EA2AFB2ACFE1D0E0D701C6010C2E04C0B7 +:1033E000B695A795979587950A94D2F780FF06C062 +:1033F000B8018C2F0E94CA05019721F4219760F72C +:1034000080E001C08C2FDF91CF911F910F91FF9031 +:10341000EF90DF90CF900895CF93DF93EC010E945F +:10342000CD19BE010E94CA05DF91CF910895CB014D +:103430000E940C1A08958091C20185958595859505 +:1034400008958091C2018770089598E0899F900146 +:103450001124262B2093C2010C9411192091C20132 +:10346000809582238093C201982F977069F430E091 +:10347000482F552747FD50952417350729F0859586 +:10348000859585950C94321908959091C201977095 +:1034900081E009F480E0089520910C0130910D0144 +:1034A000F90132969FEF40E05191581789F09F3F04 +:1034B00019F4511101C0942F4F5F4630A9F79F3F77 +:1034C00039F0F901E90FF11D97FDFA95828308950E +:1034D000089520910C0130910D01F9013296285F79 +:1034E0003F4F9081981301C010823196E217F30785 +:1034F000C1F7089581E090E0E0910C01F0910D0199 +:10350000E80FF91F1082019688309105A9F70895F8 +:103510009091CE01892B8093CE0108958095909152 +:10352000CE0189238093CE0108951092CE01089593 +:103530009091CD01892B8093CD0108958095909134 +:10354000CD0189238093CD0108951092CD01089576 +:103550009091CC01892B8093CC0108958095909116 +:10356000CC0189238093CC0108951092CC01089559 +:103570008093C30108951092C301089580910C01B6 +:1035800090910D01FC0131969C01285F3F4F80E036 +:10359000919191118F5FE217F307D1F70895E091B0 +:1035A0000C01F0910D018091CE018083E0910C011E +:1035B000F0910D0190818091CD01892B8083E09164 +:1035C0000C01F0910D0190818091CC01892B8083B9 +:1035D0008091C301882361F0E0910C01F0910D010D +:1035E0009081892B80830E94BE1A81111092C301A1 +:1035F00080910C0190910D010C94FE0F20E000973A +:1036000039F0AC0141505109842395232F5FF7CF46 +:10361000822F08958091E601843039F11092D00113 +:1036200020E488E190E00FB6F894A89580936000BC +:103630000FBE2093600080E00E94850380E00E941E +:10364000FB0783B7817F846083BF83B7816083BFBB +:103650007894889583B78E7F83BF88E10FB6F894FE +:1036600080936000109260000FBE0895089580E07E +:103670000E9485030E9411080E9494080E94361B34 +:103680000E940C0991E0811101C090E0892F0895FA +:103690000E94D41480E00E9485030E949C200E9416 +:1036A000F20F0C94FB071F920F920FB60F9211248A +:1036B0008F939F93AF93BF938091D001811113C0DB +:1036C0008091D1019091D201A091D301B091D40108 +:1036D0004196A