summaryrefslogtreecommitdiff
path: root/keyboards/retro_refit
diff options
context:
space:
mode:
authorJack Humbert <jack.humb@gmail.com>2016-06-21 22:39:54 -0400
committerGitHub <noreply@github.com>2016-06-21 22:39:54 -0400
commit649b33d7783cf3021928534b7ae127e0a89e8807 (patch)
treec2b5e0cf8ff4aa2918e3b88ab75dbdb071cc0a1d /keyboards/retro_refit
parent464c8e274f993d3571fe5ea5e836fe55a3912ffe (diff)
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/retro_refit')
-rw-r--r--keyboards/retro_refit/Makefile74
-rw-r--r--keyboards/retro_refit/README.md24
-rw-r--r--keyboards/retro_refit/config.h123
-rw-r--r--keyboards/retro_refit/keymaps/default/compiled.hex1423
-rw-r--r--keyboards/retro_refit/keymaps/default/keymap.c33
-rw-r--r--keyboards/retro_refit/retro_refit.c68
-rw-r--r--keyboards/retro_refit/retro_refit.h45
7 files changed, 1790 insertions, 0 deletions
diff --git a/keyboards/retro_refit/Makefile b/keyboards/retro_refit/Makefile
new file mode 100644
index 0000000000..2dd8cc5f79
--- /dev/null
+++ b/keyboards/retro_refit/Makefile
@@ -0,0 +1,74 @@
+
+
+# MCU name
+#MCU = at90usb1287
+MCU = atmega32u4
+
+# Processor frequency.
+# This will define a symbol, F_CPU, in all source code files equal to the
+# processor frequency in Hz. You can then use this symbol in your source code to
+# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
+# automatically to create a 32-bit value in your source code.
+#
+# This will be an integer division of F_USB below, as it is sourced by
+# F_USB after it has run through any CPU prescalers. Note that this value
+# does not *change* the processor frequency - it should merely be updated to
+# reflect the processor speed set externally so that the code can use accurate
+# software delays.
+F_CPU = 16000000
+
+
+#
+# LUFA specific
+#
+# Target architecture (see library "Board Types" documentation).
+ARCH = AVR8
+
+# Input clock frequency.
+# This will define a symbol, F_USB, in all source code files equal to the
+# input clock frequency (before any prescaling is performed) in Hz. This value may
+# differ from F_CPU if prescaling is used on the latter, and is required as the
+# raw input clock is fed directly to the PLL sections of the AVR for high speed
+# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
+# at the end, this will be done automatically to create a 32-bit value in your
+# source code.
+#
+# If no clock division is performed on the input clock inside the AVR (via the
+# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
+F_USB = $(F_CPU)
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+
+# Boot Section Size in *bytes*
+# Teensy halfKay 512
+# Teensy++ halfKay 1024
+# Atmel DFU loader 4096
+# LUFA bootloader 4096
+# USBaspLoader 2048
+OPT_DEFS += -DBOOTLOADER_SIZE=512
+
+
+# Build Options
+# comment out to disable the options.
+#
+BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450)
+CONSOLE_ENABLE ?= yes # Console for debug(+400)
+COMMAND_ENABLE ?= yes # Commands for debug and configuration
+KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend
+NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality
+# MIDI_ENABLE ?= YES # MIDI controls
+# UNICODE_ENABLE ?= YES # Unicode
+# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID
+
+
+ifndef QUANTUM_DIR
+ include ../../Makefile
+endif
+
diff --git a/keyboards/retro_refit/README.md b/keyboards/retro_refit/README.md
new file mode 100644
index 0000000000..c64e1b8066
--- /dev/null
+++ b/keyboards/retro_refit/README.md
@@ -0,0 +1,24 @@
+retro_refit keyboard firmware
+======================
+
+## Quantum MK Firmware
+
+For the full Quantum feature list, see [the parent README.md](/README.md).
+
+## Building
+
+Download or clone the whole firmware and navigate to the keyboards/retro_refit folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file.
+
+Depending on which keymap you would like to use, you will have to compile slightly differently.
+
+### Default
+To build with the default keymap, simply run `make`.
+
+### Other Keymaps
+Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `<name>.c` and see keymap document (you can find in top README.md) and existent keymap files.
+
+To build the firmware binary hex file with a keymap just do `make` with `KEYMAP` option like:
+```
+$ make KEYMAP=[default|jack|<name>]
+```
+Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder. \ No newline at end of file
diff --git a/keyboards/retro_refit/config.h b/keyboards/retro_refit/config.h
new file mode 100644
index 0000000000..f2194e550c
--- /dev/null
+++ b/keyboards/retro_refit/config.h
@@ -0,0 +1,123 @@
+/*
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef CONFIG_H
+#define CONFIG_H
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x6060
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Nobody
+#define PRODUCT retro_refit
+#define DESCRIPTION Retro Refit
+
+/* key matrix size */
+#define MATRIX_ROWS 11
+#define MATRIX_COLS 8
+
+// See note in retro_refit.h for an explanation of how this matrix is wired up
+#define MATRIX_ROW_PINS { D4, D7, B4, B5, B6, F7, F6, F5, F4, F1, F0 }
+#define MATRIX_COL_PINS { B0, B1, B2, B3, D2, D3, C7, D5 }
+#define UNUSED_PINS
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+#define BACKLIGHT_LEVELS 0
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCING_DELAY 5
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+
+/* Force NKRO Mode - If forced on, must be disabled via magic key (default = LShift+RShift+N) */
+#define FORCE_NKRO
+
+/*
+ * Magic key options
+ * These options 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
+
+/* remap magic keys */
+//#define MAGIC_KEY_HELP1 H
+//#define MAGIC_KEY_HELP2 SLASH
+//#define MAGIC_KEY_DEBUG D
+//#define MAGIC_KEY_DEBUG_MATRIX X
+//#define MAGIC_KEY_DEBUG_KBD K
+//#define MAGIC_KEY_DEBUG_MOUSE M
+//#define MAGIC_KEY_VERSION V
+//#define MAGIC_KEY_STATUS S
+//#define MAGIC_KEY_CONSOLE C
+//#define MAGIC_KEY_LAYER0_ALT1 ESC
+//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
+//#define MAGIC_KEY_LAYER0 0
+//#define MAGIC_KEY_LAYER1 1
+//#define MAGIC_KEY_LAYER2 2
+//#define MAGIC_KEY_LAYER3 3
+//#define MAGIC_KEY_LAYER4 4
+//#define MAGIC_KEY_LAYER5 5
+//#define MAGIC_KEY_LAYER6 6
+//#define MAGIC_KEY_LAYER7 7
+//#define MAGIC_KEY_LAYER8 8
+//#define MAGIC_KEY_LAYER9 9
+//#define MAGIC_KEY_BOOTLOADER PAUSE
+#define MAGIC_KEY_LOCK BSLS
+//#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/retro_refit/keymaps/default/compiled.hex b/keyboards/retro_refit/keymaps/default/compiled.hex
new file mode 100644
index 0000000000..870787585c
--- /dev/null
+++ b/keyboards/retro_refit/keymaps/default/compiled.hex
@@ -0,0 +1,1423 @@
+:100000000C94A8060C94EC060C94EC060C94EC06EC
+:100010000C94EC060C94EC060C94EC060C94EC0698
+:100020000C94EC060C94EC060C94D4110C94A612CF
+:100030000C9472200C94EC060C94EC060C94EC06D8
+:100040000C94EC060C94EC060C94EC060C94EC0668
+:100050000C94EC060C94DA200C94EC060C94EC0650
+:100060000C94EC060C94EC060C94EC060C94EC0648
+:100070000C94EC060C94EC060C94EC060C94EC0638
+:100080000C94EC060C94EC060C94EC060C94EC0628
+:100090000C94EC060C94EC060C94EC060C94EC0618
+:1000A0000C94EC060C94EC060C94EC06131335132C
+:1000B0002314351323147A139D132314F2130514F8
+:1000C0003317331762176217A117C117F118F11808
+:1000D000CC17F1187C187C18E218F118F118EB18FD
+:1000E0008918891889188918891889188918891808
+:1000F00089188918891889188918891889188918F8
+:100100009918A718AE18B518BF183F003E003D005B
+:100110003C003B003A00E3002C00E0004600E50014
+:1001200038003700360010001100050019000600E5
+:100130001B001D00E200E1003500340033000F0019
+:100140000E000D000B000A00090007001600040055
+:100150003100280030002F00130012000C0018009E
+:100160001C001700150008001A0014002B002A00BC
+:100170002E002D0027002600250024002300220049
+:10018000210020001F001E002900000000000000C8
+:10019000000000004C0049004E0051004D000000DE
+:1001A0004F004800500000004B0052004A0047003A
+:1001B000530043004200410040000A444542554775
+:1001C0003A20656E61626C65642E0A005374617436
+:1001D00065206F6620726F772025583A20253031D0
+:1001E00036620A0048756D616E2D726561646162E8
+:1001F0006C65206D61747269782073746174653AFE
+:100200000D0A004465626F756E63696E67206465F0
+:100210006C61792072656D61696E696E673A20253F
+:10022000580A005B735D004B6579626F61726420F0
+:1002300073746172742E0A005B575D005B535D003E
+:100240005B525D005B445D005B435D001803720020
+:100250006500740072006F005F0072006500660048
+:100260006900740000000E034E006F0062006F0012
+:100270006400790000000403090409028D000501EF
+:1002800000A0FA0904000001030101000921110185
+:100290000001223F000705810308000A090401004C
+:1002A0000103010200092111010001224D0007058F
+:1002B000820308000A09040200010300000009216A
+:1002C000110100012236000705830308000A090412
+:1002D0000300020300000009211101000122200097
+:1002E0000705840320000107050403200001090419
+:1002F000040001030000000921110100012239005E
+:10030000070585031000011201100100000008ED2F
+:10031000FE606001000102000105010906A101055E
+:100320000719E029E71500250195087501810205E7
+:10033000081901290595057501910295017503912B
+:1003400001050719002977150025019578750181A8
+:1003500002C00631FF0974A1010975150025FF953A
+:1003600020750881020976150025FF9520750891F2
+:1003700002C005010980A101850216010026B7000F
+:100380001A01002AB700751095018100C0050C09FB
+:1003900001A1018503160100269C021A01002A9C76
+:1003A00002751095018100C005010902A101090132
+:1003B000A1000509190129051500250195057501FB
+:1003C000810295017503810105010930093115810B
+:1003D000257F95027508810609381581257F9501CD
+:1003E00075088106050C0A38021581257F9501756F
+:1003F000088106C0C005010906A101050719E02909
+:10040000E7150025019508750181029501750881A0
+:1004100001050819012905950575019102950175D8
+:100420000391010507190029FF150025FF950675A1
+:10043000088100C00A002530325820006B657962BF
+:100440006F6172645F7265706F72743A20004B6501
+:1004500079626F617264204C4544732073746174D7
+:10046000653A2025780A0064656C5F6B65795F6288
+:1004700069743A2063616E27742064656C3A2025A4
+:100480003032580A006164645F6B65795F62697439
+:100490003A2063616E2774206164643A202530320B
+:1004A000580A00646F6E652E0A00626F6F676D6197
+:1004B000676963207363616E3A202E2E2E20002917
+:1004C0000A002575002F002575005D2800256400B1
+:1004D0002000256400200025640020002564007CA5
+:1004E0000025303258006D6F7573656B6579205B40
+:1004F00062746E7C782079207620685D2872657041
+:100500002F61636C293A205B006D6B5F77686565CE
+:100510006C5F74696D655F746F5F6D6178203D20FD
+:1005200025640A006D6B5F776865656C5F6D617847
+:100530005F7370656564203D2025640A006D6B5F04
+:1005400074696D655F746F5F6D6178203D2025640F
+:100550000A006D6B5F6D61785F7370656564203D47
+:100560002025640A006D6B5F696E74657276616C3C
+:10057000203D2025640A006D6B5F64656C61792005
+:100580003D2025640A006D6B5F776865656C5F745C
+:10059000696D655F746F5F6D6178203D2025640A29
+:1005A000006D6B5F776865656C5F6D61785F737018
+:1005B000656564203D2025640A006D6B5F74696D7C
+:1005C000655F746F5F6D6178203D2025640A006D62
+:1005D0006B5F6D61785F7370656564203D20256495
+:1005E0000A006D6B5F696E74657276616C203D20E8
+:1005F00025640A006D6B5F64656C6179203D202580
+:10060000640A000A00257500363A20776865656C33
+:100610005F74696D655F746F5F6D61783A20000A81
+:1006200000257500353A20776865656C5F6D6178E7
+:100630005F73706565643A20000A00257500343ADE
+:100640002074696D655F746F5F6D61783A20000A90
+:1006500000257500333A206D61785F7370656564BD
+:100660003A20000A00257500323A20696E746572DE
+:1006700076616C286D73293A20000A0025750031D7
+:100680003A2064656C6179282A31306D73293A20EB
+:10069000000A092D2056616C756573202D0A004DE6
+:1006A0003E004D25643E20003F0073657420646564
+:1006B0006661756C740A00433E2000776865726558
+:1006C0002064656C74613A20637572736F723D25A6
+:1006D000642C20776865656C3D25640A5365652048
+:1006E000687474703A2F2F656E2E77696B69706528
+:1006F0006469612E6F72672F77696B692F4D6F7513
+:1007000073655F6B6579730A000A092D204D6F755B
+:1007100073656B6579202D0A4553432F713A097132
+:100720007569740A313A0964656C6179282A313037
+:100730006D73290A323A09696E74657276616C28A4
+:100740006D73290A333A096D61785F73706565646A
+:100750000A343A0974696D655F746F5F6D61780A78
+:10076000353A09776865656C5F6D61785F737065B0
+:1007700065640A363A09776865656C5F74696D650A
+:100780005F746F5F6D61780A0A703A097072696E02
+:10079000742076616C7565730A643A097365742018
+:1007A00064656661756C74730A75703A092B310A59
+:1007B000646F776E3A092D310A706775703A092BAC
+:1007C00031300A7067646F776E3A092D31300A0A4A
+:1007D0007370656564203D2064656C7461202A2017
+:1007E0006D61785F7370656564202A20287265707A
+:1007F000656174202F2074696D655F746F5F6D6132
+:1008000078290A003F004D3E2000433E20004C2541
+:10081000640A0074696D65725F636F756E743A2067
+:100820002530346C580A006B6579626F6172645FC1
+:100830006E6B726F3A2025580A006B6579626F61A2
+:1008400072645F69646C653A2025580A006B6579AB
+:10085000626F6172645F70726F746F636F6C3A2065
+:1008600025580A00686F73745F6B6579626F6172F7
+:10087000645F6C65647328293A2025580A000A09C8
+:100880002D20537461747573202D0A004743433A39
+:1008900020342E392E32204156522D4C4942433AB3
+:1008A00020312E382E31204156525F415243483A72
+:1008B00020617672350A004F5054494F4E533A200A
+:1008C0004C55464120424F4F544D41474943204DDE
+:1008D0004F5553454B45592045585452414B455966
+:1008E00020434F4E534F4C4520434F4D4D414E44B6
+:1008F000204E4B524F203531320A004255494C446C
+:100900003A20313637313865662D64697274792042
+:100910002832333A35333A3330204A756E20203945
+:100920002032303136290A005649443A2030784680
+:10093000454544284E6F626F647929205049443AF6
+:100940002030783630363028726574726F5F726589
+:1009500066697429205645523A203078303030315B
+:100960000A00444553433A20526574726F20526521
+:100970006669740A000A092D2056657273696F6EE4
+:10098000202D0A000A092D20436F6E736F6C6520BD
+:100990002D0A4553432F713A09717569740A6D3AEE
+:1009A000096D6F7573656B65790A000A092D204D15
+:1009B00061676963202D0A443A09446562756720BE
+:1009C0004D65737361676520546F67676C650A587E
+:1009D0003A094D6174726978204465627567204DEB
+:1009E0006F646520546F67676C65202D2053686FB6
+:1009F00077206B65797072657373657320696E20FB
+:100A00006D617472697820677269640A4B3A094BA8
+:100A10006579626F61726420446562756720546F06
+:100A200067676C65202D2053686F77206B65797040
+:100A300072657373207265706F72740A4D3A09445F
+:100A400065627567204D6F75736520546F67676CBD
+:100A5000650A563A0956657273696F6E0A533A0908
+:100A60005374617475730A433A094163746976611A
+:100A7000746520436F6E736F6C65204D6F64650AFB
+:100A800046312D4631303A095377697463682074D2
+:100A90006F204C6179657220302D39202846313025
+:100AA000203D204C30290A302D393A09537769749A
+:100AB000636820746F204C6179657220302D390A8B
+:100AC0004553433A0953776974636820746F204C27
+:100AD0006179657220302028616C7465726E617472
+:100AE00065206B65792031290A47524156453A09FC
+:100AF00053776974636820746F204C617965722044
+:100B0000302028616C7465726E617465206B657944
+:100B10002032290A50415553453A094A756D7020D3
+:100B2000746F20426F6F746C6F616465722028521D
+:100B300065736574290A453A095072696E742045D7
+:100B40004550524F4D2053657474696E67730A4E59
+:100B50003A094E4B524F20546F67676C650A000A82
+:100B6000002575002E6E6B726F3A20000A00257505
+:100B7000002E737761705F6261636B736C61736881
+:100B80005F6261636B73706163653A20000A0025E0
+:100B900075002E737761705F67726176655F65734C
+:100BA000633A20000A002575002E6E6F5F67756935
+:100BB0003A20000A002575002E737761705F72611C
+:100BC0006C745F726775693A20000A002575002E03
+:100BD000737761705F6C616C745F6C6775693A20E4
+:100BE000000A002575002E636170736C6F636B5F84
+:100BF000746F5F636F6E74726F6C3A20000A002529
+:100C000075002E737761705F636F6E74726F6C5FC7
+:100C1000636170736C6F636B3A20000A0025303299
+:100C200058006B65796D61705F636F6E6669672EE2
+:100C30007261773A20000A002575002E6D6F75737A
+:100C4000653A20000A002575002E6B6579626F6198
+:100C500072643A20000A002575002E6D6174726975
+:100C6000783A20000A002575002E656E61626C6579
+:100C70003A20000A00253032580064656275675FCB
+:100C8000636F6E6669672E7261773A20000A0025ED
+:100C9000750064656661756C745F6C617965723A44
+:100CA00020003F004E4B524F3A206F66660A004EBE
+:100CB0004B524F3A206F6E0A000A6D6F7573653A9A
+:100CC000206F66660A000A6D6F7573653A206F6E55
+:100CD0000A000A6B6579626F6172643A206F66661A
+:100CE0000A000A6B6579626F6172643A206F6E0A5E
+:100CF000000A6D61747269783A206F66660A000AAC
+:100D00006D61747269783A206F6E0A000A646562D8
+:100D100075673A206F66660A000A64656275673A0D
+:100D2000206F6E0A000A0A4A756D70696E6720743A
+:100D30006F20626F6F746C6F616465722E2E2E204F
+:100D400000433E20006565636F6E6669673A0A007E
+:100D500011241FBECFEFDAE0DEBFCDBF04B603FE25
+:100D600024C080910B0290910C02A0910D02B091D1
+:100D70000E028730904BA740B04BB9F410920B0293
+:100D800010920C0210920D0210920E0214BE84B743
+:100D9000877F84BF88E10FB6F8948093600010923B
+:100DA00060000FBEE0E0FFE3099511E0A0E0B1E0D4
+:100DB000E8E8F8E502C005900D92AC34B107D9F728
+:100DC00012E0ACE4B1E001C01D92AB30B107E1F735
+:100DD0000E940E0F0C94422C0C940000FF93EF9392
+:100DE000E0914C01F0914D01309709F00995EF9198
+:100DF000FF910895FC018591803011F0EFDFFBCF6A
+:100E00000895FF27E0E230E247FF0CC0419597FFCD
+:100E100009C0EDE26095709580959095611D711DFA
+:100E2000811D911D27FF02C0219530E350E2AA27C2
+:100E3000660F771F881F991FAA1FA41710F0A41B05
+:100E400063955A95A9F7AA3008F0A95FA05DAF9302
+:100E5000F395611571058105910541F7ED3211F4A6
+:100E6000EF93F395F21718F43F93F395FBCF8F911F
+:100E7000B5DFFA95E1F70895E991F9918591803010
+:100E800021F0853219F0AADFF9CF089520E0E89427
+:100E900055915532C1F3503311F4689455915A333A
+:100EA00048F4505390F3220F022E220F220F200DF0
+:100EB000250FF4CF0EF4219589919991533619F3AA
+:100EC000533729F1533559F1BC0188279927E89404
+:100ED0005C3621F48991999168945591543639F48E
+:100EE00046EF7EF077FF0DC08FEF9FEF0AC05537BA
+:100EF0004AE039F0583540E121F0523642E009F03D
+:100F00000895FF93EF937DDFEF91FF91B7CFFF93AC
+:100F1000EF93FC0181918030B9F360DFFBCFFF9349
+:100F2000EF9368DFF1CFDF93CF93CDB7DEB7259690
+:100F3000A3DFCF91DF91089508950895569A5E9AA0
+:100F40000C949C0781FF02C0509A01C05098589899
+:100F500080FF02C0519A01C05198599882FF02C087
+:100F60003E9A01C03E9846980C949D0761110BC0B3
+:100F7000FC018281882321F085EE0E94D71503C0F1
+:100F800085EE0E949F1680E090E00895089581E02C
+:100F9000089581E008950C94C90708950F931F9355
+:100FA000CF93DF938C01FC01C081D181CE010E94DF
+:100FB000551EBE010E947B08EC01B8010E94CB07C0
+:100FC000882309F48DC0F8018281882309F44AC07E
+:100FD0008091590181111FC0C431F0E5DF0709F08C
+:100FE00051C00E94CD0781E0809359010E94A42046
+:100FF0009093580180935701109250011092520122
+:101000001092510110925401109253011092560106
+:101010001092550165C080915701909158010E942E
+:10102000B020883C910570F480915001E82FF0E0E9
+:10103000EE0FFF1FEF5AFE4FD183C0838F5F809367
+:1010400050014EC0C43880E5D80721F0C538D045DE
+:1010500001F13AC0F8018281882341F010924E01DB
+:1010600082E01EC0C438E0E5DE0759F580914E01EC
+:10107000811106C086E20E94D71586E20E949F1663
+:1010800082E01CC0C438F0E5DF0741F3C538D04525
+:10109000D9F4F8018281882331F010924F0180E267
+:1010A0000E94EE161DC080914F01811106C087E29B
+:1010B0000E94D71587E20E949F1680E20E94F516D3
+:1010C0000FC0C538D04529F381E080934E0180934D
+:1010D0004F01C801DF91CF911F910F910C94C70769
+:1010E00080E0DF91CF911F910F9108950C949E079E
+:1010F0000C94C6070895E72FF0E09BE0899FE00D70
+:10110000F11D112483E0EE0FFF1F8A95E1F7E60F32
+:10111000F11DEE0FFF1FE65FFE4F8591949108953C
+:10112000880F991FFC01E657F0408591949108952E
+:10113000880F991FFC01E65FFE4F859194910895F9
+:101140000F931F93CF93DF93EC01811520E3920758
+:1011500050F5C11580E2D80708F0C3C0CB3BD105DC
+:1011600090F4C83AD10508F06AC0C53AD10508F034
+:101170005BC0C430D10508F0D4C1219709F0CEC1BD
+:1011800001E010E00EC2CF3FD10511F008F0C9C157
+:10119000C03FD10508F0A2C0CE01805E910908973A
+:1011A00008F4BFC1BBC1C13090E5D90709F4A2C0A2
+:1011B00020F5C0318FE4D80770F4C11590E4D90749
+:1011C00008F094C0C11521E3D20708F0A7C1DD27BC
+:1011D0008E01106CE6C1C115D04509F09FC10E9477
+:1011E0005C198FEF94E32CE0815090402040E1F7B0
+:1011F00000C000000E94FF20D4C1C11597E5D907A7
+:1012000058F4C03121E5D20708F020C1C43180E58F
+:10121000D80708F479C082C1CE019057811590415A
+:1012200008F07CC1DF7077C1C53AD10509F47BC1F4
+:10123000C63AD10509F07AC102E810E4B2C1C83A51
+:10124000D10509F476C1C93AD10509F475C1CA3A84
+:10125000D10509F474C1CB3AD10509F473C1CC3A74
+:10126000D10509F472C1CD3AD10509F471C1C03B71
+:10127000D10509F470C1CE3AD10509F46FC1CF3A56
+:10128000D10509F46EC1C13BD10509F46DC1C23B62
+:10129000D10509F46CC1C33BD10509F46BC1C43B52
+:1012A000D10509F46AC1C53BD10509F469C1C63B42
+:1012B000D10509F468C1C73BD10509F467C1C83B32
+:1012C000D10509F466C1C93BD10509F465C1CA3B22
+:1012D000D10509F464C100E014E463C18E01106516
+:1012E00060C1CE019F700E9498085CC1DF708E01C2
+:1012F000106A57C18AEB91E00E94FA068091EC01D6
+:1013000081608093EC014DC10E94AC22811102C02A
+:101310000E9492220E94C92290E090930B02809337
+:101320000A02C23080E5D80721F480910A02816068
+:1013300086C0C43090E5D90721F480910A0282600A
+:101340007EC0C63020E5D20721F480910A02846075
+:1013500076C0C83080E5D80719F480910A0227C00A
+:10136000CA3090E5D90721F480910A02806167C0F4
+:10137000CC3020E5D20721F480910A0280625FC060
+:10138000CE3080E5D80721F480910A02806457C0EE
+:10139000C03190E5D90721F480910A0280684FC0DE
+:1013A000C23120E5D20729F480910A028460886066
+:1013B00046C0C33080E5D80721F480910A028E7FB1
+:1013C0003EC0C53090E5D90721F480910A028D7F97
+:1013D00036C0C73020E5D20721F480910A028B7F06
+:1013E0002EC0C93080E5D80719F480910A0226C0C2
+:1013F000CB3090E5D90721F480910A028F7E1FC07F
+:10140000CD3020E5D20721F480910A028F7D17C0EC
+:10141000CF3080E5D80721F480910A028F7B0FC07E
+:10142000C13190E5D90721F480910A028F7707C076
+:10143000C331D04531F480910A028B7F877F80933E
+:101440000A0280910A020E94CD22ABC08D2F9927FB
+:101450008F70992781309105D9F49E01237033272D
+:1014600002C0880F991F2A95E2F79C688E0144E01C
+:10147000000F111F4A95E1F700271370802B912B65
+:1014800053E0CC0FDD1F5A95E1F7C076DD272FC062
+:101490008230910531F4DC2FCC278E01016F106A68
+:1014A00080C08330910569F4CE018370992701E0F3
+:1014B00010E002C0000F111F8A95E2F7C8019C6876
+:1014C0000FC084309105B9F4CE018370992701E0F3
+:1014D00010E002C0000F111F8A95E2F7C8019A6858
+:1014E00023E0CC0FDD1F2A95E1F7C07ED7708C0179
+:1014F0000C2B1D2B56C08530910531F4DC2FCC27E9
+:101500008E01046F106A4DC0069709F04AC0CF7172
+:10151000DD27DC2FCC278E01106243C000E010E0F5
+:1015200040C08E013EC001E810E43BC003E810E477
+:1015300038C002EE14E435C009EE14E432C00AEEFD
+:1015400014E42FC005EB14E42CC006EB14E429C00E
+:1015500007EB14E426C00CEC14E423C00DEC14E4F7
+:1015600020C003E815E41DC00AE815E41AC002E92A
+:1015700015E417C004E915E414C001E216E411C033
+:1015800003E216E40EC004E216E40BC005E216E422
+:1015900008C006E216E405C007E216E402C00AE24B
+:1015A00016E4C801DF91CF911F910F910895E72FA5
+:1015B000F0E09BE0899FE00DF11D112483E0EE0F28
+:1015C000FF1F8A95E1F7E60FF11DEE0FFF1FE65FA3
+:1015D000FE4F85919491803E9105E0F4803C910509
+:1015E00058F58133910509F46FC048F489329105AB
+:1015F00009F463C08A32910509F46DC072C0893361
+:101600009105E9F082389105D1F08533910509F40F
+:101610004DC067C0833E910581F138F4803E91054D
+:10162000B9F0823E9105D9F05CC0863E910561F12A
+:10163000873E9105A1F155C00E9490080895209120
+:101640000A0220FD02C021FF4CC080EE90E049C09C
+:1016500080910A0280FFF9CF89E390E042C0809137
+:101660000A0282FF0EC080910A0284FF03C080E05C
+:1016700090E037C083EE90E034C080910A0282FF90
+:10168000F2CF82EE90E02DC080910A0283FF0BC062
+:1016900080910A0284FDEBCF87EE90E022C080911A
+:1016A0000A0283FFF5CF86EE90E01BC080910A020C
+:1016B00085FF07C089E290E014C080910A0285FF8F
+:1016C000F9CF85E390E00DC080910A0286FF07C044
+:1016D0008AE290E006C080910A0286FFF9CF81E39A
+:1016E00090E00E94A00808950C94A207E82FF0E073
+:1016F000E35EFE4F8081E82FEF70F0E082958F70FF
+:1017000021E030E0A90102C0440F551F8A95E2F79D
+:1017100040A308950F931F93CF93DF9385B78068FD
+:1017200085BF85B7806885BFCAE0D0E001E010E0E2
+:10173000FE01E35EFE4F8081E82FEF70F0E021A113
+:1017400082958F70A80102C0440F551F8A95E2F759
+:10175000CA01822B81A38C2F0E94760B219740F720
+:1017600087E090E061E070E0FC01EB5EFE4F2081DD
+:10177000E22FEF70F0E042A122952F70DB0102C052
+:10178000AA0FBB1F2A95E2F79D01242B22A30197E4
+:1017900058F7DF91CF911F910F910C947608EF923B
+:1017A000FF920F931F93CF93DF9305E611E0CAE0FA
+:1017B000EE24E394F12CD5E08C2F0E94760B87E089
+:1017C00090E040E0FC01EB5EFE4F5081E52FEF70B2
+:1017D000F0E020A130E052955F7002C0359527956A
+:1017E0005A95E2F720FD07C09701082E01C0220F8D
+:1017F0000A94EAF7422B019728F7F80182918F01AA
+:10180000841719F04083D09300018C2F0E94760B2F
+:10181000C15090F68091000187FD32C09091EC019B
+:1018200090FF10C0282F332727FD30953F938F93CB
+:1018300083E092E09F938F930E9493070F900F9005
+:101840000F900F908091000181508093000187FDDF
+:1018500007C08FE99FE00197F1F700C0000010C0BA
+:1018600080E090E0FC01EB59FE4FDC01A65ABE4F30
+:101870001A962C9122870197853FEFEF9E0791F7EB
+:101880000E94780881E0DF91CF911F910F91FF9026
+:10189000EF900895E82FF0E0EB59FE4F8081089516
+:1018A0000F931F93CF93DF938091EC0180FF04C0CF
+:1018B00084EE91E00E94FA06C0E0D0E00CEC11E06A
+:1018C0008091EC0180FF15C0FE01EB59FE4F808135
+:1018D00090E00E9419209F938F93DF93CF931F93E3
+:1018E0000F930E9493070F900F900F900F900F90FF
+:1018F0000F902196CB30D10519F7DF91CF911F9131
+:101900000F9108950F931F93CF9300E711E0C0E06C
+:10191000F80182918F0190E00E94F71FC80FF1E05B
+:1019200005361F07A9F78C2FCF911F910F910895AE
+:101930008091830108959FB7F894109272019FBF20
+:1019400090910102943009F057C09091E9009F7086
+:101950003091EC00232F217030FD20E8922B24E001
+:101960002093E9002091EB0020FF43C02091EE007E
+:1019700027FF3FC020917001222321F02091E80031
+:1019800025FF37C01092700126E03091E80035FD48
+:1019900015C030910102343061F53091EB0035FD16
+:1019A00028C0215021F481E08093700122C0EFE92A
+:1019B000FFE03197F1F700C00000E7CF8093F1001E
+:1019C0008091E80085FD0AC08091E80080FFFCCF8F
+:1019D0008091E8008E778093E80006C08FB7F89476
+:1019E00021E0209372018FBF9F709093E90080E007
+:1019F00008959F709093E9008FEF0895CF93DF9340
+:101A000000D01F92CDB7DEB79C01809101028430D7
+:101A100019F593E099833B832A839093E9008FEF34
+:101A20009091E800815095FD06C095ED9A95F1F7EB
+:101A300000008111F5CF8091E80085FF0DC040E0E6
+:101A400050E063E070E0CE0101960E94C40F8091E7
+:101A5000E8008E778093E8000F900F900F90DF9151
+:101A6000CF910895CF93DF9300D01F92CDB7DEB70B
+:101A700020910102243021F522E029839B838A836F
+:101A800083E08093E9008FEF9091E800815095FD0D
+:101A900006C095ED9A95F1F700008111F5CF809180
+:101AA000E80085FF0DC040E050E063E070E0CE014B
+:101AB00001960E94C40F8091E8008E778093E80021
+:101AC0000F900F900F90DF91CF9108952091010218
+:101AD0002430F1F422E02093E9002FEF3091E80068
+:101AE000215035FD06C035ED3A95F1F70000211182
+:101AF000F5CF2091E80025FF0BC040E050E065E005
+:101B000070E00E94C40F8091E8008E778093E80017
+:101B10000895CF93DF9320910102243009F048C04B
+:101B2000EC0180910B018823E1F080910C01882366
+:101B3000C1F085E08093E9008FEF9091E80081503B
+:101B400095FD06C095E19A95F1F700008111F5CF5A
+:101B50008091E80085FF2CC040E050E060E170E03B
+:101B600017C081E08093E9008FEF9091E8008150E9
+:101B700095FD06C095ED9A95F1F700008111F5CF1E
+:101B80008091E80085FF14C040E050E068E070E01C
+:101B9000CE010E94C40F8091E8008E778093E80008
+:101BA00080E1FE01A3E7B1E001900D928A95E1F793
+:101BB000DF91CF91089588E492E00E94FA06809127
+:101BC0000002811109C00E9459110E94B611809132
+:101BD000E20084608093E200089584E492E00E9431
+:101BE000FA0610920002089580E492E00C94FA063E
+:101BF0008CE392E00C94FA0688E392E00E94FA06E5
+:101C00000C946C20209171012F5F822F62E30E945F
+:101C1000D22B992319F0209371010895109271012C
+:101C200080917201882371F180910102843041F525
+:101C30008091E9008F702091EC00922F917020FD2F
+:101C400090E8892B94E09093E9009091EB0090FF4D
+:101C500014C09091EE0097FF10C09091E80095FF9E
+:101C600003C01092F100F9CF9091E80090FF05C0F9
+:101C70009091E8009E779093E8008F708093E90040
+:101C800010927201089542E061EC81E00E94D3104D
+:101C900042E061EC82E00E94D31042E061EC83E01C
+:101CA0000E94D31042E261EC84E00E94D31042E132
+:101CB00061EC85E00C94D31080910302833009F429
+:101CC00055C030F4813071F0823009F48EC008952F
+:101CD0008A3009F47AC08B3009F460C0893009F089
+:101CE0009CC020C080910202813A09F096C0809188
+:101CF000E800877F8093E8008091060290910702B8
+:101D0000892B21F460E183E791E003C060E080E08B
+:101D100090E070E00E940F108091E8008B77809334
+:101D2000E800089580910202813209F076C0809126
+:101D3000060290910702009719F0049709F06DC010
+:101D40008091E800877F8093E8008091E80082FD21
+:101D500005C0809101028111F8CF5FC08091F10030
+:101D6000809383018091E8008B7753C080910202B9
+:101D7000813A09F052C08091060290910702892BA6
+:101D800009F04BC08091E800877F8093E800809144
+:101D9000E80080FFFCCF80910B0136C080910202E9
+:101DA0008132D9F58091060290910702892BA9F51D
+:101DB0008091E800877F8093E8000E94081180915D
+:101DC000040280930B010C945C1980910202813211
+:101DD00021F58091E800877F8093E8000E94081138
+:101DE0008091050280938401089580910202813AD6
+:101DF000A1F48091E800877F8093E8008091E8005B
+:101E000080FFFCCF809184018093F1008091E800F5
+:101E10008E778093E8000C940811089584B7877F2B
+:101E200084BF88E10FB6F894809360001092600040
+:101E30000FBE90E080E80FB6F89480936100909315
+:101E400061000FBE0E94E8140E9459110E94B61151
+:101E50008091E20084608093E2008BE99CE00E9424
+:101E6000F21F78940E943B140E94EA1481E091E0F2
+:101E70000E94561487E292E00E94FA0680910102C5
+:101E8000853089F483E292E00E94FA060E943320B2
+:101E90008091FF01882391F30E945E20882371F3D3
+:101EA0000E94AE0FEBCF0E941215E8CF292F3327E7
+:101EB00023303105C9F064F42130310581F022303E
+:101EC000310509F043C08DE890E02AE732E042C0D6
+:101ED00021323105F1F02232310541F137C082E182
+:101EE00090E027E033E036C099278130910541F03A
+:101EF0008230910541F0892B49F5E6E7F2E005C013
+:101F0000E6E6F2E002C0ECE4F2E0849190E09F01AA
+:101F100021C06530D8F4E62FF0E0EE0FFF1FE95C3A
+:101F2000FE4F2081318189E090E014C0653070F46B
+:101F300070E0FB01EE0FFF1FE35DFE4F208131815A
+:101F4000FB01E85DFE4F808190E004C080E090E0FE
+:101F500020E030E0FA0131832083089580E189BDDB
+:101F600082E189BD09B400FEFDCF8091D8008F7D4C
+:101F70008093D8008091E00082608093E00080919F
+:101F8000E00081FDFCCF0895CF92DF92EF92FF92A7
+:101F90000F931F93CF93DF93EC018B016A010E9493
+:101FA0002711811133C0C114D10439F0F6018081A9
+:101FB0009181081B190BC80FD91FE12CF12C0115B9
+:101FC000110519F18091E80085FD16C08091E800A7
+:101FD0008E778093E800C114D10449F0F601808126
+:101FE0009181E80EF91EF182E08285E00FC00E9427
+:101FF0002711882321F30AC089918093F1000150B1
+:102000001109FFEFEF1AFF0ADACF80E0DF91CF91DD
+:102010001F910F91FF90EF90DF90CF900895209146
+:102020000802309109022617370748F0611571053B
+:1020300039F42091E8002E772093E80001C0B9011F
+:1020400040E061157105A9F120910102222309F4F4
+:1020500043C0253009F442C02091E80023FD40C070
+:102060002091E80022FD32C02091E80020FFE9CF56
+:102070004091F3002091F20030E0342BFC01CF01BD
+:102080006115710559F02830310540F48191809334
+:10209000F100615071092F5F3F4FF1CF41E02830CF
+:1020A000310509F040E02091E8002E772093E80008
+:1020B000C8CF4111C9CF0AC080910102882361F0C5
+:1020C000853061F08091E80083FD0AC08091E800CE
+:1020D00082FFF2CF80E0089582E0089583E00895C2
+:1020E00081E00895209108023091090226173707F0
+:1020F00048F06115710539F42091E8002E7720939E
+:10210000E80001C0B901FC0120E06115710591F101
+:1021100080910102882309F440C0853009F43FC052
+:102120008091E80083FD3DC08091E80082FD2FC0D2
+:102130008091E80080FFE9CF2091F3008091F200C8
+:1021400090E0922B6115710559F08830910540F4AB
+:1021500024912093F1003196615071090196F2CFDC
+:1021600021E0089709F020E08091E8008E778093C5
+:10217000E800CBCF2111CCCF0AC080910102882387
+:1021800061F0853061F08091E80083FD0AC08091A4
+:10219000E80082FFF2CF80E0089582E0089583E0B6
+:1021A000089581E00895982F973058F59093E900AD
+:1021B000981739F07091EC002091ED005091F000EB
+:1021C00003C0242F762F50E021FF19C03091EB007F
+:1021D0003E7F3093EB003091ED003D7F3093ED007A
+:1021E0003091EB0031603093EB007093EC00209362
+:1021F000ED005093F0002091EE0027FF07C09F5F95
+:10220000D3CF8F708093E90081E0089580E0089536
+:102210008091020287FF11C08091E80082FD05C015
+:10222000809101028111F8CF11C08091E8008B7775
+:102230000BC080910102882349F08091E80080FF63
+:10224000F8CF8091E8008E778093E8000895209180
+:10225000E4003091E50095E64091EC00842F817018
+:1022600040FF22C08091E80080FD1CC080910102E7
+:10227000882391F0853091F08091EB0085FD10C0AE
+:102280004091E4005091E5004217530729F39A0169
+:10229000915011F784E0089582E0089583E0089555
+:1022A00081E0089580E008954091E80042FFDECF8C
+:1022B00008950E94C7110E94CF11E0EEF0E08081E6
+:1022C00081608083E8EDF0E080818F77808319BCA6
+:1022D000A7EDB0E08C918E7F8C9380818F7E808380
+:1022E0001092000208950F931F93CF93DF930E94E3
+:1022F000C7110E94CF11C8EDD0E088818F77888305
+:1023000088818068888388818F7D888319BC10923A
+:1023100001021092FD011092FF011092FE0100EEE9
+:1023200010E0F80180818B7F8083888181608883C1
+:1023300042E060E080E00E94D310E1EEF0E08081B6
+:102340008E7F8083E2EEF0E08081816080838081F7
+:1023500088608083F80180818E7F8083888180619E
+:102360008883DF91CF911F910F910895E8EDF0E000
+:1023700080818F7E8083E7EDF0E0808181608083C3
+:1023800084E082BF81E0809300020C947311E8ED39
+:10239000F0E080818E7F80831092E2000895109299
+:1023A000DA001092E10008951F920F920FB60F927B
+:1023B00011242F933F934F935F936F937F938F934A
+:1023C0009F93AF93BF93EF93FF938091E10082FFC0
+:1023D0000BC08091E20082FF07C08091E1008B7FFB
+:1023E0008093E1000E94020E8091DA0080FF1FC0FE
+:1023F0008091D80080FF1BC08091DA008E7F80938F
+:10240000DA008091D90080FF0DC080E189BD82E1B2
+:1024100089BD09B400FEFDCF81E0809301020E94D6
+:10242000DB0D05C019BC109201020E94ED0D8091D8
+:10243000E10080FF19C08091E20080FF15C080910B
+:10244000E2008E7F8093E2008091E20080618093C1
+:10245000E2008091D80080628093D80019BC85E0AA
+:10246000809301020E94F80D8091E10084FF30C04A
+:102470008091E20084FF2CC080E189BD82E189BDAA
+:1024800009B400FEFDCF8091D8008F7D8093D800E5
+:102490008091E1008F7E8093E1008091E2008F7E49
+:1024A0008093E2008091E20081608093E20080915D
+:1024B000FD01882311F084E007C08091E30087FDCF
+:1024C00002C081E001C083E0809301020E94FC0D04
+:1024D0008091E10083FF29C08091E20083FF25C045
+:1024E0008091E100877F8093E10082E08093010288
+:1024F0001092FD018091E1008E7F8093E100809138
+:10250000E2008E7F8093E2008091E2008061809300
+:10251000E20042E060E080E00E94D3108091F00091
+:1025200088608093F0000E94F40DFF91EF91BF91BD
+:10253000AF919F918F917F916F915F914F913F915B
+:102540002F910F900FBE0F901F9018951F920F9212
+:102550000FB60F9211242F933F934F935F936F9376
+:102560007F938F939F93AF93BF93CF93DF93EF931B
+:10257000FF93C091E900CF708091EC00D82FD1700B
+:1025800080FDD0E81092E9008091F000877F809371
+:10259000F00078940E94EA121092E9008091F00015
+:1025A00088608093F000CD2BCF70C093E900FF913D
+:1025B000EF91DF91CF91BF91AF919F918F917F91DB
+:1025C0006F915F914F913F912F910F900FBE0F90A0
+:1025D0001F9018951F93CF93DF93CDB7DEB7AA97BF
+:1025E0000FB6F894DEBF0FBECDBFE2E0F2E088E0A8
+:1025F0008E0F9091F10091938E13FBCF0E945C0E91
+:102600008091E80083FF1FC1809102029091030234
+:10261000492F50E04A30510508F015C1FA01EA5A35
+:10262000FF4F0C94F22B803881F0823809F00BC1F7
+:10263000809106028F708093E9008091EB0085FB0A
+:10264000882780F91092E90006C08091FE019091E0
+:10265000FF01911182609091E800977F9093E800CC
+:102660008093F1001092F100C8C0282F2D7F09F04F
+:10267000EAC0882319F0823061F0E5C0809104023D
+:10268000813009F0E0C0933009F080E08093FF01D1
+:102690002BC080910402811127C0809106028F70A7
+:1026A00009F4D1C08093E9002091EB0020FF1CC009
+:1026B000933021F48091EB00806214C09091EB0084
+:1026C00090619093EB0021E030E0A90102C0440F3B
+:1026D000551F8A95E2F74093EA001092EA00809134
+:1026E000EB0088608093EB001092E9008091E80095
+:1026F000877F86C08111A7C0109104021F77809147
+:10270000E3008078812B8093E3008091E800877F4D
+:102710008093E8000E9408118091E80080FFFCCFC0
+:102720008091E30080688093E300111102C082E091
+:1027300001C083E08093010286C08058823008F097
+:1027400082C080910402909105028C3D53E0950770
+:1027500079F583E08A838AE289834FB7F894DE01B2
+:10276000139620E03EE051E2E32FF0E05093570053
+:10277000E49120FF03C0E295EF703F5FEF708E2F72
+:1027800090E0EA3010F0C79601C0C0968D939D93FB
+:102790002F5F243149F74FBF8091E800877F8093F6
+:1027A000E8006AE270E0CE0101960E940F1014C0AA
+:1027B000AE014F5F5F4F609106020E94560FBC0151
+:1027C000009709F440C09091E800977F9093E8004B
+:1027D00089819A810E9472108091E8008B778093A2
+:1027E000E80031C0803879F58091E800877F8093D8
+:1027F000E8008091FD018093F1008091E8008E77E0
+:102800008093E8000E9408111EC081111CC09091A5
+:1028100004029230C0F48091E800877F8093E80042
+:102820009093FD010E9408118091FD01811106C065
+:102830008091E30087FD02C081E001C084E08093C5
+:1028400001020E94430E8091E80083FF0AC080913C
+:10285000E800877F8093E8008091EB00806280939E
+:10286000EB00AA960FB6F894DEBF0FBECDBFDF9186
+:10287000CF911F910895CF93809101028823A1F0F9
+:10288000C091E900CF709091EC00892F817090FD8C
+:1028900080E8C82B1092E9008091E80083FD0E9437
+:1028A000EA12CF70C093E900CF91089590938A0106
+:1028B000809389010895E0918901F0918A01309710
+:1028C00021F00190F081E02D099480E00895EF92CD
+:1028D000FF920F931F93CF93DF93E0918901F091C3
+:1028E0008A013097B1F18C010280F381E02D0995C6
+:1028F0008091EC0182FF2DC080FF04C08CE394E046
+:102900000E94FA06E80110E186E3E82E84E0F82E42
+:102910008091EC0180FF0BC088811F928F93FF9202
+:10292000EF920E9493070F900F900F900F9011500D
+:1029300021961111EDCF8091EC0180FF0AC084E354
+:1029400094E0DF91CF911F910F91FF90EF900C9445
+:10295000FA06DF91CF911F910F91FF90EF900895AC
+:10296000E0918901F0918A01309721F00480F5818E
+:10297000E02D0994089520918701309188018217F4
+:10298000930771F09093880180938701E09189010A
+:10299000F0918A01309721F00680F781E02D0994AB
+:1029A000089520918501309186018217930771F077
+:1029B0009093860180938501E0918901F0918A01CD
+:1029C000309721F00084F185E02D09940895089551
+:1029D0000C94E7140E949B200E948A0B0E945D21A8
+:1029E00081E080930C010895CF93DF931F92CDB7C0
+:1029F000DEB79091EC0192FF10C090FF0EC01F92C5
+:102A00008F932EE434E03F932F9389830E949307A2
+:102A10000F900F900F900F9089810F90DF91CF91C1
+:102A20000C94740B9F92AF92BF92CF92DF92EF9271
+:102A3000FF920F931F93CF93DF9300D000D000D06D
+:102A4000CDB7DEB70E94CF0B0AE010E0AA24A39412
+:102A5000B12C902E802F0E944A0C980124573E4F93
+:102A60006901F901F080F826A1F40150110988F7F5
+:102A70008FEF89838A831B820E94A4208160782F34
+:102A80009D838C8349815A816B818D810E94A91518
+:102A90002FC09091EC0191FF04C08E830E94500CD6
+:102AA0008E8127E030E0A501022E01C0440F0A9478
+:102AB000EAF7E42E4F21C1F029839A828E2191E01A
+:102AC00009F490E09B830E94A4208160782F9D836D
+:102AD0008C8349815A816B818D810E94A915F601F1
+:102AE0008081E826E08204C021503109E0F6BDCFA4
+:102AF0000E94CE2410918B010E945B141817B9F02C
+:102B00000E945B1480938B0126960FB6F894DEBF6B
+:102B10000FBECDBFDF91CF911F910F91FF90EF902E
+:102B2000DF90CF90BF90AF909F900C94F4142696B6
+:102B30000FB6F894DEBF0FBECDBFDF91CF911F91CE
+:102B40000F91FF90EF90DF90CF90BF90AF909F904C
+:102B50000895CF93DF93CDB7DEB72B970FB6F894D8
+:102B6000DEBF0FBECDBF4F83588769877A878B87BB
+:102B7000DE01119686E0FD0111928A95E9F785E064
+:102B8000FE01379601900D928A95E1F749815A81AD
+:102B90006B817C818D819E810E94FA1B2B960FB6E2
+:102BA000F894DEBF0FBECDBFDF91CF910895CF93D4
+:102BB000882309F4C2C0C82F823859F40E945B14DC
+:102BC00081FDBBC089E30E94D41E0E94C31F89E31C
+:102BD0000CC0833879F40E945B1480FDAEC083E59D
+:102BE0000E94D41E0E94C31F83E50E94271FCF911D
+:102BF0000C94C31F843859F40E945B1482FD9DC05D
+:102C000087E40E94D41E0E94C31F87E4EECF8CEF9E
+:102C10008C0F813A48F48C2F0E945B2981118DC062
+:102C20008C2F0E94D41EE3CF80E28C0F883048F4B2
+:102C3000C77081E001C0880FCA95EAF70E947C1F27
+:102C4000D6CF8BE58C0F833078F4C53A29F0C63A9D
+:102C500031F083E890E005C081E890E002C082E8AE
+:102C600090E0CF910C94BB1488E58C0F833108F071
+:102C700064C0C83A39F1C93A41F1CA3A49F1CB3A8C
+:102C800051F1CC3A59F1CD3A61F1C03B69F1CE3AFC
+:102C900071F1CF3A79F1C13B81F1C23B89F1C33B7C
+:102CA00091F1C43B99F1C53BA1F1C63BA9F1C73BEA
+:102CB000B1F1C83BB9F1C93BC1F1CA3BC9F180E0F0
+:102CC00090E038C082EE90E035C089EE90E032C0EE
+:102CD0008AEE90E02FC085EB90E02CC086EB90E070
+:102CE00029C087EB90E026C08CEC90E023C08DECEF
+:102CF00090E020C083E891E01DC08AE891E01AC00E
+:102D000082E991E017C084E991E014C081E292E089
+:102D100011C083E292E00EC084E292E00BC085E233
+:102D200092E008C086E292E005C087E292E002C02D
+:102D30008AE292E0CF910C94D114CF910895882328
+:102D400009F44BC0823859F40E945B1481FF45C0DE
+:102D500089E30E94D41E0E94C31F89E30CC08338FC
+:102D600071F40E945B1480FF38C083E50E94D41E7A
+:102D70000E94C31F83E50E94271F0C94C31F843841
+:102D800059F40E945B1482FF28C087E40E94D41E7D
+:102D90000E94C31F87E4EFCF9CEF980F913A58F33E
+:102DA00090E2980F983050F4877091E001C0990F2D
+:102DB0008A95EAF7892F0E94821FDFCF9BE5980F43
+:102DC000933020F480E090E00C94BB14885A833157
+:102DD00020F480E090E00C94D1140895882321F031
+:102DE0000E947C1F0C94C31F0895882321F00E9429
+:102DF000821F0C94C31F08957F928F929F92AF926F
+:102E0000BF92CF92DF92EF92FF920F931F93CF93D7
+:102E1000DF931F92CDB7DEB77C01C62E772EFC0163
+:102E2000058102950F70128111110E94991F0E9455
+:102E3000CD1E882379F0112369F080E28C0D883053
+:102E400048F082E00E94B61E0E94CD1E91E0D82E6E
+:102E5000D92601C0D12CE72DE295EF70F0E0E05AC1
+:102E6000FF4F0C94F22B872D807F072D0F70882346
+:102E700011F00295007F112389F0002309F498C115
+:102E800080E28C0D883020F4802F0E947C1F03C0CC
+:102E9000802F0E948C1F0E94C31F8AC18C2D0E940C
+:102EA0009F16002309F49DC180E28C0D883020F428
+:102EB000802F0E94821F03C0802F0E94921F0E94B9
+:102EC000C31F8FC1872D807F972D9F70803211F493
+:102ED000892F03C0892F8295807FCC2021F0F1E0DB
+:102EE000CF16A1F01DC0112339F0002319F10130D4
+:102EF00009F50E94AC1F75C1002319F0013009F4D7
+:102F000070C189830E94AF1F898110C1112321F0F4
+:102F1000063008F066C10EC0053008F062C106C177
+:102F2000112359F0002331F0F701958190FF40C142
+:102F30009F7095830E94EE1654C1002309F4F6C0D9
+:102F40003DC1872D86958695837090E0009719F096
+:102F5000019761F046C1112321F08C2D972D9370BC
+:102F600002C080E090E00E94BB143BC1112321F01D
+:102F70008C2D972D937002C080E090E00E94D114B8
+:102F800030C18C2D112319F00E94542302C00E94DD
+:102F9000BC230E94412425C1872D837009F052C0B3
+:102FA00011111FC18C2D829586958770880F880F0F
+:102FB0009C2D9F70892E912CA12CB12C082E04C021
+:102FC000880C991CAA1CBB1C0A94D2F7C4FE14C01E
+:102FD0000FE010E020E030E0B901A80104C0440F88
+:102FE000551F661F771F8A95D2F7CB01BA016095EE
+:102FF00070958095909503C060E070E0CB01272D1F
+:1030000026952695237030E02230310569F0233073
+:10301000310589F0682979298A299B2921303105D0
+:1030200071F00E94421DDDC0682979298A299B29F7
+:103030000E945E1DD6C00E94421DC501B4010E94BF
+:10304000261DCFC0112319F0872D817001C08695F0
+:10305000882309F4C6C08C2D829586958770880FC9
+:10306000880F9C2D9F70892E912CA12CB12C082E9D
+:1030700004C0880C991CAA1CBB1C0A94D2F7C4FE7D
+:1030800014C00FE010E020E030E0B901A80104C056
+:10309000440F551F661F771F8A95D2F7CB01BA01DF
+:1030A000609570958095909503C060E070E0CB01CD
+:1030B000272D269526952370422F50E0423051054A
+:1030C00069F04330510589F0682979298A299B29BB
+:1030D0004130510571F00E941C1E83C06829792976
+:1030E0008A299B290E94381E7CC00E941C1EC50193
+:1030F000B4010E94001E75C08C2D90E0FC01E05EC2
+:10310000F109E531F10508F04FC0E059FF4F0C948B
+:10311000F22B0C2D0F70872D8F71112321F00E943F
+:10312000991D802F07CF0E94BA1D802F0E94F5168F
+:1031300058C0112341F0053008F053C0872D8F711E
+:103140000E94DF1D4EC0063008F04BC0F7CF1123A0
+:1031500039F0872D8F710E94991D43C01123C9F347
+:10316000872D8F710E94BA1D3CC0112329F0872D35
+:103170008F710E94841D35C00E947A1D32C01123B8
+:1031800051F0172D1F71812F0E94991D63E0812F2F
+:103190000E94AD1E26C081E00E94B61E023008F1DA
+:1031A00082E00E94B61E1DC0112331F0002389F277
+:1031B0008C2D0E94D71515C0002391F28C2D0E94F2
+:1031C0009F160FC0472D4F706C2DC7010E94B60788
+:1031D0000E949E1C06C0472D4F706C2DC7010E9497
+:1031E0007A08DD20F9F00E94A91E80FD1BC0F701BE
+:1031F00012820E94A31E0E94991DC7010E942119DC
+:103200000E94A31E0F90DF91CF911F910F91FF900D
+:10321000EF90DF90CF90BF90AF909F908F907F9076
+:103220000C94BA1D0F90DF91CF911F910F91FF90D9
+:10323000EF90DF90CF90BF90AF909F908F907F9056
+:1032400008950F931F93CF93DF93EC0188819981A9
+:103250002B813C81232BB9F09F3F11F48F3F99F0D4
+:10326000CE010E94CE07882371F0688179818A811E
+:103270000E949F1E8C010E94541E0E941B1DB801BB
+:10328000CE010E94FC16DF91CF911F910F910895FE
+:103290000E94991F0E94A91F0E946E1F0E94C31FB7
+:1032A0000E9474250E94412480E090E00E94BB149B
+:1032B00080E090E00C94D1140E94891F0C9448196E
+:1032C0000E94941E292F22952F7030E02C3031055A
+:1032D0004CF42A3031056CF422503109223031058A
+:1032E000A8F407C02C30310569F02F30310551F0BA
+:1032F0000DC0803F69F018F4803E40F409C0843F5F
+:1033000029F406C093FB882780F9089580E008958A
+:1033100081E00895CF93DF9300D000D01F92CDB706
+:10332000DEB70F900F900F900F900F90DF91CF911D
+:103330000895CF93DF9300D000D000D0CDB7DEB793
+:1033400026960FB6F894DEBF0FBECDBFDF91CF91AA
+:1033500008951F93CF93DF93C091970116E080915A
+:103360009801C81799F0D0E01C9FF0011D9FF00D47
+:103370001124E756FE4F408151816281738184811F
+:1033800095810E9499192196C770E9CFDF91CF915D
+:103390001F9108954091C9015091CA016091CB01DC
+:1033A0007091CC018091CD019091CE010C9499192E
+:1033B0008091CE0182958F7009F054C08091CB012D
+:1033C000882309F44FC080919701A09198016091E2
+:1033D000C9017091CA014091CC015091CD01B6E074
+:1033E0008A1709F43FC090E041155105C1F17F3FB4
+:1033F00011F46F3FA1F1B89FF001B99FF00D1124B6
+:10340000E756FE4F218172132AC02081621327C024
+:103410002281211124C0238134812417350710F41F
+:1034200021503109241B350B283C3105C0F4209173
+:10343000CE012F7020612093CE0126E0289FF0015D
+:10344000299FF00D1124E256FE4F80818F7080611C
+:10345000808389EC91E00E9421190C94A9190196AE
+:103460008770BECF0895CF92DF92EF92FF920F93B5
+:103470001F93CF93DF93CDB7DEB762970FB6F89463
+:10348000DEBF0FBECDBF8C0185E0F801DE011D96C9
+:1034900001900D928A95E1F7D8014C9111965C91BB
+:1034A000119712966C9112971396CD90DC90149709
+:1034B0003091C9017091CA018091CC019091CD01E8
+:1034C000009709F46BC17F3F19F43F3F09F466C1CF
+:1034D000E090CB01EE2009F4C0C02091CE01C816C7
+:1034E000D90628F0F601E81BF90BCF0104C080953E
+:1034F00090958C0D9D1DFF24F394883C910578F0E8
+:10350000F12C207F09F0C6C07C2DD98AC88A898910
+:103510000E948A1989EC91E00E942119B1C0822F82
+:10352000807F09F046C0751314C0341312C06111B6
+:1035300010C02F7020612093CE010E94CA1989EC1F
+:1035400091E00E9421198091CE01D80115968C93AB
+:103550002EC0CD2819F15F3F11F44F3FF9F0F62E40
+:1035600061111CC0809197012091980136E082176B
+:1035700009F45AC090E0389FF001399FF00D1124F2
+:10358000E756FE4F7181571306C07081471303C081
+:103590007281711103C001968770E9CFF62E662300
+:1035A00009F418C18091CE0181608093CE01F12C85
+:1035B00011C1751308C0341306C0611104C0809195
+:1035C000CE01D801C3C04D875E878D859E856A8BED
+:1035D0000E9460196A898823E1F16623D1F1209164
+:1035E000CE01822F82958F7090E0029774F08091C7
+:1035F000C9019091CA0198878F831986DB86CA8694
+:103600002C87CE0107960E94211986E0F801A9ECCB
+:10361000B1E001900D928A95E1F70E94D8190E94BD
+:10362000CA19FF24F394D6C04D875E878D859E8589
+:103630000E94941E292F22952F7030E022303105F0
+:103640000CF0BCC09F7009F0B6C0805E883008F4F2
+:10365000C1C0C8010E942119E4CFC816D90608F4D8
+:1036600053C0F601E81BF90BCF01883C910508F423
+:1036700050C0F12C7C2DD98AC88A89890E948A1968
+:10368000E9ECF1E086E0DF011D928A95E9F70E94FE
+:10369000CA19A0C0751314C0341312C0611110C030
+:1036A0008091CE01F8018583C8010E94211986E02E
+:1036B000E9ECF1E0DF011D928A95E9F7FE2C8AC062
+:1036C0004D875E878D859E856A8B0E9460196A8909
+:1036D000882309F4BECF662309F4BBCF2091CE0125
+:1036E000822F82958F7090E002970CF48ECF80919C
+:1036F000C9019091CA019A8389831B82DD82CC82A1
+:103700002E83CE0101967FCF809590958C0D9D1DC7
+:10371000ACCFF62E662309F49CCF75132EC034135C
+:103720002CC02091CE0120FD1FC0822F82958F706A
+:10373000D9F0D80115962C9315978F3049F08F5FEB
+:10374000982F9295907F822F8F70892B15968C934E
+:10375000C8010E94211986E0F801A9ECB1E00190AE
+:103760000D928A95E1F793CF86E0F801A9ECB1E0DC
+:1037700001900D928A95E1F72DC04D875E878D856A
+:103780009E850E946019811140CF8091CE01816099
+:103790008093CE01C8010E9421191CC0662309F440
+:1037A00058CF4D875E878D859E850E94601988233E
+:1037B00009F44FCF2ACF811148CF0CC024303105F6
+:1037C0000CF047CF9F7009F440CFF8019581907FAE
+:1037D00009F03BCF8F2D62960FB6F894DEBF0FBE77
+:1037E000CDBFDF91CF911F910F91FF90EF90DF90B0
+:1037F000CF9008951F93CF93DF93CDB7DEB72C976B
+:103800000FB6F894DEBF0FBECDBF4F8358876987D0
+:103810007A878B879C87CE0107960E94331A88236C
+:1038200069F08F8198852A853B85232BF1F19F3F95
+:1038300009F063C08F3F09F060C037C086E0FE0129
+:103840003796DE01119601900D928A95E1F76F810E
+:103850007885EA85FB85309741F17F3F11F46F3F12
+:1038600021F12091980130E0C901019687709927D4
+:103870004091970150E08417950709F447C0698388
+:103880007A83FD83EC8396E0929FD001939FB00DE5
+:103890001124A756BE4FFE01319601900D929A95C4
+:1038A000E1F7809398010E94A91916E08091970191
+:1038B000909198018917C1F1189FC0011124875672
+:1038C0009E4F0E94331A882379F1E09197011E9F41
+:1038D000F0011124E756FE4F4081518162817381CE
+:1038E000848195810E9499198091970190E00196B9
+:1038F0008770992780939701D9CF4F815885698523
+:103900007A858B859C850E949919CFCF0E945C197E
+:103910001092980110929701E9ECF1E086E0DF0146
+:103920001D928A95E9F7C1CF2C960FB6F894DEBFA9
+:103930000FBECDBFDF91CF911F910895EF92FF92FF
+:103940000F931F93CF93DF938C01009709F46CC002
+:10395000F12CEE24E394E8012196F8018491843758
+:1039600040F4843008F051C0813081F0823019F188
+:103970005BC0853709F444C0A8F19CE7980F9037E5
+:1039800008F052C08F770E949F1641C00E5F1F4FF4
+:10399000FE01C49180E28C0F883048F4C7708E2DF0
+:1039A00001C0880FCA95EAF70E949C1F14C08C2F93
+:1039B0000E94D7152DC00E5F1F4FFE01C49180E2FB
+:1039C0008C0F883058F4C7708E2D01C0880FCA95AF
+:1039D000EAF70E94A21F0E94C31F1AC08C2F0E94E8
+:1039E0009F1616C00E5F1F4FFE01C491CC2381F0BD
+:1039F0008FE99FE00197F1F700C00000C150F6CFBA
+:103A00000E5F1F4FFE01F49003C00E94D7158E0178
+:103A10008F2D882309F49FCFEFE9FFE03197F1F76D
+:103A200000C000008150F5CFDF91CF911F910F9121
+:103A3000FF90EF90089508956093D3017093D4019F
+:103A40008093D5019093D6010C9448190F931F933E
+:103A50000091D3011091D4012091D5013091D6016C
+:103A6000DC01CB01802B912BA22BB32B8093D301B4
+:103A70009093D401A093D501B093D6011F910F91DB
+:103A80000C9448190F931F930091D3011091D40106
+:103A90002091D5013091D601DC01CB018023912307
+:103AA000A223B3238093D3019093D401A093D50193
+:103AB000B093D6011F910F910C9448190F931F9347
+:103AC0000091D3011091D4012091D5013091D601FC
+:103AD000DC01CB0180279127A227B3278093D30154
+:103AE0009093D401A093D501B093D6011F910F916B
+:103AF0000C9448191092CF011092D0011092D1016C
+:103B00001092D2010C94481941E050E060E070E05E
+:103B100004C0440F551F661F771F8A95D2F7409344
+:103B2000CF015093D0016093D1017093D2010C94D6
+:103B3000481941E050E060E070E004C0440F551FB8
+:103B4000661F771F8A95D2F78091CF019091D0019F
+:103B5000A091D101B091D201482B592B6A2B7B2B1C
+:103B60004093CF015093D0016093D1017093D20163
+:103B70000C94481941E050E060E070E004C0440F4C
+:103B8000551F661F771F8A95D2F74095509560950F
+:103B900070958091CF019091D001A091D101B09109
+:103BA000D201482359236A237B234093CF015093AA
+:103BB000D0016093D1017093D2010C94481941E077
+:103BC00050E060E070E004C0440F551F661F771F8F
+:103BD0008A95D2F78091CF019091D001A091D10127
+:103BE000B091D201482759276A277B274093CF01FC
+:103BF0005093D0016093D1017093D2010C94481975
+:103C00000F931F930091CF011091D0012091D1010A
+:103C10003091D201DC01CB01802B912BA22BB32B55
+:103C20008093CF019093D001A093D101B093D201A2
+:103C30001F910F910C9448190F931F930091CF017E
+:103C40001091D0012091D1013091D201DC01CB0142
+:103C500080239123A223B3238093CF019093D0019B
+:103C6000A093D101B093D2011F910F910C944819E8
+:103C70000F931F930091CF011091D0012091D1019A
+:103C80003091D201DC01CB0180279127A227B327F5
+:103C90008093CF019093D001A093D101B093D20132
+:103CA0001F910F910C9448190895CF92DF92EF92D3
+:103CB000FF920F931F93CF93DF938C01C090D3019A
+:103CC000D090D401E090D501F090D6018091CF0141
+:103CD0009091D001A091D101B091D201C82AD92AE6
+:103CE000EA2AFB2ACFE1D0E0D701C6010C2E04C09E
+:103CF000B695A795979587950A94D2F780FF06C049
+:103D0000B8018C2F0E94D70A019721F4219760F700
+:103D100080E001C08C2FDF91CF911F910F91FF9018
+:103D2000EF90DF90CF900895CF93DF93EC010E9446
+:103D3000551EBE010E94D70ADF91CF910895CB0195
+:103D40000E94941E08958091D7018595859585954B
+:103D500008958091D7018770089598E0899F900118
+:103D60001124262B2093D7010C94991D2091D70163
+:103D7000809582238093D701982F977069F430E063
+:103D8000482F552747FD50952417350729F085956D
+:103D9000859585950C94BA1D08959091D7019770DB
+:103DA00081E009F480E0089590910B01992321F0BE
+:103DB00090910C01911109C020910D0130910E01DB
+:103DC000F90132969FEF40E030C0982F9695969576
+:103DD00096959F30A0F4E0910D01F0910E01E90F4E
+:103DE000F11D877021E030E0A90102C0440F551F8A
+:103DF0008A95E2F7CA019181892B81830895909178
+:103E0000EC0190FF23C01F928F9385E894E09F936D
+:103E10008F930E9493070F900F900F900F9008952B
+:103E20009F3F39F04F5F4E3041F051915813F8CF1A
+:103E30000DC05111F7CF942FF5CF9F3F39F0F90105
+:103E4000E90FF11D97FDFA958283089508959091E9
+:103E50000B01992321F090910C01911109C020913F
+:103E60000D0130910E01F9013296205F3F4F30C0B5
+:103E7000982F9695969596959F30A8F4E0910D0110
+:103E8000F0910E01E90FF11D877021E030E0A901EA
+:103E900002C0440F551F8A95E2F7CA0180959181AF
+:103EA0008923818308959091EC0190FF16C01F92A1
+:103EB0008F9387E694E09F938F930E9493070F90D0
+:103EC0000F900F900F9008953196E217F30729F0A5
+:103ED00090819813F9CF1082F7CF089581E090E098
+:103EE000E0910D01F0910E01E80FF91F108201968B
+:103EF00080319105A9F708959091EB01892B80936A
+:103F0000EB01089580959091EB0189238093EB015B
+:103F100008951092EB0108959091EA01892B809306
+:103F2000EA01089580959091EA0189238093EA013E
+:103F300008951092EA0108959091E901892B8093E8
+:103F4000E901089580959091E90189238093E90121
+:103F500008951092E90108958093D8010895109270
+:103F6000D801089580910D0190910E01FC013196C8
+:103F70009C01205F3F4F80E0919191118F5FE2178C
+:103F8000F307D1F70895E0910D01F0910E018091B2
+:103F9000EB018083E0910D01F0910E019081809101
+:103FA000EA01892B8083E0910D01F0910E0190814F
+:103FB0008091E901892B80838091D801882361F069
+:103FC000E0910D01F0910E019081892B80830E9478
+:103FD000B21F81111092D80180910D0190910E01B4
+:103FE0000C94671490934D0180934C01089520E048
+:103FF000009739F0AC0141505109842395232F5F7C
+:10400000F7CF822F08958295982F9C7C392F369573
+:104010003695282F237344E0249FC0011124932F49
+:10402000982B292F2A7A2695892F8575880F822B20
+:1040300008951F93CF93DF931F92CDB7DEB7998377
+:104040000E940320182F9981892F0E940320212F7D
+:1040500030E0322F2227A901482BCA010F90DF91AF
+:10406000CF911F91089580910102843021F1109227
+:10407000ED0120E488E190E00FB6F894A8958093D4
+:1040800060000FBE2093600080E00E94740B83B735
+:10409000817F846083BF83B7816083BF7894889574
+:1040A00083B78E7F83BF88E10FB6F894809360005A
+:1040B000109260000FBE0895089508950E945C203C
+:1040C0000E94CF0B0E945D200E94820C91E0811122
+:1040D00001C090E0892F08950E945C190E945B1432
+:1040E0000C94740B1F920F920FB60F9211248F93A2
+:1040F0009F93AF93BF938091ED01811113C0809185
+:10410000EE019091EF01A091F001B091F101419683
+:10411000A11DB11D8093EE019093EF01A093F001DA
+:10412000B093F101BF91AF919F918F910F900FBE0E
+:104130000F901F90189582E084BD93E095BD9AEF93
+:1041400097BD80936E0008952FB7F8948091EE018B
+:104150009091EF01A091F001B091F1012FBF08956E
+:10416000CF92DF92EF92FF920F931F932FB7F894A5
+:104170004091EE015091EF016091F0017091F101D9
+:104180002FBF6A017B01EE24FF248C0120E030E088
+:10419000C016D106E206F30610F4415051099A0107
+:1041A000281B390BC9011F910F91FF90EF90DF90F1
+:1041B000CF9008951F920F920FB60F9211248F93F4
+:1041C0009F93AF93BF938091EE019091EF01A091E7
+:1041D000F001B091F1010196A11DB11D8093EE0196
+:1041E0009093EF01A093F001B093F101BF91AF91D3
+:1041F0009F918F910F900FBE0F901F9018950E9466
+:104200005911F8942FEF87EA91E6215080409040B1
+:10421000E1F700C0000087E090EBDC0180930B0227
+:1042200090930C02A0930D02B0930E029CE088E1E3
+:104230000FB6F894A895809360000FBE909360002D
+:10424000FFCFEF92FF920F931F93CF93DF93D82F5F
+:10425000CAE08C2F0E944A0C07E010E0E82EF12CF7
+:10426000C701002E02C0959587950A94E2F780FF5A
+:1042700009C0602F7C2F80E00E947B08D81302C009
+:1042800081E006C00150110958F7C15010F780E0D5
+:10429000DF91CF911F910F91FF90EF900895CF93F1
+:1042A000C82F8CE20E942121882321F08C2FCF91EE
+:1042B0000C94212180E0CF910895CF930E94AC22ED
+:1042C000811102C00E9492228AEA94E00E94FA06BA
+:1042D000C5E6C15049F00E94CF0B8FE39CE90197DE
+:1042E000F1F700C00000F5CF83EA94E00E94FA06DF
+:1042F00089E20E944F21811113C18AE20E944F215D
+:1043000081110E94922285E00E944F2181110E941A
+:10431000FF200E94B7228093EC0187E00E944F218A
+:104320008823A9F18BE10E944F21882351F08091CD
+:10433000EC0181FB222720F991E0922790FB81F983
+:104340000EC08EE00E944F21882361F08091EC0125
+:1043500082FB222720F991E0922790FB82F980933B
+:10436000EC0115C080E10E944F219091EC0188235F
+:1043700041F093FB222720F981E0822780FB93F90B
+:1043800004C0892F809580FB90F99093EC01809177
+:10439000EC010E94BB220E94C92280930A0280EE97
+:1043A0000E944F21882341F080910A02982F909516
+:1043B00090FB80F980930A0289E30E944F218823B1
+:1043C00059F080910A0281FB222720F991E092277F
+:1043D00090FB81F980930A0282EE0E944F2188238C
+:1043E00059F080910A0282FB222720F991E092275E
+:1043F00090FB82F980930A0286EE0E944F21882367
+:1044000059F080910A0283FB222720F991E092273C
+:1044100090FB83F980930A0283EE0E944F21882348
+:1044200059F080910A0284FB222720F991E092271B
+:1044300090FB84F980930A0285E30E944F21882330
+:1044400059F080910A0285FB222720F991E09227FA
+:1044500090FB85F980930A0281E30E944F21882313
+:1044600059F080910A0286FB222720F991E09227D9
+:1044700090FB86F980930A0281E10E944F218823F4
+:1044800059F080910A0287FB222720F991E09227B8
+:1044900090FB87F980930A0280910A020E94CD2244
+:1044A00080910A0287FB882780F980930C0187E2BC
+:1044B0000E944F21C82F8EE10E944F218111C260BE
+:1044C0008FE10E944F218111C46080E20E944F2140
+:1044D0008111C86081E20E944F218111C06182E296
+:1044E0000E944F218111C06283E20E944F218111FD
+:1044F000C06484E20E944F21882311F0C06802C08A
+:10450000CC2329F08C2F0E94C4226C2F03C00E9460
+:10451000C022682F70E080E090E0CF910C941C1DC9
+:10452000CF9108956DEE7EEF80E090E00E942C2CFC
+:1045300060E082E090E00E941A2C60E083E090E06E
+:104540000E941A2C60E084E090E00E941A2C60E047
+:1045500085E090E00C941A2C80E090E00E94142CEE
+:1045600021E08D3E9E4F09F020E0822F089582E0E9
+:1045700090E00C940C2C682F82E090E00C941A2CA4
+:1045800083E090E00C940C2C682F83E090E00C9476
+:104590001A2C84E090E00C940C2C682F84E090E0BE
+:1045A0000C941A2C8091F40180FF0BC060911201D1
+:1045B00085E0689FB001112475956795759567959D
+:1045C0002BC081FF09C06091120185E0689FB00196
+:1045D00011247595679520C082FF07C06091120174
+:1045E00085E0689FB001112417C09091F5019923CF
+:1045F000D1F060911101961788F72091120185E0A2
+:10460000289F90011124929FA001939F500D112487
+:1046100070E0CA010E94DE2B6038710540F461151C
+:10462000710539F002C065E070E0862F08958FE7CC
+:10463000089581E008958091F40180FF08C06091A1
+:10464000100170E0759567957595679521C081FF9C
+:1046500006C06091100170E07595679519C082FFE2
+:1046600004C06091100170E010C09091F501992391
+:10467000C1F060910F019617A0F780911001899FFA
+:10468000C001112470E00E94DE2B6038710528F40F
+:104690006115710521F0862F08958FE7089581E057
+:1046A000089561E070E0F4CF803F21F40E94D222AF
+:1046B000819504C0813F29F40E94D2228093F801A1
+:1046C0000895823F21F40E94D222819504C0833F45
+:1046D00029F40E94D2228093F7010895893F19F4AA
+:1046E0000E941B2305C08A3F31F40E941B23819541
+:1046F0008093F90108958B3F21F40E941B2381953B
+:1047000004C08C3F29F40E941B238093FA01089572
+:10471000843F21F48091F601816017C0853F21F428
+:104720008091F601826011C0863F21F48091F601EC
+:1047300084600BC0873F21F48091F601886005C03A
+:10474000883F31F48091F60180618093F6010895ED
+:104750008D3F21F48091F40181600BC08E3F21F4E4
+:104760008091F401826005C08F3F29F48091F401AB
+:1047700084608093F4010895803F39F48091F801BA
+:1047800087FF6CC01092F80169C0813F29F48091C5
+:10479000F8011816BCF362C09091F701823F29F42A
+:1047A00097FF5CC01092F70159C0833F19F41916A6
+:1047B000CCF354C0893F41F48091F90118160CF0F4
+:1047C0004DC01092F9014AC08A3F29F48091F90145
+:1047D00087FF44C0F6CF8B3F39F48091FA0187FF01
+:1047E0003DC01092FA013AC08C3F29F48091FA0141
+:1047F0001816BCF333C0843F21F48091F6018E7FFC
+:1048000017C0853F21F48091F6018D7F11C0863F4E
+:1048100021F48091F6018B7F0BC0873F21F48091BA
+:10482000F601877F05C0883F31F48091F6018F7EC5
+:104830008093F60113C08D3F21F48091F4018E7FA7
+:104840000BC08E3F21F48091F4018D7F05C08F3F16
+:1048500029F48091F4018B7F8093F4018091F7011A
+:1048600081110EC08091F80181110AC08091F90177
+:10487000811106C08091FA01811102C01092F501E8
+:1048800008958091EC0183FF7EC086EE94E00E9443
+:10489000FA068091F6011F928F9381EE94E09F9328
+:1048A0008F930E9493078FED94E00E94FA06809107
+:1048B000F701282F332727FD30953F938F938CEDF9
+:1048C00094E09F938F930E9493078AED94E00E9457
+:1048D000FA068091F801282F332727FD30953F9362
+:1048E0008F9387ED94E09F938F930E94930785EDBC
+:1048F00094E00E94FA068091F901282F332727FDC2
+:1049000030953F938F9382ED94E09F938F930E9415
+:10491000930780ED94E00E94FA068091FA01282F17
+:10492000332727FD30953F938F938DEC94E09F9331
+:104930008F930E9493078AEC94E00E94FA0680917C
+:10494000F5011F928F9387EC94E09F938F930E94C1
+:10495000930785EC94E00E94FA068091F4011F927F
+:104960008F9382EC94E09F938F930E9493078FEB39
+:1049700094E00E94FA068DB79EB74C960FB6F89455
+:104980009EBF0FBE8DBF86EF91E00E94B0140E94C3
+:10499000A4209093F3018093F20108951F93CF9385
+:1049A000DF938091F2019091F3010E94B020AC015D
+:1049B0009091F501992321F02091130130E006C078
+:1049C000209114018AE0289F900111244217530777
+:1049D00008F486C08091F701C091F801D091F901E7
+:1049E0001091FA01811107C0C11176C0D11174C0B4
+:1049F000111172C075C09F3F19F09F5F9093F50130
+:104A0000181624F40E94D2228093F7018091F701B6
+:104A100087FF05C00E94D22281958093F7011C1662
+:104A200024F40E94D2228093F8018091F80187FF3C
+:104A300005C00E94D22281958093F8016091F70110
+:104A4000662339F1C091F801CC2319F1772767FD6E
+:104A50007095872F972F0E94E32A23E333E343E3E4
+:104A60005FE30E94472B0E94B02A6093F7016C2FEE
+:104A7000772767FD7095872F972F0E94E32A23E3FE
+:104A800033E343E35FE30E94472B0E94B02A609325
+:104A9000F8011D1624F40E941B238093F9018091D4
+:104AA000F90187FF05C00E941B2381958093F901BE
+:104AB000111624F40E941B238093FA018091FA01BD
+:104AC00087FF05C00E941B2381958093FA01DF9127
+:104AD000CF911F910C9441249F3F09F08ECF96CF28
+:104AE000DF91CF911F910895E6EFF1E085E0DF01BE
+:104AF0001D928A95E9F71092F5011092F40108953C
+:104B000089E097E00E94FA061F9281E08F931F923E
+:104B100085E08F938BEB96E09F938F930E94930792
+:104B20000F900F900F900F900F900F90089583307B
+:104B3000E9F128F4813061F0823009F1089585307F
+:104B400009F462C008F449C0863009F474C00895BD
+:104B500080911401262F30E0280F311D2F3F3105A1
+:104B600024F4680F6093140103C08FEF8093140145
+:104B7000809114011F928F9384EF95E072C0809111
+:104B80001301262F30E0280F311D2F3F310524F46B
+:104B9000680F6093130103C08FEF8093130180911E
+:104BA00013011F928F9382EE95E05BC080911201FA
+:104BB000262F30E0280F311D2F3F310524F4680FD8
+:104BC0006093120103C08FEF809312018091120154
+:104BD0001F928F938FEC95E044C080911101262F96
+:104BE00030E0280F311D2F3F310524F4680F60930A
+:104BF000110103C08FEF80931101809111011F9269
+:104C00008F938AEB95E02DC080911001262F30E024
+:104C1000280F311D2F3F310524F4680F60931001D8
+:104C200003C08FEF80931001809110011F928F932A
+:104C300081EA95E016C080910F01262F30E0280F01
+:104C4000311D2F3F310524F4680F60930F0103C01D
+:104C50008FEF80930F0180910F011F928F9386E851
+:104C600095E09F938F930E9493070F900F900F9062
+:104C70000F900895833081F128F4813059F082300B
+:104C8000D1F00895853009F449C0B8F1863009F4AF
+:104C900056C0089580911401681720F4861B8093F4
+:104CA000140102C010921401809114011F928F937D
+:104CB00087E795E054C080911301681720F4861BA4
+:104CC0008093130102C010921301809113011F926F
+:104CD0008F9385E695E043C080911201681720F418
+:104CE000861B8093120102C0109212018091120162
+:104CF0001F928F9382E595E032C080911101681771
+:104D000020F4861B8093110102C010921101809142
+:104D100011011F928F938DE395E021C080911001C6
+:104D2000681720F4861B8093100102C010921001B6
+:104D3000809110011F928F9384E295E010C08091C2
+:104D40000F01681720F4861B80930F0102C0109298
+:104D50000F0180910F011F928F9389E095E09F933F
+:104D60008F930E9493070F900F900F900F900895CC
+:104D7000CF93C82F1F928F938EE098E09F938F93CD
+:104D80000E94930781E090E0A0E0B0E0BC01CD017B
+:104D900004C0660F771F881F991FCA95D2F70E941B
+:104DA0001C1D0F900F900F900F90CF910C945C19D9
+:104DB000CF938B3109F4D1C108F049C08E3009F48A
+:104DC000E0C100F5873009F4A9C1A8F4863009F0E4
+:104DD00066C28091EC01817F8E7F8093EC0184E834
+:104DE00099E00E94FA0681E49DE00E94FA0681E0C3
+:104DF0008093FC0191C1883009F45BC08B3009F4C9
+:104E000087C14DC2813109F432C220F4803109F4E6
+:104E1000CCC145C2863109F4E3C1893109F03FC2F2
+:104E200085E799E00E94FA0682E699E00E94FA0678
+:104E300088E299E00E94FA068BEF98E00E94FA0659
+:104E400087EB98E00E94FA068CE898E063C185330E
+:104E500009F421C268F4873209F41DC228F48E31A6
+:104E600008F41DC28D5118C2893209F414C217C248
+:104E7000833438F48A3308F00CC2883309F448C10B
+:104E80000EC2833409F407C2883409F008C20E94B4
+:104E90005C1985E29DE00E94FA069FEF23ED80E316
+:104EA000915020408040E1F700C000000E94FF20A8
+:104EB00033C185E49DE00E94FA0682E99CE00E94ED
+:104EC000FA060E94C0221F928F938FE89CE09F9366
+:104ED0008F930E9493078DE89CE00E94FA060E943F
+:104EE000B722C82F8AE79CE00E94FA061F92CF9350
+:104EF00085E79CE09F938F930E94930783E79CE054
+:104F00000E94FA0689E69CE00E94FA068C2F8170C6
+:104F10001F928F9386E69CE09F938F930E94930746
+:104F200084E69CE00E94FA068AE59CE00E94FA066C
+:104F3000C1FB882780F91F928F9387E59CE09F93A0
+:104F40008F930E94930785E59CE00E94FA0689E40E
+:104F50009CE00E94FA06C2FB882780F91F928F937B
+:104F600086E49CE09F938F930E94930784E49CE0E7
+:104F70000E94FA068BE39CE00E94FA06C3FBCC2752
+:104F8000C0F91F92CF9388E39CE09F938F930E9478
+:104F9000930786E39CE00E94FA060E94C922C82F6C
+:104FA00082E29CE00E94FA061F92CF938DE19CE082
+:104FB0009F938F930E9493078BE19CE00E94FA06D7
+:104FC00082E09CE00E94FA068C2F81701F928F93E2
+:104FD0008FEF9BE09F938F930E9493078DB79EB7AF
+:104FE00080960FB6F8949EBF0FBE8DBF8DEF9BE0ED
+:104FF0000E94FA0686EE9BE00E94FA06C1FB882713
+:1050000080F91F928F9383EE9BE09F938F930E9472
+:10501000930781EE9BE00E94FA068FEC9BE00E94D2
+:10502000FA06C2FB882780F91F928F938CEC9BE0D5
+:105030009F938F930E9493078AEC9BE00E94FA064D
+:1050400088EB9BE00E94FA06C3FB882780F91F9239
+:105050008F9385EB9BE09F938F930E94930783EB45
+:105060009BE00E94FA0689EA9BE00E94FA06C4FBD4
+:10507000882780F91F928F9386EA9BE09F938F93F6
+:105080000E94930784EA9BE00E94FA0682E99BE073
+:105090000E94FA06C5FB882780F91F928F938FE83C
+:1050A0009BE09F938F930E9493078DE89BE00E9463
+:1050B000FA0681E79BE00E94FA06C6FB882780F982
+:1050C0001F928F938EE69BE09F938F930E9493078E
+:1050D0008CE69BE00E94FA0684E69BE00E94FA06BA
+:1050E000C7FBCC27C0F91F92CF9381E69BE09F932B
+:1050F0008F930E9493078FE59BE00E94FA068DB77D
+:105100009EB74C960FB6F8949EBF0FBE8DBF04C0DD
+:105110008BEA99E00E94FA06C1E0C6C08091EC01DA
+:10512000C82FC095C170C0FB80F98093EC01CC23DF
+:1051300049F089E19DE00E94FA068091EC018660C9
+:10514000886048C08CE09DE00E94FA068091EC01E6
+:10515000897F877F8093EC01DFCF9091EC0191FBF9
+:10516000CC27C0F981E0C827892FC0FB81F9809343
+:10517000EC01CC2319F08FEF9CE027C081EF9CE07D
+:10518000C9CF9091EC0192FBCC27C0F981E0C827F0
+:10519000892FC0FB82F98093EC01CC2319F082EEB9
+:1051A0009CE013C082ED9CE0B5CF9091EC0193FBA5
+:1051B000CC27C0F981E0C827892FC0FB83F98093F1
+:1051C000EC01CC2351F086EC9CE00E94FA06809121
+:1051D000EC0181608093EC0167C089EB9CE09ACF81
+:1051E0008EE798E00E94FA060E945B141F928F934C
+:1051F00084E698E09F938F930E94930780910B0120
+:105200001F928F938DE498E09F938F930E94930752
+:10521000809184011F928F938AE398E09F938F93EC
+:105220000E94930780910C011F928F9387E298E070
+:105230009F938F930E9493078091EE019091EF01CD
+:10524000A091F001B091F101BF93AF939F938F9321
+:1052500083E198E09F938F930E9493078DB79EB749
+:1052600046960FB6F8949EBF0FBE8DBF55CF0E94D5
+:105270005C19C0910C0181E0C827C0930C01CC23BC
+:1052800029F08FEA9CE00E94FA060EC084EA9CE0B6
+:1052900041CF895301C080E00E94B8263DCF82EA09
+:1052A0009CE00E94FA06C0E08C2FCF91089580E028
+:1052B000089580E00895CF93C82F8091FC0181303C
+:1052C00071F020F0823009F44BC042C1E0910D0131
+:1052D000F0910E018081823209F03CC107C0E0915B
+:1052E0000D01F0910E018081823261F48C2F0E94B9
+:1052F0005729811104C08C2F0E94D8262FC081E02D
+:1053000090E02CC08C2F0E945929811126C0C431F5
+:10531000E1F070F4CB3081F0C031D1F40E948025EF
+:1053200086E098E00E94FA0682E08093FC0115C0B6
+:10533000C93259F0C83361F484E899E00E94FA0652
+:105340008AE098E00E94FA0608C01092FC0104C1AD
+:1053500084E098E00E94FA06FFC081E08170FEC000
+:10536000C43228F5CE3108F0C1C0CB30A1F1D0F461
+:10537000C73009F0D3C08EE18093140182E380939B
+:1053800013018AE08093120184E18093110188E087
+:105390008093100188E280930F018AEA96E00E94D0
+:1053A000FA06BFC0C33149F1C431C1F0B7C0CB3434
+:1053B00009F4A9C028F4C93289F0C83361F0AEC03D
+:1053C000C13509F49EC0C23509F499C0CE3409F044
+:1053D000A5C06AE09EC00E948025A3C08091FB0109
+:1053E000882319F01092FB019CC087EB96E00E9485
+:1053F000FA0681E08093FC01B1C081E996E00E9449
+:10540000FA068FE796E00E94FA06809114011F9237
+:105410008F938CE796E09F938F930E9493078AE780
+:1054200096E00E94FA0688E696E00E94FA068091CD
+:1054300013011F928F9385E696E09F938F930E94AE
+:10544000930783E696E00E94FA0684E596E00E94C0
+:10545000FA06809112011F928F9381E596E09F9347
+:105460008F930E9493078FE496E00E94FA068EE3E2
+:1054700096E00E94FA06809111011F928F938BE3B0
+:1054800096E09F938F930E94930789E396E00E9492
+:10549000FA0684E296E00E94FA06809110011F92BB
+:1054A0008F9381E296E09F938F930E9493078FE101
+:1054B00096E00E94FA0688E096E00E94FA06809143
+:1054C0000F011F928F9385E096E09F938F930E9428
+:1054D000930783E096E00E94FA068DB79EB7489640
+:1054E0000FB6F8949EBF0FBE8DBF1BC0CE51EC2FE0
+:1054F000F0E0EF5BFE4F80818093FB0112C061E022
+:1055000003C061E006C06AE08091FB010E9497251C
+:1055100008C08091FB010E943A2603C088EA96E009
+:1055200013C08091FB01882369F01F928F9382EA58
+:1055300096E09F938F930E9493070F900F900F9088
+:105540000F9004C08FE996E00E94FA0681E006C041
+:105550001092FC0180E002C080E000CFCF9108955E
+:1055600004D06894B1118DC0089570D088F09F5711
+:1055700090F0B92F9927B751A0F0D1F0660F771F9F
+:10558000881F991F1AF0BA95C9F712C0B13081F07F
+:1055900077D0B1E0089574C0672F782F8827B85F5F
+:1055A00039F0B93FCCF3869577956795B395D9F7E0
+:1055B0003EF490958095709561957F4F8F4F9F4FEA
+:1055C0000895E89409C097FB3EF4909580957095F6
+:1055D00061957F4F8F4F9F4F9923A9F0F92F96E93F
+:1055E000BB279395F695879577956795B795F111B4
+:1055F000F8CFFAF4BB0F11F460FF1BC06F5F7F4F51
+:105600008F4F9F4F16C0882311F096E911C0772362
+:1056100021F09EE8872F762F05C0662371F096E86B
+:10562000862F70E060E02AF09A95660F771F881F3A
+:10563000DAF7880F9695879597F9089557FD905852
+:10564000440F551F59F05F3F71F04795880F97FB46
+:10565000991F61F09F3F79F0879508951216130600
+:105660001406551FF2CF4695F1DF08C0161617062F
+:105670001806991FF1CF8695710561050894089564
+:10568000E894BB2766277727CB0197F908950BD0BD
+:1056900078C069D028F06ED018F0952309F05AC070
+:1056A0005FC01124EECFCADFA0F3959FD1F3950F11
+:1056B00050E0551F629FF001729FBB27F00DB11D96
+:1056C000639FAA27F00DB11DAA1F649F6627B00D26
+:1056D000A11D661F829F2227B00DA11D621F739F0F
+:1056E000B00DA11D621F839FA00D611D221F749F1D
+:1056F0003327A00D611D231F849F600D211D822F64
+:10570000762F6A2F11249F5750408AF0E1F08823AA
+:105710004AF0EE0FFF1FBB1F661F771F881F9150B7
+:105720005040A9F79E3F510570F014C0AACF5F3FCB
+:10573000ECF3983EDCF3869577956795B795F795EA
+:10574000E7959F5FC1F7FE2B880F911D9695879572
+:1057500097F9089597F99F6780E870E060E00895F1
+:105760009FEF80EC089500240A9416161706180679
+:105770000906089500240A94121613061406050655
+:105780000895092E0394000C11F4882352F0BB0FE6
+:1057900040F4BF2B11F460FF04C06F5F7F4F8F4F49
+:1057A0009F4F0895991B79E004C0991F961708F040
+:1057B000961B881F7A95C9F78095089597FB072E49
+:1057C00016F4009407D077FD09D00E94F82B07FC4F
+:1057D00005D03EF4909581959F4F08957095619501
+:1057E0007F4F0895EE0FFF1F0590F491E02D09946F
+:1057F000AA1BBB1B51E107C0AA1FBB1FA617B707F7
+:1058000010F0A61BB70B881F991F5A95A9F7809512
+:105810009095BC01CD010895F999FECF92BD81BD4F
+:10582000F89A992780B50895A8E1B0E042E050E0E9
+:105830000C94342C262FF999FECF92BD81BDF89A95
+:10584000019700B4021639F01FBA20BD0FB6F894C4
+:10585000FA9AF99A0FBE08950196272F0E941B2CE1
+:105860000C941A2CDC01CB01FC01F999FECF06C087
+:10587000F2BDE1BDF89A319600B40D92415050400E
+:08588000B8F70895F894FFCF7A
+:10588800FF980C890D660D320DFE0C0101D9012817
+:1058980008140A321E0313233329397659497943E8
+:1058A80053637F6F5F4F1F0F3F4D362039F503A8B5
+:1058B800037203520319038C02A502BE02D702F732
+:0C58C800020102030405060708090000A5
+:00000001FF
diff --git a/keyboards/retro_refit/keymaps/default/keymap.c b/keyboards/retro_refit/keymaps/default/keymap.c
new file mode 100644
index 0000000000..405402d5e3
--- /dev/null
+++ b/keyboards/retro_refit/keymaps/default/keymap.c
@@ -0,0 +1,33 @@
+// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
+// this is the style you want to emulate.
+
+#include "retro_refit.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[0] =
+ KEYMAP( ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, NLCK, SLCK, PSCR, PAUS, \
+ GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, BSPC, HOME, \
+ TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, PGUP, \
+ BSLS, A, S, D, F, G, H, J, K, L, SCLN, QUOT, ENT, PGDN, \
+ LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT, UP, END, \
+ LCTL, LGUI, LALT, SPC, INS, DEL, LEFT, DOWN, RGHT),
+};
+
+const uint16_t PROGMEM fn_actions[] = {
+
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ // MACRODOWN only works in this function
+ switch(id) {
+ case 0:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
diff --git a/keyboards/retro_refit/retro_refit.c b/keyboards/retro_refit/retro_refit.c
new file mode 100644
index 0000000000..78b6edca75
--- /dev/null
+++ b/keyboards/retro_refit/retro_refit.c
@@ -0,0 +1,68 @@
+#include "retro_refit.h"
+
+__attribute__ ((weak))
+void matrix_init_user(void) {
+ // leave this function blank - it can be defined in a keymap file
+};
+
+__attribute__ ((weak))
+void matrix_scan_user(void) {
+ // leave this function blank - it can be defined in a keymap file
+};
+
+__attribute__ ((weak))
+void 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
+
+ // Disable status LED on KB, enable status LED on Teensy (KB_STATUS = !TEENSY_STATUS)
+ DDRD |= (1<<6);
+ PORTD |= (1<<6);
+
+ matrix_init_user();
+};
+
+void amatrix_scan_kb(void) {
+ // put your looping keyboard code here
+ // runs every cycle (a lot)
+
+ matrix_scan_user();
+};
+
+void led_set_kb(uint8_t usb_led) {
+ // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
+
+ if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
+ // output low
+ DDRD |= (1<<0);
+ PORTD &= ~(1<<0);
+ } else {
+ // Hi-Z
+ DDRD &= ~(1<<0);
+ PORTD &= ~(1<<0);
+ }
+ if (usb_led & (1<<USB_LED_NUM_LOCK)) {
+ // output low
+ DDRD |= (1<<1);
+ PORTD &= ~(1<<1);
+ } else {
+ // Hi-Z
+ DDRD &= ~(1<<1);
+ PORTD &= ~(1<<1);
+ }
+ if (usb_led & (1<<USB_LED_SCROLL_LOCK)) {
+ // output low
+ DDRC |= (1<<6);
+ PORTC &= ~(1<<6);
+ } else {
+ // Hi-Z
+ DDRC &= ~(1<<6);
+ PORTC &= ~(1<<6);
+ }
+
+ led_set_user(usb_led);
+}; \ No newline at end of file
diff --git a/keyboards/retro_refit/retro_refit.h b/keyboards/retro_refit/retro_refit.h
new file mode 100644
index 0000000000..77d354703a
--- /dev/null
+++ b/keyboards/retro_refit/retro_refit.h
@@ -0,0 +1,45 @@
+#ifndef RETRO_REFIT_H
+#define RETRO_REFIT_H
+
+#include "matrix.h"
+#include "keymap.h"
+#include "led.h"
+#include <stddef.h>
+
+// This macro is an example of using a non-standard row-column matrix. The
+// keyboard in question had 11 rows and 8 columns, but the rows were not all
+// horizontal, and the columns were not all vertical. For example, row 2
+// contained "Print Screen", "N", "M", ",", ".", "/", "Right Shift", and
+// "Left Alt". Column 0 contained "F6", "7", "O", "'", "Q", "D", "B",
+// "Left Alt", "Up Arrow", and "Down Arrow".
+//
+// The macro makes programming the keys easier and in a more straight-forward
+// manner because it realigns the keys into a 6x15 sensible keyboard layout
+// instead of the obtuse 11x8 matrix.
+
+#define KEYMAP( \
+ K77, K05, K04, K03, K02, K01, K00, KA7, KA6, KA5, KA4, KA3, KA2, K11, K94, \
+ K27, K76, K75, K74, K73, K72, K71, K70, K67, K66, K65, K64, K63, K62, KA1, \
+ K61, K60, K57, K56, K55, K54, K53, K52, K51, K50, K47, K46, K45, K97, \
+ K43, K42, K41, K40, K37, K36, K35, K34, K33, K32, K31, K30, K44, K87, \
+ K26, K24, K23, K22, K21, K20, K17, K16, K15, K14, K13, K12, KA0, K91, \
+ K10, K06, K25, K07, K86, K85, K95, K90, K93 \
+) { \
+{ KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, }, \
+{ KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, }, \
+{ KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, }, \
+{ KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, }, \
+{ KC_##K40, KC_##K41, KC_##K42, KC_##K43, KC_##K44, KC_##K45, KC_##K46, KC_##K47, }, \
+{ KC_##K50, KC_##K51, KC_##K52, KC_##K53, KC_##K54, KC_##K55, KC_##K56, KC_##K57, }, \
+{ KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_##K64, KC_##K65, KC_##K66, KC_##K67, }, \
+{ KC_##K70, KC_##K71, KC_##K72, KC_##K73, KC_##K74, KC_##K75, KC_##K76, KC_##K77, }, \
+{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_##K85, KC_##K86, KC_##K87, }, \
+{ KC_##K90, KC_##K91, KC_NO, KC_##K93, KC_##K94, KC_##K95, KC_NO, KC_##K97, }, \
+{ KC_##KA0, KC_##KA1, KC_##KA2, KC_##KA3, KC_##KA4, KC_##KA5, KC_##KA6, KC_##KA7, } \
+}
+
+void matrix_init_user(void);
+void matrix_scan_user(void);
+void led_set_user(uint8_t usb_led);
+
+#endif \ No newline at end of file