From a10e100bd5e8bad73e1b04f54639a4cec36e4b9e Mon Sep 17 00:00:00 2001 From: coderkun Date: Sun, 2 Oct 2016 09:55:38 +0200 Subject: [PATCH 01/19] Add double arrow Unicode characters to FMU layer --- keyboards/ergodox/keymaps/coderkun_neo2/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c b/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c index 0eedecf3d..238971e81 100644 --- a/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c +++ b/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c @@ -141,7 +141,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ├───────┼─────┼─────┼─────╆─────╅─────┤ │ │ ├─────╆─────╅─────┼─────┼─────┼───────┤ * │ │ ├ │ ┼ │ ┤ │ ✓ │ ✕ ├─────┤ ├─────┤ │ F5 │ F6 │ F7 │ F8 │ │ * ├───────┼─────┼─────┼─────╄─────╃─────┤(TL2)│ │(TL3)├─────╄─────╃─────┼─────┼─────┼───────┤ - * │ │ └ │ ┴ │ ┘ │ │ │ │ │ │ │ F1 │ F2 │ F3 │ F4 │ │ + * │ │ └ │ ┴ │ ┘ │ ↔ │ ⇔ │ │ │ │ │ F1 │ F2 │ F3 │ F4 │ │ * └─┬─────┼─────┼─────┼─────┼─────┼─────┴─────┘ └─────┴─────┼─────┼─────┼─────┼─────┼─────┬─┘ * │ │ │(MO1)│ │(MO4)│ │(MO4)│ │(MO1)│ │ │ * └─────┴─────┴─────┴─────┴─────┘ ┌─────┬─────┐ ┌─────┬─────┐ └─────┴─────┴─────┴─────┴─────┘ @@ -157,7 +157,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, UC(0x250C),UC(0x252C),UC(0x2510),UC(0x2500),UC(0x2502),KC_TRNS, KC_TRNS, UC(0x251C),UC(0x253C),UC(0x2524),UC(0x2713),UC(0x2715), - KC_TRNS, UC(0x2514),UC(0x2534),UC(0x2518),KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS, UC(0x2514),UC(0x2534),UC(0x2518),UC(0x2194),UC(0x21D4),KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_MS_L, KC_MS_U, KC_BTN1, From 8dd69a1b05770be3131f6e5917e2552ec6579519 Mon Sep 17 00:00:00 2001 From: coderkun Date: Mon, 3 Oct 2016 16:36:21 +0200 Subject: [PATCH 02/19] Overwrite method hex_to_unicode() for make it compatible with Neo --- .../ergodox/keymaps/coderkun_neo2/keymap.c | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c b/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c index 238971e81..b62b14449 100644 --- a/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c +++ b/keyboards/ergodox/keymaps/coderkun_neo2/keymap.c @@ -290,3 +290,28 @@ void unicode_input_start (void) { unregister_code(KC_LSFT); unregister_code(KC_LCTL); }; + +// Override method to use NEO_A instead of KC_A +uint16_t hex_to_keycode(uint8_t hex) +{ + if (hex == 0x0) { + return KC_0; + } else if (hex < 0xA) { + return KC_1 + (hex - 0x1); + } else { + switch(hex) { + case 0xA: + return NEO_A; + case 0xB: + return NEO_B; + case 0xC: + return NEO_C; + case 0xD: + return NEO_D; + case 0xE: + return NEO_E; + case 0xF: + return NEO_F; + } + } +} From 1048a588c750e27ff0f900cd6aaf670e034086d0 Mon Sep 17 00:00:00 2001 From: npoirey Date: Fri, 7 Oct 2016 17:15:11 +0200 Subject: [PATCH 03/19] Add Altgr combination for non US layouts --- quantum/keymap.h | 1 + 1 file changed, 1 insertion(+) diff --git a/quantum/keymap.h b/quantum/keymap.h index 98ddfd0c5..4b2192cb2 100644 --- a/quantum/keymap.h +++ b/quantum/keymap.h @@ -191,6 +191,7 @@ enum quantum_keycodes { #define HYPR(kc) (kc | QK_LCTL | QK_LSFT | QK_LALT | QK_LGUI) #define MEH(kc) (kc | QK_LCTL | QK_LSFT | QK_LALT) #define LCAG(kc) (kc | QK_LCTL | QK_LALT | QK_LGUI) +#define ALTG(kc) (kc | QK_RCTL | QK_RALT) #define MOD_HYPR 0xf #define MOD_MEH 0x7 From 628a48c7887e20a69b5a8c84cff956ba2ec7fed2 Mon Sep 17 00:00:00 2001 From: npoirey Date: Fri, 7 Oct 2016 17:18:19 +0200 Subject: [PATCH 04/19] Updated Readme to help windows users use docker for build --- readme.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/readme.md b/readme.md index a7320202b..db118f9a3 100644 --- a/readme.md +++ b/readme.md @@ -140,6 +140,9 @@ If this is a bit complex for you, Docker might be the turn-key solution you need docker run -e keymap=gwen -e keyboard=ergodox --rm -v $('pwd'):/qmk:rw edasque/qmk_firmware +# On windows docker seems to have issue with VOLUME tag in Dockerfile, and $('pwd') won't print a windows compliant path, use full path instead like this +docker run -e keymap=default -e keyboard=ergobop --rm -v D:/Users/Sacapuces/Documents/Repositories/qmk:/qmk:rw edasque/qmk_firmware + ``` This will compile the targetted keyboard/keymap and leave it in your QMK directory for you to flash. From 2d7b549e2172b6ffadcaf852055864e6213cfa72 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 9 Oct 2016 01:38:55 +0300 Subject: [PATCH 05/19] Add keymap with audio disabled but RGB effects enabled --- .../cluecard/keymaps/rgb_effects/Makefile | 21 ++++++++++++++++ .../cluecard/keymaps/rgb_effects/config.h | 9 +++++++ .../cluecard/keymaps/rgb_effects/keymap.c | 25 +++++++++++++++++++ .../cluecard/keymaps/rgb_effects/readme.md | 3 +++ 4 files changed, 58 insertions(+) create mode 100644 keyboards/cluecard/keymaps/rgb_effects/Makefile create mode 100644 keyboards/cluecard/keymaps/rgb_effects/config.h create mode 100644 keyboards/cluecard/keymaps/rgb_effects/keymap.c create mode 100644 keyboards/cluecard/keymaps/rgb_effects/readme.md diff --git a/keyboards/cluecard/keymaps/rgb_effects/Makefile b/keyboards/cluecard/keymaps/rgb_effects/Makefile new file mode 100644 index 000000000..00670c0cf --- /dev/null +++ b/keyboards/cluecard/keymaps/rgb_effects/Makefile @@ -0,0 +1,21 @@ +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = no # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/cluecard/keymaps/rgb_effects/config.h b/keyboards/cluecard/keymaps/rgb_effects/config.h new file mode 100644 index 000000000..441db52d9 --- /dev/null +++ b/keyboards/cluecard/keymaps/rgb_effects/config.h @@ -0,0 +1,9 @@ +#ifndef CONFIG_USER_H +#define CONFIG_USER_H + +#include "../../config.h" + +// place overrides here +#define RGBLIGHT_TIMER + +#endif diff --git a/keyboards/cluecard/keymaps/rgb_effects/keymap.c b/keyboards/cluecard/keymaps/rgb_effects/keymap.c new file mode 100644 index 000000000..3b6855825 --- /dev/null +++ b/keyboards/cluecard/keymaps/rgb_effects/keymap.c @@ -0,0 +1,25 @@ +#include "cluecard.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = KEYMAP( + RGB_TOG, RGB_SAI, RGB_VAI, \ + RGB_HUD, RGB_HUI, \ + RGB_MOD, RGB_SAD, RGB_VAD, \ + BL_STEP, \ + KC_NO, KC_NO, KC_NO \ + ) +}; + +void matrix_init_user(void) { +} + +void matrix_scan_user(void) { + +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return true; +} + +void led_set_user(uint8_t usb_led) { +} diff --git a/keyboards/cluecard/keymaps/rgb_effects/readme.md b/keyboards/cluecard/keymaps/rgb_effects/readme.md new file mode 100644 index 000000000..fa710b464 --- /dev/null +++ b/keyboards/cluecard/keymaps/rgb_effects/readme.md @@ -0,0 +1,3 @@ +# RGB effect test keymap for cluecard + +This keymap has audio disabled, and the RGB mode button does not go through the different effects From 70f32842e5d94f14d05c1f9adcb1b1144a25a132 Mon Sep 17 00:00:00 2001 From: Wojciech Siewierski Date: Sun, 9 Oct 2016 12:52:39 +0200 Subject: [PATCH 06/19] Reduce the default dynamic macro buffer There have been reports of it leaving not enough free memory preventing the keyboard from working properly. --- quantum/dynamic_macro.h | 9 +++++++-- readme.md | 4 ++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/quantum/dynamic_macro.h b/quantum/dynamic_macro.h index a3ad61bc7..e6dbc5b9c 100644 --- a/quantum/dynamic_macro.h +++ b/quantum/dynamic_macro.h @@ -8,8 +8,13 @@ /* May be overridden with a custom value. Be aware that the effective * macro length is half of this value: each keypress is recorded twice * because of the down-event and up-event. This is not a bug, it's the - * intended behavior. */ -#define DYNAMIC_MACRO_SIZE 256 + * intended behavior. + * + * Usually it should be fine to set the macro size to at least 256 but + * there have been reports of it being too much in some users' cases, + * so 128 is considered a safe default. + */ +#define DYNAMIC_MACRO_SIZE 128 #endif /* DYNAMIC_MACRO_RANGE must be set as the last element of user's diff --git a/readme.md b/readme.md index a7320202b..d28d7c3ff 100644 --- a/readme.md +++ b/readme.md @@ -823,7 +823,7 @@ And then, to assign this macro to a key on your keyboard layout, you just use `M ## Dynamic macros: record and replay macros in runtime -In addition to the static macros described above, you may enable the dynamic macros which you may record while writing. They are forgotten as soon as the keyboard is unplugged. Only two such macros may be stored at the same time, with the total length of 128 keypresses. +In addition to the static macros described above, you may enable the dynamic macros which you may record while writing. They are forgotten as soon as the keyboard is unplugged. Only two such macros may be stored at the same time, with the total length of 64 keypresses (by default). To enable them, first add a new element to the `planck_keycodes` enum -- `DYNAMIC_MACRO_RANGE`: @@ -864,7 +864,7 @@ Add the following code to the very beginning of your `process_record_user()` fun To start recording the macro, press either `DYN_REC_START1` or `DYN_REC_START2`. To finish the recording, press the `_DYN` layer button. The handler awaits specifically for the `MO(_DYN)` keycode as the "stop signal" so please don't use any fancy ways to access this layer, use the regular `MO()` modifier. To replay the macro, press either `DYN_MACRO_PLAY1` or `DYN_MACRO_PLAY2`. -If the LED-s start blinking during the recording with each keypress, it means there is no more space for the macro in the macro buffer. To fit the macro in, either make the other macro shorter (they share the same buffer) or increase the buffer size by setting the `DYNAMIC_MACRO_SIZE` preprocessor macro (default value: 256; please read the comments for it in the header). +If the LED-s start blinking during the recording with each keypress, it means there is no more space for the macro in the macro buffer. To fit the macro in, either make the other macro shorter (they share the same buffer) or increase the buffer size by setting the `DYNAMIC_MACRO_SIZE` preprocessor macro (default value: 128; please read the comments for it in the header). For the details about the internals of the dynamic macros, please read the comments in the `dynamic_macro.h` header. From 26759e126eec922cd642052baa3e43a3c62c4a7c Mon Sep 17 00:00:00 2001 From: Wojciech Siewierski Date: Sun, 9 Oct 2016 13:34:17 +0200 Subject: [PATCH 07/19] New Planck keymap: vifon --- keyboards/planck/keymaps/vifon/Makefile | 25 ++++ keyboards/planck/keymaps/vifon/config.h | 91 ++++++++++++ keyboards/planck/keymaps/vifon/keymap.c | 187 ++++++++++++++++++++++++ 3 files changed, 303 insertions(+) create mode 100644 keyboards/planck/keymaps/vifon/Makefile create mode 100644 keyboards/planck/keymaps/vifon/config.h create mode 100644 keyboards/planck/keymaps/vifon/keymap.c diff --git a/keyboards/planck/keymaps/vifon/Makefile b/keyboards/planck/keymaps/vifon/Makefile new file mode 100644 index 000000000..838cb4e88 --- /dev/null +++ b/keyboards/planck/keymaps/vifon/Makefile @@ -0,0 +1,25 @@ + + +# Build Options +# change to "no" to disable the options, or define them in the Makefile in +# the appropriate keymap folder that will get included automatically +# +BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/planck/keymaps/vifon/config.h b/keyboards/planck/keymaps/vifon/config.h new file mode 100644 index 000000000..9cb0634fb --- /dev/null +++ b/keyboards/planck/keymaps/vifon/config.h @@ -0,0 +1,91 @@ +/* +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 MANUFACTURER Ortholinear Keyboards +#define PRODUCT The Planck Keyboard +#define DESCRIPTION A compact ortholinear keyboard + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +/* Planck PCB default pin-out */ +#define MATRIX_ROW_PINS { D0, D5, B5, B6 } +#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } +#define UNUSED_PINS + +#define BACKLIGHT_PIN B7 + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* key combination for command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +/* prevent the modifiers from being stuck, sacrificing some memory */ +#define PREVENT_STUCK_MODIFIERS + +#ifdef SUBPROJECT_rev3 + #include "rev3/config.h" +#endif +#ifdef SUBPROJECT_rev4 + #include "rev4/config.h" +#endif + +#endif diff --git a/keyboards/planck/keymaps/vifon/keymap.c b/keyboards/planck/keymaps/vifon/keymap.c new file mode 100644 index 000000000..80c4a516c --- /dev/null +++ b/keyboards/planck/keymaps/vifon/keymap.c @@ -0,0 +1,187 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "planck.h" +#ifdef BACKLIGHT_ENABLE +# include "backlight.h" +#endif +#include "timer.h" +#include + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +enum userlayer { + _QW = 0, + _CM, + _PP, + _PPG, + _NM, + _LW, + _RS, + _DL, + _DYN, +}; + +enum planck_keycodes { + KM_LW = SAFE_RANGE, + KM_RS, + KM_SHLK, /* ShiftLock */ + KM_RST, /* Reset */ + KM_NUM, /* Numeric layer */ + KM_SLP, /* Sleep 250 ms */ + KM_PPLR, /* Pure Pro layer */ + DYNAMIC_MACRO_RANGE, +}; + +#include "dynamic_macro.h" + +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_QW] = { /* Qwerty */ + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {CTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_FN0 }, + {KC_LCTL, MO(_DYN),KC_LGUI, KC_LALT, KM_LW, KC_SPC, KC_SPC, KM_RS, KC_RALT, KC_DOWN, KC_UP, KC_RCTL} +}, +[_CM] = { /* Colemak */ + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {CTL_T(KC_ESC), KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_FN0 }, + {KC_LCTL, MO(_DYN),KC_LGUI, KC_LALT, KM_LW, KC_SPC, KC_SPC, KM_RS, KC_RALT, KC_DOWN, KC_UP, KC_RCTL} +}, +[_PP] = { /* Pure Pro */ + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT }, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_RSFT, KC_UP, KC_RCTL}, + {KC_LCTL, MO(_DYN),KC_LGUI, KC_LALT, KM_LW, KC_SPC, KC_SPC, KM_RS, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT} +}, +[_PPG] = { /* Pure Pro: Gaming */ + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, DF(_RS), _______, _______}, + {_______, _______, XXXXXXX, _______, KM_RS , _______, _______, KM_LW , _______, _______, _______, _______}, +}, +[_NM] = { /* Numeric */ + {KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {KC_LSFT, _______, _______, _______, _______, _______, _______, _______, KC_COMM, KC_DOT, _______, KC_FN0 }, + {_______, _______, _______, _______, _______, KC_SPC, KC_SPC, _______, _______, _______, _______, _______} +}, +[_LW]= { /* LOWER */ + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_ESC, LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), LGUI(KC_4), LGUI(KC_5), KM_NUM, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, LGUI(KC_6), LGUI(KC_7), LGUI(KC_8), LGUI(KC_9), LGUI(KC_0), KM_SLP, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_ENT }, + {_______, BL_TOGG, _______, _______, _______, KC_BTN1, KC_BTN1, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_RS]= { /* RAISE */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL }, + {KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), KM_PPLR, KM_RST, KC_ENT }, + {_______, BL_STEP, _______, _______, _______, KC_BTN2, KC_BTN2, _______, KC_MPLY, KC_VOLD, KC_VOLU, _______} +}, +[_DL]= { /* DUAL */ + {_______, _______, KC_WH_U, KC_MS_U, KC_WH_D, _______, _______, KC_APP, KC_INS, _______, KC_PSCR, _______}, + {_______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_ACL0, KC_ACL2}, + {_______, _______, KC_BTN2, KC_BTN3, KC_BTN1, KC_WWW_BACK, KC_WWW_FORWARD, KC_MUTE, _______, _______, _______, _______}, + {_______, _______, KC_LGUI, KC_LALT, _______, _______, _______, _______, _______, _______, _______, _______} +}, +[_DYN]= { /* special */ + {_______, DYN_REC_START1, DYN_MACRO_PLAY1, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, KC_PAUS}, + {_______, DYN_REC_START2, DYN_MACRO_PLAY2, _______, _______, _______, _______, _______, _______, KC_CAPS, KC_SLCK, KC_NLCK}, + {KM_SHLK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +}, +}; + +#undef _______ + +const uint16_t PROGMEM fn_actions[] = { + ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT), +}; + + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + static uint16_t key_timer; + + if (!process_record_dynamic_macro(keycode, record)) { + return false; + } + + switch (keycode) { + case KM_LW: + if (record->event.pressed) { + layer_on(_LW); + } else { + layer_off(_LW); + } + update_tri_layer(_LW, _RS, _DL); + return false; + break; + case KM_RS: + if (record->event.pressed) { + layer_on(_RS); + } else { + layer_off(_RS); + } + update_tri_layer(_LW, _RS, _DL); + return false; + break; + case KM_SHLK: + register_code(KC_LSFT); + break; + case KM_RST: + if (record->event.pressed) { + key_timer = timer_read(); + } else { + if (timer_elapsed(key_timer) >= 500) { + clear_keyboard(); + backlight_toggle(); + _delay_ms(250); + backlight_toggle(); + bootloader_jump(); + } + } + break; + case KM_PPLR: + if (record->event.pressed) { + key_timer = timer_read(); + } else { + if (timer_elapsed(key_timer) >= 250) { + default_layer_set((1UL << _PP) | (1UL << _PPG)); + backlight_toggle(); + _delay_ms(100); + backlight_toggle(); + } else { + default_layer_set(1UL << _PP); + } + } + break; + case KM_NUM: + layer_on(_NM); + break; + case KM_SLP: + if (record->event.pressed) { + _delay_ms(250); + } + break; + } + + + if (record->event.pressed + && IS_LAYER_ON(_NM) + && keymap_key_to_keycode(_NM, record->event.key) == KC_TRNS) { + + layer_off(_NM); + } + + return true; +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + return MACRO_NONE; +} From 0ae07ae64d3549d34c021f70b4a9877e5cd9ced9 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 9 Oct 2016 19:11:52 +0300 Subject: [PATCH 08/19] Tune the snake and knight effect parameters for Cluecard --- keyboards/cluecard/keymaps/rgb_effects/config.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/keyboards/cluecard/keymaps/rgb_effects/config.h b/keyboards/cluecard/keymaps/rgb_effects/config.h index 441db52d9..e88847df4 100644 --- a/keyboards/cluecard/keymaps/rgb_effects/config.h +++ b/keyboards/cluecard/keymaps/rgb_effects/config.h @@ -5,5 +5,8 @@ // place overrides here #define RGBLIGHT_TIMER +#define RGBLIGHT_EFFECT_SNAKE_LENGTH 3 +#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2 +#define RGBLIGHT_EFFECT_KNIGHT_OFFSET 2 #endif From 9b0e21f87f446935f29254bb623c2cfe29472b6e Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 9 Oct 2016 19:26:16 +0300 Subject: [PATCH 09/19] Tunable RGB light intervals --- quantum/rgblight.c | 6 ++++++ quantum/rgblight.h | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/quantum/rgblight.c b/quantum/rgblight.c index f82e3ec55..9eac87a20 100644 --- a/quantum/rgblight.c +++ b/quantum/rgblight.c @@ -42,10 +42,16 @@ const uint8_t RGBLED_BREATHING_TABLE[] PROGMEM = { 37, 35, 33, 31, 29, 27, 25, 23, 21, 20, 18, 17, 15, 14, 12, 11, 10, 9, 7, 6, 5, 5, 4, 3, 2, 2, 1, 1, 1, 0, 0, 0 }; + +__attribute__ ((weak)) const uint8_t RGBLED_BREATHING_INTERVALS[] PROGMEM = {30, 20, 10, 5}; +__attribute__ ((weak)) const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[] PROGMEM = {120, 60, 30}; +__attribute__ ((weak)) const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[] PROGMEM = {100, 50, 20}; +__attribute__ ((weak)) const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 50, 20}; +__attribute__ ((weak)) const uint8_t RGBLED_KNIGHT_INTERVALS[] PROGMEM = {100, 50, 20}; rgblight_config_t rgblight_config; diff --git a/quantum/rgblight.h b/quantum/rgblight.h index def26c428..17f04ffcf 100644 --- a/quantum/rgblight.h +++ b/quantum/rgblight.h @@ -40,6 +40,12 @@ #include "eeconfig.h" #include "light_ws2812.h" +extern const uint8_t RGBLED_BREATHING_INTERVALS[4] PROGMEM; +extern const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[3] PROGMEM; +extern const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[3] PROGMEM; +extern const uint8_t RGBLED_SNAKE_INTERVALS[3] PROGMEM; +extern const uint8_t RGBLED_KNIGHT_INTERVALS[3] PROGMEM; + typedef union { uint32_t raw; struct { From 02c9a992157d15c4988b9dc46cfa2f76bfea655c Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 9 Oct 2016 19:27:11 +0300 Subject: [PATCH 10/19] Tune snake and knight intervals for Cluecard --- keyboards/cluecard/keymaps/rgb_effects/keymap.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/keyboards/cluecard/keymaps/rgb_effects/keymap.c b/keyboards/cluecard/keymaps/rgb_effects/keymap.c index 3b6855825..74c95ce8a 100644 --- a/keyboards/cluecard/keymaps/rgb_effects/keymap.c +++ b/keyboards/cluecard/keymaps/rgb_effects/keymap.c @@ -10,6 +10,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; +const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {255, 170, 85}; +const uint8_t RGBLED_KNIGHT_INTERVALS[] PROGMEM = {255, 170, 85}; + void matrix_init_user(void) { } From db4dce731216cb6cdac65cb528329fd0caca5aa3 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 9 Oct 2016 19:37:47 +0300 Subject: [PATCH 11/19] Update the Cluecard readme files --- keyboards/cluecard/keymaps/default/readme.md | 4 ++++ keyboards/cluecard/keymaps/rgb_effects/readme.md | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/keyboards/cluecard/keymaps/default/readme.md b/keyboards/cluecard/keymaps/default/readme.md index 9e3b97bea..fa4e8ccad 100644 --- a/keyboards/cluecard/keymaps/default/readme.md +++ b/keyboards/cluecard/keymaps/default/readme.md @@ -1 +1,5 @@ # The default keymap for cluecard + +Note that this keymap has audio enabled, so the RGB mode button does not go through the different effects. +So the LEDs will still show a static light, that is configurable with the hue, staturation and brightness +buttons. You can of course also turn them on and off with the on/off button. diff --git a/keyboards/cluecard/keymaps/rgb_effects/readme.md b/keyboards/cluecard/keymaps/rgb_effects/readme.md index fa710b464..949cac394 100644 --- a/keyboards/cluecard/keymaps/rgb_effects/readme.md +++ b/keyboards/cluecard/keymaps/rgb_effects/readme.md @@ -1,3 +1,7 @@ # RGB effect test keymap for cluecard -This keymap has audio disabled, and the RGB mode button does not go through the different effects +This keymap is made for testing the RGB effects. Audio is disabled and the mode buttons goes through each +effect. If you run HID-listen you will be able to see which effect is active. For a list of effects, check +the `rgblight.c` file. + +The hue, saturation and brightness buttons will work depending on which effect is active. From 92a3a96849aee708753a6623b0db228023e3baf8 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 9 Oct 2016 19:47:05 +0300 Subject: [PATCH 12/19] Apply the dim curve to the RGB output Just like it's supposed to be used. It now looks much better. --- quantum/rgblight.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/quantum/rgblight.c b/quantum/rgblight.c index f82e3ec55..b36a1fda0 100644 --- a/quantum/rgblight.c +++ b/quantum/rgblight.c @@ -55,13 +55,8 @@ uint8_t rgblight_inited = 0; void sethsv(uint16_t hue, uint8_t sat, uint8_t val, struct cRGB *led1) { - // Convert hue, saturation, and value (HSV/HSB) to RGB. DIM_CURVE is used only - // on value and saturation (inverted). This looks the most natural. uint8_t r = 0, g = 0, b = 0, base, color; - val = pgm_read_byte(&DIM_CURVE[val]); - sat = 255 - pgm_read_byte(&DIM_CURVE[255 - sat]); - if (sat == 0) { // Acromatic color (gray). Hue doesn't mind. r = val; g = val; @@ -103,6 +98,9 @@ void sethsv(uint16_t hue, uint8_t sat, uint8_t val, struct cRGB *led1) { break; } } + r = pgm_read_byte(&DIM_CURVE[r]); + g = pgm_read_byte(&DIM_CURVE[g]); + b = pgm_read_byte(&DIM_CURVE[b]); setrgb(r, g, b, led1); } From ffae9d84c5279b463da112ee15568d536649b819 Mon Sep 17 00:00:00 2001 From: Fred Sundvik Date: Sun, 9 Oct 2016 19:53:41 +0300 Subject: [PATCH 13/19] CIE 1931 dim curve --- quantum/rgblight.c | 47 +++++++++++++++++++++++++++++----------------- 1 file changed, 30 insertions(+), 17 deletions(-) diff --git a/quantum/rgblight.c b/quantum/rgblight.c index b36a1fda0..9ddc243b2 100644 --- a/quantum/rgblight.c +++ b/quantum/rgblight.c @@ -6,24 +6,37 @@ #include "rgblight.h" #include "debug.h" +// Lightness curve using the CIE 1931 lightness formula +//Generated by the python script provided in http://jared.geek.nz/2013/feb/linear-led-pwm const uint8_t DIM_CURVE[] PROGMEM = { - 0, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, - 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, - 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 11, 11, 11, - 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, - 15, 15, 16, 16, 16, 16, 17, 17, 17, 18, 18, 18, 19, 19, 19, 20, - 20, 20, 21, 21, 22, 22, 22, 23, 23, 24, 24, 25, 25, 25, 26, 26, - 27, 27, 28, 28, 29, 29, 30, 30, 31, 32, 32, 33, 33, 34, 35, 35, - 36, 36, 37, 38, 38, 39, 40, 40, 41, 42, 43, 43, 44, 45, 46, 47, - 48, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 68, 69, 70, 71, 73, 74, 75, 76, 78, 79, 81, 82, - 83, 85, 86, 88, 90, 91, 93, 94, 96, 98, 99, 101, 103, 105, 107, 109, - 110, 112, 114, 116, 118, 121, 123, 125, 127, 129, 132, 134, 136, 139, 141, 144, - 146, 149, 151, 154, 157, 159, 162, 165, 168, 171, 174, 177, 180, 183, 186, 190, - 193, 196, 200, 203, 207, 211, 214, 218, 222, 226, 230, 234, 238, 242, 248, 255 -}; + 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, + 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, + 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, + 7, 8, 8, 8, 8, 9, 9, 9, 10, 10, + 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, + 13, 14, 14, 15, 15, 15, 16, 16, 17, 17, + 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, + 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, + 28, 28, 29, 29, 30, 31, 31, 32, 32, 33, + 34, 34, 35, 36, 37, 37, 38, 39, 39, 40, + 41, 42, 43, 43, 44, 45, 46, 47, 47, 48, + 49, 50, 51, 52, 53, 54, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 70, 71, 72, 73, 74, 75, 76, 77, 79, + 80, 81, 82, 83, 85, 86, 87, 88, 90, 91, + 92, 94, 95, 96, 98, 99, 100, 102, 103, 105, + 106, 108, 109, 110, 112, 113, 115, 116, 118, 120, + 121, 123, 124, 126, 128, 129, 131, 132, 134, 136, + 138, 139, 141, 143, 145, 146, 148, 150, 152, 154, + 155, 157, 159, 161, 163, 165, 167, 169, 171, 173, + 175, 177, 179, 181, 183, 185, 187, 189, 191, 193, + 196, 198, 200, 202, 204, 207, 209, 211, 214, 216, + 218, 220, 223, 225, 228, 230, 232, 235, 237, 240, + 242, 245, 247, 250, 252, 255, + }; + const uint8_t RGBLED_BREATHING_TABLE[] PROGMEM = { 0, 0, 0, 0, 1, 1, 1, 2, 2, 3, 4, 5, 5, 6, 7, 9, 10, 11, 12, 14, 15, 17, 18, 20, 21, 23, 25, 27, 29, 31, 33, 35, From e95c1e3f2c5137b114aa947f875c52e4a5c74b5d Mon Sep 17 00:00:00 2001 From: Nathan Johnson Date: Sat, 8 Oct 2016 13:20:36 -0500 Subject: [PATCH 14/19] Adding whiskey_tango_foxtrot_capslock ergodox keymap --- .../keymap.c | 231 ++++++++++++++++++ .../osx_whiskey_tango_foxtrot_capslock.png | Bin 0 -> 185064 bytes .../readme.md | 38 +++ 3 files changed, 269 insertions(+) create mode 100644 keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/keymap.c create mode 100644 keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/osx_whiskey_tango_foxtrot_capslock.png create mode 100644 keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/readme.md diff --git a/keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/keymap.c b/keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/keymap.c new file mode 100644 index 000000000..98d2836ab --- /dev/null +++ b/keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/keymap.c @@ -0,0 +1,231 @@ +/* + * This is built out of frustration with OSX / Sierra caps lock delay. + * Fake it till you make it! + */ + +#include "ergodox.h" +#include "debug.h" +#include "action_layer.h" +#include "timer.h" + +#define BASE 0 // default layer +#define SYMB 1 // symbols +#define MDIA 2 // media keys + +#define BLINK_BASE 150U // timer threshold for blinking on MDIA layer + +typedef enum onoff_t {OFF, ON} onoff; + +#define caps_led_on ergodox_right_led_2_on +#define caps_led_off ergodox_right_led_2_off + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Keymap 0: Basic layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | | ` | 7 | 8 | 9 | 0 | - | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | CapsL | A | S | D | F | G |------| |------| H | J | K | L | ; | " | + * |--------+------+------+------+------+------| ~L1 | | ~L1 |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | Ctrl | Opt | Cmd | Left | Right| | Down | Up | Ctrl | Cmd | Opt | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | L1 | | Alt | Ctrl ] + * ,------|------|------| |------+--------+------. + * | | | Home | | PgUp | | | + * |Backsp| Del |------| |------| Enter | Spc | + * | | | End | | PgDn | | | + * `--------------------' `----------------------' + */ + + [BASE] = KEYMAP( // layer 0 : default + // left hand + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, + KC_TAB, M(KC_Q), M(KC_W), M(KC_E), M(KC_R), M(KC_T), KC_LBRC, + M(KC_CAPS), M(KC_A), M(KC_S), M(KC_D), M(KC_F), M(KC_G), + KC_LSFT, M(KC_Z), M(KC_X), M(KC_C), M(KC_V), M(KC_B), KC_FN0, + KC_LCTL, KC_LALT, KC_LGUI, KC_LEFT, KC_RGHT, + KC_TRNS, KC_FN1, + KC_HOME, + KC_BSPC, KC_DEL, KC_END, + // right hand + KC_GRV, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, + KC_RBRC, M(KC_Y), M(KC_U), M(KC_I), M(KC_O), M(KC_P), KC_BSLS, + M(KC_H), M(KC_J), M(KC_K), M(KC_L), KC_SCLN, KC_QUOT, + KC_FN0, M(KC_N), M(KC_M), KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_DOWN, KC_UP, KC_RCTL, KC_RGUI, KC_RALT, + KC_RALT, KC_RCTL, + KC_PGUP, + KC_PGDN, KC_ENT, KC_SPC + ), +/* Keymap 1: Symbol Layer + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | ` | F1 | F2 | F3 | F4 | F5 | F6 | | | F7 | F8 | F9 | F10 | F11 | F12 | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | L0 | L2 | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +// SYMBOLS + [SYMB] = KEYMAP( + // left hand + KC_GRV ,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_FN3, KC_FN2, + KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS, + // right hand + KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ), +/* Keymap 2: Media and tenkey + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | BOOTL | | Mute | Vol- | Vol+ | F14 | F15 | | | | NumLk| / | * | - | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | 7 | 8 | 9 | + | | + * |--------+------+------+------+------+------| | | |------+-----+-------+------+------+--------| + * | | | | | | |------| |------| | 4 | 5 | 6 | + | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | 1 | 2 | 3 | Enter| | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | 0 | 0 | . | Enter| | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | L1 | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ + // MEDIA AND TENKEY + [MDIA] = KEYMAP( + KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_F14, KC_F15, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, + KC_FN4, KC_NO, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, + // right hand + KC_NO, KC_NO, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_NO, + KC_NO, KC_NO, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_NO, + KC_NO, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_NO, + KC_NO, KC_NO, KC_P1, KC_P2, KC_P3, KC_PENT, KC_NO, + KC_P0, KC_P0, KC_PDOT, KC_PENT, KC_NO, + KC_NO, KC_NO, + KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS + ), +}; + +const uint16_t PROGMEM fn_actions[] = { + ACTION_LAYER_MOMENTARY(SYMB), // FN0 - Momentary Layer 1 (Symbols) + ACTION_LAYER_ON(SYMB,ON_RELEASE), // FN1 - Enable Layer 1 (Symbols) + ACTION_LAYER_ON(MDIA,ON_RELEASE), // FN2 - Enable Layer 2 (Media) + ACTION_LAYER_OFF(SYMB,ON_RELEASE), // FN3 - Disable Layer 1 (Symbols) + ACTION_LAYER_OFF(MDIA,ON_RELEASE), // FN4 - Disable Layer 2 (MMedia) + ACTION_LAYER_MOMENTARY(MDIA) // FN5 - Momentary Layer 2 (Mdia) +}; + + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + static onoff caps_state = OFF; + switch(id) { + case KC_CAPS: + if (record->event.pressed) { + // Toggle caps state; + if (caps_state == OFF) { + // Turn it on then! + caps_led_on(); + caps_state = ON; + } else { + caps_led_off(); + caps_state = OFF; + } + } + break; + default: + if (record->event.pressed) { + bool shifted = false; + if (caps_state == ON && get_mods() == 0) { + register_code(KC_LSFT); + shifted = true; + } + register_code(id); + if(shifted) { + unregister_code(KC_LSFT); + } + } else { + unregister_code(id); + } + break; + } + return MACRO_NONE; +}; + +// Runs just one time when the keyboard initializes. +void matrix_init_user(void) { + +} +// Runs constantly in the background, in a loop. +void matrix_scan_user(void) { + uint8_t layer = biton32(layer_state); + + static onoff board_led_state = OFF; + static uint16_t dt = 0; + static uint8_t oldlayer = 0; + + if(oldlayer != layer) { + // Layer was just toggled. + if(layer == BASE) { + ergodox_board_led_off(); + board_led_state = OFF; + } else { + ergodox_board_led_on(); + board_led_state = ON; + } + } else if (layer >= MDIA) { + // We need to do blinking. + if(timer_elapsed(dt) > BLINK_BASE) { + // toggle + dt = timer_read(); + if(board_led_state == OFF) { + ergodox_board_led_on(); + board_led_state = ON; + } else { + ergodox_board_led_off(); + board_led_state = OFF; + } + } + } + oldlayer = layer; +} diff --git a/keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/osx_whiskey_tango_foxtrot_capslock.png b/keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/osx_whiskey_tango_foxtrot_capslock.png new file mode 100644 index 0000000000000000000000000000000000000000..8d49e5e61d8bb06bcfd0fb80ec12891027ff5b31 GIT binary patch literal 185064 zcmeFZgYmRFq^e(MizZ;NURd%1Wxi!6AWxp9j=uz$eJ- z(0Vwy=fqYL5-M*cBq&v!9o}2nn!~}#Mx|<_=%^2X^7PbD(O7ZdnF{#ccoU$uqsyYa zq(Z}y3l05fA_F4O$6y9kZ8Jv}+Q6HAjx>SbLZ>6BnOXKs;4zpT)Lu_dcX)I-9NY=G z3}-(66!G9h4E(|>#K-qi6P{8gf&By4i8(zz9oO51Km^&qXJWCm<$M5R^QmMA7|4zgYZYE5^C*x69+m#??|%GAns* zHx93L_$z+hBrg5N-KuvGJcY2UVoDxrJQJQs_Ty$XAGD5iDy+EVxl0#Gf5#y>M7S4@ zzaJntd#``uSoB`^*NW&do`+pnB8iF7YQ?FC)fH|Wk0HEqmuwOqK6!4~&$u{@kKFTN zw)hxPf-*ccoSfxnq+-Icq#pX!F)j|vn|Z3iXtd;8QRbgVF+>fx(M5DQu~h!)^v^$} z{Wi`LC>(2h^%6@@kgy8*Lux+mOYmtgo>yVdkt&vcUO?an#P1tutLyWxbPPJioR^a3 z|1dU-e9cWKd%>z_@dsK?`F^sIg#wgeO9o}g{4>gUtuN7hty;@z&yNlZqBufPpbTdv z_=%7ixU{%5iXAW@jR5}=^^M>%yiN1_Nt!o;)PW;JDyR>kktmX;{vG40sks%k-^nvHi}t#v9Fx_qHXDS@2O zXSQ&9->{%BH9|s`Q7z#Zx&$0?^^wVz>6@_k3JKeg5RFlv)1ZorTcVPUiJ#%(_n_Cx z=;N}}!lB6&CeqR(zm-9XB+85jOARJCn_+yxsCeTqr9`=v@I#itnb7OQ8I?nVGGn-! zs+$HOj}${;bvZUk`1itzF;{MER>_z#&29R6bdkVcMO&kvwiWAN`bA-xz^V5TWx&6W zZ8q`Op-uZx0ui^R(u&qJ*3=>Ug|u|)R`qhPPjpo>CyvX>Mkl+=lXST2^eF5~&KJWl zc6yEV%I%IrG%$c}6jcz3C0K|mG(lFD;U|3x4l}9`S|1wWvd4rx5j9@a^Frb=WdHQH zJqoMBt8%Nnt5mD+Oc-h-_+_aR>t(fQmDOmY6bBhn6L^!c5{466WZR3e&7{7F{>~$n zRiek}ms&?Z@jtP0CcGB#(s?7*CD~;_r55z*l{TaSMjl2VW`o|2-u*%|nz%O^Pkx{n zTwq%`smi88uCmC?%uK@E!lb0S&cdcOU+k%KoV04%8?V7rNjDWQ7|UE*U3gHGSF%{r zQ8H#($_--8OjFjA`c#lxCQ|69Qpoa~F^thE6~v^;JjLS1)UKwb!mE0rnpdD-u3zA* zah>Jd866y55uJ~&XI>yzGKiKs#~f1Wswp%jJ4HH`T6wF<{;5NSrXsTvx!h?gddmG% zuJ&GmsVhwjMXrRA+>%7+>qAY3%Iu1Wa*N9J3JMJeZHiHq3CGFE>5L-P3MaXu>>v&W zVyX|e->tvnerNq&=G3z0`~CR)XCiIBYMXhVq2nyDV&40TO{$^nto-^6U3lGhx;70Y z_2kxTvuU&H^%gb`(;Xid#0>q~`aFlP#*bybFHO901G^QvZSMT}Wi>%OIW>VfJ~XvZ zWhACMasA8Z zFSCfh6N8A!Iejf9Ih=XqxO5#RZMluB9E5*+b~t@L7Qsix*G_((983S1{!np90be0K zlQ*N|)dV*N2MhNn9v@>Ru1nq#t{Tox$eVh{hW;-z@5dlfx`OZC>uBj3)`@@4`Fy1{ zS0%`RL*Jx`qfnmZIG1I;Z)#v{U~@kc4#BrqH=8g%wJtpFS&y<|_^Nbgy=Rtf*V=c{ zk(*^uZjfk@yztUT-Y3qlm~FooH5Zk2q`_=9?0e1eValZ=@cG&uUpvH?);bRF z=kGyRx#xX%A$RikbBL1&s|a6_gweU5D_~b)lA=1JXA!#cX5f&5+IX+rBkfTcis{WL zC+S?@SjrRefaz`JXObO%I6^!p%v_zf*WHpSBr_yYsY$5cn8~iU^hc<^SM^fuRHRah z%2E^9cvo+5cDMbD$ouEdjC&4=+K$>!riXo*eNk&!YpH8xz0*CN%16qK%G*jg8BLVO z)=BPoVig>jDWv&rd|r;$-zG8DeaZwBSu)*iT7I7iOt6oP<|T@(O)6|;{>hY4M`c1| zx>Xmgqxr4*r)x4{@^b|uso1deusmB#Yu;Sn>3ZsEUYS>EYFWGNrGioVV){z1YU0?) z<(k7v=kW94`NV5c7ET+ZU$XAv7X_rwN^-+!L0OdYqnz>%zjEH?HfuH0H7|G_c)dJ% z77Bs2Q%iCiOlH(z#S7S(xEw35_8}W0ry^6l?;8;nlyQqQR+`iQ(af?b%KjXDXHG5} z&sF2q(RD|6O2K~g4r)X7<&_)cl)6Z&H^!R~g|*sH{9RJR`X%*T;Yp!~JboH4!5)a6 z?ckbeyKEM(1P?N>Z%+Qh9o(0Gn%-FBs8j3JJFRBFlgc^wCHl(8u4}4)}Z$Mp7-Eu^?ud9n~qFMLTl0KlBM&!MH~Cn3#UcOP`%gAwx=waWK~^Y&ST_{5 zRdv;KZjnyqe_ru}Meq7*m^v2)@!X5A%lF1wOzHc+l9y4if0o(Z`i0GH#_h^S&*Pql zDl#^|KIVGIm%Vh6%gz7JOKxp)cOqq?w@haEMINzmw$Il`{hQ{z&CH?85r(|ZG0u{b zd-0htc|t_?Jcn~D5to6}@qr%)>B{;}?cT}0Sx&C5{2lIvjLmRrL5qdJ} zTgAf@28#w;)wf2So;2&)n00s9J4)IL#uwU{|_8z5pWB zdHiB}Gke6X{Da25%O1-v@j9Rl_jHv<(1zK z%4h5;3InmP{&H7mzMdBr<6DYG;0|s-%-b7dS_?DUbXGI@cmyI_OI;E;hYR@E^1&7n zSa6JTUs}^OaDMx#Mt=){eYwrlSROE^zzA&Wg$wQG8g!pgpe%(MI-kXv!%ucWss^M| zHjUY1q{8@!U=fLljV*8qS#Vd>q{PIFyqqWI*t9-`fpuPAgz_aLk9<2P)Pk!O$913k zCj=mrBia&+dD#X6wE~)>>^m1YI1t^_5Bys-+9NnP_J2r@!gNZqt zr=25kG#s3;ry%gw&fFD3>1k(c?;_|aLjBhfg24NykJ+gy|2o9gMub{NQH4^%!P%UW zhmD)<6}2cjB_*Y>v)Ow=HA(5ePX~Szp|*5&brfW0_wevw^Wb80aJFFQ5D*Yxf5pkp z$;k>F!Rq2=?+Wo`wRfTU*G2w)9Z7Q+Q)eqjS1Sj5%BSl>OdQ-?MX0HtZuFmj{~D*c zr`7+tlfBE|(*h>Q{`3ty2iq(5|6Ch5Rru*sK@}@cb6XurD?4+07vLVE9Itr!h5tI? zzrOlExBMTczWX1ia`OFOr~Z$x{ytTh{b>sSV@m&8ufIM87EBafnEgMCFN!|W2O0wQ zgVah=Sp#@Qc-kD`B>;G0{MRe+9zMctl5X$?9NcTTw~}u(JmLT3qJ6~Nxb35u_TIk* zB{HTKq9%%eNukzTVfS%=$82@2Sx;lm^1FiZHtmbqk8x(HG>u5=9}O-}*PSCiKJm@d zA|CIDy_N)i+z%h7b8Y<;I&3@j8WFJ=wphIM8aDu8K;YqV;Qsp&^olwG3r79H8&UBe z4@f|w1RqKN!-?=Xs6q%hAjmYGB@SvJ+8UzF8U={7`LPgP3QbUp|+*i6Tb zmnkdf`&|&%*6TDmQt{Z%sQkL!$`2SXRm?7bn@q3WfY1I9tNXeMKM)E%8?82IEmz3o zJp0KtqB8f@j>%#;hudP9)ca(B!D=9hPNUP`@8<4wq=a=MU!!$!z>cFY~{@QJttDC zS>O>jE{Kx7CoAfw$XKH7#`M=-zAx5rN-N|H6|L;t0Wm6{WeckxyXZs zR`n=6x^+f$w+z>v@qsNc1F!82Wm)vR^AA>Tp9|aO>cNt;epqn)kh++fF1>P|0)uj1 zin^BCY~1w!_7K2fDAiD3>*#n#%P7@bO-RQjHErejFshd-sNp!ik|$R!Sd}3Gj8G#1`h17{JzK zyQaa2ap<@Xm;OMM=$q^->bU%RwTXxbl1NS7hWcNyf%66cqK7>&mj6H!Rf!epKw0P! z+b_6m(&<9o25ZrRg5A{_LLTc$+4KEx=DFw?agebNKcCrVmn}_rF@bPojQGd3;x1R2Kv*Ih~_=Eb@hf@xmT> zHU7_XBB{OF&d;xok@rOXRc7XiHS+|F3kfZpc|8K)TXALUJ5bZj8U^PMS(`p z^!xM7UnwE)4rXdYqF*qr&gIv+&3o^CJ`pIBY=5}f^PAIQJE~6#c({)6lzaR8i}_AZ z6h3DNYJBi=U@j>|H%Zlmy&S4`hx3LUasTQ0v{Cwm_LcAZp)9(&ey3Mi+*Z_cQ15f= z*(Rr=pCqd`FSPz?xZ-~eS8UM+*lO!^M>xeaY*G}HtD}{UFJwaQDa69F4K@sGIvSsK zry64?!cSa41YoJ89|>F*!~Lot_V%+RhkWnz-Lclg4i@BRo&E5F&31QL_>ivKD!oRf z@10kGrCe2zZgll+@sn7uY{|rvOTj52BgOxBB*B#eA_+#L2&{1BWaEdkpi~<8-QB@3 z4ZVHmy*mk?y?*qL{8XHb)n#xig)Sey#_oaRRbr4T`Rh(zA|10bPQ~X8*kBVVxsmk&H-}L{R%PTHPdEkq%FXTfdDKqUd zvsY(PShZt%rV+0DA4?g35rj|3K9)DJMRSu=^CKGSLkv-KkdIQ<8?9qj6Y}I`+YIuv9hsBPd4UMR#VA* zL=tQSL!3b9Q7~s5JOT+2tSm#LD*tnH>NvoIdfbRfo+H2mu@sev%pECc6gVCg(}R@Y z-zG^Z48)dD8L^K9l*`D#nAjQDh^QDGk59~76n4ZH<6gf^P^uS|Xz96-$%ZyL?r@F; zY=Ic_RSx>&^Z0uYpp2#>r^88UR236i97V`2@i5Yqx%6!TK- zW4SzK#EWk%^T>fW-u%0jy(F&qFmXc7NyNVa;Q?5!D+~N+)?Xj9aXu zxghrq;M1t+`4_oV;CdRVu)pyxff>kgHI6+yaA7c)b$;Veyg+E=Xq-gd0&uuv-w)Rv zO9GIPa&FmDPe5YZBvVE#XJ0W*9P5{}rGBM+pLSV7ZC;s8*#oS4G9>D_Z_3o?7Y{CI zxYPDi#(6PIA06GVQzEu&M0};~qWk;wT;3Ph)X|sXMnF+(*g}D)hu1c+bYMfTE--aV z69K%F&LF9b)`HaP>d#2u^xEZ*dolTh6A5NJW`^IpOG-FIR7YE1n^d?5*%sKq#XU!` zO86EWpfoQA#{_sbW9(gdeHgD$}AYpVZW?->jo zg&R{LzyXDSE7Zl2r2)_p_Nj;pjBpsAYm=rv92{2R_}e*1J83Wv2UPK`iyj9G*c|lR zH|sNC#TUCr&%P-zgoEz51{rW(rR2ENOARV$;;L0H^tF?pxDTpsQ$f5+h;!F8a zCVYLePVE2*9i(3rz=5TFpOz%~7N!Gr<1(u51tay4A-FnA#x?Z-q*L#odu0imqGDJq zh#rQCx}Mc6oLxn5Svp6&PkC$^#{uzfS6L}?(Dgh^>&pgSOqcmdQBeT{Svltgrd%b~ zaqEiC>Uqty%j-f+z^Y9Jm9xDFhC<;(hbWIIg1BkG{6?o^r-?6-24g(_*foFYZ{G6- zV{tcZTnVsa+592mi!}Dhsmmrr#qjyLHIh^6^qIUk$zxHf!3XQ(W%iP?rk=+~YrEFp zhkw3=rqh7g=ps9Bf21?fOPGvuq$@VCVnHA=jAqD`VDWHr6s7LJ7WR}1Jb&4@A)juk zc1!R2C;xuZri)}SgO1}_u1t@WKT1T+YjE=(%PcH%5nAmonm%C2d`tT-^+jEP z3gQ_Am2L0#H{{NKFS@|fD^8I8wNyGJLcPT`iejD#__HG!o$x}4%D>zfx+-9l>EZ{;cls^8OYs|FQ zdGLmhR6v3SOUm6n*M8M6?XWXD@9s7+K*j`^l*s|Oe3q+p<%mI z_1CD7f{G;$7>t}YG)#oXCW`D+`nZgNo}N+CUhfa>!oJ09Spf`!W^28V>=_`?eD%W8 z=Q6Z-zCw7L#_SR2z|HRk=1-CS^3hc|ArF$!8kTUjtb1}MgUAf z7VsJA%AVn=AC|h)S{l{5r{4H;lZ9p%D%H{o_K|R0uaGu0g1x{#~R*o)92y`?WKQ$>fG1$Zl5WglNr1^G8P$OeO0PN>+mLhN4{JqOm4skYq$9=B++pN zK@qQ84Lb&su+Q+bcqDIEd}zr(AAQNyM#b);kt;MzjI$ts3`TwC7YHgAc>=qsEnpW* zx}T}u?IfS=pABey(hIneQAoApv97$(_-KfR!9!QP5&72j^d2+Tty~+nI$03Hy_=|O zqAMF98!ob>wYp6$LS7RWmM#ZJN<=$~<4>#%iD zr`^xKm%kYxz0WW-b`oZ%rsLSH8J=Jxxm(?GZFsHx3{-ChC7<#pF+I;rzkzw8INPl*aRp{zQLh-FNhb?&F<~9CO^Rw3RGFQV) z)@@suImyLbqVcEGRxxZU!;=enlm30YLG`N8CFd?%0N}&PFOY-20r6zU<#ua2-|E$iRyT^I#PoNDcgI81lW%$yue^>)bx&7XR}suo(>?FmcxN9ONC@zjmJ#w?b$h&iEa9Z z3bhF>jiS@!aWle>ikz=PeZbV~xTduSSs=KL4%mvjqaS8tZ&Thy&8K` zpelq73-8(RRohPoaS4eFg*B$Edt2p}&Jh<^<@Ao>f+j{Q06><067Dz)Y{rm0 zv_W=t1pEdi&zw;)2+86LDL+O90)V9^9-Nb%&t$`^$f{fw9#HrkNOeU89NB`tAI44S ziuHLfuUz~1--TCkL@MNBhe{bQlu6SaVODx8cbZ6oy;#AMk;~sAi#rIVb&7`>W*fx; zw}w2qHIUD+M|3FobUcR7D(9Jk`PJ8`e^=;NgHL+;4n?I=h7IZ?mOu7%<#vvjOJ5FR zU@Bps$0QKuOt+Yov|7$Z({W~ueWv!*`s#~JI=NYe8XCr>q%XJ7E@y?k*9(!GL-ZO- zfi8c|5pvRBS2AK-RNrCjOfZ_bbuG*>K}U_p6Zmqe96gk&ZYI{OxEGf47UHzCD#fAg zBV^v6l6jKOOylIDyU^WvSez3UV?Bb64Z-afBDoEG?TDm+it+Ggrp=L_4EJ|_^t|uO z)M~Bdj%zc7&-pi0BF&!dKSv4lKh^xP)75eOw(<_K+6-rnNJm&VZeu?h*Fo)(AiF*f zJG3{o!>!eQW&WM%boo4}CKMUPi)`Xd)M??S0CoI6Qtx@(po9)T>_tNu;Qwx{PyWvy z)(d+xGWx3|rryX>XJj0hpQ$5yO@j%!e_iAEQ9I0R`lzO#JBk5DomqoZ4#jl-$P^<$ z)TKW_{Y=W0!t2kSht0%}x`*u9MD z=vaHk3sB`}-!hBgI+5*0w@=%N(~Bh~5-0bid>=+tb@t|>!e8mz|YF=Cm!kB>s zs_Tkpccd^Fnczdmz59)%F89^DW*Q?gZf`Hf1&u9u4*~(k{Z#03hP92Tud-RAo_w<; zr7Av<51>^tO%D{+veD_M@CB%`t=xaY0cB-K=*)zisp)|I?I`cRnECghV?2oKiFrNu zJHGgVXS?#!p&%zLy1#Yh4gq^IckgC#mi&^V=(0WSNoz#NQ zitfHghav_>Z_Y$^=}1DN^`%nVkxI>;@0qxcuaF;J?YfPKH;I#xldeIWU9IVqT4ss# z7MV0EM(!cjBr<|ke4ss~YpF43@jBnGQ>DxbW1YKMtkXcIR={~QH@>0F)(gMPVVfEV z<9BVAyhFY%EN+<{q0ySR>Kd*4g8_jAtymDiVAvTNhMVlc_no$d-2o5u&Iv{!Bgg9s+276@(4UIB zoi7wHVkAstA0or2%t4q0Ye4~&r`Q{Rr>3RiUH9}gp}o~^EKC+%)P-V$Ee^%qA_^E7 zJSoW`8oVUJIiiF{8hsa!QlCTH_-WNv6kj-L0N{B5{s5KD#4tpLPeyXZz_4fOJ6oB- z790pfh#S=^$#8?03$_tZN2QpF0B84V7iu2w%ik=;&()W@ zfVyTP57LbRDNrl^)TBCW)x?4ZS&7qrRdRikbF1m`tJQcG34;4vm=wssh!)9%`2HG|Zvrd=uTc-HA~Y}~`}99d>EstX84bwdxkoJ`==Ua5%))|dS; zWqGGsKfH$KI&XqS55~fQx>-_4o1Jh%QcLYnYOg+avkMg?KqPh==zrwkyrKfW@8Fq?l!kr2QzY= z4*C)~g2`LIzmo7s?fL48rlrGz*#?;**vA#z z33lkce*cTD+erwnGhx2p+G#2}>*vc}4aaw=VK`l*`v9zXZyi>A`f zCH$~%Ac%mDhCYF6|CG>l^+$O^_Q ztd&5Qugiro3$lrv`?kzYfRwY!L(a45!5vpQP)zdRU?yZ&q|3z zX~b(Cq*Ep6Qaa)VTfn6okcU#*;Rl!!Ngk^nI*S+wUkY=Qh8l=e$FUOzes;wbI$+^;lK>{u0Y(1z&34@?>Ud zaFr($*b^NA+hfE}(TRd)fu%I87s&8OvFpU>2_mBo*W+=U)VH7CzOmzC1z$u9p~^hYN;HbhNG?*XT*78#_T=XVjBEu%LNY-h za01q2ZF2OYS{L7lYOmZYC+#i(`J}&T*#B1Qi2urFK&nXt4!&8FHMamL)@5USprykK zkS2PPd7xLUV2w7G;bk@Pd5yKbs7vxHP%TW{4J)4CfIA~3UYVD7eX$t2{8IUlx170j zQ$G=3E2_Y!hbc77dn+Sg{becX83hOUXWhjeYH66%M%sRjq%WvT1;{H5NrnnHm@S30 zCsZNrc%ZxPynUgOC12}adQ*V{MU0qrvQI#p(iThbbD0&S*7_%oF2{-85{}YCp&_p= z&ga}$gM7iX*VoTZ=YgH-V)i1pu0gi31h}KKwRvJ(7I2F2>UEj*fZnR0fQkHN3Nw%i zVb_Tkda+-W;F*ZpwMNy|_xZm`!#TI_qCxeP`IZ8mc|46j>nb|0FT+$;`ffI=DEezm zBw+ODMzjCMt9sUPpUh(%5z%PETYV6?<+P|Udcpg2(X&sH*WV^yWw-N$4~os}=VqnJ zuuJQdhgavHbbQ#*1S(sar3PQpWSGg;t~vK-8%r)|GRqK$RqaQ}+9FVP_@4sk>y61rD|T+VSuPh}^NCewc5(n$ZjP`fLy zd*9XC6BL8j*be66JNj-(4C(6Lr}wax?tA#HykNmv2GDo!yyccE0gR4#?N2GK4Gle> zKJ3cLwE9nB{UwSo(kt%nO}~qZB4!9TE4YL7hSN_3!regjNSs=2DF3j3B&Bf}W~9FP zM<947`qRZZb$FPYb&U1v{XAv$p#x1}gy-k#@~oX%Z`e?yxRj~iyO4&Y$Y!vAM@^@d%L;+3?Ni2Rr(sA0C zx}Sv|XaX=ikVW;10Ve!tt8a%E1~vZluKeeaE7J;f36Pal6kbWq(CsPS4ttAMg9HcUJE&3tiocB zYOOMsOYGU@121WIF22X_2qGJal!hTwM3$*25aLEoNuk8VJVShz7-c0yAJ+SoKz=(p zFJAsPOhUs838q~XF}jJ&Rk4=hWil)8^?Aar4F@EAcNp2k(&rMY_%L*I`|U3my=%2W zX&^sM{LnGn_pAN2&NhAY&FgP@fdE${BStIA$ImHhq`pHsP(J()EI*~LG8s=qaq@|Fd$viJ3#3v^GsEn zPb7FBG2j-6+{~?SPjEpldHYo31vSz9kgiVR3;P@CyP>|wB~3KZVgV`ZWnVh^+q^wp zfN_ukI4Cmq&JqbKa8)dm&W-dgheHD?dcVu9wdR6#u#ws z{x_4CgOWj6DEo<04Cq%?`6^WTP=P(Yf2?B-ty_lPjI=3C&0W57V$OTEu@1Ww*9YRpHU5`f<9 z@F!y_-618Ud7rP_{O%cEu+0IABh5i^|?#O8|PA9=+V39WOw2FOKOO!+I|& z1_eL17EmhX<()PXvBHY7CQr_L#_G2sVkggr#x!mYbZ1ZIT<(EOpuFmJc5S7rxB z)XKLjefoQ1tkR5bqe9|nFzONyupuIR9YE3KoQk+@Q?|P)3kdiHBT8Dl;A?bc2L{rp ziM+q*i9IFty^ZWs+JI^qoz!=ng$W{{LDVj!v8?jY!AetlZU2r_S!>kp7iT8Huz_7g zdN@=zSGnFH3_3d5U4R41x#VvEQwb}_mEq?I-?5)()Ttp|SusaURlvClbBjIvWLi2p zw8RBj83V_pwH#Bfk^fOOHteHX=it*g7jr0&tBqbMc`u%LL}d-w0fwCWt69*h`T zYA#<3NcBjm+r^0M%uvgz1v*sw-3}lJ5rV#+}=Z#uI8$lF(khyDot%IWq?(!YPw&ozJ+nQ+nTv0pL5@#iaqaQSU$S z8v=zPRe+MMK?~z*Xzz-cKMiqrnL2wV3!u$`<;R<5O(x~LwIDwa4U_y3@cNrNz@rU2 zo+kJ`2(L?BTI4q%1Li9TLJ?o5JmuinY3N%~=?jFa(9VlEFCE2xRd`p|JU1p~1@K+a zLMS89Tu|a+1y@Ev90{@;5QLXV4%wHtD_J}j^}Yt%e3C_}dz_FI!BLsICU+UVp4 zu2A+EVhh;A+rW*rO_moIM9c=COMS_AV8M!qj3M|k1Y@{Yz>f>l7=l5>aL{>APGZjUH_q^DOM*zr6JJ+z($JSDN`e{}# zx5@D^A-LmWn54q7e|3J3nGM`R;A>PG+!u29U%Y0j36+9VbZG~O5gW6-eL#mue!fE! zA*nA(g)DXC)&Tu5m?ea5-k&4Y{vt^Rpj2mor0nIvXNlBMsPXYK?NHj!9>;67Xopwk z6`E_aAmWl(dLU97^^j_vvawOc=&RjeoSFR! zwu(;PX@dju9}D#j0rI;HE^CFC3^Ilb8m%3qQN0XyikhYP!9e`l*Vws@Ueq@q0$8?`R_cay?k$7C#S5xXEPT#h%}4a<9hS#UPXY>8=zoyJAH&41YwY=#NdE?myB* z8zBt6=o2L_0%x~MBxBH)Dz#@ES;Bl#1`}>z_RuivPtov+of^cb7|3*~GEZ4^sAn<| zX=?3%MI~z6^u?!G40hFdcAT=FzZ6I+vOfmefWk|eMXT(DK@nanr(WA7RIYm6rL!X_ zFqqw8kuWNfGSKA9D~R6coe25Vu>ZbO0tc8uaG-^!HY$ck;Pnk;`bN|BIw`~7l_Tin zMQa**jPW{sn&S^VSkdHVw5^Bl+H}j&DU5Fs>|p)Q=+c`ECXVl<4hzoi>(053?U7F- z71$^m4!9cXHwjJ8$RHY|Wjj&?vN&--2TcqV<|A7|$l+Z)wfjCmrYp?yd!(6ghx@>;pa@`M#8fIM*173rb&?4YBn) zjY>J3zF{Gm+*_dsC&h0!=IQ_4s{55LZ1hy51B@YgF^~jvA^MKq`7=A-V@~GOg%-P2{E2f(8dH`Nl3JuEoL zk+j>@q`3WRY<;bphMj-8H0ot%M+m#01Z@44F_=|NJ{8{gW#&&Rgjay zs5OPD7Kq|t)WxrDu>h3pfj2iRt2x5UFd-^11*kc8*Xm}5?!vxfN(w;!KtZ5G$u&uVcG=Niz`Q8Xrg)2fC zC@f>lU?m3qQkr8z5lYJgoUl5xj|v=760_ldgvF23@j`xO2^BVH;daAF=ZtNnpT`)Z znFQcCKH0AbSF(@fCn$fiV-!{&!%&8CQc+Y3Mzl=<_|X6(cE&A5Nx#i(^;OIQ@)aK20hV5X+Dh;VI^(@c>gRRjI@2(w z7@`Xrk&^0Bku`h;gJBAsngh*$VN+6gq{2)<6y$ksUymNMq?B70_L%dWeTGeM;w&pi zgW5*AnJ_d=-ZMM~SZl=R|8t;{b^a5jj($vU%oeQw{!d{|P(4pkcLB){qiR-F!Lfj)N)!5ND&8K@G@SkYm63 zcY^Lz&TF)0iurMs8}e;$Q1(SpN*b9rJ&0DXah~REqyhd=OYx*-ZIz!!Rf+ffp$s z>ysj`X7Nd0^#J|)T@VJl@h+~B(2?}UZgCI`4fA==bN~-%pwnpCrR$(NE?3;SAC{S@ znmNCZE<9p}eBg!DYV@o%ISM#$g}xX_$~(AnAX?9|%)nElr!dFwwjYVosOy#-{4Hy! zqch2zz?!5CZ-){TN%PGK*f+3gd~U=rYHBg&U~BGBDV3}0KhGgf zfQF;N5(HZ7MMg35l-xDJY#|2LFDuwydiNG%|Jh&S|44rX^-J=yb_+JiKT(?_DS0hv zgEVs#b})oDeBFC?QAD7F8^nJwM${PS9-dJMpr7(%H$nbeI|%#mWO{CqZgQwkCJ1%(7CI0qm->9q8HNeT94gxLdHoIfo+)0BW)vWC0lwInRhfudNDIW0aCanO=rJc%5O z-4F61CX& zdpo3s`T+bQBvebe2;ozKE&y#fKz4q7qIWadD^HCdv@|qB ziMsw1N8&M-gtnuVWZ)f7lY~H)Yw6?nuQc25cO8ynj<+nuvmw8Q^Do=2)V)5G&GvfxyvGp-PJM`t@HTNmg>e;slie2JV??{zn1HLU^Tm?T;_VTmM=+Zj+ zL$vyaEA^!S&at%zxfc`sg>w@?kiL~Lz|V~nl2c|g#D=WEL3aLRZr7R!kfliC0)S09 zgc^giV$Oz7Jy3E18Zhqa2C8AjbI5E)usJ6u3QSkG(OL2!p zf*uEq8u))RJPy?b+06-yJ_CqIX{LdRpsMhsIuj&>!TbVrYNCKr>bMRagM%`NO<<1I zR$gk(fqLSj*X!2iV}jL7eO+Qm5E1CYL9+)6wRlm9S8A%G)0qS8*EuJE>T4V3Rv(~8 zNxX5$2vL6puUt4l0wGp4EeYi7SMS1l!)YumdkeUR-JegWMM74pO>w&aA|d`S5N8jQ zN}gUUn#pO7w1_ePk)3~%+GZ$({Q)`}r=b@{1S!CzV@3$#e)}}=79a}v1-#a2vUmnr z$$Q7W4-bgE_<$PzjX2PT-k#e@wp{sWQQlP-Qm#8^-vNv8UwTVJqSd*3{_pPnAdjWO zP=qgK@VnB>{WbSqK)Pbw_ls8X)9L!_mPVUS+L|3tKo3Q_aEgLiV?_5B9M?uyU37w( zJs#VztJ>mfU6>HZMFm5}5Fu5Z48{dAvqB{t*<8TOcYWIyt<`jFGX&E_1J;mtMSTPa zYI{1>mbyK-?WAH+Fw0yyyr0Ev{f#KN_F}}!br<>E!Cbnby>FZp8-Zs3lS(T|ebe@L zh4o&XMu{84pehuq<&Fc=b&}RM2RflG&;Js%N$q}c4`_^|7hcqf*3w_M)P;M^ZCoM`XhiTA)!EFKK6U9 z?@94D29!PJOXG*dA7z^ygT6QVCtTcrd3!K#dLYNF|CQ9B!!?S&!9hI0zxAM!{bVve z=|tL-6nXUC^@|$enIksVyQ9`q>mv=_O0S!cjjsP|G z(GEsE?f#SgyQTx+BS4+J2>=WJP`O76Xg3ex0rkat0V2Q&H4aK2Db_K67W$EGdt9b8 zUf6}WU53n6({jC8)%zg-2GC6>gPw|?-M^!31=nf@mP`JjV)o|n$0zAw6c1)TF!MM_VBa6wMGqu&XeSET`gfX(`TbZzC*T4hnr z?;IarpaY%-M~B%CFyIw+|MIjMuGxRJ+h{axXR}B;Z>kdrC#;5D+AGd8;w^i99Ar7h zAcMj;r>*DQ%@XRBHvzfZU0X}gnwip2ZCJ3W&I^K56|WYIcya;%|A()$4vTVa+r5;O zQo^7}OEZXwG}1^50>XfFcO%^m3W9{vAe}=a%>Yt@G)Q+N-L>y=t#^O#ckJWX|KQSN zG0Z&A{akTgzw=_x7KyH?mi@l{T{$pgQYrx3Jg&%f3_69a;_Wgj8Fel(GF!(CMB`B+f&`zT)-+G`bJhBaGGDI_b5&pAgyJ^zK$ z92$SceAEok7Kfef;`_X#)qw5wRh@$w1C@!7ymk(Ih5-p^yAx&2){_|kRzb4*;uz$J zoIgOt`HLj3Puw)VD0(e9*A=GdF7(>|@;0W7H9njdBKV^G_JC?5f!@)41Kx@xsgbk$ zZPse$g>1O=Y;2BgWG2o>N`)H-rC*H%km;7^F5@|WM}=`x-<^`Gw6=n%)vc6aUBS1f zQFQ|=K!zSJ5{1F?4Jm;61&nthM#A#nK$89BI@&b(Hmxr#jtJZW=2M?~sg$;?s3Aw6 z687}ae)6bqv$)MUAokamwzpE|9%`}z{4b?C=q0G*oOj`fYG z$YXW`Ow6l;n;xJ5No|&M+i~!&_)^~wdP8`GMF2B|GyE^OsXbJ=s*g zp%s^9c|Hz+?X$>96DT-U6*B8Dusu z(!6b|g361`Radlcl=&-{enp%uPXdE7t#9+5#*R$)8MoZppjjV^x_SjT@%P~(^GDa` z`HNkL6eQZvzjJAhl`OugEte)+ac{8oU0jcmEsr0Q&z8N3+ueYZJTajYF^c zqWi_=cwaf!RcrTPxS`|9$uR#ZJ3v0iuzJZoD+cEmgxbDqWQ8YkrPo_orO`i@Xb2qo z^EeejNdVyD{X=C3{no*<(PVvyd|l2)UYj_KiD=;zOP|o&%O4_%oKu;4{mf^S5>|c} z*<&Saju%&;+4ei~soYm$h@irI_ucmn?s5kvU(cG3WnnPR#(ggF9BR%+ded*I;7w@V z#?v3J4|}JKW-Q}-IrsIkzfWt_!pdo zBE3e6tK>_wrrNk-cMso-!5mc;<&&F!69lL{){oVKgVeV`2fR z1VjDm50~-}%_(WSzrGvFmRoBWQk4bKAC<8^2{aMYD7>DDbazJiXU+e!3qXINXliu8 zGg8jzc}gwN0ZrZaJp}>B6bXit;k)g8)|NY|zmy{VgS<*NU|`&zw}ln|l;IMn!Fsc| zp-KK*IUneozUDw)CwaKk|A{R$<2a6qmjc+4ID3<1+&kw_)@u2_&aYe5o>4=Iu}wkn z>gW9(4@hxIiJZV7=K={?!mv@T*IP$8mt&I&&zPaxQ6)9#fk8T{{FVSymr=3R2HqyO zOl|@@AQK_5vsu3~$zv*W1A6hdj;wS#It}{}7`t_`-FiyuJqx=&o-Eex|&%6G&&0WK#B(f=jR#KM(Sm|k~M#BB&y ztn}>)FqFcA?keIkYnF(`?Dz>G=Wu_9IwFpilB3MeLu;0w2{eg2_{^*WOVmrUV7fY2UVABhxRg zjt=Jm+#kU+9`sOU!vf1Bbp*nFNk!ol4573eAG*FIfcRC&l`{rP5|J|tanM7PJ(+)b zWZ+*vyEH7$XQY8DZ<{o;7u?Y!uWHy+SXsaPl@s=mT>YT^a)!hAK4?-h@|(Z85=x9L zCr=7xA1a^R<8b0$cz*wKC-gEncn~~7`Xi6bWD{vX15i{rYI^Z?$$rFf)}olBp@j~C+E65LZy?80;3Ow&t`1NMgzdgwYpkXtX{3h_q6o%5y;;VVO=Esw+>^-G?PfPK z)uc(gHhp;V+-1&mxotQW4v&OOZ#+eff`7U6w4Hq65`3>Aj1VGIrz^zql3t>3yzhR&9{T9&=2zLr#@4yz7xFiZ~-7_YApGvJ>62!9rU_x{6nVcyi3SpVjLe0)=sA8xqyR>3%f(C32K zIf>rjMbDV84IRbTjs@$>9A#p4_n^>S&O7YuP z!8BWv>s8wIb2%)|h%6|L-`;%_s^KTlk;|yz-h%=DoATFb9N*5wq|+^Jn^k(U^d{3h zb+ICrB@k=hLFda~5I*PlQeu+#=EKN;jqAbNeM;*iWFzrzzk8BWpvrZA~Wx0&x;_Wys+=7{0{PAppzUCHVby@JJ!mhfVzG z+)z5I*{o%0+0Fxx#i!hWjJQHG9-K#s!Q=_^NnU2Pf0>^=fOI6ie_&$K=WK0&oWiBe z);De^t%?hM+F4=hc+ep^(#GDXz%w_ebeB+@?|=>TPF2;8fIp+d*K#^J<9Kpt0SZh& zEq=2V`pTqI2nuNSuZfJ?ZwC}^)a`LDpj4;X|wpukD5sRzyeX{Vc!;oOT$`*P{vdB`x$Klve*t9_{stGuMQQ6$N6 z-xI%ilUyUg?4}b9g{pR1>7LVjz4Xp%5YNq0B zlj3|JHf#<|QvGX&)st(fgu{^ay2%eCEZnJ7X{esNEY@7|RGm|Fsqn~gQ5aRc4h}9} zodzIr2`SqAC5IRrCwq8MF$<^5jZ(F2g^tkbc3N}r=0y9$0UYM}z(P}-h^HU+!-&-D+QS zI?q!b3{pc!u*(}3g4VLU$9A!ituWH~VlBM)-9`mraO$$vj^Fv?K>RS0q1YVs1lhjb z@uhcOGJ6vo&IAE}CVMqLDOJI3rvkP+Koe^HNc&SW-tOXm<63&vb#icdlyTdrP{Ubz_mKqVI=yXGptQk=__){eOV~2HW6jV6?)e%y0MM`F%+Gg3J%h z!=|QCN&I{bQNc|6R^$fMozWVGBw)hXVPBsNX~)9N%_8dE@B6MB|1*kTpAdAfs^oZ0 z3~%=jN7hMG4+<~uMw;s{{Ly~o2?SP`d;e&Q{N#Zc_@%;dFWk6>io`1v-nH*KwAF1m z=QKWmp)UhfDCDCKB||QWyv1qg70tBQi35v+<9Qw^9wQg2dT=|O2>Xc;txguFWO_5? zdvzdGTz8=;_l_0Gan&Dx(|2Yex@DRL_O4A{XG)5h`lQwH7sdQi48Tf5Y!)w_0Bo!o z0bfVuCaC}!_&Uc3!_glMo`B_xAy=hrx#2pxGc-2@F8`eH6pVLT8%UdP$SEG6ge&BH z2!La)rhN1grGADAuG9^sjgV8(&r}GE^?DcheD;XLxd0Y4=BgugdL{ZqLX6qFw zoc88w?^J)G)F=FipuO`GWd~?4p^5I@JQkCRiBF_1b^cXLZo}_|)a9y*!qAT(SZ28j zj=96*52RG^qw)CM&U}4YM&J(ugYJfEN%CUh+H?jvnwsCT3oB3GG_Qwzr5e=Vr|+O5 z1I2C#e?HC5CZ_s}k8nLm4k=(I71HJf1YN4l#2*W%GHo9dCB96@B&pkH;CEgppqQ@G z{_sJA6-|AUSCKs^DDq@-6l7E>rj3(Q3HjJK!{8p$2pl)JlVy9pQ7E_ipDYY6K_u7m zX@OZ$@KrW|;a?fhDc3n|yr{g|WTA$ZnE0!Uw7ftWMu>I5&4leCBy|fWJGq9Mu;`i_g)eQQux-ue z@Ej+r)a4J$FHj@kaPJmdooAm-?yvue@B?!a^pu?kAerG?rI2=+Yo5RUwRsxS!z|p; z_-`ZW_O=&Qe}U4_VPUQ5uBnGB2g3hd<{yLn2r<)QN8KK9FkCQK1;^iI@lmo4k@MKk zNrxcwEP9Xub$YZf7|&aG5M5-gEjfXDawC=T!pzFe;4Shgns_*OAv$^5%dlB|Iwxd?Q@4YagH!2#hC}3+9awln{op{ebGY2FQ{y$8| z#2n-0q)ZZ50SUR#!*yJM`8OsY-oW4!(`VguJ6;L=*rx9Q8*g9EMq;7=1}?909^~{I z-Dvr{5wO|PSf<QZ6gnyz9}3E$F+_;zULZLP_<<=jV=NghD(}mQgrHr2JOE^g{*%2K5g%`Z2kmVy>Xz! zW8*d%b|3~u7LTza%m^TxQk@&$LTI4!jT~>-u>wPps9|pVx4y_Q^D3aXj#3gNZUHBC zp1_Q~&rbZfpQjccJeAGXTW7QmbeiNLAC}%r!+nDKyO#I!a#0c+-YYd4fv$rw0%a&~mR7JBC> zw02}pfixRK*?q-{g?sn`?WMmu-~zjp#Rbr;OJ}@wJ^<3VB|NTF`XeTo)p2mV@53<@ zcm+cbyf5GOY7md$mFjqQb#q#%lLed&g-FbDjt>iaTTHp+zkJEYAg$;3v2lj%;!n*AcR zOeB#iVzuX+CR#vaSW&Ph%{8h73=%^FK;aGBI>Y7_Yd&cc2;L0T#@ca=-n&=+vjbOV z$hoX#UT|Djk?a8=w?B%UfjJTli%o_rN670L?PvDm4-sO+R8f8w4On&N>A#uPHUODR zTEjCgll;EDEkxm72>2vMls)U@fM!%og&$I+0EsI0% z0gY6y!YgS>W3O#w0GjeIW*!IpG|-p_*lEaYj7QtkOcTR?Em3zW*da^j!zSJGZxe%$;lZC7OTtiy#>RXb$zyt0mRC}nNIFj)wMaUsE ze8yd%ik#!C1LWyu6K&E<@V1keZhr3bTG01@Gy9J7>Uj_l=A5{>1AI}yGmnuQoCX|_ zZfya%N=8443a{@WKPTJrae?vr509RCwTz92kV&%5bXpKdbb0pr z`Wb~Zl4M%#cg!YC1iIe~KM5}Cd4Eui>o>X$+xG~v zFb~ltAq}T2dnQ{PRNch64E;e{f$(RN+-L3}=Ye}zJEw0zLGs1E!ZHoBRI=B$Z!Kxm9V2?id^45pRQSc202 zJ`nC@vUaDwzsInzCP-E9%~w$PSqMfro7w?OzAYrEIiQ2Ixw<+h=ga0cv?>ZcbWV%@ zbst>M-h?+FEtL^Lhd&JL^C$t8M2FY~5{X+HlRgr|vfywkB8FT7Dj8pMM8Odh359HL ztM0x$yL#MDLk7jx&%l0)RHTOyi))e<=BvZnlJT+aPO_f+`!c_(D{Xrjo;bb%NJrBz z@wcc?{uye6%jjIz&tcUwR=~I$|0T2&6cTfDOem;z*k6bsP~NqB+w>K0z9ds_0n_?c z+PB5SD5=%NFO#M_Dp$9dvbl=H~!o;G9MQZ zJC{QE|CxxF05{4Eg~))y<&6k7LFfx`1%np%w#p?d=i^L2Os~%yf;w^JyX!ud{sP8I zOC*4DlY!iU`Q9q7nTGdC-$nOsuRKjM#}f}fv3^!ZrRUQi&na|hDDxf~<$+Bq3NHZ{ zh(83xR7f6QQUh4~ww6fJ?(z;;@x#t^L8=l?QnGE0B{+SV9*A^z3`RMcKK#BHIz|Zb=+{c$ zUF@H9F?*Ph_m=wcN^g5Ykc9Yq%8WC)Fcjmq+HUV8FxVyiI0rN*??F8@ED6EC(?x_C zg?`!Xw&bMUk-Tf```?LV=M`@}Q0g1HM)WiWCoX<|jqxXTpbg-9JFNm$$%LZl{yZDv>L}UF(Jq8AF3qhc6s$tn9 z0tgsh>H}sP#T0yU`G?yYG%k>yXqs2m=m^?-{Ov>NSh%?Nihy0JmI3HBWM2mGb_+l-1398dl_@uKZluDeFF>=g)BrfQ=fOD_DA8s(&C{ zJlcy5c)k880_6>gqi^Gt(yrJ#;s3?p}i=80r2{8RdoU<&bNXSSg3>wfBAr4 zEMU`;acdRBWT2$o3xuUDayE_64nVSuu;>4ocP%KPB529oX;uJ=mi3eV99WFI!{+(0 zB=G+pHo3pwV`&Kl*P>FX3;saKtkd+%6M%=A#xEkL1qLz)1}|_UYH<_R{kz_h=ga+Y z+VDIi2kW`Wh0;V4o=Vwh4nsLOVmS>B1o6P!z(-#erfNAA1RQ!xR=Ia%-}aKqRY~G# zL&2S&B?R7v>SCDKq3)(F9RpJaj}cqGbvQ$h`G*9%3-M*6790NZ!eX z>Kj@#c^j?V-A$$E{Dv?Im4UuyNu9InHCjPxixODR!_SfZ3|cw*%@i{G6|@tiaq!xO zS$YtCD~xO#&1wOJRRe!s=9BQ=cJytxTh_pQQ!dfct>N!%jAL7kLxm@0dYueD9S><`fZnaNXr2 z$}?&?xMv2;8=jk2O92UM+}l|b(_y3;2N()~vo=Ewvk+;)0MmGXVV=9{Q08|rY`Q3l zfk6?&k)fGL!c75GpU6LXz_K|Ec@`p(L-b4;n8dpQu)uil!tn2| zGI;e}P#d;+1Bxa!`Wuljg@9B@Aamzpn#hV^Srb-s^4q1$+KRt>uHH#n`5|ae(Abf8 zj$*7y!lsUayUaF|d7S}_M;m`3H<}3#Bvy(dAG?d+iS!`qG+Z!%U0bP~q-JaRU6j_E zFLl*=5`{P(o;B~2njh|;?YSQYYFLIF%P8`!{4^+fyU|X**wx2qb`O^&k{ih`cpSC+ zHJi(WF+riy8{LdAM;xjJ7WeC}qvMg=$(qKUi-Eg}HorOb-xLFr22_b z>hCK9UW8$zuJkdOYjXDMaAowhIV}!|Zt~f3b*#$%{Q3T103~rc_sAxopj-s$>64@VI5pR7bFwpF zFcIRkg%)*|x&>I`0ntHu3Id2pZKfK5G%J#WD$E5%*>Q+$jTir)Ja)9c>&B46g&+$L1!%m;%-Z#+z3p};HH-chj65(hn9RgK`>$Db)29O|cohY4m&gPi#! z_?Ols4#pXow+aH_hRd=}UTjsI$%JvRwm67qH6bR#wXf z44SZiwk;AsC=ow0M5u9)WUhLy7>sud9|AF?Dpq8~zukHOvFvP=lACjj1H@IT`%i6| zM-}b-g+KN4K^F8$Z4#M!{py4`+~d$R+sdGlnH{rZx08z2GqItq#;B#EgrvEqCu~kT zCmw8lBXAnNVGB%8`pX9cQzktWRAf?suL1WkY$*JfGoZ4NbXMNKT1Qn1Fa&bPPO^ec zd6C2<{vwIs!V~JufXq`Q91G`l6pXy^K4;qjTWl0u8wid2<5S#!zRNz&`DpP5V0!;a z6T=TcsHh+L{lwpff63?_7-vHWkuajHjsdW#ulHsIte5u9^(p`#3#9F?heg!od>q^i zEO7!rN&n&8T=igA$ZkfgQ83Gcu5bUNpr{_L9>^rRY_4a}IjVfNy0?d29*B1cPsZR~Ky#EUKDW{a*4}l55DF zNetFS$el^1|G{;O=<)ts#k~Rsp{8~e7W|uPZSU`IEoOts?z?wtzF0q2!p3!u9NVB3 zP5Y1sbm)nHo$(EvF-Y$=L)uHXpn^M7m3G19*q$!`7NB|7cik5e|y`oB| zaYcX2HE9b7;Em&ZdJN(*Ebyq&Xx7%>MHwf+3q#w7d!)#jLxwp$S%F z0?!IQC~0%R2LMBoe@a@kz##mf!nmc|?Og3GwV`qs-2`z=zHh-~`SS&tsyN90;lUa1 z`3VEtM*nJ*O6zmu(ca0wUgCq5Nr69EU};Afn$7I7kD}6zvTf@x{OY2poyCa1Z~+I3Eo{n!Yx$Fi#EsOB*MR=c%PR6s7XNhg;f z?FQQmXNApO8+#^~beJ=90&HHJ9X?Cpb$TYl%|U6;zXlcqy0yyhAnSD1U%_BJ9aN75 z3BVlfzYua%O}+;%fkLj8P17}<({azmB}GWG;h%w>2eI&>c{vUqdh`&&65LgcFDM4^ z*YuZ?TCx=P0YOLdUj&^jtn1fNhT-R~RiH6i;7Hz&o^AZ2!hViPI1d2}fm#?assLCZ z=8{tr`0~0ruu%e@M^IDhvqX6>AatJj*k)HsHqOawB`^q621+{6 zns4y|q2mTg@FAr#(cD@|MbGjt2Ra@pUQ4JW z9;gUYUniu8K7e>C@KhV4$=2G5zK&Qy4)TkmH?ok!o=64K2Zqa&jBd>yTnO58dxa0R zz@YJ3 zT(*5&cw?xe3qc;Tz9nO5)=PR=<&%?ySC`)(rbzd$33UX7Z(2i5wp#-K38X+j--ncq zO2j1du9v?Pe-`p0D6X30Qbi!zUjUKj@&>Ou5a(X+?*)rf*Th+CrMH)BlIhl5g zzXo+Uip)YjDZ>B$)!7(6a&Koh#BO9o2Y2kD42Fd!j43erDd&Qxpz(*k0-d3ohrs9U za_Xb;T$nZ}=mbwXTMU?VRqx?$dFpvLcccl5Hb2#s2h~*JbuU=c8rT1W0o<>@SS?{b z)#)Il%^&R@qgI2+*K(6Xp98XLB)3(?jJamh%JHgQ8uxRAxxRk+PWKkD6u*|Zb;P?P z@ZFFTxou@;+!8$Z-t8HsKoM)g2b%QCM?!=4H zK`@Gv`l5sd;8D=Z0z9m}R~D8Pt01p{GIIUZ#vMeSiqU4UdPZ19n+xDhXJpR94I8oF z^a$%jEIZ}i$Nem?p%sut@Qpzew8Aem5Rfs5^fUP>Vx zQzx%0w!vu}bC4;!6?rs&Xls`C3aP)XjS*cfx!&Af43``iuE*Em56(?_(@=V!EH54t zC$ZL4nGI~^8+9am&K z^%d9jI#Yn=Z#_MfUxa!GI63y_P6wYtc}tWTI9{rSIp5NuPAz7`mA-ygYdGb%7a74b z2=8)!`v=9d`aCIx<*t+WInoRMxLqiGn-z2=#iStw5TSM$_(eCs`~&c2v&~L5Sy6niCr}f% zZ<#f!d%9u0Y+$jZ60-s;x3$8@yZGZ5jajdMv+76Jn{ilhxs!SE7(Ta$GXG(RJghU+ z1oaL#d$MFj>IQ=?1X8FZvoLZ2)`84#y`?l(g8%#oriP?dr(ym?B?z%9_GwB02p@;4 z=(nQm;9Zw}cI|pIYbj@OJv89NQclJdl_JGVm&Vy;J$EunbZ*=_)jRE#_D$Ff%p3mQ zpR!0585NcCnqx8YRNXLm2)Re216~H2CIu&2S}fc(-nVnpgOwy)?kg1LmTRH)7tO`* zNCuJ5V(1i=+XoiGX@A+b#S7%&Z80DejuKNcJDfkyZRuTKx7FNPTYZBa5!fps+@4}z zVL1`UMwS#E9(D@{E-6>3`Cr4N>q=J`yLfr$(j2sROtJ;b%E!>wh|I43@b*dVRr4bW zG-_|licy+MK4!NV*N&)Q$h+l!J;tb#;sJFto{HhV0s-h zOwWrCz&X#2uqL5n2e9f$rFo#$yh zQdaNXL#DxAfTJ(}BGY*$3~o?n16XC+3#lz7F02T;P!+Gtrk}0_k>$IC1Wqa`;$RVr zHvNe*#-hQu1O!5|0`+M@pkxb)o)mKNd?*p`w%e;1IgPMg)?zPFlDYTRZNq|VMbO8)U$|00{;R3c z&8G{(-+LWA`LczPn|lXu?z769C$XIUD{UjdNNV2iN^%VFZ?vq^5TcrJN!5*r%Josx z71cl?Ic}wUW2&0+pWaN#z?AG2JItWibA=Kwm@Av66^u0r?1E|0f5MQTqym3E z{0u&BIbl2C(M&aoG4tm!*;R<$P6i z$-axGlVPz_*NdBvTs`9Tj++mnGj=jr43@K~rbBJy29tV+t4LUfk(-c&N+AeDNlh8B z6x>0l{S3xR8~}eoE}MQbSK2KDir!>UHrXaktpRV4zj4n{8~gqJjuYTtI=`)Op|n$e zpiAy!7bLKWGW6zC!H_Be0m_D?yY0{${voT-9x5nPW55wDbtALv=UI|6UvdhJjh*@V z`Ig%TKE|J`?|HgyV)`iAJ!_3VcN?wp{I*&Zu$>LC+J1@H4)P7Mmy~S2hl#z?YP`hf zCLG`!Ii+25}yZ84Y{;egvLGfpo=)_nQNJJe*jDnW^Y76Gd}er#2F{RB&a z5QVqY_O!u#Pd4NaJm}+v0Vb&z#t7NoBOaC07qU?hB3us_^p`EDC_Oz<7l{0{_u@75 zk85R8ReU=FE>HC}3pIc8biG;c>51oX(MeEiaJwOwx6;C(9m-l+a6`}%twz?-9V`Tl zwxB*SlQ&mO`6`s-cTy40Q5Y@V^5(%2!s^6;3r@gJ2D5Qmc6Ipm-safANH#i}|J{A4 zghpUoXq>Qx3<*roi1t-yJ2rEGLkfo=@$+mf?4EL!3>iPYxARvsuC?B`qHqY+K!~K@ z$U?)F8Vc_IRF;cKHx&mqY+apQ=+9G+(n6H!jny+gJO4)9zRiKq%Q6wueUrwta3VrD zf$X}jVVb$@Vd5t~MHDkW@9KP&?iFPM_@~i`5A!9eB}DPEpTU=pQ8*IYc$J|BV5jCu~F)Kvl|m zL$i6G5`{joav{M12W-}wD*2^`hWlbIxt08R%8eU-=}@6em#e-B_PyS`a-6h%6lFpJ$~>Pa<_Vu63$8+nzsqlA)ZV z`d%ldL=s2v1V<^BVCUT(zmAOibE3Pu??quovO5p1q(xiAnq5(0>BD^&0a7TO-GK^L z78@qq6BB0Zu0kv7J~org*f2B8<);{TDW3@#L|pKrLr210Z{=GM^+I(~7dX&8DU9ML zm4aJ3#wsX_Hl22#IXDhd{UqDWIBdAdXZP4J@$U;g>YEp1C0LbT|CQ03>6|=U_c)t0 zy)7vS0~I&9wE5thx2F+#F}H-E4k{!+!;XKIHGpmSwKgXCF^7lfP`%p_mUooiteOVh z1PT;>b@pU$PgF24IJYG#o(&!PK_=oCY2^_Dp2OR?0w#ICt|p<_Yf0q*INnKc1vl^3!O4g7B*r^@4S9O zs3Kq#68vSCYHLj7SKK>&(bD%eQX9v2aNp<$QduY~wjkW~{KmMjLI)-d`f_*6zRXlK zYA%JIJg=+9g*{|TDBVDwP`q3Z1qSyz-k<|5cZ@5uL0 z3qFXuoBR$d9L8ht>{RZ}#qn#Ut$<%ISDTLu2jSi$xlcQB$BTARq3A~hG(x|g)%xXZ z@@DSX#NM?3DNa-o!+BeXwuX26Lx3}7wZvZwY7qtlFOLg_KMBh)judzCqO%2*l#Y(s7Y^|DZ2b9jGwwbkg)uEAab~t2m#1^7jowDYJSl+k!A@ zy|2~Z-Le?65HOK`S~II6aV88@;cA2+PAqI67B+dj}mHe`ywUOGE z^}ZeYCzLOmP2a7adA~GbKWd;K?d>EV<^J_Geywp!7HZW%Y}xI+-80hNA_m)dw~^MD z*AJcE%_!Tkx!Zzt@gC4_}WxT;Wc6899`8?#7M@=?S`>5CkMT@`bk zf=*9Ra4r3U%t((eeIpYI1U0G%;BZ-u+rug{m>%{x-ZjDd{?sDkYKhNdKNq(+DTAbc zn-ASZ!TlVVWhL#`sfvOMnY_>L8?q z4p%%*sbJJtC7v7CB!KU|wGc;=Jm{%R4$2laQE@pw`#i zLpRq60j>w(+Lxl+eOq=*({s?}e)5ixpf23;75)=n*~Zxb9}Uy-VWyX;nD;CTbnIfe zc#M+1jgIY&M8s;sRK;ZRHQ+tY5B@~ZbH{|OXpZ@{p_WL19SQO%o&KPj`DPsW-5 zj5uEY42wjCBr)Ozd|YZmM;H3~72-oNjsM7Tt!i0Lszq$Ns{h^8iqmjp;uH!rr>dYs zKTC_Ma-g8)CW&G)!Z)bsx%Fody54}$WyTsm;@ctobMtI98+Q*qLMv$3Neu+_BIU7L z&mB|_qE z3uvFqj9&WOGyX~+*c{PSap+(5>F}KB#w6EGNb}u2=G3HIP9l?GJY3wPYx|pDb8bwp zK9rPMi71B7*1h3T9V}{y1rdlYxQ!dcSldq(%@n@f3WX?|HpX7n&)VS$2#N{@N2z*5 zbm`4>r3w*zU@TM_8HY`gad_+%xu~AKQSaRj^VIb~>_Uy`{ts2!LeQT~g=&=O&`M&Q zY5RI#$?4*Uu#sJbRYo|q>ds-tMgX^%C?gu~n^%m**sw1nWbS?#nljU-H&}MqQS#>D z`S*hb8ogGY=l0WBU4&BLdS`HuVLv4_CrX|-(;mmu^E0mXImJu9-Z8Cxf5LudzAtFA z`E=FZB5ttD9u@Lxq@0Hh1^3z=cmB8c>T}mRRgKzTzRQ#BLjKngYhr0sCkGoe7mmZP zWm?4EJ&_f~`GlGZ0?&d*k_b7C9wFA~vG(xO+@uTHC0&+!-yomt5g%^wa+>DQCdJ_In^$NyvESTNh z1?T;SMSATsYE%s>Iy8Co2Kj~3!5j^a~6SDsX8 zL414Bg975~j-`6WYJI>0ON2Yz9Px}A7dIPQ&<2!KQA6lgzN4>sc1oyGaO+8Ox1v#H zZ|y;8^Wy&dDtMgNQVaNi(~Ml9IF;a)=v zR0w7E8$8&3=$_a?>?g6&&6dx=mkzY zhP@XSjQ8|4o!-K9bw&)mHaPCQh1Q>0;Gw3aqGkA${Bl+S*)rX;L1MQaq+}l3EYlzG zXD=o;oE&FDTM5V@cyaEHrb_nL-Qckr#{mz{-)agSDk%Gn9F7ZPBCT|Nl8=fTVO;Uj z0~Jy&_vhIE1$}#=pwlOi311L{Oi1&oF9iHNxW=nqb`WIJ+Sl=IMN3Zxtd>==6yr4K zWQ4M4!Kr!i&#_GO4U#gCMMH-YGn3cQC}N8m2A$!cf_EalP<#IojJ&}cQ!TA| zr}jA+Gl3*FM`nDZIW}yfkVpF?v9!hCmx=%{wQnj<4&{5i1TDKCAM6QxNc{81GPpZo z;BbA>p;Q6sp6R0lH8Wa-u+6NoBSpaYF4~2s>r-oV+rq57P;Zkv453MPp9hDCrK;*T zSXXOB23c?WJYz?P`hP#p+s+c12M;UZ8TThSYBb#KTr>bYoE*aqa_h$a+ z>^0?xslu?96)E~{8@1I9^p~>dy-8{HXoMvzYmkL~7Apog5MN`S!v{*d_OhfcT4-Hk z$DcBTfBd*DFA7e#Y7%H5=$JrRtl{E+51Rb;`K|2d5fBY5c(<(n9&`a&aH;6xz{}zO z4J3?NAch30+3DUzh5T{G9syOopK@x+B`+)TMT$Wotg%Cr@G6yvb{GEyR7b6|{y%!b zzt)=A`~u&p21!Vfc?9!x5xQG4i#u!gMlmo% zU`ONk-#Jxm(w3UYVh7zMy(+swu+Lz@IL&8blfJ+F+8hUl~Z2}#7MW84Y2NGKFezxrW7()27l1C}X2zy5c8%9@klI*y8H#w}4s&W+3n)K9d=oXHZj9-VbiG|0p_g>hO8B4TOTmc^?X%x60z zRp~aGzc(0Aa80@B!I!EKEizO{IoTxm8I@c^aiGqxmPh_4jw%lF@aSCD{ny|ApQ99v zybTrA*szC|_{b2DIg;i34x?)$=beVu``P9PxXneH_b}tx1Do;wtaakVmZGxPxIH*% zR34-+Zl;=C3r9U-`q&F!XZ1CyX{`g-$flPNe3??}jw$(@rK*t^7i6gz7Wk(v>8UK= zM>uqs32Y`t5^kSRU#o%Jb2|3jaf$z@**mI!s`CKGpPF!jcC99?no_OBw0f|L=r^wL z?#l;gK#h4w(7T$|cxdc9l5v4Z6#5VqvTpr&L0`~4Me*)0)dG}maWN?Ce$cwO-Tnlj zbi5$nGL!1PA>pr6TUDUUhzr4sL5*ih$AoF|Q{GQ_Em2`AC1~Wz!ehj4G`ky7r|kN% zEon@w+^CzHPLLeb@Y~0HL5lFxG&g@!aj=`j;_eBjBsO-@&1^|3yEE^LUth=G5%Ism zIV);0M1$J=5Du)xY&U6`VcyWF%~M*n!cVxgYQMa=4#B4KKeE+?lnO{51mY0F_hv)4 zUfm0}9{wR(@ZoFv(l*H_W?K|*#Kv{~S%gki6P4(}0D1)0F5iX#I2>uO{iKc2Vbc+f z_m{TReJy=b{7qTZLKxZ@#9a$UbRxVw*C1a;%Q!};p5uh`c+VJ4rp5mZAfY<3mvQ;0 zu)r41{UH!AA9phIGBpbGe_aT2tw!|thG7zA_!_d;oBz#H>c%E_)yNAQsGvwT9VqV% zXCwIfw8#45i`<&N{q0k`m7g;76sh&w*Qt9`F1_cr)9>c~9JvaafWET0GIHV(mY)5} zh<&Zo!Nc2+obLj&EcE^K2W`u|)t|9HLVV`LT*mea^(azwdeU_%p;jYFcQ_UqpsmIh zbstVm1(~cNI0vO6lM-{$k-i_ht8P3yqHxT5<8If97DsQPObfyx%&W+zxg_MD- z1l4%*y~$oiRf#2SI?Ch!>;kyiZ)1T?)IS-yv15w0_{}lMXLeL$zO6JN=td`;^ZIoD z#_P)joHo{KaCYb1AsAU{m?aUzrBHx8mxfjt(tzpJG>68loI418h!|w%E0J}9yR{9mb7pB`T8xybY(|7~y-W#vPjslxms4Ft%b zax#a9`xvlwKg`UmSznBcHyV6-!sJFxs_mI~A(=~=Yl-O4!0<{2jBS+`EI@ByC}vCW z@@H$@7kWE5!^e1P74m3@j48Js4T2g|E1=644dU3RQM<8fiWbydg6o?$S)2TTs!osm z>ksswvRfQ;B0%(Xl2PdW1VSJ)c;x=4$O2(2Yp>2v*yPZoGU&;>G0`P<2C=d_Y=%wO zp^k4M`dTvwSC}Q22MV7URMbk{HeQ<1!$llB2f5_L7ZQ&%HujjOg?(oo&J+7t^z1F> z@V?CE2*qwqpcR~44`e?*=<iF{}U-BTP!H!3GrEKth#wWByJW zjw0V*ztq#*stbd1e9-#r8>EynmgVb(gN_OVdKtyf-QN(Mv={iVw|}GXu1MTxz=GZR zLNcZ*Kgf4IY~yNpQ)44=$nz^Lz}$MX709l!8+idOC+86*#p@8AvGP8oKh(C6g+j#k`KI-bq;oNciU_&)rsI|yLaKVvY~J% zamFr59m|$$(hN=`w`ecJ{DtV`{;q1EEMsQH`wT=#$+tO-Ub{XdE}oGducUu+OaSUL zEc)ac2GB7m{I9Ybc_Id;TL#^)-n0>ja;0CVbt@8j{tszutcI z@J%+ai}#pw_uZ~90;ML`*9v+h@D_)#gscnkS9ND^&z$?fFDZIY%5?3{n0MT|cB3ZB zm*yM93U4883MeFPiyLPA@_*=h%do84u5Fj@j*CvE5u{TZQ5r$I5u{YQ8!kGfyBnmD zkOt{S0YSREJJ!j4KhOKFZ*AZD;Sbz4L9RK^ImS4S{TNd;E+;xFLUBJ?l)`D`I@Fn3 zac^PgR}d6OUGt%+Fd!NVRSpI>0~g^Dp{A~J`XUg{mfEC=-wAO`qY-QE(;bMy-2Zh+ z#iL~b!mT=dJDQ>IsF5``u9p1%qwEh2!?*JaqqZ-yAC$oTpz_t;`wni=TL4Az;BSYs zV^SS?2HSgea^6p$cq+w?9;exF1=QZb(@ioT8@#rQ!#OcBs&5(@jq-uM{Uikn`kSYM z-p}-3S2FkM{7^=8biQBuJK)-q|>g-_Lof}nIjSyTNociuq$E)x=cx(=D7x2e` z)8qF$Pt1mC3B9tx^PDqNkx9a0kmq2ej5yOp(BLZ!M1!P{;(ac`kBbL}BfHcQJDz2X znvt|WCA>vKk8B|xSBA)y?M(T^bg}_;5O`2lJu;6VvpsL(f!LNK&*1dMU;19CYtTAt z^%t9G&*#bC;FDd>#hA-lpV5lW?L#k!*GtERMX#fcng+8ieH|a@oN4~)tQBb_YC`UJ z#to|$7wh8N;RXZk6&R|`u~$qvtU4s-8tQ(*XJW%Zo6Bfu}yU0nD5Vq%Os-?jo2nRda9^9tTsuTR62zvvG38d?tvDR3+LWec{kx_mQA9>?QS+P0HDt{Pc9+eR>xbY$_B zM&j+mCB=m`@0f92zKpKXw8i;NXs(yYDfybe)vDAim5J8edIpoVlK*m+K=p1oV&FLL z^>#Q_J*j3^Ma(dMP*(y|uIsYC^%Nenqx+m`Q`zym<|nJlU5_%c1!%XH7T~s%coJ9M zq{GQT16xnZs>wDjL}D1)PG-w6OMMX&@OP_$bv48LDec`}C(lktX}Y_l`URZDhA|yD zkCd9NFbSAji0|F8eNNJE+ec<&4fn^Q#9k?MhYMGeicks!KB0X_CYlBvmY7Hp%Z>@NvGs02@4@LC1P*c;mu{DsZOa?K;u_}H2_7d zQM?Uh%b!-O`a=ja9ekL6>38vgGZOrKTp@(Yt?yo<0n!Bo&DXUG82KgZN*x1?G@O;u zo`yy=JvAIjKGHx%=8}uyGxBKBaLubqz~AV+iIKc=m+BQ@S?d1wsnU6zTwyr=^~4Mc zLgg6aSA(E(P$_M;x^{u!9gm`GP6&kBz?DiSD>z6&A8~CmsItY|V9x({0&@)gq}tow z6qCu=9HT!?B|PBJ8}9^+2-Ib2+`@OjI>BjH&;zbow*y7m%7p8(cG7e{ov!h+j{CO- ztnKRcmvwATu;|=jkR_DD_pDpLL}DamxtKTDE614qU6?cq@eSb$&!oO+VOQ~eX&=#w zrS_hcJ(>z*7gxEki>J|`6qyhV(SqL&k(W@Bm|~v%_^#az(E}EuosZWpaV3wl-Q(a- zfDwIgYX*TYa9(O3__Fj<^y6~8lOB!22CMRqw`5r2N3*NX4SgLMuPk{s_EMnuAKSjK z%o5AD(|V2+W+A3pR-WXx9!*YEWNR<_R+?N8^mP{;Wg+$hZOdU7=6!AEI1em(ZYW*e z|Ne*SYO_TWT2#}rT`s)Y5CaWj-Xb$@iP#%1;^lt_dWl*3XS zyXt_3Ry8Ox2JSbbA%f=FwO7rxSzzz2gX z##%I8qDqgD`SQ0t%5W-nbC=J*GWgAV*+)^l$|Hj=!x3Nbv6KUqMdwYaFLbNugZDSh zoX#vR@tQQwkfGg=a+uIb>7yv%&jp=2ulCTiO%tPv2fQRKaHK^;jNCCPQdOcqZq-c# zcJwdB{W;jlxhV}rwNWBcZ_jBjeV-+@`gw4TX6dpj3+raojzyFKXS?8uy|@xSK^HDLfhyB-lZgEEvQVy|}X(llV-fO%= zvnr9JrvndsX|zW$kDKp)w`iQ5f~X%hM3{6GySbSavOhXW@K2o z-o&|R!8^M6JtrKi^6K$9i_IV{YqyWyctR@<>f&>k@{~i&K+aFiD+Rq!R-mOxBENwh zBp8Ed{SfpEsNh2xrmt98utf?32}Xxcr}2%SbnoRX9SjGd2$_1#D4mnV`j1ed@LUM{e->)h^LE=1o>rw#rklC~)988#?}_)CbDwEPP6S z|8v@k8a=FtCZUFvxpS@HmrE~ku1eluhAR1q70|}`u3t7GMcyP~Mz2lGAhLd-f^^d4 z6RJaA`ylS%II|$xpkV#%8;Vu|X^Dy=q5X)4> zuq&h62A798=x=N)?Kn=-szHBQV?P}2?E0Kh<g z$^IGJ1tc$gpndTbJ$D&`)(N3nfoF0t3TU7$|4;c6U$ajH$%gG?Ikt%NE{QHv8a5d~ z4yZy`E}4KtlrUC}0WR-}Tp5b@CW4_+awYu-;G84iGNHd~&w_LFfp)NdQuxeJ*&dpW z*f*6>C&o_@pLuQuGW6)^Tm$QJz&Y?x8P2c=4Y-}c$jjZ(;&MyL5c=}$gU8oN3qenk zZh4CWIIGX}n84jQ_<^AkC-VF(>7!-hyeE)O4jhl`FZ(vA3?WXo_SFk%1i^wG{{XuCUsNW7SpW2!1H1yolQy0dabsm>{4*^{jc1s_~xw~D`? znq)vraPtQNFdq8{u9LcojLNNOr;B5VCkd{fcE{QkN&hQOg*V9TL5st5(`q939r8QP`jM>+r-_ltY9qGRXg8?RN9?(6H3~P!Kj{dl&L? z$W5XqHS6NCg4K0x3eE-DHR747Tofx;WeMS2m9t)1eQX- zVDLP~ku|S47Rj6_6Z~Lk=16PSa-r1<9E;^DQ@MxGb&MY>cwJp60(8VfZotD}D9?|qo_`eGBqzkNzs+rdoApu?JHy7}Gz%m^MG zIZW=!E-T{rUZL;DZ5>UP=)%k2_#Xwy^B@zqa_Qa8W3PrGjeOKV?LI~i+4l`Z+^T}V z!(4G)2dFh}!l+-;KC-m^6om4?tg45-RJI!q*!12Ty1e$nzVs0-fB)htRXU@ccmP^5 z4Fy1guP6G)4*iR^-H8acF?faEip+a-?a0ioa{jd+=hmQi+e<;C-2vJfV|L5WTk^wU zM#!)3>06mw<|tr|yW~NCL*5{6b5bKxTK!|-T%!UP=hfQ8 zKWNkUh~F@qQFmC|_8WnqzTPOF(8QCpOKc}9Bn=t`B;f`2FzMz}&R=b^UXlc5LJi2m z%>%}jzTG>9cKKrn*dKFm73OZ1l>5N90YvPK-_aU4Kb4>U@E7s9AlSe8gA{o<4_70| zyWzF{(&LPa(5k)1#Jls1_dILyCp;S|<-a-;mqTIgU9h&u?v4|cFmhrKj#@Gm8BQOyo&rM?$f@Nf>fTUS1mn=H^a=6Wy_6(IXL$h`azBs0 z1W#~rxGGRVsn1i#>qW2?e%X$MN?{9dgi;K=mOVC;J|(X$Fz=^4Qfko*9e&${E|>gP z@rGRKWL0UHoqu0_^!a>@a zC}XSN?#q*Cp9Vg`;7AUq1NZU;thtZjLFc(5(7?#`Pn9{>@iznv z`^WGMTg}a!NsT}lNw$2a4@itcQ2ajDHNJ0`xZ^eYR0Cnn3oz{&y&Az8@N)lR(1-v! z*C5$fi#>n6*g;k02(|}G{)USO5m|Ttrt|DyQ=q}6GcR1;+iz(sWb>W2+Br*e`9g`` zKo&{%;L(D8;WIN6U0=gO3NH^=aFu1-7DBp2&S6r4Y5SSz4FX$=JEgNA9$RVaWTs4q1T`=or!|b!DeW1a0FABm@xTtCq#74hw$z*jDngHE= zR`Q1^9(V;Kh@W$!rhCVsfv;u=caNwYX zzlDt>Gkr|ef4G3|FF?cf&enF*W4i1$t>LnM|L!G~n3|?>Vef(Jr2aeV27-p$C4*p; zx7O#|axeaSW-wWqo%WFlNunE$HV^0H?)#1DvR3Ec+uZJ$E>w9`Z-vQj4lQc`c{*C= z_+)DHLmLk!dEDel)y6c2%c&*i(msAJDPqCw*mU&+XRIro3Zqa*6Xn&OHYf>|ly6=$a4ll< zPh)IT zRk~EE$h{$nr>s}XY~Q5KfnUOCJh_@92pM58jCq6CYI2ZFX5%j&cA}IQkh4uY&ydrS zCx*l16K#B0Cv>zM(HzZUN<7t{@H1`#zj7?WcCvw;`r;=~Ur(7;+x;H=!m|0*tfou0 zIQo7pWnOk+j^5Y4YVaOiPlpUo-s^#WSyM4>;{^T`*#}a)qw?8%mj?U? zXyR-Z{(#$~ju1Y*A>tmHgMv)-@!?(;k$dT*?$P}@(A){AY0@n9h24mM{(6xKBRu0y zqj(wZsT<5hb3%Z($No_7M0c5(M0=jQDFPdYP!4}H&1Oi$>>83B^JF2+aC;FiLb1<` z9aDr)j5hP>tgGaUlNEb*_N7kGZ)77$kGRhuFo+&5e&kti2wQ#kh=TV?9COX$5Z zN``jN4?%sTjd_%M7myJk#vyMqFl5bw1HNuQQy`0nxK5@JRBFS*GGFMoz&letlADpL8qj(?U8Nxro5bp7f2;2bz>gHPpVc7=%6hJProAef$NC_QC4ZbNMJ( zk})M(I8@t6!GT4i4Y}7y5Ia#W_vKAj&|nv(TY;W!2ifKmUnS1_SGT*P)(EYFOJ~vA z@S;H#nw#qNkj$eoADaG<=WwD*H8KTrck}p> zCuX_T;*}dF)f!HlMyIy85b`}3o3^G04&uOrdhbpjNDl%t1dgQzaT{_JSi|-O>v#uE zc<5y8J=)9+5_I8SzPrE^I2JeLVh6_1(xm8&*x8Lr=20-Ed3+va0K~DQ^=I{EQx|(F z#6HXQ_zIVZI{SdA8_)ZrCRok>{o1GE-wJcd^X>DZKw=+}N&SMH}#BdFiu3T52cz_k4{_DP;c)1%_ zm7D_d8&&;>D6p!sBs+qRFY#MWn=~XJ^@R!pw%FqjnfBrS+ks<71S#9!MM8W*c{-ZfTDUv@u!9I6uKVRVrZAwk~*so&la=TP7^NT>@t~ zX^;pEHt;FDR!)>71d_PRIbJBj%<*4zz|guI2&2L;z2EfVmA!JRA=*b_hQp7bFs%{I z`iIxDyM9lVOJY6*Xk45Rv{XH#j73-V)lI+>oTqM<5{&j6UomDM)#Q54Ff`p=y)hZ| zhs%#N0PW3yfpk6>O7fNd*MC%4x|!vAnImgUS(Rnk7Nu!^#t+20?|ypi#?yQKM}Nn# z#rbKc855L(_K_euZKRk&n;z?`D2lHLYk^$RUPpW1sd$Z?5Hw?q*p2>WItbD>Md|?>!c85Xu+9S#Xp|jR%5- z(9wtRDPV_zbIEs&8BUQrMu3Zh0lZm-GOBCTyy34AiBykETN3_Cy*7t+1B&>(We5;@ zf>C7%7=imut&Hb<5L4f&m%L~A{J`Jhs3$@vHDttH(}}=JSzJ8bv@%W-Rga@-*c;W} z^Gv~fkP>k$gkD>f7?v>SgPEolP9=_|n?3`g;c}zXZweZ8^u@Y}k1$N!!q7t!^E3;f zi2U9_)GzP63&)sXO#Tw2fC$0gIPo=wJr6L^-a}ql`s21S?>KjMyhl;-Ol_YF2a7co zJGC%e-9tAE9*oAMN+2uIb4jBp+Uxsy{QHo81Mw7p)@LpZ+LQakBd->l6mT4R59`ueg?R$+4heWcf`*a82TE7 z;$diJX?S6Xmed*crF%bm_KEwcYa2wGJhd7rrq^qe1W? z3S+(SKa?@qumo3260N@h4sHhF3#GE7PWg6;8UeV3b|4-&sSg3Y!?CkrjwlDai)KTu zzvK`THcZADJ5q7g+dF}kNg|8De(Y_G^qoq~$gf-&KeQhP6^q_Q42`|qj@1Qz#wx8s zr*r@x(*748k_54We=e7hZ%?tOkfB@ZO@d}J+V~J0542VU*bv@Qd%u@afTO(kuv{q z^|b43$DFm9b@L2`g21!LPCaT5hk;LDH)J)cA%cULu~_PRA+VlVG08&*9rs|{YN+t< zR61-l&qYc0jf?X{We$Pk|9s0ohTtbv+YX*|N3-2R)N3eRVRX>~T~4kDBQ>oTb=eV- zTJYd%%OC&i>LbUe14#}S_DqM@M(L4wLRoloocs3LZMYUh4mz2sAV}ct^gt>qcx&PI z`l+G+d%1N%<=Xqln&DD{n9B!xMB(SEEkGd?H#^O9;TQx2SEb%!rVmETrC;gOHi4`p z*ZVhgnO>-YB8I*Lp6#=cskm$)9~oPJ@-M^@$rIBme9b+*m-u7ba=#YfvphCMS_w2x z$>AU=c!;d9u;`07wf3Ow~@+UGl@CyPxyg@iYVOkSVsp0z8?&v+4P;4-jp1V93_(ZCTm!jB>$iWA8DTvnJ!$Q1td5aY5&^7PCm?E|r*Qn3hQ!ZYXlM7fV_uGH? zD4fbS=Bdl$8uB&Yz`iy(UFA1w&O2iwN@(U#`g4bj@%x9T)A_QbzHS>;Q?s-}v=JX* za0?Yy37sq7o5dE-Z)rS7bboSEzYVhR-3-y7~(QA!*!Lnk<@+FbY zUJ6b5SFV_B-LGueBZu9Yo|g>!2`$-~LFsu)nGq)gBxA{crbU3?OU~2&Lp!LB2f-4wTVk-ZD3XJx6WagM+rRScj!WCpC792aP#`({!w>NN`Tr<4&qaI^_S$4+L6d z1HB5G6y%>D<r$80K_->i$mf}_pvh#Mo#_`F0_r%$sHp{SCXySQq?MKPlF{muuu zRRP}}(Ei3#!#=!er)|f~Iz4&9(oI#tz5X)*@F@Qay8~uErqh;;v-0XzQTPsT%`Cd& zgFNcCg>3NZ0T=7os-@Ag+Af+iAF3bvo>Xfb&BR#W_vRnwnfGWjgeg-)DI`_ZfQTVeX`Azrg^wKAi+4h=?9xEX&0`+&vk=>vo-^a{WtnYp^ zL5PB3-|jQ%et%;D?;C$-(*{7?mlwaDpzr^Q3Pi{GLf`d2uZ)@Uk;XH}%SZbM0I$k+ zmPLtli4yf1#x=dD!$BnBXXzJ=znXXxRzo1BTovyt&!EI7(X&>$x>M4nA=VdKBfDW>@s+glND1>}I=BP1_KjpLfZ>qG`CrasEdU7lX=7*ygW#iWVe|b{ zN~DQU>IfCm17|_#JzNcTIn#x1%W6^)*MVAa8xiuj&Tq+#iS^}y;?<`hqsQeevJJxq z{h4+P#n+%f=E8VyTDm3ga**dukhq{^Ff^)Ic>RrDN0V4!bQ@4i{4LNSc7Srla?=@R zzxePD3G&f+b@>4PV*vBi=a6nDT1m;J{=NXBUVwl{F1BK0Qz9M4Mb{3wd#Ur9A}0c} z_n=0(hKzkd(Sr+VJVUs+GaCkdaO;zJZ%|j1{&B){#;EOmT_n?WzpSy{S!ZM;=p>QR z`*DvU3`VtbEOs`y@J2mt3BW1PT*{foF>lpXUq$$))QAi3QwM0p25+-(9*X!_6#C8G z$Ra_u;8}P@To$440-kG>^?gl&_Po7da}W&%e^cX3bM`$DD81`d*E7~n`~r9mo1-Vk z`6AxD6+>3&XzEks1H|_mStEst1$PvUL&QVRz{RLSRjBxz>Rtv1`jnm3$GrMJMZDZE zfBg$-yBv~F8F(o6O0fMZCaW&93{wd1zFxWew+Sg4e9L?V|Ez={D7^7h0%S9302{lq zde9kX#zW2QuJ{yHeU9x)Fj1@cTTPjDC*})!;q>U@Ne_q3ZKD4(;Mztr~G{P0CS4PYW`|8EBxft7svxvcM6Wx;^r9~3mi%2?hrrCR05n1m5%~z8mmw_h%ZqrZyzv%@yNTd~BzSz^@@cX=K zTlr1dIR)IQ0^f@Z$MOygV+1s~MH3t5zArtbgZ<^FNC4+VvP*O!`7^5f^IpCCZ>TRS zCQHX8-JsZgM=rJ2$(k%IB_9iV{>ocJP!wxO0g_eoN0JQ_7F`Q-9~f_cNVjFd^sPhx zfAZl^UkUIaYHR4WQT=#Oo!{1uzTPuGF+llHZh`vL*!V46ZlfxYVyHu&U`HUj(TRm> z4I1?XwP^8ALdRS?wEM0-P}w>c5V?%bmz*0;hvl!)m^-86p|sLtPoTScEND{H-TU%s zfJ>VF|8_~A=(b$3d=Q>sT(7H;d$La%3f`c#8qRP3xhZxCRTXR*R|3y-Av(QF5>y3d zAz{olPbUya*L*OddNL_+@DgwiF2-)Y7~P&7M?duI`b>)GyFcPH{=HG)zr1CC*=WJT zs9Ph#O~RXeTOQovg!uC}6EgeM7qnlu*mk&5t)seFW5_c9*jdBiN zQKL}kige$<_%&#AeummWMTERvZMLb%{U}&T)M}}P{^T<}KHRe34btKS$P}#Mid7a= z^B_{D&bHE|%{RllmCayip+Q!Rt?w-8#$(4u&-2m_wc__TsXtVQkK}=PS3- zYCF(#P(jOn%a;HX=XPYi@$e}WQ^2^3FMT)7(ByOoOWxu+YKRr3al$&($S%TFuKl%& zsw!{&(-3n$<6_nmV_%a3B>1O$E21ekl};KZZU6^WdQ!Tt-_K1bI(I=GjUmcyx9*#b z1||2kjAne?pLxAkE&E-HEI0hejswwp>X75h6~oi+M%){b%8)SGEwgnAC=Q)Fc)MOsOU03CcilYg0dMi{VSYj}P6CE96m zN+x;yRY3fWzMiyo3)%k1XKqi+v&@=$^r1AXuAVvi5)*HAQ#yMmILO8B;eIFr>yKjm z1`{{IrWst8epWWwf+&mu#WIvr68`w|#%l7$4t$4`^MQ_q4efJ~6!;}uaoG_6$z5<7cjWpK0^Or3L@vCKb6NfonPJrGoFc$U)CS;D3Pk?EgT`0~Wo`pO<^l ze`v?wwrF148qBnrv#A|k;>MZ(hJf`H?xEx3Q` z3AMpRByV*k@@l1=pB&gVQ-ZgUh=o^_O!D3ctocmtpU)IckD)J1HNOP%Kpn3y6FiO= z`Ib>m<8jO6WRX~JHk62Q1@Xy7Hw5*upW2$~(F9Vo$B#cj|EZ+_%x!S`Wli#OSp=)3 zC-Z%ZDiI7gXsH+~`kOj0e|PZq_R+F)7!t~VIw<~`Arb2)`^BMce)bnUe9QXd(!#5a zpcR^cf;UMi>zIOl*L|%_W7yI_@H*=H4}Iis>4_}S$hYuS$#%BYZR2?m0n?;tH6#YV z&q#OuUh(fm{;=uM+LYV&3nEzb7TMWYwqm%jf0JUG?ozc|%$?ixKXGsOMh78!JsH+= zQqmxcRlMJrB&|VXXp~b4kWGTgfHKe$QRhg5X|M8)rfALiFY8yDohFvh>oe6>pL90o zq6^&!=s8ijw+coAuk$pcxvBrNT_=o}eV4cqh8N+Xq5_r*Qj zWot;IY2RC#k9K|yWu(6I*%>|7)0v%$d3`rO@M_V&rj5#n9BSahQ8yr_SpQkXtO-s+ zt#Idt7*vd_zl*&Ew^>{YxnUR?;TgNNXHVCW_MZm-->fNu7s#51d;%?-6o*0|2xFqs zYR7>nTv)*QGaW8+6=Mbn1&{VN)1N42Kha3W`^Inan>oKEqkfP8-rh+nFM1bWo<=1i zfIfbAYm`^8+;esNOc=dRQpfo^XEb;%JKM(Lmj3D?ENW?`>X|S}Albd=K3c1u`_ksq zo{524EDRk|kV(;V^2ppvm3Y3>b_~;|m@=f*!t_gOx?oDwAD#EcdP`yp2tZSJr8SI*7DZY@eH{comyt{2w`~S{sFy=@(xQ_ zwHPUGcS_DS>Do9qLHX8ylqMYdti?f?^yhCcL@=vTq(r47vWV`$KZUApSaW2Ke^xZB zp~JU(KCbshLlt0MtBm9ta6E(a50RO2ImIHJkvi~QPnz>CH~mRdu45CmHjPtrdBFM) zF368I={`fQ6Ld8&dY!RQIp0D~H|@|TKAcePxHd7vqALv`c!|P>wSV{3g?q|~d3^>Z zhN@Vs66lPpv*^ua{=I|)7+^B$v3d7KO^HINo)3uRrLN-pI=n(@nTv)3Nft%u(P-@);ubVs4uR`5FVfCZE6-sT~Q^qC= zX2R}{{AxGR^JU$8iM6OF^7EWsvMbkZVa;PBgQBr~b~UeEPsbSfM^=BXNiM$V z?06elBqgNKwIa}QpYb3EqGz1G=4$Ap&i=zu-b#L!PivU1R44{=s~~6n$^gVbK7PWW z0!K=dQ%(s?am7EpOu++!{aRksb*JCThUUO``#KZ@{%=Un$nH_DhLr8sA#L6sQ9OL) zu+g9V1)pa&h!qOV|Dc#Qg;GE#$?iKMtNW&-g_tbGy#O@?v6enU31(`%-OJ; z2NWjKGM``mmUgmkc>JGj{qO2Q9tV|K%H{9j@}=me{las{9GKYHJj(AOyE4)+fEfJpUGClv_SV80EGj{@3t#9@HJRMPrjV_X(T&JyU5;p$n{~p-d8s8K`S52GfR+u7)eg9&~pWd z;WzHiP_2Ekj_u6LhUfC}9IKzY;s;4}poxkyVaa0!i{(!(n9_|+5eti~03zWDC- zl3)w@o1V^k)L3nNwnLt$tsyid&1U88yLB1{3QHzPFaLXf?W&jD~~pK1xVvI%yj7a<^g`)$q@*u;2X& zM`bqCuonzpSVnqy*^}tW2VTWYOhp%=FxTrvo-^I}6P}+X6wc4S_db-m8c!t}z>_zZnTtk}|nH>O99)IRs=Z@F@@ zmkY6b)F0i*UA9%JrMz_Y}$gQW7Ac zY~)ps{I*~riAv<_*?*4$WdAM(qU}A_SG=xC>>SOSo4}l35z{M8-5l+pX@OMn|qelOp4QZ+HqnK_o{ z^HIc^yA{B;i}Spojw8s`JB#%G!h>1#6^!=1<0P0T*I z!vi3h-IwmrVf_eq`MKbjv;p62GF_P_=b9U7D2KULw7^RI;;Tmi2OOv2bTnjjkFMC9 zcy$X1-t~ID9?XjxoT2$vx3`IsJw$6XIu_M5|=RuTM9 z%ow2_44H7HZ8tk^K0WcOy+#hh6JzPV{$-;C8(LX~PIob#jcv2D9)_+RRK6h*C5+8S zL966*3<(9#3dCZjNkgMPPfw3#_~O0~JtZ0zSv*{RhTFNF(rjf+uMQiwRZeF3c@y$^ zuy{f1wksQBz(MWsVjBQdnIE|BpP%cxO|lzOOYRM6;o|*5jby~^%VJ^DX6EjXdHHpH zBqaBnJb5&VCtOy|YhcS&=0@S5O?Nc(rT;B1{MH3+K9=Qqk_XOyI|8T};qbYU%cKzB zx2`<;_l@tR59^u%=j9>%>cJ`7R5v4WuuGLaZcR}jJ{+#W2pSKa{G*Gc1RM9KP!5E8 zjvgp<3dy;t1bD`qW0jze_7i}^d$=+pETcT348D{)ZVj!@YD*z|OoKj!lbQR$h71Rk z>y!9mm|myP8&vjOy+0_-Dtu18AFu#P@9)L>qw0HfpUcGe%vS8Sa=m_E!~((*Z_pAS zo+!R)_mkV}69sa^EUPaI0VtXlhX(_%eV`aZOaN&$CD}J!H6l+ya-CZ4Y7Ltnm{!IRnN|Xy(zcj=3qn zZ1OKBsR}isw~yrwB7^t7_y@X^ z8ztmgG&GA=#a2fPEX9@YI}InpEqaPX>u60G(^Mn4&t9q2^jQRYcXZ&1$>S&j@PK279?B54gh`&h3*ZXe!TV} z{#^}Je&vEs8YrmPn@je+L#Rg}7DX)+L$ow@!&ABAeJIv;e#^5MGSx02|Nfa__M<+U zgDl9Ve})ax11Y~6(r#-*njyz=69?>#-46Wt*Tfw8t_nrhBac~{e-S1d6;@k)OoVtP zo43QR-^@&0x=Xl0n!Z_P`rgUN+~Lduc&F#HK??@gpWmDGJqm$JRqLkwIPGvU6gD?< zVO2Hq6cHHehRe@ElcR*iC6Plfy^FRtZxVz<)G~%z-el%zi54M3HYhm3K6^spJYArD zJ2n1c>@iqXBGxkge)>yd=gNbgOLZsDuB56*LNylDO~u*i*JaTb#)px|vad2=2tG2s zrX|;$GHheny6x)^^N6~6H)80c%IR{FAL%OyHm-QBr(>{opXr@-UAQKHBrvQp`RO9k zGc(7vl^7q^K**u}@yA$}Kqlq8&0O~D_PLB}uB>-a&YEx5L~z_!Nxi54azCIGft^G@ zQl}aKsXgY+jwnb6)&+d`>H7Ax6av$jx3Zn8;>(Q#-0aziUId~?^yD&kEO7sq=^c%5 zaqo;WeW7XiqJk@FVle1s@Dk`}oQof3)}HTnNrdaJV7tb$GbAIu@Wa*I+TUtwZrfid zJm}tOX>A_2YS|PN&;y-x(&<0|R;m8h+3FR$(PV(p5AA$|Lj-==!zt;5G2}^4x5opD z1A~=Og++UoFiI9)Nw9`&et^~4>F?jd&M(k3WJSzlg#N$!&)bC}w6%hRslaH;BL}$_ z;bBn{IsrbSfhpMLV`OwZ`Lz*)?aWj)h71OazntWREeN+7n$Yx<-{)erd)b3e(W({S z-d~3xbEYL;$2sJTpMTnF7;EO`4cOx1tq-Y2SWoehR_0B0gaSb^y}otLnzs^%Vqv0u z(MKCzWL3H|+785!kS`Axpvad8wxYx;v-Wmv#2{m)u!EzyH1(BXh5(%djmX?^Ijr>| z%>)XCjwvfO0@4rhJTRQoG*5uoSNf%3PB)fcOmtD$=t96Vj?1%oEb-Xa7uZ>RHz77B zI^RsN8Rv=_nm1#GnpR6Mu$R`Hx<5YXT~tR+Zg=|u>Ajru$U2`?`O^E@yokw>{s9ms z_z?qT3~WP;pPex3=6?1gq?EI8a)4W3fqW{O8=o}Ak-Z;~82>|(GNq~&eoz6F1h61& zV#@+nK?y7(yi-JkXu^k+I)K?ppTwbP7G!NV7U|h9`IbM+)-?TINmsk-ZC_oXAi6hs z%5!=!za1#T2=UMaxmj(6O>fXH-tkt~1t73m$LpLLtHYv`NTF2BJS|~Z?=aa~LZNUS z*zS&kACZ1;2y2K~DK^=cJIBj07}BkxDAC!uJWA#513yS~;^gLeGOc{{%QEFMIs>5t ziS^9M;e6^9jzwinPJqu>>@Y<<)$sjo@q%H<5f)$Qqmo~p zq^Mu(?nPt3eJp$4+{#aZ|Ly|#l|YLvj4YYRYo>0bc&X=WDqW<`X7ZdMEVMg{k_dsY z126KoD%}U4Ezp2pfSMD)_0#NGp|}}jyfd^%u`qSUw|5)AGo>T+#w85TZ(61>)shOL zi4~By(xO^1>C$+2B2-*C52AUWwo4U(8mi984|ZuF$Oz4lYWr>s}rk!b9AInwk(%3?&eV)-~foiYmLKW!WGpf02b6qJ?DKvhhVyUv^4me62__ zQ+d8?c~M`ea^3jxGlDR4@R5;PC={vtD5s%s65*0P1^w5JC(8BUd!%Li9OLf~%Eg<_ zpG_w$m4-~@hZC~_v6=}G8%*)U#{gZ{yy$c}uoBFLm})dvOE*{qfhdY%IkFuj3KPuN7);-A zZl#KL$e+tw3l9m{|20uzr-%xaW5{t`0H6itEP7+$D0U8+i9e?1~bjgIkl?b=tc zEqBpu1sF87mbQ*T;Q48Fs+hrsmMB00&_I4yq*u@^-o2$ToHchb8f;vH)vgaVSI!YJ ze&OuoPxzd+sQr-YTV29A(U-1_Qs>&Qh`($}gb^h>$^lVj%hzf!5Vq$pz3^1}!zSiC z=(Rnwpoam0@h)-SL7wTQvKlfQM`V&ui4<1aif2tlBEX=I za?o2XLrGmnbLorXS$#y=q7O}RYzLS1AKeq2Lx0SNd6t8b7Bc(TOZKxfx-&R*0d}ri zSG&hyJw4@7uzkgjIylDgY4wVVQgx+G;gZRZQHp;yV;ug-VU2HU!!%voLPU433p&N1 zbP475O<&ZrFYNRsT(se__0qQBEjhKDV~Y+=&Ry}#WiOr(&EDp>nf1xQX>okU$0T&y z%l@+2L}DtG^bo^O0!&$VD7R92Qmc7PRZ0#`M%L_(+W6nELhjR`%7PCl3V&G_6R zY*SbdQ!#Y&7B6xX`bIp*Go{gx{B3I=rdrcqrbD?u^Vm{)!$Mq_xZE^*jO%6c#zI-M z3rBLW9=>r*;IpC7t*svg9vXU$*55ViSGx*b<#-sa+q7YdN)m+KJ%`+tlY-?9Qy!Pz z$_09SRdc26B)wFNg48xE=uq&B zR|^v7+JH$Dh-Xp4qI--&5)6tOeXyUjlk;5syD}sAER$jTG6UZ*n~_G-37Z-I134^h zTkqWL)kY-@jN&pcY(g7Jd4*#~*@!4HP*|6=-(lklHvI!>q$YV^0ZsYK)VKcA4l$*8J_slsfeoT5o~SMD zorzwQ2~;%vzbVSU8)R~`j~k}Udw0Piq$RkdTEqon{$9cJX2(jX3ifaF{GO(Si?`o} zUGe}HU!a~ecsn4oO3A1Vap1GZe6P@ZzmebHgo;Cbv3%xdBE)wZH6wob(jBp|B=bjH zFP&oZn+pBX;nr?)Nk@KK;Zc-I9Q)mXE=m<80g>7!)+^UVz8a%nSr2#0!#N)K- zm4?yjDhE3J=oi(GdWoMMXo55=c0WFz2!0;}|9IcuwByIPMT{G+#SzqN`bUM~?HQ^p z-kmt(uM+r2j`k6;vxM`P-{s`I?s{HZBXISqR_^X@gMGeQ9b+gS!;2$ELM6R40dg zPFS=va?cfcy0%nywyDguf+%mL9T=4$ES%PpWamALf;Vm=el>m;osJ4!c-e1lZ{7jP znA%UvX65Ttrg*ER)wC;UOIX`{ATzjiaOz7ulrn}i3pG9NIpoy@nOwWJ;4KNq*!wQ_-)&EZ6#s68U9&`F6q8A=PmkZ8=q&Na zhN<3mU?6!z)G81VU-QQgSzH<{gOF{)Q_yyIuqh*m{1m*+d5#q2gQxK4NOIu@&kaPw zAA?2w?u3>xX`cu&Qy79<#TP$E?5Oks zuqgY!ZlMbKNMR?mf@n}UjM^k4=1d1&GUJ{F@Bhk{C!KF4wr$W zYS9;$V`)xw&0xV`_A)+0n$#&{fytW646tqHeP7WSpwpj%U6itku2)L4%fxsF2*?X* zG$gPPbGomEYFh0t72SyP(ls~6jtJPWNo++ZWhTD^Ow~AX&T**c)aK&Spuro_HnRvH z?`g4F+GqzH>)y`M>|f3WK@an95$X4E#j1=H^v>&&HdTjz^!Q!wzsc1iIa};6Y=${P zU4G}(Xpy|pHEVTp8omz=YUy%YI&B&!!jETiG5;e7BG3=CTf;_qv!s1v{W=Ry4o*-5 zG?mEDa(tCBt;Q?Q$d+|r29eI-VCQ?jFk?vs<0{5zCVd=y2=C^oO4vP6V?qCcd@i*m z&hMKbw=yF12Vx0A?FX6et%*8MB&os0dRdC!{ zgl}b#X1La0w1|36f{Ra6~K7cGi=aCZs5gF|o$8f@e48r5Z>Xc7kS|`D z9@$PGJ?aMX^^EiZVnjpWGCVdszaD{QI#%v0N~AY-mJ|wk zCNf3Emb#O#kL-~-{7^C0n((lHoMAHGR4dOy?W5CjPSb>-8E)J|`%O-vYd=?A(9?2D zKK%a0h{GMI|1mR$T!^KQ)4R3?T_0Vb>&sLhkOf1+<}8|c((zw<*}|B4pdtrQ$gML3 zab5icptm%=pT2UUM%b#KnE0AdvZKojL-ieEMhUzUh88v>>!~kUwL)|Zx z^<${#!%|An@6kVyt9{7M^MYh7#jZJ*TWzd%ocyY79P0ykuFfVAxnG`N5yKRdq7BS^ z8WD6%nfs}ihNwEQt4W`^i2kkgz~kFvPp{6dw2eMqm zx)4uPImyOw)`Z%r=x72B&&tzU-DQi!6;N5Kuv*P}IknJh>!_PA*qWxzYvs`vSDEAUl(>6t_4>~6o^T3j zF9dG<;W`dDBsu)a96=+D&wrr>=NwOi{BXI|plGp_^ilu z?qWJgjp2213?yzKjZrc2C&?+i;AfzdGxGZw`(sq&&4ag81(tmCkX{Mh90|vYia~%! z0RdGNM(J&Q}4Ai@xnYc!S zh>*f8A!11+ibvte0m?#VjdnvMlm)S57~@h0%zMjR&)&p-1S^w8hvE`HLjflmdeoIU zn(i$fo$ag3ty-aGw5T@bPNb!@H%dQT0$z*Vg3r7WzrAao54f)$muBO*WL$?vi*!d~ z*87k-wB8K=R% zZR%3}7Ej1a#Of&jLj!PMoR7LLjETK&BkQWgxPT5_uQfnaBOK}fWF3cr2R{4mx+uY< zOy?Dw^64{hO!{8%d37J!@NKJkrCMTwlG!oG-g~64X^Cml(q(nNgR4)t%%5Uwi3vn; z{wxfMJe?wX5HzbSq2`6yqg>=z%bOAa`2s+@3K_1T&W zj%6g(s%M3X=h0N8RP=f4@Qv&(%m1#3HI9B35*GXG%mh_M#slN4)hJwxiVn{jF#)t4 zpQC%+KjYBUZ*j|aYXeryrt%!8gXoj(YV~v)WAJdUr(hO%%Wn^%okE^?%~a+4!~zB* zx`NzjkNc)qOZfg7Tab1oTb=8tITXoQ%~Cu{#v zh)U&v5bNDA=uvKQ*q7j3eg35*9XMPBnm+T**;0OtWYSL-*_>wni5;AspU_Q@o- zp&>Kb+8eeI(iu>EqwLuDl~(7k%??~lir#ygH@HSw&3TOknhH?RbIrPii)yRz=)WuDCVZN6>=ijq1TO}#Su)k|10`J zQE-o3#EW)g-i%c)xOZ5O!5zX}fnRq+hy0T^lbmXfd3H|@PP1o&2+m;2Sl~;FthF>b zQx6nuLGg}fE%tNWC6VA3?Z~WipZZEO+xJha9EPdtqllSQF;|1Dn&aWmeOjj{e_yit zz4XD~l>9oO&3w#5%;a@O*EMOA-#d)7`ZGd+#?LZcLLd;YwtcG|{mea|`j*&vU^94` za)VCD(DHx8R@40JvLdZAaoH+Q>)K)Q|5d z_`5Un45gHHrbKi)9FsQah(3U{T5G`*=R42+u5Zr-IQkgMVBJt;(8rRbNIga>=lpQb zr(^SC3*XLVdJw!BfPzbcsd7-}bp>G|{ujk^XN7hy~Dw1J+&u|e!c zE+j@gWWJeDp+qRs>D~A5TctK+L0A6bkxd+%j|8>frXsPM!CZuq3!ziJ&a;tiHb>yN zpUqG~Faq=5jU|k70$Pz9H|KPXbIPF>O!;~aM`*zW2 z@+_>ziunW=AgQ3nTNLQMAN+zRr(0>^&n32_!{Nd z$W+Vhpa;b-QymdJbI%rsi{z9#hH-(z6=)Qfu8ZKyg%p%%RE#O9BIY@)zmdQ6h#8aFyKI`<+V0yQ%_>>=3lfNiCMBUE$D&`iYK(wEa1s zE~bErz_}*KP)FZ(HcgTRqX9c>FmGEfiYnTyE$s@&A8B=M&nc)~z(j1#Ge0=2L0%sV zaQ{W-A<)oRn*N{?S;7aSCQgjL@dYfUVuyk0Jw2>{j8w4LNB{9&R@^-bS?eLmtf5%`oN}SK<4PTwUNSdBoU<%9qIoz#Y;ko-UwoPGo*XX~)x&A_yXt5Z*PjS0B zYAXY$?Q7=Cf4-Znos^4)eA^Qi37Bo7x7>E+dFSZ*RkZzPwWG@WS{adOeAjNHzC65m zakrLy#pVU{FD*qprU0Gb>IMOpNKK%MYKO9+hD9sJPVgVHE;_lMb=acb^VNeAC!iv4 zv%6Ng_)+6^sw0Rvy(6Bn+<+uL7^#2O{-tp!vm(2ThBpWE=|7^fS4$vm61 z#V{Mn%@?Vs#Fh2cz7*!&|5AZu{jILi^#@`aiw_nYi`oQszc?I zc9cBgmDU*aU7oSkO<-qdWh%U9lzSj^&$p$NfCp{Myv-!NtXP7a-H9rK1yO`GmMzI{ z4vZ0JEVo@TfpIvy)2g7Sp^=^hwuLjGXQ_QaqUxL*>fIeq6u8!=S=NX*KNTvF?}C88 zUKd)BQ|un4=YT@!QyM&Q2J!o{I@5(yt(^+s21d7b;9`ptW|53`^5LDwxr;8lc|pGg zr9y6b<_iV*Qq|!}huQ8{G8@kId;tqpYy6XV{;Xz`7l!lYO&Qs); zdfi960~2Sn(1EsBp2)VYEa7cCJo(>)_LW8k>5&DG%9IRHmL@J_YT8M2wPXpkc+q|& z+AZXasX$jofxL%w5^P)ZHIw_*)*K>_b(}X7sU%vnCmu&mi#H`jf951%THJ~P8ZhmiX$>S?eX?II$R|fzTZaX>o&y{vqe#DAe`n>Da zOBg>f;1fC+)9=TS$BfQw$K;0kfw81MJRK(@<}wZg zd#9;%;v-5X8GU4Qh^g{2flsKCjPlX)zNH}!Z{ENCs7Ui5t|8mnhqp?~$f~7^;5Us$ zBcvFIj)4R!e*~S3^4CpyfD>DFgbg16 zujG-0G!Kfii6Wm=fiu?(ipS#{*MVa9k;CMx4OM>nf=fHyXQ3 zH~6e077{Ylie*F9^v6qJBJN78xnLXSAlR(5rvaDo096`6MsO*eA|8JRm4Nqa>jyi} zR(PEXL5&0MVC<$dA}$xq-q;9_9(TnkO1Ay+z30dG^W1<73v^~Weo23hS6A4ThI5fc z5*qHOe>+}X^5-S0O!YD4-3gixj~PG#=7+;^_dJNGL4HE2-w72v7R-<@x-(P)L)*4j zR+g2K-4Uz^7%cp%&$;uvoq!gOFgo0Zg&!oj7?MI)_#vf)?tVZ)t|+V+2&0II^h2ya z407{93{e{O#|MAl@^5VUx`_xb6vh)P;q{n6%K=cko)~+N=kDe_gq? zy_@FCni}O4Zw%1M6f*+u0tqz&?p{oEr|r(37LLY0ehMqigIl!BhAljpg&$|?L^mp} zdL3gbpVZAPx{78~Ec(MoJBW<8aA?I9}wIKg_7NB@3p3l;p@4jslW=0U=hufLh- z-zpIv`v;L?fqR?pUp&kNZ=1cc`IXn}x`xUroOfU=^7o;7J4^35<)g`B0>okE?^wms zuhAzZ^Dt6WPXjK8Jqgn;PugTK$bQ3VPP&DNxO)m5#cKL6$W9=ZDm4V$fm)QvbaD+1 zD|`yzhu_)iJ&aMSpD7h`YHF>jcGC($>H!t_H0Oe1)jOiARtiwFeRec_U#{KOXC?iR+KSuYaZ z^=Xre^Yr0T?c*m#G;_G$1f(NAO+TZo~PLl4X3%fOf28e z@1b{S$g1aS%|^pQJ(@lXCV1-DQu!l1&g2ipM!x6RS?AZs@!Vwtl_2Um3FYIS-zhe> zQf;#3@>*733#wm&4K^8Bokm4#SmKyrkf99;6;zv$aN%-mRd9fjB8r)O;};!Fup25~ zXP{E(U3{7jB55I7l!~*OSq#voNB_x;Ux?h9La*pC^RS!el; z7JOBza(0u7QYueqFC6YtRkkHOzMXAJ4vQu4D*oQ>{{7M*$QDAw}t z++xYqTO&5;-BuV(Li^q{T$l?cmVOmj+8b@Qe~79#xLA#QP5cBFe6&4>pR?{#C|k*I z7t4dkzX^$+HhtfT=9(UXjdO4&3|PkaBGXO0?@ySlAQTe|F;(D8a=-bK0Dp!RGkmA_ zwgL8wXJWcV%s+dQ%7#XMk7Y^^-k#)!^12phhC~w18lYQF)3#X1Nd+0i!$keOvm(X@PVP*@pOglBc*fhrS~y_T(`da7@c)3wOTtBwU10fc2(_ ziS)-vSA&E>o}GGBWracRtVwgl04Bq9Pw)SK9K|={lHB@lc0Q*6d1Xy|$nD+XVe2B_ zKO|i*itiqi~!qm6}`wCc*WujYy4DM*Jf1{Zs*(!P0^>6)yoXBaKu(3xhV_|GFG>6 z4n%Nnd{cjQZuL?Bb$*P{oF`JNj9KbmGWUC{(f1{1eZy8J^H0*T1CLJZsZw_3?kTDpe`@1NZk- zq_*!kJsLXB9HUbi`SpnpN8~efJ5f}7N5sAMY>lv*G2;hE8(B< zxa$YZT&$P6P~6hC(TehiT}Sj^VmpENkS{K=<_9_JjnZzWF?R9Zhm<7iFMK%7om%Nj zq=B#^IR~CdCHNq(v2T)-q`6|W`>rbjKKl;qOk!o@MvmDg(`3yP`3X+zWA4?0Xl8RZ zVp-Brj=SQ$YgpRBk|E_F?t6ZGk@Za8Kan=;vE_#|hsud}RZ1#te?>37<}`&-`}eyu zNek4_&t)M3L(B!c1(CZc|MY!YBZWb>`hX7nM8j9GhWe);ytccrN82rPhag`9-NuKJ zOg41p@kZA(`7SXkF~qY*BAtSB-WyV7*Z0Z|KGW9eH(KhJm#4yI3yldp-yapquh5?C zz4I%IE3VCcjQ5C#5VMwMGnJV_t6?);e{DqTC9_w&NkeF&gl63M$$HUjTr*x(T@H}q5l?Pa>vIi%M^5RC zJ-R)WnXaw9R-N46K|9ey_QN)kP&^EA*vsiGDR$4coM=1v6xJ4#Beq7oG;H(xk%zWKFe zig|{%HU7k&=|+IxK12|MaKE% z)h5sQ{Z*amgCS$x&V)>C2ai7khlRY?Vnr@QBWk3PL$Q2kyj>qzj@k{9F%M78(F3-9Fx4mR=he_m7)&Afmc^IFRn3ju^e7eut^ z-GL{ta)T2wkr_g4Q6#e_S_v0h;CwinKx#0@;1fhbZtxL^qr?nK8xsO<06R)K;XCr; z{$CtxVdli{A`o&LzjYBcJUyM247PD%XHZRSI@B6J^kB<~`DO_vm~}4oVkBPe-5hfq zE}6|B7u?N!NNm+WGzPwyixI5xd=N7#bB!2@nWck!y+sZ-dKhkH-0aEt38%-gsSeyw zdRZO_!HhI-vZ!mR^vgN4A4xw1i6kWcE=I39>GsBJkRfoF?AR~2G)qgm_P6v^Bc;4J zKMsaP!C<&7IqmBos*73#or~J!L>_b7t)G+*A*YFH>5UUv@=j}~)Ezl~xz9h(Z~~lX zm1A3-G=ZWQ5>gaVxP}GWyemnh1_9sDT@?tp);8k%52RHTbuLW{?cLeWO*zuS%UD5? zPw>%6;B(YS|8!&R`4py+)&AHWATf;$RA&NuBH>~#CC+Iv7gfOKlZlAH@i4OaDACe$|N?aX;#wZsDxu_;+s&T0mJCLLI( zo#9q3-;MU4uPJllv~O03&m#u%uFaDdU$`A7j`D+%3XGysUEW~imzxN$pJ-Kj64o+^ z7OSR%U84_Yme?H+;Ujz6E`G!{`*=++G_x!9y)88w;QBmCeAa9qF6|<64q-pPoYY`*A2N&)paz zyQ0@$$u8~~iql`6u6XG+>_5KGhynm%X>DUTS|yXVO2IQV$6k^+ zLeH|0(=d>@UV*Db{_Vpsd$#yAYt+}5v=JLvuuvYXkRs3}*Uh?*?=rJ-B9g z)&3fnipTxxCDt!RN`E%acJ$5szPg1|f6T1>x_*7e_riTE(sc^c7y&VLjFn)$8tv+4 zmO|>3$>}{7z}|Q&(@Z>lZJ!NlJQd}=FlG1-MTFoFf#C12i*V12Xbg_Tg1=Q#`5vWG zvf_iCAQ0M{)I8hpaJ@X^!3HOBMomO#eDbgOZ8Y?{I2e&CEQj!w?df=VRA$dN=ScFm z;us4edxXi6r$*CxA|~fl6Ow17T1Id)=AE;b&(i)berEcd>Oic)Ao4ViHfwY_vyN`k zhsLJCQ9%hI&5SB)+F4|MX53nT$C*FLH&SL`tvKOjTpvbp#8*M<$2D5#NiuV+8c?zmCv_v+!IHJl1#W!r8c z)RZ169ZJu8>FeK|3Fred0XhUEdKfkoI*8J=a2kvb5l};JAVw~tcY3k>gNH4`Cmi02 zPbs5=+X~hpj(g3WNGB&h|3%+7 zL^x2E%UxTGUh#KMr}V3A*UcZK?qj*XpKN%2($q4WGF?TAF|%PvaT%V!${o##3ESOh zP~^#P6Dmlq=#1&%`bh7(W|Fjhj&DO$Xx$Gz>vNkMb!>*yUr~0K+F{g`Sm?Eo0G}+& zZHw_L{kmXlwq36(Jb^{RG?#w_68QDxnRaRaV8OT5!f9ufFrqf>kD|^rfBB8sNR}Rm zc9|8Wz2O`4h+&b-EuTH-w{P!NA(@~cfsaQZhv=q+f+Ns{fka0@gEA8z+sF3K;i{ks zvP-tQhSBBrO}t!D{n7a8Il051IBi`jcJ(@aI<{Q*u z@qC>H%nY8}qUY6WoV&fyZcBYr6m|ES5xf2=sJwjkg_Gc#?KLEY&R7;i?JXFUjP_E^ zKiJJY`q@(AxH#q~=eD4eiRRYaWTcRHh90Ix_R_4;r4x7vU--mSv3_*)bPVO7>2(!d zLA(hcMi>I7ClT1uSx7XTkzs_%pAk}drUhzP1DLXTMfPJzigrce6liNz3J;(;!`Q=# zA8%+Mf-g3bZ#YCv$TmS#E}k6}LEcO!Z-h2!tVy1cWcSUHN#_VJ8S47zqcUuY3nzGwC;;!LNj z>)}fcojkt7NjagJ;TNwRt@ABaGU;01=fd-`)C))2X4JOHvdWn(t(=3$f>rfEWxL zdb(S%ll|~`O_dG0ZQ{dokTzX|`Vd3MSo=q)Dv+v<&e{78m4VL4zfi`l^$eFi!~243 zN?AdxlB`AG(Oe1_@;l_Kpllx1<&+6{u z*60oUZDP5-M5>=*&hyX5W>@b48IprGbWVVEqg#xtryb~dt>#OPJ;2hXs>=xul+&^~ z(u9}`_Bi{SbS<93#l|i&3LcnRen$X()LHGtu!5X^N?v{ryKUQ zXIU}mW<9pgsz`hIPDb&ThtKNvpe4VeMZuD_(WHdi8_31DU_`vvDL3TdFQ zRF#BteIJmnP5`ujRuO((Yta-;0%`xQb#8q%enCT3cE_BOGr@bPTb{jMWX>q$j&J?5 zddcslk}2dHe3`-^lbL2Rm*7(3K2JDT@m7qTLBT-T&ZzO62Jj#)4*$wfbVe!|1Q%wy zXUq7q*~~QN&FuaGi77)~KW}^Zb6fkzgWU--zAr(R>WTj@1$xt%|I~+n-XFFtbZ2l_ z2ZvKz_7X;(B|?gpI!4}lOWA(Kn~*UKO$o72-!si=10NSh<()cp7RwZ4{rsKEp#9U- ztL$k;TS-`D@XJLRGC1!WnN8q3wonDYd(F{M7t?!MLx*wy_p;#=PGQ_FbgNqE?V84< zP?R}D$|l3#y+S{eu9ojb>Y?JPeE!z~Rd&&=PeqyxCuwBuU!>V=#bS%n?dOD)4n2LS2f-!4^GVloGCJ6Xt0~d=PPkI#|&;CwHS~(;bsReas7Qy zT9Axb{sxA-(*ZUBIKco5qp{&J;N!^?7p#`2gwv*iTV-|2DF4w$=DJm_l+8ah1%{9W zekV0yQmP};X?9RH)8%P&O9{gA%8s&|m4c)6F?_^iP&y1y_)ri2S7$$c9b?^>jpw@T z{so|ROr={qMs16bCo`=$@^p>kZD=Km2<3Aqf=+@+@8@*=6_;HWh7H^xCD7g)lLi{g zz?I*luxjbE6V)$f;c{@gNbikg)EEB|0jvsCsUoFn;Nm8OWkvyDtv z(Ri^DrD|DgxTIFWgot1Qv#u1okEPZP%yygLg+l&pt#0SADeE|VOrdnF5cRkM7OmOt zNtWaGk*YNF%4;QIsxn?yVE0@J*GaaV=qmgFI7jZ9rj~tT+FldM&i%xxQlpbh0na}a zFt2R;R+}CdKMEF!wTu4^l_qk61wEqJBciO;BBh0N)M5S+ZzzSi=n(gj=(-~r)qg{J z{|t~EuoQoW!VdsTQH%|ebNUx@kbqUPa?kxHTeA3rWKM2!(7?zpWhUy))}itYNk)!s zOS-fB>>!RP{M6sc&`1!K+-~|6zgyDvUR`d=G%bm=v(XunJYMTl=Fi6@v>2EH6^ifEF>&TQM@#Wmzs6G-&XS5 z`ehK}uUvIV+HG%bl@8@^w)55&Ly8ra18+qjV1&DnU;w(n5ZeIyeIsrnM@Q|xniI>< zN_DQs6FIb=o~u)EUDDRC%Q=VHNl4#41jy4-D>Cm!#$9HgYGlhip+fjcIRLQ3BcWKp+0evEX(FjHqILgHQ}fwsBLLr4U&{c%n% z=HVFor*~%dy?yGr-pCj2efbnk5ANfT zSDtU0bQ$+is~xc_E5N;AO>MXIY0L3Rdsji`hwd{jgGy;7QPXn{NBpDiviH3@;O(Qy znEI~`8XKDRq2`%O;Yon<^+V^^Z zp>|fkagXocN(`&5iL0X4O*RtuE+%b|1eNn%43d^DRAF(RKEalpr; z_ejpZuicFpe;gX+Q)`)H?rM6n^_ILL?^;z{8$tU-bR4Z=h-l0F<53f7526+2VhVxV zZgd_Gp;|kyONpgtzgT4Q9hx>J_DD;5Oo5+LFxg@$B^)7RV{XDs*BZF)~~H;c8em1cPF- zjj?B|UkftUCm`~ZxzEiFdS>Nz1iI6hE|clxCMdI8B(EQ=(fIE9q0`U!lmRt^c5|(W8eBaYd4KF~FsgY3tmuQirJHUKl zjb|fd1J}5Ef6nP3V^v`SKaJi9udbdY%dz@o)|%6`POa_5B0Bz;1{R_{jpx7M5D7cqY_1BWfs@tgVb zWFm_p%s-uGjgCcVhqX3`AnrX_W_W~MTw5%9P6;#iUDmgUW#(^7gJ+}R99~N$aG07vy_~i(;mpp7x9?_=h#yl#e*Q10@4DXINEE=WAlx zMWr`=qHls1DyaLwjxJ2T0w4~AI}C|8;K^ECIM&;av3Hh54FLW>Uitvn*8w&L054mI z&{~vBevq#13j}BK)_~#4RH|+=<3FZm2!2(`p9S>7Z%4>BCg)>Zy|l_po^l5zLwYPX zAqzdP>LgfT(_*AP&Ffc7Hg|F_?Q>-pTn19#O={jI)1d3FZ!}w4Dz+EEDJ{C{iG;pf z4ogQWhDaHfI*XF7a$vG3M;(!xSK!~6kkB_dkjvp7(73t(cwK3eXF}fUN0~K z$paj*K_|lfwSeQio6*~v3f31%iUil|;=GCcS-Dyh)Ag45M4naz73Ps6E7vBFYaWzfBIbUlb$4F6hzlHx0`tYZyp$SwxVo;?lCz%-%r*d z-uWqu`DthrhFh45ok61!s()`N?F)>94)z8rJnxAzgPZ>^jVnieF%EsNE)gzfpos7M zl*Y*3Gk5w*7;T}r$T~n^Y(%2UfQEw88r)Cck;CI|11Q>G4Jqxy*ADG;$11iiLQrDtzoYgOVw@E6FJ;80`%Peq}8EhR7%2*nMg_WBGrQ4=JZh)Msyq`V8mTg_V@Y^m3NdeSjA>GzUa<7*|kzjn!ziEp_-rJsPhuFU+C=z zf1A}V=A%~PVr=Q9Mf>B^l1#at`u;rp*k35l5=*=ddd`%<1Qz&V`1lS}*q813&#gC{@%8_GuR|9JsOUVTQ+ zc{N^6IiU^pT@uUrZS@6!&Q675I~C-aB*Dr7b?||&>!pG(va5-Vx&ot42~%(tI^kCx1h&qaD7KEzz8Q_u>658c&~bG=Qwz8_Q^OzKzSZDy^-%~rStX? zCxhON$fgU%eidSM3?JCLy=BNO#QWh{x79JtwNg)7M$l7zfM&Y2Ecx`A?TIn{N#3sc zIw<9n&y(k82HkQ}&f_=wm->ISgzJs9Z6`~J>k73DZ+XUFuJ7vx+3Py+ikR~#lSt$C zRi`xN=aeR1^s*pjC;i6&mY(!iOSx2JSw1+==sJnjRVZlCrlQ{d@CHJ384m`uN2L4 zh0f2n(YAGr?J2e&Z_^EaKicW}h>&jM#RA?ddNB9OL$63^9q5xoA=f*g%d8L=dhC%k7p>2Vi~0SO3K+w6&CP za@$Zf3{#xfCx+)wbsm7s!(=+?7uvA%IB&9rxDtq_2WDm6PXMXeGbqR-@)X?tYlzKE z+sn77rTnw&t;7 zwy*n>?^W@^Nqi^0+jOfb2wFacx5Tv{dyPihO#UaVQNGUEZimWM$QotA5O4auEPFGy z$j|QUxpO$y&588SLP&fzFf!VW@~k@!Tm8P3j}GEA8q zPY3zkn6}2Cme~;J<$4^?S&sj(v-q??r^~)4CD& z95!9~cxu435igf@oVO4#%nUWA=&I@@xuL?xt6ZpZHzEwGZ-Q7rq%R%T9oU_gg6om_ zu#26(YjnzU$-Yh5*KG)JeD!C_9e0h)*`nnV-XI~X|JB_%QB^#Dr_N>#VDMcy-iu@6 z5C5+?{vr<%C_WSl0SA;5Kyl2@jvf5Ns)Pm|#6O02yzll_llfTjC=RnSCj9id3a6HN zEiQn;!vnE6R!8utc_ykbA9YP(l}yB2ete++De7mBh_2P0d)AiN)Yw;&bmf1x)zZ~? zE|p8wYEAm%rv<*9yvSg)-y{`}E}QfkHu)s)@CktvfKPd(kPT=6e42*wMijHaQ^-RN z9E9qt1Fsd|C=YPQ0ezATvtg%O)ia?-;6W0+mZj;SjWi6rF1dOpw5v<}7zYQVbz9FG zV>cx|$V}d=eoe-Me00l>gTHD69e?h&EeVbby35a|e*~QI(oCG_vgT!l>Bh5a0WO}V zsGhg5DIY=)y9MxmSS)NJ$E?xYB}Kj=eF3?ars5F);p|XG8_r7Es|Xpe`6iz2SNP`DxX7d+Ovjf4vOsqxeBX6m|UA7&}}`ino5uTDg;nN~%u zc8`j?TS)2TQ8w6Yg3{kLc35OW*nUh5oLpr@zLtZX(n@=Qeb7h8zZ1+Y4e^?0r)8wf zt(8hCmp@|Rd>)&{E?$PfCd5gOAIMTJKurqe6x-ruYqUDapRaNSi>jca(wAIojv9Z& zeN)T1Ia9CyE8PCy{G|p`Z3PEm4J?o~@)5Yf5j}ZVYT4NIpI-rdK@)S;wftZ#X#yet zqM@~I5c(A(lJmquF;|vH@_hWUxgtQsLs@_a9|f7hatK`y8YPu3;^o)b{mVz&ig)SL)6qfeRXjPHjho;m1H@} z-_-E1q7Qz*l30oPlt8}^bOo@_gv?7K+yW$AFg4^pqGFS?k{jP=MgW3Wxc>m`8KHKW zJl=i4=!kBiBP!&X@SaptI@A zpj3*Kgqg0w54L!BYj+mui2#Us}>#AqMw!e<&!+69;T-Qqum zDiBus;Vu2ftNHJHXWpe78wondchUVjCc<5DdKHc5cPNyax`d~@h{Qw^)0VHOzJDCg zxi`Pr^VRzom)(Surfi!EAcm_SoczkjW~#q#{(p57lp~G8US>1m8V-HvsHVHJ10(mX zWOvM#kgDB$3n{qe91=iM$C1|1>*9C3ddJL>2m&wp!aXpeU}%G zhq?hY52=mGO*3;Mhkkh5V^f~O%&t0`r0F`!bio6(z(^1n*AJagtVKzhV=U(Rhn;P- zT_{^-|G6wD;fk?f1<0H&=PW*TrlQB{Hqnd8PBG$|8gS`~>%o^PYiH^XYFT{w(NL6J zQ1g}26RW;r-sK(aIH@0zQC?tB|7H2rUgp63L!0jU@m9wC)**gBwjQoTyqEwmOlrWG z^^6oiF9T8P`60~BpSB23GedcG^)dN(YDuCV0Z7AI&?)3rr>ShacIQ=S*|$iw7yiA5 z$Q3O2qn^;oGZ(5YoTgwK;mLp-tdznoHI7t!0EdAtJ2ZWf$e4p8nxYixnH)Ppv!J7j z=&WafTV4zjp|{ndN5ycqjcj;%S%}_eNEY-d$hk7A2V zYdEKmTc=H=NjbDNAZe9x9LAMnV`W6VOdkpncO7fKl#?pnQDPyt9kLO{nwsmX0|&P% z6`$IuJPM9J+a(SSVNlkmzdseaeU=;_BicScyzWji*~MQr|LQfLnXNn>Rvwsj;Rfh9 z2q@S00huU(Uk0FSPoV#5GWNj~)p%=<$7TB7&bjQ5R1_LbL74z1-ox$4mt~mDc2LDo z$eFmlScBBtiIxM(>QY}e8;)aNlg`ZcDIxKH`?mc%g42<}e0i_q1R!JVYX1*=ZygnN z_x+DjA~19eDUH++0s<1!AxKEb&?SNxfS`1PbO}m>grv%VbThOfEg@af-F?rXpZtFB zZ>{^!{o}5?mTT6`^DyUq&ffd%eC<67FiymPwzT9HErgG*k#Ahslc&~^Sh21sZG6); zzvJ=tqp^Zziejh!$?s7GNvc?72^J_yuQv7&lz(1qDNu)d)(fLVD}RvZEeIN ziR3}or{=}y#g9~DULU4rcF$3u$ja;s(yYoxz@CvY{1Av*7!)L{m6MpEXwK2O+wmr&Y(o zXxgY$8D)k}}=M=@tX1?yn4oR60eG3Ax#HmwfgWNfwOsxlQ(@dmhx z%xCRXk{}cgM#E?VJE@5RCCm`vkkXKu^5u=W^h?(_k?d3aWnoSBr^Din8%sTuVFN_w zQ`a#R-SxL#GI?vqo|u)lXA(0@&TgM(*YuQ6QOwGs=o!op3_kO-#y(@zlWv+Fyv4v; z5XJ*0U_Mf&tOFzc;t=GH&}_jixgE^cdB@ihEqgRsXjpg#m(n1ql9;) zy6L6*5p~9ExI)R;QAIJJ+hw+G5>0Kh<7S~{Q-DI4{aDu-p|}FXxkEO6_v1@idG3-z z^S&2b_3}lGm0^}2uoSW+Gin9CsWBOsj{PY_Pv>NN60K$$Gdj4yeF~x_lepSie^Fw? zP}&JS43&l3M)z~QI-d}FTEH_XHOI)p*jNO6wd6*(!mS6(^K6ROZ|n^b3Vz?7_ZMW_ zdi--RGR>&FF2oc$Npr>^Y>DGSTITWzEZbq0TYNO!!2^2-mPHvCiD6_12c64&IZXi|2Id&cj)alk7zE;jdiGt9S#i zYQkt3il|&OtJ>f-6uE_2qlZ|(xn|NvPExofY3RjjauXF+d?(num-p_}Qe-SHJ}}f$ zQ_L{Dne5(vV5ql#y#6$w}bh?<^4}g z6dINX8^E0c*maJ*_V92ii=$7Gj=$byY_gbpEBO!7)NiybE<=HKs_k#T3~XmV1)BC~ zwv`-DR;0)@cVdb!3*a);7icBbBTl{M`Q@T^5m!DKvH~qDG89&ub)72p)lseTjk8O? zx9l3!5NF&Rl-80S0WKEFYq?Out50TFDVXRhQY&|UFliu>PXt+>N^=||>}Pn{Y&q6L zv&-*r6Il~)i!?q*z*CPG`DhG^@F-x0F{GEjG$bimH6#53t#)S)s_a__-%))({}Rp8 zw(yo-@6|LF>W2CFQ~?bGekr%?%Ex(*i?H7wUMOUKD0_4Cx{Kb~r6w;!e>(8GbHDMV z<$%)7*(EMyeY+(r-gj#rl6;JHv}^HhFuVTX;H;QMDDSmG!SLzxg3$%5_J!*BYY_hW z9EVprk7jNdM=$uatekcuZ#D~E=?)H*?y#-w)4#g(={^R9o8AONHE$>C_l45^4{zqc z3Fp4e?zTtue=wk+%Qexj4}1yb{Ow{_cH^A0GbvGLmLTqG*lqRax6U%w*VIY2$30a6~tlHT_DeZN5`{gX@b`FuMr%TiFWT>kfP zEArGk5UYkP;u|NfEEHehftdo2g(e=G()NB$KXT*w=C08=cG`YQ<8Qb#=<6x;$${V> z%@tV==NGu_ef`>9luC=mpa_7fg}nqvlf8?@4>SQ9)|yh|N)uKc(~8E;fbZ6%Ph19E zxQ4fG+3s{pk9PgVyb@^cV7XiTbeG<8uV4~O)VCH6NiJR=;l#oPC~Q4(+EvOsZhWA#y!|lp>HcZQ7ZWHl|MguBYTt*jnZSUB?KB}gt{e=g_ zPf{2^hEXI!2|LJRtS{~=k3z_^O~QsAU&vBT`}HyN0_&lF4)I6socg^pQGl}u(}Bp5WJECamD{~HsExY%Uy52vfpl4DcYF^J;*WW zvM)#74=*HHeIlQ84yEtuXlEDJrSW7NHMi%_tTJd4 zlK2eZ(bjUyir{%{evMb?|6!Ozn<3#*nX#hboU4PPt-tu<` z&_!=I9(sCgzze9XBd7$_f6wszksb!1!H&=g;!)}h4aY^pXLz5T)ucGwex|48>0ekL z3aDFM=vKQXVGTJ}cY!aBo&Olqs+;uWe46IbLe?-~@kBXowt_v{?atT38Dn!{^Pc_d z-@p4==53Ki8W+CL*$Fm-fW8iHL2vuo&@>3?{M(O33dg@DPBc@~>^juf45|WBqBwgX z=U$7*dOXh(U&ga$Um5O4QExO!u!d|fP`bbmK!6kwAz6}F8c-AC;k}TRr)W(mL}JT9 zR4044#PZzW#}oOjk8HH^ih-X>&40O6Nn`^wX`GykMIPE4iDhoq_t6MQy_>=F-#pVP z=Ph03niWqm)~s&1m}aiVVl(KfioT?*Np|ZtRejLc$7wJk;VHngc3F*|tzT|pIm0>V z1G3y|lE1w)^ml*fg3z_o5_G&T+&X~hpY(|fL_b^jy}q=Kp8oA4v(Xa(rqtmxh3ZRr zr&-^qXFQbKCjzcisKl=;g*uJ0QW8TpS0F8EX<{5J6&-Iap}(za32D?){wi%!%ZC<+rmyEEl)MnB;z&1vu&jhm&{mDHpsSDQRm9xqCLGUlhhw@y2ecfq}> zdA7^fX_2dd7@@lsrhIE-wsTHs|2Q`V~ckB*H zi}h}zFaf9rk;Ks)`>NBteMCqclXkcUO9sTENqz1c%D+7kGU5Qy6dFc3D)v5*3nsj> z?RB^uGsv~Lykkp&-rd$&R+#C{*c9HKVOPN?6LGip3g8w`@UYE6ck_HWXk#Fm7(P#&wkdzaY;GSEAm z&Hy270~#FVCC~HsdwW`AH%{ve)H7?=#!kQB5UqOdmzWVHpVJQa+l4LmE_}6KiWE5P z_fA`89{4Q~BPDXK9Gm8jL=V~&uTK|fYw7raK(+bu4#aECsOUbTu5WKEd%=46)3e=< zH$_x&bcZ6k-SfO%pImV4yWdzL*ZWMJAJnS19$dK7AOF&byYhpH5!k>V9iqApze*sH zXfy&UxG}1D`!N?R(4R;bt6oHI{vJ3xJnd+nSp1X&25}F3_(h?e9VOv@L`;xxm>3$m zz<49KJ1YY8IDKSj*vwm*;jQB=Oz_~nFg2YCm5Sr4u;EKj;=9;-e)7E2D9AZz4nsuT zO;cV(!Co{NEAmelZ_X&QyV~0Eg}8yhmhmiF;z?UEXLXnhnO=ZT(;>z6E)Rs92#Jj& z?hmi8L0fJ5ihUK{W=|KMSSQ{WW84se zPxREPS6w43*IEjNf$>wF4wGAaG!CuP?PmPyjp^R!p%F2;qyf3RBq!y$8%TEvFgoEI z1yDYJbI@q%H}cf)T2Kn;!uuYs^P7<3*;mjHDDaLGVw;urNzPjSF-_U_`Jh*qUcSYH zyxoiXq+?fETP<&;Yr|K5unX}2Nz&#*O|Cw{iTObX#fAI`!zP}cc}d6CYAto?%Oh!} zPk5208SmZf-^UcWOR!j4I9*tvQ&8Nx?lLCe$i=fX%&x%L(%kU;WAWz|)tIcaERCEe z7`5E}^5kzZ=pMaSfRs7l$2n-+j+1S%+$74pZXl(^ez2ZN67}=`%)90V=OPnD(^q!j zm}?qf?m?UtD4GLPxO`}}8#uC!{?p}4azRpgR|0cO)G+AUdKJLlR%r301C!IDP!x{_ zVYz1whB6RPk?UN^r8z1SLPf|`jfJ|qGm4DSae1}a^&lHa$O?R5t$sE2Nt?+w6EZHd z$H;&g0a0eYeX|+g0hQk{oj6eI<(kvV!-cieE>&$Qkv#hv-6a6Vv}`y@W1X&*+1zk= zL!x2$7i+1ZV9y(X%5Xh|$UNN@8OUC||K7-T-sP*vkH`gx)k&X9RK?r&hxp4HxMWJ9 z(+ROllP7ARoaJR8G_5A)V8&N=_Na8Lx)b)Em4_JJ>@XBg$)^e6i~Wh-grUPKIfp}| z-;q;7UzF8sPc$=7GDwU-6?e+%?^1!{4oLbaG^WSpWpvp#X6+7Z(At!D^!L8{EdcyT z*c@?O{)99Rbb!P7WUtiu2VUaL3@E1M%cOg~l-7MuLeV2jzqb{YcHSa)D+P}PeeoF$ zS5C+VQ-*{s2niH>P?A7POHQzJOr5k$Q40?X z$5i7lQbW6)?fQG1VUOiI!F zyd-30&n04qoKJ@P?x}LyjioxLtY8KEicc2XL3Vw1s*B>Y`Yr|W>6*JOB*|sCOQS+A z%e|TCcG(>?&4+JPG78`LMVxpmZf!9+x-}n!qC)mCbF{&n zM{Rk;2zzSnU|q$c2zN0ep4j1j9J>_V&DPMV_gxwKp4B;_)-xWd`kVWwJ*n})$|NZ; z?4ywO(nqM`)rDm^{ne)tGW&Q^UC_2nr__k239N}?`XG#N;31SlTRmwH)RI~Tc5X$w zK-1O+=WtxOf*gk!r`N19N*e8dX+>(k{D9uNHgMt-~p#uMj`&{lNRn0=Yvt>y5$?A ztayv}2_DWm@+^n4SS`24wlB{mEhtA>&vZVN)b`JPDQZoC(M@ejXm=Ud7RvaEEAOUZ z6$V+jd@y%rc&vF#NQd*Z#AP?OLss zBOiYGw*BD`G799EwrI8YaIW?yO>DL;EBUi5(>d_2GRnb87P0HqV0LVI8#T!!nHFfG zJ{9B~sNPI}>Y-5*ANWlxYxZG^l*9c;`1hiHZx@-=vkG>m99c%`9r{wZbvtmziFSN1 zofS~jZ-R{gfknwIHcEn<7&9TLPpCAMXia_%A9b~0%CY&+V2x~aHwlOaw5bM3c4IZo z@t|a+!HYm`dC>14?iqnpwWD||MRlx&V~c(Ti~9Rz6R3Lb7W8WWpzef9q1!oCUR9)| z8ws&M`<^_oLB*x{Yv#q?a|TH){poi_W@xpxVdK>6z#}!jLsvnMeo#VH%hzX4b-i!C z>lU>@t7cHAqY*E<19|zDdYwmNzQLC+XgTp!x&x&7VnEJMJd)-a_Lbt;3PH2B8S%Q{ za)5=|kL<0n&-A7%ulhR*M}W%n2Wnu8jDOB8cg-|di5Wuq*ANb$sOlMxDgJbrqTx`X zfcAaz4;cPL2UfTUvnJl-*HGSRWAo9m?@yaWyPG@Ct?3r-ylCxsT*jelq;7k3a^1;# zVMUu7nzbddc&}w{*my6Fv? z)UrA;J>_dsUgB|ni5F7bxxZfB>@tzm4b*%nR=_q}!zCNmUvUl9zI%(J~MBOM<^Ar2Q3cpOc`lKYNvC)C8d-23zpz z-@U&@vxeSNuC<^B0o+wE><%x9oLBes+JfDnyrugIu@KcM4f~Ihy!Bh=kE#hrDW16|h2cMUzl;5YKp4nMmp$=?;rQ8H@V}`IEX(C3 zyR_cR2>=hgodjFC3NwgtP|j)7hj8J)N+ZpOlsEi7*kLH5;W^!n`O_dveb$NE1yN`R zp;j!mEYUDZ&w>I?Ah;)m;aF=|ge1nH#ZdexALy(wGEQppss)D+l6`X@?>63_V~hlV zKTgIc?*gfRlr?7XmDb8E;g)Lu5)9O5Lu9i>1CG5>T+C_D(JLMhK?D*|{`um+mw`}U zltTB`${gy7O+1o%7NcM`(+4SCH!2xURkYPAdXT~Rhb08449?7lrbmAm>rT2Q{1vB` zd+koWB7FTb%6QPo(7r-(4;&*Eb&M$DwZGI5M@gaMOu=`?u%9nmwZIe{oaoG&}0 zom_cp|J=%-H&E2b13!O^*nh6|uQ!bSfbGG1;%Mi8qON~GCHU1yl)7q?`J+Ssn5%!j z5-$TaD1UOp=K_^?{;z*N*HF?l{h^WdKaY4N$iYsi%<(y)^yOcz^zR34^aIPn?KRCv z|Hq;LScdA=i1E7q;qt$Zi2C@SJ!k(q;??T^KRW>{Z{cnPShK1si6U|kY<%(_pE*c0dz=-!$*i+$^9>)To^}oL1())7%cxPdE-Qpjn z>Oa0ji!uO0%HEgfBA&+!@q44z>3tz&?0GW&*g|HFXl~QK*B^Cu#Dad?k5UbzaM62XV*U5 zn0V3>OtLp@>P<52y}zPMBk(Br`vP~NUQv$l^Iyti<;A+wD-n-#@m40>>$Ei z&Ynab7(}w&o4Jm7Sp}+lw+8kmU@}Ebn=KL562ya>?S3Wgr6so--@KW zBgE z92hCKTwX0|$YJn0l5vyT(h6_#zpkC77_ny|^lXIxSFz>w2wD;K_tqp9rw8kCQr=!l zcMgzdx8{G9J>C1MXL@I4tjdvn+Z&uFD(lm3cfIFnc1Mh$wfeGE(>`|(5%2d&ra%Z~ zj?;4g9n;Xi4$ptwQvekphSgGiX$~S9I6s`ysBzxB35B?Hb|^7;%8!*l&%&n`=%5*C z&X5hn6LS20AIMZnIA7CuiIu_p*n&Vo>uzN}91{%WEe<%E>*0iR{;SoY{BPCbTZ7sf z57O^?YT-aPzRimMFN$LXrS@}4RF##Zw^@Gor1SM4a2}LD)1Mt7Q9)?>`P0k!#fR^0 zOc=VsjT*d+Ly3X#Wo0Uasesu<`0i2&_UmC}w8GD#RTVbs4o#9I-OI=I7W&-+&0?TT zDgRS*A_T$p__b8LC=V$4F<$;h(rr#Lu_Sm3ywW~nFHh6&nkmv($hGRaX|o}Cl9fj& zl*gc>l6>uU(>Bbdvkma!5%oS%81%t|2YX$DJsoUxFgU{cO{h}FH&^h~f1tPilkX!a zljW@x?QdGrF>Om7wELF0UY-ciNl$j$cF^9%EU#MhK*7VKw%tA8yDVZW7>E6T>R;w) zX?a{|?WbmAX%#lQ`-uWZ1J+ZHP$#aVLEnuqs_OzIxt<9YRDDqLQi|Ky|*d>oG7 zbqvHx3tTU{cGn<($Cr$to|5@%|7WwGc5?l88|_^lmV4${lmBfb!0vqlapeQdngC|w zeuB6&FVIJKf7)-ojnMk2(iguWuFI3H}*pT20n17&v6@9fJ`T6p_b!0KD?@$RA(cFf_Vy9V~!{1KHKqPz5c zfKk0iA|ah9Bc|s|x53xzzwS8%4kVTsm)ZV&`$Q*ZXz&*P$RFR}KlB}^Z!j?oXigUP z-L$q~Oq-IUtsz6ZzT9-L6^>u|+U$u z{^RldhY}@5Frl{Laf1>{^J1c!4b!r%rKPeiMe^oG&F0;cv)vxh_N+^}^D^e?@Rxf% z!GL}F%`R8@#Q!$K_HsbM(eh8y{T|FMs@=f@{oNxYa64WZ>i_=BD>Co_zikWSZ6UMN z<(VKLl?pG@@_5zPLS|9yt4QXbUcsL?)9gV0y?nHN1?~{6WZ#Po_BXNk<0}3;QNeru zNN_Lb;F&l7*Qfe}r}E>l7W_|s{QqD5H$wh@l}tEzzJhvoy;6E#u6^YBN>e5NRLCk) z#qQyL9_2qwHe)z$N`qJIMYYq$RzJjvbLH;+4oRXs3*`Rj1AB-A0#x3-lVL zf$_o*2r2ldxA05}+@bY1_}KnFQ>c_c1RQek(ogS+sm_C)AgeZ@nL zzKrKrx5Jl_6me8lfL z+3my6fVC69Thw`$#iFBLU~&J0n_2>4P~nM#DX7bCg;7ytM^1J!PKOstOz^OCGSIV;O^M3(m zB!_Zc4d+3rtV2MLN^7!ELAPEt&>ujBUiyR*kYPJuHsXQ*3sG z`Mbu5xaYZgEXG+t0F>a^!{RCs9pYeZ}9Yx?hdS^GPAT={+_3GRE zqJ^*Ry{Ukiwx)coCksHQ(NOYlR_zuJ{f*C=t;Ug-2kIh#*42kJ zSdi670vIN`I7A7UVkK z_jM3kk4KB*`A9rKA5+8Z}t`QyJi9#Wsk%X!$BWGQleq=0wq( zkiN*5;))RHaBQrN#cBJ}$9hBF`My{s6FO!S{TOixp zgyP1zr1Kfh&((8bU5`&}YRkPT7bjL^+YE~%l_`5;Z>!?ioK05B_K}i8(*N~`);aWB92@t((Gkl+Wmfd* zw>nY48;CL!7Y0x?Tfo1XTPPR8f>hYhu`|L&HQ_JX@taUHhnJE0WP3X$YH^&a>s0s! zbN`qmDo{qNnM|S`NU2B;fEr@Y)9xl#cfnDW;D-w5C~uvz{DToz6EjBwNJ9niTwQ4c z5URBMUxR2g1pZ?}%FBqP2Vn4&CIDnD#gCfyjXS$($2wovDl1PN*V|~N#(|nh<2@h& zAWh$(|AnJXP}s<|m&4y$b=G`o;#Rw7-zp&&n{AGJFSQPbe+RS!NE#?cg7===Gx7WO%zpgyvz?3F{RYJ`JhcWbYp8OeSCIl?CN3d?+q4U1roNDSTqzkIuKQ!RBNdy$uf5Ow^t?m5T zNEVk&v3F|B>up0I{qp`z-KWF)Zcnjg*)*KUU)6EvezG_Wd~|ZK6)0W6VvMlgH(dIQ zAv_+-{n@(>DuQI5QntkB{IB!aupoBcr$(Z#;V7_FNYKUo?V81*&xSkBt7nHM@911Z z?C0tk`cn_}z`SrQNP0}*&uhR8(x~G=pZJ4O_KAIwo6z3yN${%^rk)la3&=Ze4nue+ zo}(THy+u(Hre9{}_P*NF&VN3yTn4S-##dy7HO(dvv+VJhhV%~_2lLfp1&CZ&9<)L} zKLLo2g;VUJdL^P)8=Qxj$L%&vvOId6nkSRwGV+i~Ltpw;kr5{Nc(rTnKjuob&AB|; zcJnifdC59s9`pA4BuFJ*cXl!X6<3K(sm25N zwHIQ};1?-~V_&j)pbFwj`U_B9bWogg32-4%@< zYT}0{bIS!DfF_m{?t=2-UO^Jr;FUmZBuynf7(JyP_P{;Z+y_8eYm?CHZ@B66$?UGeY_Hy&N0{E7ib%QDZQ)x z*6;9PX5NyGYeM>4kDqmQ%I--9hzG;2r!;s?vrFCULehw zy#Q1pS#h^J@EfQhaMC+h#^#eh4?NFB@9(^-prb=9zCuKa*~~^o^xe1PQMei+F+?xi zLhzYf1C?w)B#-(9k}{^z@3P$(DUAd}IES`tl&+EgY{fNh>6N@yyUY%54@aOK&~(@l zJpVYIGA?xAWJ6WgKvE8-Wj}sB@-mu9`+h-~$o(6ts@V0apfx!YKp#|IO~zwB#)E#j z;5g@ZBmPXYjmt@?ZbDNc+Y+LjAo})iwRAS@IR9G`8yxZc+V_WyCMOQsXYo9y=*Iy* zmpD;&1Ho6=I?7KUU&Sg7@HtwGUfAaf^af!9bE&e_Kk%dEj?(KFS$}%pBl1b3_5`Xz zq4C>dgD>eBs-rXW`c!3WjV-^Y=Wb$qORu&r=BNV@$?LO0T-d^Z+A) z7=g)uqs6S*5923GwI#|HtrB?d((`ENxIe8ZeEHZFjxd{9sfaG|y}awNrM3}7LiAjx zP7!qRq$(xSTy8xoIvt~-UWx(=*PH-nT4ssY*4B8ud~{}7BHoIh!& zXI51nsy)`;8y*$`3ZeQ2-QM0$T|=wz&`s>aEY!$pYjzJgHu_IIm-f3+99}B3DgC-d z&B>lw*C6|Y{$oSljW;jK(#5>1G#}ga#g}u?y1q3n9D91V%D&*~z8?51yP=Vnrv(~! z!pLJYwb~Nk6R?H@CioGm2qrBJq%*rE_kDQUktKi!I}zd=7afifHpv>d7ANT34+MSF zF?cSdfL=TK8STx3uD=F{8M#0UZnO zdj0f1U20DSn@k?MBU$Kpr;bnq{D6lVW@4renIn zW;;kq636g?cJ>MG_3^Ww0Y1&N8Wl0#hYvm;`?xW0h%PTi>ie}WI9iXlIZU&W4=6-G z*w6A03{$k*)9BNas*wXUJQT509hKMQoct07V|>-3eR57q_UJXGNlhnj!Py-{o=gur zL;f&PE*Ajm(JCbtIh*JL$)!#A!lpT+yZXuOFB{oI*_0G7?6uBC3=qmsBX}y@|BSm= zJC-Z_3*-Hk;$s2=h5#Z;e;-qJW&rPz5 zwKA;M=lUZ*!oF;!>Qq1U6sxxrQClB;8z-=?or}*4oFG9>Hu#e1Mz>xHs_SCd047P? zmmsd5sM@MvpvEE$gv|7rh57IIAPC+SuoYBA*i($2T#krSigJgFPhAF4zoDjjtZ1$& zlPNR8eRoLDg4`jZ#m7}y^A=4A@6A#9!Gs7Z%ZIY}oyho9gdJqMC^k>JR(RVMlW55p zybMfpKQCiZMm5r6n%dW(Y&HRgD z$HQ@Gc-~QN$Cu0Ix~Tmpcznfj;K!ix`M#`~s+m?EPvtQa^JCH;QcT=CUon6q5Oq8q z96eJUp(OnI8Wuf-jIjGLEnd=$chG5(eq{7JYWzJdZ0~Q)u?J}Di4>VASesmG7mMvb z9YV^6+e>gH80@I}>S&xkujes;uw)P{)#LqogLM{bUhi(51o=G=vMy4~1-taYdfbg0 z_Xm)fhZn||&s5;#)d$O-ymf(rR6p`>zF9o_k-W3bPhwrH^vG>9*}DxVOjhTc^^JhQ z4EQM{Ea2n1r;3DO(?Zm_^U=D+rdYg`9GpCtCqQ9y#?hki$J42ghB;}_Z+P`F5^J&P z1iMDrbtBW~)|{}G<3x`#HW=Oy(*E)cwvNj!8r_Hc@wtfk%kJEU+B2gB(?{T^G&q0E zT`v!~X3catPW1bY=Wj^;3gazXHBY&O#%E1;(&Jc6E1Np9?#eFq)Woj5A&gxd8TR8b zC)p4G+!2pFUkKmvNMn$+b6d&xarGvK-baVvRI-`L!E0TnZj_q;7<201qn^nM@lYh{ zKEbZrY3%82>C)w5N=EuA?K@0zcYC*fb)Y!uf<`giuUViM+Z()RJA9&34z_I!!8LD+ zY6w=64tO-RwPDHxb5rPzLvT2)53Fhm1O+OWcHfgfHt@52-I+NR5XB!>3vEx8jJQiV zua}>fw^Wzhkbo=Ks#;}OL-5mtvMyp+Ciqp$ZJzT?bF zL}|IF5|RfZ!hI7aucdUs@*`~7T9XNe*Dn7_ZD+*S=6lg>GWK?m;pYLKF;ZyVsl$ox zFt&ELiHgLJwah}^j5ZRMWgoey4tU12n@CzemY)8#18S?z7WrI920iipE+%g;e(xH z6OBbhiZ99$sm^q9%0XGqV> zp}7ZLWc5cBCoKz8_dL%b=6$;p#Lnx@B27}_hfawty3cs(r>7s>BCB6a9l3Ohq=j#l9Sk2@gz3vhldxe)l*HBhShQ$V)3GSpT@- zcGVQaeCp{OS=5^|F!N2lNb30e*0Umf(q0jKDgK$n!_U+K3R9KqW$%bsU=RTdc z$Ly`5K!ptJXQu9J=qEjP#^aU+M%|dZa~fW(aq&--!lmJ??nGG>I0>v~+VH#*Kf5n2 zOJNc?ka{SWa6wei(&e7u98xnOx`#O@CopitZk$`{0GYLPvR`;VHAs#Qf|QNsKmAs0 zQT0I5UNhYp=w11V>rOA8W(E1v38(NI!wL|=g_L8gobH-8WwsdytmK>{|6^m{%{=GdT7ba#(oul3k@pm{2px?7s$ zwxH}8_1-gd^S;<14XMO#^O%Jyz`$AB=*h3wx1$>l{bFz##0~=NIf|(isedDH@v9Yn zCV>W~6?=Lw;3XYaX)jq0)Zb69`mL0aLc;Q8P~OZlf-gY9w9{Oicu5?604b{+(m6aS z&y8{GI}11b;TE!r=a->KER|>9p^3BIlcxdKAYm5FviH}|^6k9S+teDeYvedp^>M@E zCU`6F1SrVBOg@$Jz+8kl*_U37c*}2{dQtP#n!Su7fjaD0M|+S#9S-lG*_?!$N-16s zmwbCbL{Ir!LE_uRag|gSiM_# z4ZJ)oeQgIs00@8g7Ds4-nTjQS$T44RthDc^x`25hc-$BFW zIy6xygbcp3+Z~jCQ6(Q0)#C8=CX9I}Z0q=JCC4mVm*0ws?`&;le)C5LiMRVRBR$Ji zCYS|D209KEyO{xe3nwhd+EhkK`X6*%Oe zH9Jw`95|ImUaj6cde=r1SON^3w&)*+5L$&Z_>H1miKF^s-;k$q+5w*hk>VW##qP0P6!;l1Suf_flS}(aUgeZY(Exz)pkG0-t`cl`i**7Pfal=ER-#2mT+@z zE!(i?nDzFJ9T6vWWFpC|Iyrc#=Iec8=xA}2xIlmc9n&DddXclBp$L2`77p6wC6-BU z0Sd%L6FS%c5QrAVJbpZdcuz<_{&0{?oI2A}CBBr%%P4=Z)MlX)c-(KV(3O9yCidff(WNBoLoh;n`g>!o9468*;CuG+K~5?#XfD}>BLx_%jzmh^d>#Pet+ht## z4Ykg2=9l>CB~<2ewS}%S!e(*UJ_R9yuUi?wTNwIYKyV;69s_GPkjw;-2pYA&#(3wdl=$j8( zK%lA28?bkJTRTRW4vp74CfMFAx_L%BcggJl1y&k;U>_d1=z-($vX;mZLrDXjflzG9 z`VqcEN5_FQ_~C=SOAJm*!}EmBxa8nVt(ZvJD7{BOk0=Y3U|gN^176r?ac6DScEZh* zyn&4Krv-V{rV5pv5!{A(mcuVnf7IDR%x82(-JGydOgcluP{)ymi#DYkF#_H5>-9$F zs~h5Ej$6euh-rho$311eKMIEie&49^SbLm#H{wfS&Mx66qA}j5PqNsP$4H+qK4k&) z>-eAa(*Xou)B@CJW|MACwlvUgmM#`2<`BdHjJsB=6BuY3HvpuDSyC?69WXu%_y3L# zR98f4{GWu#bi*_!QMj25w2Rv~Amx8?zW{MG_xtt9&r`#?)hzX(dj1k$LYz0UJANck zvH7)%RvgG_xC0h3hZSl^3Kcqmt+b!VmirFNkFFVh6|s)W%k{@TAgb^~^afa0-3bV! zH^YHQn#6oY1x+2HT2N@uXS=MS8^=Fl`6~17a?gy1%#N`1m8L`q(IjpGVyn=4*-hIP z$$W#L0o)iMk-UJG=D|QgODN-nxhUQ(1wzP#7kCQvbb{)`r$8GrN6ozlm^4U3Cea@$ z%wvHK?z{5I!RICYPR@f6z19!yAvj@vaJNq|EA#EKSB6hiBN=d?EKNnVZBk?F+ahN} z7#WlnH_q;oy_8mCyHR6JHE*Xn6BB()&PJ1etz0s}_Vo+?g=cA$P-w0&!M9z`51Wk9 z;utA<(`9Nms#YtO?6sIrpv?ii8#z)qB}q%Iw$;_M26A65R1(4Y(Bc z^ysm6%a1^~2)Ia;OSbp43tx*0plev{v%(28^3us(5eiV?@|XZ#n$y={u6HE}IF*t8 zR-lpz$?7JC6357H7#QE9jQYjC=ADlVVV&4p zeIAmX{D06~uMD)SNUvQXB*0jkaFhx_f53q23urFX9LryC#JzHb2@&LF zdNoDcz))xqO@K7PisCMJnm-k+tM_L6x#P&&gaNd$I1SKFE_rpn2+b!g@l3E;YBpPR zbCM`rBy-w>hd?!#Ff(`?>B8ecOJTjHx7T^O3mSa|mA;`G1I@^7&oAv0^25>}vTS5m9S1>ucubXqg|4rQvXlr)Cv^ z7Q}z9@QaCJ?t~D=5*iA0-;)BbQtLs+?TSLzG+lqpZ=>0ThvCna`qdgHXDM$CDzn(u z)F1PH%ufC&gv0=cpQ7Hw#@dlZX=!DdKh^~(H8DT^wqGwL=5X7Ctru4-*x{*7$ECl| zJO&R_BX)eyh8k65y3R>CWI1WT4<@9Bo76sJP-1oWk2P)qZ5~w&P-`C{mdtXM9GgO+Iq1>ASF-l><+I|QQ zsO!J^4q93^z;tT{qXj51agBcVM|4Dbj>o9#!m%((ZS=-F-Aznw59P}pc70yE&vE;m zR=uP)_oahw+v(0Dg016pA;4z~^*D2gX};oY8$muB>c8BLH2i|a2uzy<5VLJfckKeC zg}y4St>VFt6+b^}i(fNcRn*H|#pl zzeOEG#LyU z&X^m1|8g>%^6-HjJfe66G~8^)0dQwN&gfAiW%=lVXx1_tf`~3NhT@M+)Y9P#VPE6}2iQZ9Fhcdp5u+_%A=^86?cv#M3t|$(hCT@lce_Qjk*6V#8UV zLg`Wgwa}|>46&8)G-ehaMx3xxto7$a=H^j62lyBZSH2F19Go>OX!R)*PS||0!vraC zH$?vjCz{F;M;jwItM@21`YtS^@OwPhR~vGVt<^qsPSwQFA751PBQrb1G48-Z8#^oU z?!W{H(Fjf7U-3#jKw-zFvL5P(P^SOCsC&z>D!*>w*8o|7(kzt*kz9Z%-5nw&wdj@x zX=y=HN)SZ4yA~jbq;yF)NK1D&ymRUEe`-H_pM9=#y&uk(r62UZ=RN0`BYtDdF^NZ+ zz$XO$hflx=4z-w0{gzECGg>=MlJxZhp@`lN`A%%Tiyx6>2wN-aBUnf(Tiv4&#FH=r zUKHR1J`%G3qgWZ=(;35Eohb;XO7}sgKbpX%F-jHxlEmNG0G#UF4E1@<@?wnTkfd zwq;`bQWeQeRxS@Yk=Nug?T=$>)yr>e94`OBs6R)=k-na{T6257=?(0U`xMeb6HF=$ zUr_|s^IwDkkMIQh`v9*^=FGHHnWfjy@j=tRI#JWH&m|K30%HVFcTunH5S9Ubd_iKG zF@i^oCmGHA34_p|hRWZ^$n;CLdh=Iy$#q0+U@p&FUk&^iKN#7UF`XwY`<2d8`c(X8 zBNZxNSG))uekWw=ozP7%e$*7B%FYS|5GErfxREWBktVz{akz(XZXw)=5MgJ z3*Uq$C3)c|x^}!k0?RobrRy?!*a`N*y#?&_)vqjRqOFN|PU`M}!kTp+3bHy9&3RJ5 zLgv}3oG4{DZ9i91k#}J)W7he85jnMF_#0 z-}wRsNv*N-MXi|s3X^C5EZIN*1iNW)f2nV4s@iPbA4+ss^3k5Naejqu|RRhc|! z__F&K1mr#zC0IGIiBvAkdU5!*lwsOron89NT*01@Rh~U1IuDWumFB~^)M+tX;zLcAs=24Y%&oH>C3X4?o@@4sd{>&=P2q~FYJ zeyKs@XuYhL%PP04bBi6%DPv6VQm(F5IAYcwhnw?+yXT6XUB4$_h%|i6TUI}H=_gL< zd``!*?=8_#O|j80YLno+S-cu~4U4;$q=WU36LfC^V)^cTHEA=NwShVS`5p&u3a8Yd zgK2C_wxQWRvFlxJq}6p(I^ni)_00m0ypnYUqM-zTJ@jYzMTWowzjo8@1kS}>aU=tx z1|H<2evu1Gu9Zi$?Gc19#*?gM7O_1VShLGFS4T=1ylST%gOc&&r`XTtbSj#j(F$-j zppMtHDemiP#_F>SG1u24oGa02p3{a58u-hN=Wh{D#PQB=dhbyKUzBf)igU>1)n%Z+ z=NpGHIN$pxK!I`dAWn25N2_q4MMZu<-ThMT{^CFh(`vcX*!aVZs@M$xDgtic)_wp^ zN{ATdC%k&Ei-so+G=g`ij8G?CdaP`JW%ov%;x}`c>452!8vI&kX`uv1MCCxP7Et2z z3UIzLy^!xWSAqu?EUs}{yX$v_Z-wye8kwtKe%ehS!GU_XNE#9YFHiUepsI8io#{7* zCGo|>GJyhQb+=T!tYN7^t1aj7^ZT1Bbw;lCuM+x}PdHHjGz@)QY&_sbMVO}2j9s)Y zbT!&YpZI?c*xG+``RrA1L^wRqYM@30PMuB5e05S1)O&qWvE!nb#BS8Fx!*{gi_9PiGn+UOTOBaI~a=MYd%TXo|oeyw8(w^br)(qV63OUw#hX zp+mVJl$AxIASuZ<N!MG)bQg-OPadhZZ2>zKW z=<=Z4|O=+s`sJh@oi;DdyU}-a&wH8`!tw7;AVzV0#39w~UJ#DTkb>!Xk z$iNQHccYuK_e1nOhW1aR={MLsjp^8@QV=V0qJ*8?9#To82e~y$J3ej`RIfJ`Hq&B` zvP~hu7`QM9rZCl&O0%ElUe0~8pgt}GqYHlzOMS5D!J2Zd74t!Dfs(3-f>}R%%`acA zIpTgsA7kn_5Fo&rl!IvC$+2-?oi{&IB;nXC)Ax~OE%o^d#3qZWvTdc@w;LDw(`J`* zw51%!7ZqQ=t}-OlO21)wevhnEQh#objN!DpApfziA9G3IkpKj9^v{SZm|)H1hH61s zK&YiYKp7}tFd_CYGGP4Gba<9>@m`#yJaY#M9|}Ef>8IRQQ5}Bc-UmFS5KJYC5^@|m zC7{_`ZnJ=Y8^;|lSGkj~zi_NtBO%{gA0$_6L=(!lbTZG|S5VFbW2^p{2M{=eyDBGm ztJaL@DGl;>wN9M^<`5+QrB?$UX!Cs7=($1Q*TP>exO7xVby9>cD-0L&=h?@Im*&(? zPLS1aNG8Vat)oh~@7b^N>{l+S+tDf8ZhTot7lyzM3Aoe`I^=A5BWH_^^|uc8@A#+& zG_WO~>(4f`f#@=`>k>%`o1bk&kYE8Hdqixvx(JCweH*1EMlftE6)^as?NnD3&IaHL zp;J6Ii!4XX>hrBB$B3woy-14j4W4MtLg0{dFe68n(|-v3zX(1u11Z}23JxzJ_QQMn zRQ#Lzj_#M^$~Q2P9j;G}H22~_Y3L@#(R{_97ODRf zJ*9?~Rt7wW#%`(N0DS*4+8qy?SAdA+lfVBN*meehi2b&BziYceFr5n=!+}dCb9WOw zUl}X`L+C~qz;)#Pt8dMz4%rdI|ZKDKZCB}umGYzr!Ew=B?PB?q5w8=AI%N@)X*PmcW|JpyIB)p<(|6#r$LrNp+8-K zG&y(!WApQVMcM^PUA~wS4zz0fhVv#R>}SacKOPV})-Ql@Dge!&!&V9+dL#08Ib=d` zv50ZE+I2U&WM9<5*B;pA&M5DTy%BUhw6<0wjXs+x>%Uxr<~GbsmEaKGm8btU1HXW( zFro5d9=gNLebUdBgjf9Pb*;5?a0NMM#wQxKdkhnIqCq(O3LUsJ7u@|-TesH)DcaAU ze36!8vfe98fBJnlQ8d6`VWeU^!!MunGwQE5HaO5QZwnHvMyiJeNMXQ(f^U8t{KAaJV{&Y$`l;twuSdxm8%Zsu9*skx>sK}J z$*$+v4_YI$jYi)L4QuwYqz0+|cpCSZyitTo;wDN0E&}L`v(;g=?R3ea+LuXfpLg+1 zhuT_|_SaM#mJS7@*9V~#umQX;U-`4x%iB0MldO918a?biuopif6nc}pn72|-xOf0M z$10?<^1y+LS1pT2TLC>w4eS%XyeA*90tH%MztF=fD%b}9*&#}blcI1$`h7^3$Q9T& z30ngbiVuNr@9FQ(dpP&`v)c?x51O<;WN*gVmGRn*QtU_9kD&Vz%jSb7?#^SB2*cFZM@f%P1S`_Z zTob!?Oe`mv$jZLKiy4AeR2S0fIj?lkeq1k}WdmSqL5(;<35V`E$mGu2;4ddR!L;`q z) zu>b`A<70K^q56ue{#ppf)W_|W`hwHwvp@RVNvR}j6j5kog#3zs3!I-$47m|T30<%) z>P|>DaD5ebTYrUg^VXf&3@}3wfj1T!%tH`6 z6cAkP?~q`~6XQ~(XP)xkeFr)RclGtMm%HW(A5Sk)>8~Rfw)w#H)%0cA`?8_Hop{g? znE3WB6ujF9oB1F1GI(zYde2*_S6!T$0m+|(5O zTH>sDO~=pNmqU15RwyQHghu}ktZNLDz5s|WEgk&|z#36oKakx(2P;gM56wfg=V4bM z#XZ<^=E&mNYSw4TM7P#(@7Ilda^KA?yb%a-=sBvl>8&h3RB~x|ryUE6eKcjI848oT zL0i%@<`l5A*6tS7JP`8n#k9Reyq4y@g0~~Z#|rTL0Vzc=Ujb-;UWNlzj|dlJmiUKA z*#5Mm0VP0{zW_{&te7rAW-h*2hT=k*&CZ>HA0o=?{m)~4Q}2ORXgQVidsbIkiHNj@ zS$^J^fIkp6x1{Begg;m}Y6MXvHHzOW3cU{iF(UDrN?w_7!TOkVvCZleA-Za965JQT zb-hV#hOCWL)m#KTPbJ_4X?V3jm&S#vfE*D^V~)3&$fzmC(-%Ez4^0KORF_|7H2x(% zbk+2voE-^&UiX94j%d_h8)GjOAR}x=x}Ru};6|-d4NRbMTu8nq0DE^r=KuDD&+OneT}8@ddlFMBidXQU1=^6ajeAP~LY$qKm1ba**zkUwt+GX#x`b zX;#D3B&^u)4$7#=J+~s@*Iu06{ilI{0$94z^-*EBJyviW!`VPXW^7YhRHSts@ej=U zEPiln39)&uS3Sl=g*|7tNBZNdcTEdW94HwYnl_{QtxW3Qxg0@j>t4qKEHbXQaXvq> zYk<3h4mX>kKX0}k2xp>6Lk7=Tqt--WCFF+Zvnl52ceR?iGs|+Mch2_4e&)sK{^#doG+Pj{`vuc zGp7HQwjmQgRJ<7&m}HlG6HD%bcy@A6nAGo)p-1eBgUd*S!jVHd6xQ*+)|kvg`(8Fe zyP+v#xR%$XgG9h2|KNGJx?oqDMCAZ&&qo97kA!;p+dmvtMc*6n=^CvHAuP<8FSan8 z6)J`2jRscdavGJcqD7+lG*iBS;zj)<=lH1ZE^>D(2G3YoW-on@G7O@5eIZc(w27rR zZ+F1osz20T!QSYJvez|*`ePQUs#Ue`%se>}5<^ZcSy6UyAb5uY?~sX?6zbj<|<&@SC*@5y91Q{ny`xk$!Pk3LxT%a>M09WJR`)j2>uMY_+|g zYA~>N9>a&6NF$+lB~qY4O7)t{RW~nxEkIpFnT`(R+o^%O81W$bqdyK*?#b~gGShd4 za+}y&2p4##;@9(U(UTNDq7SGfLCuz>87JNH)l;j-h+u;u zkhuoXa2UCoLRi5C?F*HQFOYMw^0zcCc)_RgFa008Pp<~>r8$S4&D|eLb1wYH+{izK zf-g+7=Qm0h_`eO4|A;rrKQh1n|HyDx;z4;Uocl%`yNAa6~L2kPmPy=H*!B1V~qhv;9|=?1!uiG^kqWQgTZ; z|7Bs51|09mB9}SY^nqI-Vg0Ju6Yz8fl9juVUt!3nQoaM(fq*XLQ)|a6K?XlnlK7u2 z$e*ORo+i9ze+~0ssD^m;S(&Gps30E?-}PcRbDFqXcS^23v`^9GfZ(CoO<@4ROl?36 z=Vn=Afn2h>dIWf6X>m__a896%R={> zzgy7amh9DZDAH^8!-a}Z9(lMA7F6LOc_JhGJXWP?zvf5qcY!T_*6Il(^pF;gQF z`bYx0o~D|Zj|+9TCJCQ7yFh4O+7c{A==dk#PNMCfkdLh!Fam?cejf~*aHy)TUp zt4tVmL^M4p;h>*YpC)K*e5$uWhJpc9CEbn3O)3?BeqhPLkN{Z+;nY(O9O%QVNVnIZ z^jB0EFr(j&p469Fn@#fbhOcJLxRQgcCLWX|vJGWs7yG*bzOpZ9b3xQ~qP3N{E6!s% zZ_5e!|BsB(9DyoCvl$VR6IsM>Gk=VThK5w=|``rwM^DP zF?W_!+zhs_pG(%*BSxT?t+p2Fhe6XDntwWsW`_)n5Tv5Hvyj zth~)j7!=G8z9ziZf8#n$GEwWsX*Ja+k}lw6XDtEWK@UWU=fjxu#jGbv8gygSNzY!M z5zE$j`cZ<+-o3JC=o&B)ll#*z4$tq!T&U~uy*@N%JHk)K*tg9QX>CSAv=mblavZ2r zr9m-;0`Qi^S$VeB|IW}QTmQk(x4gc3@K6DUZu(CQU3Pb;DGZ~&LCv_ux7aKGYHz^) zVC(&&!=4)R{cffDst5YE2T}H`&e&7(`JV*vkDL!G!v`}MO^7|*McyJn=q(BNE#NZW z<4*mqut0Mbc?2lmEG{1so7-pJC7Pg?JRG{a<@$Ldiwe(?ImghC_(V~G=Di2(DlWNK zom}NY7k@S;GG{lpT(c_qTpNO^_Is3)-C&YI!3_hD&|N_He}Xi%0)W$hr~3vA$Kiqx zXvTiE3HcVx3OXfB&bP}a)9=$Fk?#bFengh8$J9s`;$OnY&q=$@{{uIlsB29-b`pVa z{FFV|^LIBnCDWNq#=3i@54xbdmYnU?ivqr- z=fbY>oH*JH&OYbdMd9(ovgLMMOoMo~VjO74YS3?~-WRN6BGKt8^M`%&(D_V#2%=K? zx-t|d@D|qYxU*1V-LbuN-gG&>SPj*BW4@pq!29G#Ws#jTQZmrTaG)1sX>l^r7u|6e zwZu()GHc7V=#_s5?Awsh5)f*V#lN&f2m3DXAN$U-Xhy5zvpF%*YS6dQpkX%KCFj*< z%=%Z#syjWDFzWfSTj7YD-2CkNtGVIV1U_T4pj_TBh_j_PO9u?iGdVZ>KDs)qV-M5N z__Un8Jntuf8ODclea}IX;XOVtXi?M7`a7C8-TlU7+ zab%9+0ZCByz=K-yYyXAT4e^=rWM#Qi!oo~*&{<(xwGn`R^@+dyQu}5kVqv__1%H_R z-ZN$fF*FJoO3;ZK?tSZybe)sdI@{*JgM@xYFB z?ZS{q;M8yMfO^?$YXO7yWcOEa*BG$nMO&$_LM8(ImDT(aY8BSBb>Rp4bDyg!0|xlj zkWL`(CZJarH1@H4EVsmencr{p2`vU7vBFQBS_%`S#i1!g6PdF5lo=?rhMK$0hRy#} zflZtk>VM4W+ftNLV<&@F+`0KQqw0O!9S7~#zmBN;Y;oEj-n_EYGhFUTIIOC!PH399 z0nR%ih`e>t_FfPK$X-}})>8^8n0*)Y6N=1n9&};HKY~@|exnzLSI+&6Ngo3wdOOvf z0Lr|b>M(N~(9LG532>lAi?%md2>07W1p>z_MEh}^4< zIIgXE92!@fXP68A1*3oFv7v-jpsI5&*Yz8ie~sNR`T0R3u8)oGqv1jdg+dXiW0Bfz z4@Qaq_^Kxhnd%%nsUpawVtfYHnNAcw&WIoTtIpnUV&#)nAl=3 z#sh1G9SwUrRY(D=QqN#82KDa`!U5Q=`VM4vSAXH3ur5HAr?my#9kjaC+P$ z-LYMfY5O;+>_Ezpsc?RmgDYwGtbNxyjx}8+LvexN1ray|@2VCgu!5zb#|i@INR%Hb zo>dK?9A~id<78jI2kMkblG~ROFC5e8Ih-EDw2-SMwfhQDL+|Tn{GHwjTR-9!83$-Y zMFHZ8X_SA8#HtD~Fx8F~>VE(B_tRkxggMGYH9TH)^L3`J+JA&n$3%xir{~P9Uu3mVT;ezLX}puXx0kiy~5v1*Acus`(>1HZrq_ zEZxw;Z`&10`SLrIl>bN6H>WnvsXuo=u@+S1lyH6&CgkJ1^59FcwiGJgNRQp$VB z^o#b58+T5n#e|jrL@@uKN~MGep^4Q_gB7#7Nio9Fgv#oQxJix3g5XDO%eVFCws~Jj58T)}8XrpNsb`yQlBoE%M7d(gN)m%=xXRBWCs=YOBdElfudI z{saNbyvg@{{ifqVvDDwe-CwoHnBX`jvXYtpCebvBH0QnBEn7kwvTHasQP|wGL19b@_JHxs)4$A0(sxik_)^FfE)wD~XP35SB@)-1%D}buf zx{Ar9nJ#7X4P9wNA3kUeIL2{C3?~C+>Y}y)V4<^|5`HFkCw;h8c7D*9Z zP{5cXIl@qHX(O?PD{T%~$)wD6Sy0aEz;-e5yEL?N1q36Mpw#|P7U;AOIHLh{1Y5U# z#r2uh3;h5L`*-eJd-+|7(+}u&0_K>%(NwD$#gk@x1XP;y^4`GQ;q8?l zbK3V6u8v;Tn}8C%9|+(o-B3g#&fsNj8=JJRlRWlr8W)S*E$K(-=ep*Nx5|7^4lBe4 zWd9$J3_Jqo2mUHayoW4FEcsv7{T5*QPZVwc*nX`kkSlseMd?EzX}E7Y1Zm<^L{p-C z#U*zt=XLG)sJs_AEQO4@-rWYe`?HTA$TA9+tW4oUf~UpaUxU*k3G(wAz-}ocHQV3Q zYZ*tR;^&Zlkz^h-*&G0a@f4FcI%XQp+-|qOYM8jot}z$sOp_xX^B!qKu`lsslx& zyrwhQq%WGV1$jUgciC@U%oM-LCPy}F>y(KR;yrBk`Y8-R6heOF3~I_m`k z@absA@JSsUwAmA#^*qulOi^xCp>#^XEvHL@d7K)%3EbXo;J>)9LP$NikooMS)y;6Z zsEFL|?D|ZvZtLb{l^g_&okHXfhDA;SvS!!;Ij$~pZL#2@IN{rOhWp1ke`J?rdsMCH zJ6Ue0cwL`4XjI#wY9I9(zK2$O@S#~;W zajugC1x&&KdG8X=uAEQeHQ0$g|F!tm`TuD_R8(f{ZbppdWxGaqx{WBvq`2( zJ=;N+ZD}0sBR#rK;~LbAN66o~WT;URNmZ>Xsm_qeRN@ujF>S10+B zEB)(5SvFVo%Vt7Tvv94+$%=vAov@@A#V3b`fPob=RMt)a4g2TN4YJHuf)LuJF|pFI#8J-UZ2Sw+hZ(y`0=*`` zapU@$-dAJpuZB1qiRcLgEvLui@GxyX>@ArzNMOn>vbR*91AS=kpzOYl8ONl{c#l*1MK_Q^tje9`@UwS017d^L6}Hg9b$N%uTr zb+xEyL36lFyWVrn#eB1zqtkm+cg7}FT+{iNkjyii`Ihrf3h_QXPInkPo%=sBau_GY z-c-Y~o(jZb?)hr*)cBM}L%XEwt%k9xAIGWV%KYW?jo@Xg3Ay5;=}+ns{#u8c76s*( zW(A?z%Fm! zu9xmTn!2M*hLR>R8%^G2dbQLUHGH+!t+p~eX_Jz#n=FpnqT)6AQX7$9>O&^5F2Et)*oH$Db-RqIWVBUJ-E;m@N#DE(TZ>X*9rA=rf0p+FSBpQkB=4< zjmau~viWkHe%33^L_9DTin*~S_|4#1A>GWw;VgwRR~LuztI*9eFC|s!-eQJeOU=sp z)uPugYY)RudijJ)u=UiA-b*LHpibau?89 zBmVo`<5P#1`4ZFUrF=@5KH{HH3>~;ZcRgNwAHQ!NpoQAcI&VFF>zR~SyN^>e5o2W* z_nG2Ov4(rP(r<@xPv5DYt2RD3#&=WN-uEA*=bV-XePpR1P@~#F&_Hh>5v`#yV>(CY zJ_I`Kl5u{gfr^wed0AgSf{Xwq_#mY5`OO9@*xqUvXt|uE2&V_Pd5DuOE&>(kP+ zxfrGPm27jowrdbnm#mM=^N9^^SH=4ObQC;1IgE9}gFta$k)hE~!i5o#kDhC#l<p>SYY%CvfR|)-0&_o}4dax*hkm{u?Ai#k&Qia>u#|mZnv{XIDTn*;b zNjtkoJpKvKacwla{@#W(t&SJtp@4IxO@qPk{p5a86ReChRV&k9GTYTM;0g-Ry>_$C zS5IFf{6dQy0u?OVDFa`L{g~Vgw5JIG&Di+U5idcz&|vp7J1`^@0#ytMR6j!U+qV}K z_zeb={)Y}TW^H{H1CH!{p`VYK*)3-JWAsWq#|`3MKPTr6XVd{aY-?hw8`}pJbO(C! zpcJgahcKy^_aIQ|lngHL2Gj(KZ1A#d)ITp!StImjtkLp@S(xxoXL z-XUbSoJ!DHuaYigvY!&pr8C^pn(VaB<+?c1@34@N`BEGc0;Mu81KoT+50mHIgNTI+ z(fG6^feK*BQ;xiuoIa-yv16|k5tVDhu|p}ggXYo|1y|l=2r55>-<@DGZM1~v8zE&* ziFxfN2@k-`1e?EWT?pd@Hc6;^5EWQ#Rp&0H4yOA zagsPzGgzYCU}D88)9ug4Yx@TmhcSbFZe$r-@BE(|-)azHkjsq~MtpdWAL}jDgWE2K zkV5Ogg{iV!4Edxg;i^z3 z9<1lv@pVBa1?`0TmlAi?3xr-${8R(&y{u<#{Fazd-TM7IweDSXRcD9lMUUh-QxP9c zHm_H|zdDK-CagB=+zV|SU)f9=Dy1ZyuKZrag%Uh;nSG92*R?CiJ`Aku0q7UBuoz3^ z<3~$$3>sA4_p{|?Kn<47R~z~~R_nbO#` zk>2cij&mGdi}^yi+B5Gx>1cS2UId-$>%=q|eCIagSW;M#mECeeE9kZ&9G*e+Z7%7Z zpLpekqN_FD&LcRN3|4F(db&+&U6UlkyOuguYe9EGUau?O8Q={c$P#PiBRrD3nVGVkN1_?4vmK4@f&m);`vB)G08q6AOzI*s+`ob0)x z-pk`|dl6|o62S2FQ~z|W+on6$nM&S08IhO$xh`_cWgnh5P=%OK4*U4^0OhW@Ki!`B z2nR-e$N_XR1yW`G%9s_jES@@&G_qIT^(1+^){BJHt%c6q*_7q{bAcE5Hy3DUMRnS%X_Cp=SRS5cYU3`NjXndj zyj#)3cX@&4d};f<`>v0lazguE6n9*(7$=={8DgMS>$}lQSjJ1ltm?Wa^d&ufWs4Ye z0o{)0%JS8t%vA#eL_-IP?-4C(Ky94hr8v)J82Se)F+{Z;X+dZki9iSncTJMm-n+kR}jxBMW4!IX?ZSKY8X@ zktq$-?nd9-1ux4vr*`I`>{PD^11jbgb_K`qDe`OjrZ~Yh3EPKSpf9P&OBSSk!b938 zIgBKNGEO_scP#G-FN-f8c^r30R>bUi#%L{4_ns-0`=Neq*!|YvNxrtUJSjk4T2v`{ z2Ryic+5eHMgP_%CCcVJRCB^dZ0ViK3V zNC`KR!5MugWDPEriKx4Fd3t)Xvo_Z#U+tK1$;&b+qLisec_ll%`+Mef27j->?=cU| z9NWs>1Y_O?7WA(%FJm{|9L|rdKpcf?E;#nPF2~p;$@D*>C;sKZVI^3(=_C5 zVQ-OL_C={qX*F-Ym%%3`m&u-bI-*lScQsAhOF5<(?c=wFv`Sa!I?gjfh@BZu+ZX6y z`ilQ)`uZD|h6hb1ZKU6b{Kz`D%n~&H!M}xvxg2LH0J_~}FY{gOmIgh$<`~z({-G!; z;O-E)NnO4?e*d)hhvf5UAMv#Eut%zQYnN|Ms4EIDgbRjPU%MuTYn;i0X19Wj8K4|F z2i)f+E=$vcE9vXx`8Ba#E$l5NvzbFt#}QcQRHUl+yY5e^wxNKZ{C#K1;=xWN#RB$g zQdS($p_YCrP5nc&BcUs^^X|k=QH$}Wjv!$m#W%PwX1BU=oSRbVJ5A(O9dA9G6Tg~+ z>B*u}F#7}aBMuzgLimY$rc<3=b@gr-6szbh^{ z5<+|s$2)y1WDVN-&P{F4Z#$*I8`Q*Q5q+01l!it(%g0ImQ=DKcYTM^@9oxK+UAO%~ zkp{v5oZd&WV-DS^J{5#M;tB?2tFkz-Hy>6Vl9s(2_YqhPK3+nO+;Kp8JQ3THKT>ZH zOd{0eP)c87%D^O)GZ99-mddzxIP+5~9mdq8iuz&|bJciPDTe@-5TNPQS}|KV8py;5 zFPIJW&{VdZq8e7iSjKGdq1Qv^lA=I+T^qZL7%S!FiLU~57X?dkAQF~RS3dI7^@&`GsLbaLKKUzLV|?3JUVYw|@?TI(K|jI%!ACvW!~$Bg7!M-j zfOmNNS5{(mZie;nBs83w>+Y?H#|kBGEQ`y-kuSX<&|Fp?EDrex?EYa$Z9PwZ|3|j- zHo0V*4(s~~(g{Y#J2!jtps-u2wE4eqV5N=O2L`}0Y;i}KA%B(o8g79m$E+avgbD45 zf7u@!X*gfl>5_zo(c6@Via8aQ1unvLa$KQR=9wCr;)?b`y|%95ThicVzStkt-Qw6p zP%aOA7yL=BT`+q~Pk+v!sA4~yFy5@}u?ERt!A-|=vt0FZl#^Sxa36iAYDoy4G`m{D znD{EJO*B-c@Ej97+|U6AbG<9j<&;!oG~(toALijHP8&idT3AIg?_uk20yZW@uF04o z-Pbh7vz!VjcKsizFYsXwy{UPQMd2)<_p{L6M{3IkpYAu!3Nc~u)B%?ya%KY}uv7O9 z(+B$rP%ulJyC*>Z<$6Jqk8)Q(tE`z8?-NdjiCr$^z`#<))zmT0NW-9m-iMYDljNjF?u2v~$9YgFr{G1c}e2`dZ9^ z4-8ub(T7ELjH z#QShlSol#eJqq4^LTN~&DN*x+rMtv4S|q&o4YqDM%zSZRPVn|N1x3US7K^xVb$qMv zC4(x>1-O4Sh#rCxX($;XP&^8TPT+hBBGU9yEwGI9kiUz?CZ2Mr4f7^Y^-Vt}IM>=| zxn&n&?_2^H$up@$q-7*7%0s9v1@HjpG9M-;l8W^ zdDFL7>xGeuTJ1do6|*SAdfBD!J0u9{S=`M}tHIKZNvDTEMV5&wFdG^XSh#t>Xuj3o zbX8YVmOtF*gffq{p`N3BzjI3;Z#MGA?)7$Vn=JIHsEC0PH@I z?OVMVLWq-xp}OnulZ#JW!cj4kPJ}B@V$qKdaP(;7EM;-Ua$cL$G$E%}bTC970)2HL zTB;!gY9%t4N}en!(4ZqF(fmkc4Y*e?_jf%wz$+O$Zx;bi^(Y$)eDd5ylmf8370Jh^ zZIb24PZo46@FoX6M>nF9^H3V*m+R)f4uX%;>^gH9nzZW+YNr}kXfF4JAQT!F90z;& zJtN(+9uDPEIR%@qksSA!#~%5m}7 ziQiUo(BGt;M++t##~_ru$)_r*Q3vvrVE;Xr>vqI}4ZV(z0R68Y5)A*+kJC%dir%yH z)1wRm8|aT)Nuc`vFB&udHyQ&~Rmq6LY!JbacpNK)$Z2F~s-jXyG{W?`+sfCyC^^tAWXGp$Up^jl>YZ16i^GTm`XyPoE(9~ z>8!r1t2*PbZvEToHNuFTwOZTY=b7qi)Wq0fuf0FybgayNzVGdjDqUNI>B>jU2trk1 zvwT@>&{uoL(k?(R;vRqbs0aemdjG!$m_YqjGTSl&YbCD#Q!Y6Rb*SE@>HFb;Rg3S3 z9PetnW#%2?IAxm8`(BC(5rc3D^r;)=c@3DeUIi5_9GG%Mw}38)9v&bc-}Q_g1yi1F z3mpPw##nHofIk?0Z0+|asP0fk=*K%o*Dg z>z#ymsR=D6)e19nGBBZFrdOqF7=!oGcvVM?C~p;gl85Vpb%yQDMKdz8g?FAmA34a{HHfi<^Cs?&caSz1EG*kBLpYiZ(>>0y@$R(_I~o1XSt? z|HikDmH`qOGxgEK4T&)^hd`4|e}b*7MbNq#=;LP_-Bl_AJ_m*FbWh8vs$=Q+8eXFQ zw11<_UL=jIFGm0v%uWH(UwQ;U$OC@#WjrP30_vP0SCc(=?;{HereM@TW>CIfYIsUg zBrx1_8(#^)g-FsWnP5l#`}+VTDw6q$(Ev*HfLJJCVnP|=U!FMHQw38{=jHMf6zGI0 zq%yFXAtv5rznWoqr=cb;vL|=A587l4mOatO_VGin{ZI!4WZ>CA>@Bd6fHC|RlAwq< z@jPcflH9nY3^U=S;_5BkLuKgC9-w zcqxS{Kxamgy#mGH0u2)G<&U!cI(P$<8f23-0-t=11Una(kyuCRpQBn_lZN?k+nj^0 zq9d8r-*0bx`B5w?>ZKuR>7(@hhKhXL!B@a!Cw+L1zR`DaDlTrV6isdz6;6_jl}1c` zIv$M~e6fB_XY-8#UUO#nuzQk(f944!h$yi-RGhUf_LYOVw#wl2CoYZ@zj~Yo9N3RF zZAHZAqbBHCgX=2paAC>fwl}HD-q9aG0LzmtS!d#za-Xl3{leZT02@<3$Q4vKXb2F` z2r!n220IqFBJMue=^fO&QVFQR%@q=-Za-0i>5jz>rYPamc<9H~Gmj}RTHOW)Lg!RD zx(0YP8`W7XUUp!Ij{TteF4BVb>4VvxUAjZ_Se}Vd08O2H4$$k8O4}}qh(68IiGg_< zcur;}r!xfV>JqO2E)S8e1yjZ^1tO4#u^)g%0LxbcmM_vCeLY9FfhxyQTznkb$#NIU zEqwpBuh_6Sj|aDbRFPB`-q<1_qm|_~^79v=#Y*s>{uj(V_#( z#ugw#jnr2&>eYoydLexg02HU+EJ>TMH?LMTvMocLjJQH49?qGhN{p1@oNF%J^AS(*JiRPO1s;i#Hc)QbCVY%_l zDfndj-t|<_Bu9>l=$g(;oUgB3DzXRgtksA}xZBI-8-tb(*A;f<<%*KOP*D~JzIKaK z7l1KO)|X6Gft!{B@u==<+;*CCcm}5hZ12C(*3F2lE#VC@pBwT|X_=;k2uCuSdn^71 zcXQU*?0*&>jLTf7G3uVa zCE_r9W$C6Q8;6UhBKOtBk4BaT+Ckr+pk>$H*+{ZCK8oTaestG(=|+PHjqEoUU`tx@ z|3^!Q`wi5Bj(r(SzK&wb_ev>gbIQIsdLhWObnLZb$;d*izPl>AZa2~ zGHH`1hIfLs`Yn+(SEux4biq_>n%YGz#}(l zJAgkVonmAMu%xRwQWIh@0`7}w&t?I3*j0ii3$li}^iFas6PqknPhIUt1|WfNILx}! zP}x>T>oc;>9aC@zr!%WgT}RK8uY(On=@VyGXdyvs|NTv(npR)bEW93_8mKQCc3 zdUHZlH%7&kHtc&Wma6aDtWWP~re_@n3$V^N>mCmsW#`b^+EtlB7k^kZ;cHj$%?8~M z=m=SWHdm#&8`8^?425Hny3-^+Ia4K;TpW1{C^&+MsG{i2>5^byHVdEZJDY1_Qh|dD z^JNvUxw`ovYMUA({ec0!{(Crh<*%@f@#5H6<0L+msFvM{C7;`=u69;_*_74&thagL zxov?9bu-odYkIk#l7`gpP(8e&&{H?pN(CwQLC=mr39WX~X;Bg;m*9*>z3kj7@1czx4Ey~Lv(64U8|Nt$3HEKN!oo1AaQFkm5DmJNBGs+LaoB# z^kvm?#-mO2`QhT;G@p4q$55%rvXha?Vn^{v%Rt#H^@8_G$+Q+Gd4_yu#^kh~F?Sy? z5oSfVfQ-qP{L)CzizS&e*H&VOGg5rKeA>louIUV;2X-_;9!Ye3ep>wWKzKg*C~DBy z62dZWibzoG;Dd2Lz~Bb=wE3w|f#oc?!m(Ib416m0ag3s$cr0@M>e-pnxsHeFj+Ixo zM!Cgc>vny*Gx>vMe@;@4Ey^{gP8?T@3oADJP7k)7iTIqEOtoOR#fHsHjdWfL``ii-Lo&;uEv_fgJ|z#Sq1wi?oqE1>yJ{BUaB6b_D&G!*=aTdu8%ka z&s^gEv;M^(I7`=jn%aVol$=50lVnf&Uaw8mIM*p-htr|2x!n!?dD<1HZ7K&dZR8p0 zJ@rF&2=(yRt32Xio3X&63K%O!{MWosPQ6=GUz~PFzs!5tn_jK63^-q(f9AQiqe$eR zQ_NEmbXzB6wR;z{qFg9)vreqGcaWW(mCdZ`z_T}h<6|?=M(HQd8mCEeCd`z}+-3Fq z<1)fqYm?D()y6Q7%N}Bfr5PF}PkqICV|B0lq#>^oV_WZ%q&A{UuB&{ZLvhUv8n6XH z)}g8vYH;ya<-ThUaX0l-Gb@Z-gq+p9F{HO(%yQ&AIz0Y1#`??N)_y4R(u0iy<&JF6 zdOxT}-P5!xb_7bW1+Pjiu7)Bw8>Ll3kMtz?D;*#4oX|c4bN0&dF;d?)<;s2tDtZ>Q zsj4-jA)>Iz*xJ$dtCwPgu$qB!Wv)yvV~G?iMcQq?V+tXMdeWm4j}xbToNCy|$;$^0!{@QYm>E z#QT@YZsl#j306BxX>&Zp9JN?9v0uUOa_&rFJyu9`J+z82SX{Q>Ea9^66k{+S_pibx zBKm@EHW;k0HAurjAxz`Jj3IxAjWVA>2+@v_d=R|A0RQnPOChtI`AoEJm8K2%e4TUM z5z16s@aXy8YO`u+#&Z5MQGf@`z>a|^iKqhaLP$9Zc>dygWj{ES$_{gU+g{vXdWJi* z_w71UlI4MA{NVM`byD^xGzZxi242gHr1)~Hq8q%kahw9Bk9?_VewKCFiM*0!zpt%m63PO|boM&jC?2$mkZX>N7#@iux)V!lVOw=SpY88;kXX<2;3<{i9S71XHIXCW&Cu1YH)1EHX*S75of9_0YUi`>VrS>UZ6 zC2p2)0oX-vbLc>{_x}5<2rC82sE+sZ(lB0g3cx#`A%ZOyqCICD)k)6vB0r zW548FtJ_p$PdVH>6tLk+bRE=|9^^v1@3BLE*0$Y?Od?g{N+#IP{5av{=bv{!yDYoT z@~9%;B9S}oP{n@4%Vrz1yb>mbn+YN~k&juvWV6(~g|%Ni4A0+-1ytNDm5z@>4R#%| zqpnDUUvJ{Yz1~xF=&ISavIx#Bo6aVO{wOQ(DtaC-PlG;2zYWyGvv10$?4@V!@JW$1 zEx4|Whsu3m!`bKbPDOzYmqCU=JZ9M}Ag}K#QKtl8bm(eQV{iHR}caytKVbf{etKuTZoW7b@gk+W_@E2*Stes z*+oW1w}3-Wb6c)cB2Q0lRIqcHZK7d(Y~qsS2baRmna!p|v4O8V*Scgx z#@^2lu{sZ`+0;Gft+2{WGSM~C?d;K;JX~4T&^_s3k%|-RhqagI4cH}@v7=%_pK_4R z$hGS|JoSr4Lt1@Wq}8`$rXlgu(-&d6&;lW;U|G8>wvYG-B=Z&c?7vdD&(?n!!PThq zeWfWCRb&aiO&PDN4lc9sOWIs+ViAi11G)N(*gE^2Jkg8teb1xqIT$Oqd%MfQ`eb3? zqjK|aV1?Tv4K*qq9GJm zy)S>|^r$fRClkLeZ4-jFgwKWaYvoXGSgHJx@$PUu%V5{nkSr)E?_i+Wb_DyoFXF+q zZpQYxZ>pjaK`7~@_%6#z`x(BV0= zuO2Q5qu`FUW__5G#;dK+xN-!!9b;#Ol-HP_9&U||vUUT_APKikksB92ckqxgE?e^FBpQtQ-~yz=3rd@-)AZ}%xV_c4J5eY@e1>d+yIZ=uQ9ux+1f(0JyG#0A z8^7my&NOe{u zWO%Mg!@*@hou3bMDL_u(t=}*>7KF=eLz4c>rad-MsFklT4(hafMra!&3-C7S5@f$cs<(K46|VZy`;Ec2ILX23P~drye(e(_;hY);W@j&Vu@OQ~6>TdFuu3~^t0CC- z__HdP1+=MR$zBYL?^>?o1!X}leuc93Vb&pnGX^x@pyAB1ES>|FAqTynPpRm=FKpo-upLl{&31T0UEEc|N88>(2bFkocW!O-^(=xn8W3 ze$N`aDSQnFb?&hH-VTy%s;F|QE{&X#WNVq8jPBnX@3 z6_ouuPl0KBiVhEw=z2*Aa^lQfOOphLe7nnaY@9Q#!a;P zWu~i|p{b!(R#;~oC4w;EgGekew>--KAc|=i1pMN>2LWqo+$8oGTmbnpSJ^3>p~Faf zn`^es^vy(hmVCFGgb)@*v+c?5ukIUFSu+!Hm+3ky@(BKWrk1;1S2unRBlr&~=FlG> ze50<19{>f2+wv}NpwoZu$DN{ricRIZ+Hw?WiGN@*=7J1GwH~bUMeB;HTtN@JXJh!i zw~;;9_NTd`;lQMuA+aD>@uh^A=;#|BT?v(h5kfN7j(6BbtSDnWg@Y!{si~0oq%S6+GFC>L?sg9eYj|{2mP?R49sLB5eT>?8wAi3FSD~`^$yz35z}G9R zjJM@lf>HWT6ew4_A_FzK=JgIG)W~C=EX=9TZU~vlS&Qjjgv9A8_gK8$$Lg`5xDpXe z#|SKxnZ=!Cqk%)t7#4!$D2IhWLM#K2=19uEaCtS0$FGfrl)uWCw{QRqFbwXe{(&ON z7&Ra%d8B&m`p_nWfq)3iua zc=j&MVfV$4@{+DA1*4BOuoI26x@TLbdG@qkFl#=DC{`VDk0f+c zrFmjdR(qeaT4oeq~~M{Hnk-wLR;mP)(gBwjM#S=HzTwk zu=6*xvn^adQJj}Z|5}CBVy#MKVMFlHEZR0j#s*pqQdjd3?FRq0+&u9YEoyY@?*v?x zuDB1B5YF2sP?F3SjoY&e|3URQ`|j^Pei&Pt2R&kFI0B+>XIIk0Be9x?Gv^1>o9Zr| zTg(lF$d)Kq)TBVRO#$8Lv@Kb0e_}IrdB;r@6d_`JQ?}In=^YB9{J`^aXC{xx^u3JT zW@imjs%FcA7FV^n8=Fv{eE7HD>Mp5wYu{P#hSIhGSkEcAQPuPfRC3P>43(q4iq#1& zSZ-wWB6-I4GR*1@@LVrr$CuqTi-M&%v=~3<_--Zqs9UXpM?SVM0eNkZMh4Lydbb{kZ+jB4( zdEFhRp=Otma<6yi9_-2vkv8?tJZK+4HklL;tIJY*#hl_UB{@iPX~tf(^2gPI6M1Dz zHPkxC*qIb&{%TGzZlFgg2AvBpWYkR$fT*_(;MX}Ay|WKAkw)?yd-nJRE^KE_#f z?jE6_B~zLShMyzcyWqJYc}TgEcuC$tf`flsUF4UL)S&YNw@0&PRU!7;?9G``n;mF2B^exu~J$L&TDdB=NoBoHkef@j=GV zfV(ggBQ^BlH#OJMG-i5^#lQ}s#a{J7@umCs?XKMiy7PBG>B;)!T6!_OXVb~Fb5TQV zBU3*rwol5I(z+?q($cZpHy_;?pZV6(P-_3f5_v!vgK(>EFCz}(!GdD4e+APva|J9n z|AgKA+NH)Np*FUAx5i~y@dX)i-J=iNs8=9T+GY7}x|5_`5#8%y-TbT_C)05(i+fvg z?zrHCz^Gh2T$oPE*%eC2s|44x9QcqW$)%}>6uDs?cVgX>D0Pb^(#V|F4;R03H?zcc z+qK0C7yqbV|2$DwZmth!@LnM=(JizR>TB%!*@wAR-o9YSy^YUtjV<|3^4expG~sCO z;EWtz{`j2RUZK$YF8`szS+>jVCgK|7E4)*M!E%|iA+P>GRr;^IubvP`8=s{C31F@bw@0<6#Nh4+_r#WuS;Pa3=0sMeuKM-K0&CZ8=0 zcolT!iu;|fLQix-zg0=G2DX#mrkHb+mAM%SSmQ;S$Tuh)v>mq;IvWMR1$l5;6Eq*} z?YAqQVk_MUn*at_UW~`mHjZ5P<={{#5{=~?!?~ztdPJxJ`bGdF@>fenS+-?kXWPs@ z!e2#g+=fz##K<_#>}neJzO>m!!lN6fdyk^oZc~kQZ257}XvZ~a zg#NTm{p5zBVL^o!`SnL{lCvs~jzsB@Y{@t1^GXr0n8P9M!W5Ik#c?3*e(HL^u>&EM zE}!MK%V&7yN>}}MY;e8P`oK3{rRjY0PO}?-<>U@edCbGTi{Z<|^`M8(w>J{q-m6Vn zNTH#&OO7GLS?fhvw>934vapr;(?~qXpd<7UaQoFt z*DV_(bJgt#WZ8!_clbEerK6W|Cj3P|P4sWEKoIwslcEY-Sl^Oe9$UhfdZrQ8;3n^M zO6gVXBno=2t$=|%w6Gk~{y@_NR##Qc(YK*blZNjq>*tM`bdP##6HUK4u26G_?>J9A zE391fnBet3$vXHK#g(a@pxzC&YpawCnjPB3lo}Ny$+L1I?YWyKT zb9gDkvZNVd{y-SL{HOYan^AJzl$3Np$uv=llBom;oSO4|su-K@z0&YNg?rm?o3Cf@ z9u~d!^QQ}!m^(P>)|COqV?_HGers%_41Z;OqmKtNPD-R_fR=@B9E8}5P4{QRVaTTrekC&$$h@Mss+~!rYE3I_YZGq$SwXDrDk8Syzw+Jll!@weaSbd-tSc3`v z4SRwdyK5r{l0SSpwps*ICPy_C8VI-KkV^57u)N>yF>dGmI9#+RofMbiY)h{PR;T-=L%OkFM93Ss!h#v#b0C)yM}nZ))B@ zkstEi2;q>6IdZd7z}_!M-;no-!JmkR4}V9wVBEeiYnF0wu=FKsT(ZroV+9ov$^@MaWNvp^*ec$x>B#zYO3IxM9xGx-+8Dw zeXqvy0PxS9lYEYrir9M=#Blhy65eNdeb8aL;w+?5;_vRW)3~H%lvl(`Wu3cGrLhrB z3ArrIA*mSxY>2;sqE14&%|=a6#Q{bh{zgycYI2?J6Vp-3D*(_g>ea?;BDjN$p;rU( z#AdxG-}8|TCETJ*WdJ6Y6(8q2wFZL@*cRETg9|(Y#j@XMsY_lb=yz2Hug|}%(O9Mf z-#ZjFxUXMXySp2VH6+_-^l8r_4$$G>vH~VMGV-}lxIhp zl%qR=`Xh%~ckKIPcSlxJM>uVE`?2;#>(IKk%*Ow!TT!-e3-ie0PJgRu-}ZyhhXWGJ zf3kG{PWw+$jASRYBSxA-|EV>_O1!xlBIO@)zd!F1%ITY07oMWjdublwF(3PJE}xXO zg~sVFT+&5(fvjC^>r<13T1`JS&+7NXGz>JkdqDXEWM@Qy1J0JcwRP(X1?p&ULv5Tr zlcN7;fZ2-%;8u=J$F9(WLX_Hv$zbR9v--0n2pvt1GfpbOp!yJ9yd@EfPOU0;uq#dd ziHR=Yw`z2_;@IoGv|Z*Q(�j<_C1~lN672i_z5gm0VAFhorep#9t$@SdO7%BP&ylhDT)QchIkvlY%^w?4eRTdi@njq&qhb3hn(Nn52{&BL?H<-^glqugwl z-pk$ELwpc_ih>`{fczo$C+7O+xjE~`ksiE;r>%6h9wVXt1X;%?1Au2~kVZ%udSLlx zfT+V_V7neu*7)Q^w(bWKVu{nKwP}|eYs$L@J_inu;rxBPIa#T7XED<>)y;)3lF%p? zBMPp}F9BWppLo|YYAMGi`XdEa+sHk^RObbJSj*K_gJ~eC8WX7S>FW`pA8?;sTq|^7 zrGlREhhO@vFOy})J-ue<)P>a3*iB5C#o)?Y4#3Us?b&*Jb_J|_J;4S?BG%98V_QdX zNSrZ}Q8>`s21PJ2hz}fa$h=%ZQH$)n1^an0L<{3XFy%^KO+`v{_+)Vi1vin!5t4A~I1Se_N)<(X zt)%IxSC-y*&C0r6kg-RpKU83?Gf-@Mq*L>9szVyt8)SEX|5VWf6&{4T;_(LUlE{l5 z5!2uVfwVZ?DB3+quS7q@sSgOYx0iW|=SwwF{A7w{4xZY*4IDv%@Rw9?lYDJDI^Ex| zz*J=N&AF-ceN1UxtI%!>coNYpz5}NZ?4_*(zD*6zJSpQJ0>YgCqQVaFQS5?^RwL0r z49@DF1$|B`oFlSonUTgJm@um7Pw@d=USeDY9fQR%w%k?p7mGV$->%P9T>YAHw%2w{ zdvic!9Z4YTLS=5+1Snst+Zh}x8}646AD{2}kR0P%Ud?NsoduujN^?9k z=gWh*0@}k+`c-4!#S&KJtCQv2xIF>nnm~|J+rHs0R03{yy3+^{yKQ?c>?7J2OgSCK z2fJSXbhixtDVuMwtf6s+>zTMuX5LqJxmWUT@06Cy@CrJ&wrQ)h z2CC_wj*|ydOnHCzEEr-wpJAf#0HiK0`;JoYB~{s|w> z6P5lURGWwUlN*U^^HZ$-;5glvhB}(>SAz*NkWUxZDf&u=cubM)`}&uSt7?u&a_@mM zoQHpmhXUJ+9`tH*|5@MV9K2asspa3R{`&2j&Z|E`X*$-(KFwFs`ASs|bQf)ndN8-3 zOko}=<9|*DAXYC)v>F=${A%-&NLC=C8U}5HO#uifN#M}n-vcL7P5*V6pYN;N0Q0uf z4$&znq?Ac@ItArSN#-^4HI5=Fbo|PZA#(dJV#)@~{!_Pw$RYjdH6e5)TsbP+1}v&R z71inXc8&Lop0~q2TLbKRHE}2Q=kAxhcJvQhkow9Jw`NS53CC}m`zEoBIUoDT3cUzZ zTda`j>E@QXTbBapH0U1ANVh3|c=zMnWQ|2>t4Lve@UNVA4G29TFHYL1Qpk3)RIYg& zcGo_8GRE9}GKJnK>%wHEGzU(><9GoleG~LGUXXuGo%`B?bChdNy`us-pWIF|$GOae`w*%4T+8fl|)T;&32zJ|`-0_^;){1H6Dc z;z>|RA|ZV5J&mb*MPJfCQYRU?7hSYM)EQV?j69cy<4P%E5y!7hjpwn*I2K2;RDbv#Kx@(*N`nZ*#S`t^y+K@g1&h7{RF zu)u814{0PlnbPF@tXhgs$(eq%WUWc-#Oq%<(C2naSR1E*LkuS}CAoX4u8GP+0Ake> z1Y}%n9yb^qcaUC=K8=#8Dx)=1a!m6YP4ogtf1IXWZq~&cbFI^aJppQaYF1p$LaF_3 zg)+kuCNGQYsU#^Svm^sF3miMxrUa`LzN?B=0Aiy;e9}`mWOq8mzX4aEdC)mIfICbD zV{Mvd9mnoU_GWknoxwjqWIZ~L$8UAeWh5lY&!K3z|HRf!CB}L&S(hHJ1cy^Kj(yDC z{aE6i&RX|~(R4=e_K<=K%DWXnv%LMWS5Md|1#lHE$2aR1E zwFJ}W-+gI^E!AcA@zky|QkqO)ZD;Cx9?Rt;BX&k+ZdB;!(si}u4$IzHOB(-D`yX;K z#+A@trhp?BeOXf7zj^`Ck$q;S0crG;7UPpfJWJViJNK8bqT`yL&sV|DttkW zOAz&PAzPB%B_#uX2`?AbV#f?ed|C3WeHGy83=TwWVqz6FIyhugi#Pqa{-R>j@w#vw zLL^#$^9ewS;DTS(fL#AmrwVSucwt2^2JZ~A6F43V36=Bu;W9WymwvjSGj&nbpHh=7 z4P^!cu=g_c$Gn7Q7NaVz$WC%EYLz%~QDO@%Ek&Q^8cqV@V)B`C5+Iwi5iXb$YivVMkT0(9Z0rS^KjY|o{a|CC6UP1`@QfYvYuO*^| zDNyw*lzX)k*t77VRwkS>TA633+in8b+$(A7Ze`@+U3`Nz?h)V3oy8A4!lRb4` zP4rbHO`tTI5B=D0h{}Sde>M9|O?@v1aCEO$(DOxdim+Ul`@+7wul$g&=!NeeXw{hl z0jth#G!+2`+5T1=?x1KTT{nUjO@?sFXpnX9`@_!wpLN*R81M__2()>#4Scmym(ramDRgKbF+dH&ri2TFCuK) zR$7TrnxJ2vH;_Pcb}DO3XqxgOCy4*iEXrIzC0kG`u9`N}K5()QnHoaiCbGBSEo`{j z=ERa?uO&cns^ssy)^;{36?1wsk&Xw-W4;kaZR%W@$d2kb4HA*5zp5SToFYL)v5s*HBrK{cZkw`O#h zEG-aJ@?5bkGH?w%k$J(;CD~w=X>?Dqi20SZKz|HoM<@AEONzsFW1a8oGk^ZphORz4 z{Bk<~MNGXi8NSz(yoM~8FKdv4I%6nO1H`uphu_lA5RXh;=T}Cj z>t$Fo^fc5YmDLlvD(OUBUpQHOf0z|Nqn78%>_+g?e zt~rE6FJt{*iE^RyDIsF5h_0BhCzVHvP$k7zh74j{*- z`LnoC_a<4Ne8kUEg&@3O7s_$ID*F4S&-~kw4vYEOPZz#WpnTPEk^_8G^9j%cg~8eH z1nWVaPSGb=eIqd_%)~9XA`ZhoH5WkSX?K^W(D|cj^*PjN8XdhebmUxe1w^nn|c!aXRP8+JdHc zv;qOSes|-V6w*;j@lYQ_V{;ZcKDn5yV*rvSpO{JnVU|Qa8D@{XMknUO#a+Jo(-y}e zCGvK^oTEH=8YF1w2(Yde0sFaB2-ti?>q?;Og&8Q+1{^im`WR_}gfU)kg$JW+R!E-( zw?OXmeR*+x9)B);*YNo#WPK4!a;VnYAT;ET)iOF=?k z+T$pM44*+6=a(hZeIT$ho*2~sD=>HCb2Y7o!MTBVTUav6ez#w>Sm!-{t?fUhRlBSs z%-P?HT+JXfkoB$d6PQORO5S22#iqS?-OnFyyBu-pl`K?Vxb>vb{*t(Xdv zys|w)DKLfAe2?;Hp{`%>ecYCVe8Se+?~(J#CF&^tZVA+t=q+&*3wek?{WxH*t#jA~8{)oRSHVJo%l)s2e}#$GwhD697K6!-=Qlco9m zvw4DAvO+@muEQc@s7)AWPp_*^!XZY9XhhnU11^LtaMF-e?P#!6=G?dr~UEukxX=eaRbcAwfP* z3w_Q*<g{K9PO8QX%Kc-+7ivRQxQ&Y6p%^ zdy>9{QPybCOO=09HIA`(HgG zv^TseyPymId`Z%!bpWj>p%A)~z{vhw&}%&bx17YDnvloAaJ^3?i0^~bIV=Ai zZ`!%pgV(>kU%&2G8Y}hNFq;0H{IumdwEEG&NF(~bLs~hqO zGKCCZsi-SR=YYl^OLp2yRqde{t&wi6tIqG+&Bb&CU@Keuyn~YlHPg3tg1tfK9q$v& z41|&w8MouzlHY}5K;SfIYi-TG-&_G*W)maT1~-Mw-*hZeWoqY-Em}F%d!Noe@n&o+ zTK+WQHxv>1$b=cGC8?Sjm_B$l{RlXq@qn*@4Dc+$mOVL|U~I>vpPh0B>|gF;z4%4C znYqG%Z0Jv?=6SY8s?z43YfD0(R>CoY!c`rwi=%p#!dD%?ETWXIQL>UO+vXj>bU;Y} zLVA|sEA=ZT>g$KXM$Ij4yVqXt0oz%nRE?g7iYEIy0;w2Oo{wDHC;d8WUo4U-a>Wg8 zM;&7J^ao>sLb#QI^6ws|t9q2w4-5_4!1FYtz)R&;&gXAY37uZE%~is-TJrXujz)vp zf1Qv*Psg0J;_WsoikS^UtT8X~CWKcQs_80b15y*`dPW)rwrZ-wpRYj3F#%gcaF_f| z>mR&j@%R0CHrQt7^Y7RP)13&9?e)J?$Zmh^!`v?-rb+A|pHzfE@nvqvfY!Kx*K6j3 z`Q;5-S4*J%dWq=Ux>2cpg0er|mJzDmSkJpz>f0699Yc_c7NoL4ue}*evy*I_spuMs z+chijOfZF>F<~m~GMZE+04r5RjoW$owNVyrQiHt>sq(f#e1^Rf!X{vP&YITm%&Ue- zq?H|hV5cT}-W`eZXazn~fakNN{6>Hb23J&IUDzWT1&gwUCO0c!MvNKBm&5RRt(;)L z*`omn)PDEtYClwWgj!;;W$eW3Y&>-E2OvF7c+ZPFNjPzgflF*@F)frQSQOt&C17tt z>A(6NO?fxI|+T{xZ~!0a^1+WznAqjb<}RL+Jb!6hxv5)04)|iHE-Em2C^!~U-w<)Ld6_1ux{6-- zkv_N$?_FPuSKg8-NeoE=a;IClV&JJnXwShqEIWu7Lw<-(6kw2X0RnQv#Z3|LoU=87 zA5%eEWk4YkmJeHHzzLuf{sKJ#0}UQl4sp2M5uFf8f8+P#;L6$4(TMs~PhUe!bRF_g zZJ;GJlI3gZda9h&bS?XGvLTuaXR;B!tJ_}6$S3k(d^|$xjXP*Srd&6z zXrN&j_&hRna2P=(s{u{Fp`cUXR(3cTcMSQ)&K)a6Z6tcWubn!+fSV~qSTg=9h{o!E zmS2(fhdYIfd`> zR!|NRp_;5^7x(8w=TfyFWR4Y}4@68UZv!dn`^OEw8xHz=hfjlRN5q>W#l{C}MwY~K zZr^WZX8?7M&1z9d5>ND)4#!(Lye&q7^Ko}cfZZk3)cXpuM*bMSuArmD#F#y;uDI#$ zq=KL#BAd;mPM=7zM~Lc@iwv4(*`KNUB&C~0@iAh`3^~`+(_))_D-Y*++wtA`uwv!* zdpA=RdNwr5;67ZD^W@0BgP+uxmNR=P5Hio(f}7zj`5+X|q*rW~Vm*;x_4+ul%IRG0 zD~_C!KnJgxeb1{z#m6!e)g<9OR8&QQF=`%3dx_9z-Af5C`W%oTgEW!_-95^_;6#9i z6u}sN6Ke0GPuOtLZ@{Q~%+(Jb3$7G3ClH;anG2SoA69udC1fO8S(H z2ty3{R8xMR&RzWrrqFu-gOK)(+dpi$f-XLlR-2}t%UhJ-)J;Q5yLzI)JF~t{NJo?5 zdYF5Gk(rP+m@TjOJ{3gPgCONTJ8ma0A#AjKXLQOhEoF2~wjew!Rp0Oo?*`44+f}08 zxTYH7jFtCE zmgvG$RYaT`JQ^|nn2bimtKzSh8?D!07eor}A-!h^-tUEsuQ$a7cNdrvdI`W*v}$ra z(Y?%6c5GWRlX)e5C$486W)}JFMvqef$rQJQw`2RIf0Y0jxZgY(00rzf z1m)mjVW#kJpaF*^s3rY0L36Vcj5=46lU4TMhA7K%MFqk0Q;6i+I%WC|$$TDGNM2U0 zgJ!26RG&W=wZEsKYy*9&=5|a82kYhl5sbE2`T?`}TyVkiA`VqKtzseJYq5O#A2WWM zp96yHcRfa0wHFzCh}_7s@6PvkB2_cje0W!vSRGU*l+b5PT;_e`GO}>_eqz!7xxaC~ z^s@1bNTP!9MH>g@JT$Xf4)`_CQBvg@=6wWHhDfKi zRsz!iSg3+xi091;jOhRGd|ma;pO0xLc!xGll;F{&SQ5XnSigWd5C;`TDy#H4}S zdq)1vdaH+?fvwIhMO}L8l?UaukmA5(!+M8hV|c#X0&1ZdDA6h3ot(9Qr;3QZ^6I*A z$}TsG-DVhHBb3&CRJ-!?w+qzYbjZtVw-h(Il!VzQgLn&)4xu(ITnV(+TdJCxRkh=r z6))w2GQAt<^B}#gKJ>v|Qs2Brr~k;Z^O+SVgwI4platdwa4ZpEL9u<0GnXX4D%W2{ z54TYuJ}#|1_fswm{2xU5lnI$3RXU#TiJ)+NpyW0MpyH@k++W+r5E1Zu_WgO zhc``AZqVW>k?Z}0z|@Iv6zA?1Ca8LDwrOMne~r_59x`Lo{`{6mhAy9o5h&syP_ST|5HySrN>56$%+B?YaH0NxD*7@_HmY!iUyo_hz1{{vR*u+0VPD9`_&?&s)QGk;_g>#W}aqYyW zL@nv`4BcPOM-MX}`fM(y_xrV(cp4zTYK6RP;c$n5hQL%{l>xkxkXN^>9ONoqmj8^}ve~`j}(z?CrSV=;| zFz!Wd=ZGMvZ8G$+viz*tyCo+}&0m?QJHG~cEy;E>=!#lX7nw&E70do#s_j1BCGmS))!hQuURzeHcHLx7#H08s@d34z%r%nt>((v*z9ogAL$zb-+tP0iop}Ov-55lCI_wpvbLmb&H462qj>9A3O_m3q{>m%h6?kV?xWGJR3lQKc zao>Q4S)yH`Eca!XSwLuxvdyamQQ;MeuhkD9^&(CeEQrIOw2Ny#i$-G%Ob`t|Qe*{! zPy_R+TM;t^lWUeUsK+w155=-$w3`D}Sw-*Sp19Sn>}0KC3{(o!4zvre{ID-}HyX%N zT%0ys2J~XFX2j9m*Eq)!fk+qo-?Boqb-;0dC9Q<1B81M>CnzD%ZiNaJtk5&?kj~GM zEWqG7r3%b1{@hG8_s;A(Nz76&o#im=FalxSx+)v-`c=g%5-!?ssSMZgH~rb}SM;9z z(nVCoY3eAdE4ZINj##}9f9Q;K{E#qSct8&SV+sok^az9UvjLd0H<73UTr~{k_YASh zf!SvuvbQ}2hqA@7zJlWcr~6>eGV@yv)kvwNpQ)a{f^gGx9k|@Ej*el&w&JIQ$yPg^ zqRXg0th4mmeR`csZZnol(aTHI%}x)=KqR|?d6c>R>b}*aL)}HE^|pvn-jrYE7gH*U zEPbP^xR2(=511E@Gm=@z7O{j;)KiM)7#XZ*ueYQO!lNzgGYC9ZL=qXH9%YZq=@;+l z_wO-6L#LlQ)D;yLm29w~9xLZq!jesR;V%P3B=AiE$m`iYt_o0CqDzD-pRnf1SbwTk z_!k82)kmGrZ&w;Zte2HJ4P{Kdhowa~H0&E>Q7VJ$kBY_1``XMo(jDXnV$3dAQYZN? zSjesC>E}~DQ)0J1P*fP|h%UWRR<{iqkEO3%iXYF#GKV~nNDpGiOZi7$0r}yg1&_wU zIOc>|z^Z;69 zy{C?J91EZf${!5@z#2N`O49(NK7H@!l<{@x&!pn>K%ZRA3E2YDU435vD z;vMh5DI{zxV$CHdNJqU1{>`=(lD5RY95U5+%@8VAa}w^%XDH{Uta(5;tMyW&$l+QN zf3vE_p=j&IW%+CY%Jojsg*1+jJ5q`3&AyCaE z=Gx6G=eNN)PE&wLE;pO&Avb0^EGes{(9>mF$n@Sr;?vMif*yB?2@H=T(i<`m7>QVg z6E}qmR4G{Ex=RYqiR&|7sB76y-aElP#snXZsqRQ8;H$#D@|DhXJTY|samic2l8ZDR zDmX*z>1U?I7Y0tG=D+hZ;%T0T(1gl4X~p9;7uD4uDF4LhffbRsGESj4MN3uTQ(r>> zd)x=ier2i0f*6STIS5W*sIn6JeAs_`J&lxx+bGLQn031^rls7hZHeicd>4jd;Cv>1 zNsEqZ$PWcQqlW!ehidFs9&||t3w1zm{CgI@ZC88qbYg}_ZN?`B9;$~6e-PZs63h-g zA&vC=v;6*_V-_59^I#U?oX{BJ@dm2QW}m9Ic{isN+g&A2ooC-Yq+Igw3OH%5j7OH1%hmbqdz(W zOF*hTZ;prN3<;qaG*K+O(_4($iXI@Z1!TC79Fdy_-}fE)I)sDZ*V#aWXDT~9JBp2&<)J}-bgoU z8%kW7j8}jRn1=lw-t<(73s17*I+?CZ$of=v!upaQdmKLMNq__xf;TJ=h!nFX zn~l)c*+KSCB7_xJh_^*tFI9RSA~IrUs7WrXtGW@x(h?*(!hpxmLnq)$TOz(7jg*57 z%LXy0(BHxAn7)2g;DyLBTGp46*trbhh0V$SyVZ~b!2F~FuHGxertqWpZZ->nJRgS= zjD5i;HyKl>gB~A5ZR?|l=`}P7aw|uDSH`}^49mpv!BRD%%L!27Jo$AnK`F^bm6q%~ zW7E{w$J3g4Ngr}0h=YbgfFlRHfQmWq(WWP(A*_tcgM`*Z3yG8=fxFU7bJgqf+O8mz zxaF%!5su?>uN4tiitilbW@MNR$#1m3lbss>7FR*47v#r^yy10ctU8w*{sCWsrFNpi zfdttFL`0CDBq^*QMFO5C5-rdosRF2>k&{?P$-^db3UOa14xL~fF|3?Ed?{6DGti$>WoG9LeD6vz4M}Z4lF_OTk} zWCcaB$B)fff8@kvE9dRoA?3o&Xt4^z;`(DQNS%-`Q}fl~(eelgpa6?!)kFerxC81! z=O-fWyCTdR#JMJ^k^UA-5w>&fduO1!#5mJ#g0!i#%Iip?*y4}cm>S*tZ4y6NQ*a0N z57g4LTqNadc>eW?^pH=yBKeE7=%BF~K-)mWE2$#;M(9bbksYbb_s1+~nVyEq^1g>S z%AnDfRk?*}2aL=wriz-KY!*VrXw#ssp~H-RmKb)3aD9Ct=Hj+iNa|4{mM}wFcN~HS zwf4+EH=9KBClbGRWtXpLuW{7%jK3vgpk}Ji6x>NbR>MBp$1o8gqKACO79}Vl=68+< z#s_FHd9G2+t9dP*)6pSMY*g|rxAq|gX zpny?yqu3(qua`iO`*K_yDS%J91s76~9a;7@eP#tATXOwaL=LhsKBt0>F%b~M4|#4^ zvM;8l$>K(TZ#~8&R?IHTD(y2`WalrzfuY`s@=38R?i*?tY#@FCq+bMDbBLmlae&VN zUuf}Q<;gyYprl3(o#oWF{zH#<#jgBHH}c?n(y8DpO%$nyoq@bN0*W!+@UHZ-0Q8vC zi+hKbI=;3jxbWy_2*G09a}Zqb8UpeY7ed7zab^>oMpJU5JNMv%hG3f80b(PIq!dm$txT3Dd9nAba8-pw zn1m+G>l+(W#cK1)8kVmti)t;AfZkGg+eu@MQ0bC_ALZZMv)Ts9;sR(Ri3#Z+3t3k` zu+?#=sf#ckMHK>7xtj&*wQ!e(HoL6B*+50HAq6Q^s;Fs@Z??r%q4ZO7on@|WEzyD+ zHqQ_sfQbT5s8}Gqwlc`wSgT2OqALgTxjmaLFM9psYXF}ZHbjgDuYdpw&JlKCAyQ=~ zH;|GT2TkZ?csiD4Rg=ZM$L?n8%(n-R8x?!_+H*i(hTQK#>Ef{W4y2%6_B@031b@hg zyh_4H&sM~$gl-TSUPL6zFw9;_&=wzCK{apUeC@og>ay3nTO4U>N&I1VA_40uE#Z%1RI%T#cYS6?7^@ti?YUMf4t5 z1akP=xJ0*l)WvFw-v~G*!Z{6~ky_G$x>2nPXG%J!DM|hIYzCxqPOII9xjg-{*tWrE zI@)=^aS6Vg98xJ5e^zW!Q<(>4@+#O@iZ+b$6KbxqT}xbQ{h>r;eK*Lfdsn!EHD&+b9E6Z9;GH}-)2~9@@pu&in%zL z5rzcNK=p;8JYCX|N0zq+lYEK+F_&og234?nx%yxF2({%4Wb8;RctOyadA*MbQW8i{VzMtN2@r?x_Xk4(w4-`yrXBVgx-hU5RDC zY+G@GD!N&aT2)g?r9Z2*X3UR!SkkwNk%4DUxWp8SE7@XRdju~d5VzRk6_omzLfb>^ zMGB#5LszrZ?I^f%S9AHqe$bYZdN>vHocGRVPGl+MRgK*h#w*s1*Xmu-Gk#SS(UQt~ zdV3~`qR2CNQN^2;?f$d);}M{PPmEo9Z9EO2fL^}FmzTYq(@(*Q8hbu-`9dg;%jEd+ z*+fJjNI^XM4J2eC${zz)gBa3p{Tn17$8D#8AqVM?${XG8=k4p6H}k7!lYizG_MS$z z%y{5=qp#y&H}{zA|80%fKdi2H=fq2>s)ikD(P8ME5kb)M+NG0-JSSQCiBEq`jevzx z49x`ur$WJD001IE=6?v;dQdPwFnYcN-x6URge75sOC1mPsCmL#&CkAMbELJX`Q3k?Uz-a_mPD>P+|L`!rL zB$zDDiU9knJ$oaB^ldF-(W?)1p~Y3R$HL0^AG}Eq!4@E_k$5yiM86?GJo?+?nZs9L z4IDHceQY_cOUH{Pr(GJ%bvVk;{rx2GW!LnGBl#I2`!`_#zxmM~GeCls(yb8PD^q(YkExEgZIG!`viwO4d6Qjk`Vfdyg6^G zLj%xZuTQ6{CfIEF^W@**Qh@zrXjJ+6(d|OPj3Rt(b;I-eYWSt@R;HJV`8ovARfymg z-GDaCF--c7JW`kAm^CuBn5HE!=U`i5F7$NU1__a-P8ns zrvU0E{K2UlMQ?;Pr`OM``{@0eyv^Td6A`5WH$Nj1L-=<$SHo#k8N}UEA>&k4FuA?I zs=&Q*PX_+@@Qi}Oq#X+%8crxMr1c}$;|h9$SW>XOeh&HH&*DR@(hqCKYa9cBmameD zQuB}k9&l8IooND60e~q{!=_U?tEHp)t??$;u1ECmo1h`b283sQe|PzcuyldXk5QB~n>i)DR7OJiN&O33uj2)%<;LIMKIAv`r0c z9A~=Cbc&$#7vIHSK|fFE4fWk#b|c6J&9Y$FMI6*nesupcb+l-(%)Z~E@&Agj4V+nw zAnmH_oTD630$l?gbz@Znr<0JvunTO-U9FYdK|9#iyl-_S*?fOLffJ%ak**x6$d5Yo zI|@o1JLS>y=YWz=5F+f=Uyq?-fun#lk)X?>p|GJp-BqZJy+)&v*?Kk({rKE(6i^*7 zuzz1e!6~6Jk(2FQwNr_Se0p*BVnUgxO;5L#etZWUe~bPoa{S%zNMPbh-#Vxt7aQC; zj1ce=BY`rWPQxIK(oa&FJ;12%x{QjLJ`IMnI|}VKmq85IRw-c>ioiUE z&6YIg^8H2kxV@>tyO{SiSRaF{0s^SOngoMWgk_AB_xcwb2v`WR zG--4vf5GA}NFTT7{Zt@d1lh(HkaMG%go=iGm-loN%G&YwHaeP%J=ZAHS}>uRU*8{( zgitUA!0;GK$$x(RcOj~YiD=1a%4m(=ka@C+fM(f3ao0i-B7gsg4k3Jy5CmF5>(3CrtOLOlp{=)s@mMeIV@Lp4sXeEf> zTLS)Z{m=-(@~?~~Ss?!14P6KvF`^j4Igxw6lBISwM9bKUD(GOo25b@1zWp-e*cAo% zhylOy7%=uA4huww5Wr$_j*eJRJigzz`QL!?9*-lin$EOgsg}gw{JYHt5Y7K?djaVb zD!9i*f`XF)p^47A*MeS2*p~7&2pT&*|f3xFZ#Pd%;`2qcRWEGI>DRxPr_W!yZ zh-v!YFIdRztCSVU|NWQ$yzX@cQ*`oz`+WD0u0DFbe_k69f$=|aLn?uL6vw~+2@<{q zI$03~RY&;GVE>Ns@AqfmK+yS3PB7u$fBDaAqA4(*-g9){3kat8udn}v`2Y3Sf9I(D z@AUqe2@^0f$gte-s*iMp|D39y4mi${Oo>CyJ|5KmYpPEmZo#1Nv($h69`a-KF4$&k z*9ZbPe{J7?%;%c`5Z<%B7b=MV4-q(J09&9#2yO9ruKTZ<;6ifeei{BWe|P+U{8ixp zUraQnXaP9{Y~@0^{HL$q`!2d~5|rqEY4BU{{eKDUU$@Fs{l6BM$N&y(VlkJG4^n&6 z)gSrp&XljWa-%Hf8f?ewt<`s?Dhb)_7w3H_{s!y*YYTjW=+!SlTJ?&&!c33QgVswu ztuJo$84jI@E;sv)%EOtw`|(k{7r1OT)6qjbr#}N|LoN;$q!|UbDVGGPt?1 zu51;1x8%isciH}sk4>-jD}sGdB1y*ykiXQByDSIdC@CtUxBgiPb29ln`&GFcb2!aTHkr}v|-PncI{2~qfEcnsM#pdQiF+;`P2Q$d@vPBZ4qR%VFb`vBd@L2!2&IY z6d}hfuAveTxN->>JhBkE{*dxR`7CWFm;w?x<}B& z(+%;lBR@{Ewnz#^mNb{x&i)#i@)(Yw1i+m z8C?c?Uhq9WCwNr;o+2E7?TZtbQE&tX7OwN+r(A|8A(VQ%szPba0{Ixqzl0KocsCQq zVKwQ!Us=MsCO0ez`r+O*y%pkly7%a5VTUv(l^l2drhmgmj_Q8r@XhK8PY%Zpy}f%p zUI&{lNmF9~;io}(4+8!+v-r!`g~P=RdqZVP=bm%R4WkQ>ibl`Rd%WAOw+S%QSJ%_2 zNapC|EU6bfXC!e_ZZLK^Ud(;U7Rng*S)R#_De0R0a?u19TYM~!9benG#isPuiH&r} zy|uT!Uys*ZKOKJGe{7M~Ffw7g-s^1h=`6J}-Bp5#nVGOVv^AWRD7v6e0k+AOsuY+1 zbW^zAb$wKKA%E(GAT`N9@XF%bsfTH;t*vjO_5yOREGE4JuWu|gY4B`8`72sjZOaxf zt_rdYQSv?vd6eXQ&q0`hp;=#d?Kdm#hh(|{cNB9;dAKPMnSBzEFVUKOKhD|IW$lX= zDfwun(Eb%}VT1lQ*HiG4XQx>d4tM+|M4Sh?^8=m1t5Lu6@b3sh*x?@rMBH5h%G8K3 z-&%YWk>-UO*XoqEz$xJ$Ms5ncB#cSAXWF}KUtsHKVMGB2D=2h$Wd&3BF39lnfn ze)DL`n$Do^ECLCuup-#v&8wGDmXVQpVM}hh8G`#7-;B|p_dk|R3f%b`{6n!L@=mg( zZ(}260gvX%v&q-@_&nFj+e74=yAn7GwXzjjLirbaUN9sHm@gyEyCFq})ule{;Q@Lj z2Aw1Ij5ff8e>{NFyBl;)`kr&<$Mf4yq~g*@K=tvb3n^2PaXSxg#)OKE6%D@V-`Lpu-x2Q_{4NEQ%32X4IOjXg+auD)k z?hXcCC?nnX%%g#w)vnI zq>}&lyy0h(p_wA3gN0K^aKB&Ez<@npmyw0#W%?%upx4>ClOo|=+dHpXN#wyV2Zv`G zT@qkpQyz<){4ZhT*Pj5Whu(RA@b+brM8j%n-9z=z_;_Mpb!n>K-1NdlN%YIbFLvrD z*f*Uf3h85L(ACT*8hYt|koeu#{Vrfj!7whUtHyt=dTi*qUOB?b$;tVwc#8OU-@eEP zUQcZC5c#{*P3k@R!}LtW=HCv&0t}+3(`2h6A z|B<_0xY!FmbPuAw@tc(J0#-7?GvqCXfZwI47cQlP4>zxilmDc{{_C}GFv+l(bog>acMQH+2>KDu#Z>;j5Q|!&R&nV=gtPZ*rukq$pW$9YBeFVq~Lb)h?ju z2V457u`rbH&wj|RaPN(wEt^?i4j|7N=w#cPcyg)auf;_$`I)}ivHt#j4Y^h~yzKL% z_-^(f#yXP^_(n25SnP`d>K!+0bm-*9i_OX-rJ+! zw4E*U*Ut6BV!Qw+@RM%k^m~R4u0V9_3)MZ0FcsCpcr(;qo|)Xn?1QKulAjUsaAmgs zt*1Ec7q-?0-feo@1~NG9lKsr&f#px1-wSE6%zPk7ZH>xO@**ZY#~Ztm5s13&0`GUk z3P)lQiI744$V72Jr`KoQ=brs~NY=UK;@s@=)h7o#+_K6-OF}jL*0_O=a#lK7LUYCb z(jO371-|=(5xUU?ibmx+TjsX@K82x&@95QFcaB^o9qIcW##2Hbu8fQn6PAuEHj%Jg zfM>ct>l3#G`$MR?zp(gboSh6zNS-qbvrnk%OvWM`ei;h`~`+{X`$4!bMNnj}u>kSU=+~RBrqk5__``{*etl+j`n4Z~O zzz|#?1f&ZqfsHGjjB9iag}NBRWqb*RVnV)yV#%Q`rSj4Z@Ds6!20!Gj&r)Oc<@ z-+qX}qDNoq7Wz`b<%0MS1#(tkr(eJ*;7Q4KKj@&}<|%rH=%D_Y!Oq#Cz(o1wMZ-2o zP%N0k?F&`IM*-HM3Dqe{`zk&O$4xI_Iqn!S3*wT~zdmYOzp%rS2pqprXcK zhCderZo6^nkt`G-dE5DtprBHIMErvnId1cieu_HW6n)$P2Jw|VEmbb>W!vb?9weoooOJZY zeCffiP}3OJ*XJ!GIUv9afB#kf+Y5ZiN)W$na`#J$ylz}OV%0Xz38IN^H5pjJu?e`H z;O!+cEChIY0#0QX#=q7@v-mn3&P|OE*>is}+=hjt&3^>GLKWzA1q)|hCd;irK7n!N zh1R{swl{eq5TB zE4*jjkZq^BMCY!K+>nN~5*g>Hkdve$9#u~A7nn+^QS0IlpYs)G5l`4)XlSkim5A2e z(ehw-(*zzAij+iP5B`U5qBQ~*R6rt(6+Shib=T-lprSL!$sHmq9DImhtn;}T7S7WM zI_TOKZ^;cfJWN3nm|3=F>3v1mBO|e-g$dD!*t-J-ix1+Kjt`x!+67mwI#SJbiaV{% zzdt_zG`W;;rmy+K^M+O5YmfNnsdpFN?PUS^mfCkmI$iO?(gMK@v)L#nzM-g{jmiPj zSM$B%>~1$a78#0079Pz`^O|FY^9sd#UW8}r2=$TSV~PGWq3bC6P51c3_`cU48bW>X zQiL^ptcebW)WwKUGjhyDYko*1DK>cS`a8C=u;i?MJSo@`Ydpsn0*Itf$0LY~iZ4n8mr`#bc}rf)hgz+!RCMUk zV0@|flayte#}L|HH+zld2~%k@&X0;uq+mCfi*$p4^-(X~z(P=<&4KKIC~EG3QG7_A)$V0{h{(11YkpYaqKT#1 z@kPrn4*OgweU+TLg>ll^5Z_Wf+c_DW<8Tj z1rj&qB41!ar#CZ$XUgO3jC<*WtgMg%snO2NL& znj27{P{ffwv?++dM0>v-F@CEtKlYK*Z0F6QTlr@Sf1U;K{3&g?50MA0d#!wefos>D zLM#PXd}89~x@^pW-fq%?$g-Zyyfm)Z>UXoN+)G0gPdn^y95o(@%r8D17$u9dY8K^V zGr4oa+Vvh@twTpzyg@d^gAQ8X)e4Vj+LI_`<;IM)BM&XqRrst{Ipa4Whlw7+Ob;sS zb2?Rp$BxC(!(KSMaAEp`nv&E;?N20H@fqAru+Ye8ZfB3Ph>DFd*Fo`YcJqf1H9f=m z(1DxRHPtKAyKrF5zmz3H-L)u96B}p2bE-E@r*63^b>#?q#5y)nX=Fq+arSz5O8PUF z88_hUiOsNZY@hctLLp-ODUGL7oQJo3R$qpje-BFXbW5nAyxMrw*mJI#{$=$y>e+O`GzeTw<9POEtjWiBW0o%zW$JGikWw8yz!VTWPUWqk_a}gS`!X!RVZHaf zaj;6?x7PDy=gle8>_(iEf3V2yWp}^S?Q+ZR-grk(+Ybycp7`vO=oU{t59&RSpJ~Cw z^vy#E38PTOMwD$+2XRT4Q7EN5CA`0aRTetaFmSYhZ*>RnECo^6y?PjP{Wyh%Ih>oT zwy*edX_iY&Q&I1Lb|)*Q6YqIUO$pb#bzGaVDT5oe43t6RNDJiWs^I`{Ho zX1RA8$wsmCV4F*!Y$GmoXKnZAP(yDv;!4-#9I>(a%|6&1%?6iQ@Adf%!rzy;d`(uI zcU+g1FJsBq?EbEwKmdX2?mZfZeu^e7jv>|_*x}APXkkpt9-?vgb%G&8NEIEWFSdsC zbIucm8O+avy!{84-UFIn-ZCp3J<(fWqK}Jm`MnMt$oD%1&Tm1ma~!z!TTrj3T%Y0kyB49F2Tzpz5vO20|n!!9&OT-i_5 ze?K+f;W2QwP{Ra0P<_EYnL4elVwEA^BO!}K9$2GfciU-v-?2m8<2$t%s~M|rD)r3- z1L$b%>l;tu2H}dPN3r<_6I_i_#q@e!&Yl5ChZHM!V?1Dg?$T)cQ-EhGUtGtlQ0P2R z4BHXh>{F&T{_v6+TIGF)-QYG-;<9R}x|B0u(1CYhBZ6GcRbA9r=@}0_O$*NMykVJ^ z)`XS~odT;4#Fv$;cJ^Xdw*=H#{&m_`R;s5{e*w=n-93ufWf1MZ?@v5_x!hX(iJNae z0AN0SQtPspxV;U^Tn$UreeI88OjcZDP6CWgV3eI*IkLVRiOotLkxq?QeJ^J^@*gAV zxS>86^w4iTtsi(6>|fGCL!P^6KTVnex-ltQP`qBsT$m8HK>0TzrmSDpZw0JjZF$g^ z3@aZ^I<7n8v!s8k-1N34?6-5knJ zkGKQKd7q?jDEDoJaPG&vtsNh?%rF)oJMHFC!9QfkLZa)U*>m+tO=s%WD>;|~A0k?# zRV7~SZ;+|Dl^g^WgzPT>`vj`KpXv+qxrBwd{o2tX@5E{PPG;{1 zwmR{g#7~L}ke}EOk)2JA7MywvF1`S7z}7k0`22EavUvMgKpMuFx75-`rCQqt<*(5@ z^WpG}B!H0gf8fD)2nJ3>)aY`9jXWyr4Lb*kGUML-lmQjsJNIIOagmByQW8XciOxzu#f%BMsurxD&8)t2k5pHf$26t|~yUaO? zc&HMxcaM!tKrJeYQ&Nq;Pv}6T_c1)PvJ+c1N&GaV$24o*`A85EI3U-&>WL4*ZN)*M z$Qcpxm|HYEq~@1CxoyI@K7qthE?S4{qKQQpN zNK<^0p&rjn;m=cK-Jnv9uHEVqarG!%F%C6Kh>`Os{O>z6!zQ`KDt zypj)Gh6 {5ZP(ULLtjv>vh3%&9GNVc3g||~p6dy(1@-6Es`p<(lEn_nz3<`V| z`p+z^eIM|{9h(OQmn(4U`uBGxGd=JkJ~xH*6DHdJI3<7tOv0olKY54yz;-2!Md2y1 z$~E#%I$~jH1tqnZcjCE3O--N*?41YRC`j-53HuL0CYJdQ9W4>aC0a$Iikc%&IyRAR zEy&_74K!HD#A`9YWnwCZU-wQ-!PkO9FDu||4_=yA?T*syZTC-M@^b12XrpF6nVWXz zeu#KnZti>U`sIX9LDG`U!4-iY%_q+r?|AVwSh1Ub@Q@@m6ov!l^b~t1THD zhqD*)^>XDfj229}b6QVp`S%}%@ipEQ^K0GlJ7TMqBHGvdDd`GoqkNvJ+dT2?Km^_% zDiAZYC@P`O=Gko359ef&n^!w_U^V@6K=2w_u++@zHd|b6O48ZWwj|E(J2@IWZD_%r zb=9mg_5N+F@cT>CM)+6&Z<4?N?VCt3Jv=5|OXJ!D6NQu3Vv$bkqD5SCg^W8s3g;9v zWyn5-57rsZ6&MT0Zl~(KZnpXho_fMien<(|Dx2bK8{zjdbkGC7HhubgwRLWK#_ug+$Z9Rss&DpDq5@519J8tRcq z*7K>-tA7|Z0?$pT#6Uoyp1L0gXtMD4H7hx#>;~FoN@6z#=js6>E zf$4$KCx)cY44@TkFfp%pCdF@A>6ij%T4NviJpvV*X0tFYJ|)0PrVfO?pU8tC@vOg5 zlgH=#w1kzfEI&Nc8$0V%Z7|9caNv8JTq_M^QtPWhAxw;Cqrk1h{u z(0oc#esQFp!bYTFJ?W6~?M)=5pB8KEWA(aHid-FKNjiNX1{1NI((FukCPJ<$5$`a0 z;ON1uR+D!sYsXJRZj$l(hnL!&(25*at+o>0&**sKRg!79CUpxqYtxm7T)3PQCUeL> ziJq;K>Ed>^=gG;IW-3fGg+lf7G@UV%UgeClEv2KFvL2czUs!`aerniwa(MCWiGxW= zR8vzLIs5~PZg!V%E@gwsY(;y1)OAipI5j6>a>Efj^e$mShDFZ2I?rD9zBaekYVpxc zw?k0hZQ>BI`#sABA(*n2Y`66_F#eBm=ifK)rk_mSpMVKftUl%A^g2*K+6$;&DxEjg z7Kq8V-H)COjY%1I$;?!~y1o&+H>v`=8RumySeVwGO>stuEhxN|OKI*XcCN*W2pmq* zJPAT#U73GB3Sf(NF!O(}56_7p*UghUNH6m8d{!}6hMcl3uV3W05OU08rfl@tcQxSOvwH#FYgDzq)ctk9 z{O#!0wr^6!$f)DGef*vQ1zf9fBNevuKBI2;;eu=6<^rW@YMt`285Sx_Ou*HIAvjQ^ zd^3v$ghQ=hbP}C_lDV$BSQ9f!qx1MvF1Nuv4YDP);>i(C#mr&*L)TBv<@W7QK-cyF zkv4f8&YM?Ll3!}fuEgd>i@#b7o2tjI_f$IN8|z%f5JjQ%Cw0dx6=7D*nvwgjA}t&_ zNQ28ci|Z-Xv2m!6M)y)0w@+cLIojE{i=D66+ZwHCFa+Qq_RC5XnzQ**(#HbN4u6oo zconB#xy*ZFG8W37MhN*P!9Cw?7^5WB?cJ|H(CIy&r)iCnNxy%Pc|*H#CX=PW`}_g+ zgB!sdP#J)sVq!|aCjsep>HQlASqgBT?{W65d|bJxdL6MFTL7L3>CfHoW{W*BZ#fB8 zAc|%;KkOO6ZSq_c@V=J2=Vm>ZRoS8}RyjA5@{slXu~ zxHC+qVmzm8|<-|dpu-AIIEqL66Xm* zzQEb>rpHlSQZpM|OQI&ZoW|hZ@%;j9922eCEnKzAW|ouEeq{N{b4$y6w}GuCj?E*~ zsV3pX&qgV2OkFGS>PD-b8&{Io1AZ|!Q`7)x*#C0X$vhkRZoYLSggjNxqT*%K$XqXz zSVGx}C7Ew8URC-@&u%YG#e8L`%UlP6r_){?|Hj7V859FfuvUj^*a3h}c_7%d-4$TS zY~-g>{Mg}FX2ve1$8{Rg%6@dU!i5N_?&olPO3;7As;799-?q`{9>Ps78@WkO8qAY= zwlMFY0^8iS_BQo0j;<-^Hn^v%WF3Fe*X|_oS_`H!XSj$e_u1`;9Y>cXK^WJ^qO^@( zdoVg?-Ja1oxqR;Z8d#~!KyXqQ2}7d$@#-Q?!ClWADv~u4j@N~hS-8aw`&oL0K?X|&B>@=n#H&I=6xrYM~I|-xtUy$FN$*nhU= zZI+nStPF=!>ONS*)Zm=SeB>&{C4y6lyL<64SDsda*jeBV$u|lsHj}dh^f=U<(?H zhbtxexykpqeRhU3Cuxf&^QeZzDzU}KawEUFS@f>9I!sN@pUktn^0wel4^=ghAdt^l zw=QGIr~sNL=N%`-19(5XKvWd9xXQ+fW5`~tTQ(z9)KL1$Swy^EykbDB)qqg>os*1Q zY<@SlCs!;Be6dh6<2R)N^XhjTx6Oucrz^pnAyyu-Z1s0Q>O%4oL zOkT=N*C6q+2YC%B-{Z$5G^(_F@?l1j@y3e(^T$AeJY?W>E2CwPiqAbjv zJn~IsF#R$!i_*F4xTV>Tax-=|_B@*(>X{-R4HMTxWXr(X_#ysgf*_lXlBv0b2y~+B z7bSj;?BmW+q609f`nZCYbYs1am)YI-NeCp?O)7N^Ktus@HsVtP5gpX%!%Bxdz=^39 zr~}0sAIqNRl)8P>Aidt8>bw3B4O*)GdmeyBSEXRAq=XH!zfeqkNLL^RRoEqTm4Aio z7vg^z4$ql3_2}h3Ct-l9gydu8>MeTd=O4IbeKY__`7e<6_o#8k{Qx`>jgdA>yD zkL=T8)qjT6jT2g3)o%Wv~ z?6lB$oX`onf5G<5Ah0k>1#8fZ z=ZNICwtv>5Yh!-Y?R2n`*+7YqxAMpqz`u{)Uk!Nly08Ly;e!dVe|!5n!A|^=js4$l z2Zo>g(Qiz075F?dGW$KiIL+ez=g+f|2Zs*S-Y2~T^G8L4PD*XF2nqLC(`kAdg-)EW0|9*l4mzr(c1?iPF0P54mO@vOj<9iDp@BAb@aVCUjdNi zn{@W$+Mrxi$b9X`MwgirStT`f6YUNrumP;7*XzHk2EH|ARp1JuzrhxkJm6C)vj7cv zgAj#EiMb{~3)Knn-;e-$nT44l6D*vvj_h$OW;AKL`v+;;MgVC$oi+ja|322}h9n}; z+d`rj;LoACJ)e{y5ZgVf%(YwTgm(q#5~i20bt8g)roaLCh;emU=d@QJ)!wnZCqe>O-EgPI^yPbxxN z2DsKRV8H*=FRz6&mw*7yLGpoQZ1Q?oZq+qZI{z#<7obCyv>FO8qO3>>LNkkd}lUVKeBLwg64 z>k6FUX3GhKu+H*ux2q%I}I)7|vpreA;2v5vL*?8$zce#l~t6&c)* z5;APBJNL^f=8&6V^{#ataQMfLVsa|m9DFC3yFAUh0teb((Br|UeZ^G5!r6{9n%FY$ zG97IM<1Dr3?kv?VT52k55#;Kq<+lv-pK~uLegq?0ed}bcYf(yrF<9bH3E49X0RI71 z!9Pnj-f#n^N-KB4MW6^4B&$SLy?83n1LuG~zw=i^U#DWQ)1 z6Z)!GHz?WJ`*+Y-ChQlM`M2$Y^J`x4Ato`3b^UkH3E9#yAq0n- zTy4^46SAcfY&dCj2fLGP_wGii%V;2}cC=$}l84mf=ALbZ`-!*9F(yah_vI4VC(f8| z8(AYQyAhXt*Ior#X2=Fue9Rv;D_pU{hg_*qv~r5ZnQsu>_!fC2w!{1Q+=;V6d`6*5 zh&likGlf*&NgO=tni$+X7cpovKcyI0YG$Dpp^G|pJ5xZj`<6de++^0eO$YVwz*x7g z!nM-%TpEIq4y+SkPtwvsUz2(00uq*Edw5+22IJch38 z{D8XiS3cSn+IQ|;H(&pvPQ<+~b>i^New)G^(K_R}-xYK9mx^Evak8-680Isiq7JmL zfY?^l4wPCEa=@xw7nkBaKb)24x7@w2LO5_YC~}j8MSR*QVNN_RDferurN%T;B$TXu#gIxUX^y z;bT;m@uc)%2KS-E!R^n~E+rup8X5P_zGd(3 zY_~eCbi5ER%|*l$7xlj?|F)sjkG|hEa3S-FPUYP`4&r8PrZ9aWYdG?HSNLvT zJ@QM_s++L*60GHH|E)rE8*dvR+8;(>BU;aI$~$9&)n58Xt33t?upg=U2%RFmG-j8_ zszWP+Ib(~ZIdkl~^8uS{bl!!J%g$VW94sz3x6{1ZSnMU}q|(=_)Kfd75}|+uWv~k%Is**6FY%k>pfc3#DOO9Fdcc#17L8cndZ(_A`68{iMK$_iib1hj?n=zrI+> za7^sU-t3RV>(`*+gfdVbNZ)(~gs;wc&u4Z>wH^YQKb~t_l|slL z`fOUoJZ+qIHrQS|b@@0Ox73sF?F#2PhzvB>BjKR{;7n)c zd~e@27)*ThB@-aX+@%IE^i@zypd%UDV^`aeqSM)5_8k2r`&YIPIH=c7Fe?-)S<%l~ z^Uk_6Pa30>p2LhHA3Rfhjhx0u0N(!xk5c&V)id`lX=N=Q0r7MCFpWFxe5bVW3{V+@ zRw=|4oUpg0%N#dJLJ7D9=2%Hf%4oz7ZZ+oj9kM7jGEq8yC-05a0rgs#wkNSx> zc6fJNM85M?+=QtE>C}8V#xOBbgJUP`VSH{|b_%ycMOqX}X#2yLh8dJhiifs_a9SSF z;S?5iDBd-`)7c-JWM|qGWHJ5?ygF@K3*xFF84$HLsc0X@CM-5STmPZCaBTd+4<IV}q?D%=LVU$pvP(Whh#0FZx<@UQYBjTqwE8b-Sj#zt9xt##R$ zn^alAFmy;JJzmhOdrf{&D&)FPvVb~vf2_k1Atbe9E1@yz^Mq-22j$I5a)I2+GPTSW zl|uRtv*apD>ez=^;YQ`CPWJN8*wO4$k@~{RJ{!ITfI{4^jFY@X07+3|oy3FS@Ew_Q z%?E5H-!@0&@7MFKFuxcabWiOTyJCsx(1_7nWi*Cuo^dgJ&lGQZl%>XzMA&WP z2?OQ7e4h`9HgA2#`dK~!`Np62_Iv+nnu$#2HROU9&GYmnw(km~%)Vdivg!}oj-KmV zNy>=pe!iWy-E7y}&ivV$)QH|bmBym_wFz5ON&MA`|zH;*m*4I*Wc!%Te|xZ{Z@ z(84fLKcjh$*XniAL}mvqIXJSc8Ym+z0{U0pt{&-;kP|#pCBM7(#NPWde;+!K;uf9n z!{Y#w>nVJ1`R66Y`W+a#7C-|N!<80%Y6#^Si+v++7sGAQ0L^!|dQ(t9Ys#g4wDtD9 zf8$wxqzjoNw{EGi;`f0G9M3CS_pJwZ%1K#EEFRZ@^hpWR9F&ODea8T;1uXqv!DFJ< z7+s5+41w}6Ol&j~Z4Nf_lXrfi>n~EvkJxUQM_sOKSnwjs&1Jfnwpz^TA7enDbXsN6*CAd&FgE#DAPGz1+7PNTacTJ|J7MqZ$@| zWzs8#n^7x+H;ZZj0n}G4+AoXC;s%_BFt6G-nq_sCFk6SZcsH=WnK*iFWRUQJqkH=3 z0a}pDz@z@e*H-=FmNO#|{GxT^kEj4h(gvV||Je)eGySF5``S;p;U)KDG_^!8U*4X# z+CEoVKb7N{$=RYOMWa%i(7M3=`P_QanpaAls9|E-QD%wz-PJ*6ex(Xh3Q`sY#(Ei5 z8sA$vs4S_DpiXhF_-uxQ32InV!rjl&s44SDcGQal>cbil8{pbIIZ+GO!l1#(cT=TdS#*R#1|yr?La6fIN}_J zi6`Cb*r4tz9hm#kuOh=I@^LTQ}_+COqNhNcXe&gz5F7oZx(^)`-%@N0J@2_$&|3-K4mj^Md{+*8m zxw`tELrq6868;GaQX|I~-4DZC|}e(rdl$R z!gBRI9yaH5tGznsGF0+T_kQu|UA;cCT5|y~4Xr@PX+1nO@#f&lVs(|<829dsZd%79;r{J?`^CyJl#JnBy>4wMkhP{bHj}u_z4xhouq?tZIp3^4 z**$V27dbVT!9(vBlqi|)Wt!?9ne%dwRpuvXZpZ|WN%Bs1+FK{t>5gTqwBUR}@M8Z^ zRPp03bATA2O&O&~H9%@YVD~%;z)OU$!t;T+AB!~U>O~^3!Yw^ScD{jq>elsbsY~;1lnA|Fa7Q}xvv5a;4gfG1aYOz_vG|MxWZ~} z+%w~4`bZ#o=zK7*+lh)ejkomVhCHAea8}MLLCXjY3%89l%w2lC={6|YXAuUpQ;Z;c zX0g8NTcUX_e62@(clWSl?#(L(($dU#EiF^_?;Wmyl?5eCKVO<*H>7uED4IQdnX}kb zc<<{;;@9wk4__B=dJ=i{107hyfL=h2<568pFNN6r{19Nx+nZexKZW1x<0L5hgX)ZI zKtMQPvngpP*#Ehm z`qiYM7u|7h#>i92Q$m4d_e`(#IXp0|;UNwyAaG@IshQ6eUmCT{*NT97w-$2hpn5*T9&&f>XS_!t?sg9ce(C5 zT7M(s2tju)VGdvY+h3rMi4`=2WI^%DOo38qj=CdDS^r7aI|K%K^u00ebM#-$6yX{Qm9pX*UZ97~~JQOxFGpmq|I(cFU^Wt$1 zOaA;uZSF!(4rg%^QP~`dqt8M8eQ7q$tGJZ3?;YM&q<+XgrGtGCs3p}CD|HAV3im$9 zeyr#RzCRIOp_{2V&Tn&1;9ff4gLdiBIQ@sKUJ0O~qkuT_jkh0?wOckQtEFt5|^tGtm`^#O?ub^@xf^NavLn^U2Dju14U^l;v7$8FMtTl_zuQIrK|TJK z%zHD2qK|jOffJ~V?u}kcKq5zq--Di$FAp$(5h!5nZm&VUXF;(rDg5FoTaAjYcPsut zRPZKHykWt|9)T7wW+c8|FcORI(MvTzfno%$&`yC9DHpky**RS=Ve<4MsA6&5C{V<`Xf$f?V_0=ZVZqahZk?FwmLNC^f=K&(I# z1a#Esf-gu5=01d3JsOB~2!C{cgz68Luz%)m3X+op8P4hiK?KtKNeO0!p&7Yp&@Y(@ znV)(J8iK@RS<0RfK=!PDWe>o8f##ooW1dm}9qrxY321zUwwI>>{eOpM3jgdK`t|b< ztkAPgj;s>lD?g`VG>1joe2Y`!e;^6Do04x^E*4)Iv#>YNQ_iw!&u<4$g;;cQ1sn7k z@MV8Bp5ZT}{AqTZUAvV+^QCWmHs2Sd7E=k|r^FsHj5%F+Dtzx7k$ta%6mB>*S;Bn7 z>;H)twAc`ltCORC?J#Z==7lG#Ucy{=9{!xf+08O|wWPy`BF?Vy=0#y>X|cZi#K_O` zglr-s5V*Y4Vo-(rr8DpYtlW{Bf)pL-)5So@HG%FvszAakcd)hSuP@2PgT_`(j;a5b z*g?!|ss%_!ucUC5kkI}`VTBar7k$k;Ou5r_udSUPL3Ndd5~DApvU+^)iunRM$pfp; zj}`PFXX^DuqGnzlKy~ojG6H8Fm=$`?ls8q!+(yx>dO_H6XM1Io0h>KEiyr>qk-Zcv zFo0=%b98o&=K0oyl%Ar5gXNvX#=qU-b%x2^{rs`1rFOG!2PH;lGeoQs68Ygx-tc*+ z+zr6t&|uIj!{#7KeZ9duUf;|Q)@)#Gp*Er4@ah`~z6(R;{JSzE>G^`Mpb4lAVyEA? zK1LKH5tdvmGNfWj8Zd!3xL1qPM$7T$j_;@cMUKgQ|KPdKbmk~ccbf`6TtexBLTSjFZ82S3r4$~Cs3w2{67A< z=4S;%T89WJM(l8Lk5>K%?S4qy5}svdu-7vY!0@QsfF9tcH4KonugMN|XM+Pg;@R#9 zgOYl^D0hj>$3r*L9+y&}jPk0YL1^ZYtK1uv3D9R!^6ZAqb9I({%5XKtc_gslRqw07 zO2qnJE`iy|)Jy$?tOk9wPZl7bhf_DHAA8zGs(?0pg&sDo{rAJ@5V)t%6{oy7g8$jHw0dC&$->=J+Dn8A(9Xx4-Z! z1t4s|z_`rfCxw>Ius;isjgdwF90uBN|D3G>8nK0Fq zG5y|KQc%0yKB}XZ7co14ix%dPqIvsY!ko)!!m$qAbB)lsS^^PR=M_-nnR6|CGMf1F z!rErKjHC2Nm3VfAm)m>M?mj2Cd-6LmcO-r+e$#H*(No>}Ha`pzK(pB;lQK%R)@am1 zsdgF7;KsNNpqKM`GvJN>Dq?|k&cN5y!1aIJtEph;t8dzs`>ZxAI#e5x^YXWb@H-j- z54}pi+QR>>{rES={(oPUWQP;}?eaYxBbZWx?TF)P+n;9!h&F{#Vgt8YH<9=9hC3Y; z_k2e%ftW<=sPhL^L**X`&~{2P;SB32^4(1!ynq90{eK6X-LzqIR1$In$ENDy?HW0N zzI<}p2FeiJ?-TMwwN<$h1BR>nac?E#6reCQfQ|g{Rwu5)yl+YjnFa=8 zHX4^ry)%HYx@!$@FOU>PZ`=MP#oZdS=q^h@P($@M9_x!}96pMQ!ML-xxlG!1F3x@9Xuf*afkNJBfc^n_&6-+VVqbBxc zlEr=x4Nv>5zLn<+_b0Mz%qd7#Z#r-S7=R0kr%n{~VkBzZRGj>nAzR&0iHK#_&x~hZ zCZ?dVuP*i(a+8HQ_=J5dmdJ^n$s#(!PkOE-#`F-hq0X0wZ+JZy8Rrc%Gkc&>VC#m7 z2sAc}(f!FOg3Jf>#r!Y$R2^s@!e)~b;X85yLS(E`Y4D&2{ z_vthN{pGwyd6sGs?a4)*51_eyNRU$zvpa0Zp5n3Y_{J>y#E!6zFf@!u@{eFV03^88 zf|hcf^N1>f7?(Ij7U)w8sAGC?-lA*Xq~PmpG|a6Ut`$CVH`hjh@5C^Vx zMxEw)R&^fGL<97_Z!PnbRT;YT_093nZntIkvXUNiW$kO0 zA3mP!t!-4tZR6)0dPYR3EHeocYEUUFqB~puOB+5~z$&+a|1bTlba2))bRI1Y+CU_! z<*yv>Hv0=#IDOW>tF!rnG_pSF6OpQK8w>NHFP)^V4D0~AE5HWi$glo0NB$pFt(nA- z`mVMyhO3_whq`|@WRDLRie6)gR~Ezpoft+k^sQ~}qMmqd;ei0bQ0==dR4hKeJ8BfB zp>q2P(-Lp2-POojuem|iqIvKiz6?n6w2V}C*ZquaFI*exP*Q&7IYWa!_&1Yb^EgJP ztB3o#aR6>LF$IyVrM_y6{&<}J9lj@&4(|f{Ot|7vX5*_T?;gngc@}{7ayH9(M!mFP ztWMBf7=m5})Y^5vCs8Jir7u%gcprUNDFPDw*=kJqw9sc{EiG{E)BoYx1@8t1{z%Kd ziauvZ?l#Dy&S#6oiES;VU{;JhzQHoEIdF0Shc|a_Lz7+R8Fzy+Xu{*$(8LD@=l_iK zVm>%zhFI>mKyl{JYa$rX*UWl?hEzuv%~aIN6h79uz3&Nn&m?Uz*46mU;2S!pHmlfZYZzwm)W!0a{gND*M*%JJVAXM+P`) zK{^U)HD>v27Vj8LVg2A5KTkvMAA$=>R!lwM6{rROTe&qz!&F+R>^^=P+2EtZ5g?o` z)Qf%F-51D!2~G);QNFKXLO=zD;+n@rRkaF3Q*xQQfN{dIPyY~qaU}MMW?$_G zME2dZ1&Qy&95tE|)@JDb`&g+Y;Mwg2btdx{4oMzbf6Ywi# zRxLh%JQelLUaYH567&McEEKAw#Vs$+hg*Fecu?4Wu()Ju%$={YJVbRFph=QlsXe|{ zPQ9PZa^o<__a>ZFid_j$-?|d1H6C3e$iEIS$>fgB^DvST1hODmBZmf5$E>J-7Fw@` zk4t)MaGO32UB2PgFzZu$f5|wneH}31n;BmkC#(8#lH79Ct0Qt$&%7VaCjvg#b2;VH zpD?{jVaoUOE1Wj9oKOj$Cs6OR72+;@)%mkZ>+ChPv;l)YKS{UG&xN}S^x_7fo>m*T z@(^EU|6WY~TNUv;(K?`j!me#wFAAEj9O4UM&!CTz__(VK4mj8v+=K{tV>L z(XslNFPzj!Jy2LY;w)OAM~+bekVK%7MZCt2~f0_hun0{Z}NH*0RX-WKxXlQt-5zT=VdobM0O>g zNqjb;y7gF8W2(6E-m8(gxWbP^BMGZ&4%`4RHrS}pqNl>d&8%v`w5p>z2N4;M?f>N7 zls528rfJICZdc4JtY%rSM<9{G{||d_9TxT1u8$fZF`|SF0+LD(AWEl{2uRn^DIL-! zphGuEDJk7Bbb~`kH_{yf(n#l7yx;HMzjyEb?z8u~&Ohgm^AFd>rOeD{*0Y}VJokM+ z_bSWC2>^PLPe4henB2kSt99D((%}bT1O4k~agKJ7802?GD%sb)H5Oo4y%lH;|6}O> zE0R@cq`A4b4jhyr){?etd%sBnV-)Y!eWWk}AT!eE^km{%zTstGnrhtPLAuE&6%^RI z)1Z;~cNhaSQNTY3{M34L@Id$<#x(yJop7MX1`@;^LZiRhfzT->kr1mIZ9u}jKNlmsyD2zIZqDszg7;RSaXB|A8Dn6-$X>e; zLPn zI{N?BWI;M|9)&5MxggL?O~vUK7FtY+0Jy={U$_A&E+*GM*bSJXuXu(B^yZ)DfIXM{ z9ylle>*Ryw-;;h?6k86a|B(ID=p=(QbTeZBrnyZ*psy%D|AYL!IamHt^G}$gDkn&R z`W6f3b2D0i`p=^UDGyfzYr+=z7(dwyChE|r|6l|{MrV=lKDMSguMKXT#v)488(8B; zgMgWwHxhGoEp>--UI3)z9Yej%PYUo|QBSAGtCDZ|�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

1kCH!OCP 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 YQ&Bh>4|-`~00VxcB^1Of#0>oZ7bMIBivR!s literal 0 HcmV?d00001 diff --git a/keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/readme.md b/keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/readme.md new file mode 100644 index 000000000..618db6ff4 --- /dev/null +++ b/keyboards/ergodox/keymaps/osx_whiskey_tango_foxtrot_capslock/readme.md @@ -0,0 +1,38 @@ +# The extra special ergodox build for MacOS Sierra caps lock users + +###Do you +- Hate the OSX / MacOS caps lock delay? +- Have an ergodox? + +###Then this might just be for you! + +[This](http://apple.stackexchange.com/questions/81234/how-to-remove-caps-lock-delay-on-apple-macbook-pro-aluminum-keyboard) +and [this](http://sleepycow.org/2014/07/removing-the-caps-lock-delay-on-a-macbook/) +are good workarounds for the caps lock delay, however none of these +work on Sierra. This abomination of a keymap simulates capslock to the best +of its abilities. +This means that it keeps track of caps lock state internally rather than +sending a caps lock keypress to the OS. It is smart enough to check for +modifiers, such as Control being held down, and stop it with the hanky panky +and just send on the key event unmolested even if FakeCaps is enabled. And +since the macro isn't even registered on the non-alphas, it will not affect +them regardless. Only in the event that FakeCaps is enabled and an alpha key +is pressed will it sneak in a shift keydown before the alpha keydown and +immediately afterward sneaks in a shift keyup. Generally this works well, +however there is one known issue: + +- Holding down a key will only have the first character in caps. For instance, + with caps lock on, if you hold down the 'a' key, you get: + + ``` + Aaaaaaaaaaaaaaaaaa + ``` + +I have only tested this on an original Ergodox with a Teensy 2.0. + +####Some other small tweaks + - Layer 0 board light is off + - Layer 1 board light is on solid + - Layer 2 board light blinks at speed controlled by BLINK_BASE + +![osx whiskey tango foxtrot](osx_whiskey_tango_foxtrot_capslock.png) From 2855de5f0fdc6767b57877687b614687fdafa64c Mon Sep 17 00:00:00 2001 From: Pavlos Vinieratos Date: Tue, 20 Sep 2016 11:38:45 +0200 Subject: [PATCH 15/19] init keymap --- keyboards/ergodox/keymaps/pvinis/Makefile | 9 + keyboards/ergodox/keymaps/pvinis/keymap.c | 429 ++++++++++++++++++++++ 2 files changed, 438 insertions(+) create mode 100644 keyboards/ergodox/keymaps/pvinis/Makefile create mode 100644 keyboards/ergodox/keymaps/pvinis/keymap.c diff --git a/keyboards/ergodox/keymaps/pvinis/Makefile b/keyboards/ergodox/keymaps/pvinis/Makefile new file mode 100644 index 000000000..7ceb51ce4 --- /dev/null +++ b/keyboards/ergodox/keymaps/pvinis/Makefile @@ -0,0 +1,9 @@ +CONSOLE_ENABLE = no # for debugging + +SLEEP_LED_ENABLE = no # no led blinking while sleeping +NKRO_ENABLE = yes # disable for windows +TAP_DANCE_ENABLE = yes # tap-tap-tap + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/ergodox/keymaps/pvinis/keymap.c b/keyboards/ergodox/keymaps/pvinis/keymap.c new file mode 100644 index 000000000..fce78772a --- /dev/null +++ b/keyboards/ergodox/keymaps/pvinis/keymap.c @@ -0,0 +1,429 @@ +// pvinis' ergodox keymap + +#include "ergodox.h" +#include "mousekey.h" + +// easier name for left ctrl-alt-gui +#define ALLM(kc) LCAG(kc) + +// layers +enum { + BASE = 0, + BEGIN, + QWERTY, + CARPALX, + SYSCTL, +}; + +// extra keys +enum { + NONE = 0, + + // mouse + MS_UL, // up left + MS_UR, // up right + MS_DL, // down left + MS_DR, // down right + + // tap dance + TD_FLSH, // flash keyboard +}; + +// application selection +// this is sending ctrl-alt-gui-, and this is picked up by hammerspoon +#define AP_SLCK ALLM(KC_S) +#define AP_XCOD ALLM(KC_X) + +// keymaps +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* BASE + * the base of the keyboard. + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * |4x FLASH| | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * |BEGIN |QWERTY| |SYSCTL| | + * ,------|------|------| |------+--------+------. + * | | |CARPAL| |Slack | | | + * |Backsp|LShift|------| |------| Enter |Space | + * | | |SYSCTL| |Xcode | | | + * `--------------------' `----------------------' + */ +[BASE] = KEYMAP( + TD(TD_FLSH) ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO +,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO +,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO +,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO +,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + + ,TG(BEGIN) ,TG(QWERTY) + ,TG(CARPALX) + ,KC_BSPC ,KC_LSFT ,TG(SYSCTL) + + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + + ,TG(SYSCTL) ,KC_NO + ,AP_SLCK + ,AP_XCOD ,KC_ENT ,KC_SPC +), + +/* BEGIN + * a beginner's keymap i currently use. + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | 1 | 2 | 3 | 4 | 5 | 6 | | 6 | 7 | 8 | 9 | 0 | - | = | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * |Esc/Ctrl| A | S | D | F | G |------| |------| H | J | K | L | ; | Enter | + * |--------+------+------+------+------+------| ( | | ) |------+------+------+------+------+--------| + * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | ` | Cmd | | Cmd | | | | | ' | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+--------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `----------------------' + */ +[BEGIN] = KEYMAP( + KC_TRNS ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_6 +,KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC +,CTL_T(KC_ESC) ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G +,KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_LPRN +,KC_TRNS ,KC_GRV ,KC_LGUI ,KC_LEFT ,KC_RIGHT + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS + + ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_MINS ,KC_EQL + ,KC_RBRC ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_BSLS + ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,KC_ENT + ,KC_RPRN ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT + ,KC_UP ,KC_DOWN ,KC_TRNS ,KC_QUOT ,KC_TRNS + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS +), + +/* QWERTY + * the default qwerty keymap. not really used, but i'll keep it here for now. + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | Q | W | E | R | T | | | | Y | U | I | O | P | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | A | S | D | F | G |------| |------| H | J | K | L | ; | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | Z | X | C | V | B | | | | N | M | , | . | / | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+--------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `----------------------' + */ +[QWERTY] = KEYMAP( + KC_TRNS ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_TRNS +,KC_TRNS ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_TRNS +,KC_TRNS ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G +,KC_TRNS ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS + + ,KC_TRNS ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_TRNS + ,KC_TRNS ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_TRNS + ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,KC_TRNS + ,KC_TRNS ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS +), + +/* CARPALX + * the keymap i would like to transition to. + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | 1 | 2 | 3 | 4 | 5 | | | RIGHT| 6 | 7 | 8 | 9 | 0 | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | Q | G | M | L | W | | | L1 | Y | F | U | B | ; | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | D | S | T | N | R |------| |------| I | A | E | O | H | | + * |--------+------+------+------+------+------| | | Meh |------+------+------+------+------+--------| + * | | Z | X | C | V | J | | | | K | P | , | . | / | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | Up | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `--------------------' + */ +[CARPALX] = KEYMAP( + KC_TRNS ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_TRNS +,KC_TRNS ,KC_Q ,KC_G ,KC_M ,KC_L ,KC_W ,KC_TRNS +,KC_TRNS ,KC_D ,KC_S ,KC_T ,KC_N ,KC_R +,KC_TRNS ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_J ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS + + ,KC_TRNS ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_TRNS + ,KC_TRNS ,KC_Y ,KC_F ,KC_U ,KC_B ,KC_SCLN ,KC_TRNS + ,KC_I ,KC_A ,KC_E ,KC_O ,KC_H ,KC_TRNS + ,KC_TRNS ,KC_K ,KC_P ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS +), + + +/* SYSCTL + * a keymap to control my system. + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | Mute |VolDn |VolUp | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | |MsUpL | MsUp |MsUpR | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------| |MsLeft| MsDn |MsRght| | Lock | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | |MsDnL | MsDn | | | Sleep | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | Power| + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | |MidClk| + * ,------|------|------| |------+------+------. + * | | | | | |Left |Right | + * | | |------| |------| Click| Click| + * | | | | | | | | + * `--------------------' `--------------------' + */ +[SYSCTL] = KEYMAP( + KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO +,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO +,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO +,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO +,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + + ,KC_NO ,KC_NO + ,KC_NO + ,KC_NO ,KC_NO ,KC_NO + + /*,KC_POP*/,KC_NO ,KC_NO ,KC_NO ,KC_MUTE ,KC_VOLD ,KC_VOLU ,KC_NO + /*,KC_PTRN*/,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,LCTL(LSFT(KC_PWR)) + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_SLEP + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_PWR + + ,KC_NO ,KC_NO + ,KC_NO + ,KC_NO ,KC_NO ,KC_NO +), + +/* TEMPLATE + * keymap template with transparent and non-transparent keys + * + * ,--------------------------------------------------. ,--------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | |------| |------| | | | | | | + * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| + * | | | | | | | | | | | | | | | | + * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' + * | | | | | | | | | | | | + * `----------------------------------' `----------------------------------' + * ,-------------. ,-------------. + * | | | | | | + * ,------|------|------| |------+--------+------. + * | | | | | | | | + * | | |------| |------| | | + * | | | | | | | | + * `--------------------' `----------------------' + */ +/* +[TEMPLATE] = KEYMAP( + KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS +,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS + + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS + + ,KC_TRNS ,KC_TRNS + ,KC_TRNS + ,KC_TRNS ,KC_TRNS ,KC_TRNS +), +[TEMPLATE] = KEYMAP( + KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO +,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO +,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO +,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO +,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + + ,KC_NO ,KC_NO + ,KC_NO + ,KC_NO ,KC_NO ,KC_NO + + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO + + ,KC_NO ,KC_NO + ,KC_NO + ,KC_NO ,KC_NO ,KC_NO +), +*/ +}; + +// keyboard initialization +void matrix_init_user() { + ergodox_led_all_on(); + for (int i = LED_BRIGHTNESS_HI; i > LED_BRIGHTNESS_LO; i--) { + ergodox_led_all_set(i); + _delay_ms(5); + } + _delay_ms(1000); + for (int i = LED_BRIGHTNESS_LO; i > 0; i--) { + ergodox_led_all_set(i); + _delay_ms(10); + } + ergodox_led_all_off(); +} + +// extra keys +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + switch (id) { + + // mouse + case MS_UL: + if (record->event.pressed) { + mousekey_on(KC_MS_UP); + mousekey_on(KC_MS_LEFT); + } else { + mousekey_off(KC_MS_UP); + mousekey_off(KC_MS_LEFT); + } + break; + case MS_UR: + if (record->event.pressed) { + mousekey_on(KC_MS_UP); + mousekey_on(KC_MS_RIGHT); + } else { + mousekey_off(KC_MS_UP); + mousekey_off(KC_MS_RIGHT); + } + break; + case MS_DL: + if (record->event.pressed) { + mousekey_on(KC_MS_DOWN); + mousekey_on(KC_MS_LEFT); + } else { + mousekey_off(KC_MS_DOWN); + mousekey_off(KC_MS_LEFT); + } + break; + case MS_DR: + if (record->event.pressed) { + mousekey_on(KC_MS_DOWN); + mousekey_on(KC_MS_RIGHT); + } else { + mousekey_off(KC_MS_DOWN); + mousekey_off(KC_MS_RIGHT); + } + break; + } + return MACRO_NONE; +} + +// tap dances + +// flash keyboard on 4x tap, with leds +void flash_each_tap(qk_tap_dance_state_t *state, void *user_data) { + switch (state->count) { + case 1: + ergodox_right_led_3_on(); + break; + case 2: + ergodox_right_led_2_on(); + break; + case 3: + ergodox_right_led_1_on(); + break; + case 4: + ergodox_right_led_3_off(); + _delay_ms(50); + ergodox_right_led_2_off(); + _delay_ms(50); + ergodox_right_led_1_off(); + break; + } +} + +void flash_dance_finished(qk_tap_dance_state_t *state, void *user_data) { + if (state->count >= 4) { + reset_keyboard(); + reset_tap_dance(state); + } +} + +void flash_dance_reset(qk_tap_dance_state_t *state, void *user_data) { + ergodox_right_led_1_off(); + _delay_ms(50); + ergodox_right_led_2_off(); + _delay_ms(50); + ergodox_right_led_3_off(); +} + +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_FLSH] = ACTION_TAP_DANCE_FN_ADVANCED( flash_each_tap, flash_dance_finished, flash_dance_reset ), +}; From bcc0fa5c81e2a1725379c86b095bd627fb89d29d Mon Sep 17 00:00:00 2001 From: Pavlos Vinieratos Date: Thu, 22 Sep 2016 11:12:27 +0200 Subject: [PATCH 16/19] add messenger --- keyboards/ergodox/keymaps/pvinis/keymap.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/keyboards/ergodox/keymaps/pvinis/keymap.c b/keyboards/ergodox/keymaps/pvinis/keymap.c index fce78772a..8e1611454 100644 --- a/keyboards/ergodox/keymaps/pvinis/keymap.c +++ b/keyboards/ergodox/keymaps/pvinis/keymap.c @@ -33,6 +33,7 @@ enum { // this is sending ctrl-alt-gui-, and this is picked up by hammerspoon #define AP_SLCK ALLM(KC_S) #define AP_XCOD ALLM(KC_X) +#define AP_MSGR ALLM(KC_M) // keymaps const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -55,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,------|------|------| |------+--------+------. * | | |CARPAL| |Slack | | | * |Backsp|LShift|------| |------| Enter |Space | - * | | |SYSCTL| |Xcode | | | + * | | |SYSCTL| |Msngr | | | * `--------------------' `----------------------' */ [BASE] = KEYMAP( @@ -77,7 +78,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ,TG(SYSCTL) ,KC_NO ,AP_SLCK - ,AP_XCOD ,KC_ENT ,KC_SPC + ,AP_MSGR ,KC_ENT ,KC_SPC ), /* BEGIN From 538cdda78ec2e79a965205d0df974dfa5855c68e Mon Sep 17 00:00:00 2001 From: Pavlos Vinieratos Date: Thu, 22 Sep 2016 11:38:17 +0200 Subject: [PATCH 17/19] use wait_ms instead of _delay_ms --- keyboards/ergodox/keymaps/pvinis/keymap.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/keyboards/ergodox/keymaps/pvinis/keymap.c b/keyboards/ergodox/keymaps/pvinis/keymap.c index 8e1611454..df906201a 100644 --- a/keyboards/ergodox/keymaps/pvinis/keymap.c +++ b/keyboards/ergodox/keymaps/pvinis/keymap.c @@ -331,12 +331,12 @@ void matrix_init_user() { ergodox_led_all_on(); for (int i = LED_BRIGHTNESS_HI; i > LED_BRIGHTNESS_LO; i--) { ergodox_led_all_set(i); - _delay_ms(5); + wait_ms(5); } - _delay_ms(1000); + wait_ms(1000); for (int i = LED_BRIGHTNESS_LO; i > 0; i--) { ergodox_led_all_set(i); - _delay_ms(10); + wait_ms(10); } ergodox_led_all_off(); } @@ -402,9 +402,9 @@ void flash_each_tap(qk_tap_dance_state_t *state, void *user_data) { break; case 4: ergodox_right_led_3_off(); - _delay_ms(50); + wait_ms(50); ergodox_right_led_2_off(); - _delay_ms(50); + wait_ms(50); ergodox_right_led_1_off(); break; } @@ -419,9 +419,9 @@ void flash_dance_finished(qk_tap_dance_state_t *state, void *user_data) { void flash_dance_reset(qk_tap_dance_state_t *state, void *user_data) { ergodox_right_led_1_off(); - _delay_ms(50); + wait_ms(50); ergodox_right_led_2_off(); - _delay_ms(50); + wait_ms(50); ergodox_right_led_3_off(); } From 0853227edecf256a398347fb292a9fda74f242cb Mon Sep 17 00:00:00 2001 From: Pavlos Vinieratos Date: Tue, 11 Oct 2016 10:32:34 +0200 Subject: [PATCH 18/19] add readme --- keyboards/ergodox/keymaps/pvinis/Changelog.md | 7 ++ keyboards/ergodox/keymaps/pvinis/Readme.md | 65 +++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 keyboards/ergodox/keymaps/pvinis/Changelog.md create mode 100644 keyboards/ergodox/keymaps/pvinis/Readme.md diff --git a/keyboards/ergodox/keymaps/pvinis/Changelog.md b/keyboards/ergodox/keymaps/pvinis/Changelog.md new file mode 100644 index 000000000..e5816200b --- /dev/null +++ b/keyboards/ergodox/keymaps/pvinis/Changelog.md @@ -0,0 +1,7 @@ +## v0.3 + +*2016-10-11* + +### Starting point + +* The starting point of this keymap. A beginner layout, and a couple placeholders. diff --git a/keyboards/ergodox/keymaps/pvinis/Readme.md b/keyboards/ergodox/keymaps/pvinis/Readme.md new file mode 100644 index 000000000..2a4a0c8f3 --- /dev/null +++ b/keyboards/ergodox/keymaps/pvinis/Readme.md @@ -0,0 +1,65 @@ +pvinis' keymap +============== + +This is a getting-used-to keymap for the [ErgoDox EZ][ez]. It's very much a work in progress. + +[ez]: https://ergodox-ez.com/ + +## Table of Contents + +* [Todo](#todo) +* [Layouts](#layouts) + - [Base layer](#base-layer) + - [Beginner layer](#beginner-layer) + - [QWERTY layer](#qwerty-layer) + - [CARPALX layer](#carpalx-layer) + - [System Control layer](#system-control-layer) + - [Template layers](#template-layers) +* [Building](#building) + +# Todo + +- [ ] Generate images from keymap +- [ ] Implement algernon's heatmap +- [ ] Implement `KC_POP` + +# Layouts + +## Base layer + +This is the base layer that contains the common buttons of all keymaps. Right now, it has the top left button as a `flash` button when it's tapped 4 times, and the two thumb islands. The islands contain the `space` and `enter` keys on the right, the `backspace` and `shift` on the left, and all the 1x1 keys are just layer switches. +Every time I connect the keyboard, I press the `BEGIN` layer switch, and then start typing. +Recently, I added a few application "shortcuts", that basically call `ctrl`+`alt`+`cmd`+``, and `` is `S` for Slack, `X` for Xcode, `M` for Messenger. Using [Hammerspoon][hammerspoon], I show/hide the application. + +[hammerspoon]: http://www.hammerspoon.org/ + +## Beginner layer + +This is a basic keymap I use right now until I'm comfortable typing on the Ergodox. Currently uses a QWERTY layout, and the `([{}])` on the middle keys. Not a perfect layout, and its going to go away at some point, but for now thats my daily driver. + +## QWERTY layer + +This is basically the same as the `BEGIN` layer, but it might go away. I'm not using it, but I should have a QWERTY layout on the keyboard, in case someone else wants to try it out, or if I completely forget how keyboards work! At some point, this and the `BEGIN` layer will become one. + +## CARPALX layer + +This is here as a placeholder. I want to transition to [Carpalx QGMLWY][carpalx] or [White][white] at some point. They both look very interesting and more comfortable to type on, but after I'm confident with typing on the Ergodox. + +[carpalx]: http://mkweb.bcgsc.ca/carpalx/?full_optimization +[white]: https://github.com/mw8/white_keyboard_layout + +## System Control layer + +This one is a layer that, in time, will have controls like mouse movement, volume up/down, mute, sleep, restart, shutdown, etc. + +## Template layers + +I have two commented out layers that are just templates, so I can easily create a new layer. + +# Building + +``` +$ git clone https://github.com/jackhumbert/qmk_firmware.git +$ cd qmk_firmware/keyboards/ergodox/keymaps/pvinis +$ make +``` From e27a754b70434de88a37c4a572e4ca5f7730ff58 Mon Sep 17 00:00:00 2001 From: Jack & Erez Date: Wed, 12 Oct 2016 22:18:27 -0400 Subject: [PATCH 19/19] [Jack & Erez] Simplifies and documents TO --- keyboards/ergodox/keymaps/dave/keymap.c | 12 ++++++------ quantum/keymap.h | 5 ++++- readme.md | 2 ++ 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/keyboards/ergodox/keymaps/dave/keymap.c b/keyboards/ergodox/keymaps/dave/keymap.c index 32c70097b..23c4e0490 100644 --- a/keyboards/ergodox/keymaps/dave/keymap.c +++ b/keyboards/ergodox/keymaps/dave/keymap.c @@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_H, CTL_T(KC_GRV),KC_NUBS,KC_NO, KC_NO, KC_LALT, KC_PSCREEN, KC_PSCREEN, - TO(PROG, ON_PRESS), + TO(PROG), KC_SPC, MO(NAVI), KC_LGUI, // right hand KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC, @@ -47,7 +47,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_RALT,KC_LBRC,KC_RBRC,KC_NO, CTL_T(KC_QUOT), MT(0x5, KC_NO), MT(0x5, KC_NO), - TO(PROG, ON_PRESS), + TO(PROG), KC_RGUI, MO(PROG), KC_SPC ), @@ -81,7 +81,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - TO(NAVI, ON_PRESS), + TO(NAVI), KC_TRNS, KC_TRNS, KC_TRNS, // right hand KC_TRNS, KC_TRNS, KC_NO, KC_PSLS, KC_PAST, KC_PMNS, KC_EQUAL, @@ -90,7 +90,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PENT, KC_TRNS, KC_P0, KC_P0, KC_PDOT, KC_PENT, KC_TRNS, KC_TRNS, KC_TRNS, - TO(NAVI, ON_PRESS), + TO(NAVI), KC_TRNS, KC_TRNS, KC_TRNS ), @@ -123,7 +123,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_TRNS, - TO(BASE, ON_PRESS), + TO(BASE), KC_TRNS, KC_TRNS, KC_TRNS, // right hand KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, @@ -132,7 +132,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - TO(BASE, ON_PRESS), + TO(BASE), KC_TRNS, KC_TRNS, KC_TRNS ), }; diff --git a/quantum/keymap.h b/quantum/keymap.h index 4b2192cb2..85c090972 100644 --- a/quantum/keymap.h +++ b/quantum/keymap.h @@ -296,7 +296,10 @@ enum quantum_keycodes { // ON_PRESS = 1 // ON_RELEASE = 2 // Unless you have a good reason not to do so, prefer ON_PRESS (1) as your default. -#define TO(layer, when) (layer | QK_TO | (when << 0x4)) +// In fact, we changed it to assume ON_PRESS for sanity/simplicity. If needed, you can add your own +// keycode modeled after the old version, kept below for this. +/* #define TO(layer, when) (layer | QK_TO | (when << 0x4)) */ +#define TO(layer) (layer | QK_TO | (ON_PRESS << 0x4)) // Momentary switch layer - 256 layer max #define MO(layer) (layer | QK_MOMENTARY) diff --git a/readme.md b/readme.md index f20ab41b1..80f0a3ab2 100644 --- a/readme.md +++ b/readme.md @@ -379,6 +379,8 @@ Instead of using `FNx` when defining `ACTION_*` functions, you can use `F(x)` - `TG(layer)` - toggles a layer on or off. As with `MO()`, you should set this key as `KC_TRNS` in the destination layer so that tapping it again actually toggles back to the original layer. Only works upwards in the layer stack. +`TO(layer)` - Goes to a layer. This code is special, because it lets you go either up or down the stack -- just goes directly to the layer you want. So while other codes only let you go _up_ the stack (from layer 0 to layer 3, for example), `TO(2)` is going to get you to layer 2, no matter where you activate it from -- even if you're currently on layer 5. This gets activated on keydown (as soon as the key is pressed). + ### Fun with modifier keys