From 3da285cc5339e8bf932bade59f4de75b1ed0d437 Mon Sep 17 00:00:00 2001 From: ElectricityMachine Date: Tue, 28 Mar 2023 14:38:41 -0400 Subject: [PATCH 1/8] Initial testing for dialog speedup --- script.py | 79 +++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 50 insertions(+), 29 deletions(-) diff --git a/script.py b/script.py index 1ebccd3..ac3ed6f 100644 --- a/script.py +++ b/script.py @@ -12,20 +12,22 @@ import autoit import colorama -import keyboard import mss import PIL import PIL.Image +import keyboard import pyautogui import pyperclip +import pynput import requests import win32gui +import mouse import pyautogui colorama.init() # Needed to work on Windows devices, see colorama docs version = "v0.3.0" -dialog_wait = 0.085 # Length of time to wait for gray signal dialog to show up. You can reduce this if your system can hold a steady framerate, for example, 0.055. This will make the script more responsive to your inputs +dialog_wait = 0.055 # Length of time to wait for gray signal dialog to show up. You can reduce this if your system can hold a steady framerate, for example, 0.055. This will make the script more responsive to your inputs menu_wait = 0.04 # Length of time to wait for side menu (view camera, rollback, info) to show up debug = False # If true, will enable debug prints if they're specified check_for_update = True @@ -99,13 +101,27 @@ def screen_grab(x, y, width, height): newimage = PIL.Image.frombytes('RGB', im.size, im.bgra, 'raw', 'BGRX') return newimage +def mouse_click(waittime=0.01): + mouse.press("left") + time.sleep(waittime) + mouse.release("left") + +keycontroller = pynput.keyboard.Controller() +def press_and_release(key, waittime=0): + keycontroller.tap(key) + time.sleep(waittime) def click_signal(sig): + global running if not able_to_run(): return - autoit.mouse_click() + t1 = time.perf_counter() + mouse_click() + t2 = time.perf_counter() + time.sleep(0.021) if scan_for_dialog("signal"): keyboard.press_and_release(sig) + #time.sleep(0.1) keyboard.press_and_release("backspace") @@ -167,6 +183,8 @@ def toggle_disable(): def scan_for_dialog(type): if not able_to_run(): return + global running + #running = True mousex, mousey = pyautogui.position() window = win32gui.GetForegroundWindow() rect = win32gui.GetClientRect(window) @@ -177,14 +195,12 @@ def scan_for_dialog(type): w = bbox[2] h = bbox[3] if type == "signal": # Gray signal dialog - # Wait for a set time before checking if the dialog actually pops up. This ensures there should be no time where the script screengrabs and the dialog isn't open after clicking on a signal. - time.sleep(dialog_wait) - dialogbox_height = math.ceil(h * 0.125) dialogbox_width = math.ceil(dialogbox_height * 2) dialogbox_x = mousex - dialogbox_width / 2 dialogbox_y = mousey - dialogbox_height + time.sleep(dialog_wait) capture = screen_grab(dialogbox_x, dialogbox_y, dialogbox_width, dialogbox_height * 2) w, h = capture.size capture.convert('RGB') @@ -217,6 +233,7 @@ def scan_for_dialog(type): if flag: return True else: + print("NOt") return False elif type == "exitcamera": # Red "X" button at the top of screen when in a camera view camera_controls_width = 283 @@ -384,26 +401,30 @@ def enabled_warning(): if not disabled: winsound.Beep(640, 300) - -keyboard.add_hotkey(2, click_signal, args=["1"]) # 1 -keyboard.add_hotkey(3, click_signal, args=["2"]) # 2 -keyboard.add_hotkey(4, click_signal, args=["3"]) # 3 -keyboard.add_hotkey(46, click_camera_button) # C -keyboard.add_hotkey(59, toggle_disable) # F1 -keyboard.add_hotkey('R', move_and_click_rollback) # R -keyboard.add_hotkey('/', enabled_warning) # / warning when opening chat while enabled -keyboard.add_hotkey('`', enabled_warning) # Command bar -keyboard.add_hotkey('\'', enabled_warning) # Command bar -keyboard.add_hotkey(79, send_zone_message, args=["A"]) # Num 1 -keyboard.add_hotkey(80, send_zone_message, args=["B"]) # Num 2 -keyboard.add_hotkey(81, send_zone_message, args=["C"]) # Num 3 -keyboard.add_hotkey(75, send_zone_message, args=["D"]) # Num 4 -keyboard.add_hotkey(76, send_zone_message, args=["E"]) # Num 5 -keyboard.add_hotkey(77, send_zone_message, args=["F"]) # Num 6 -keyboard.add_hotkey(71, send_zone_message, args=["G"]) # Num 7 - -if update_check: - update_check() -winsound.Beep(500, 200) -print("SG+ Successfully Initialized") -keyboard.wait() \ No newline at end of file +def on_press(key): + if key.char == '1': + click_signal('1') + +if __name__ == "__main__": + keyboard.add_hotkey(2, click_signal, args=["1"]) # 1 + keyboard.add_hotkey(3, click_signal, args=["2"]) # 2 + keyboard.add_hotkey(4, click_signal, args=["3"]) # 3 + # keyboard.add_hotkey(46, click_camera_button) # C + # keyboard.add_hotkey(59, toggle_disable) # F1 + # keyboard.add_hotkey('R', move_and_click_rollback) # R + # keyboard.add_hotkey('/', enabled_warning) # / warning when opening chat while enabled + # keyboard.add_hotkey('`', enabled_warning) # Command bar + # keyboard.add_hotkey('\'', enabled_warning) # Command bar + # keyboard.add_hotkey(79, send_zone_message, args=["A"]) # Num 1 + # keyboard.add_hotkey(80, send_zone_message, args=["B"]) # Num 2 + # keyboard.add_hotkey(81, send_zone_message, args=["C"]) # Num 3 + # keyboard.add_hotkey(75, send_zone_message, args=["D"]) # Num 4 + # keyboard.add_hotkey(76, send_zone_message, args=["E"]) # Num 5 + # keyboard.add_hotkey(77, send_zone_message, args=["F"]) # Num 6 + # keyboard.add_hotkey(71, send_zone_message, args=["G"]) # Num 7 + + if update_check: + update_check() + winsound.Beep(500, 200) + print("SG+ Successfully Initialized") + keyboard.wait() \ No newline at end of file From a768686cf1a26fa43199ba2d0afd8a8d0ea556e6 Mon Sep 17 00:00:00 2001 From: ElectricityMachine Date: Tue, 28 Mar 2023 15:35:05 -0400 Subject: [PATCH 2/8] Framerate dependency --- script.py | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/script.py b/script.py index ac3ed6f..5f65181 100644 --- a/script.py +++ b/script.py @@ -27,10 +27,10 @@ colorama.init() # Needed to work on Windows devices, see colorama docs version = "v0.3.0" -dialog_wait = 0.055 # Length of time to wait for gray signal dialog to show up. You can reduce this if your system can hold a steady framerate, for example, 0.055. This will make the script more responsive to your inputs +dialog_wait = 0.085 # Length of time to wait for gray signal dialog to show up. You can reduce this if your system can hold a steady framerate, for example, 0.055. This will make the script more responsive to your inputs menu_wait = 0.04 # Length of time to wait for side menu (view camera, rollback, info) to show up debug = False # If true, will enable debug prints if they're specified -check_for_update = True +check_for_update = False color_dialog_buttons = { (0, 201, 0), # Lit Green @@ -103,7 +103,6 @@ def screen_grab(x, y, width, height): def mouse_click(waittime=0.01): mouse.press("left") - time.sleep(waittime) mouse.release("left") keycontroller = pynput.keyboard.Controller() @@ -111,17 +110,25 @@ def press_and_release(key, waittime=0): keycontroller.tap(key) time.sleep(waittime) +debounce = False + def click_signal(sig): global running + global debounce if not able_to_run(): + debounce = False return - t1 = time.perf_counter() + #debounce = True + #keyboard.press_and_release("backspace") mouse_click() - t2 = time.perf_counter() - time.sleep(0.021) - if scan_for_dialog("signal"): + mousex, mousey = mouse.get_position() + fps = 60 + one_frame_time = round((1000 / fps) * 10 ** -3, 4) + #print(one_frame_time) + time.sleep(one_frame_time * 2) + if scan_for_dialog("signal", mousex, mousey): + time.sleep(one_frame_time * 3) keyboard.press_and_release(sig) - #time.sleep(0.1) keyboard.press_and_release("backspace") @@ -180,12 +187,13 @@ def toggle_disable(): winsound.Beep(400, 100) -def scan_for_dialog(type): +def scan_for_dialog(type, mousex=0, mousey=0): if not able_to_run(): return global running #running = True - mousex, mousey = pyautogui.position() + if mousex is mousey and mousex == 0: + mousex, mousey = pyautogui.position() window = win32gui.GetForegroundWindow() rect = win32gui.GetClientRect(window) @@ -200,7 +208,7 @@ def scan_for_dialog(type): dialogbox_x = mousex - dialogbox_width / 2 dialogbox_y = mousey - dialogbox_height - time.sleep(dialog_wait) + #time.sleep(dialog_wait) capture = screen_grab(dialogbox_x, dialogbox_y, dialogbox_width, dialogbox_height * 2) w, h = capture.size capture.convert('RGB') @@ -401,10 +409,6 @@ def enabled_warning(): if not disabled: winsound.Beep(640, 300) -def on_press(key): - if key.char == '1': - click_signal('1') - if __name__ == "__main__": keyboard.add_hotkey(2, click_signal, args=["1"]) # 1 keyboard.add_hotkey(3, click_signal, args=["2"]) # 2 From 0d59cea296e0570ffd31afe3cb03ff3fb7b58f81 Mon Sep 17 00:00:00 2001 From: ElectricityMachine Date: Tue, 28 Mar 2023 23:01:03 -0400 Subject: [PATCH 3/8] Adjust delays, add ping delay, auto setup test --- script.py | 279 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 143 insertions(+), 136 deletions(-) diff --git a/script.py b/script.py index 5f65181..3bd100b 100644 --- a/script.py +++ b/script.py @@ -1,5 +1,5 @@ # ElectricityMachine -# Version: 0.3.0 +# Version: 0.3.1 # Major changes: Add toggle rollback, improved reliability, major speed improvements, chat warning # Description: A script to automate tasks when signalling for SCR # Keybinds: 1 2 3 for Danger, Caution, and Proceed signal settings. C for Camera. R for Rollback Toggle. @@ -12,26 +12,24 @@ import autoit import colorama -import mss -import PIL -import PIL.Image -import keyboard -import pyautogui +from PIL.Image import frombytes +from keyboard import add_hotkey, press_and_release, wait as keyboard_wait import pyperclip -import pynput -import requests +from requests import get as requests_get import win32gui import mouse -import pyautogui +from mss import mss +from time import perf_counter colorama.init() # Needed to work on Windows devices, see colorama docs -version = "v0.3.0" -dialog_wait = 0.085 # Length of time to wait for gray signal dialog to show up. You can reduce this if your system can hold a steady framerate, for example, 0.055. This will make the script more responsive to your inputs -menu_wait = 0.04 # Length of time to wait for side menu (view camera, rollback, info) to show up +version = "v0.3.1" +fps = 60 # Set your average FPS here +ping = 100 # Set your average ping here debug = False # If true, will enable debug prints if they're specified check_for_update = False + color_dialog_buttons = { (0, 201, 0), # Lit Green (204, 153, 0), # Lit Yellow @@ -48,8 +46,8 @@ color_viewcamera = (147, 0, 207) # Purple "View Camera" button disabled = False -running = False # Debounce signal_mouse_coords = None # Mouse coordinates used to return cursor to signal when exiting camera/rollback +one_frame_time = round((1000 / fps) * 10 ** -3, 4) # Calculate time for 1 frame and round to 4 decimal places def update_check(): @@ -57,7 +55,7 @@ def update_check(): if not check_for_update: return URL = "https://api.github.com/repos/ElectricityMachine/SCR-SGPlus/releases/latest" - r = requests.get(url=URL) + r = requests_get(url=URL) data = r.json() if version != data["tag_name"]: print(colorama.Fore.RED + "NOTICE: A new update is available for SG+!") @@ -71,10 +69,6 @@ def able_to_run(): if debug: print("Unable to run: Disabled") return False - elif running: - if debug: - print("Unable to run: Already running") - return False elif win32gui.GetWindowText(win32gui.GetForegroundWindow()) != "Roblox": if debug: print("Unable to run: Not ROBLOX") @@ -83,12 +77,12 @@ def able_to_run(): return True -def color_approx_eq(color1, color2): # Checks if a color is equal to another color in +def color_approx_eq(color1, color2): # Checks if a color is equal to another color within a tolerance of 7 return abs(color1[0] - color2[0]) <= 7 and abs(color1[1] - color2[1]) <= 7 and abs(color1[2] - color2[2]) <= 7 def screen_grab(x, y, width, height): - with mss.mss() as sct: + with mss() as sct: # Calculate bbox left = x top = y @@ -98,65 +92,118 @@ def screen_grab(x, y, width, height): # Grab the image im = sct.grab(bbox) # Convert to PIL image for compatibility - newimage = PIL.Image.frombytes('RGB', im.size, im.bgra, 'raw', 'BGRX') + newimage = frombytes('RGB', im.size, im.bgra, 'raw', 'BGRX') return newimage -def mouse_click(waittime=0.01): +def mouse_click(): mouse.press("left") mouse.release("left") -keycontroller = pynput.keyboard.Controller() -def press_and_release(key, waittime=0): - keycontroller.tap(key) - time.sleep(waittime) +def sleep(frames, minwait=0): + if minwait != 0: + print(max((frames * one_frame_time), minwait)) + time.sleep(max((frames * one_frame_time), minwait)) + else: + time.sleep(frames * one_frame_time) -debounce = False def click_signal(sig): - global running - global debounce if not able_to_run(): - debounce = False return - #debounce = True - #keyboard.press_and_release("backspace") + #t1 = perf_counter() + # Inputs to the same signal are throttled such that you cannot change an aspect while the server is still processing your last input + # Inputs to other signals don't seem to be throttled + coord = mouse.get_position() mouse_click() + time.sleep(one_frame_time * 3) + result = scan_for_dialog("signal", coord[0], coord[1]) + if result: + time.sleep(one_frame_time * 2) # Wait a few frames to ensure the dialog is on screen and the game will process our inputs + press_and_release(sig) + time.sleep(ping/4_000) # Ensure that our inputs are processed properly before exiting out of the dialog + press_and_release("backspace") + +def auto_setup_test(): + if not able_to_run(): + return + present_pos_x, present_pos_y = mouse.get_position() + for j in range(2): + for i in range(1,16): + coord = mouse.get_position() + # Click signal red + print(i) + if i == 9 or i == 10: + # autoit.mouse_move(x=present_pos_x, y=present_pos_y + 57 * i, speed=0) + continue + if j == 0: click_signal('1') + elif j == 1: click_signal('3') + # Move 50 pixels down from current position + + if i != 15: autoit.mouse_move(x=present_pos_x, y=round(present_pos_y + 56.5 * i), speed=0) + #time.sleep(0.1) + autoit.mouse_move(x=present_pos_x, y=present_pos_y, speed=1) + +def click_rollback(): + if not able_to_run(): + return mousex, mousey = mouse.get_position() - fps = 60 - one_frame_time = round((1000 / fps) * 10 ** -3, 4) - #print(one_frame_time) - time.sleep(one_frame_time * 2) - if scan_for_dialog("signal", mousex, mousey): - time.sleep(one_frame_time * 3) - keyboard.press_and_release(sig) - keyboard.press_and_release("backspace") + mouse_click() + sleep(2) + if scan_for_dialog("exitcamera"): # Are we currently viewing a camera? + return + elif scan_for_dialog("signal", mousex, mousey): # Is there a dialog on a signal we control? + press_and_release("enter") + else: # No dialog found, no rollback toggle + return + window = win32gui.GetForegroundWindow() + rect = win32gui.GetClientRect(window) + + bbox = [rect[0], rect[1], rect[2] - rect[0], rect[3] - rect[1]] + #x = bbox[0] + #y = bbox[1] + w = bbox[2] + h = bbox[3] + zone_screen_height = math.ceil(0.97735 * h) + zone_screen_width = math.ceil(zone_screen_height * 1.34105) + zone_screen_x = math.ceil(w / 2 - zone_screen_width / 2) + + rollback_x = zone_screen_width * 0.89955 + zone_screen_x + rollback_y = 0.69518 * h + rollback_position = win32gui.ClientToScreen(window, (int(rollback_x), int(rollback_y))) + + autoit.mouse_move(x=rollback_position[0], y=rollback_position[1], speed=2) + mouse_click() + sleep(3) # Ensure mouseclick registers + press_and_release("backspace, backspace") + autoit.mouse_move(mousex, mousey, speed=1) + return + +## MAJOR TODO: Time certain functions in old script and port them to minwait -def click_camera_button(): +def click_camera(): if not able_to_run(): return global signal_mouse_coords if scan_for_dialog("exitcamera"): # Exit button found - keyboard.press_and_release("backspace") - keyboard.press_and_release("backspace") # Exit out of all menus, except dialog + press_and_release("backspace", "backspace") if signal_mouse_coords: - autoit.mouse_move(signal_mouse_coords.x, signal_mouse_coords.y, speed=1) + autoit.mouse_move(signal_mouse_coords[0], signal_mouse_coords[1], speed=1) return - autoit.mouse_click() + signal_mouse_coords = mouse.get_position() + mouse_click() + sleep(2, 0.02) if scan_for_dialog("signal"): # Scan for controlled signal dialog - keyboard.press_and_release("enter") - camera_y = None + press_and_release("enter") + camera_y = 0.92133 elif scan_for_dialog("uncontrolled"): - keyboard.press_and_release("enter") - if scan_for_dialog("viewcamera") == 0: - camera_y = 0.80137 # Uncontrolled Auto - else: - camera_y = 0.92133 # Uncontrolled Manual + press_and_release("enter") + sleep(2) + camera_y = 0.80137 if scan_for_dialog("viewcamera") == 0 else 0.92133 else: return - signal_mouse_coords = pyautogui.position() window = win32gui.GetForegroundWindow() rect = win32gui.GetClientRect(window) @@ -169,11 +216,12 @@ def click_camera_button(): zone_screen_x = math.ceil(w / 2 - zone_screen_width / 2) camera_x = zone_screen_width * 0.89414 + zone_screen_x - camera_y = (camera_y * h) if camera_y != None else 0.91445 * h + camera_y = camera_y * h camera_position = win32gui.ClientToScreen(window, (int(camera_x), int(camera_y))) - time.sleep(0.016) - autoit.mouse_click(x=camera_position[0], y=camera_position[1], speed=2) + sleep(1) + autoit.mouse_move(x=camera_position[0], y=camera_position[1], speed=2) + mouse_click() return @@ -190,15 +238,13 @@ def toggle_disable(): def scan_for_dialog(type, mousex=0, mousey=0): if not able_to_run(): return - global running - #running = True if mousex is mousey and mousex == 0: - mousex, mousey = pyautogui.position() + mousex, mousey = mouse.get_position() window = win32gui.GetForegroundWindow() rect = win32gui.GetClientRect(window) bbox = [rect[0], rect[1], rect[2] - rect[0], rect[3] - rect[1]] - x = bbox[0] + #x = bbox[0] y = bbox[1] w = bbox[2] h = bbox[3] @@ -208,7 +254,6 @@ def scan_for_dialog(type, mousex=0, mousey=0): dialogbox_x = mousex - dialogbox_width / 2 dialogbox_y = mousey - dialogbox_height - #time.sleep(dialog_wait) capture = screen_grab(dialogbox_x, dialogbox_y, dialogbox_width, dialogbox_height * 2) w, h = capture.size capture.convert('RGB') @@ -220,29 +265,21 @@ def scan_for_dialog(type, mousex=0, mousey=0): uppershelf = upper.crop((0, upperh * 0.4, upperw, upperh * 0.4 + 2)) imagesToProcess = [lowershelf, uppershelf] - white_pixels = 0 - flag = False - for image in imagesToProcess: - for i in range(math.ceil(image.width / 1.6)): # Don't bother checking too much of the image - for val in color_dialog_buttons: - if i == 0 or image.height == 0: - break - r, g, b = image.getpixel((i, image.height - 1)) - if color_approx_eq((r, g, b), (color_dialog_white)): # Count the number of white pixels to avoid false positives - white_pixels += 1 - elif color_approx_eq((r, g, b), (val)): # Do we have a button color? - if white_pixels / (image.width * image.height) >= 0.05: # >5% of pixels are white - flag = True - break - if flag: - break - if flag: - break - if flag: - return True - else: - print("NOt") - return False + def process_images(): + white_pixels = 0 + for image in imagesToProcess: + for i in range(math.ceil(image.width / 1.6)): # Don't bother checking too much of the image + for val in color_dialog_buttons: + if i == 0 or image.height == 0: + break + r, g, b = image.getpixel((i, image.height - 1)) + if color_approx_eq((r, g, b), (color_dialog_white)): # Count the number of white pixels to avoid false positives + white_pixels += 1 + elif color_approx_eq((r, g, b), (val)): # Do we have a button color? + if white_pixels / (image.width * image.height) >= 0.05: # >5% of pixels are white + return True + print("Nay") + return True if process_images() else False elif type == "exitcamera": # Red "X" button at the top of screen when in a camera view camera_controls_width = 283 camera_controls_x = math.ceil(w / 2 - camera_controls_width / 2) @@ -309,6 +346,7 @@ def scan_for_dialog(type, mousex=0, mousey=0): else: return False elif type == "viewcamera": # Purple "View Camera" button in sidemenu + t1 = perf_counter() zone_screen_height = math.ceil(0.97735 * h) zone_screen_width = math.ceil(zone_screen_height * 1.34105) zone_screen_x = math.ceil(w / 2 - zone_screen_width / 2) @@ -319,9 +357,7 @@ def scan_for_dialog(type, mousex=0, mousey=0): camerabutton_y = h * 0.80629 screen_cords = win32gui.ClientToScreen(window, (int(camerabutton_x), int(camerabutton_y))) - time.sleep(menu_wait) capture = screen_grab(screen_cords[0], screen_cords[1], camerabutton_width, camerabutton_height * 2) - capture.convert('RGB') width, height = capture.size uppershelf = capture.crop((0, 0, width, 3)) @@ -343,47 +379,17 @@ def scan_for_dialog(type, mousex=0, mousey=0): if flag: break if flag: + t2 = perf_counter() if image == imagesToProcess[0]: + print((t2 - t1) * 10 ** 3) return 0 # Upper button else: + print((t2 - t1) * 10 ** 3) return 1 # Lower button else: return False -def move_and_click_rollback(): - if not able_to_run(): - return - autoit.mouse_click() - if scan_for_dialog("exitcamera"): # Are we currently viewing a camera? - return - elif scan_for_dialog("signal"): # Is there a dialog on a signal we control? - keyboard.press_and_release("enter") - else: # No dialog found, no rollback toggle - return - window = win32gui.GetForegroundWindow() - rect = win32gui.GetClientRect(window) - - bbox = [rect[0], rect[1], rect[2] - rect[0], rect[3] - rect[1]] - x = bbox[0] - y = bbox[1] - w = bbox[2] - h = bbox[3] - zone_screen_height = math.ceil(0.97735 * h) - zone_screen_width = math.ceil(zone_screen_height * 1.34105) - zone_screen_x = math.ceil(w / 2 - zone_screen_width / 2) - - mouse_coords = pyautogui.position() - rollback_x = zone_screen_width * 0.89955 + zone_screen_x - rollback_y = 0.69518 * h - rollback_position = win32gui.ClientToScreen(window, (int(rollback_x), int(rollback_y))) - - autoit.mouse_click(x=rollback_position[0], y=rollback_position[1], speed=2) - time.sleep(0.016) # Needed to ensure mouseclick registers - keyboard.press_and_release("backspace") - keyboard.press_and_release("backspace") - autoit.mouse_move(mouse_coords.x, mouse_coords.y, speed=1) - return def send_zone_message(zone): @@ -410,25 +416,26 @@ def enabled_warning(): winsound.Beep(640, 300) if __name__ == "__main__": - keyboard.add_hotkey(2, click_signal, args=["1"]) # 1 - keyboard.add_hotkey(3, click_signal, args=["2"]) # 2 - keyboard.add_hotkey(4, click_signal, args=["3"]) # 3 - # keyboard.add_hotkey(46, click_camera_button) # C - # keyboard.add_hotkey(59, toggle_disable) # F1 - # keyboard.add_hotkey('R', move_and_click_rollback) # R - # keyboard.add_hotkey('/', enabled_warning) # / warning when opening chat while enabled - # keyboard.add_hotkey('`', enabled_warning) # Command bar - # keyboard.add_hotkey('\'', enabled_warning) # Command bar - # keyboard.add_hotkey(79, send_zone_message, args=["A"]) # Num 1 - # keyboard.add_hotkey(80, send_zone_message, args=["B"]) # Num 2 - # keyboard.add_hotkey(81, send_zone_message, args=["C"]) # Num 3 - # keyboard.add_hotkey(75, send_zone_message, args=["D"]) # Num 4 - # keyboard.add_hotkey(76, send_zone_message, args=["E"]) # Num 5 - # keyboard.add_hotkey(77, send_zone_message, args=["F"]) # Num 6 - # keyboard.add_hotkey(71, send_zone_message, args=["G"]) # Num 7 + add_hotkey('g', auto_setup_test) + add_hotkey(2, click_signal, args=["1"]) # 1 + add_hotkey(3, click_signal, args=["2"]) # 2 + add_hotkey(4, click_signal, args=["3"]) # 3 + add_hotkey(46, click_camera) # C + add_hotkey(59, toggle_disable) # F1 + add_hotkey('R', click_rollback) # R + add_hotkey('/', enabled_warning) # / warning when opening chat while enabled + add_hotkey('`', enabled_warning) # Command bar + add_hotkey('\'', enabled_warning) # Command bar + add_hotkey(79, send_zone_message, args=["A"]) # Num 1 + add_hotkey(80, send_zone_message, args=["B"]) # Num 2 + add_hotkey(81, send_zone_message, args=["C"]) # Num 3 + add_hotkey(75, send_zone_message, args=["D"]) # Num 4 + add_hotkey(76, send_zone_message, args=["E"]) # Num 5 + add_hotkey(77, send_zone_message, args=["F"]) # Num 6 + add_hotkey(71, send_zone_message, args=["G"]) # Num 7 if update_check: update_check() winsound.Beep(500, 200) print("SG+ Successfully Initialized") - keyboard.wait() \ No newline at end of file + keyboard_wait() \ No newline at end of file From 7d8139cd84f4811157ddb3a6e4555beed06aeb1d Mon Sep 17 00:00:00 2001 From: ElectricityMachine <47489506+ElectricityMachine@users.noreply.github.com> Date: Fri, 27 Oct 2023 15:11:08 -0400 Subject: [PATCH 4/8] Support Python 3.12 and cleanup code Initial refactor Use properly named constants Correct version to 0.3.1-alpha Add docstrings Split scan_dialog into multiple methods --- .vscode/settings.json | 3 + pyproject.toml | 2 + requirements.txt | 19 +- script.py | 545 ++++++++++++++++++++---------------------- 4 files changed, 279 insertions(+), 290 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 pyproject.toml diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..55914a4 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "sourcery.codeLens": false +} \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..6dbd43f --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,2 @@ +[tool.ruff] +line-length = 120 diff --git a/requirements.txt b/requirements.txt index 3060228..85a1ed9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,12 +1,13 @@ -autoit==0.2.6 -colorama==0.4.4 +certifi==2023.7.22 +charset-normalizer==3.3.1 +colorama==0.4.6 +idna==3.4 keyboard==0.13.5 -mss==7.0.1 -Pillow==9.4.0 -PyAutoGUI==0.9.53 +mouse==0.7.1 +mss==9.0.1 +Pillow==10.1.0 PyAutoIt==0.6.5 -PyGetWindow==0.0.9 pyperclip==1.8.2 -PyScreeze==0.1.28 -pywin32==303 -requests==2.28.2 \ No newline at end of file +pywin32==306 +requests==2.31.0 +urllib3==2.0.7 diff --git a/script.py b/script.py index 3bd100b..cf959dc 100644 --- a/script.py +++ b/script.py @@ -1,6 +1,6 @@ # ElectricityMachine -# Version: 0.3.1 -# Major changes: Add toggle rollback, improved reliability, major speed improvements, chat warning +# Version: 0.3.1-alpha +# Major changes: Python 12 support, refactor # Description: A script to automate tasks when signalling for SCR # Keybinds: 1 2 3 for Danger, Caution, and Proceed signal settings. C for Camera. R for Rollback Toggle. # How to use: Hover over a signal and press the corresponding keybind to perform the action @@ -12,94 +12,91 @@ import autoit import colorama -from PIL.Image import frombytes -from keyboard import add_hotkey, press_and_release, wait as keyboard_wait +import mouse import pyperclip -from requests import get as requests_get import win32gui -import mouse +from keyboard import add_hotkey, press_and_release +from keyboard import wait as keyboard_wait from mss import mss -from time import perf_counter +from PIL.Image import frombytes +from requests import get as requests_get colorama.init() # Needed to work on Windows devices, see colorama docs -version = "v0.3.1" -fps = 60 # Set your average FPS here -ping = 100 # Set your average ping here -debug = False # If true, will enable debug prints if they're specified -check_for_update = False - - -color_dialog_buttons = { - (0, 201, 0), # Lit Green - (204, 153, 0), # Lit Yellow - (213, 0, 0), # Lit Red - (0, 94, 0), # Unlit Green - (96, 60, 0), # Unlit Yellow - (99, 0, 0), # Unlit Red +VERSION = "v0.3.1-alpha" +AVG_FPS = 60 # Set your average FPS here +AVG_PING = 0 # Set your average ping here +DEBUG = True # If true, will enable debug prints if they're specified +UPDATE_CHECK_ENABLED = False # If true, will run check_for_update() on startup + + +COLORS = { + "COLOR_DIALOG_BUTTONS": [ + (0, 201, 0), # Lit Green + (204, 153, 0), # Lit Yellow + (213, 0, 0), # Lit Red + (0, 94, 0), # Unlit Green + (96, 60, 0), # Unlit Yellow + (99, 0, 0), # Unlit Red + ], + "COLOR_MORE": (92, 89, 89), # Color of gray button w/ 3 dots + "COLOR_MENU": (194, 186, 189), # Side menu main color + "COLOR_CAMERA_EXIT": (255, 255, 255), # White "X" on the close button in camera view + "COLOR_DIALOG_WHITE": (227, 218, 218), # White elements in the signal dialog + "COLOR_VIEWCAMERA": (147, 0, 207), # Purple "View Camera" button } -color_more = (92, 89, 89) # Color of gray button w/ 3 dots -color_menu = (194, 186, 189) # Side menu main color -color_camera_exit = (255, 255, 255) # White "X" on the close button in camera view -color_dialog_white = (227, 218, 218) # White elements in the signal dialog -color_viewcamera = (147, 0, 207) # Purple "View Camera" button disabled = False signal_mouse_coords = None # Mouse coordinates used to return cursor to signal when exiting camera/rollback -one_frame_time = round((1000 / fps) * 10 ** -3, 4) # Calculate time for 1 frame and round to 4 decimal places +one_frame_time = round((1000 / AVG_FPS) * 10**-3, 4) # Calculate time for 1 frame and round to 4 decimal places def update_check(): + """Fetch the latest release version from the GitHub repo and inform the user if an update is available""" # TODO: Implement better version check functionality instead of just difference in strings - if not check_for_update: + if not UPDATE_CHECK_ENABLED: return URL = "https://api.github.com/repos/ElectricityMachine/SCR-SGPlus/releases/latest" r = requests_get(url=URL) data = r.json() - if version != data["tag_name"]: - print(colorama.Fore.RED + "NOTICE: A new update is available for SG+!") - print(colorama.Fore.RED + "It is always recommended to update to the latest version. To do so, go to https://github.com/ElectricityMachine/SCR-SGPlus") - print(colorama.Fore.RED + "and follow the instructions under \"Installation\"") + if VERSION != data["tag_name"]: + print(f"{colorama.Fore.RED}NOTICE: A new update is available for SG+!") + print( + colorama.Fore.RED + + "It is always recommended to update to the latest version. To do so, go to https://github.com/ElectricityMachine/SCR-SGPlus" + ) + print(f'{colorama.Fore.RED}and follow the instructions under "Installation"') print(colorama.Fore.WHITE) -def able_to_run(): - if disabled: - if debug: - print("Unable to run: Disabled") - return False - elif win32gui.GetWindowText(win32gui.GetForegroundWindow()) != "Roblox": - if debug: - print("Unable to run: Not ROBLOX") - return False - else: - return True - - -def color_approx_eq(color1, color2): # Checks if a color is equal to another color within a tolerance of 7 - return abs(color1[0] - color2[0]) <= 7 and abs(color1[1] - color2[1]) <= 7 and abs(color1[2] - color2[2]) <= 7 +def color_approx_eq(color1, color2, tolerance: int = 7): + """Check if a color is equal to another color within a tolerance of 7""" + return ( + abs(color1[0] - color2[0]) <= tolerance + and abs(color1[1] - color2[1]) <= tolerance + and abs(color1[2] - color2[2]) <= tolerance + ) def screen_grab(x, y, width, height): with mss() as sct: - # Calculate bbox left = x top = y right = x + width lower = y + height bbox = (math.ceil(left), math.ceil(top), math.ceil(right), math.ceil(lower)) - # Grab the image im = sct.grab(bbox) # Convert to PIL image for compatibility - newimage = frombytes('RGB', im.size, im.bgra, 'raw', 'BGRX') - return newimage + return frombytes("RGB", im.size, im.bgra, "raw", "BGRX") -def mouse_click(): + +def mouseclick_left(): mouse.press("left") mouse.release("left") -def sleep(frames, minwait=0): + +def sleep_frames(frames, minwait=0): if minwait != 0: print(max((frames * one_frame_time), minwait)) time.sleep(max((frames * one_frame_time), minwait)) @@ -107,99 +104,81 @@ def sleep(frames, minwait=0): time.sleep(frames * one_frame_time) +def check_able_to_run(callback): + def wrapper(*args): + if callback is not None and callable(callback) and not disabled: + return callback(*args) + + return wrapper + + +@check_able_to_run def click_signal(sig): - if not able_to_run(): - return - #t1 = perf_counter() - # Inputs to the same signal are throttled such that you cannot change an aspect while the server is still processing your last input - # Inputs to other signals don't seem to be throttled coord = mouse.get_position() - mouse_click() + mouseclick_left() time.sleep(one_frame_time * 3) - result = scan_for_dialog("signal", coord[0], coord[1]) - if result: - time.sleep(one_frame_time * 2) # Wait a few frames to ensure the dialog is on screen and the game will process our inputs + if scan_for_dialog("signal", coord[0], coord[1]): + time.sleep(one_frame_time * 2) press_and_release(sig) - time.sleep(ping/4_000) # Ensure that our inputs are processed properly before exiting out of the dialog + time.sleep(AVG_PING / 4_000) press_and_release("backspace") -def auto_setup_test(): - if not able_to_run(): - return - present_pos_x, present_pos_y = mouse.get_position() - for j in range(2): - for i in range(1,16): - coord = mouse.get_position() - # Click signal red - print(i) - if i == 9 or i == 10: - # autoit.mouse_move(x=present_pos_x, y=present_pos_y + 57 * i, speed=0) - continue - if j == 0: click_signal('1') - elif j == 1: click_signal('3') - # Move 50 pixels down from current position - - if i != 15: autoit.mouse_move(x=present_pos_x, y=round(present_pos_y + 56.5 * i), speed=0) - #time.sleep(0.1) - autoit.mouse_move(x=present_pos_x, y=present_pos_y, speed=1) +def move_mouse(x, y, speed=1): + autoit.mouse_move(x, y, speed) + + +@check_able_to_run def click_rollback(): - if not able_to_run(): - return mousex, mousey = mouse.get_position() - mouse_click() - sleep(2) - if scan_for_dialog("exitcamera"): # Are we currently viewing a camera? + mouseclick_left() + sleep_frames(2) + if scan_for_dialog("exitcamera"): return - elif scan_for_dialog("signal", mousex, mousey): # Is there a dialog on a signal we control? + elif scan_for_dialog("signal", mousex, mousey): press_and_release("enter") - else: # No dialog found, no rollback toggle + else: return window = win32gui.GetForegroundWindow() rect = win32gui.GetClientRect(window) bbox = [rect[0], rect[1], rect[2] - rect[0], rect[3] - rect[1]] - #x = bbox[0] - #y = bbox[1] - w = bbox[2] - h = bbox[3] - zone_screen_height = math.ceil(0.97735 * h) - zone_screen_width = math.ceil(zone_screen_height * 1.34105) - zone_screen_x = math.ceil(w / 2 - zone_screen_width / 2) + _x = bbox[0] + _y = bbox[1] + window_width = bbox[2] + window_height = bbox[3] + zone_screen_height, zone_screen_width, zone_screen_x = calculate_zone_screen(window_width, window_height) rollback_x = zone_screen_width * 0.89955 + zone_screen_x - rollback_y = 0.69518 * h + rollback_y = 0.69518 * window_height rollback_position = win32gui.ClientToScreen(window, (int(rollback_x), int(rollback_y))) - autoit.mouse_move(x=rollback_position[0], y=rollback_position[1], speed=2) - mouse_click() - sleep(3) # Ensure mouseclick registers + move_mouse(x=rollback_position[0], y=rollback_position[1], speed=2) + mouseclick_left() + sleep_frames(3) # Ensure mouseclick registers press_and_release("backspace, backspace") - autoit.mouse_move(mousex, mousey, speed=1) + move_mouse(mousex, mousey, speed=1) return -## MAJOR TODO: Time certain functions in old script and port them to minwait - +@check_able_to_run def click_camera(): - if not able_to_run(): - return - global signal_mouse_coords - if scan_for_dialog("exitcamera"): # Exit button found - press_and_release("backspace", "backspace") + if scan_for_dialog("exitcamera"): + for _ in range(3): + press_and_release("backspace") if signal_mouse_coords: - autoit.mouse_move(signal_mouse_coords[0], signal_mouse_coords[1], speed=1) + move_mouse(signal_mouse_coords[0], signal_mouse_coords[1], speed=1) return signal_mouse_coords = mouse.get_position() - mouse_click() - sleep(2, 0.02) - if scan_for_dialog("signal"): # Scan for controlled signal dialog + mouseclick_left() + sleep_frames(2, 0.02) + if scan_for_dialog("signal"): press_and_release("enter") camera_y = 0.92133 elif scan_for_dialog("uncontrolled"): press_and_release("enter") - sleep(2) + sleep_frames(2) camera_y = 0.80137 if scan_for_dialog("viewcamera") == 0 else 0.92133 else: return @@ -208,23 +187,34 @@ def click_camera(): rect = win32gui.GetClientRect(window) bbox = [rect[0], rect[1], rect[2] - rect[0], rect[3] - rect[1]] + _x = bbox[0] + _y = bbox[1] w = bbox[2] h = bbox[3] - zone_screen_height = math.ceil(0.97735 * h) - zone_screen_width = math.ceil(zone_screen_height * 1.34105) - zone_screen_x = math.ceil(w / 2 - zone_screen_width / 2) + # zone_screen_height = math.ceil(0.97735 * h) + # zone_screen_width = math.ceil(zone_screen_height * 1.34105) + # zone_screen_x = math.ceil(w / 2 - zone_screen_width / 2) + + zone_screen_height, zone_screen_width, zone_screen_x = calculate_zone_screen(w, h) camera_x = zone_screen_width * 0.89414 + zone_screen_x camera_y = camera_y * h camera_position = win32gui.ClientToScreen(window, (int(camera_x), int(camera_y))) - sleep(1) - autoit.mouse_move(x=camera_position[0], y=camera_position[1], speed=2) - mouse_click() + sleep_frames(1) + move_mouse(x=camera_position[0], y=camera_position[1], speed=2) + mouseclick_left() return +def calculate_zone_screen(window_width, window_height): + zone_screen_height = math.ceil(0.97735 * window_height) + zone_screen_width = math.ceil(zone_screen_height * 1.34105) + zone_screen_x = math.ceil(window_width / 2 - zone_screen_width / 2) + return zone_screen_height, zone_screen_width, zone_screen_x + + def toggle_disable(): global disabled if disabled: @@ -235,197 +225,190 @@ def toggle_disable(): winsound.Beep(400, 100) +@check_able_to_run def scan_for_dialog(type, mousex=0, mousey=0): - if not able_to_run(): - return if mousex is mousey and mousex == 0: mousex, mousey = mouse.get_position() window = win32gui.GetForegroundWindow() rect = win32gui.GetClientRect(window) bbox = [rect[0], rect[1], rect[2] - rect[0], rect[3] - rect[1]] - #x = bbox[0] - y = bbox[1] + _x = bbox[0] + _y = bbox[1] w = bbox[2] h = bbox[3] - if type == "signal": # Gray signal dialog - dialogbox_height = math.ceil(h * 0.125) - dialogbox_width = math.ceil(dialogbox_height * 2) - dialogbox_x = mousex - dialogbox_width / 2 - dialogbox_y = mousey - dialogbox_height - - capture = screen_grab(dialogbox_x, dialogbox_y, dialogbox_width, dialogbox_height * 2) - w, h = capture.size - capture.convert('RGB') - upper = capture.crop((0, 0, w, h / 2)) # Upper - lower = capture.crop((0, h / 2, w, h)) # Lower - upperw, upperh = upper.size - width, height = lower.size - lowershelf = lower.crop((0, height * 0.66, width, height * 0.66 + 3)) # A 2-3 pixel high cropped image of the middle of the dialog - uppershelf = upper.crop((0, upperh * 0.4, upperw, upperh * 0.4 + 2)) - imagesToProcess = [lowershelf, uppershelf] - - def process_images(): - white_pixels = 0 - for image in imagesToProcess: - for i in range(math.ceil(image.width / 1.6)): # Don't bother checking too much of the image - for val in color_dialog_buttons: - if i == 0 or image.height == 0: - break - r, g, b = image.getpixel((i, image.height - 1)) - if color_approx_eq((r, g, b), (color_dialog_white)): # Count the number of white pixels to avoid false positives - white_pixels += 1 - elif color_approx_eq((r, g, b), (val)): # Do we have a button color? - if white_pixels / (image.width * image.height) >= 0.05: # >5% of pixels are white - return True - print("Nay") - return True if process_images() else False - elif type == "exitcamera": # Red "X" button at the top of screen when in a camera view - camera_controls_width = 283 - camera_controls_x = math.ceil(w / 2 - camera_controls_width / 2) - - exit_camera_button_y = 85 + y - exit_camera_button_x = 0.91166 * camera_controls_width + camera_controls_x - 5 - exit_camera_button_width = exit_camera_button_height = 50 - - screen_cords = win32gui.ClientToScreen(window, (int(exit_camera_button_x), int(exit_camera_button_y))) - capture = screen_grab(screen_cords[0], screen_cords[1], exit_camera_button_width, exit_camera_button_height) - capture.convert('RGB') - width, height = capture.size - lowershelf = capture.crop((0, height / 2, width, height / 2 + 2)) - imagesToProcess = [lowershelf] - flag = False - for image in imagesToProcess: - for i in range(math.ceil(image.width / 1.6)): - val = color_camera_exit - if image.height == 0: - break - r, g, b = image.getpixel((i, image.height - 1)) - if color_approx_eq((r, g, b), (val)): - flag = True - break - if flag: - break - if flag: - return True - elif type == "uncontrolled": # Gray signal dialog that isn't controlled by us - dialogbox_height = math.ceil(h * 0.125) - dialogbox_width = math.ceil(dialogbox_height * 2) - dialogbox_x = mousex - dialogbox_width / 2 - dialogbox_y = mousey - dialogbox_height - - capture = screen_grab(dialogbox_x, dialogbox_y, dialogbox_width, dialogbox_height * 2) - w, h = capture.size - capture.convert('RGB') - upper = capture.crop((0, 0, w, h / 2)) # Upper - lower = capture.crop((0, h / 2, w, h)) # Lower - upperw, upperh = upper.size - width, height = lower.size - lowershelf = lower.crop((0, height * 0.33, width / 2, height * 1 / 3 + 2)) - upper = capture.crop((0, 0, w, h / 2)) # Upper - upperw, upperh = upper.size - uppershelf = upper.crop((0, upperh * 0.1, upperw / 2, upperh * 0.1 + 2)) - imagesToProcess = [lowershelf, uppershelf] - white_pixels = 0 - flag = False - for image in imagesToProcess: - for i in range(math.ceil(image.width)): - for i2 in range(math.ceil(image.height)): - r, g, b = image.getpixel((i, i2)) - if color_approx_eq((r, g, b), (color_dialog_white)): - white_pixels += 1 - if white_pixels / image.width >= 0.2: # Greater than 20% of pixels are white - flag = True - break - if flag: - break - if flag: + if type == "exitcamera": + return find_exit_cam_button(w, bbox, window) + elif type == "signal": + return find_controlled_sig_dialog(h, mousex, mousey) + elif type == "uncontrolled": + return find_uncontrolled_sig_dialog(h, mousex, mousey) + elif type == "viewcamera": + return find_camera_buttons(h, w, window) + + +def find_camera_buttons(h, w, window): + zone_screen_height, zone_screen_width, zone_screen_x = calculate_zone_screen(w, h) + + camerabutton_height = math.ceil(h * 0.125 * 0.375) + camerabutton_width = math.ceil(camerabutton_height * 2 / 0.375) + camerabutton_x = zone_screen_width * 0.79760 + zone_screen_x + camerabutton_y = h * 0.80629 + + screen_cords = win32gui.ClientToScreen(window, (int(camerabutton_x), int(camerabutton_y))) + capture = screen_grab( + screen_cords[0], + screen_cords[1], + camerabutton_width, + camerabutton_height * 2, + ).convert("RGB") + width, height = capture.size + uppershelf = capture.crop((0, 0, width, 3)) + lowershelf = capture.crop((0, height * 0.94, width, height)) + + imagesToProcess = [uppershelf, lowershelf] + for image in imagesToProcess: + for i in range(math.ceil(image.width * 0.2)): + if image.height == 0: break - if flag: - return True - else: - return False - elif type == "viewcamera": # Purple "View Camera" button in sidemenu - t1 = perf_counter() - zone_screen_height = math.ceil(0.97735 * h) - zone_screen_width = math.ceil(zone_screen_height * 1.34105) - zone_screen_x = math.ceil(w / 2 - zone_screen_width / 2) - - camerabutton_height = math.ceil(h * 0.125 * 0.375) - camerabutton_width = math.ceil(camerabutton_height * 2 / 0.375) - camerabutton_x = zone_screen_width * 0.79760 + zone_screen_x - camerabutton_y = h * 0.80629 - - screen_cords = win32gui.ClientToScreen(window, (int(camerabutton_x), int(camerabutton_y))) - capture = screen_grab(screen_cords[0], screen_cords[1], camerabutton_width, camerabutton_height * 2) - capture.convert('RGB') - width, height = capture.size - uppershelf = capture.crop((0, 0, width, 3)) - lowershelf = capture.crop((0, height * 0.94, width, height)) - - imagesToProcess = [uppershelf, lowershelf] - flag = False - for image in imagesToProcess: - for i in range(math.ceil(image.width * 0.2)): - for val in color_viewcamera: - if i == 0 or image.height == 0: - break - r, g, b = image.getpixel((i, image.height - 1)) - if color_approx_eq((r, g, b), color_viewcamera): - flag = True - break - if flag: - break - if flag: + r, g, b = image.getpixel((i, image.height - 1)) + if color_approx_eq((r, g, b), COLORS["COLOR_VIEWCAMERA"]): + return 0 if image == imagesToProcess[0] else 1 + return False + + +def find_uncontrolled_sig_dialog(h, mousex, mousey): + dialogbox_height = math.ceil(h * 0.125) + dialogbox_width = math.ceil(dialogbox_height * 2) + dialogbox_x = mousex - dialogbox_width / 2 + dialogbox_y = mousey - dialogbox_height + + capture = screen_grab(dialogbox_x, dialogbox_y, dialogbox_width, dialogbox_height * 2).convert("RGB") + w, h = capture.size + upper = capture.crop((0, 0, w, h / 2)) # Upper + lower = capture.crop((0, h / 2, w, h)) # Lower + upperw, upperh = upper.size + width, height = lower.size + lowershelf = lower.crop((0, height * 0.33, width / 2, height * 1 / 3 + 2)) + upper = capture.crop((0, 0, w, h / 2)) # Upper + upperw, upperh = upper.size + uppershelf = upper.crop((0, upperh * 0.1, upperw / 2, upperh * 0.1 + 2)) + imagesToProcess = [lowershelf, uppershelf] + + white_pixels = 0 + for image in imagesToProcess: + for i in range(math.ceil(image.width)): + for i2 in range(math.ceil(image.height)): + r, g, b = image.getpixel((i, i2)) + if color_approx_eq((r, g, b), (COLORS["COLOR_DIALOG_WHITE"])): + white_pixels += 1 + if white_pixels / image.width >= 0.2: # Greater than 20% of pixels are white + return True + + return False + + +def find_controlled_sig_dialog(h, mousex, mousey): + dialogbox_height = math.ceil(h * 0.125) + dialogbox_width = math.ceil(dialogbox_height * 2) + dialogbox_x = mousex - dialogbox_width / 2 + dialogbox_y = mousey - dialogbox_height + + capture = screen_grab(dialogbox_x, dialogbox_y, dialogbox_width, dialogbox_height * 2).convert("RGB") + w, h = capture.size + upper = capture.crop((0, 0, w, h / 2)) + lower = capture.crop((0, h / 2, w, h)) + upperw, upperh = upper.size + width, height = lower.size + lowershelf = lower.crop((0, height * 0.66, width, height * 0.66 + 3)) + uppershelf = upper.crop((0, upperh * 0.4, upperw, upperh * 0.4 + 2)) + imagesToProcess = [lowershelf, uppershelf] + + white_pixels = 0 + for image in imagesToProcess: + for i in range(math.ceil(image.width / 1.6)): + if image.height == 0: break - if flag: - t2 = perf_counter() - if image == imagesToProcess[0]: - print((t2 - t1) * 10 ** 3) - return 0 # Upper button - else: - print((t2 - t1) * 10 ** 3) - return 1 # Lower button - else: - return False + r, g, b = image.getpixel((i, image.height - 1)) + if color_approx_eq((r, g, b), (COLORS["COLOR_DIALOG_WHITE"])): + white_pixels += 1 + for val in COLORS["COLOR_DIALOG_BUTTONS"]: + if color_approx_eq((r, g, b), (val)) or white_pixels / (image.width * image.height) >= 0.05: + return True + return False +def find_exit_cam_button(w, bbox, window): + camera_controls_width = 283 + camera_controls_x = math.ceil(w / 2 - camera_controls_width / 2) -def send_zone_message(zone): - if not able_to_run(): - return + y = bbox[1] + exit_camera_button_y = 85 + y + exit_camera_button_x = 0.91166 * camera_controls_width + camera_controls_x - 5 + exit_camera_button_width = exit_camera_button_height = 50 + + screen_cords = win32gui.ClientToScreen(window, (int(exit_camera_button_x), int(exit_camera_button_y))) + capture = screen_grab( + screen_cords[0], + screen_cords[1], + exit_camera_button_width, + exit_camera_button_height, + ).convert("RGB") + width, height = capture.size + lowershelf = capture.crop((0, height / 2, width, height / 2 + 2)) + imagesToProcess = [lowershelf] + + lowershelf.load() + + for image in imagesToProcess: + if image.height == 0: + break + for i in range(math.ceil(image.width / 1.6)): + r, g, b = image.getpixel((i, image.height - 1)) + if color_approx_eq((r, g, b), (COLORS["COLOR_CAMERA_EXIT"])): + return True + + return False + + +@check_able_to_run +def send_zone_message(zone: str): + """Copy a Zone opening message to the user's clipboard and sound an audible tone + + Args: + zone (str): Which Zone message to copy + """ switch = { - 'A': "Zone A (Stepford Area, Willowfield, Whitefield branches) is now under manual signalling control.", - 'B': "Zone B (St. Helens Bridge, Coxly, Beaulieu Park corridor) is now under manual signalling control.", - 'C': "Zone C (Stepford Airport Area) is now under manual signalling control.", - 'D': "Zone D (Morganstown to Leighton West) is now under manual signalling control.", - 'E': "Zone E (Llyn-by-the-Sea to Edgemead) is now under manual signalling control.", - 'F': "Zone F (Benton area + Waterline up to but not including Airport West and Morganstown) is now under manual signalling control.", - 'G': "Zone G (James St. to Esterfield) is now under manual signalling control." + "A": "Zone A (Stepford Area, Willowfield, Whitefield branches) is now under manual signalling control.", + "B": "Zone B (St. Helens Bridge, Coxly, Beaulieu Park corridor) is now under manual signalling control.", + "C": "Zone C (Stepford Airport Area) is now under manual signalling control.", + "D": "Zone D (Morganstown to Leighton West) is now under manual signalling control.", + "E": "Zone E (Llyn-by-the-Sea to Edgemead) is now under manual signalling control.", + "F": "Zone F (Benton area + Waterline up to but not including Airport West and Morganstown) is now under manual signalling control.", + "G": "Zone G (James St. to Esterfield) is now under manual signalling control.", } winsound.Beep(600, 200) pyperclip.copy(switch.get(zone)) +@check_able_to_run def enabled_warning(): - if not able_to_run(): - return - if not disabled: - winsound.Beep(640, 300) + """Play a warning beep if script is enabled""" + winsound.Beep(640, 300) + if __name__ == "__main__": - add_hotkey('g', auto_setup_test) add_hotkey(2, click_signal, args=["1"]) # 1 add_hotkey(3, click_signal, args=["2"]) # 2 add_hotkey(4, click_signal, args=["3"]) # 3 add_hotkey(46, click_camera) # C add_hotkey(59, toggle_disable) # F1 - add_hotkey('R', click_rollback) # R - add_hotkey('/', enabled_warning) # / warning when opening chat while enabled - add_hotkey('`', enabled_warning) # Command bar - add_hotkey('\'', enabled_warning) # Command bar + add_hotkey("R", click_rollback) # R + add_hotkey("/", enabled_warning) # / warning when opening chat while enabled + add_hotkey("`", enabled_warning) # Command bar + add_hotkey("'", enabled_warning) # Command bar add_hotkey(79, send_zone_message, args=["A"]) # Num 1 add_hotkey(80, send_zone_message, args=["B"]) # Num 2 add_hotkey(81, send_zone_message, args=["C"]) # Num 3 @@ -438,4 +421,4 @@ def enabled_warning(): update_check() winsound.Beep(500, 200) print("SG+ Successfully Initialized") - keyboard_wait() \ No newline at end of file + keyboard_wait() From 6581fbc41e43d24f1042e51d37f2bde28a160486 Mon Sep 17 00:00:00 2001 From: ElectricityMachine <47489506+ElectricityMachine@users.noreply.github.com> Date: Thu, 2 Nov 2023 20:40:24 -0400 Subject: [PATCH 5/8] Separate consts into settings.py Further refactoring Introduces bug: Script stalls after a while and fails to register input --- script.py | 210 ++++++++++++++++++++++++++-------------------------- settings.py | 22 ++++++ 2 files changed, 127 insertions(+), 105 deletions(-) create mode 100644 settings.py diff --git a/script.py b/script.py index cf959dc..02dd2f4 100644 --- a/script.py +++ b/script.py @@ -9,45 +9,22 @@ import math import time import winsound +import PIL import autoit import colorama import mouse import pyperclip import win32gui +from settings import AVG_FPS, VERSION, AVG_PING, DEBUG_ENABLED, UPDATE_CHECK_ENABLED, COLORS from keyboard import add_hotkey, press_and_release from keyboard import wait as keyboard_wait from mss import mss from PIL.Image import frombytes from requests import get as requests_get -colorama.init() # Needed to work on Windows devices, see colorama docs - -VERSION = "v0.3.1-alpha" -AVG_FPS = 60 # Set your average FPS here -AVG_PING = 0 # Set your average ping here -DEBUG = True # If true, will enable debug prints if they're specified -UPDATE_CHECK_ENABLED = False # If true, will run check_for_update() on startup - - -COLORS = { - "COLOR_DIALOG_BUTTONS": [ - (0, 201, 0), # Lit Green - (204, 153, 0), # Lit Yellow - (213, 0, 0), # Lit Red - (0, 94, 0), # Unlit Green - (96, 60, 0), # Unlit Yellow - (99, 0, 0), # Unlit Red - ], - "COLOR_MORE": (92, 89, 89), # Color of gray button w/ 3 dots - "COLOR_MENU": (194, 186, 189), # Side menu main color - "COLOR_CAMERA_EXIT": (255, 255, 255), # White "X" on the close button in camera view - "COLOR_DIALOG_WHITE": (227, 218, 218), # White elements in the signal dialog - "COLOR_VIEWCAMERA": (147, 0, 207), # Purple "View Camera" button -} - - -disabled = False + +enabled = True signal_mouse_coords = None # Mouse coordinates used to return cursor to signal when exiting camera/rollback one_frame_time = round((1000 / AVG_FPS) * 10**-3, 4) # Calculate time for 1 frame and round to 4 decimal places @@ -70,8 +47,17 @@ def update_check(): print(colorama.Fore.WHITE) -def color_approx_eq(color1, color2, tolerance: int = 7): - """Check if a color is equal to another color within a tolerance of 7""" +def color_approx_eq(color1: tuple, color2: tuple, tolerance: int = 7): + """Check if a color is equal to another color within a given value + + Args: + color1 (tuple): First RGB color to check against + color2 (tuple): Second RGB color to check against + tolerance (int, optional): How many units of R, G, or B to tolerate. Defaults to 7. + + Returns: + bool: Whether or not the colors are approximately equal to eachother + """ return ( abs(color1[0] - color2[0]) <= tolerance and abs(color1[1] - color2[1]) <= tolerance @@ -79,7 +65,18 @@ def color_approx_eq(color1, color2, tolerance: int = 7): ) -def screen_grab(x, y, width, height): +def screen_grab(x: int, y: int, width: int, height: int): + """Return a screenshot of the user's screen given some bounding box + + Args: + x (int): x-coordinate + y (int): y-coordinate + width (int): width of the screengrab + height (int): height of the screengrab + + Returns: + Image: PIL-compatible Image in RGB format + """ with mss() as sct: left = x top = y @@ -91,29 +88,33 @@ def screen_grab(x, y, width, height): return frombytes("RGB", im.size, im.bgra, "raw", "BGRX") -def mouseclick_left(): +def mouseclick_left() -> None: mouse.press("left") mouse.release("left") -def sleep_frames(frames, minwait=0): - if minwait != 0: - print(max((frames * one_frame_time), minwait)) - time.sleep(max((frames * one_frame_time), minwait)) - else: - time.sleep(frames * one_frame_time) +def sleep_frames(frames: int, minwait=0) -> None: + time.sleep(max((frames * one_frame_time), minwait)) def check_able_to_run(callback): def wrapper(*args): - if callback is not None and callable(callback) and not disabled: + print("Running") + if ( + enabled + and win32gui.GetWindowText(win32gui.GetForegroundWindow()) == "Roblox" + and callback is not None + and callable(callback) + ): return callback(*args) + else: + return None return wrapper @check_able_to_run -def click_signal(sig): +def click_signal(sig: str): coord = mouse.get_position() mouseclick_left() time.sleep(one_frame_time * 3) @@ -124,12 +125,12 @@ def click_signal(sig): press_and_release("backspace") -def move_mouse(x, y, speed=1): +def move_mouse(x: int, y: int, speed=1): autoit.mouse_move(x, y, speed) @check_able_to_run -def click_rollback(): +def click_rollback() -> None: mousex, mousey = mouse.get_position() mouseclick_left() sleep_frames(2) @@ -162,7 +163,7 @@ def click_rollback(): @check_able_to_run -def click_camera(): +def click_camera() -> None: global signal_mouse_coords if scan_for_dialog("exitcamera"): for _ in range(3): @@ -192,10 +193,6 @@ def click_camera(): w = bbox[2] h = bbox[3] - # zone_screen_height = math.ceil(0.97735 * h) - # zone_screen_width = math.ceil(zone_screen_height * 1.34105) - # zone_screen_x = math.ceil(w / 2 - zone_screen_width / 2) - zone_screen_height, zone_screen_width, zone_screen_x = calculate_zone_screen(w, h) camera_x = zone_screen_width * 0.89414 + zone_screen_x @@ -208,25 +205,23 @@ def click_camera(): return -def calculate_zone_screen(window_width, window_height): - zone_screen_height = math.ceil(0.97735 * window_height) - zone_screen_width = math.ceil(zone_screen_height * 1.34105) +def calculate_zone_screen(window_width: int, window_height: int) -> tuple: + ZONE_SCREEN_HEIGHT_RATIO = 0.97735 + ZONE_SCREEN_WIDTH_RATIO = 1.34105 + zone_screen_height = math.ceil(ZONE_SCREEN_HEIGHT_RATIO * window_height) + zone_screen_width = math.ceil(zone_screen_height * ZONE_SCREEN_WIDTH_RATIO) zone_screen_x = math.ceil(window_width / 2 - zone_screen_width / 2) return zone_screen_height, zone_screen_width, zone_screen_x -def toggle_disable(): - global disabled - if disabled: - disabled = False - winsound.Beep(500, 100) - else: - disabled = True - winsound.Beep(400, 100) +def toggle_disable() -> None: + global enabled + enabled = not enabled + winsound.Beep(500, 100) if enabled else winsound.Beep(400, 100) @check_able_to_run -def scan_for_dialog(type, mousex=0, mousey=0): +def scan_for_dialog(type: str, mousex=0, mousey=0): if mousex is mousey and mousex == 0: mousex, mousey = mouse.get_position() window = win32gui.GetForegroundWindow() @@ -247,7 +242,7 @@ def scan_for_dialog(type, mousex=0, mousey=0): return find_camera_buttons(h, w, window) -def find_camera_buttons(h, w, window): +def find_camera_buttons(h: int, w: int, window): zone_screen_height, zone_screen_width, zone_screen_x = calculate_zone_screen(w, h) camerabutton_height = math.ceil(h * 0.125 * 0.375) @@ -277,7 +272,18 @@ def find_camera_buttons(h, w, window): return False -def find_uncontrolled_sig_dialog(h, mousex, mousey): +def check_for_white_pixels(image): + white_pixels = 0 + for i in range(math.ceil(image.width)): + for i2 in range(math.ceil(image.height)): + r, g, b = image.getpixel((i, i2)) + if color_approx_eq((r, g, b), (COLORS["COLOR_DIALOG_WHITE"])): + white_pixels += 1 + if white_pixels / image.width >= 0.2: + return True + + +def find_uncontrolled_sig_dialog(h: int, mousex: int, mousey: int) -> bool: dialogbox_height = math.ceil(h * 0.125) dialogbox_width = math.ceil(dialogbox_height * 2) dialogbox_x = mousex - dialogbox_width / 2 @@ -285,30 +291,24 @@ def find_uncontrolled_sig_dialog(h, mousex, mousey): capture = screen_grab(dialogbox_x, dialogbox_y, dialogbox_width, dialogbox_height * 2).convert("RGB") w, h = capture.size - upper = capture.crop((0, 0, w, h / 2)) # Upper - lower = capture.crop((0, h / 2, w, h)) # Lower + upper = capture.crop((0, 0, w, h / 2)) + lower = capture.crop((0, h / 2, w, h)) upperw, upperh = upper.size width, height = lower.size lowershelf = lower.crop((0, height * 0.33, width / 2, height * 1 / 3 + 2)) - upper = capture.crop((0, 0, w, h / 2)) # Upper + upper = capture.crop((0, 0, w, h / 2)) upperw, upperh = upper.size uppershelf = upper.crop((0, upperh * 0.1, upperw / 2, upperh * 0.1 + 2)) imagesToProcess = [lowershelf, uppershelf] - white_pixels = 0 for image in imagesToProcess: - for i in range(math.ceil(image.width)): - for i2 in range(math.ceil(image.height)): - r, g, b = image.getpixel((i, i2)) - if color_approx_eq((r, g, b), (COLORS["COLOR_DIALOG_WHITE"])): - white_pixels += 1 - if white_pixels / image.width >= 0.2: # Greater than 20% of pixels are white - return True + if check_for_white_pixels(image): + return True return False -def find_controlled_sig_dialog(h, mousex, mousey): +def find_controlled_sig_dialog(h: int, mousex: int, mousey: int) -> bool: dialogbox_height = math.ceil(h * 0.125) dialogbox_width = math.ceil(dialogbox_height * 2) dialogbox_x = mousex - dialogbox_width / 2 @@ -324,29 +324,29 @@ def find_controlled_sig_dialog(h, mousex, mousey): uppershelf = upper.crop((0, upperh * 0.4, upperw, upperh * 0.4 + 2)) imagesToProcess = [lowershelf, uppershelf] - white_pixels = 0 - for image in imagesToProcess: - for i in range(math.ceil(image.width / 1.6)): - if image.height == 0: - break - r, g, b = image.getpixel((i, image.height - 1)) - if color_approx_eq((r, g, b), (COLORS["COLOR_DIALOG_WHITE"])): - white_pixels += 1 - for val in COLORS["COLOR_DIALOG_BUTTONS"]: - if color_approx_eq((r, g, b), (val)) or white_pixels / (image.width * image.height) >= 0.05: - return True + return any( + image.height != 0 and check_for_white_pixels(image) and check_for_colored_pixels_in_signal_dialog(image) + for image in imagesToProcess + ) + - return False +def check_for_colored_pixels_in_signal_dialog(image) -> bool: + for i in range(math.ceil(image.width / 1.6)): + r, g, b = image.getpixel((i, image.height - 1)) + for val in COLORS["COLOR_DIALOG_BUTTONS"]: + if color_approx_eq((r, g, b), (val)): + return True -def find_exit_cam_button(w, bbox, window): +def find_exit_cam_button(w: int, bbox: list[int, int, int, int], window): camera_controls_width = 283 camera_controls_x = math.ceil(w / 2 - camera_controls_width / 2) y = bbox[1] exit_camera_button_y = 85 + y exit_camera_button_x = 0.91166 * camera_controls_width + camera_controls_x - 5 - exit_camera_button_width = exit_camera_button_height = 50 + exit_camera_button_width = 50 + exit_camera_button_height = exit_camera_button_width screen_cords = win32gui.ClientToScreen(window, (int(exit_camera_button_x), int(exit_camera_button_y))) capture = screen_grab( @@ -359,8 +359,6 @@ def find_exit_cam_button(w, bbox, window): lowershelf = capture.crop((0, height / 2, width, height / 2 + 2)) imagesToProcess = [lowershelf] - lowershelf.load() - for image in imagesToProcess: if image.height == 0: break @@ -395,27 +393,29 @@ def send_zone_message(zone: str): @check_able_to_run def enabled_warning(): - """Play a warning beep if script is enabled""" + """Play a warning sound if script is enabled""" winsound.Beep(640, 300) if __name__ == "__main__": - add_hotkey(2, click_signal, args=["1"]) # 1 - add_hotkey(3, click_signal, args=["2"]) # 2 - add_hotkey(4, click_signal, args=["3"]) # 3 - add_hotkey(46, click_camera) # C - add_hotkey(59, toggle_disable) # F1 - add_hotkey("R", click_rollback) # R - add_hotkey("/", enabled_warning) # / warning when opening chat while enabled - add_hotkey("`", enabled_warning) # Command bar - add_hotkey("'", enabled_warning) # Command bar - add_hotkey(79, send_zone_message, args=["A"]) # Num 1 - add_hotkey(80, send_zone_message, args=["B"]) # Num 2 - add_hotkey(81, send_zone_message, args=["C"]) # Num 3 - add_hotkey(75, send_zone_message, args=["D"]) # Num 4 - add_hotkey(76, send_zone_message, args=["E"]) # Num 5 - add_hotkey(77, send_zone_message, args=["F"]) # Num 6 - add_hotkey(71, send_zone_message, args=["G"]) # Num 7 + add_hotkey(2, lambda: click_signal("1")) # 1 + add_hotkey(3, lambda: click_signal("2")) # 2 + add_hotkey(4, lambda: click_signal("3")) # 3 + add_hotkey(46, lambda: click_camera()) # C + add_hotkey(59, lambda: toggle_disable()) # F1 + add_hotkey("R", lambda: click_rollback()) # R + add_hotkey("/", lambda: enabled_warning()) # / warning when opening chat while enabled + add_hotkey("`", lambda: enabled_warning()) # Command bar + add_hotkey("'", lambda: enabled_warning()) # Command bar + add_hotkey(79, lambda: send_zone_message("A")) # Num 1 + add_hotkey(80, lambda: send_zone_message("B")) # Num 2 + add_hotkey(81, lambda: send_zone_message("C")) # Num 3 + add_hotkey(75, lambda: send_zone_message("D")) # Num 4 + add_hotkey(76, lambda: send_zone_message("E")) # Num 5 + add_hotkey(77, lambda: send_zone_message("F")) # Num 6 + add_hotkey(71, lambda: send_zone_message("G")) # Num 7 + + colorama.init() if update_check: update_check() diff --git a/settings.py b/settings.py new file mode 100644 index 0000000..814d391 --- /dev/null +++ b/settings.py @@ -0,0 +1,22 @@ +VERSION = "v0.3.1-alpha" +AVG_FPS = 60 # Set your average FPS here +AVG_PING = 0 # Set your average ping here +DEBUG_ENABLED = True # If true, will enable debug prints if they're specified +UPDATE_CHECK_ENABLED = False # If true, will run check_for_update() on startup + + +COLORS = { + "COLOR_DIALOG_BUTTONS": [ + (0, 201, 0), # Lit Green + (204, 153, 0), # Lit Yellow + (213, 0, 0), # Lit Red + (0, 94, 0), # Unlit Green + (96, 60, 0), # Unlit Yellow + (99, 0, 0), # Unlit Red + ], + "COLOR_MORE": (92, 89, 89), # Color of gray button w/ 3 dots + "COLOR_MENU": (194, 186, 189), # Side menu main color + "COLOR_CAMERA_EXIT": (255, 255, 255), # White "X" on the close button in camera view + "COLOR_DIALOG_WHITE": (227, 218, 218), # White elements in the signal dialog + "COLOR_VIEWCAMERA": (147, 0, 207), # Purple "View Camera" button +} From c7353b57318bd5d08b40e529ee10b07f2b388b91 Mon Sep 17 00:00:00 2001 From: ElectricityMachine <47489506+ElectricityMachine@users.noreply.github.com> Date: Thu, 2 Nov 2023 20:52:55 -0400 Subject: [PATCH 6/8] Add debug logging for most of the module --- script.py | 54 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 46 insertions(+), 8 deletions(-) diff --git a/script.py b/script.py index 02dd2f4..dd7dacb 100644 --- a/script.py +++ b/script.py @@ -9,9 +9,9 @@ import math import time import winsound -import PIL - +import logging import autoit +import sys import colorama import mouse import pyperclip @@ -23,13 +23,14 @@ from PIL.Image import frombytes from requests import get as requests_get - +logging.basicConfig(stream=sys.stdout, level=logging.DEBUG) enabled = True signal_mouse_coords = None # Mouse coordinates used to return cursor to signal when exiting camera/rollback one_frame_time = round((1000 / AVG_FPS) * 10**-3, 4) # Calculate time for 1 frame and round to 4 decimal places def update_check(): + logging.debug("Checking for updates") """Fetch the latest release version from the GitHub repo and inform the user if an update is available""" # TODO: Implement better version check functionality instead of just difference in strings if not UPDATE_CHECK_ENABLED: @@ -48,6 +49,7 @@ def update_check(): def color_approx_eq(color1: tuple, color2: tuple, tolerance: int = 7): + logging.debug("Color approx eq") """Check if a color is equal to another color within a given value Args: @@ -94,20 +96,25 @@ def mouseclick_left() -> None: def sleep_frames(frames: int, minwait=0) -> None: + logging.debug(f"Started sleeping for {frames} frames") time.sleep(max((frames * one_frame_time), minwait)) + logging.debug("Finished sleep") def check_able_to_run(callback): + logging.debug("Checking if able to run...") + def wrapper(*args): - print("Running") if ( enabled and win32gui.GetWindowText(win32gui.GetForegroundWindow()) == "Roblox" and callback is not None and callable(callback) ): + logging.debug("We're able to run") return callback(*args) else: + logging.debug("Not able to run! Return None") return None return wrapper @@ -115,10 +122,12 @@ def wrapper(*args): @check_able_to_run def click_signal(sig: str): + logging.debug("Click_signal executed") coord = mouse.get_position() mouseclick_left() time.sleep(one_frame_time * 3) if scan_for_dialog("signal", coord[0], coord[1]): + logging.debug("Signal dialog found in click_signal func") time.sleep(one_frame_time * 2) press_and_release(sig) time.sleep(AVG_PING / 4_000) @@ -131,15 +140,20 @@ def move_mouse(x: int, y: int, speed=1): @check_able_to_run def click_rollback() -> None: + logging.debug("click_rollback") mousex, mousey = mouse.get_position() mouseclick_left() sleep_frames(2) if scan_for_dialog("exitcamera"): + logging.debug("Found exitcamera in click_rollback, don't do anything") return elif scan_for_dialog("signal", mousex, mousey): + logging.debug("Open side menu for signal") press_and_release("enter") else: + logging.debug("return path in click_rollback") return + logging.debug("Made it out of the if-elif path in click_rollback") window = win32gui.GetForegroundWindow() rect = win32gui.GetClientRect(window) @@ -164,8 +178,10 @@ def click_rollback() -> None: @check_able_to_run def click_camera() -> None: + logging.debug("click_camera ran") global signal_mouse_coords if scan_for_dialog("exitcamera"): + logging.debug("exitcamera found in click_camera function") for _ in range(3): press_and_release("backspace") if signal_mouse_coords: @@ -175,15 +191,20 @@ def click_camera() -> None: mouseclick_left() sleep_frames(2, 0.02) if scan_for_dialog("signal"): + logging.debug("signal scan_for_dialog found") press_and_release("enter") camera_y = 0.92133 elif scan_for_dialog("uncontrolled"): + logging.debug("uncontrolled signal found in click_camera") press_and_release("enter") sleep_frames(2) camera_y = 0.80137 if scan_for_dialog("viewcamera") == 0 else 0.92133 + x = "lower number" if camera_y == 0.80137 else "upper number" + logging.debug(f"uncontrolled scan_for_dialog true in click_camera with x-value of {x}") else: + logging.debug("return none path in click_camera") return - + logging.debug("made it outside if-elif path in click_camera") window = win32gui.GetForegroundWindow() rect = win32gui.GetClientRect(window) @@ -211,17 +232,20 @@ def calculate_zone_screen(window_width: int, window_height: int) -> tuple: zone_screen_height = math.ceil(ZONE_SCREEN_HEIGHT_RATIO * window_height) zone_screen_width = math.ceil(zone_screen_height * ZONE_SCREEN_WIDTH_RATIO) zone_screen_x = math.ceil(window_width / 2 - zone_screen_width / 2) + logging.debug(f"zone screen params: {zone_screen_height, zone_screen_width, zone_screen_x}") return zone_screen_height, zone_screen_width, zone_screen_x def toggle_disable() -> None: global enabled + logging.debug(f"toggle_disable called: enabled is {enabled}") enabled = not enabled winsound.Beep(500, 100) if enabled else winsound.Beep(400, 100) @check_able_to_run def scan_for_dialog(type: str, mousex=0, mousey=0): + logging.debug("scan_for_dialog called") if mousex is mousey and mousex == 0: mousex, mousey = mouse.get_position() window = win32gui.GetForegroundWindow() @@ -243,6 +267,7 @@ def scan_for_dialog(type: str, mousex=0, mousey=0): def find_camera_buttons(h: int, w: int, window): + logging.debug("find_camera_button called") zone_screen_height, zone_screen_width, zone_screen_x = calculate_zone_screen(w, h) camerabutton_height = math.ceil(h * 0.125 * 0.375) @@ -268,11 +293,14 @@ def find_camera_buttons(h: int, w: int, window): break r, g, b = image.getpixel((i, image.height - 1)) if color_approx_eq((r, g, b), COLORS["COLOR_VIEWCAMERA"]): + logging.debug("found COLOR_VIEWCAMERA in find_camera_buttons") return 0 if image == imagesToProcess[0] else 1 + logging.debug("no find_camera_buttons found") return False def check_for_white_pixels(image): + logging.debug("check for white pixels") white_pixels = 0 for i in range(math.ceil(image.width)): for i2 in range(math.ceil(image.height)): @@ -280,10 +308,12 @@ def check_for_white_pixels(image): if color_approx_eq((r, g, b), (COLORS["COLOR_DIALOG_WHITE"])): white_pixels += 1 if white_pixels / image.width >= 0.2: + logging.debug("white pixels > 20% found") return True def find_uncontrolled_sig_dialog(h: int, mousex: int, mousey: int) -> bool: + logging.debug("find uncontrolled sig dialog called") dialogbox_height = math.ceil(h * 0.125) dialogbox_width = math.ceil(dialogbox_height * 2) dialogbox_x = mousex - dialogbox_width / 2 @@ -302,13 +332,16 @@ def find_uncontrolled_sig_dialog(h: int, mousex: int, mousey: int) -> bool: imagesToProcess = [lowershelf, uppershelf] for image in imagesToProcess: + logging.debug("iterating images in uncontrolled sig dialog loop") if check_for_white_pixels(image): + logging.debug("check for white pixels true in uncontrolled sig dialog loop") return True - + logging.debug("return false path uncontrolled signal") return False def find_controlled_sig_dialog(h: int, mousex: int, mousey: int) -> bool: + logging.debug("find_controlled_sig called") dialogbox_height = math.ceil(h * 0.125) dialogbox_width = math.ceil(dialogbox_height * 2) dialogbox_x = mousex - dialogbox_width / 2 @@ -323,22 +356,27 @@ def find_controlled_sig_dialog(h: int, mousex: int, mousey: int) -> bool: lowershelf = lower.crop((0, height * 0.66, width, height * 0.66 + 3)) uppershelf = upper.crop((0, upperh * 0.4, upperw, upperh * 0.4 + 2)) imagesToProcess = [lowershelf, uppershelf] - - return any( + logging.debug("made it to generator") + result = any( image.height != 0 and check_for_white_pixels(image) and check_for_colored_pixels_in_signal_dialog(image) for image in imagesToProcess ) + logging.debug(f"result: {result}") + return result def check_for_colored_pixels_in_signal_dialog(image) -> bool: + logging.debug("check_for_colored_pixels called") for i in range(math.ceil(image.width / 1.6)): r, g, b = image.getpixel((i, image.height - 1)) for val in COLORS["COLOR_DIALOG_BUTTONS"]: if color_approx_eq((r, g, b), (val)): + logging.debug("found matching color, return true") return True def find_exit_cam_button(w: int, bbox: list[int, int, int, int], window): + logging.debug("find_exit_cam_button") camera_controls_width = 283 camera_controls_x = math.ceil(w / 2 - camera_controls_width / 2) From 7a35ae0b385abdc674fa7892dd4684c764035174 Mon Sep 17 00:00:00 2001 From: ElectricityMachine <47489506+ElectricityMachine@users.noreply.github.com> Date: Thu, 2 Nov 2023 23:45:13 -0400 Subject: [PATCH 7/8] Initial numpy support Further numpy improvements Final numpy conversion --- script.py | 276 +++++++++++++++++++++++++++++------------------------- 1 file changed, 151 insertions(+), 125 deletions(-) diff --git a/script.py b/script.py index dd7dacb..da01111 100644 --- a/script.py +++ b/script.py @@ -16,6 +16,8 @@ import mouse import pyperclip import win32gui +import threading +import numpy as np from settings import AVG_FPS, VERSION, AVG_PING, DEBUG_ENABLED, UPDATE_CHECK_ENABLED, COLORS from keyboard import add_hotkey, press_and_release from keyboard import wait as keyboard_wait @@ -30,9 +32,10 @@ def update_check(): - logging.debug("Checking for updates") + logging.debug("update_check: called") """Fetch the latest release version from the GitHub repo and inform the user if an update is available""" # TODO: Implement better version check functionality instead of just difference in strings + # TODO: Use async for this function somehow, so we don't block. if not UPDATE_CHECK_ENABLED: return URL = "https://api.github.com/repos/ElectricityMachine/SCR-SGPlus/releases/latest" @@ -48,25 +51,6 @@ def update_check(): print(colorama.Fore.WHITE) -def color_approx_eq(color1: tuple, color2: tuple, tolerance: int = 7): - logging.debug("Color approx eq") - """Check if a color is equal to another color within a given value - - Args: - color1 (tuple): First RGB color to check against - color2 (tuple): Second RGB color to check against - tolerance (int, optional): How many units of R, G, or B to tolerate. Defaults to 7. - - Returns: - bool: Whether or not the colors are approximately equal to eachother - """ - return ( - abs(color1[0] - color2[0]) <= tolerance - and abs(color1[1] - color2[1]) <= tolerance - and abs(color1[2] - color2[2]) <= tolerance - ) - - def screen_grab(x: int, y: int, width: int, height: int): """Return a screenshot of the user's screen given some bounding box @@ -95,14 +79,17 @@ def mouseclick_left() -> None: mouse.release("left") +def move_mouse(x: int, y: int, speed=1): + autoit.mouse_move(x, y, speed) + + def sleep_frames(frames: int, minwait=0) -> None: - logging.debug(f"Started sleeping for {frames} frames") + logging.debug(f"Sleeping for {frames} frame(s)") time.sleep(max((frames * one_frame_time), minwait)) - logging.debug("Finished sleep") def check_able_to_run(callback): - logging.debug("Checking if able to run...") + logging.debug("check_able_to_run: called") def wrapper(*args): if ( @@ -111,10 +98,10 @@ def wrapper(*args): and callback is not None and callable(callback) ): - logging.debug("We're able to run") + logging.debug("check_able_to_run: able to run") return callback(*args) else: - logging.debug("Not able to run! Return None") + logging.debug("check_able_to_run: not able to run, returning") return None return wrapper @@ -122,38 +109,34 @@ def wrapper(*args): @check_able_to_run def click_signal(sig: str): - logging.debug("Click_signal executed") + logging.debug("click_signal: called") coord = mouse.get_position() mouseclick_left() time.sleep(one_frame_time * 3) if scan_for_dialog("signal", coord[0], coord[1]): - logging.debug("Signal dialog found in click_signal func") + logging.debug("click_signal: scan_for_dialog returned true") time.sleep(one_frame_time * 2) press_and_release(sig) time.sleep(AVG_PING / 4_000) press_and_release("backspace") -def move_mouse(x: int, y: int, speed=1): - autoit.mouse_move(x, y, speed) - - @check_able_to_run def click_rollback() -> None: - logging.debug("click_rollback") + logging.debug("click_rollback: called") mousex, mousey = mouse.get_position() mouseclick_left() sleep_frames(2) if scan_for_dialog("exitcamera"): - logging.debug("Found exitcamera in click_rollback, don't do anything") + logging.debug("click_rollback: scan_for_dialog(exitcamera) returned true") return elif scan_for_dialog("signal", mousex, mousey): - logging.debug("Open side menu for signal") + logging.debug("click_rollback: scan_for_dialog(signal) returned true, pressing enter") press_and_release("enter") else: logging.debug("return path in click_rollback") return - logging.debug("Made it out of the if-elif path in click_rollback") + logging.debug("click_rollback: execute main body outside if-elif path") window = win32gui.GetForegroundWindow() rect = win32gui.GetClientRect(window) @@ -170,7 +153,7 @@ def click_rollback() -> None: move_mouse(x=rollback_position[0], y=rollback_position[1], speed=2) mouseclick_left() - sleep_frames(3) # Ensure mouseclick registers + sleep_frames(3) press_and_release("backspace, backspace") move_mouse(mousex, mousey, speed=1) return @@ -178,33 +161,34 @@ def click_rollback() -> None: @check_able_to_run def click_camera() -> None: - logging.debug("click_camera ran") + logging.debug("click_camera: called") global signal_mouse_coords if scan_for_dialog("exitcamera"): - logging.debug("exitcamera found in click_camera function") - for _ in range(3): + logging.debug("click_camera: scan_for_dialog(exitcamera) returned true, pressing backspace twice") + for _ in range(2): press_and_release("backspace") if signal_mouse_coords: move_mouse(signal_mouse_coords[0], signal_mouse_coords[1], speed=1) return + logging.debug("click_camera: exitcamera dialog not found, executing main body") signal_mouse_coords = mouse.get_position() mouseclick_left() - sleep_frames(2, 0.02) + sleep_frames(2) if scan_for_dialog("signal"): - logging.debug("signal scan_for_dialog found") + logging.debug("click_camera: signal scan_for_dialog found") press_and_release("enter") camera_y = 0.92133 elif scan_for_dialog("uncontrolled"): - logging.debug("uncontrolled signal found in click_camera") + logging.debug("click_camera: uncontrolled signal found in click_camera") press_and_release("enter") - sleep_frames(2) + # sleep_frames(2) camera_y = 0.80137 if scan_for_dialog("viewcamera") == 0 else 0.92133 x = "lower number" if camera_y == 0.80137 else "upper number" - logging.debug(f"uncontrolled scan_for_dialog true in click_camera with x-value of {x}") + logging.debug(f"click_camera: uncontrolled scan_for_dialog true in click_camera with x-value of {x}") else: - logging.debug("return none path in click_camera") + logging.debug("click_camera: return none path in click_camera") return - logging.debug("made it outside if-elif path in click_camera") + logging.debug("click_camera: outside if-elif path") window = win32gui.GetForegroundWindow() rect = win32gui.GetClientRect(window) @@ -232,7 +216,6 @@ def calculate_zone_screen(window_width: int, window_height: int) -> tuple: zone_screen_height = math.ceil(ZONE_SCREEN_HEIGHT_RATIO * window_height) zone_screen_width = math.ceil(zone_screen_height * ZONE_SCREEN_WIDTH_RATIO) zone_screen_x = math.ceil(window_width / 2 - zone_screen_width / 2) - logging.debug(f"zone screen params: {zone_screen_height, zone_screen_width, zone_screen_x}") return zone_screen_height, zone_screen_width, zone_screen_x @@ -240,12 +223,13 @@ def toggle_disable() -> None: global enabled logging.debug(f"toggle_disable called: enabled is {enabled}") enabled = not enabled - winsound.Beep(500, 100) if enabled else winsound.Beep(400, 100) + beep = threading.Thread(target=lambda: winsound.Beep(500, 100) if enabled else winsound.Beep(400, 100)) + beep.start() @check_able_to_run def scan_for_dialog(type: str, mousex=0, mousey=0): - logging.debug("scan_for_dialog called") + logging.debug("scan_for_dialog: called") if mousex is mousey and mousex == 0: mousex, mousey = mouse.get_position() window = win32gui.GetForegroundWindow() @@ -266,54 +250,8 @@ def scan_for_dialog(type: str, mousex=0, mousey=0): return find_camera_buttons(h, w, window) -def find_camera_buttons(h: int, w: int, window): - logging.debug("find_camera_button called") - zone_screen_height, zone_screen_width, zone_screen_x = calculate_zone_screen(w, h) - - camerabutton_height = math.ceil(h * 0.125 * 0.375) - camerabutton_width = math.ceil(camerabutton_height * 2 / 0.375) - camerabutton_x = zone_screen_width * 0.79760 + zone_screen_x - camerabutton_y = h * 0.80629 - - screen_cords = win32gui.ClientToScreen(window, (int(camerabutton_x), int(camerabutton_y))) - capture = screen_grab( - screen_cords[0], - screen_cords[1], - camerabutton_width, - camerabutton_height * 2, - ).convert("RGB") - width, height = capture.size - uppershelf = capture.crop((0, 0, width, 3)) - lowershelf = capture.crop((0, height * 0.94, width, height)) - - imagesToProcess = [uppershelf, lowershelf] - for image in imagesToProcess: - for i in range(math.ceil(image.width * 0.2)): - if image.height == 0: - break - r, g, b = image.getpixel((i, image.height - 1)) - if color_approx_eq((r, g, b), COLORS["COLOR_VIEWCAMERA"]): - logging.debug("found COLOR_VIEWCAMERA in find_camera_buttons") - return 0 if image == imagesToProcess[0] else 1 - logging.debug("no find_camera_buttons found") - return False - - -def check_for_white_pixels(image): - logging.debug("check for white pixels") - white_pixels = 0 - for i in range(math.ceil(image.width)): - for i2 in range(math.ceil(image.height)): - r, g, b = image.getpixel((i, i2)) - if color_approx_eq((r, g, b), (COLORS["COLOR_DIALOG_WHITE"])): - white_pixels += 1 - if white_pixels / image.width >= 0.2: - logging.debug("white pixels > 20% found") - return True - - def find_uncontrolled_sig_dialog(h: int, mousex: int, mousey: int) -> bool: - logging.debug("find uncontrolled sig dialog called") + logging.debug("find_uncontrolled_sig_dialog: called") dialogbox_height = math.ceil(h * 0.125) dialogbox_width = math.ceil(dialogbox_height * 2) dialogbox_x = mousex - dialogbox_width / 2 @@ -332,16 +270,16 @@ def find_uncontrolled_sig_dialog(h: int, mousex: int, mousey: int) -> bool: imagesToProcess = [lowershelf, uppershelf] for image in imagesToProcess: - logging.debug("iterating images in uncontrolled sig dialog loop") - if check_for_white_pixels(image): - logging.debug("check for white pixels true in uncontrolled sig dialog loop") + logging.debug("find_uncontrolled_sig_dialog: iterating images") + if check_color_percentage_single(image, COLORS["COLOR_DIALOG_WHITE"]): + logging.debug("find_uncontrolled_sig_dialog: image loop: numpy white pixels returned success") return True - logging.debug("return false path uncontrolled signal") + logging.debug("find_uncontrolled_sig_dialog: return false path") return False def find_controlled_sig_dialog(h: int, mousex: int, mousey: int) -> bool: - logging.debug("find_controlled_sig called") + logging.debug("find_controlled_sig: called") dialogbox_height = math.ceil(h * 0.125) dialogbox_width = math.ceil(dialogbox_height * 2) dialogbox_x = mousex - dialogbox_width / 2 @@ -356,23 +294,117 @@ def find_controlled_sig_dialog(h: int, mousex: int, mousey: int) -> bool: lowershelf = lower.crop((0, height * 0.66, width, height * 0.66 + 3)) uppershelf = upper.crop((0, upperh * 0.4, upperw, upperh * 0.4 + 2)) imagesToProcess = [lowershelf, uppershelf] - logging.debug("made it to generator") + logging.debug("find_controlled_sig_dialog: made it to generator") result = any( - image.height != 0 and check_for_white_pixels(image) and check_for_colored_pixels_in_signal_dialog(image) + check_color_percentage_single(image, COLORS["COLOR_DIALOG_WHITE"], threshold=0.01) + and check_color_multiple(image, COLORS["COLOR_DIALOG_BUTTONS"]) for image in imagesToProcess - ) - logging.debug(f"result: {result}") + ) # this doesn't run if check for white pixels is false. must change TODO + logging.debug(f"find_controlled_sig_dialog: result: {result}") return result -def check_for_colored_pixels_in_signal_dialog(image) -> bool: - logging.debug("check_for_colored_pixels called") - for i in range(math.ceil(image.width / 1.6)): - r, g, b = image.getpixel((i, image.height - 1)) - for val in COLORS["COLOR_DIALOG_BUTTONS"]: - if color_approx_eq((r, g, b), (val)): - logging.debug("found matching color, return true") +def find_camera_buttons(h: int, w: int, window): + logging.debug("find_camera_button: called") + zone_screen_height, zone_screen_width, zone_screen_x = calculate_zone_screen(w, h) + + camerabutton_height = math.ceil(h * 0.125 * 0.375) + camerabutton_width = math.ceil(camerabutton_height * 2 / 0.375) + camerabutton_x = zone_screen_width * 0.79760 + zone_screen_x + camerabutton_y = h * 0.80629 + + screen_cords = win32gui.ClientToScreen(window, (int(camerabutton_x), int(camerabutton_y))) + capture = screen_grab( + screen_cords[0], + screen_cords[1], + camerabutton_width, + camerabutton_height * 2, + ).convert("RGB") + width, height = capture.size + uppershelf = capture.crop((0, 0, width, 3)) + lowershelf = capture.crop((0, height * 0.94, width, height)) + + imagesToProcess = [uppershelf, lowershelf] + for image in imagesToProcess: + if check_color_single(image, COLORS["VIEW_CAMERA_BUTTON"]): + logging.debug( + f"View camera button found. We got {0 if image==imagesToProcess[0] else 1} (0=upper, 1=lower)" + ) + return 0 if image == imagesToProcess[0] else 1 + logging.debug("find_camera_buttons: none found") + return False + + +def color_approx_eq_np(color1: tuple, color2: tuple, threshold=10) -> bool: + """Check if a color is equal to another color within a given value + + Args: + color1 (tuple): First RGB color to check against + color2 (tuple): Second RGB color to check against + tolerance (int, optional): How many units of R, G, or B to tolerate. Defaults to 10. + + Returns: + bool: Whether or not the colors are approximately equal to eachother + """ + # Get the absolute value of the difference between the arrays + diff = np.abs(np.array(color1) - np.array(color2)) + # Check if within threshold + return np.all(diff <= threshold) + + +def check_color_single(image, color, threshold=7) -> bool: + logging.debug("check_color_single: called") + arr = np.array(image) + + # Iterate over the y-axis + for i in range(arr.shape[0]): + # Iterate over the x-axis + for j in range(arr.shape[1]): + if color_approx_eq_np(arr[i, j], color, threshold): + logging.debug("check_color_single: colors similar, return True") return True + logging.debug("check_color_single: no similar colors found, returning False") + return False + + +def check_color_multiple(image, colors: list, threshold=7) -> bool: + logging.debug("check_color_multiple: called") + arr = np.array(image) + + # Iterate over the y-axis + for i in range(arr.shape[0]): + # Iterate over the x-axis + for j in range(arr.shape[1]): + # Get the tuple from the element + r, g, b = arr[i, j] + for color in colors: + if color_approx_eq_np(arr[i, j], color, threshold): + logging.debug("check_colored_pixels_np: colors similar, return True") + return True + logging.debug("check_colored_pixels_np: no similar colors found, returning False") + return False + + +def check_color_percentage_single(image, color: tuple, compareThreshold=7, threshold=0.05) -> bool: + logging.debug("check_color_percentage_single: called") + matching_pixels = 0 + arr = np.array(image) + + # Iterate over the y-axis + for i in range(arr.shape[0]): + # Iterate over the x-axis + for j in range(arr.shape[1]): + # Get the tuple from the element + r, g, b = arr[i, j] + if color_approx_eq_np((r, g, b), color, compareThreshold): + matching_pixels += 1 + if matching_pixels / arr.size >= threshold: + logging.debug(f"check_color_percentage_single: matching pixels > {threshold * 10 ** 2}% found") + return True + logging.debug( + f"check_color_percentage_single: not enough white pixels found for array size. numpixels: {matching_pixels/arr.size}" + ) + return False def find_exit_cam_button(w: int, bbox: list[int, int, int, int], window): @@ -397,15 +429,7 @@ def find_exit_cam_button(w: int, bbox: list[int, int, int, int], window): lowershelf = capture.crop((0, height / 2, width, height / 2 + 2)) imagesToProcess = [lowershelf] - for image in imagesToProcess: - if image.height == 0: - break - for i in range(math.ceil(image.width / 1.6)): - r, g, b = image.getpixel((i, image.height - 1)) - if color_approx_eq((r, g, b), (COLORS["COLOR_CAMERA_EXIT"])): - return True - - return False + return all(check_color_single(image, COLORS["COLOR_CAMERA_EXIT"]) for image in imagesToProcess) @check_able_to_run @@ -425,14 +449,16 @@ def send_zone_message(zone: str): "G": "Zone G (James St. to Esterfield) is now under manual signalling control.", } - winsound.Beep(600, 200) + beep = threading.Thread(target=lambda: winsound.Beep(600, 200)) + beep.start() pyperclip.copy(switch.get(zone)) @check_able_to_run def enabled_warning(): """Play a warning sound if script is enabled""" - winsound.Beep(640, 300) + beep = threading.Thread(target=lambda: winsound.Beep(640, 300)) + beep.start() if __name__ == "__main__": @@ -455,8 +481,8 @@ def enabled_warning(): colorama.init() - if update_check: + if UPDATE_CHECK_ENABLED: # TODO: remove from update_check in favor of here update_check() winsound.Beep(500, 200) - print("SG+ Successfully Initialized") + logging.info("SG+ Successfully Initialized") keyboard_wait() From 1044a04ecf4a6ec7664eddec7a2056bff2ad7d42 Mon Sep 17 00:00:00 2001 From: ElectricityMachine <47489506+ElectricityMachine@users.noreply.github.com> Date: Sat, 4 Nov 2023 22:37:42 -0400 Subject: [PATCH 8/8] Prepare for release Add GitHub actions support for ruff linting and pyinstaller Include AutoIt DLL file for ease of building Use type hints for all functions and variables Add install.bat script Update start.bat to use venvs --- .github/workflows/build.yml | 33 +++++++++++ .gitignore | 2 +- autoit/AutoItX3_x64.dll | Bin 0 -> 920688 bytes install.bat | 18 ++++++ pyproject.toml | 2 - requirements.txt | 4 +- script.py | 111 ++++++++++++++++++------------------ settings.py | 17 +++--- start.bat | 2 +- 9 files changed, 119 insertions(+), 70 deletions(-) create mode 100644 .github/workflows/build.yml create mode 100644 autoit/AutoItX3_x64.dll create mode 100644 install.bat delete mode 100644 pyproject.toml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..8f13326 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,33 @@ +name: Lint and build +on: + workflow_dispatch: + +jobs: + ruff: + name: Lint + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v4 + - uses: chartboost/ruff-action@v1 + with: + args: --output-format github + + build: + name: Build binary + runs-on: "windows-latest" + strategy: + fail-fast: false + matrix: + os: ['windows-latest'] + + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v4 + with: + python-version: 3.12 + cache: 'pip' + - run: pip install -r requirements.txt pyinstaller + - run: pyinstaller script.py --name sgplus --noconfirm --onefile --add-binary "autoit\AutoItX3_x64.dll;.\autoit\lib" --hidden-import "mouse" + - uses: actions/upload-artifact@v3 + with: + path: dist/sgplus.exe \ No newline at end of file diff --git a/.gitignore b/.gitignore index f097fa3..9d6ae82 100644 --- a/.gitignore +++ b/.gitignore @@ -162,7 +162,7 @@ cython_debug/ # VSCode .vscode/* -!.vscode/settings.json +.vscode/settings.json !.vscode/tasks.json !.vscode/launch.json !.vscode/extensions.json diff --git a/autoit/AutoItX3_x64.dll b/autoit/AutoItX3_x64.dll new file mode 100644 index 0000000000000000000000000000000000000000..ff4aea7473ed4a66557487bccb4de8c4747fa1b4 GIT binary patch literal 920688 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 z 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�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 T_BlWl+QL?_>U`?^v!DM34xgMf literal 0 HcmV?d00001 diff --git a/install.bat b/install.bat new file mode 100644 index 0000000..c571912 --- /dev/null +++ b/install.bat @@ -0,0 +1,18 @@ +@ECHO OFF +echo "This script will install SG+'s script dependencies and create a virtual environment for you." +echo "If you have not installed Python 3.12, please exit the script and install it from https://python.org" +choice /m "Have you installed Python 3.12?" +if %errorlevel% equ 1 goto confirmed +if %errorlevel% equ 2 goto request_install + +:confirmed +echo "Creating venv..." +call python -m venv .venv +echo "Installing dependencies..." +cd ..\.. +.venv\Scripts\python.exe -m pip install -r requirements.txt +PAUSE + +:request_install +echo "You have indicated you have not installed Python 3.12. Please do so, then run the script again." +PAUSE \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml deleted file mode 100644 index 6dbd43f..0000000 --- a/pyproject.toml +++ /dev/null @@ -1,2 +0,0 @@ -[tool.ruff] -line-length = 120 diff --git a/requirements.txt b/requirements.txt index 85a1ed9..ca96ea1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,10 +1,8 @@ -certifi==2023.7.22 -charset-normalizer==3.3.1 colorama==0.4.6 -idna==3.4 keyboard==0.13.5 mouse==0.7.1 mss==9.0.1 +numpy==1.26.1 Pillow==10.1.0 PyAutoIt==0.6.5 pyperclip==1.8.2 diff --git a/script.py b/script.py index da01111..5ca3629 100644 --- a/script.py +++ b/script.py @@ -8,6 +8,9 @@ import math import time +from typing import Literal + +from collections.abc import Callable import winsound import logging import autoit @@ -17,21 +20,21 @@ import pyperclip import win32gui import threading -import numpy as np -from settings import AVG_FPS, VERSION, AVG_PING, DEBUG_ENABLED, UPDATE_CHECK_ENABLED, COLORS +from numpy import array as np_array, allclose as np_allclose +from settings import AVG_FPS, VERSION, AVG_PING, DEBUG_ENABLED, UPDATE_CHECK_ENABLED, Colors from keyboard import add_hotkey, press_and_release from keyboard import wait as keyboard_wait from mss import mss -from PIL.Image import frombytes +from PIL.Image import frombytes, Image from requests import get as requests_get -logging.basicConfig(stream=sys.stdout, level=logging.DEBUG) +logging.basicConfig(stream=sys.stdout, level=logging.DEBUG if DEBUG_ENABLED else logging.INFO) enabled = True -signal_mouse_coords = None # Mouse coordinates used to return cursor to signal when exiting camera/rollback -one_frame_time = round((1000 / AVG_FPS) * 10**-3, 4) # Calculate time for 1 frame and round to 4 decimal places +signal_mouse_coords: tuple = () # Mouse coordinates used to return cursor to signal when exiting camera/rollback +one_frame_time = round((1000 / AVG_FPS) * 10**-3, 4) -def update_check(): +def update_check() -> None: logging.debug("update_check: called") """Fetch the latest release version from the GitHub repo and inform the user if an update is available""" # TODO: Implement better version check functionality instead of just difference in strings @@ -44,10 +47,9 @@ def update_check(): if VERSION != data["tag_name"]: print(f"{colorama.Fore.RED}NOTICE: A new update is available for SG+!") print( - colorama.Fore.RED - + "It is always recommended to update to the latest version. To do so, go to https://github.com/ElectricityMachine/SCR-SGPlus" + "It is always recommended to update to the latest version. To do so, go to https://github.com/ElectricityMachine/SCR-SGPlus" ) - print(f'{colorama.Fore.RED}and follow the instructions under "Installation"') + print('and follow the instructions under "Installation"') print(colorama.Fore.WHITE) @@ -74,9 +76,9 @@ def screen_grab(x: int, y: int, width: int, height: int): return frombytes("RGB", im.size, im.bgra, "raw", "BGRX") -def mouseclick_left() -> None: - mouse.press("left") - mouse.release("left") +def mouse_click(button: Literal["left", "right"]) -> None: + mouse.press(button) + mouse.release(button) def move_mouse(x: int, y: int, speed=1): @@ -88,7 +90,7 @@ def sleep_frames(frames: int, minwait=0) -> None: time.sleep(max((frames * one_frame_time), minwait)) -def check_able_to_run(callback): +def check_able_to_run(callback: Callable) -> None | Callable: logging.debug("check_able_to_run: called") def wrapper(*args): @@ -108,14 +110,14 @@ def wrapper(*args): @check_able_to_run -def click_signal(sig: str): +def click_signal(sig: str) -> None: logging.debug("click_signal: called") coord = mouse.get_position() - mouseclick_left() - time.sleep(one_frame_time * 3) + mouse_click("left") + time.sleep(one_frame_time * 2) if scan_for_dialog("signal", coord[0], coord[1]): logging.debug("click_signal: scan_for_dialog returned true") - time.sleep(one_frame_time * 2) + time.sleep(one_frame_time * 3) press_and_release(sig) time.sleep(AVG_PING / 4_000) press_and_release("backspace") @@ -125,7 +127,7 @@ def click_signal(sig: str): def click_rollback() -> None: logging.debug("click_rollback: called") mousex, mousey = mouse.get_position() - mouseclick_left() + mouse_click("left") sleep_frames(2) if scan_for_dialog("exitcamera"): logging.debug("click_rollback: scan_for_dialog(exitcamera) returned true") @@ -151,11 +153,11 @@ def click_rollback() -> None: rollback_y = 0.69518 * window_height rollback_position = win32gui.ClientToScreen(window, (int(rollback_x), int(rollback_y))) - move_mouse(x=rollback_position[0], y=rollback_position[1], speed=2) - mouseclick_left() + move_mouse(x=rollback_position[0], y=rollback_position[1], speed=1) + mouse_click("left") sleep_frames(3) press_and_release("backspace, backspace") - move_mouse(mousex, mousey, speed=1) + move_mouse(mousex, mousey, speed=0) return @@ -172,7 +174,7 @@ def click_camera() -> None: return logging.debug("click_camera: exitcamera dialog not found, executing main body") signal_mouse_coords = mouse.get_position() - mouseclick_left() + mouse_click("left") sleep_frames(2) if scan_for_dialog("signal"): logging.debug("click_camera: signal scan_for_dialog found") @@ -206,7 +208,7 @@ def click_camera() -> None: sleep_frames(1) move_mouse(x=camera_position[0], y=camera_position[1], speed=2) - mouseclick_left() + mouse_click("left") return @@ -227,15 +229,14 @@ def toggle_disable() -> None: beep.start() -@check_able_to_run -def scan_for_dialog(type: str, mousex=0, mousey=0): +def scan_for_dialog(type: str, mousex=0, mousey=0) -> bool | int | bool: logging.debug("scan_for_dialog: called") if mousex is mousey and mousex == 0: mousex, mousey = mouse.get_position() window = win32gui.GetForegroundWindow() rect = win32gui.GetClientRect(window) - bbox = [rect[0], rect[1], rect[2] - rect[0], rect[3] - rect[1]] + bbox = (rect[0], rect[1], rect[2] - rect[0], rect[3] - rect[1]) _x = bbox[0] _y = bbox[1] w = bbox[2] @@ -249,13 +250,15 @@ def scan_for_dialog(type: str, mousex=0, mousey=0): elif type == "viewcamera": return find_camera_buttons(h, w, window) + return False + def find_uncontrolled_sig_dialog(h: int, mousex: int, mousey: int) -> bool: logging.debug("find_uncontrolled_sig_dialog: called") dialogbox_height = math.ceil(h * 0.125) dialogbox_width = math.ceil(dialogbox_height * 2) - dialogbox_x = mousex - dialogbox_width / 2 - dialogbox_y = mousey - dialogbox_height + dialogbox_x = math.floor(mousex - dialogbox_width / 2) + dialogbox_y = math.floor(mousey - dialogbox_height) capture = screen_grab(dialogbox_x, dialogbox_y, dialogbox_width, dialogbox_height * 2).convert("RGB") w, h = capture.size @@ -271,7 +274,7 @@ def find_uncontrolled_sig_dialog(h: int, mousex: int, mousey: int) -> bool: for image in imagesToProcess: logging.debug("find_uncontrolled_sig_dialog: iterating images") - if check_color_percentage_single(image, COLORS["COLOR_DIALOG_WHITE"]): + if check_color_percentage_single(image, Colors.COLOR_DIALOG_WHITE): logging.debug("find_uncontrolled_sig_dialog: image loop: numpy white pixels returned success") return True logging.debug("find_uncontrolled_sig_dialog: return false path") @@ -282,8 +285,8 @@ def find_controlled_sig_dialog(h: int, mousex: int, mousey: int) -> bool: logging.debug("find_controlled_sig: called") dialogbox_height = math.ceil(h * 0.125) dialogbox_width = math.ceil(dialogbox_height * 2) - dialogbox_x = mousex - dialogbox_width / 2 - dialogbox_y = mousey - dialogbox_height + dialogbox_x = math.floor(mousex - dialogbox_width / 2) + dialogbox_y = math.floor(mousey - dialogbox_height) capture = screen_grab(dialogbox_x, dialogbox_y, dialogbox_width, dialogbox_height * 2).convert("RGB") w, h = capture.size @@ -296,15 +299,15 @@ def find_controlled_sig_dialog(h: int, mousex: int, mousey: int) -> bool: imagesToProcess = [lowershelf, uppershelf] logging.debug("find_controlled_sig_dialog: made it to generator") result = any( - check_color_percentage_single(image, COLORS["COLOR_DIALOG_WHITE"], threshold=0.01) - and check_color_multiple(image, COLORS["COLOR_DIALOG_BUTTONS"]) + check_color_percentage_single(image, Colors.COLOR_DIALOG_WHITE, threshold=0.01) + and check_color_multiple(image, Colors.COLOR_DIALOG_BUTTONS) for image in imagesToProcess ) # this doesn't run if check for white pixels is false. must change TODO logging.debug(f"find_controlled_sig_dialog: result: {result}") return result -def find_camera_buttons(h: int, w: int, window): +def find_camera_buttons(h: int, w: int, windowID: int): logging.debug("find_camera_button: called") zone_screen_height, zone_screen_width, zone_screen_x = calculate_zone_screen(w, h) @@ -313,7 +316,7 @@ def find_camera_buttons(h: int, w: int, window): camerabutton_x = zone_screen_width * 0.79760 + zone_screen_x camerabutton_y = h * 0.80629 - screen_cords = win32gui.ClientToScreen(window, (int(camerabutton_x), int(camerabutton_y))) + screen_cords = win32gui.ClientToScreen(windowID, (int(camerabutton_x), int(camerabutton_y))) capture = screen_grab( screen_cords[0], screen_cords[1], @@ -326,7 +329,7 @@ def find_camera_buttons(h: int, w: int, window): imagesToProcess = [uppershelf, lowershelf] for image in imagesToProcess: - if check_color_single(image, COLORS["VIEW_CAMERA_BUTTON"]): + if check_color_single(image, Colors.COLOR_VIEWCAMERA): logging.debug( f"View camera button found. We got {0 if image==imagesToProcess[0] else 1} (0=upper, 1=lower)" ) @@ -347,56 +350,55 @@ def color_approx_eq_np(color1: tuple, color2: tuple, threshold=10) -> bool: bool: Whether or not the colors are approximately equal to eachother """ # Get the absolute value of the difference between the arrays - diff = np.abs(np.array(color1) - np.array(color2)) - # Check if within threshold - return np.all(diff <= threshold) + return np_allclose(color1, color2, atol=threshold) -def check_color_single(image, color, threshold=7) -> bool: +def check_color_single(image: Image, color, threshold=7) -> bool: logging.debug("check_color_single: called") - arr = np.array(image) + arr = np_array(image) # Iterate over the y-axis for i in range(arr.shape[0]): # Iterate over the x-axis for j in range(arr.shape[1]): - if color_approx_eq_np(arr[i, j], color, threshold): + col_to_compare = arr[i, j] + if color_approx_eq_np(col_to_compare, color, threshold): logging.debug("check_color_single: colors similar, return True") return True logging.debug("check_color_single: no similar colors found, returning False") return False -def check_color_multiple(image, colors: list, threshold=7) -> bool: +def check_color_multiple(image: Image, colors: list, threshold=7) -> bool: logging.debug("check_color_multiple: called") - arr = np.array(image) + arr = np_array(image) # Iterate over the y-axis for i in range(arr.shape[0]): # Iterate over the x-axis for j in range(arr.shape[1]): # Get the tuple from the element - r, g, b = arr[i, j] + col_to_compare = arr[i, j] for color in colors: - if color_approx_eq_np(arr[i, j], color, threshold): + if color_approx_eq_np(col_to_compare, color, threshold): logging.debug("check_colored_pixels_np: colors similar, return True") return True logging.debug("check_colored_pixels_np: no similar colors found, returning False") return False -def check_color_percentage_single(image, color: tuple, compareThreshold=7, threshold=0.05) -> bool: +def check_color_percentage_single(image: Image, color: tuple, compareThreshold=7, threshold=0.05) -> bool: logging.debug("check_color_percentage_single: called") matching_pixels = 0 - arr = np.array(image) + arr = np_array(image) # Iterate over the y-axis for i in range(arr.shape[0]): # Iterate over the x-axis for j in range(arr.shape[1]): # Get the tuple from the element - r, g, b = arr[i, j] - if color_approx_eq_np((r, g, b), color, compareThreshold): + col_to_compare = arr[i, j] + if color_approx_eq_np(col_to_compare, color, compareThreshold): matching_pixels += 1 if matching_pixels / arr.size >= threshold: logging.debug(f"check_color_percentage_single: matching pixels > {threshold * 10 ** 2}% found") @@ -407,7 +409,7 @@ def check_color_percentage_single(image, color: tuple, compareThreshold=7, thres return False -def find_exit_cam_button(w: int, bbox: list[int, int, int, int], window): +def find_exit_cam_button(w: int, bbox: tuple[int, int, int, int], window): logging.debug("find_exit_cam_button") camera_controls_width = 283 camera_controls_x = math.ceil(w / 2 - camera_controls_width / 2) @@ -429,11 +431,11 @@ def find_exit_cam_button(w: int, bbox: list[int, int, int, int], window): lowershelf = capture.crop((0, height / 2, width, height / 2 + 2)) imagesToProcess = [lowershelf] - return all(check_color_single(image, COLORS["COLOR_CAMERA_EXIT"]) for image in imagesToProcess) + return all(check_color_single(image, Colors.COLOR_CAMERA_EXIT) for image in imagesToProcess) @check_able_to_run -def send_zone_message(zone: str): +def send_zone_message(zone: str) -> None: """Copy a Zone opening message to the user's clipboard and sound an audible tone Args: @@ -485,4 +487,5 @@ def enabled_warning(): update_check() winsound.Beep(500, 200) logging.info("SG+ Successfully Initialized") + keyboard_wait() diff --git a/settings.py b/settings.py index 814d391..f31f2b5 100644 --- a/settings.py +++ b/settings.py @@ -5,18 +5,17 @@ UPDATE_CHECK_ENABLED = False # If true, will run check_for_update() on startup -COLORS = { - "COLOR_DIALOG_BUTTONS": [ +class Colors: + COLOR_DIALOG_BUTTONS = [ (0, 201, 0), # Lit Green (204, 153, 0), # Lit Yellow (213, 0, 0), # Lit Red (0, 94, 0), # Unlit Green (96, 60, 0), # Unlit Yellow (99, 0, 0), # Unlit Red - ], - "COLOR_MORE": (92, 89, 89), # Color of gray button w/ 3 dots - "COLOR_MENU": (194, 186, 189), # Side menu main color - "COLOR_CAMERA_EXIT": (255, 255, 255), # White "X" on the close button in camera view - "COLOR_DIALOG_WHITE": (227, 218, 218), # White elements in the signal dialog - "COLOR_VIEWCAMERA": (147, 0, 207), # Purple "View Camera" button -} + ] + COLOR_MORE = (92, 89, 89) # Color of gray button w/ 3 dots + COLOR_MENU = (194, 186, 189) # Side menu main color + COLOR_CAMERA_EXIT = (255, 255, 255) # White X on the close button in camera view + COLOR_DIALOG_WHITE = (227, 218, 218) # White elements in the signal dialog + COLOR_VIEWCAMERA = (147, 0, 207) # Purple View Camera button diff --git a/start.bat b/start.bat index f4ec515..c77826e 100644 --- a/start.bat +++ b/start.bat @@ -1 +1 @@ -python script.py \ No newline at end of file +.venv\Scripts\python.exe script.py \ No newline at end of file

_RJ<|vPa^HH+>X<# zG7>x1U4j}whViuh8=Y(K8dbJ7@cFTKu4eQcI`tkKx-e5`)c#5y&MoqqPg#5HaXd0) zi=<37WcvOvJxchvg?{ZF*UDfK#bAw==YQZ=$f{FO*;-eKOtl#JsN9pWKBTXJHnch zYIjAuvQ0b1S6cjLm=Y8=u(!TkES|J+yQ05fK4?q5rRT$kE!(vKM!%$$D?|M=v~eq= zA8bUFiDvqo@^hkaZ%p^e+BjNGw#ZP&?UbFBq+E!h{CiI1%yVvQs9lur= z5|5dGJ|1rgiay6pxI}M0-RsPsppxtm-q%@pk@BoY#=;}%VZoKLQ~pRiWF~{Af=8k~ zpu#LXROodUu0NC1_hqTng>gJqaGM0*`(sj9mxpV#n_)udbxo}CXm{cJqG%8K3GLjg zeZ03u+f=wt`A0zB4!O(PmP_OtQ?{ zLDH>cD|%hU&B(8}(h#Q7wMyIrR@_0t-pAj;-x~6bA3!*5Y`j6LnfXszRFFf9W=V?* zMpOKZ4@gGxSyWjtr5!Mn?hxTE_`CTw@r?o!$6(@QwVz;=II>i_8C~R~O6l#4FZf0U z8|IMV+R_OG_3%e@0Vhd`{16vyE7-~3E-Kl=pY(zL&D=xSTcnn@(;#Vofi!bB?!CCD zM5al@SjwwN-7UykB`|LwSi5IfmJHhIQ|=YtqK~0@d$f-~@rDXF&5?mBdV6kG2ACmm zFI=n&nz^<{yK9@#5yUPP8&TLn@2f{vH>qb_ZPsabuYAVf~(MeMY zpK*XcXiULahl&%LGV^0-;gV~mne>3Z3QeB1jYLu*{eueH6tZB-8-R=~iWbIp0eiDp*zYIG^g0Ru;3VxICIGOx%wouB6qM&l+<(ZmsU$Ks|OF`*P&RN|H3k zNSeH&St_Y4hFQ1_&DBWU$tuvw@5HUuz0AHF&2xN@2F1>xoaB5>mDg0J${Um_@9zZI z<-I3yC9PWh@ie2x(041Vi{dLrmme~@CEhGFe`f9cBY`Y50U33x7_$ev+XvGgt#=DBj zaQ5n7szehplB`y1S2Pzv^~ui$tjMXb+H^PZ<_|+=R;pnX0Fx(?9Eo(rLtjlNtTzI;n(H zh5#u!{zpsuwxkV6+8?DFluR!p=PWu+>epNwd?$m&Cs>}2YV6BO3OmTmsNw6v_qyfV z07?xd+0kmdQEDrc+IsdYdJl0-&p(=exg_}48WOB0LGu@ISjGG@Ir|6%4N{c|1h=t@ zg40s2R`;5C%>1+PSaY-t7mL$n@{z?!tMjnhGe;+>^am`Dq}S@6LpmUHE*>lMA>OCM zBv}a=g}d=sgU}+u_no0q7j8@iFO%SVUm7Ib@T3c{vk;f%3q3?RU-@s z(7bonhbtCd1yA4HGcLB`_gBHw<2um1cg8BdYxxtN-hBm0yJl@{{-PlN6e;YBnc?Q` zGq$YwF!tyCTmqD1C&eqryGe(PrwVymIePxwK?&n8z(f5RS4(8uGqDv5Z-<3n@%u|z zsHw1{dHbx5L@ajV?t@deGa zcy?-nXD6tKzk~ST*_$`b`mlM^%q{$FZEl*mgMRFx;J4_@`}}=Cw>$7hnmcCgZtj?| zS7A>Tsiqu*rHtayf&P?_&jI@PY=z8-FDkx8e;3~uibp@^IstRhgdfqm&p%$Z;=|pq zJGPUkxu+L{-n@5a{$>?8&SK8#$Xfp1rT%tW>sU)9%(Q^d@eXch{uq9h_gx&qRx8g2 zJT`xw_QPl^&w;U2`^C)06_ML#p4ue8gHUVbUq|qY$fYpd^mz4($UK;C>9_AZ7;VMC z`Y$IN+;(%1u*%InHn)xADBO0MJ^&BLVhXqTZ8AH4j>5_+B)&Y!Z%e8llFH_{FCdA( zuy=j&U!?hM=2{I2Y_|JL`0d`AW9Kll?EC`A5vdl$iilAZKS`h9r(>v=EPi_pllidq zfcVPNWc+hS#>?#bH3^#IvkLE*Z_l_L&9O~|rMP7RcQ&tu-)>&}`S_tS5}(6wUj)08 zqNfn&4RE#=U3dvl@1&cfd*&mM~{apJLv*%>NWEY<<4@Y`3w z)~NMP_{U=;9sD03i+{|*W%G|GOPtL=N_kqH*rdk(c(51$*mZ)+KUyUfW~-3^o8S9H z;_Uoi;MVH=Fl#cj0+-nLDJMCeYP}PFG+>ptN@bPu=Hjx;dqf4oKb}T0E4KB(KXT7$ zl7IYxB<#aKo+Ih=ifZ{-19cKEdlkJ%;)H)ZGga1_Ui>UA>0zhHg5XYETAlE3KzS+| zwL0M+6*!CeWr^aqFqatCv3gQRPi+HGcc}su|3Z0xPL=nhDsO-_y02Klihta!BGUZh zZzax|e~$#;djsiXb^O@;<4i(j7#08M#iRJgavTH+|7hU!4;MIvt%&;&Lw8cOElQ`c*7TwRp;RLp_oyJ@^h@V=ybbODM<#?)5C@lQtbcxB! z{|z4t80X=#hxuBS%jPddpDpVvYmyMh*k;8btNJ0Qj$+cr+Eo~;J>hphKHe%4e)0>P zNAQy?lku*iO*oInPrgVvjXPkcbQb;rm)*D)iThH1QkU5JqDT1%KRJnSpHZVDUC|XQ z8K~hFuP!7oIiFNFV+Vy%?!`}@L>U%{M&q(uq3RKS@`%zw=D!w!4d0haUQkSTvizf^ zt&_CnlD0m@peNH?{N!d*r1;6TmdEBNZ&$t~Klu~OC;Vh1&ZE_K9O2RCW@y^g9*7M3*+4$;eHOd>=i*(#ToZK=e{=l~L zh(Md|H653zaBQPGRnEYN=ape$-ReB?+T_FH*mm4g$l-m*3fmiuD> zm(AUI)!GHE?3wyBk30*^L#&?MYD{2uixOQ-ZH-`l{R0lR5tHXHig^VmdK#@~3joo> z$7L(6iNf6*GYMFe=pv-QvPF=q6Rq9Sz>4DUTl+x8buk6+V zE{sWTWyd(-Ycm1~hkuYaSd|;P;6SXOl%Pz*dL+B~<6I*+FV~!t6F8KMy^e$hA`>Y6 zew=aMTgRd#5TWRH|K5canDd3rc?DYCVqzCoa6~=qyJcYoS7wEMH47`q6ZT!cu;Kyv zx)xSEDBtph6}*8O_MNz};-xIULl#!N%-8?zmT3i)mk~c7ha7f~Pr*?yj)^!L#8HN$ zP8=uVSSXH>IPMll0giw;`r}xHLlC9#&GnfX=A{M8+1bcQyvOrh@gamu=M#lbN!(ir zj4*zj%QL7J8ks3Wg47tAg_S?~^0`z*+|lNeLxq3YTuO|sek)VPn&x1;nS5(tgTZke z=E=ZB;aK90KnZ{9)reK>S1;@lbP)^oqon`$>ci4waxpGZxS3#V^&SpW&N$F+g%O;= z5YGX*ZXMwb&MDSqL#~*Mdga6er+~u#3(MOQg-fJ3@Mg;L>hHpGR_6N4jcbg_oKjd= zIo-`=x~0qV;InEf^%4G&f#otNgXb4izR-=s$0@0|qMcxt97@TE{)*@I?ysHlO31;A zUjKK3^yHPb_c$IV6w_O_*QTudF;nb4s7~mjsVyc|5<#|Ib2q7KcydoEO+gD^eB`+g-`Tf#o$M% z@CR1VcO+;VLD~|>aA^*gsJdDfI|ky8_lxd4fkLdF6w?zf{1_np8%;kTUdsAJEHyAZ zsq$iiVp*RgX_2`hdeLvhX52UKI>XEvJDXhQ{jc#G*^#@iG1EUJQMhLfE#r=-pnT%aT-AyXvDkC(Eq;ejJ5fc-dbCy{HmFeGOT%$8kk%bj% zptdi!2Fe)WUmsXz4b+;zG8w3h6kbqf^r>H~b`DRsvsSe;n!B&FRBqV@f70}s`?f0( zAvwQe_5jLr(FaPaK34eVJ6RpovBMLEvpb}%ijwoFIF$Tk)New_tz=+)zeHiVN+j@9 zQ;(t5c_1}r2oE02_nWK_@=^iSxG;%|O(0yx9#3Yh1P^dZ=Hbftgz1(R&ajb3r z8`L~ySKM0LQfnfsn^EZ)PFnv^qpRIh-f092`{PwTj_zhtTFS*F=na_MWF48Y=kXb4 zd+d&H3$1C7`Rwma@)bDAJ>OR_z06N(!i12HspM|KI!66 z4qJU)sz`a}%q}rHno{Jnhkvx`u1d599rryf5Ctb3LFL+F?#Cc1ba@3eGaWjje|rlo z-USiqXPDI$@iVBIa3*h~Q8|evDpbWQh!LZ*!vC*ezD^nDeu)kiR!Vun>WXOb#R5yK zv|+fh31`C1W@Oa$z~8@`tM0!B)??|}t72Up91;D=uN17u2xLP=(+&r77B>tT=2=}2 z*C!;UPWF!FbI$wWpkhj!U=2o5gS*`O#zg&)9wdBMq?V)C_>58A@ zN%R-qrGG>AVjdT4(cUO07|ecXqp}(tdRRP>Vt6W7+xwrdsy$Tf>&Nc^|I<>)fRz^{ zGU6Po>!><&U#$}fmmP$RT4%A(QR^JwcSwc1RX7|S)>`{~{XM~RrE#7_PU$PsVl4k8 zSt4BPoaLj86a8n@HTtn--RH}zy*=|ptB?WZ>j&fiTb3u#QBsrftlRp}C8npo-kmul!adR>zr)JXX9@&6#pE@~hlE^{-()xvNMO(3s?eYrL6V1+cC zzA#`rq$>oUPFnvU)%H?pyH7o3RAA+>yGjmeVr;G&3MontPOyuLeM=45I$yRCJd@VS z=oHAnj1Vq@$#QM!I9)7^2J#gUk;0Bz9R0vzH!1^Xm7Md z2fZtEG|5e^TE#?A1#pTSqqXf!B?(*!=tA>a4_+vTKg)ZKfCW>B6d2| zEBYMEGRxn@MTc=2qgJTpZxvjx;xf8${0Cgd0dx~bavAc1y1o1jiT>t(d->y@s3)1U zU&d;P0!FbK!xXCl$8$1m2|9}SjWgJ37ULpxFp9-MK>)w73&{k|Ls*9BN4U*Ham4qp z;5s_)72#d67{S6uJke)+74ds1LY+S7%W`}*&oMmu0lVWDcU!dIEG7 zS!htST$Y2N<6a36p+$HTE6vYRX|A-=%2v;2qUyuwpF5bwsX3V{=L<$VUCux7+2#BqS=qZJs)&bYo|({j%XWS3&^&t zby!_`vaV^-8@Z|Xh-!j@&b_M{VO2B0s^&(!njaos4LXeYsM^n`uk>kv8d`wNCZ(nRcD64ViUe|5gKg>sNAtUNoi}uSC_GINhyR zobCI85m-&OX1!wKX_Bp3uRV8)?<_@}4RdvLiOSLqM0{hbg?D~O#=G79CMW>>P`KiIrpgB4wt=MovIgLFzxgQ&D)W-lXSXW9&Y@@_1PV!gX6hTobtE zhR-+v+M#x+rJtSyCjQxvGwNL_Vg8D!>|@=c}Vltv&?_$nok{S4tc zI-&zMDagNZu2jDgrS7@t=H|hu2t%iEP~No_`V`XKp&+O_a1qHRmo!+^I(DPaCl`$#Z#8-r@*e0i zpjV^)_gM`FxFX#!S*!;CV+sxaF%33{!imO?Bj>7BmV3BzSBw0r;vO9=acTb*4GO1V zYb|n7i>SN3C@OFrjF;oh8E&-6D!AYaz7OL5Zue;`$4( zV8ttXPg+E_P^M6fs7518}w!)PyZiPaA zG*=VUZQ4nc%@v%H9EQ^4@t&p^$w+WZlw9g8U81lgU98BlfltAL*}G`=>?r4SjICDs zDog-4dY34C2`yNv%){glC0~Rbl|Q#+isbhc+n@ZNVf#;zuc+Go(><^MCeN3_yLWi3 zt5MM%`Aza6vZoMzZ&IIeRI(HDQ>;JsXV9tG1=d&LM<~A%gR|&Mf*PUxv&6kZv6NQ$ z{V<&{KVu0O%!#cKf5_p$FLIdmwfL<8k_L)9DEj0+5(ORIw_2I(@fW`B0|`=TnyfUd zdZmf&CrsLRmDN5>>@%A#rInB!SLyZG=gCE(D3;dCCY|5}=gd4PFQHhSi|qB$EWGW~ zFWtXskG)n2XoOD7Ls`XYH$^28R-+w~w1+Izi#B{>!HuIv#|MoD}sn`6s3P_zi zhTwb5o@%lUjQ&yz^05Ax1#<9mfD!0O#Huo>**t60cN`c~tmHB|WR*ik`6Ldg$sPws z=IQ2Uqx`$MY&%L5iw$na;+)?>?VitBHoWF1k_hegUWu*HUuQkwvWeAtYP)wOmpZ{5 zNLJ^Txr2<#Y=2ffj(gsP(gcp5`dA{@M3+{mrc9?P=1LmEQ>l~#(d}wC%HLHDr~!)bRp7C%{9tb zvc+7@C2S6lbES^~+$L}w2k7L>!Khs_uqcjsB8>r#jfSSnN#(`#wS1GQMa{<<5*8`0 z4HT~FR>?O}*%(={SY% z9Bt2UhzkF*JwKbinpxKMQkKp}HdLEdCBqK?CiOaf=5pRSedn^^Zg2iC`7}3bSLj*! zXRyGAS%HSoFWa24gTT!&&tXgChts7S3vxZ>yFBIHZce*1jvP0UaRmQD=i9i3fe*O$ zPtZ+&vkEtd&*5=-OU~Xd3G8H1J2dwPM&+?S7QQhQ;VEadjuo_(ZLCT-j|9)eId*;9 zf%#XzUR9X|URi{v=2n+?vJ>M0-vk@p5o}oDd$`)%;W77k&8^&U6~D&_97+hjz7_3% zwlvA{JIX^)Pzc*CFKafeF}hZJ%A>L=9z2B*<+uTKwOs{}%QSnVm~0l{Ug)w4W})&? z=x0hNdNh5u02bMz$1q38o7D=icQc)7(;#WnYXT?3ECbKI=0&+OKg_ENXjpYQbDI{f z7xeGqS!)iPv`E^r50+)XOB<0dFqnXxePL)9bnEP|Z8frSySkaHbH}&|XjR7-S4Xd^ z72cZp5$&0%6xIH5M(Fk&eVNEHcA9fiY2LBYXmyt`e`w})7dzm?2W+GR)?lVxjnQPLN?tKx~PEfjOeSVUZ6q36d~bppc+ZUpTkszrs)MJTm7i-3t#s3 zUBkd1Z+UxlFt<8r$RCIet>dm7cJ{q&K3dz3RczxC;EuA72X?r*=EJ><3$vrkl-w4& ze5(IYtVmu_o^Lw(6zYLIBvG4wwg9}$u>oxo51Vk?r8XU^^h}*!;-4Tk2 zN=o??J|g-YYqlMc3{S$f@RN&Dy(!sP#ttA8bHs+DfftJ_G zcMsx?Jq|~sY3gncuI-d-V9OwA8;n3pe=g!QB0Hf(?H=udL$bRB7|TU9$>C|%_aD71 z>$?(X5?o@j)4$D@Xj0}gY-ETuX5GV~_$$#}6e#{GDIc}_iVf2#r3(|1C>$cCz6Udy zX9-H1EQmnZl0^ z(SDMUn=?WVc~r~@{9L7-%G~(w2x;GeYjI}uIdC|+>%9LK*>$!G_CiFM%s=0BT|~LNL!LQ zDQAfPdvfPQqSf~uKz6ZVMf$gUUahtNd0t5zvi@-~!C3Cu$e7a2&n;o0=}rn*inc4) z6Nu){*DekX;s%pWPf5g6-{e~(_IRVh2>Xi8#bEW5x*H2!*}}n8X6Z(`gFrN}7cR>H zZ}81yrE%n3=peF<`|FH&S$U!c>Wdu)oNJ9@;JH7sD)jA4uH{M;zVH_Xr`NQl2)f$R z4lYw+rK%9r`2G<(Okh9VbIk^J%tf0J##IHysRpY2^r?QW}RY^4RbZ?%s2yYEnQPwbad)Z1+~SN0=3EYGQH-|jOmJBZjb%x zR7rPqnWz=3zWYU$28(3|g$ozVJiZsj9m>qQ0{jq@t$xv2lyyIn(?{g9h=l5{B{v;K z=DOZ0Uoj7c31NUe91#5l$RMTs_OMcH{mW6xDem3Qh0@Mli401Zbyx{s*3YeI=IEy; znx_HL!FK(}AC{Z?ze;Xc`VHj^c|HmF%Vxz_miKL0c)vlqPtxUmnM{!k|0+2oDSz}$ zd!)RQOqX2WHzW$r`g3N62!pB3%2b?y^MY@I3~9ZRvMY)IQQ46|@l*TD@Mq8dg4xLT zf8;ClNak}N)GO+RdN8DpP3K#v=ZJ1QMQQ=6YcPOW*p<7GXso4Dl}a0lwCb-E zb^#SNbQ8^T-IiagwGV&Q*4o-?TW$N3hgS0t2%x-t5Tq)g)>#)TiiW4`|9fWcJ`w`u z-(UG?_TIVkJagvEne!U{L9CMBR=B!@S~$>YHnPYW4m>2l z$q4&|eRRI><##9f4y=&c!@kX7-)qc>=VoD_d^;IGqm5-UZd>Y;v5)rYv3DfLPI}td zX?c1{YWy8MI^$<+rw(WQsuKqbK)f0F(uwJ`T0KbpltiIwdOTX@1*JMeFej!TNLxWSSbD1Doq;P`twxX4-7s9(ta@y5kkAJShf+_JbLoGSS|7!Ns&VQnkBgDaYps!jpi!s4(`Bt?v3y7nciZ!}%t+g0# z=PxEN+@$)9obWAdSQ}KcEF}Bz*d6#M=rhc<^pCp(j@kcGJaN1*``6gS=8vYjv7L5@ zG@q}gNb_8UObP4wnHbqQS|%Nt}7MjMK} zUl`fDe{?jSdq6Ow#FZ7n=PesUk(Q^}gw_^BfyEeTUf_H8U_uz525B`v*Fq zBHvSsB4QwfV3u?cuApD&_JWL{OFe}q+X_Eo%Iye1n>VODNz*+ue1e^S2BiQ;P`o6f zm)xl7bBn{H;|D&`%+>ko3_clMbzrES{~qb6NoVTB4Qj9!VQ)~cj3AR<>@xqtr&q_z+WqHFv$Y^#Z(v@Z|4UnDR{6)momU#0kV^~ThZlanF~JLyMGL7ba}Af-$(M92#=nZarAY5RTD{P&u4M!;n5@X$&@W{; zA1C{NOnV3Yb_Z&ND%0L%77BY1NAVx(r2|7XwT}oNCl^`vWH!crC^I#WqYj-W{g{Rf zD3eKXH~dAGsLqEs(7M3rs)%bW;O9_^Z6iUr2V|DE1`%GhWN{wd0|n`)jmGbD1#cAS zpGH|4&&8YDw0x?{(Cd}H^iglM>&m5fo!^rYWd&z;x|U8NMr80SiOxpyFQO{74ym$b zyUx+oHil z`UurmiQ^F9Hs_W;>haZ5zMrZ-ru>Qc`A1HY|CTE;n9YC5&p(#ZD`@*b{J6e?6)4BY zLD3C-gGRLqy>oO2qV+1V!XBoW6C@8sBHsx27cD|n*k2%g+sWif@ble&6YX?QPrN6- zAMZD@?zGOa_AF*5wO@4kHsu80O1pkb-;a*>Ec>{e3Hn4gwgE0p*R?9I1|yJFGuXAw z&Yd?*kfmcRny20t4gt+Wc}KYOW!~k?K1Uyp#j6Ftasp*C=1LN5D{4lPSVsbQdkVrL zz22u3$wQ^#cfG}Pc$upv=muQYUGcoIV6Li35mUzUup~p4aZg0_kmP?Jhrd z?JgX5GHZ9`^|GvF;j(`Dd#ba1m6t{2EUn?J2a_kcc4u|EHnQtv2Cq%6-33&o@^vxS zw{^9NwOhq5ZPxCG<<8oDiw8r~oJO91DcRmL;B}JTF>&9mXX5z%oBRsS^ZblFC+5~8 zloeQ#?sM`^aDIg+bn-crlzdXo;qAKr8h#I+?|Ar>p56s-e=tOPowSGO@@@VJzFph( zo2F4o-Vb~_C^G+3X%GOABxaG@|)N{`eU}`p$ zs}jDNiR1?wBFB{5h&R9v?Bett`-8E;K(l}_S`2H{@>;DJcj)^6d<{8YrQzcu6JET8 z85=iY8Hs_?l{wN($K9H4iih3pB&!0M!?5c%o=t{+_n4U!*-R0CJD0g(OdYL5 zVf7Imn{7oxOc{p#C4nKtZdtbpN+pT~N*wq-=X>++-9dkLx{o*(ExV!h!aZzCs-t??kPjhne|3qEVc!YbJ z<5(P4Xjj{O=}4&Jg5ZT!k;z$gKAddNUBv>Wli!z4dLvWg>a&>wcz5GL8Jsu#!dZNX zwR-H2IZOS$Q&_4E%8TKZ-ilX{sVZ{uWV|LO5~cqFrnk}^`jr$7#V>F-prB$)Z;wo` z)DfgNsvqmx1GA%l;tO}E2hW!x^XHTO#=vd#qu!Jtdu00M>SmMuOVI~)_N*W({{sc{ zy>)P+xLm|X5&zlrUHrA}Ha!}3p)M7?T{5^Evf1y*&js9UXk1~D6<-~dpbdyz1m=)e zu@VF3vjpa%M!iwY6sr(@iVvE`w<+HM?%fkF>M3z(Pl>sb$Un2zIJQrLOZM9J!e8L2 zUcWo5^UWdaLWkplFG0!2ap`cNh>Ph1h3b4J+}wJg=Fj><`WzdImBkma98ah{%Ny2J z#CnJF)i@Z?hzExa$JbW#xDtQ)DL}{4bT>RE4@8b`KsB79(GNwPH)7rGF39q@`)9Zd zrWWvP6}Sr~74cA6L`s>Yl#x;?DV3zuNJ*v}`(plgtGx*2& z*Z9MgHKA`5WT;n>5itVcIe^uYJvAU79M;GGetGNvVM<6g4Yo`q3aDTt9O0HCV;T!s19%&10T;+5w zze*awM4l>MA$-shebXRa`DBdKmBupiSK0q7GziTT5;IH41k_`O*nh}{gqk9b6p9#; z%+l7EOv0)Fq$Far?oi$>&)q6cbHTnH6c06(%B`@~X%atx`$E$kAMT zsY1sPk_+L`I5X}Vb?J3x@#>I$q01)+%j(80%nF_li#%wbtX*X9o76avN|tyHRfvmK zHutP>gIQFoM8%}W-Y0}7z6Q#Xw-8g=B}WCi^Q$1wetUIw>1y}#Tw$~`O4kdc-E0_b zP>k~@jlfI@Aunw{UbZ{QrVd{xhLDg-uYItgS#u{iUaeKbkm^8S@8Skd;bLZq-(9)> z?6n%TK(Gv5cR=SPYD- zxM78>!{r;mQ}G!ZA`MUQ9=(#@nMQ$C^efT~u^9Q{(H_*&VA-mif{Y@uI$C$N?nbUK zv-BFT_xnIOCIjUNgZesK+6GU!H}FXI@rN`PKJF)_yh1fKS zCZ_dswj^pYDSK8zzPb`}k)eLNK(i0i^l|g-G*SKOu(oj6u2Di1w5I4HEasP)Qp+i2 zg(`@xYj})nOfCJ?9jjzQ`pMaKkQO3|vZ>GLL>1SwNu0jUD2_4oc#l_BiVCwSRC z!j`Cve{!?7-oWhxk*S}ky<)GA;@?-!?i{#Vt)M0K9_^adcf(#Dy^-0O7}Z3k7pPMh zp@lge7+Rq6nX|PSBA|(iZb2WCWC2BWv%*!9NkI~wOlZS0RuM)|FZq{rCM_AuS8d5m zF&MkT#idLJa9@En3620B6Kh@W;u5%)+0*hMTdEGg(!_8^=nbE1g)z_K+8P9;Us&NQ z04zeu&n;WUIIwI`jm#>)WKnlKE03F0FMT%JppK&B6)vz-|E^BNgQ+yu;F=j^)y@zE z(0j%WT&vf7x8DnqA^e3%WN_05A0U#8ix)Bfp|uCJc|z2947^b#5`$ONMTRZvA8)I` z&T#Q=DlEtS9F+me)*@NC33g`&v_tq6ZHtqpPk=+3-3%tqZb$g#S};J_UrVwluR#e= zEPqqo5(5oHjDMLPvJZWc)@gKDk?BQ(D4{0ddkR1(JUXZ^mD-)7zwzZ_Ks z6}8FF0d@CBf?s?Ly)+B^o^E`4a?941wcB-cj+MXZ#R6!}7qWzyU!%=XVftouQ5kEd z&ok3=!;NiKk-0gZzg5@oLqa%`VguI>jSmVHf`a8Re&oA}l@dz1cFrsndkDqPE%XAM6^gwiRm z3ePWzu9g8ZmKt65xK&?hK2vq~X3JEe{x*4zR4;Y&KXuoZLJHdBGQ`yvp794fD7tYqGm>y7QcKqq|XDogfTtQ2@+p4s8?`LGa1l zaK3!9l~o$EwtV4k7$T)Y~;?Koy zKFY%mTcHA{dEzfInU_n6(Aq&&6$kEKjqg6!PZmz2eL<+USENl%;czz(O{{P?J|+VS z9dX?=m7|cbOJz_l&2y;XH3t1gNKYdH^{bM1@(%7L|H@#GX> zCl2Dmf=bw*4?()YdPHJBze!nAA?YrU{ZWkZ#M^))Co9+8&oq8S++$9G`Y0&8PB|~i zhCMguytG62)N2G2HCvL7ha3$y%d%Utrwl4#*{(N6IQS?r1(~Lfs@mP4qq^=NqQi^K z1+LCuIgHF=j8%~p?E)nj%1XW5tppU*f_<_gwo2zm=>vpRsqcTEZou0lZ7z99nob9= z-~PoyKY#TQvFEH5816PRq!+G1}I(kq)bjY=MXY4faA#jSncC%#ghlziYw~dS7 zT*1ZmlssR=x&u(lp^OFKy6t_<}S zO5L9&6eV=vo_SI1T75F{vsT?NFGL#>mT znV0~zqBpZZat+6z1OU}zB$DO@aMAzOdqjS2F`XU9^aU;#1S#jB4E@jLQc}b>OmMmS zFI`jB#4>dgPss-4egzf*O*)h2S?d$2k+ce0gm0Z#9%ZEnA=hgqLCE_-eT0{=U0?WU z+D-^t-#Jg-a#57r1^l$4WG)XJ{k4uwjd&M~lVdwYmPs?<7SHYKkM9X8GJPz2PM=5% zMAo79?LJQayOa5Cwonl+(3k$w6#fHri8Y2vx9h&)^ru!E!HsAYmndkh$YjOjQ+!n5 zwKy+mi;^XK>h-u??+&Ak2qt`cy_mSwqT_;}scu(w9(>lPWa`@j7Z$*^Y-Xsez}utW zqa<3%$n?!EM{_IP&u&y-VyS3@6lV6+%BEm5a=6UOrn_3!_*&6r^3?3L*RS!l5VQp` z1N^pv`);la`}Ro1wnZ2sp8`5?B-NXRkQAviAkU0zK)G+Hn7jJgLyrp6^#$a2kbAjL zc}A?MziVfPe5-CZ0_QJy+$$vJk2Oc2R}UA<82$GAL4NyATw3Or`0aOvhfnBn62ID> zNr!yHu`pV&WZYYC5nIir&gJZ6z};0JKRvmVhxW{}BDW%e3(u^y!o*Jt-&MmzeE%!~ z>S}alrip?}@7xHdSi1eRB-zJ?RC(rQXIoO6r@$L>}H9q6@k})L+r8!8tJr zmjpQbTB%tPs1|(LfvSjZg?sxo6TLROJ5-6`26Yh*DFxLwfhtDGI|B1h04s4vlL3hs zLcKj%Zvht>kg_2UX90TcO~43oGgH7Kt0S#MJ`}|Z&j6`p@If$p+TP?^7y^PJNI~j? zb>Ee#^lZ}Q#8{0F*(>UjYT4Ua3%0}(WGzHy7bG_KnQa2-B$Q(hq}Bghg>zCy>`~|% zHb9Z9CA6jBEo2N@3QyFFwJH%WB~GJ^3!>}TX3XWFh%O%o5D(@caE&$U$?@2FHxxGm zR!NvayOoHaNa8%ll3Ggw8<3dhK1~8|Wfsp*NPg)f&ySk)BISlTtY2I_Cqrz{sNA76 zRS^!Le(@&K10kj$lUVxSH*`H2psl5=zN+z#@PK7}HzqcLci6S!h5H-C zGe9_$`|^J-^>Gem3)6Pf%+aM<=7dCEbT|3u(}j59t$K9_2dWWt7;KIg{)!Z~!0Y{A z#M5j=9M}a1t3!Nn^aYcNI;am90=`7OTd$CTyi|f^%C^NO=9$oMG2xRkWATVT9GN+!juiyofBD)u)|5nC3Gqx`3H@G<0-%|GHIu^e;+hu z-ej&9?l6ebxWmDfy0o^hblRrX<*)*xLW1c9^qF_1+I}2p7!gtmU1T2=lZ9&fm+cQH z)>cnx4vaWob%;l(^b~h1YVNuStvgx5|?EP~J&!ZDdr^h+n2(1{|n84>pUE4YlY^%DL{Z3Vv zex9goLHDvlPQKmO#7NoRoWi|#VE5DJv`6^-#S}7x0r}UT+tJu1mx}axUst^C5k5aMg_8L5;>oSA8`6tOTlaNs>qPx5 z>Rxv8$*+<3#63102izy$?i1b1zSP9=WCzlFEl;uu|JP=%m1Y8F$Vv8%>SKk`S1J}`LF5L|9fOjo}m5_ z-SSVFcH;c|@EcBt&#-?{f1AmlgwF@U@13AOKkAnM#jl(=e{Hw?KS<^8Nhc@%v^DtC z`sK|1sb=g@6bP$xinsit;5ou)}hn z#pm1pyvQ{KXvd46FaT?aSt;iZk)?`XT?WqFO&D=}`_;V5yyXir0~gz0%Z*Ji z{ulV@9%jCL?(e&}jc=%x~Yi zjM$i?By(ck%jj7RT0NP3HR*rk{CX4WRq1L?Rc*5~=gIN6e`oKbj4ADQ*1y0NE`w!O^8l)94bhV*~j;_3AIlUUA#H?wH$jEH;1(i8JfmftEV=wq~be1=6t( zdhS?swoFm>dcWOLRe`H}eYu7~GXgt-fjHO~%{&&q{rU=gw*poTVzh1x6yh%~W z10a}DRe{@8w`%;Qo2iDZL1g;t{gDAR{!++A3)5qjw#(d9Mb4Zm^Aqfwnx9tY=ha}0 zN^4?$d#q7UQfu^(bWbKJF{;wksL+W5FK1-#hEf5ZGrEtWLwV~ussHA<+>HUMN{x+4 z*28l%JUuj-<*Yh)Fm0AwndMi59~^IZQNrt>HORXfY^kbfNz6{J%uX}2!-YMp3v0^( zGvTbWDiE1g!JQOVAUO!`W6ES5@|~&H-`(hSGfYjAgL!VDCNgzfm!J!aQr4iJdm7~S z-qc!@%FJ@i=E}4lkkQYjH&gwkTc<|ya*;{t`QB`0Z(04>wdYG!Dj zPPX;9s{Stk?r}viiXf{hF^Ye&q98%wVB5=3jkZ?wVcl?j_0jKujR9?Uobba<-=oa; zVCuU=xU*z!ndhK>HW{}O0Vt7fp1ZeqjXBTbM1$<(n(wI9r8AvEyoc-I=ovD=SQseYWouosVH9muJ#Q_SIow9?leJ!=+!!*(>^7mK5w|MwlF4a3KmSwB;GqSofi4t;9r&;~*L? zbTvlB#SzBabQ6mA8{{Y7Cop*jm4PXMOA3rUGx%tnBD$zFDG9lYfA&m)xo{nww9&OP|*z{uW0o>{+_jv#N|7 zogMz?lJIwm?Y#%3_U@gb57Bz`3ZCI@8c1=5=O58#?eDOLe6-~Kqtp?j;tTmwh0Q^H zEph%_zNT|9x8blmBVmhSXD%g{(8-s*QI*3HdkcVierT*7t)_mmljdj@GEb?|Q6FQK)V2l;HD!w#x)D=&> z69jbqt@ygwUVp{Lz-db}$Bzs4u5Z1psei1`(dMSiSoTp*oVEvwo^>h5$W3ZCh6zLx zG%)d%pW}CXk9s=aIitCFXU<$Mo3T%^TA~*(*`-mq^p!<@*G$PQ#Tqs%){m#r^27-Q zNO3T=mK;=oXYp8T#isq&y!-giUn;WpN3E7aR3pfLxs|=y6UjN1Y60uFS_g>;IJ@0n zaX>CxIe63J3#=9Wwmmj?Lf>tVNx|$bl*I!0*s`~@KAcvt@8VKx#m&zB$EL-so=bI7 z%9FLe$?a{r8T04Ad&_Ssp3{RKl{km?^&FUQL2Es~3}cOQ4$qFEu<)-E%kO$(_}xe?g{ zkIFS(!aOC^#y=s0US5NA&hBQq+6}cwdLicuNSG9$j`&d8W zOt$a>wR2SJ&|Xri!y8jH|uNq*1i->SO zakTq^R%Bq=+b~3U1dcp#rXO=oZU~*E18#R(we50UX!d&bE$c{}{7{u(Z&~V*YcoOa zAxkG^Hf3qUHBEAiZIrCXroIAv*MD()Ubz7skhikmw6eEbrH4_QS|MaHkpW`>{_E=J ze-;(0yHUhw7zSkdxEd&XO}5XnugI-0FAH4jwXeWqOl98Q+q1u8&E(9{*uvekc*u%j zjj^je`&G*!m)+W;hGlQgxF!pP^=3Ddp)VN(RdohPx050Jmex)(crzyFgq|<1r^&3~ zfckM|h}$ApXByjNb^DYfqWL$1D<(NOlub-s>TR*CKV zA`vn6L6&8LP!fAGJbAAU)q$6?{RVFxYC1c!7lL-Nj#-BJ88uz5goBQ*qX4ZP&W)=8?vv=iLV13b29>iD>elS8B{F?M8O}hqpfajPG%WGn~9@? zz1C#24`9)@k?Ujb&dIo^7%`f8-gEL z{rC&yf{WTsRgo()t?XAU`*rmbDyynptM@0VynU*ka1O|M(ngUp;Tm`{he;<(mf0NG zjY=fM$@w<4$)n}YOgBq8%uL&QvJGi6^MpW?mD$9kkfB}Ofat;tl6Wp zu;`>%V8%CU1dzpY=7q9YWLh6$caz% zBoRDKE7gu6f`CoVV8{TU!SuM9&SRf){r()s4)OA8dyD&7__^ksYFuI~HqSrH12?-u zEGMutBF6R0>Xj1kV985Tc4k|{R?KAMEo2()kFWQv$;{}Sd5;w-e0rUDGPwT059W98 zV37V}^GLvM-;4aemZbZ1k`H4kAI{aT2J;H2U19SGNpOANJPzaWN9J)1H4?mF`ni#- z<3lj}_kC=&?9ST1CA2Gxm;IbTvRio=$o~X+_O5=>F_QPxk4NU*$*9~9HA6ZYn(-KH z_GY(8VBc&+ms_ut-0J>6XmZ%l52ne;P}4}wogOlG zmD{A>uCjlv&8YBL3~X`O-OyoAAU`tsxzK^E1uox3ow01svn=`NHJe)5xi&X=zPcLo zcq$q0x8Y`9fyKU@MPI)=)7yl7AQnQ~!NBNznj!{jPUwTo(59?V%;Ro2kEBp6$KCJ& zvmc6O24={gfuYzL?gsG((BB9}lOayX;{}6-->#+!@KbnWQkqF&BS*3htFcL1EED9_ z?i&i+ifh>-gOQA4FOK}uJ+>JlM7A2It{Eo#Pl=%-wEHWvplXD6zs~BdF|@lav2V{;SP{y#>shM@hiOaG06qcPl1Xfj~N zZUI8`k#-q|OuHD#`3E!J0``lN(4+z=%2$fZLw6Kp+|`#Doaz859wSm~R$Ul_Vb0=N zB0Dkn)?$ZzYw;ktlhtfCuG)Rhx@U*AC&ASpaxed+Mddw_iI#)9-A%m(1$1RnQ&dbc z#X#%R!?10U(IYx@n4nAUALK$591mP5T=q6Tg$^7=&&A7n$yeLKBT>D3spsSyG5%Y2 z_VQ=vydBH7?A1#v#~p1SpXt6=+&`tvk97r3ZQ=CV7I&@fHePKNdY}55xLuaHotF+UCjMR!*U9V~XgP))Rezr=PgcIA-8XGh5Pcmul=o7G&i zMcoLsP1u;Zmv1*ASZ>=5P;6XKV8SpSjEV-4`yJqG^xSItzyv1@_3C9RUdG<;UcO1?QJs7F0okouNOmvhaF=HG_Hy(`5I5S3 z-e`V9-!8~>H*FoKr@IOLPL}&w5nyY5d6DgO{m;8}*M)tQo)3|pzx=W(`{QHEI(kKC zEM=DXXTf{f>Ejus?&aX^*c@&erehRDx5>OQpu;q`%$__zqolj>L7j|m&%vYc4&04w zWf2qOl+(e!gP9A?LKou4JhJ6ruh4FAVmCN3U>ydRcY)=xzB~j3-R&*)cZ}omZcn5# z3;o4{LdrnMt(F75Ld2+V*+sFumQK%v%s`3y5CA)U8%y8V*UUyJC{=fEX2!B*@awVC z&@Ba-x8nx=D(L%za`=G*vIMg$o65P`5+i-4dxN@+!HBVL(me0w=ngaI(TAM5xAV7r zoFf*Bp>>(oxcmWy#MR}lbIUGV>7=hGz3|8YoxXp&wj5t?h4VioMPwnFb|t{-qa`Ck zCsOv6+ttJaw2$p)hY&$`!!H4*!N<4WVNxqPf_<#Wgx^t7>~wS0_i88o4$^;0dfc_6 z08fj_1AfyQ&AFvXzT zg{Ohspe25PAgExcm7UirA=AR1lBKsOZ$!OfFwyZ(>ZR3uybY3RenrV|gnDyfN2GfiL$BF(h%HjaZq;J~9{JHG)C& zy)}f|%R(B!O}Or7+wl}F2_57vT57M1T@X5$9XyZ6+}H?7u+~l%OG@y`b>%7akV5@% z&FZzba*!k=KMJkM4aKwFjhEe!gV%3`<+E#ogbl@3E zuB>DL&fO5uidWmMv8@SzX6*9Q13_axB0=*8eo03l$gaYJ$u7K&I&|^pbVVDus6t;a zQ5AO0qcf3f2*H*w7oEime~%Z3y|>DCjiU^qW+1GkZ`vE^UE-SfN=guet`9B9(KiWq zpl0k4IP1cx^nCZs6qzgGPDG~bdi_I9o+065TQx-5NvG|<>Gb2=DbqbJTk@SV1am2I zj|X2OdMC#|-t`^R3fFY#;lqyDKmZ;`B9d|MM;GU6Gd+{hd66#!gvuSU)w6|XFK8fUi0LpP43Qbgn^E-va z7M7cq)={d*mNt{iK}mcb+M!;eW6r;e;4WI?GnWVG#&`LNz62UN-!!G?JoYW~`P=gO zaXw4gATLg664y7(_ixJg#`Nz9JLNo={(ZLd{WdAjvwZ)WDSw@m_c`BZ%6DPK`0h8~ zr^@${&iCo^T|7ql?lIpd$#<9Yy;{D@qUF23M=nx$nS6hrK1u(5@?FgC`FK8Fj?KcKkj^=Am#g-@8_BF=S%s<^z!|VEkE1&uKOo^LAU<-(!b{)`+a13{ihsT zzsvb9Fj+}(hwlA}asNUFN^ztQ=w=jSx@J$-&= zr+*)C?028@UC)1^`QByzo$ng|2Ac2b_~mlG>-jm|d{3Vr+-~*wb^it(+rGHI34HYT z!N-1oJpKC_$9`{gzH9gjtJ@7evz_m{e`lKSqto!m=X@8OTshQyA8x*%%};cs^IgiU zB;upgKiGUfL%zGxzq7-1|NcHniT(UmaWch#kF%Y=_qE8#uywpHY{)1&p>Fm5xP7VL zet7>fe?B{?1RIu^VS(6f)%IWa7wqeU*9_4CaOGn$5s&u@*|l|$0PG^?Ocl$vYlElh z&53OB!dFZN$0;s|lRvWS`xvXIVk)*f9b~`*vYK)0k4p<6!?N1on(wFuVX=NAElPdeeY4-j5%ckZ-bql}u z9$N}gEIe{2-d1bu7RdcluAf?ORcv!N$OLe(lAz12Q3;n+UD0CVoY_J6rxc)ib6s5E zj@bNa`}riCHYMP+hIvlGsnXvSPTcA8xXB=JqO0#*N=(GfX0w`h z-vb&rvC-61OUBp=9wb*18jcFqNmQO@Zi>M+6%8-q)YUOG)_*-}kPrE10;u1`ZPWqkaN<8t zNe3#~;)OLPgNP8`5*Q&5SqJvrZ<=Z5P@(ZpzozhS>tw0c;i^D4_``r8Uh1Zvp2qT( z#G=yDxkE_j{D=@6%(@zR3ggr3>a(8K)n~`7s~_t=B-T|ym!au(6*L*TuPa@B0#lr} z66@;FB!ek~x~?lh5q)1v9{{K} zQ`4le`->mtE6%tgrmN=>38>ftSIUaI-{|keG+18rNsyN^o<&E%BL^z(dh}v5{%Q28@NLRINZnTS4%wVj2I zdm?hP64Hyc)J!_B9z!B27&Ajw|14QAbC_bI$4Zkgu+sCZq&F}v(z9}&>C`ys)c91V z3UsGRb*BhN5$nZ1~sW;NS-o;(&{Zh~MCVird5OLA#d#DOAexz`LG~=+h z-<0}C>-x3F{;9g(XHvfw9>w2?aW+PZ6fbP|NLtt9)bZ9qI%3SA1+xyW;ECp^Nb|z| zs{h4K-_X?5>w7V;u;B3y$DlV81RXE{HQ%l93>6WVS{bJU;+4FY!`0 zAp%*HhUBPJ9Sr{!aW03sc;*K**l0LlnEd6u1?}pdIxEqLAX_l3 z11B1oRLW#IY^Af)l_3mrcuM3YTF!1C0xoAt54kEfQh2I#(m666<-$94I|40d?U*$? z2O2JWsw|7sn3%+^fb5#;s{c;cAtd=_VZ}VK#*zHrQ>{=Z*H3k;LY^LyR^{}j z9z=F$qTFGLC(Sj`9L6`I{of>{$vhN(&RCtXC6|H0ha}xbxJ7F>N!8B5uSOb-6kg4b z8l@Z36L0Wrh#r^h2LrX>OZ^z|+3h;24fkk`Pqe37Il-FuiOocZf$K0@()_?Fre!xj z=B~a!=p9YsQU%PKe;9_#hmoEzhTE9Y*JJsKXSKIAIg!c1f<~5*AuUfm3EpJ!UlMEJ z+dKhZYFjheVEr5cBu*+(U!Els|XS~SV26pWIUQ}}&W z&hhA(vzKtBrulPe%Mi3eX+KhUx->501ND_uc4vNbqw>{BoDQ8G$ zU#Zj)k#s&yZR>O}S-q}C=svAr>(cZ(H3tcF)AN77%ztvchJHOjO$otFJDVLlzZkn2yYT6)NOU3-)*TTYMoL}*WAc)@9W`u@iP7uppvr}3gtz9f#sB5;!V6^k)Sj98$mP+Xp)BD8 zKbNb21M8QPuNdVKXHhXMn3-)13uXxo*7k#p$zfYu?Epd>Hsp#k-UH3C8|dxWC+V#t z5g*1g11sW3{bi2~O!u~gxuTk~c;PSDUfFdy2$sdS;k+8mk68CToq1pWZB!l0*OC73 zbIsz#Xk*J|Now7WSTPjfN?|7F!;xazu!XUopfXpE4=)1$&;mH6>sGCC@?X8$}Ax1TSwg!t>Qe#BHI8cO?r^-i{x2aD|Vg6QTupLVVmQ)E7s%zT#B`j%jOL28u7j*1&7dK>NqumVq+l{;_5=BEP*ujuyv^ z=sex+k7C2Sj7Sn?L}x)cTVmK3p(=05@>i_$ zhx_^6KJ7~i4^$!`8K}NYPaV6IpC36QC?!;0p!c41*5x0U8+cRFbX;02B%&RE0mYq| zi%ERNR#v?zA5xYQRF%AYR{U&2&fSpd>0Qd-)3tn0e4Ca<+w0Y`zk>bT0?;A*S(O!e zLX14Diq(M$R%8)EsjCQc)4b|YR9$M^KIzp}2k7&qYo|cU`r?g|*SG%W`~#Iu3kmda zPo))^f~(HzASN~Y(BtpNhTWi(92>P%SGYVDn9)OnUQ@d<5mw|G-2+%xBsI8^z@j30 z8GWHpt+ka_#nIqDg++ZhRds@ANIO3oI|@PlGW(OUJM6Y42Q%1++&>g^twQx%=I1$) zzkv83ACfg1yUExWEMYk;YI4?CQ^hc$ly|7R6djy?0S>>?ej|0SHU>!WsZUoN{D~wJ4qo z-`p!iv_-V+>1HMIk>{1ky@SU&(-c{?K>(@Q%7{n!J}?7>om(^tH3%moson$lrP zLjg}$vkwchYZ2CEJcf!gP&7GHon+)wd~{-rotRAZIK~NMWQ+hEBFtIb%wIyrUuIzV zJ||*7M)abx8Tk}7$s8>?T+ckZBklZUGxFOPA0fs>aFXhc9-k@V4RfI1^EKpJh^<*A z)-#}w*dbW88|X{Ak(r(I(i(4WIicJ3#qOwzykIc#sC22sk9E+Eom0v)K>&`Z;N*V; z6`g=AjMqDO)hNomm&9VXGF-X??mCoSpOX8gEv4CQ#)H#y}RKK=;Rb z$J?SMP&qT)sSH;Fn;4OuxGDh8Sq5j&^4xG7yCLuaWSCbmbSXRO{BMKHAj94N1Q|X6 z8TMH%M?r=U1Q|Lzz2yvN3OG?-5)WLiE?!}9;@mWx7}5hyNFcv6M`@Jkv_e%B);MwX z!6Z(c!($hmkTpv8D`oA=kyXcr3>`emVmx#}=T)aBi^r~H1Q%80x3lEtpKsL?S}*_k zj|6jCwH2Y*K<(}Y!_m^|Enoz_vHL10iJhtbqqdO<5C;Y9|FMcz_BL z7L5=ZIBcUy((*NIF+d7KCpB@bs@)2i^|R?m@~@*ASqwh-6T8Dhi+-S76}c+MCqfub z4>>JU?WzI@0C!AV!@WqL!g&TbXlcp;BsL$TzXYC02f^Jn~?If2;*xReKcTN>H)Ap8?P-rvpUucqmFh1t> zG{1c`d`)h3#b@r&O&q_xOUHou4b)f{p58po9&mJN)kPCJTXF(tE%jbBv3}R#Cf=P( z+qiMO$+y$nbla|&Pt`w;o$j;lRT=ffziAv`1~{Trtq{J@3>(5 zyl;Byzvvsh7#ESvkxBVtpw3NplL&P_{UriTza({G2bd^6Ds)$S=DZ8ylXK&fQEVTH zJ`0Il+IyOvceKfS;lycn&e8g+vI#kSjWO4IC`Y(b!3+~(dK!0~TaJSOo+$P7IH`^P zI(K^uh)gc*ojG6CB!A?Ml#6Z=b`fx{f8?SEHS-YZOwiDw>KSuXPr+bG~#oDJjo zoCO3$hX(Q@pk+{&~vr$_-(eS#_qA7J)B#~)xt4I6;^>;RZU#A(|#war;94aJpw z0Zgo3mafOf#}$%@zExo{AnP_;!91dc4b@VFWh<7qvY4;50|g~j6|3ieNA8t@nfiQw z@zP$Hs*dj)>;nMT^v(zKntBWO5@{&DT$-skFmGD|<))zAEe-Lu7<vxj;_G>>JEm zB^t6i;^cDL!m~x&B1i5oK7d{oLy~zL1vokYyPpF{2iNs^aHvCe*IKii6R6qZSIHimad5xMvFC^2W4~6 z0R3JeOnm8D#zD`cV_~b}g_n*@Lq-9Ph;n}TiGj9&5o81rZvm|xcWaH10&`eWOu6V~ zZtB_^#NR%|-}Y{(M(FTSe8Vo-Yj~L}_%#ejRLm4$X95*N53)Sx-zwa>z0VIDRuvij z4{V{FU2dA~{hWAtRb}O&U6}zNROo%qTi8kI51rn!@=Vx=k3LRRtXg@5$BMaqa>v|j z6sV*r`v4C=K$&B+8>wHIJnGq0vG_-tVG-gpL(XKvQKs7s2~*u|zb5h=*6571b{CFt zayITwyt$ue0Y6UD!&Eu7hs)K~x)G5lsGpfeq6^7WE%%qWj)*lAL#?*=_&JaG+1IPW zx9y#3=c!3cZ@6$=WO96b=E6Q6d+q+sh-jXi)akvjyhuVnb4?iAR+jqlGr|u;B=6d( z&i}1(n8<|MQu!lP4r8DwR90T^Zun68@N9jGE|1f6ImlHruK9_)<%`S4xf@<2E2%Se zYMx?qJOGn(A$0nDFi`ehF)3=;5xDc{hWf*q?)zXkGKSx^`N~M~L=Gab95Y|@3(L`m zbYu==xHt6`wVuARGp!Deg<_C{C<<)FLp*COBXSVN50ukx z|GwAY|Aq^k*gpz8c%s|(T^)4KxA{|de;*qc|F@_ja?Ih8r97IrYr!FE1SsP0=m+-5 zqp&~GweZV!^-lF5NzqlpJj4I)N}JuvK%e@FI5ytNH}#G#DC!UOR~}gn(R-x=-+QI> z&jcC)y=SE}A|e+{@FH_L1T4aqr>0=KxqlDqIB{M1?MvcPHGPoH6(ExacsiSV16131W&+vbq1|p9sk1lXF-(#q`e1pg#A4=spG^;>YLz=v{ zM6>17?=9|3vGfgoG%#xbj)bNq4B_Qr)`0z83fBzS->Ut7;4Nkj!m?03{-pLB3Y;bh z#%1V-CMnntj_K3KG-HG1K=mNC4PelZc;PB-Ug6;IAjv%D9yohEYczyhhIwL z;f@El@3b8Qx3kn`vBX3tMpK~u zwz&34wh9o&%0+omM);LmJ=`XY&_~?zMB+5(ZFZksmlHryGX{<$Q>-_vWORBU zz$=9SuhRrLAFkNqxD$L__jYf{KcE0r%wXrt1Jgsy^mS?@MnW_qVG#5&5Ljq_TMUQA zW-tkZI>&}i1L5M9V}U?>fVnFW;5E8JAr#FrU|?OrWT%0_M@PDV!Mz+fAjLff5I4Sc zTtK|G$^pdk6d-b*bO7;KcR*xGj}w5vwi`fX^#F*3Y(8b5CUoabL55MyN0Gx%9$@d) zWM_~%{6S**>}~&b5P0{DVmT-y|_U@&%p1`u~G@|BZQ< zb7>DQY~E;Ge4DeaTCie^BTGeKRq$rIz^d5@>55e!t?8tT9n>oN(coF?i}ys2$}K1l zlNQca`R^yNo%qc7u&t&Ekuk{WT_2K#hM;ok*>~+4riN^yTTl9&Ir^2vJHBAwrA`Nq zXjAC#tnCaweGDmSo74GoRFzzTDs}}!=qOx_=+@6t6BFHkYmn~#mAo6K#)uq^K2`kP z6m81sfzFpB(F`3r8q8P2lG$Uoaz>a@QTY1bIU^vnTTi#vb!e)jLrEDwQ>1-#2my6~ zXhR&v5$V+M{|q?{akUUnmPn7}oK+;}E=ze3;>1o<&%T@Jmx}K){C|kx!$OAurW(k0 zvoZtS?ueE^vA*CeaQcJ{h*==Fl+ZClnq#NwYg1!+TJs!p87Y@QT9@AjJ3dm%8{kK; zqCV>0=e}-T^tZp$&&->6`_;f1HWb&(vfj?4vD{wO97h#nwTs=W9G74mD|hn8Qv8|G zQ5CM-tP12*$&iZFsT1|`>8r+tFAN z-?9Q{$hUs;PvfN^(AQW{z6&24diM*RG=T5_$eW+PvPha-r@wqGToncg1iKTgmfb-k zw)EY8N#9ieRVy-Q9a7T0lyaXp7r3~ppK%WLzKu}s%^4H>>00DWTz(V9h z&Yjc8gVV^T{{@`d!BPiK8ch3=V6yfJm@1W=I!HYROuP6lV9HDb6QFj$WE~5pgYegC ze1!&+2QW?0Z3&!s06sW50O$mm+}Aa`uiI#V<-TqQ4}$Eg5$Au(Ck?aLG{eraHZc2w z1!}5Hz-;Z#B4AzxFz+J4-h(hz8sxrd%$;T~XcFxi4tH zqYpBKb(N}n0^)ci|`bvgV zBv??sk@WX7DF!a9K7LUXA}^93YA$fbXF#)R=jGJUC4X#cqC{13fsRK>)~ez`Qh1P4 zIK9~Ex+}V^g1Qz3Y+Kwfwl9fFfJaZbZ(E`YV50$~t1$UiN}jsXmY>MnnGUVgQy_qp zd}dmxv94t|v!RETn2nzDlhYJ2HD_-*ZaLEx%&A+VMX1y>_TCfh3pH^fhw7BLlLB&P zw0Tw>U|z-1t>weAI?ssB2t_uNodL*4nRK0U>i(8E=oZXjXLUl15~0-aI_eWp!R|ov zt};1yCG2S&TF+?$x}uF-GzWc9wMzEA%x$^7VgHsT>+V4gG@^aP;eKMkURFQB^CxIc zU}R@YWuQnsPUhIaHLg*T2stVX?RrrylNun>=<#^_p1f%_Y^9KH=PZ-7w@_c^JDuy- z23Vlv*GI1=!R)J-$|qv$7?y+{r~c{k1>&x?&Kq|9o~@o6Y>5fk;{H`QhX|`P|+Xs=J<7erE6k4;p%@ z;Ck*woyuF=%eHG0zo7}2@;3t;mayw0ozC98NN?`$^NI>8>y^I5N;@GBkM5E+$@=8{N|d%azjVTour(_HrJ)80GTjZQ(NPVzZIpN4 zi`lpXHzB?PH+Mt5dFmbT7^n>+j}@9dFhjs5on@Dyr+P0+f=+fGVuJYwCSfQIP;6L+ z0pf`Y4x`{ODJT$)a<-9z=TeZC^*p4vC@q~!fpaNPGMo&tIg)gbU44&wU8I3Q3Xef8 z*?yuX$56u9@7#UffBZ_{=rKj=j6Xs^2=mu;4>TN{}h9^{)svGYjHi_ zU<8CglsjuH*3Zv@$>#QPaj1Ssf{gc=CTABNoU13Hw&)rWVV|xZ>^KsS+;}?nK<~UE z_CV1`fezc16~4?GH*TN%9;BGzyY>dI6?4kS^qRW0zMAtd=N{iLtADV_wUK3WumCCP zPVIuJnjvwqJaoJ}CFI;2uzp&V8|J8=1M&4|>r)&~i7_rbBS!JK}!Gg8K>mhap>T z6`^h8a$`d9ovLtkjgiuDfe-QBRHsi)Guq~B;nc_gbQl=9Oz)7RMtJ%R>JNOCbG}uI zH)ZwaYP)x}{ZD^<_2lyLCB%#@-ORIPjs+D*g@LTTd;JrlHZ!|PlD&p%=K26aP&q%A`1 z@dW3%mup=$FdW>t9gHxz(e|3gjo)_1jTOvRdw_upZm6|Bb$-U>XvXf^qefrZ1vyq2 zLiiloFsB!>^Odsgd6RK9dCmj z%GfnH*wHaLi5-hm*a0FF)@u6Gf*se>x)@+2QKN41xbbtiXP%2Nz>U&YjT+OHX!c4s ztNELb=vcP0eSjTLg9U;iJEw;8$^|{R72{iA+S7s}Pw}xMi6Z~I^dwMZ8JW7H$YRno ziWuvJKfG?N6E;f^jYZJ@?aRiYSP^pUYRG|Zu z_>l3n_2Y?Swtp1}k|CFpWFJC*zToW0q<(VPV}I%%G8OwjZOc_1nVVUay&sjaIx3@) zwfRw?u*!a=+J4C|o-*xf^lP%tg4I=}pCj%mB^9LL{%AG8e3&Xr;|Tgxxve0r(Gmn7dTPN~r)R97DzGd5m-aP-1_ zDk6NtV{KegKQ9XfUFjQgW+$3(t7ip%JA|CC9ult_acJyT_0LZa%P7TC(fF8)Eu6Ud zVa+kAml)!AXi5Ln^d?c*#jz8R_$0>lbWt`sdQ?UC>p{w){fez-nYGiLEHi#&R&T@r z$Z!8wuD|pGj8U_RN_@iw!PC%6%tV54_V^2ey(`NX7k@o4kmjV%H-ObpI&~*4GQCT+ zNF98R7yhqHD;xjjCn~=E)m#Z!-f}3L+X37SwSvv1ud_77tMcy%-#se?-m3p&@I7pJ zP<2PQZRTnj7{*+E`bcuF>PgXa74@%3%oR~oF$fQ-F<6C+Uf9RIyxH%5ta%>$_=gx9 zZ3*rYtMibVC!bsvl|E0esCI@Bm7TFJBojr>(F^kk0xFdxCyGwXL~S|bSy3aMinpfC z)gn@rlWo7sI`qXF)G>+!&Wxgs=YCH4w zjbAcf9+@wA@iL#?r`pc2PxTTCjQ0}kbw}0_o3j; zyvQ21o%c-{&O0}jV=@|V)*;{b%Q>5SG@P`$(D+G&6eh7+cg>WJ{$QiHCv;7_liBZ{ zc5@H;uIVA|@*c{Tnlw5eoeNUS@5?@Z9T_*QFxo+}q6>QfmiABRDa|>%hQaD z(cM1miTGR#t!1qw?g1aHP4T~$E4KLk)Y%xaY9_Yg#$2(*hn6O!^U+>>Gc>X1 zvj6zr@yo8~8)YM|;aIP5=e=vR{MLUsrvA|Ag{NC96AKa&w`IN~aX?4_eCt9VvN}(k zOOGd|Z!>m=Y9k9%EG#9!`6gx21AC3^m!d#IuQQqbve^tz`c+ngY)j~8Z*=P~gd{m~;jU-V;-`Mne;W+`8RMHs&tHtG5}%=-=yQu3vDwLWf> zx}FJM#!~J5o=j$9b&C7~Fdj#D_FEyif>9^boqdBQj>UgW640}NW8Z6%1yz$1F5J1A zUDf78Dm6D;xUqXGhO}jl6S-R0GQ81qLD^6#yYptjhvtOiIdXO7gcz2>g{M3IzuR_g(0$(O}bU}u@f2O;@ zDscDr7q|;5i`@M^MZA~sUdDSR@0GmQ@Lt3FEZ%1kvz(;4R`wcF_re5Z2A^G;fpNu9 z>;qP?+hwT#jvkIHZ>mF)HM&D-BO`u}FdZ&bi5Y>a|4c{lsC(9Qf=w(#E?g*9r?AjZesEZP z{33VfS>Y>kbTA<+e6JugEMnchCvk{YKLKc^N0;UdYm)0Gtk6f9LA)HkFVntC#;`PJ zTvMjp-X>`DsRPej#Zp`huQVZ)wa)32u)v5OpDM1GI7J*YIMM*aOCO{G@t*1(KLRg_^bGi%q@zY?R7sp zDU+zbvHXe+^G~r`)_C*g7IBS4Mf(E$##*zMW^rN0oA#6(IWo-E7QI}#j2y5;pLeZD z<6K5BXr%2*iFTiSpCv0rF8g?hXgZ2~X=k@e;;jPWSLbnviRhVu-7Z~i%#3B~Ff%3w^qobR8OsHWnw}$< zGB${nl}kUhx2yfrndz`ksTb%TM|m{(tjcO72FIE{dMYY&v>~ntmsgfBRP`iqFk(G- zgORoP6!uF3LhR`3g{m@?#s40`@n^RS<@0AZrzl_7nk>5#Cc#r=ZyJvM;j3y8eXvqeb$Mj63)I;g_JNSo zcZQMIMyk0V>VR~@^_vIq7;NaY+&S7#D;}Sd{sH&%MtqVX^J| zzJESsp69vyJ@?#m&pr3tb8_7TW-H|z7F0Ed)e)6F@ER%ifR*2!mNYDohM{p7S|n0! z@k47pA$^Y5DjR6_J`{!?^;u7=d zJ5zPRBE2s>Uln2HKA^tXRwe1Tu4o4p$u;aw_A@?N;5Ap4WOyn2Mo5|P6y zeIEZeS==ZvG%GJFkZV=B#eVp4Xe@*51J}zo#`1xaf(d7LNLlcGkrb*`0rDx2(q5ry zLL#hfb{vXVwqHbAVxDuAeLcF%vCF_LE`c_K0Z68;W#-#Vk}NE|*K=1k%XEFgB3~N% zCik9CBlG*_u(PaeHXh0+3Pr9&;jFJTS^SzjLI6S7L}9HHxLpN~?weZ9n@~gu-{u=nz=T$Iv%UGcKF}PQ57<1XsRQ{^&0E7}qMK#Af;V zfvT$Vd$5wvs)1XI;n|+b#+k+5$oOn?-XU2iYfm;8cJjKK%{3 zgqbTqP-XsZ_jS1Zp=fh@-zdf#M3{F-3?hgQ*tK%EztEoWR@#)pQ*Wpn<(G;_pk6+f zfqeWOia4u$+u=lf6~10!AMSV`=}W`@z;X^XYP;KolK%`^9e-<)+@Lsyx9ZrADr*~h zKPcUqG=`xnvRnS*%tPbVO;z>x=bREemC}I|%QKv(@tXUpK`Ufx(kQLIb-XzWH6Aa_ z$3#VvnXap;LLC&AwVI1MGpx!mgU~)Mo~Z~Ds0bv~j){g2d62MV#jbGZWo90UkUWEQ z97o7Ocf`DSsi{;?tqn+|Bj)8XH__;f921RCRTcjscr0y%kiu7(i%ypM))AO&qeMs> zB|_?ZS;wXOg-A8_D;1d0Cjuq$Ln<7aMP}!Iy3p||f&DfO_;G)B0MBkWP&99rTQE3y zvThN@$W7i=_GJ`gwE%x{8F#cpHT16);AI(1!d&-9+Ln`Uo9>I#w%tNT6|5mk^j*?! zR$;0i5@>C3(!P~SD|1<={bM?<1g6qHmP)JJU@p2&U@8|bj)tj32$*ixaUF)PN6asw z8EqjYL)Ig9zJv?>^HOa&T@|3xN?@ujopiX8du;oH%EGxzUqj!u@Lm1!79Yt~cJ*py zTL_y=1j08?RhuAzx+y6-EoruImr{DVdQR$^kiNYp= z)37Pq7%xl;Fe`eS9OFj1o7%WZ&)~;CE(XA-Agd6GT4sI6I|Ea$suG2hs6c#_sB>ha z{`U+VrV2UlDGi*Ktjbd{Y$S(2kzpg%#Y#`bMZpiTcL3!r*(XoVjaKCNHXMOMqGRYG zWC*5ecodbjCJLX9Q{)u61z7E~*4V3mq?jiegY#4&WKo5X8%~0p&gLUgcq=(chAe?I zwIiG=TeNeXU2`XgKk5ViNgrbT;xlQsqI)R$i0X(wq)WRr)cm>dDs05Wo;&cxnC17# znCyMvdVwwmv=h;qieWy1t{X)m?nUB5^J8BLEK?)hJb;Xh%GTI9>7Mkg<`Sdau5YpX zz9SO(b|hnOsd&yizWG$Qt`rtP?+TTmEG;AJiwwLV^Gq9)C$LM~l)JjtU~lfAC(&8P zB=$I?w1ll0%{XXJd5eXe+t)zqCVypfU{X~%$B@>A>;44WYdpTZy7Iz*$m@bTil+zB zF<5K=fV1jq)|_zepNKHu5V|;~VZYJvHZQ<*yszTICy5D+vM;(ocuG8&K0%Z{jAn=j zOf8PEKDWM-KN*vacR(8H+%JpkNXWEG9|WpB!Dqn@ON1zJ&C~t>xX2ji4y6wJ33Aff zfxOcOapJos5&u0cIGK=ONh;S1$y|v)lIs?7k!Bz70W1Ms_yI3u4@AdUANj2vV@f{p zS6md}+WblC=yjbv_z}USAZw`$Z-ws50)|;W%nka81+9v*_$EKv3(>=_cvt7e*DglB zXI&@deAjPv-(i1#JJ+h}KMNL)317M+CR;PV<=KG;U-u3K1OAF(JA$8U!6~R9a4rN~ zbQHzjm&q#JevL2O|6-aNzmbBBhPPN1q@KvtoH=c(r7>#~F>ZP#Qo`8*oJG}gu&-ga z)^2)Lie&KY$rLF)UL~#ZhXXrM?!R#R^Rjz5f-|LAM*UPNh!U%qVNK4 zX9_cK4}1ka>8s|fb7a_ABU^t6XD_Q7r(H^`kHt%-wEfGM)iKI3^Dy)L8Jypp!ujUE zcfk3dP(cdk55F!L+$K1Gz2N+{H5JoyK!aV+fzKM}+j!OJUc(Zo(R~?V%G#g8_NZ!d z?jH!`nEom$tlA!P9$*oKms>0L2-R#R4RSY$jjY?U1YHVW~F zQKkJfC4j<1q@5b;e=YNXPnid2Da4mtFDG+#l3YI^7s(F&LF0R~V7j%#zu{}a(@WC$ z{v*x@sJajMzE~(l&G3rulLG}jhD}am{hEJ|^#@Qeke>X*ftVyi*)8P1x z6l63kJ|5O{b?3xbzZ%@pSpP$cJO=AO`@O$l{5w-LpOlW&pi0&$pP1PguZa0gOYPBQIaa4+`CsX#eV)Y0e&SeN8`WRjQ>1$= zs-vu*s>|nbXy_*IrD=6e&ZtE=wPPM0Ca6$!LvnX!-&)U(!7)#7`j)F__nL3wG?9%6E$#eR4{cXI3c)v^RsaJ?~ z-uu7GJNg37q5QRYo|7~A0Ltoii{C#ghIu z2Q2TRog-XMfv<8$u#KOQPv3JkuBX-T|M53%`VviCFG&UFLh~GEt0Dh|J!GIhT@A zT7_rd|80KwGS5p7a#;HF6-u_+f8Tw`5Lb!Sy|Vs)5FTjLDzr}55bMlu2%SFmS2POH zAOG&*&kpL{Pp?Jpn{5jgR!4GQA}gK!BM)^*8b67^XLaCH z5?Cmd5#NWQ!#Vf#T3p3fNeg>I<2eb)%ULV}c zP8WfLO2?pv4)&bcby3$MSC;YHmV3I{^?%G{A@#tDN)7()W%{WbEMp?03vgwhC!%V9 z-HwyufYr@5GBQ^sI9HBL^{oZW_P0HG$vqeKJUX{w$DurJBJf z;ZUpEIuysNW~D!r$mVwCg8E{XOs*>GJ?a>Y&i0j@UChWhm;Dh1=_0S|!7;%b1=#lp zCA!V5GL7GUU3-b&@H1bcZI3XWYhuc%1IsGSiu}N6kE}6URI0 z7E1fO>Sh<&cL1u{C`7Q5N3JlZj=_|Et6b?x;@vnlF15e67QHzlHhOhcRzmT~Qu9 z6D06)9&abUM|{{NP5c#297dRO2-afvY!WdL8skyIdlNp!)rcB?R2Ik{6|>Y_gjQ5G z2@NB^QBP4A${7!J?4>$%`q)VKs2|iStho1UZl#1TP*g8+vTj6+kSf#a`j&#UkgtZn~i^g9ZPF1(6zt(CsA!oDy|YRy~8 zr5)&xYEL*nTk%lB<0#1-zI+F$mK;R-P}YAJs@N*is^n^gejn>p<@-YGj`0rw$amHz zy~8TJz!-q?4U1D)JiM|gs51~Yh$Qo2wmztb>5zipDQ%ND!U*7yVIphhs(&JJ>#A1!qKQqF5fD=FRS)n$kVc(a{BFvwq8{P`CbAO?yefcCoUQ0@_U+pTzSh_E% z6sKjR=*_i0Qb?h;J0twSL@6bd?Diaf0& zjL(_%qU#iuHpc5{HzXdrVxm1WvY8LYC2ddq`h8gUDvtb<#RV z2bX-Ol4ZP8eh+=%uS;)9mQFk17pOyDjy4fP@9|{&GqKZ60Ai#RdM3Y<_?i4pj+Fk+ z#L(X{ClrQ)j|xL23A;`~QTRTMqE48DqX;Gxj@s<8q)X_krsk-93I_R<9)x>#N)Ljf zpOB?g=IKT1Zm7L?iSV(JM^vy?_z36y_L-8z+M*K-ew}iZ;=(6qDGu4$Z0N8BybW{Vsp ztg;`IWLVbY9983mt_NH0-LI9Hl`*$GowJ?fGxN;G-X(fH>C>GKam^j$M1Rt;^{$>B z(*B}j+75AZJH`oq*nc>mdXZ7F6VtXz22K=7G(UsZ6ucLD&;Ib}=U|`7{i4S@jHz!c?y=$=)*JQTz-?4V zzTaICbz-D8+pIXPIC#1oNKM65^kR1b%YJ0^bM~s)!hskKPm$iyuUc!51n457^%PIE zk6fKdyje$eO3K86&)F)HtDN>OqEH4Ptk4PDW3NkvW$QvL+kRb#EmkU}yHOhwDW+{d zE5Q{s&!`_j?Xa^(eINCL2s2;3>^JJ&ys()!>JPIW^jmAJrRW*D*1A?G<1Y8_HLdQr zlYG3m4p5;FgAF_B{#p`;-cW(L#(cTKYP?pjKK+p&&m$?Ccml&QkuljosEV$RH!XKD z&+Z@7Mx)UKQOQL>2} zrFm4jND4IyP*3(3m`2ae{Eb6L*+f6tU&_a*A_+lD*+fIxKVCxEvh*B>p0YVvz9v_@ z4)Bhma*KTKF$%hHRbVjmO0A| zkD6t?X5L@J%l)SH&@B338U+tYUwHml7IJcTlCUEEK9(8_eykL;jGiNlB&N!Vq3VJk zkJld~t0ZQ!6El9VL``?1CiB&E>~u3cau)VAAG)7l8Zh#HbKygCB*}u2bBuxpX@k`u zEiwus(hv+#^4cKnFnW%muMuelq4c&v+CV7%MQKTe(&GlHpHMNMqZCO=JQ@A-G1J3d z`rV*v4twuk*dX;T@S`S10 zuGF8>3HvSe4kZaQpXN)DP|(S8g@Wfa!lZP61`KdG7!&K6x%D$0F} zT?wJ8i{W{?_T00}C2*e9Ue*}Cn+4PH*ju*R9{Rsp`}G;}qi0pFjqKK@bgg7F${C$0u`HQA=^qXr>lGN7dB0~P6 zLq_S4A%r}uLoU=IrG)&i4jH6F$_aT?hxF7TRfIgGLlR?D$v#5v*CC(jkZFW0)FIn- z$aF&LbV#cXnMKG99rBtAvDC0u=Knwk{zeCiP=k~==)i~$RD4op{x}^tO9J6gI{IqU z%H*lDQ|$4h&?E}8+?2MyWJ&aeZ#>|uc(Mw>aY3NsNuRtJ9%~o+fVbX-`YQ}}miZ>3 zSxe+>U+mfXfq_0|b5W_BLUO%!dF&Zdih8VCgWj_Rc9N>i{%5tM`Y_m44%XK55nu1C z_?1*?)PENuj|F|f%e@pP84lPls0@iVouwa}_DXE$$ zKT5o*yep20+*wYHx;QN9yKTXFSj>J#B^WQ2t3Z-aQk8CMspmSondc&z zSFzg!tE~yJtK}FwevY7pT_fiDOS{ZGxh__^psSvKe%HI@rv^WYiOjd|U}Z3dZmAzT zG7GcK1)yn^`x<+6%J_Rw?dNWHXDz8CEo%F+Mx)Np(%f?_3u6__GHWv-EXh5`vM5%u z9QPc_lIR;RA>#>|EFqJ5na+!+&mNq7FAJY(6XCO;?gIWheS%Q1GcH+*g}Om4vC4WCEU9$KGTova_Xsn6Cxv9t6# zcba~z1Q)Y?LWNZt`$xQ2hu@OyWsTM0-%G~o@T-z8sr!rJ_gdDa`>K-qzpP0&a_+!B zc7vz9OQ2731bV0u;F7kdylZgxQUN?B`Hlg6yiJ&bn)KS!1#&(3hid8BF-k2EoRH=B z(;=&M2x7hbo;qZS4w*>EC>`>g4w+2IWjf@4BqSsh{;0Fu^nS=8?qXf>ORQNyW;H?Y zmn8ArtQHqR)(@~5W$lXfhx<&^c4+XO0yq>h&Bp`Q1gAatJNaURGzrgs{vW8cUdhq5f7a&FqNstB(=Bn^?g>0mxQ*S zgjB>J9>4lq5Yozh_BIi29`=VjaX9fbAO7%2W@PR!^((V6cdLG7CgyI|uanK>EHu?D zOv;TAQ~@OEZlZRRW#rRe{wc?e&52UV-hcx(o> zuU@^RGmqF0^?P@Dze&G?-dQnOsgh|%>UWjq67_yu{au zX}pz7%`9Q6La5BmOPfO?+0>;U=J;-_l06qFwOD0xX~I!_WwrG;X$+cq-m(vU;R$=d zs9HB9ua0Fv ze?h!rGrFzNo8MZrs~h1pGWWkXiYdDk&FHYN{p%GSXp55di!jQ$6og`rsLB<+*;&GH zdHb&Y6FL2ij4tQ(AzmZFTtr)u(bMf&D#8-{a;8Y zy?vg37ZBTnn~UD z0$h8Ueiu;Mi}btD2>S)~t|*@z#e|j>-E?A_*Z=g>pn2cTpn1=$9th1tVWl7Ccf!lzq#`FeQz?@YC{@K_6wE!qe_b zl;Kc~iw4dfV?}Gc6+Hue5L@-EsVE4X?B^x`9|huwmTT2q5%5$L#NWj&688g^u7;6h zsUxflK7p-9GUo*fRr<=F+$JNvlUGSKf*Kcf@UAX_mck7OJVQETGfu+>tSP^Q`IJ+n;)r06fB=2XC$I zw^3Pa)Rw_QALJ#P5`|YR0)}6OM#);Iu9(mvnL3&pi{{!4 zxI>OfPp!5hb@T$qdg$RJ*FgVlG1z;6;?(gF`bDGn%&U-Eg1L5I)Mx4*=$j?Sw%)AJ zGjf~v8(A;M6#2^5*cJ2T9G@|;7z2wjh}@dG+921y_1Y;`!}d@oBQ$M7>cparka_+B z%sUaWRq={TWPfgNxfho3K=zyq{Bqrdi}mjJvK%FqRg3F0^pKsi^`3sVS|Fxy2wSm`R3k~eI${%B|8 zXHCYEon7$qd&YWR@_4CVA9RK9gR2z;f@rAwbs4;prTU{fG19PTs!tF&)8&Q-rbP_JS_fh=PjS`vxvGme`Ddn&aUS1vM3C8x5HHz-~n|dhK(9?Ko_uy$WDo zV?R#-woL#wih=->QU9c*w$Oc8hsr#8t_-$Uj_z$V%v0gmp9Hc%ZbY@!4NE6}t5wu1 z2g&*+*cchE=O;Grc7GqETNuP3#!NKEcgj|Qd2d#nYX+F8yRP$&^VEx=JYIF{=7!9xt%x@dCe|bDZp-94~OA1SaRKx=J|jQ(?ZCu(yv( zO<2uT9JK${Qzq;zI?!>#_LT{{P9|)|+&T%8BCZmHdEwduEJnutDO`FE)h;52%95ey z*RXLN=U1~{DOSx^35S96?xVn}+5}jq)@iUxs{w0Yw(3QI)mc0cqa+uPPnfOAHBRjh z)dC_n3J%H20ZwuA>U{1_MG7a5LmzI{vr>1!thLVrBe@Ut0%O-HDxkw^qsV4G0JN|;2 ze2*`cyZ?@-d!twYt;PQ?UU`x-XRGU?wH7-NpOFMqP6iEFG= zY`Ga2{n(9Ld?kRA{H}V!^O}RXqd#mM}UZda>A!8WsXMqj=UmMQKoW@Cw!(% z=TQ~KdOC9{P0eFjzOrU0^lSJ#c`z+sRc$R_B5Sb3*>|ee-{*_GSx2vYkwx)7CD01$u576 z>-2nPCH1Gq3sN9wRJX46h3lk2WJt8qx=E6gCm>CrN0N5J?+8)B@x#1N1s+V)bFNGg zP=Po^#(ufGtf;pAC-p>?Z_zWX>h^(LniLVp2ze-K->QkM)ne`G$OR<|C;S;FG^En}G1#o1*f3a=wwnEMPP+%hTC zy4{L&OB-&X4YC0kW3|9DM;;Yc%xC4KHz2|~A5^UK@V-84c;3+)0c~eoSnJ`ZVe_Tp z-oC*SpVif4y$8G7#gDQ|#7u7hVzL1^s5StwyAVT9csMLxzDyj|N&JTWiLvZIrYPAM2|7Q*Eu6J%H-Z(fa_kJyFnnP2|1HPhKaE8@U#Pn$e1)34vB%Zy;v5fRT4axY>T6J9ElG@qzfqGlvadHXcDCLF z6j`e}vMKndqeMt2sris^^}o{sV^eE zebSkVsV@o{IXFBB-^}4d4_WX$6_>K$RgUZ(ER+1-v5fuE?BH4Ar8ZL770$P&^3*_I zpeVM7{8M-^HRGYy?65&0R_6?so%t?Z(13wu7w+rWPF()HrqH%pLY$76zf>I=W-K|c zi`ALt_YLF;KO62Gze;sxFU{pTea*;BM5fG(d3@;nuDW%qdV3Fyk3Gdj=}=t-^Oe#IEKqAOZvpFuw3o@4MQ&^e7i z)8svkKd%T_#yVh1(@%vzX{Iz$SooZpFSK}xEv*7(KP z^&5j}C?pQKGdnNZiVkDEhu-1j&dghMknbATdXwur#%n9hP~&>p1$kUik=-pjWmzQE|6_cAN{O9jgH-{?bwn7r$ z_5{rBc_dXVt>$hOW1A>^Q6)Z_v)xGO(VVS1N8`5N{t?*-BFt=@FXaX3QHw|={Zlru zjC8$cw+Iw7=#2D>%RF1{sky8!t5p5-b|#ptx)rz&>ndo>6g`kA97MI6i52r$S63o< z2?!J8skR;wN(ATyihjU;>|PRcWwMu)6_owt(d=yCFA9l{>D2LfMkNq0+mAJO@v9nx zi3R_AMBJx44D11s0K1S3Uh{62Js;RIHYM<^Hw(`?GrMx%ob|`vT+O(xESp`qS1331 z@Np9E#4XzO@F!KuGo9w9wQ3ct$s?vSx4fKxVZRaX`b)cyTV~WA5hHuCJ80Xv5}+K& zz}Noj8DQlLFA#>sVQQm62FU4P7n( zjUT0O?$XsiD$P5#xHZE3&Q!%cCMDnDq`68}Iock``L(z=5aFfeurN{LiV`JSgmov(Uf%Tb504n>%=l^eui;Gw&c>qVP9F0KTyIL)CcY{2ho1-|27P zAx0gwj9J^nSB!Tv#bz+xi}+NG_szePS!dM$fdFgFhfd9YDv;2h5UNyBP$MAL7x|w( z5M&rtGjjI?kF~-+P($a?Rhg<{e=a;7u@bX`7y{p_q6jfsBs?0tcB1gB->7+Bfnm?; z$ox7Tt@!Xn;Z_}olh>b1XRK8aiItwn$o2LYtTdXQs*4EP#mUO)Y%bYXDmNN(HBZZ! zMfd+t*@9V0GS*S|{~|RUN>*2QfXc~_{(o5`9!7g`!HnDAVgo-fE4Wwh&7$}b`^_D4 z0}7(Ro!RUeh4%OEN?shZfBPflTQr_GKmUGGVb@HRr}<0~$hQXj+UJn|by3Q~+0s2^ zu$C&LL~=i4m$#vD!6_Cu5yv$`1)kuZ?#%A?!8?<-@z#ha>Mg%@6}*R;y&}6beu`&d zFK_)uOe7)@b(w!F^(-i$&1Ry7qUL_Epzo~Sb(dUtzY%w>$ifpwOI>+I;Hx89brt6a zJDCa79Y0mrSy;Z|@*mn?k&iix`=WWdH zmo9T=cf&KCB%q;)a8s+wa?Cifnjdk~s{Nt)#3d)k5>0X;9g~XoFjM*Z8-vrs$D<3Q z`?vT6ANhxe_p>k>wk-9mTQZ>pc+Q+ z<8_mi+)k$8MKqgX;!mGt~KD^bz}QB)3uov zPHxz4Echu%UDnv#kmu5k2sgNSi%ic6zmmmE^;g+X<>hOwsmB47YLPA|D zJm^1vq|S;wk?V83)+%#R5ha;;VKt+%Tr3u1b;c~&XRY;Z+GUpPFy3rN@5pR_C*X$7 z1))79jpC@>Te$`2j?HEz>&4F-c?7$9>l1-obK%-}&IPR|iZNcf)hpAozE#VC&9~6! z%rYxic#PqDyp>-CuJdyEUJ@MX6hp7k6^is zXk*0eh%8oPboc4eww$u{R@8K@34>K;5jEV= zFLE*N65YkUfa>u@6U@c>U`Zg$newTiNDY75u*SDD#TQ%4F_6ym7cN*B}3*H`mH zH3FvU%B9BqZ1w#!$!WJV98Sc#5}?oud~)!mW3TD6*XeWRM)9Uvxlv|XtDp)NLoa9) zP}H{uZ{eW)rX+@JW`gaN33i2Pt^GG}itZl3$Y&iFO3SFI!-&64bM=HMIqZNBi+CHO zpXXW_S<~Pug*b;k0bFwc*Se12ime7$fGN7oT}WoXF-=ydGbq%~z3ppU&MWvWS_7-* zZTQewfNhB^v;9LH-$e?yoZOy>+AhfTFpt&7qga;xb%1iwnSwmlr=H3-k1@*jaClH^ zM!X5*)rTLvr?m^Wc>exiEl+eW4se2}+Zl1Qk5dQ`Zjfni&kD0bNAmBc8ejBd4)W_4 zPbZTv@{`Gp@=$5T&W~#qR-_)Z^Xd=N;HM<7iGdAcJ`4dDTx4w7FdOX49Xb*d`Xblt z>k|-fuiOdSFE1$BS?ggzhFcFS3}MUSH~zYkJ3%N14-e}=mY^aISiP0&g72|t28M+c zh-zz3wHh>$s#lcE0iBs>jxR`8eL-U^LRC&=Y%cGn7+#pKHquWCUXH;Y92o57vR(Ko zDG}@qR4wX&xs5Y{mB!j$IGBoa5|8aSd*lL!@L)}92#4RA8bX$;`a_Jh0H!`K+3f_y zt8Q=lZ@R6l%z7)|cP5h8`lLGYX8|)O$TUkjQQuf?cw%0|yNf?bDA7K{gN0R**^7tC zA&ka)&`I#B{uJ_zumV3rkEjWqih}hGQ`>lFWc_Lq^1qi_q&73+uJBq>tM`KpB4TReubZ*C zH{7aMNqLn7n0^@^eq4nxQj!f=nZe zsyeGx>e*z~N2Do~AAVfDrOMr1WNl-A{5M^ioL{Oc%tVv7@*Sh$6UGd|j6>7D6&<7k z+r>Fv5*;o^Yr)<@ihQYF5wZGdZ!iybn^WZr|Fz6TY!j(W@aRCFvCs$rQc%J&1W6dNu67r&le| zALv!I*MCT_CUU&hfnG%zgcQBXhbPjU&Oe#03c~NGY0G`pRq~RiR@DzrJ&IHjlA=>< zgZ~sdbvCZZCfC-U#DGrrgcTbE8)YU|#Gg#o1aYdRWRDy$#BSrw3>|?qJuS_;p?GSF zFzxf8MKM{((xnbrsxF>djY0DiQF>rb8Vg^7K-p7oNnzoiCkqx*g-qU)Im1&V>3~cl zETh(cAurN5O_Kg?-(myg7_gF^D~<44A7_%HYl^3KAVeg}AVm8eLge#=U-=e71OwlZ z5ZwbIQW^doAzJ(YmJq2rI}jpYCL#KsB1CKddqU)t+mR4;cL@iUbYQBB#P z>*9ItQfblxE>^JLXN=3kKXN) zQ?~h*s1I=>*fTpnG4BYpn+q zSSwP}lBNF26@FtJZ0#25Z9_lcvBCw~MU=dRQ&8h37Mgj>M4qCgSK73cl3%6tpzYHy zfoi)#Z38YH5bU&KL>?ZLMJ`@TFkk5YaN_FRbwxH+H(T71*j}B&HNsd#oI9+4f`+*@3(Z z8euaYZ(M3xOQoRxRtrVQf+t1vk|MgMirA$H0*TpmIRDBTQT5IUQD?pCZiu>{YbyCQ zQg;y*v-v?H?uN^ZoF)e^=*ca$OCC_0Ahr9cGF}C_?k}#|)HXcqDRU!+(C56&@p3cV zNxXvt8}la76Hc0u6Mc`!3&lgUENhFFWqou`QkK;yvMg8)u2Oudrl82HaQS^e#97m= zz4njG84qSNcIfn=boMN`qj*}}&=Yn$(Kwcxrdm?&TP*G7UmfE#h7)n$py=C0eEZtB z_}>5__=j+7ktE5=+B3IbYiMV_Yn>U!g3p%Vx&DTK1kdtWKdYjZ9AAts$wv8Ttv7s^ z+pgUyXM#rkmpu^_h>v@zzT9@7t#lmn%;r%dCeFfYl2QLx(x{jD$(NhuMK(?s^OBUZ zCFW|8oNv&U1eX#}4#FA$>Oa^4kO|EEoQV7mp-nZkZrJezcVqhP_YZo<-@dte(4K17 z-juiwj7mxCwgDhJmmiVVdBVYZQ^}h<%Io~m&x?@P5xoF!*22b?CIxmI!xQR6UiUnF zjR-`B2t`F`7;Y%$P08zucoBKs_l0O#%S|*KJdyf}`iP`38pLBIq8Sm`eJHXz+18dL zd9vD5f~S&weruZ}soQ26Z?4D?)gi23UUEQ0b)L%iMN}6$P%EN39^C$3xDtU_&}A-M zlakc^n)ZpL?n$0WK|)GWca*4UR8rK`P=A!9j(~q7se7|tBz3vggu3{P8mQnX+T0?t zGelIglAbn@s5SUyhSUxq*TuV%)N6g^3IC|Bx#1cB1m6t<3EUm=UHHxMgtBuJ;CjM; z7O=+x{IH6ZqiS>gQL;Oag}U^%45{5VC536I?n%+nFt zJ>x*~iDMyoVxip$AeokQ4tf{K;-=l6ZW}$}YXG8_+$E)U3Z8#VLlO^hiD(LtdueA< zkaIL3!>KzOHSr-M5g{WU8ONq0ksYLVUXD^srtshUi^<&NlX8ltIo@qDF#TYU&B&D^$dkNT(0oG#d6HY+k1xoRq$1NJfg{M1 z5a1`-I_#gz<3CLc^5zH#(tG@?9%iv1jPJq{J~{r6OCx9AH*@^>BCe}dBpnHd>W?B3gP45+vsCEuS9SS`hB zLc_W%iCeHPww8ITfW2JJWW--@BxkZdh^UU#A4R|}U{5%u zV4cYIo^on|R*5Q{1jlaVMN9QWh+^GXk8Xt$=~(UI2kL}EUE+xJ#?&VzdWt;#iMy{! zx$^svD*LgqDRkUkE$A2&_PYKIb|y-ow~sMY0=?bxk|EIhcRh-+6~P1L5wv3JwLC9H zk|xw^dc+F)iD`IAl0lD>;=GAS=VZp7;9Ma?oG0_l8&Tps$&eQ32}xZh6A8b8?c0;* z3TqvDN5zBd^u9Ie+bp_%6t$)S3C5mIic9D@6Z4d(2bWQ2PY{6)q zLb)nYvOEOLLI*Vwv^+nn&k&t4_tNc9BKM2byv$FwA>ply4?-9QffL>aX`Udq)UL#1 zg75YL<|o{&5J0}`?B4e}ay(HW>nO()$zF%%)GLDAp+!1K1IIb9M3N_^*VZD*%OuGO z^%bu?P6HJ^cG{>ID*Gy$d3;IUbR>Dz;aTpZMR^S(i#VPzPp)xf2=gY?DOujeqdOe zuhY@bInj+edU)&?9irzs(ZANwgJM7F5dA$T`au94R2tFtyZIE!~UF`Bv`u1Ljz_X7R*!y^aiIK<2zFPv7u6~BSmlOGp zJ;j$+i2FVnt)=l}eaC){&9J2J*wP=+GYE;}J9aD0di@NbaYEm*N>}d)R;K?#(&j7? zG{=WGw9fiYW&YGEcUJA0zA3G691|}^_{X6yZbhO8I{BhI5oNoZj8{E*<)OAJ?Cjr_ z%5E?6;#UhrUC|fxD1V*i;$4)>qL6J`E1#^6^lv>mJ4@ddTQ9C8hL?0dHPEM_b#^E2 zBPHT)u@394jLunu0v`H=$GP`)ZP{lSruyLgY!-ocF<)iA?$p5L)gw>7F8AT3{OT!< zex$F_o$j$#_w)TF2ZtN4^)@0`a*u?&Bkr0|6UNP6>*8E2k$@;x)VZUBkM}@Vbh!h$ zHI*9zt;TCn)Vxbt0)3^C-pE86=|wZ$Te)e@LK+$G#=Uo+tI@PP*a+tUk!$604++X! zB+}O*B3~8kve4JxDy)a6x@6l3drm zlDwZJ3Z{j2t4EMrG)(PY6f7fm6&KYlvv<_ae-4+`_PU}Yw0sq2CEryhj#k;PoOT55 zD0|L1vL&CLOY%5KHd-~Ot9>4dCce;=A_Ad$2HKj~Ft>)xH z>E3D=6=R1gc3b&yG5~p(&}E&_HO~%wf%1A%_jcZ=<7E-Ha`R4dg!}cyRVrlb;(t+D zqVNwhh0|Y;3kkY;=$o07sv)RVjE*P`S1m+SyuNrCITmz9%@(EH0DAf^%xvV;P-mN2 zvca>UzPOA8unfhelDSk)3Ao9IzVdK(8I+PJ^izw^dRW&Dfj-5f2(&Z~`*n!fp_M88 zcCMqs&NwcOrT})ev&dzIQx~1{LzkTb^+I?rGC}k0-Y_3vc`w3D4z41(RU_q|#TxrG zp;fKOfEq3*FC=9kNov9uo-rKrXVzwOkya#svQ`+Ki1ekq=iz0>{U73aYCJE)A1!b6ntL*-4!UYw_%N(01 zb8NEAFEe)gSCdmc(>TX(sdvI683eD!^0ZL=7>)px0m z*VpQdzV>p;7TD@0#eS;$IKg;RsT^;(ma@Yy_D&yWNbnEEOuD>E#vi&<=0c^ZL zRIOBJ-xlOmy}cVaaWES{&7P}M**{NbY`aX%dT@{YTl$;9(=d{z6v}zvIapd`E+m2l z_NY{OLVPdwaC;3yMJ@Jwv;j9f2NHo#=mb;X<1+dPyTN|a;W+%3yRmL+Uiml3KxhK< zKf}kHrV%NhaZcSVfcBpmK~;HAdnE&=;Vb=!U(IFBYOeXR07)AXg&UdXOmQPoID|J^ zbv7B|o8)lbCq)EWWF?E_UMX$+fVQpjMGwLaeZVnl_m;Y;J_p*}x*fd|h0olh+VN{ZuUf3~N}DG_ zfvwGSKnkEC+^18S0;_!U?k}DQxtTj>pzMN+^kS-#?4>k&Ic4cJF#ZA^19R1NdvVOE zmSDApcyXpCkVzDZ+B`5hDN)#4x24cQgE(F?6kLSQiw$DK%lUPzo#k1c3FmtXRETdy z!!!NtZ56u)UF~zPQ{L!08?WWrFM#K}5sIiG$T?ClN zM;0{r4}0^|%jZ zh8}xDqkC61k0_EP@ssz=8{In#aR!bSPa}{;l;e7QE@FczG=-}p+!BL3QFpk7fh^m& zKRO_A?!qVwa&|Fhd%f%TNAm)%&`S6Is9TB16tktmr4U#^Y$;52DH+EE%Get)}p!)6Q)-054iL{tB7NGUjaW=c@uowrrPH`X2iL zd4ci0C}3_9FpD%G1!ie)uf=mUm>18@gzw2^8zmPYK3QOv3F2M?;`lTPHm=(~BiA@@ z)yy8Miu0Og3^mT%I%9|e@JI(bX`uE3sHGaHrSu|ROp0TGYRI_6yVMxpYohZ2y5WId zNx&UCPxZ)Ka17wA=>BLCX2NpmU;KjS@^}?wil6nIJ83-ZG!;@G<(nyl>XPwlqcSWo zsKwPP^HamVV8XR192hJf$N7JmRo|bUm^5EO2pPHSdN9` z$YXN7GccG_q=AAZPXlF9NE%`c*=%j5F0zsOUW6*~Q+P3XS<=WLidB$1zL!X-Og?MO z0I@Q6ak;*QEqxIiOr|lUmfK&uZoWz1O;me+r_V3Z=RHoJjk9O52Gag%Qo+cdhuU`0-e7a6#YLaP-uI;25${X~8s7OD z2BU?fX&4M+83P94pLB!)Rqb$K@LmQCW}qOYU~m~PDHu$fq+u`<7<3jGlwGW0Abm^0 z06^T=mI6d|B>%=sva`xI`mLy#drUOJe)PK(ULT*3{>sMtcguzBDNXEw{gx-1C+mjd zvB8#T1b5#R9$BGG{wdD6*Mxmt3B2R!YDsl zp8B1E-hN|ATbJ5=d!ULv9BU$0U&pEc#HfE!+E0qE2C9+Bx5st1#lIVF5Eo}n284s6 zfg7>yScFfW%Xn7t?2k#uU@aISWH5K{=`JBWxu@>T%9=STE*@4?_%_04mP$+(F>%qg zQsGU6&p1QE?KZ;CN{0VY!n;a%ql6ps_9}12b-B0ENXEQVXxEXL?CH$?%UA{uW$Bi8 zGeTeRO8Ojg;WG0K^r1dCuG?>TzkookxVH=D&A*7fMG9H3rz?L>$bP5Ki)LY~lw!3b z(Rl~ga@+EOZhMVMD@eak(px%;%W`ydkLW=8qIPLbsLiM`yDhK51C_|O=N)vxFFi2Q zNxekAN;a?|ewfIr`sP3`9-BO0Y_Lf$!p*Asb%AaekQm^6Z;1Iy-V1IH>kM?msTH20 zGoAn8Uv=m4;hZPFGrk8a6x#KTxBeqFw4ZdZ&0kzZv9_rqzA%P>D&iIRhGLxRJiY?` zGM3wvg-U0R?lmTg_(}Kx;cJ*$@Po>Q!Vr0zt|t*QK==Y*ijMih)74t-3;WWmG>1>t zmt`B@&dbrDap}yp{r2@`W?rbR;Cz$nlM!8_Z7wGwuR}yv z^iiA$cZY~>u0|(3hj2=lvZ8i(Cor2pdmkRXxbcptM^zQ_cQ0UBNWSN>S||vFeBIsq zn+j4NIs2Q6QXkotD>cb3cP81H&LrcWb~MN~$y*T0bH&e6FGWZ6cTOD3wnP-MW0Cmm zID}Nbzm~_mk5ReIihi6suV_G)2*kVvT~t9BEG-ZDin2owRAmLqBz(zEmWP4ki+C@! zRD1CRD-j{zWMq8af`Q{F%fsps_KlDG1Pd1+-^?rE*0-^wtTV59`n3zM zZvEPoSNzCIf^NKK>(}m9cBsu2C>3Gr0Qu>GNGUkPH?Nz}u=oH;p3hH755#}G_mKB| zpf+z%;%TOn0Hm{Jjt_SdNSfn)Vn#n@JPsMKY_Bvg#e7jyrJ2PTQUpUTi*S0%Y-0B7 zDWiC7afn?z3RxtYZb5c`c>}F6xnxtmoBmGDYEZeDDqnf>MDBxSOBdedA!iR zk`#ntMM}bSNdRHI+NMBdYHCvY*r8AJjK7>#Y`Kd`khfH}Z^mD)Db8DJ`~^wjVtn%^ z2ByLw;JHiaYi)0NTf`eHgwGh-!p}L1el^LaB;%j2a)a>@fsD%?m=Q}_zmsLPN;IC) z?)CXCTWpYx$7JEyNHO~32h;8ITkrd=e^pn0GIOvoz#~gLW`sYPCdi2>VXc|ijLAD= z+zy}XD_>>%jJ9eKjW?tJ9w@<<8;dG0(bvLrAqu6N1 zq~z;FY<-Sa0sC02GGMLcP>%7SXnXj=zbr8spPE51Myg$pTE$*@-GHhn;nnWvM)U-|ybJ}QaW%=Jc8Arr*BNqhl8Y7wO6Mh`ku1)3&mKr4|N7IC4vcIFC?y9k|tMhUoo z&%&Je0OM88K6ks=?SaTGZ1qWb|#JeyLCEMUu5e9NBBTd_J4owR!o5)E)V?1X6;iAJLe}nYLplD1yD5OXs zt5DCuP^rw}-uB*v^2!E`JYawVsJ zRbqIX77ekRF@;msDtBk1N&7GoZsq>5zj&sRqf>;LEFM^mg7nyjhoqYAq1njT5_2gK zZ^ATwr+?l737EM>pS1Qqsl&l4C#`tRQuYLs$G+*4*7UKj9JZE3b)l53VW{?|NV=!N ztY}_V-N_kW_L*Niw#dC4Xf1~C8)F{}%vEE@rW^b7Go8l9npHH7eO;Q0jyFbg2B#C= zNy6B#N#nOR$QYE`U-y+UV9oVe3xs!&vPV>xw9}pLmv`uo@!H89I*jLPj2w29)UxfdXUHb2WG-3`!ISL+K*(8m%)#h72pHpY)dLbXqnG_&IzbT$;!~v6 zER~OH=xq$1tfaAsO%%mhV>i)hYfHS+s=~Nnb+PbfIPY77praI#ZGlW7V8v&V-FdJB zpLe0 zUkk{zNwdh6@Ov8^=L>j#PkpAHFAOi3c{%5}-|l>2HizMk^MxvWDH!#2)Y0rpI$&^e z+ZSz-c z+?b0|1qds)Jn+MC9V2!EKMar3f^YG|@X}z2r3K6_U~U0(3z$2;7@RwXT96`xH1E^( z3X-|o_oW!3Mis(>!CWj$m{ts{a>5#gFAp8Uua1a7)qy#zeo-AC%53^(J6FzTr(kd_ zFd}jtyQEe2pzT_&-^u>xR)AJi_wK;3~uq}Znv znkbw-QBJ_`)fIvbf}Xl6;f{VTtDK;NQNM)btfp#7vHzMLp25`?7tK24`aZd6AbOn4 z?f2Qv#9f>!N?R*wA%}#4*JTb@ZVHMX9Se;0F8F8vzK>H`;3_Jj!TxkDZ{uZyTcbMR z10;<93Ud%=8%sXxFZ0WKSI(TcFS<$!x{-LPe<48&I>ic@+8lw&D%?o5vefMxq*h@W z6{W_7WwRTvUrJ*{B*(dzR^pmHkb~&-UD1)BBobkleVsf;paBDo;wVJNJ5r3TRu|re zW!aL}8tt~P=sf5^aGaOtTTB}HHy0=Mh}M$VC#yy12i$1&B)P|CyuYJ95P*X-OS^DzDLL8+`%pE{(SpYKrLE|UZ z7;_OZg)Upi%ARF3$ZAky4B5h8Ta8h>X;_WVnA2Ee9PU4E2qs#MA$E;%&Crw7`*}mV z@igiibe{G5jF0!#7}tGnqC}LOBM}Atmy(WWzNMa%wjmc>$zPN764>d&xZ8A` zr2hxst0-sarn98HN%@w3eoo~v@rCVU4R^v znz*z^{Y&mI$xygJWw;^tQT3d-o+i?ao2b5E@WZMp1w)_ZN%$U`@FfMd^1gw0`TKys z-GmJuubVw|ntG<sh%ij*-q*GD;h);Kl5!#@NzM-&HJqvbIWZ_UL9(1BlweJqAF%AtKO((&cuVP<9 z;%XiZo=z+Be?M4s33J~k&R)`=eWNb}KKak-*yR%YONl)vz2Em$=FTRXNmQ9TSzgxq zy5-L2MNp}+=FyBcs{NC%ta16y+V#Vh?L0V#x5NE!C++e>AMaa!aQo2n9iN#P7jUxAM4osF)DO>{|WNkS-UTL`ObG* zrLLCcTelB>nzWQQ_&Uk+;7bm6FOS6we<$g`jORba6C{2J8)D1%-LP_5v=;0pU;=$# zzHd@=`Qd{8F-d#4VCYLcmwoW%^Zi?#m!UWF0yx`L=xq4t zo!PDOwEiiL!#U?UIJ`VQ@!e$~v@XtFuhLFzT7ED!&W}=Y;T9EsLvEWq;}h2}KYY_l z!Uwmh8ViOV&^3R#eBZ=Y>fEsGgV^(fUse^yo*%kWV&juGEZ;uq1D+ez`=&{|mv5i= z(emv#d<>BLuTUl2u#~Vi(&e8iHEo|X_&f64H7Qqp@0!%Vhib{hWy=pw1T+(uX0%kG zdWCA>4TTrWb3^UMVasFN3;%Zz9|wmtE#Gix=vxwT2xP2+Cs6ni{0=?I??W2!aU9LC z&*>)vpMrp%zA5>Tq|Vc+2TSU&PwkKzc|q>hGeFD#kG=PRi{kqF#)sbBMMSZ$1;vhH z42n9t6kQZ_t!ONOun0;Mb`@h=#EvLQY_UXQjIjre1&sy7f+Y%;SfkkDDn_vcyZq0Y zIRnd8f64oK-uLtT-_QFD?0n~Y>zOlm?%ZL8D2AcFBI#454G zfhUukKD66-6_|br>^34B3U(V7>Iir$!G|jI&`2jJ!^%@GTE++_F_yVy{&H9^)XsPp z$|f|bs~OdGvAu2w#V+k+dAiKVDd2f3^c_6$VJCir3Hn#i?fbZ`$5?psK}a0ylx#ab zV(YO1#1s0IVDAA^EtkP;p{b;3yi-*~O!Ge402+UUZZ3%k%?&Xtv=tfG0MnHE&x-U{ z#sOgGE?5?!AuSjjSapDWgsEG24N7mPoRNcXsOjx}Ug_(XDO1dJwTudgBFy(fv)Jf@ z@nNB@JeVN0!DF;RTGvPDRBS1CT?5{mtR>pOr5zS*Rx0(Qj(7#9_B>VCLEpny&+) zJBh|r!UDOK>V>}OiTh!vq47NzKhTG^w2eUjdDJ$9rkpz6&d6hc%5S+=v@0>NXhJZw z1Kt{-N>Ah0SiQoe$Xo~Lr|W8`g@f@8j%1-g}s5p@s|8{0x76530+ z#0J_W;SzGrfndA?^BypL2OnY3Kqu1AHcjmYbF4_~iJ(A$Kpu#*H8tQKQKvh5<<9oS zLpX+^(?;9}_Owu@6zcSDKia}g0>j%8ZN9;yv}11Sv?K4-8Lc0yecs7tEE3M8A@ufi z-O~L;due?e><(C7dRH!U>Rkg|;T`n7_nk^*+j`f~KLeBMGML=Lp4CZX$;Ee|w_~;? z+xJ3Wh0Ex*!RQI9#J0MP@d2#Nh~G9W09Fb4&zn|K6i zZ>9LXMDc|$M?vjmcfYkD{zDJAy%cG$%%?iRg4Ft&=~l+tmRw1rbgN>(xlUJ*xfmm$ zTTX)#n`=n72aHO6YTO9A^U$@20%k07DKA&fGlKnLFYHf(KI)^w?cj{dUHyCG#P44^ z`y6O9bN9Ev&Zq`Mdl)IKQSMq6$Z@d#2Xvd$axDZ?SqvK~SSR3(4Yt=-EulGqT_cz` zgFy^WR6fj5!J!gd{mWhLAy@3Lqp4#pxCpSygK)!5hqR$pZwX^M{%Tm_j0AcE&d?8R zZtPKAkiu5B_mL}nLeth5C)ocN(1;Rr0yWjJY{MAHCq{_=g>H62CW3ApAzM~A(LF!Z zO>5{fin_U?{%765ist`OH;*8VkLe}~+&`k58{jPHrloj=Ds|Hj!~(5W>SmwQf7VSv zx?ONOs4WfLn$QH{c`Tc7G&XD>0mS&-kYY%AsfmLFEC9YkM6x z&V(3q{c1?PQ^}t1gK&4*a3H?A+=c z<^Z>=w0=|Pa_Hkqb#j%ku^)te=uz%E7+hiG1Nz1IC>Oqm4VAx8A3|(Q>tB?;&T!3y zvX|N8!?L$oDtiZo`*H)`m)W2~vFwe67;s;fzqpZh%tBa54e!g5Rqo5Lq3QRZ?#m=d zLn?d0Cimq7&>vI{P)*pDyT(Bv_zDEvq9sp_JK%nU{3}b{RS>93sXGAQx50Nwa9k3` zK5?|Ra`3id-1cASroN1HqXTK!`?AoF?n@KhEP{d|>c$sh{F83JgQmxS(#>E&2V$LN zs+-gPCc5bdfhu&fOuROgx;Y2}Rnbk$f2SLq#}|i;GMskTHWSxUR^`C_299w1V;c&` z+u;3{Z+$_SxmHh&FmNc^!axHT41{l@1FVt+HLlrs_~hIM6dKE^*V%b_O%1BO9Msrg z-5?m{s%D-5+t(8y_f7j`IIx5R2Rtx`14leCQ{~|208}#zbl~~G1y+<0j6+mlfz?Db zz^X0UUpcA3G(?_y0v8i0v4w@qVTF8$!ql5e1GLQVD|K~K@8?bfJ1vK_S4w?#NXxCn z5khmE1@sa2KB$cbz-Twj>pm0ghUHDoM7v?hURbmrCVOG?vOEQfZiaTmqGS+Xyx)y& zilHE0GAaSQa?A30o!7jR85+6arkO0@kZAu~0QSF_V1ea~D+uOg`IugT8JYz{dPWzi zez=b-%|pE>+xyhzzL$8s$IuWSm%rb@3Q^E27@)vu!uxKhT~TaE9h89P&M2O}Bqw}5 z%1m%^6g3Nqc1cD}37Q4np=KMwQgHAIAsF!zv|1hX6b4$ghlHvL+H%5ffJKu6cn6Pz z7qDsxXs)yODbPDZAX$k++6iTeb?OP!zF=A{^j%V4HH4m$zE0Zfa=j~>HVEG{bkBv) zdv`N5fQw^?XK92cuvlgU>jxYn1cT~Bcwr8KLA7{c3d#?C%ABOKdl<{^(Y>fV|0eJ)9w@%`R8)Q)VL<~WYT4*k;^4$l z`89%l>WiW#1x=ngoc4i5HfKTB^YRXWI9&P-Wn)<7J>V)@d!TKkjmqJgcnqdlvb`nt zA~8pgOX4xSs;6?eg2zJn0CF8kdY(IqsA~!z9RRBvpTj!GZs?$QQ90be;!z?Lj}j*g zoO%<5qY_e=N=P*UEl~avS&2>BNo9$-n32-E+m<^PoUUtGzEbx&w1;0@gC1JzqgG46 z6<4rTrrkaW&c)#DRh}_HE?yH+%c5pW?8PAaA;`S^rUqDJLN)UmT$(d*nzylrIRp2? zZLDF=Kn-&nYnU@;s+rgE3O#m#PjNIk_F=7Z3~H4#(v^9OSLS`{ZJ|~v!CIw+YLz!a zt@0Ral{3;+d0ZPGM8k1*PFRHiX3_Ar7KirXft^!sgR}8q4IgOjFWY?ue#fKWyAhUA z{!I#^{NZl$D9e-S;hR|Sp;?Wkz6OH1-U*Du;0V69SOhucK*{9t;eB4Ovm45%!JDye zVqj-6usw#zG^SL<-~l!YK;6RhyGuVVv8kPmZM5SE$!TDvhYuJk)EViCzn%R9=T5 z5m2(qr)Ua%@Y4Y=5~>YO4$ceoW}YLwt|02otxRP;P49^6AYC<<&Ov1^>I$axKhzI) zqTGb{jMFdgg+~p|_O!5r8xbatp&8&=mhT2P)=7oeak$gqL$xY=TEa^%a&U!8n0eVH z{f(;0OZ1T&ho34hw}S+P@dP1pqbsBfUlMXMzO}(_W+TY3L|&F(Pv>BKAhO65Z^TD1RVJ12K0$dar zB{?lT;EcWDbFU?}T3r%aZW-$LGIid}tHL0a%pZ!?r+ckvTUUhhXI%qiyX*tY55b}} z2l2D?ma4Qo1vtSw(d1$Q4uQgp{J7MlmA}t%-AVse$MFq*u;3S-_vu!LUR%Ja=sSrP zBlWB+h7q)upEhs7_Tqi`&^?Tr92bs3A8`Gv=vA=z3B*t2!WWj&I7K#N6@(%i3*)-7 zH=^kTE*)Wy->I@v`;>t7#J5%zBHRL-^pb%%XX&9%%khRMCa13+gr){A&C;aCI zfNEZ;=MIAWr?wCZ)p29<#n}FbLbWp+g3Tb+BfS-Uddl{L>R1h4&%gtZZRr_nEkSiO+Sty-k9WZz^MGng?mb*H3#)7O{29mW(n<6()y6W$(g-;R()YKLEdxx3nPO9d~ zy4WUJby1s*UkA3k=KkJ_lG`A!rx5)6ir`Cy;9sfc1#=MI4#LZ3B|!<1;=nRMk!bI8 z5W~#aKe1R|MmW=L2&};Q%&RXaSZPt}q#ynWsxKp;atM zKL5ai!~z${NGmQic85wrFddl;7YrAlngd1Ym@@6;Q=r3_du-Y;1k3S$%+A%ql z3bX{0%@_cYOin_$k3~B z1ca!@2zYliy%cmWto{shv@^dOPE25JU7S*Ey>*`bs`l#$fQlq19jywbyUP zY36VbXK1~JR$1j@+`=;jEu(~oN*I`M!ICyGGlVZW!vjKT^m__R#LZ}m_aQovS=C8! z$^s{N4ICenf(h1)rpqu8*3jUa3CD1#FhXTmUSU`TDOMN~4o71%onUMhCe9z>97%@N zJ8M|dWDm@o327;e0eFPd6v7-zhSmPYRsBH^Rs8n|@nKes;#*btL*1J8FdE*#Gs--k z!1`D)cdf#zy`>7e@%kA5xynoMh9}r;XbRyyYCvVdF=cKeh<{9(1I3>!X#@5^O1zS? zkX*sG1HK;*RRPSLg89BDczQI(&~V<+1cl2uU(f^i1~p9yf+{%0SW+KuNROlVrVbiW zMnijs&g+jxcwV2BJH=G)LKC?YKyG+5^*FrUsLlns0W~?tl-Z)(>pzei{QY6cM?r2l z9{3Ttp&V)i>9gQ0APmTg(rb)^U@ncM4+H5_q&W%c{e9sv1>?W`!qC5>&1LK<%1}GN=&JC_4mc!0cQ{W0aJJ9UfFmf7ztq#ld*e$H9GB?j9=a z`w4qLVgH%1Z!YX>3wsA)|E@iTe=O{83j1@y{)n*OE$lZ4`xU}IL)cFf_Tz+ogs>kZ z?0X9P&ceQxu&*!dWy0P}*gx~c9PbMIi^Bf6u>V!qZxQyZh5c8;K26x`h5cw@KUCP` zS|jD|-GqHRVc$sDTL|Z6CG2g4y`8WZ&(}#fmI-@jVecaBU4?xuVK3^Zu5esm*f$jR zErfk5Vc$mBw}U;lY2msAr>neS4i6eNM(pW}HcDy2R56S-1*E%y$+If$Hhg6DxT=h^ zgr=L$MU}3!4UW)Q!Z)cciqsJWK~0JRBl3Ht*O0^8^73>w%x?SHmie1m$l!guU4ZZi z3$iE(@`7xR54%6^-RtsGK@qC1(Dn+l$O9W?=+!A}1ju#|v4)4OTcAZQe78y0AYJ1a z!7`jsHsQ&P6@FuQ zKSX$wlh^NbCJ=_;w=RN2PP3H|~)R-MiC3N=Wow#ZBM)<9*bci!Uw zbxu@gwVU2rP?pdV{dAjL5uDx+6bv?~rDUI*emXGyl`6dseAUb{(Beu^hM%Po$FkD{ zESpA^T@n(-Pe@u6&KzK=a}G*Bg9gU9*v4ayVH1_W zp^3ds+CzEJ+#0a-9@w%6!%AE7$mAyX*XdxUHIhjtx_C_0((=a z7ggtOK9ePwN6Bvb^~M*j3Q;G^MkQ%ATK4`ut{J*q?Ze*_`Yy6rx0!I{f4b^(#? zIur~KL`XUi(uJAQkh6I=Z5_bYEFRXFJ^oadSOCkFVph43Rg_AmgS;++cj9F*k4ngw zTnbf9id0RG>)Xoqp8$9K_RKRCsN&BSTapsato%mOSZ$6Lfc%hj1Lm56+Gb15TjsHKZm`~NAlzK4yj!+uH)Z|~xF#%g`$0?RiXo$TF#iGtfpUQ8Kp~=5P9n1f<2=yQ z#iAyK`o@9qP8+D?B>bTFkDg+9F$BCAa9y_VY@kJzJzS8hr$J$V2VTVBUgy`hmJzCHog%ffXS1R7SLe}>fv8@S`rgm(}jis(EqSSdKc z*ZJT*kqT$yO72bhykKw9FQUQ^o`#rHx^Q_t;5vhmh?5-B4Fa?6^g+?kN(?g=mcIrA zh_u6=AVWop@ZsP9Z*dk5UxHK)KnY-^?}2)5FqpgttBrQ>riwZ}!vOk%cR&-tt{uGH zj88v9=ic7nhRLhp!y(>a$AB$d*x|ZsGqZ#!&{zse&%m~0Q2NYFbV^@5M*y%t>I-YR zuE&(p!Vy4a$K>#RoWysOTBx#pQ4Sz>YLiI z0?Gt<820uswyFCDjSL*N!{qKs7{Him!1jL`h5Wk$0+x!c2($U6m!RdpX1WPJ0HFvaPs8B5ENxWkB!>c4EjG2MLU%+Tb zWoXIuW))Yg`D~5ugFbSGLN7?ncMB6IKn)gP!ufr}_z3INN}l5x&&p`SKk4K9Ngt0- z`c(U*&vSV9x>5yV{c8*7ERM-N7S6%smcRg#@OwUpD*3Fg;v=jmA}V86RS)W2!LGN11@#TA;sF*dDk2)vU8Ygw?_H@|BktZ_%n>Ehyc@8MQAK6w6-B35ymoC4oU5lt_{ zcE-m{Y!K)iQ@!g$!$5~UVJqpeCpH$gKAI|VOp3>DCdxmmzDoOz+GtE0j_x>^^t$=ng1i5A(yIzP#`-V71;)Ey0+hhB z+y!5Gb@V!3-XB`oR=3bIE#Fq{b1CUIM7Mv694x5rcbyF%ron!b(7#OUwi-fmx?$?{ z`s>65f5HSisM7_D)n@ASiO}wV53L>7)hTz~1V#s7C!u}m`@%7V!9f(rTpXLL$QwGg`A_g11e4MrY>r?y4PZq(PY$iWdV3mujrdR( zJ*A%D4wKnChx0=F~o|PjwmBT3F zF>{|wlTU&b&oj&%WOp)tbq@qibH51=aQ?RtKqo%{rnz52R_;1gfnKu(uXLvzKr!lI zG3q+>NOS*5gtcO@s>4vi5bz#Y87S9y^M@B;lb+#}3K#hPqFpdfkm0odJRGkyzAlFo z_@C`xXh5y-|$HcEPbTjNdW20<^*u91aMYYJm4cpv5ei)8;N$p0l8 zFjU9kLXNxcBH{_c9Kv;kiwI{B>IlOKmphB`_Y$5UyhYfb!aXN$OZh4YI}!#FMiGuD zY)0`H5Z_36i0~BQEyDMN)hS**LSI7Z@;HkJ28nkh`3!{7gu@9ngf$5{!awEW`8Ol3 zl>8~-X4ayA2SO!bf5IrjB*Gbl%Lz9V?jt-!c%AS$p|y>ej~k%}p*NwDa4=yMVG7|K z!exXT33CVw2!AKML->-gnl0&p(3`Li;V8n%g!2i%Biun)KzN6+jL_CjOur^!V?uAj zUW9`Q#}G~>{F*R}(3x54UZSBQ;n-X>*>_s?|Fp4?_9Ks!>_XDKojfC?FClkgJjwI|w*qzXW zuqL4;VVR?-uRjSd5gsMnPPl|{I^lT2NW%VvT?su1s}a7Z^754M7U5aKT*7R^EW$;E z(+S5DMiK@Qb|suc*F!4T-c)}E5k?VyNhpQ8PW4hXa(~IxQ#**SW8A^a3^zkEAd=t$wD zcoK&77t>9Y*$C-m>TCs^(Y$ItQg{}3l!)lwa*;TsvgiQ$_WzJ=ji8UBB|e2iwUM>NA9Fua7}4;e0Z>wC`hdO9<_I>TKUUW4JT z46n)XS`2q%cx{H)VR&7J*JF5nhBsh%Lxvj|p33m)3{PYD42I8S_$-FcX80V2&t>>L zhNm-pKEpE@zJTEi8J^AXZ4BSe@Lw2ST&rsNxykTb48P6rI}E?e@IM)TkKsm!-)Hy( zhLA;TXr{4v8blY2FAI9BMq_$8Nh+(P}Zl<|MU@TUxa#_;D1|C`}u41dA!mkfW! z@Yf7~!|=BZf5-6m3@>Lm$CL*%hMP0og5j17w_><8!)+LD%Wyk}+cVsO;f@Sw`6$XTKUUW4JT46n)XS`2q%cx{H)VR&7J*JF5n zhBsh%Lxw9D-iYCi8Qz59Sx%lyHkp(^%e^P3E^Sj;9<7S2mdA7PZk@Ked(0)JuizTA?fddQ^RY9Qun$7z<@y5az*HY7F4+93VW^x z8uZ|nE9|)*)*@DL8V9c6G!9(BY23Sl)BIrtcVW`2!EjfG)3|s={AP?ljgwdS!+Tl6 zmMcOJ8;095oW{c|;wu<`SURyvdaxQ|74Aq1%@v({I5E5$!(|MYGu)Zs)fw)>a94)c zWH{?zoAGDE*Ju2jFuXOxTQR&1!#x<@g5g~lu4FjpRP}je!EjF|e0zp>V7Qv$y%`?F z@IDNmw|&XB9eeA@cddl_q+@*>uK#U^uNIzmUUeHdj8~a4+??UX8~0CDq@Hn}yBfkr zr^|0L{1(F-*)Dt&X;xQ0<1ZL*YkSP4F~cpG^eq|A`DvnL2kOYve}()!9XFXV+??SS z47X&s6~nC=Zo_a}hTAdRp5YD*cVxH|!>ch|#&9{qof%%8;VumKWX3&ji3*5#W`x#G_3Url*dP2VC@o*Uc$swvl`)Gs#W@?}MLOnIX7L8B?p?(JD- z%DJ8%@2l{AZ&o~cTnEYv$Oq-qjN#Ty`|gtV?deNVMa~&uGWOCkJH)N?(H~aLDRNG` zkI$#0=kpr=F;=IP1LQ5cJ1m zrr1Q@?-cBQ`?T}HJP3c&!p*JTu=B4Aikw$Zfb^~Y_S8O2$hF&As!nZPQ{Qd!-n4-Y zB9hjo6guyF0rKwtrR9t7&JLLTd5z#%y-T{x9RJPG*wT~5>A&^t@$0;1K7OUIbXq3; zD25+miUM>BkI-6Zwm(Py2vt>+BK+UnL6j5!@RD*^ajkq^2t^sp_o@3QUS{A?SR z#W3*=49{osAH(=()%rqrPFLu>>pi3=3%PQX3EyGdW6vR%9D8kUy2pIp@DuzI#(yl6 z-UzEx3#M5XIsf=M=vUvpD3m`NG+foJp!*Ps%Ji`+hp2+ZV49|(p)KuSF zi7_Mjdc!p14_|!*3dT2_EoOkVq^7%v3PbrN5M23IK@cb#&HJxN5 zRqIX#{c_+d2kn80spl0BA-x)CVlIBxNYCP&sHuN-Qc@Mp8fyO%rnu)WG1~S44;u=h-)wv_EXPp;Yf&3G%|J?8NRriIlNxkO9?F?$w zx8Sp7TaG+37(#u&Zh7Tkx7%gQ`<2J#H27h2?_bUs&)gfn`cRVV!uMYu%~k)p*eU1HE@kKj9)>TRzYHo@=ftdx-r`%b`eluceOMX1!eB5H@v30cr7f#f8{5@-|qi(>qHt~t=RawU_9$S#@ zvAnb0ncs%(_Uv(Ryy3-O?T{JvnjRNQT9ySYn*My-#FgzQ{5*EZvyD4<24=)s#drio ztj;z2Da-lCa^H=y*4Hc+ha{vduphJT*Ta2(vTNY=o89kI*ZutPWl_|Rs<|tohKxw6 zx%*0ftHK420f8$nJekwAaqRpj2`O`{uWYAW`CTo2*J*zGjmztfxMlWpj~T0*x8gel z^?0=|^zQuXmcg4gML6oV1$42A_jJ+)Ts#-fjpAZCEifII0Q(qli-F@9@QH=}mx5me zmqe}+g1drC2KNXdTmr-p<0&{lP6ckUoG*mJ5W$dUB&Qd0AZr?ETZeUZ6y|e{{lt0R z#_+0|*yOI*KH3P9YXJ`Wy;bBQ2z8!irHX~Ru` z<9NUbkSPgdYXhzm!6kx=hT~YSJ?uNc&y#BlGRMN7w2g((Nf1&CZe9?E^$(1X(Zz(v z#(b&uONftz@0L z>H%BQ^}cZw&c8L`5I_Y*GS$N+()U}fsBc4*h=bzC#wSdOS7=irw23G+#np5ZuaAxi zKPo&@5gr?x5D_j0E~Icd9}Ab16h2WAubrTX)y9w3;R|rwX1$ni`TO#B@Ow-6rgrt( z4)C)iBq=x!?5c$Gu5h3Ocqv!d@D)co{BME(zsrZOgyQ|dZqhixKk08scd;B~ZLeBx zupF3{nZzxkokccbDd9iee^GEpjuP%Iyg$V|5bwhFB=A4Q|J3~}oiBUeO72zDnZ@GT+ti+CQEgtml^gmS_fgl>fO2o;1)2|Wl~6M7PMB=jci zN~k3CCsY##5o!nr5)L68P8dcQNf=ESOPENgBTONjL%57Ei!ht8fbbGwDWQCas4q`K z4Phc-CSeZYB|>he7*9c{CX6ObA)HJ&hj1C;KEeXRON2&3+g)P%9)udg6v8aRLc&r) zx7}hqC1E0A7GW-7A)!p8*T}S+N5xh7mwROxR!veTEQ_GZlUcK9CA1Y+opR< z4sEyG;Ri`^T_Ft!&UFWD4d?+6x~YI8;Wrt6%^=cbIA{s}t>D)Ne(m7r4!`aYsVgMV z42~zmZzTM}#z*O}F(i%ehK(P^aMWmXE=)HuQJWAY1>?f7sS&G4)qY2$T@xbQ^j zJhjn^e-H(vfpjXvRq9GnDUyl*e-tS!A|Y|&r<8{I=p%KCB&|-L6faz+umCj|)_>r@ zKtT%d7q4qYsi?|7o-mewsa%T}L@QA)EFmsFMuBB0IR;BbSf!H0JH_;(qI|6Xun|>4 zgvEu&hmY1q{*zMKa357_RlR?pxk~MWT$R^H(m$hT)6ft;a$62p_i;~@Pc(c*TrHeL%)jW$?aqDvV3P>`_j_=Nb0 zaS8fl1(XYIaw1d}=-!;pBMiL7NFSyQ!MO1WF~Wl<>?7W7+qUKU3P} zKtU2lN{~kqGy+x5o`s1&oLh84WR(C@nk%>|Ah!bY3mXs0#JW$LG70mq-~t049yvyz z3}GZ*r5u^umC@Q*cqEcGAf6<@^oWTJ*M%$Mv~i=fNmXj0|CM+j$&MaioK%hDIpCI< z6f+(!uXxb~o}h!`qm3k&ME$7Pn1~8*ZkR4wA3t^kl@92)q(G5~S2Xs6+o6Sm<07Kr zVFl?VM<*od;2;K`5f@n)gvJFPJ6KCuvQ1LPI(VMqy!;k3t)f ztcTL2kB7b-#226X3Qj2gz#|f*BS-|chy;*Vn-m4NsRFq+ULS`CQu25#1aD7dCm5aD?MZppB_ME&`KLNf!_H!Ny+vA@5} z$4cQVq7=)S;5Z0(?&9IwK3anS*EgW+4QI{nbS5&Y2oGx#A_5%(jm z0mL}{$sGp{F?I>eHJKuG*I(&9^)Yq?EePaCu zH%@*zQ@g0O@2HDr0gac}YSz5(YD~y{u}$9G!A>(|80!pzNiijJGZqk5BS3U<=JtAdmYNZ z0w*tD*mk|G-}a4@>oi)RJUtJ-lX7@QbBB`2`HS4Q1Y#jo*7@Vgz}2S?h7Y~AY18my zj{a7EkFL3|sQ=Hq-?YeB7`6yIl~9Bo=lxo1?Sh{NZ&=;ay3_XFBZ@<>8SFQ{FI8S% zu)fexXKa%QsMEcJIxIOBl6Jwj*PZaj8!mT~cio@#?Cw`O*P*#i>*_y@z1&iM?oUWf zKC{8F@V@aeEho9vyQQ&g)$xyZkD6;Dz8!abUCsNw7I?I^t(6cTSSMZ>1y^=xrrctw zNow%wLeZiYzy3BXYDrt4HCLy+)@~kfeZq=0itGWe4j$d)zNmNbZA&h-P5ztbg^l}b zJY>6{J#`6jso{HV%81Ute_MO#%X;2lbHCU4W!9bvKYkhhes}dT;ZTb2IM>e@oj+L7 za8Z}^PIfD7V-oit(2iG>9B#H^m2tFdyq)W+R!=*ObLpo(aC*(%fd13!;0gSivgn0* zuCDHUZbWIe{^->WHTGP-bt6fp4eISNp=NPe+@Y`h`kgtxxcQ(>w|;N_=lYfFwn0Z3 zwB4)l;q%ftO{N`*vmcURdC)I^M4OjtTjxjhhGxC?D1H7L|6|+QS>t}+H`_mEidp#n~0>YJuFTpmVyHuvB0 z?ITs{uKW|`L!R`DzP!eL{FIDweV_zIzWFoli>I&F}YTc7EfrTWgw_IP*ey;;VBGxrANzP`EL-|TVrR7KNd_oSlKS2=gK zTDjUNNBMl&cf{J$UaDJtu zK6jpn8s7X|H0ZDOie4*ThAiD=|9-34q;;)(#VkJ9phdmI$2Ok5aB2LpPDPG`u6&cZ z>e%x2CwsfQjW2bwo3s9fPTsJ~TW9s%Eej%s%I}?AYK*zqtb5X(9kVuO4r|=mYo*@i z%idqz@7ZR;tN7*jlnylyzx>)!UK;w;IX2(jH~rP|RbM$I|2(==EkHmzrb ztdl=(SjZ{AJa%_fj&aPKOY*zRek(XKXs&$FuAznJ54;)DetM2Y?SLSQ&c}mmZ|06P zyp9Rs5&_A`}^mI$0kg< zv*O-mpI6@}jGEA|WBO6!&{o%nT<>~jNO_OOu9HL757pmmHemFGS`oYdED5!LcRQxD z(d)A;tM#+@v@i3MHEeX%?~6-I{;s=eO>I8f5)>Hue#(J%mdAT%|MmCHD}BCSn0(dl z&dNu9M?0-{-SGR)on_UQcqe~#D6r(z(pI61d2d9OO*guLE` z1!qSWzg)j{w9oM^zYH#jby&4(F_)(v)@|N_Ue7yS?jLNtI_^lLdavwK1A2|QwDIEP zpqsWUe_WyG=5)PN3)AM5U!Rvhu{@9z>E@W%Y4)2g_ndB|j5^Pyxqknr z{`RS-E!xdUMe*;{nh^Qs?{nk2jnBH@uEvz8pyys~pX5AS;3RX2SrnAKUe+v3>0;K^ ze$Kd4joSS9`QzhP=Iv<7vR<|bqwY2}?@cdC5FI|~^{ef3bcy#Ha z{mW0ejJc4P(MBjRau;K#FOPoLqULjZKJeL@bw5t{p~-=@(}%4&)hm{N~bq$5-zYJ6#_B>&&G!eBaeM)#K$K-hZB*Z4*kIc{0Idl&2?`X&8Qd;QNnzG(UT z>1*aK-~Z9$bVgH`=3CA-*YE4TJL+tRK>@ zqi+Mt^cr^$zIS|EssCaes^Z4BfcI53np%Ddc7K6q)1iX@;Mj2ZS8lt z&OO7Lw%y9ccAFSD-EYIaiM{@O*LZp2@5PVLoUppMHe-J*7kT@aYkhu4Ho5JU zbbVH)!N+CS)i#;xGjUTb?=<~ZXvhiq;?5i{r3JKuEbTZmczfNYuQ%LT7H1D zc0R+|I2Us^)t_=UE>>o?E^cPFu5HY0YxmKmq?m2rk8%iuZsw-t9{xep2-Cs+)a z&LR#6Yk?$~D@^8wLkmzm9xjB602j%!Ky(ik+;zhICfZrR`~$?(3GowP#<4Bf9aP;y zA%qmyG-MaB)`)`m36Kg}X2f%&A!H(OJcj-%H(p3z4|!o&w7m$0GfV&(Me7bRAC&0h zK9c|c&ipGSmd>&fNcAxZ0{irUF@Pv8uutGX?91SA=0w0gsyp?eS zEQw=2{@{!GMgoT7e84Cee-IEQ5jKN_SUqCZg$*Kn24edks~7B@V874~ejjede&i;0 z=Ed$AIF-`6e)z#R+&oY!@oH z7{9QBFaH*|;}u*Cf24vhY8v=;)4)R&T!{a2VXl}C$GyXX^}&`);d6QMx|L63f+z)E zTrP&oCCnl;5QY&d2^EAKVexy4PnboRNtj5eA@n4a6LN&b?ZJS%jH{2Es%_4WW|IlTbm(5thCb(=R40B+Mqv zBFrQ-5GE3a5h@8i2^EBLLXNQX1?5LrNSIBSMVLuwAWS3-Bh(No2|WoFgmOZTu(XWw zB`hS&CCnzwBFrQ-5GE3a5o!pPgr0;7LOCHvSo$~RPgqEpOPEcVMVLuwU@(z*7@>wx zN$5$aAe0kw43<78c?b&$a|yEvvlz@IZXiq~3}aA3TuJCjs9;b|oFgoKMshJ&NIaJ? zo53vNnS=%g6N!frY8X@!_asy>C@0P_So)OYWw4NVE@3u3~Go=s3h*mpn|xBa^ezl#7pV< zE@3fo2@8o!m`hy3Y~ooAW)hdsKwQE^;u3}tmrz4oLM3qtJ&8-GATFVtxP%<>3ao4u zD2f}xUwQXZo401uavSm+>wVua>qL8A@iMjH%T%6Ux9JaS?MyWvcEqm5#3lWBuk$VE z%P)uUwhbqj=Glbue^}H@FI^bHml-ZwM9HH0!V4C(g31jp2u9yp7nLGLRo!bM%f$m&Wk(YvjCHkRHNYtm;%4V-d%zKd&3ss?iAkvLRO4 zN#Vd3^$ge^v1AlK(r=>E-Ov1ai+zd~<%Og9nqzZa$L0>=2fn%}3+)omTTD83KKFV! z-}Z?8?71C!@)lP*W(8Y};Rk!PSX19}1Yc*Z3jVwBtCXGR$p%I9v#eX+zuR{hUnk29 z{=4v9wvSe{tRKVQ-I29r#N?6uO-Ebz3G;gJnL8S7JRca#dkI?vf99=)Pp5qY`P9DE zmYS_@&AShKe6-g182&`=xh=24!+Gmvzr?<;J%InEPC&gbG41$U8yZ{Z`4eVy*O|*-!3!o ziTSsYd~}`ppEZ$>;;j#_JDZst%5U3#!OFJPFuq5v5xSy)5dLt7*EX*C1Nd5{U)Fv1 zy@u}+P<%T!zc-(l>M*?6yeI$7ZVvwa_-(P1y>^V}`E1#&deNi0@U>#|YR2Yu;*XvA zq5a0pj(m5^7N5KR=Eb*t=a8{Jxg%dII<;nWYA3$a>Txy0o^|GHX11&TcX8THxD*cPOkKord{(Is4iCTV(VW;`;_R)O8z;Aor${)k` zxU$VWd~F;bW;MiYu)&pYviuk8Bj>vFVX~#S&g~E4#s0=1-s+{pqvcD7^9wFCG=5cm z6mM8;ui5fm%Xev6dgOv^41aCj+$M(t;(1q%8T^07H$ETvpys3?{^s2p`&Ld5;T21V zhqQdJQ@PutSB~XV{hsZ4pVET2*X;7Cd8QA)r(|^c;+w;GpXJv=!uv$> zH=Ov5y-$tdCpB$(^5oiPyhhyk+RGMq_IDV`o0l~Yn`R!x?{FH~duD?;{+5f{{hn6E zKdyOkLyxEse$MHT7wT3Ky!D3uJ+|kK;cNJ8bMe{c#m|_lD7l$AkdHt5-gAieD1K^P z=Tqwfz~4L7#XHrDx7}UKy=TH8zU9Jd`|j0^;QdPnbw3F5Zm>H#?D9P&f3J41;g>&$ z@`oZO{=BO|%bP#C2nPUOcz$Q5fG$@k6+IhcSGnMKk5*>0SAD z-|wGMR{aaU^^!I3{8mNrOAWnq-HXln-Ui>DmL3E7G5k>T6=f0p>qhZA>OG6&TbXUK z+)-V_PqUwX&%N^~etK8;f&tTG`Mb^BbN~3dH}C8o2LIvwjpZx-#yua)4`1Ke?(ocB ze9d6<&99=u`R2FW&2IWb_{{z3&r5=M=v>18C_Z^tZripAalF;!XJc*+?Z=xBY^n?} zkK~({mid_{B=AOhyVVplcMLGk^FW{Bj@u?D*xb^$vvb-s%O>b?V3S7yT9RAHq)xNxkY) zD~8vsNWI_XSTDXTD6@}OSS0T(Z0-5d_bSVmk3#wPjf&qjDu(CQtR<%&><;1gHSGM` z#RoBbrk}xXaBU6Wp;bnMeyS*b$>}GXw>9?Vr|Wl2TzzX4|C@8$=%Ui5d~kyaOR`sl z^0&rZ9&u-6Ja4(&H>-u^7kr~!>(JocWBJp4-7W9D1w9--`5-DJhMyt#wQV#*!+Ymn z7&oB%Xg=EO0N>v;kUw1J{?vP{miM{QH)CnMFMrgr2)>6(nLK4$Xa32&b2UM_5< z-3^?XxutEG*p91g25{!^hsD!AbQ4|J;g7=0k8ku)&d#kGzEoL-pDL~Je?PsI zwx?@|seh?&+gTNIr92&TJ^A^&{Zf3fz8zfQFJ8aY3NF@XKQg>>JVi{Wa(o8H=W@|b zLE2zGJ{QOBq-_bqGk}{8cP(Hz%)(aj&ty2*Q&jQ)n&ICt96ljlCHzi?OSTocB(OC6 zC5vQAx1RsBmv5a4Ebexr?qi4xU^wwyiaJ`^_&QDFEzBHAx8( z+T>)8JAAI{I;-{0SLFkPZ4FpvjD19`LH=%pkz+*n0>V>kC_JGcBWb4qPB|DIE!IFI1H?MUtD)lJF9p-&?}sTUG6ka!8I+ayK>>-`A7e zZEuU=CHKN@qC5)5o!cY2do%9E2Sj%b<9_~_=pF>`Uxvbnb`bpGCUQS`;}cy}Fk&81 z#T`e`HRM(qJ{ZFH0oQ>LqrWi5E~e85-WLr9_x>>U?q`zDK;Y;O^PA=tmR8m_ws!Uo zj!xBNa_8zUHC$`fa;sgZZoT>q8Y&t!Zqn4fS#ysTEnBs2)3%*w`wm_mKkM|lcjqoX zUAuMXl`3C9|9~Dn)q%Zw2L<=(tLfK&z`#L+Lxv3fV%YEzBSXW&N5Oj>QKO?{#*B@P zi%&=#mz1p2kDrh-@ykh*r%as&??VXFHo_jQDMTq@ydKJIYv7^qYYRVVEBsTu9_I-! z5ndxKCcHyvBz#EtoRGUGrejO!M%a|lldvnHlF*+}O&CO|Ask3Jgm5@v7-1w~G+`oP z3gHaG`GivXi-@lzTuYcum`hkdc!}^1p^>nZkTZ(s??xy+7d(i25_%IV3E@+qLVchi z96}gIm`G?K%p_b-m`hklXe2Bpd`ZaNr|Ux~Cv+oJ5PA@L5_%IV3Dtx{2onhngtmm4 zgjs~ygt>&52#ti?15v&jg!KqL2$h7ZWAsu}Zv0mZvTo3IiE;u}iQza$= zPULz){=M|EoJv2M8=y_(`ofD$eG`cUXNx}iRLi~tmKu9Ad77)_V zVqi!Ir|&Q=Fy+Q0n7f0wk_BUIkz)D@V4972m^x#A6#}YUg-wOKz^8h65}f6C&iZX#gLV57{3>!k8<~b zlwrCO&LbScpj~OAfXGq8UUZ&_cr8?bqX7p%yhOmh@YKii>H~Th59kl>cxA=(!JZpZ z!*s-ak|4I^0*_ z(MZmO3O7++Hk2fPRd*FgiJOKHkAvZ_9q2R?_7mw^qC2|aUu#Ywgu!r%3KtA1hE{WG zn1zpnzb+tqMX>_8as7copx^)5Py>n&{yf08R{ZGpkp9(h6 z(w`ak@BU0vn9f!HnZw-wzxk8mEB>D^1cub*tlu)maRW$Z`=OMj-9)9=j_@0>%RR54(8?^%0GPM z=&^$1Cr+OF?ev+#qO<4DU-72PF^xdi1#T$v!99m4(_>#N6Jk_D}L+Zv-XA{tveCqk(Hdsz_i`isGtV z|L*#UHnXCAtZ95nqJNU-pVkxlH}R7NYtbk;FG+$*t^ZSev4mqSAjQSAm!$va>z^WM zQ7prlf>eg26h59m=2v+S;C+NWE?n_US~CqTi6?wSrjMtGaU&oNamBca5D)c=*9LoD zQNq27{mK|fH6GkQey(`MtFFr=-T$Wc*ti;78>kJ!A;+<>9}RJEg*VI{%MzZ=|7!YG zH4q7MqV0A9q&*7uDgVXv#Iq1JiaPo5F0H)gcqgD`H?CrbXDV&11|)asx=CTHlZPrv z+XG(jRwc$HtNIKG6zq}F50@n~ z+l>C~x>zRe!n#-{yvn**Chk?%#d3r+UEl|SRj>}$cx?zgwGt+Pi}(dLaQD+ECBdR6 zn(&CRurfy=j>5orGyG5<@b`!J=zAn2#f9rYR-Drz_keg@cqVel09Zpt+e3>3TH1;Z zxkY6-)K6eMyekbUz{}gd6V>7Ik+E9w#L?230cuJnOW5Eh~cn$Fu)LGYKZV=&BCK`HW0 zNKt*lJw$jvx_?6DnPNcU{WHM+34>r^8)?l)(Z(O;hC)41ShNH#aKzZ2Fyt8y@Aqqk zcck(CXz?QV(8mjly?J_d0=LSobeec9n9hUg_G99B^@Pnph>&Gpnt=11VJ(ZNA!>SF zn~j*gK6fFaa_#AF5V^X0mLe*0SFaHGis`En4VSaON6eo6-4BRa!{!O|rlmu4KMCQ| zhHpSj{KIz>qG4?FEr_|E_CF(fF4Jct7I)HaLsXOv*p8TaQS}RA_O-S<5It?`?nKNQ zV!aE|aJE#yu<=)RBQFfd&p}lBZrX$B8Ta*G#Q%@IGmnqy`v3o(B$CO3A(n`35F`j= ziwJY>B$5b1MrSPs!{LcHF z_f1Cd`OwGr@%!s@$h_ux-{+qFoO|bQq%sH5VqG0e=PcuQD}MXwCu)OZG6$$Z4Dl9Go$iX`bT) zrfK8+*?NDa%Qs9F$J+hC;(N4=speb>)3o7%Kf-q1;*(6ZQBLQ9bDpeXs_9+MG`LOB z1=yZ(>^r8kd@cfOO_npw*=OKvHR>nW9&C4nsV1gg9&lQF4O4CQ6s83ZpL3pkg{fg# zolD?P_|S!EMo=VEW!-e9IqA7f)2b?%8r+>OgMUTvSgzxiFjc9JFwMGC$TVk)-Onuk zTLYN}cbLXh>$`(#hTktt^(wO~;7|Ea52iWGLYV5!)0n1BIKfo4{t@54&;A$ipR?76 zsbbnxrdge~aXo&CDXmAQhWTBtf`8rNu}l@Yi zGSzNh!&La~1XESTLvAl^k`Mm#E_pCbTOG$#-*W@goUc!FZdJszAhN}E@UK`qkg4YL z1g83rKVvFP&ShHAu7qiDPRkqMKTYGqbz1`0M;n>u*qvpnaw=jfv}*n<_}4x0WSVw3 zj%z?VQ+>gAoQM9!)UdhHP4J&_P0h5RbRtvQ{+Q|tvY86|Z!^sZv%1B?f7yd++T1{< z%KHnLs(SBbDonbEWkrb5>jOtYRfVCz0I{M$1v*yPGI?e`%}vl>lcswD|b^+Ai6 zYU0zmed->j1qmmZ=7e2hsvmThslwq2)3g%H+mJp*b_=FyQ@Sx#Dm|FyeLs>Z?MFsC`7@?@H*M}fdDK1Y@5KhH=V-Npr6k)uizu5sy^G9Y8HOQ?Pt$24K}&XG_B`Drux9=Of@rX z?n1l;t6DM*-q@A%W|66OgO({BADF6=5}4+VSin@@X)RN2#WtqF#}6~jn0|(-%J~{o zMgD!xGb)(o*joMx@#bu6##HItiK(#9jcKsM5T@FX0-5GLoy^oQW){<|eao3DpKoNU z(d=WYnthyU-hm5DwZGkBnql&oZ*TRIsi8+bcE6f|v|{?o{cBJU;KmKmnv739tiBvq z(cmZLJ$3uRNB?eQQl%dDYsvIk`ft^pw@=^Mx%Wf$FPpbbIyJgVy>9qF6TDBnR96&z zB1|;ckPp@_syaBZA^FP0|JxZaY)PwM>~@`7-J1OHvt3c*k8+Zf_w4G~)h&tdCC5k2 z*WXqzJ=<#zRMp2(KSKWSgyiR2x;x*+C^9jX6i z{FfK?c4S-AAI|Ll*nuqnP~q`wNJr9bZ|B7;zwSz|*PWhx;b1dT|CgVC{Bu+nOveFr zvp=`)-gDxGdf*xDlpp<@kUL#39Bi?rFR@MCdcf+lHl%^wHvOjK4&?XGpRGIGs0Ycm zPWOH&s>oT#7u&0HyOY!FF7!)Uby0n$@rb^s(_g3$?)<6$vvqw*AJwH!`!Ba3^^{GI zZ>igoBrn@x?XK!c+-KFBKBKr)-Mp%N@uZJ!$@SsA6MQ1Okje`kKKe~)PsTR?-6wak zf>gOg?VHovj5z2u9u5l}i2A_Dc{dbl5ylXh`E&P+Njk~Tjr z>ONl4m*i|b@aJ5an!L2V^>xRLW`S^oSn$>-S(qq z9djc?dfO*z4!e+lmP|Hv|G5XL-__0j;08Z(eDibr4>z_Wn(}#FZcQS@UF^R5LJ!R&2WXn|J0AazE`5>A*QnCe|oLtMnxtw*z8sc`+i+qw$X1O5KgIrv?ch@tO7YW$8=Gw`Z z?a8%cEp|5D-kW@Wy#={x(T5CDm9E@u??#ebCU?xU^d#2<3vJ8qD9MCYLeC@X5{INnY;R5Y){7I*IQe^wIi9eDD?v;m!YIX+2BW8_O>A%I@+BbFvgS2>ACNV z)u-B#?n@HwHUGE~r%skrf4kU*9O_)*x$3ANu_yiKPKfs;Ln6;Do=|5Xv5%YFd6)YT z;y86p*CuLDa^R`0rs+ga61wr~B+EMeNWkv;jiV1}$j%QcS}wcZpJcA8KU2HRn;iWl zsm$5Kha{P-U);EN1M+yy(Y^9H4TzJ;twsY1IuQHVKi8|~4kC*irj5Ecx+l51cCJ^* z*EVGDXX7#>_xB~6)9gP|^ztHQ0l~@-Pq!s)H!cbIzF%ANW4p^=Rm>bpex2RybgNGW zl4fh%zPUGjFgZ;o{yo6gjkuOBY&5R9H*vH1=ZVX(A*6ZT3zJMHG$3_;y4d@$i%8BK zCg09|-VNIyA>V&f*72|2-N~3|mUH!|4Auc50{!w9KueM}m^Q(E&O#2dxBNMOJ9q&i(2phicZ!(DFFFhGByug#( zU3x%1^I1OY0rb$o!{2ZX4j&#|-QGcRu0I}_o-D2rFEjcVExKH|GJo$B-{&S~| zACU2(H>`HA)sP?L-^K4s981>k`L$b*fdfe!kI$a1aT!alpMCE9$+#dg!`0+=&(_1p zax>qe6Mo*L-}oPF%hEi_XVZO$?%&Y|`_UNEV)mn$d~yuGv*Zpk?f{+=?&|RA$g{~uYc9aiM0Ca z`)jj*3?MgBtgT)=8%9<-o{CIJ8&8tuDeL~}{sGbMyIfg!Ks)mEyTEIyLwk`*v+;H6 zKMExKj-)jXS@Z#M>JhMVw6a9)T9(kX<&tq^=+19$ocp^iS*(?9u}m96n%M^~@3h6A zEZY0RuqefitUlv*rP6N#*=H4g$IZc?{Mf2VcvV!5Am=8eS%*KKKz!vsW&7@o zB$qF=x;bNPKa%VgYkAyj09n@G>+%uVa5DW|ZqT30wPebKv2$eK29lc}{oF6{Vjr@l z!gPC9zjio2s7U|7uyLaz$CG8_)lXJrb|sm1H~JMcRg*b>W>aSe2a?K@&F`Pu=TEL* z3QfHE$pkWK(n{f3;z+W{@<+>Wk~@>58>}x4%@|LT)~&yqXA(fxrd>au>fMyI{r$+E zCh>!aU!UE@vG=@*)u?Ub{U;71$8Cyxb<6W0sZ-1%F8<_AvICqKF8{hOIXC2_!@b@E z$?x{Jo^1JRAQ?5Hd@Pw9K!!G-8@BR~7Ub;T&CYer4-CPmw?@Jo)z5TF@k3aD{ zYTv!#=c7pbVyCcnt=vhBL$?dLK7r)T_pck^d_}dP3)8%;u}l?SA2JONILz&j{@`|* zZ4vm-*x-4d4Hy= zom05}x|6A9$8SuPR!vG-c=BOPv$if~ns?({rn-YqnQA-tDg%G2f$>c9EcP%}#NTI{ zHOHYG?0VNwroo#sn5qu`&a@!8^%Jmb|C+#5*JukPM7>QhX06K$Ts_AJv;Otq6YF-_ZC$hU9p`5f$qsdJg8wK~r<@6%?L zuw7Xc$uv*-HB*hV#S7S;XBWU!xVMX`YJDZsg0B2N`i%YCUV^`Z=FgaFr)sN!_22De zO1}!i)8B4>C;SsbI+1HzI`8!%Cl)tI>+@GIN$7sMRl|~K($r0%Sh2~Q*nj)iHf>BHd%BKV0|wM4}JW@7%D=gLEKF=XR| zkCRH4j3Hj@vlh;rJCYt;Y4*e{Mpya0c7Oxjh%Kr3?dHknZM3m zH-b1sP4)`f3(e_L!*i5?23Sso$8XG$P$MJyFAE=E*?Gp zsT@mAyWjnw*AG$Tw)fHdC-Otcq@yp|Znhjt=4GC6u?g@aR!Q!uebs@a!RE&8H+~XI z`sK>5w_h@mme;Kt=A+!nFx8lt$DKmSho(z69m{qi4(g_xHy(>8z3=>?U)b7<9PS-) z?uTzC5{HK4?sh72Cuw`@zbL;yibU5tK5pmXP_kw2-({UQ1(Sv9QGJSU3?%BpR!fo$ z4aqupPuJ~MlS#bC+I3s^$B^|Foh~bXk0xHN?4LBOA5N?f4XHQiNi?Y&ys-1y>%+)s z?;p!<+#EuDOE>0Mbs0}So7v_3Vh1m>O?*7;(8(BLx%r}g>CK5`j@5(tbszL4y7+1A zp(IpUJ5V&R(!(`!C8`QlgF1=MEjZIvcv|M0{-&cdaL#nq^f2VfbiTt`7{Z=A37fcm zBzx{8aA6Z3z8BqN6l`evDm&ID3xB zC#4yQVFk)}Yik3C;c~N#X zVyKT`BZl^vYQ(VWG}DM7Kei{p*c*EaeO%9!)tH zd4w>UuHmKa63+S|A#ahI|bTd#Vgp9$OCC@L3&ll(ElL+ znra@$?kCaK@*iA_^~lg)p?=bkedw44>CLRRkE1^5MVwlki!8-oP>U;&wKTO*9||SU zFO=61%1Y#MGfB;(Jpa5vQ(Z@eMsDth5;^w zt%HI2cUTP)$2Y!VyOPb2N7C7Ccq&)aTm3n|)gND*oj_xOFr>KPolY@yzFgYEQvtKt z(iR>StPF=(L8GgcuZM@pOTJxVXX*=93`EkIey%)}*Zsj7j95Br4rzilHGI|noBcs} zFvHH@3CBaM9WOkyji+8(wE+2r_29{L1|NJov$f~Od4`Z+{XtFXI@2&AwSt_MkdOiGTwr1k>?QotDOaFL#dfgsJ&kWv_9#|m+ zB@`tn>E08obIv@|kJ{;ka)#AA(X?ctyp?p_2!AhODCI~R8h5q#OQtOX-0Rz+6yLl( zgl>lv!9H)R!B_3Cx8hgrF*L6!G(5OB0rH(dQ_S6~{u0@n2#xOxfK@9Atb}2$RtVi! zTFJ!g>Qy_mYDh7xr-Ah|pipW8jn6oox2NY-f3K$p+5sOC-rV!yS$j1-9@h83s+O7@ z#j)Nrji#n%41kh&eLM7y;wuAFLvS)jy#$ z^&zxH!dkjl$D2gD2b8FkH|P~m7JTg>Jo}Hk+WsJo5Y|){9(|Tzt#J5w0c+vjyg#h2 zf)zy2G9X2gdp(?Z8a9-zlGOmTIB>Q7!RjIYY)WZ_2mf%-4u9SwY<<&yd|ejwEEw%x z4;MylC5;X00@fY9%^#FDUuDMYP0CU2bn@{UMoFj<-WT7LE*KS4Xvs+9SM6}5wVv<} z&NuB3HOj|07$qQW+|>?;*FGQ1-V_elA*DQwn){Gm4+r{LGRE?HIYK>v5B^3~KHkIF zRXZFg7v6UH{aCf_Q)wu0^qaxLi!sU<^es4=!cp6q9pmC?ok80UXYthZM`>*2M--l9 z_zq?C>hXxaYlEhT_ia9&@OE9(FT!X_pbbf93XnQDzDe;$(*0rmW)f{hwZnp#p*_G; z^Ckb%@!YxA5gqaj>kT0`Xp546={N)HMwKibkWQ(#VLX5}i?ve?+iU6rRtrOG;q?K% z5?VSxe*CxNm9ZVpL3nPVUZvw4jNUNX^Y+L~`&GN~ey<NAWJlyC$SP!b=Lk4gyVYm zDadV*^~i0JrQa#-kWAGJOGF%e?r$d(3 zg{C0GH3x8dWa)e-6?rZ<3u(wQ901ahO^`E@O_8&a&5)(*lXZ}D(Qb~Mk8FWlh%860 zK(<7d?w7YlmiOTGXM=2qTo>69xgN4Ba(!eUWCd~nasy=Px@$vZ>AI^eauoV+gq(uh z7&#TW3358J9dageGvsV!d*oc?=E(WTEszV5TOwB=w?dZp$RctUvIaQ^*&R6#c>r<& zvL|u{vKO+vH_yK}vK{h3WJlyd$gaqPk$sSdAO|4(B1a()Lry{VLrz83BBvw!BWEIy zM$SeagPe;z4mlq=0=W=*GI9lS46@vX=YJlu9kL8hKpc_Hkfr$)`r;|(T+wcc?1OBD z9DrRsPDO5noQ~WCITP6)IUBhpavpLQA`|e*m%_@?>Nc zvJ6kCG{|PiT4W34U}Q^V9kLa&9@z#t4cQ(!1Gyh^Hu7ZTTx5EqCv*A8X2^xe7RVLI zmdJ8fo?k0uJ7gPVM`U|sSLA-kKFBgW!3#h(LykhWKu$rnL{3GvLQY4vLC!?BN6tp> zhn$Bj!xP2=WJ_cNvXyi~*_Y?n23dh@kE}%QhwO?h!xKs$WJ}}#WGmz-WP9Wk#iGbI1Lxc@B4KXQ)bA30C*@5=obNOoj{Wbe=I zLO*QZ$O>echTD~r9a$x@C%0=P_Tj9R*q3v##9GceWV2bE^~mYs7;X~A57)!M!Syh3aAlG!Pyb|Ea^PaC%Y)lvaXVZa0te+hnJU}| z3MBzou6Rzt3i*NSHhhi{7}|$3ogRZ5Fj5EY$C+AvIZ{rh?8DbM&~4D3z&--)(5`?- zB13y}rZbw-{&6%%zX~ge0aJ5*roD-_UTMhi`|>X4&jZg4iDNZq)!SD+AZV{hXeDhWMoNg?q%I{-pS!ojcRiNxwIty#q_-2kjo>lkx}c-bEd6S z$``-u+q=5npx;40q;$u!d=9P7C!epVX&3Mu2uPn)j?hnG{f*Slp}zu4{Q~+euoOS^ zU#OSb@ciGG}a zH#}V5&)GA=NBT$I$9@^70>4-41y?+G;zG zXDHS#9G{_|zBwM~u~G}=@r0<)tj@o2xUbeL%pcZHzaQ;M-0^S+8!?o_ z=<57H{$Y#MGI+YiR@?dh18VhCcpffyus_tqtNTl%2wyh<9uI4$Qj5gk)?SMCu9TKKSh=g;pH(I zIThzM+8`^@9wymw9!!R;Lc4Sxs6n2Mb}jPP$kIHZ333$LrT!z$1Dc^d1?|%LO)Bz- zXqV;*>maA2T^gsQc|&PlF%#`u(SJ7bYUEsGX$SO&@RnW zS|H1Pd3j6oG}64K9PM^!{~Xy7`2w;l@?K;g)YfAH?j%bfTyEJdw0ofJpQOMG~xD~Pw+I^9wdC#uM0ccM|mgdo| zk)zPQ7C8lZJ8~-W7s%34=SuiFjn6=+XF_QCPd4q5KU>uW!<9kO(OAgv>)i*`q}`yos7){e-oXrF|v z$M{+!`=C7pSz4D+4>AqdQMef3&BdeGzgh@=oM*CZ;CL;exj5&0}~0LE{R?27gvWa+y8AILsvKZzWSd>lCi zd55$=@+XpijITLzCfYY3XCr@rY}cLVrzdhQ+Gik3>r^zz`DkB?tikYEs-73K0#uPuQ#$Q+Gin4>#mf@K4=d`PQmb7 zAqSv67+Hzo_dWx#PcgL+I~PV-BTPd5t+7XFa6f+pucg*dC3uJCc18 z&ZgE-U&jxv4xi7%NV9ctogc22@U_8^0)AZz)~doYHfzG+^EGfa zfIB{41FMH6hU?hyJWcNS{7pE$+AT3$Uxx6Exn|ulzn%u4#&%et|0+wzLFsyMEY3Rd z`5;)W%pJe30{2}Qb7*yXxm}vAl&;%^Ri~fZYx2Vx?mIFLZ&GzVbGx*fSqe{A-7dLZ znuU|>H7mHey{4T@ES(4N>oCw-r1;^w4cx_G%we?7Ugg^MSNDgz0gV0gcY(kb9$!s; zbB?U8Kh9CK^%(CTOXpjR8P+%(vo!lCg|9OzPsk5{mkI2_!`D@}Th4HG+&H}CT6S1n zFWF&!B*KVc{sThcj?YKIT`>~Fe1SCU%;#BwrSjp|Ri#;8={k2!`{DMQ_RJYRrSRc8 zEZo0i%&~OdlRG{iQjgz~}R7(!=MQ zrBw}lT?2$Kl^36Hl2$ti^mxZ-grpHeVyVYVEcHk}UoEYY;Oiv#Q`vcb_BLy1Z$0{>8=H4O9V zHFv1-`3!#CGd`{wZ#O<3^6hYU5A+IH1HngLU|k2~zNY=~^#Ic96|h5pmR7&OIuWRkn)|HydI4Q^ zf8ni%e;Vi4c)M|a`TYJ=nhNgtJbX=h_`Cs(CwxS%VcvrzmiFfyRh=Hra2FYOoD-|Z z2hK^==W%@Azb1Zvnpb|0Al#{@r1LBAbaA-7Nzw@r3UHToCk1So6DnPcy z@CuRJARCbDAy**RMHa^J`069ekrl`a-%o>35tbax=91B1_k)Mk3pxJqTI4t`LqaT}OyPZj1htklP`rAWPSwW+AsnyB@g% zaw>8}3LVqq>DfShWOo&{B}T`wpEhCfiA>5H1OsPTA9`sA%lmyn1z#Di0 zb65m>J)bZ!CO#gH6B9#1*}k#y;S*usm~e=lzEd-d8zw|e*TvINCQ=VzpO}F5=_+Bu z^zQU8PMAOw3g`S2;v!O#LMA5BSNXl-=tHlm69=Gv&y9wvS3C)Zxvz3XExWwhTqXSw z#VxXG3;)97ky;@d4Yjx?IHBI39U9O4kv$)`I;0dM?)~u;$3D9lS-i&d~F|CZjeBp}x>s z5QVuyl~5(CGOeFzw`zM12e|#hf zG-K-8nM{ZFng^*on@sbbeVz&1b9PVK1)8@@wHuVCgQ>9L z=pNv-6?682Dt>Wi&zaAdV)g~FF8mDBtS>%f&z;Y4bYShx&|x9dw99`mRdpF~0Q_ru zZDkt#mvE4U=RbjILDX@kT2=EeVS7Pl3RBh3zc9_%-{TN$&m*gtD(C&hR5fiNYmdQg zK4+@YzvQ}h>{sC5@WCObS-0wa4Jqt{Z7F4tkG#qGxpqNnv>)DE%U!_Ia8H$0n?0=&2m`yegl{WACF>f^RC%~GCcn)X!*Q(BMT!+y$@9$fRHnd-~amAwoGwiB zT8!YFF`cVr22&y63{%zeM@%(48nW?FwZoOEcKLXwX#oqFYOHrN)ouHUvqKrvyruSM zAUXnHDs@!tM7fnCiB)WbY3s@bF-&IX{tUhI$!O)%yKR71w`e zsx_@(s%+ANzh9t%hG|Y&7}J82A2JoD?_o;YAJdGCVy3!=P1yLK72B7o{$LPO;r3jn z+NWEY>YkrwnsvXBso}UadryIWPFJSEPQ#gIoJeGdm0Qq zu5*9$E0}5vtn*m>Q=2nYnRRBWSmMT1Q)e*Kf|RjL4Sz&2)p@5d)n|OjR8hQ+sjA-& zriPh^nQ9N6Vj6t+XKuIogK19ZVy21#vP%%Z#$Um8Y-^^ffUZmhKQ+@lwJ*~Qhd`z} z(@9LVH&U2tc74b+ShtR8Mz`%u>G;4jXWdDrS>zH^!*9Pc)lGZMG+6$EX~t^n%dDT- z+B4OyaAc|w`Y=^Z_F|fMaRgJLb13JzI;NTnbC?F(u3)P4|CDLQl3h#-j(pAa&S|Du zW>=VMTi;=t)5E}2DZXT?^R!{-ds!a#ObhxtGF5bPVfxDXAT3AcRw)m*J!W-KeWh;K zp3(IWsK;EMQ&{)oi|Xju(0-mJKdZ+Om+cS7m8z}3z1=@*z$tZu?Pr27EP1Nl+_kkb zKJ>A2$xju?zUiHJ*qX`7sh=O`G+keZm<+nIZ`$B}>Uyd^261XV z@_o7az-ytm)s2n~ZGB#5PQLxKe0V|0L-k)J_N}aESdz0QIl3jE=ctFDr8BQx6{KF= zg~vi*W3vCSsm^Kf@9NmkUA{arMnU`@nh(w$VoUZN+p_7#fF`8V!zYJ!PHaj3seIyE zaIjpRYS5h-`JhDoF3 zQQpU#3<;f8WIL%LaSPR7JV-3bZ)+PrxTI=Cx@W9XC?>Zg?!`x~H-6ZJbUwCYyi8uD zj)^>TLH(5z>9Xh4u`VW^iD$&E*?CQ$syFp99TTi+OoE%wSi9_!4VklRR>z2aP06ka zn@FLnH4rHxO+k9nuLt^=d*+)Lsoyg0G9eYL(ZB4?4yEIF)X+vB(j(wR@ze4>( zi`@39{t7ZFDR%aVj|wVgl*z^uPL?DF&TU7R9|xThrbFQl-QHKbvw=7vP(37$yPR99ovu}c8={?qN_{VYcg%;%RW<2j_;gYI19Ecv$F#%kQVA(v*Q%s}tqa*ue{0Z(t-F%#NBRy* z__zzX6F_EsT*sC4GTr>JLs2(kIeO*TvJriW&#BQB@!z?S(vaf%ZGUtiTSusWQQq!N zMi(y$nd|RH>TkSKRXN&~+_>gAzpIUk6#VYFHqW+5y<_addSQz8q`|cw^;5cbAU{8)8$|_xiq5eMqH#O6bC-jwEEz?X#i7 zAF6r#>rPUqZs|Oz|u!N)`K%4?9h-s~FRhl*>ZC zn0~1rxl{iAXvOC?hSxFPUKwN{9M1OcEk`>|4+4FYx2j()02M)exe>Y zT>tZ&iIwX3-zPOI@7ae;UO-9|Uw0$6itwXxseOt4^8I;HBc7|LIIUKIYwv#Bt3R<;xz{rsa3x{QuP*c$ zAQG3PzT+*!+{kauj*MRH(TnW3eo(gN2N%-fqfTz~T{{xhnx^$q8}uhH{bN_$RCgy$ zAGBTa%VXM3Z%tmfW~>ug*0Jk^p}*E8r+S-rD%xJ8?$y6bs=>pXj2~FO^V7$j$lc(< z3+4{#K)OyJaL1#r6OsAZ%9R~`N#IXcn{-VXOnfHZm>#6{ByBDXeRyS;FFE$htWfoA zCt|z%*wdf`N^)!JPhrZy?!>3#?vi^8oXFY-Ri)v+BB?*FaMsZi^f~4`hP{a1*pKYl zHetc`Nu9~1zw1x`{`>$^;HNp|o8v@2%TJy$BvC^eHYqq|=GmOA^|^R5;)Wl={1lu-e+mhKyH-?f8 z9ZBb%?$MhoD%IWPMJ783wIRPI&zm)5-!NizKkTI{dKl^U`1%R++wNpdi=z3RqnydC zZNH`#S-6q%gzubtJ=Ku6T@O+gw5I>6M1w`8Y;I1K*zlQbcZ)4mqOxLM>xy|*;^AL2 z_A0`v#3>$wH$`|-wrb~D-o8qdx1MGA&Z0^*S?N`A_Q6Xr=aKA7i}NqVzhp;e=)ZU= zMt*JB(|z?z@ve6LcKf84V$z?ob8cf^ii!3&r>}N%1dVgTHtoE}h$|UGbV1Vy`aQBfpyVLOhs|tlt~-LTq`(o&J9z+6PvC z-lgLUF)1f*)nS_#;+bzfgW`%SMe9#ZmyFJ@6z~5iTNitxQe1s|e4Q`1Rf--cTSdcT%)S_OcxNODZ#|z4yi%-ng zF6n&hxj2)gM!Y!nT+BQAU8ARapNs9P>^isl__?^O=M8nt?B`;g$0z={6Y*U1YhHM0 z-mvH5Mf3c@K7F2x*Yz8uv^Rh&%_g9lY;+AeHh22}nV8Yy z^oO0gJQGcZ%y{~96S_S^M*lw(ulH1ZyzY>9I zPepz`?x|Rnv$AftMNh?qY@3R^x~Jk7)BdpjCg`bH@Zf4?md{i1UYAejp6T^ebh?u_ z=(+N#_)D6spmQ-d zx8Jx#R-W@og*Z5CkKxb772=UKImbFCRfu+rL+Jksv5|SoNx`o|ymjK>jP?C1#Efn8 zWrI6WJ98DHxm~bcW?ms`=E`2wDSaZg^cy$4J$;^jX`R{b6Y`#jvt(V@e0k!D`2C{- zdE0$Y#ASWIn!NkdCt~illzF~OpNMtOY-k{#{zN>mtJmF|kx#_fWZB6dMn4g~n|_dV z$?J)@;-&j(L$4>|vERJsIyyWNEoW_vO|g9<>gHJo6_`8`n+6v*2`(-d&-NKG`N{2a zF(h|hhaH#7#ilXeHHrDITvXeCZZ+sYxtNwP;!^)D}Z*o zGfpt#^Agcw z|8|d6k4r?8U3ZUlxlBGm59$;PWn5jTZ#CsqVwQC+Lef3{q-PVnq7&Q zc1a~`R<}e9HaXQPS5_iMb=z`$VR^AQ!2 zp%=HfKAT-E_U`9U6n?1LG>7ybsDO>FK&z&Oi_~5RQW%)&7%XwS(ng3KIjxA_W+4gji==8U@ zX7D#f;vYwgBWE2b64%YN4>_{4NZiz*pqXq_k+^Z|a{Y+4MdGiW(-vecEfO2r&1+yc zuSi^YwRy9p(~89Di5^SLClnpNx zhL;9$Yx^&s{at1d(>C6lT=vKyHVB?S%KWZDT<5(iQ~9ewblcQ>wC81m*zd+MzbWSo z;uQB~i+AQ2#N5x?Kf3p|K|K7ZYeKjE263k%%4*&YgBZME|BhcjGl(NCWqrku4dR`M z41+C0-Bo_R9RszahdeBN;S#>0~gV&$%)%R@sA;^O3ljK}o7 zDrUW|Jy}28Af66ya(>VtgQzfbr~j$Hf%CsU<7yD?$G1MbT4fL)I8CbzcQlA{Gn085 zr9td7W4Mch9re$gLDUN}6EnF1u47OqDV<}BkK}W0FuzB?DLriTFc%TrP+*#yCwrr^ zVCcsPI$P~dXNzH_L?oSMhIwjuGB&IXn@;CI;HeC-c8qU_S$KGcZOu9y*nbeU!yGg` zi4#^J45u^A@pL9S5AI)yobJZipRPQByNabdVByaHv9y*Y=SA;8ho@5T zw^&HS@jFgS@orP zg!|q{vK)4$A^TR}r7H-d;@*}Mo@1R4uP3u$Uhbt=x!y$0eZ)B!S@9ER?I6CN&EK3G zp|(JEEaBVj{^6>`?L%pqz*Cx~Cs-Tv1X`9MxH1OX-#~0({?&I4OSMGXFMSfg0GjK% zbp6Uq`gZdXG+bDso#kLPNV9#1SfTlunV22(xfwc&Cntr&megtKB7KW9(S~5;IpBaby;0Iz@AlcLSIvx5|5A*7|$h4a>&PS%bk8vR~ zogZgxKsG}bQh0dg$O>e-&WHI|B1`f4AWQM-kfr$2k)`;ukfrzvkfr#9={$ZZK2O^2 zpv^Suq!yfk%tviHS&Qs}{&SGs>9JKu>rC=jGmdeO186#7 z9D}!I@KNk-BN+GZjb{KO>Dhs_wi7IH4gh78z>d05F5LOBejQ%jzi~5dp>UQV`GWHS z{;VG88@%Pgvy#S2-l-jqVk4=Qmq6`tL-Hu4i?42@li^qn1*is8;ZP2I#b zV>8!T$eGB8P;*evqvoUDMKz#SqRKOPc#Tj?9XQ*x=en>XS6@f2K2BV7J97=_#nsV; zYegTl_vPx-kE^emYkSadpsg4e!o1Yb#eJ z<|Aec=hER^)BL%5j^rvI%{3fV7{mEIYI*?YwPU$9+RoLd16S7_Tn%WyGLExn5Z9m& zxW??{nlzqk)&#DPg1M%LaT)E8k5FZyM}AtN5~&@tz5@-Ryy)0$e$u_vF80364%y-X0QGZmDS?)4I}N7p0)MVKa2Tb z`Q6{l^ccRclE*LK%k>Z*zjY()vgIIhzG^_TUn_Fk?oI*{E8QcGD>W%jQDKDr0mBata0mcBS9i%?6X8p&wpEt0P2Q?Jx z3C(3D^jbz`l}s=XY-%bO3{`S@P~f2j^lc#2`)^eZ%*+K_;a-)rrL?MnjZIJkvqPq~ z!ba21mKH(<-Pc4=2;JCyIo5jmD^`%};T{v29>x)KJ^dXkSn27nRl!CN_pX@h;l3cb zp8lQ{3I$kg(tv*6F)^W^1tzBS^EZ=5 z^z){P8U4IrQip!#n^@D&lO|U5Gsnc7e*R!$!M@Ac_PXr5CH*{MA_NPqb)mE{A;z-py$m zn+az0Q%2JVcO=og%YB8bRW51d||p3&=NZx3nOjC`MO8ua*f=vfh=DcY3jEIX^GB zvy$t$6|bHr!2ZS#`sFU84U_P=8-QwL`j1~dQh7X(1``3s1@1bVu)#n=L0Kz3yf0Oo zU;7e7uSSAv;%lY{zZ%qDs4Y;tqPn3vqP9haz5-4VI?$R*5YmMc!d<~irjm`8&5~`E z<;ot*>X~RvCYmfaxoM&_4KPhJ%{6^y+QV#;*;ca~W)15Mt~0;R`8qAkgUvUYUo}@+ zgj=Lp9J9D%(Lt`0uah5>-;v8LHI@@C*I1silv}x3Ew%c}>W)<-Yj5im>nv-*Mr)I5 zbI7K^#=I`6tE;=Q?!~%7y&m-f>dmQ_Rqsx{M)kexr_|qF|7QJq3XLK`u}yJRA#dQ; zU}J-04Q@8*&~SXibqy~zG`A(TQ*FPny=R-Y+>(_CD;)YE)w{&+TK|&&G!;Leli0A8 z*QXxakqYZqg)HcJ{BWFjH`g-;{8_Np>L7TUSXEcOwhiq|bS$JjT;RUs@8rw!oqSon zlP~Lc@@4Z*zUsb{uX^v~tNuIrQoNI|2Jhsn;XC=VeJ5XyXr0pWO7N7`)V7YYRL_kC zNBZ4C@HVreLk4dU%jgy*?e)+av~BF@r;f6;M-vvWT<|inGL;&TEp0zNUTHr~(U-SL z?Qo4-nH@a}+d=G>wS6t4u`7jT)C!+U`p<`@)Q8R{%ISAkmNpGbn@@Gxnh6?~+kqBV z7W6nozYBD4$j$5FEu-Nn1=}_%mU0M>w|sjVg8*r&^PkeBZ388uV`<|1HUF3UwfL9& zwWM)F%?>nsb6#y}%|V^i)LbhT6WycEoA=grx`?dL(`?dX- z`?X{Hy??nl{LA>-vm+{vPyV0kfwy|zN|(`?psl*Hnt@i&Yo-J3Kg$2we|%UQc$fau zk@g=p8d&_Nwr|`YwY2|0Kd9+Hj`Tb0Kj!~E3~d`|WjdNWDMwEKvP?VupOtB6RtB_o z-ZF;x&@oAlW76Bk5SW``Wnfyn476=vRMoLCcpW-3zcfD6+O5Hs`h}hd@o~Rh>30bC zKOeih(HyW=@mekNF`ehYxK+Gfiz+tW(os-eI|pwIgOAMGHqa7utPFXYyR$UQh5vjc z=-kQ;dcBjc-n6B`vB$Gc&5;p~ByeBIUQ_4Qf{;GrAW zsw*37-{%G*Y+OOYozRdSCKIAz4sXX-g}IB?>z$8 z9`92hW8XWDaqk^R;Ct^8^xmoZ;J?KYV#khGHNT(63sJmx+SEQLdfTr{e%`)}9yQ?? zD4dloqsKq^g!6W7n*cga>F6bM>4-Rij?4m#U2pld9{gYIAuRMaowe~4^3mz_BlPQM zZK3~iR1f=?`-Ri}*vR*mqa*)q`uf>e#J`Mh;=kN4@?Y*3^)L5}{+Ihr!n4%3U8NBO zrSq%T8*SwBu3a75)otEfHzgr4DS7I&l<6~OIygJGZ`-D$(y~LBz@XJ>rnZfOLqfyC zBPK>hMNgU>8yEk<*3Y+XuUl_|^^TpHyLRu{yYGwrSqBb&dFb$0U*DlOF4Qrnw=bAd zv5;Hx=ho$Y!>?=R9^>k|i>uu>uGzS~0=EazXVp0hqR?MZ(-qj$1Si@~z{$A$t52D9 zap={(Wwji$2GJfmldheICp5xJbSXWrrbZ9~%K3a?FlrL29yJv;9W@g*3pEEd7d0QX z0JRX+fLehnJmK-mQ5C3ms7h2vR28Z#st>9bH5gTgsz*&j%|OjU%|^{Z%||Untw2>& z@N_CsRj3-&0Msbd6x3AIbkt1LY}8!TeAGhJ3RJ~Y9O47Z@I@3e^WS09A*oM-5^}O+l!@e(i|;I%N;`dt|9A2JGb9C6>ks ziEC>CjwjN1A=wM1@#Q!VFBRiUN0t29)tV2J#wW>MTT_p|I!?V}uQhkqabAm6c9@9_y6hZb`N$hg(Se8 zDGADn@i8&+(-M_ILR@leXhcGyGCny80*g-wr{?H5<;>a2Daj#mNzoId=^c37moh0n zUKtu4`MNzeI*~qGHd0B$j*X5BNrLYm&{z_T;tY!kNu)Qb#!U^0i4IprB!-3PB9w^{ zQ<5X%!XhBZn&fe>^hTPGZk3KAEjIc|->B_3Vo-oGE+iHT z8?qabs0>MDALksA0{274CD9N< zrFw=Iz|u`?p2iTa3`tZD8|6!TTioQh_-S#pN)B*#Q2TEa;+F(`S8!{TFO zX{dsZCN3^1Dgx3O7eQkRXH^^?5uuBrPaKbkOpXajP}0Ikh@kaL!;DU39_ZFcdWUXE zbPU@=85xnJjE#tmPnb><5gU>e7Dcxk1^!xn5R(&=l%WyW-)OQzrz@SRD~dN4)=*d~vHgV6&dIwFy$1>E zi8mt1Y;{8tXbVbI(gI}FLOZT@fWH@153O1qs}^Wv(5Xj_^pj%L$uqq?y8>9fw+uvA@b10Xp>*`s%FAuJ}I4K+?|c%dZ^?UQv@+F-+y zX@N|QP=?VI(V|F>p)DgmUPlu~f9^)dMJGkjcKu(Pn^s7iP8&oDFDJ-TP3Pl{$x-UD z(r_1_;3Pnk;XS{`d!jNbgrGmITNc8wN=rS=V?ZfxwPKoQuTS4RJ1Vlg%a}H}S>} zxyg-l5@(Yow~}}hHk*H=WOI)w_)loY>9L=wsf`>EM4Ny%Izp4=Kq#Rt2S6?)l0jdWN{HTnaX4?MxU_qv9eHY zwH+9M?0W4OiJ~3Tqi^TZl`Ey*S1rIC=FNk;uJGk?slLS7U1kxCRMw1~2@bTyn$Xj0 zlXWqV?Qd-BY;Qie03*A$3GT(G+yqa(iKVTxwN9;Fw|-;!y3{j8TWdXM3Km&Bh!i9w zL%GEuM+r)RVbsovy?ovFGRZ(s+U;s5&aRx;ymPdkGa`~lZGD||iha%X3j{Uc{X{S@ zUhnH{lbV*^waB0MFx5l~qRp7uI2o!4BX+U%6eaFqnmSY;Yg4F8Oz)jC@fcUk_?8oT z;dR9&CF?4x=UtEJ`r?gchm)r13ExpAqJ(yTv;=YsOPuqyuNv_!0-jzCE%(QdJvkjCOdv19R%0#^y$h2d^X5 zHSYD+0q9|oylxZkng-&>QMj<)xgW#ex~f-ddnw zYipx-MvM+=81u zuy^m?d2rL8JQuGpv!^tmcp@1#%LE1|*f!EjD=N2^uk-qA)uxRVroUE~t}CCX{0`%v z20IsGi%+LuFa~Avk3^%*jkV~1ZTQbVSk^Vv zclk{x&U$CwLUU^K#(DuyGPlk1lIZ!;_f`_gX*y*hbB@9(pjGB1ZIma0wuGghEDEIR z^tz8L!FW~cWjONlGuP{Ly?XNM-s`089g$dv?$DTNP)u*=_MKBfAyU>h!9J$sdFUB> z>BLJ4Q#+VHq`;VEQ>{v6OnKE@U)SHOvFq^9Rj$WpOT29*e&e|T|J}vg)++gk2|t!_ z2fhX%@2`8CzHt%J;9h(Iry1|UCvN6`N)&gT^%b#}A4jkn``_^l^;y)$6=-4kRj9Z|n5-nY#Cmv~>3(~{EXX{FE0=*)7mR^D8w zWFAy90ZQ(^J##-$c)F>j#$;o|8>pF~N3CLdLa0idnTFaH8pd!q?gyshh7Y=z$C3Y& z6eQ7?XG26QU5yN(>;Nw(fQKX92)yAn8hdUCjS29^1~A?aLVDbmy5vpDKa7MoT;PxQ z&I)W#L`+bIngo)k+@-Xm5Fd}XX@oZk*f0HLEADd>V|dRhfu>mHnrg+v>O^=M0i9`T zx|%Vhdx4snU_TLs<=(eOSgQW=W+ixY4W8(l6X(qJV%Mr`y>KS(S0XR%Jq@tSB&Gf~RG1CH+Nc<4i5b2i5b{VT3R6(EaKm^+IUA$U`sojxX_!FI7i8I;38vUXJ}`c-lyguTcM_ z{u$vbJ@hhlRJ}?)qF(Kx*LcU*ddJscCG&c$V&0(Mh_#E*o3Yk;t5*h7CKJ9*9apLL zx2u0q?@<4$-l^WD-tDD6;T;d*ZAYQ^_CfDcmqzbbmqs5@z0(KPht#F+C)I~RG73Jd z9tB;hy@90vw_bDmNUzd?7Cx`O2>MberDJs) zgGRdg@+DGJX!`IoQkXBnYYV|r0wM9OCDi_N_5N+w$nUs{iyKO4B)p21{soCKR5O@O!;dOnraA^aCX%wtwgybv-^) z$Nu%tq4zFvZsO8{TlfHS!ATblejJGD<0I=IPn-mo-yPqB>9{C zOk6_4HKEZl`HMxv)8YT9WD+|%MbM5(`y2He)dNevO(MfHVX{UTC#bEl&6S*ggWP&N zlKeFZSNkH8-*~0_ZJ>4*%-$Bp;vtZpD4BiQzY* zByzmXb$m)g+@!$Ojx)@o7{0NTNQPs=L}_Z&x4zDOxRdUY&VLwu(%6LQmY0%3q}sOc zy~bJ+QzM*YvUMe%;n)x)^G!^bh(`zA{UoPv(iZyGOVkLnEj+On)D&J` zyp;LyY@(Crk>(5bDL<|$=_WhLBz)1IlAtMELsOlhrD?D~-I#+B zpqL7BE*6`*5RX&QB1{=m60yd#lFi8ZU`eyfbbZ^=T!F=e~-un1rN z8+=;qEOwTVmd0bk(fp;3<`y~2LTI_;lkJx4yO>mdo z9@^?`#TVA)=+icEY!Z#2j?v!k2-SGU?arO>daGBa9ZoX&wHs4+Imu+pcRD-0mXYJ# zh-rHWbUZPCQv-+b@6>|y0>`F@oMbYk^21~uox=;A7dkI;UVI7kB3RJ$B3RP)G#0Bb z2_ZYTmpX$-N1T^AM?f$0$RLePeVXv)j;4p5!J$_;iS$oSB8gNuI{$xm4877xCat6W zI_f0TtDK9cM;xDC?Y#OKAAzrN63MiW3H8j8-pefVS|@RKd7Y!FMVZ)Z9nlel^9jh< zme9PXG8o|@ye*;W^^X5u%237Rf6{9*IT+mDOR0`IZ*X*3-^lP{N^Wwz)Udsmc1>*6 z!9aGq8+&2zTs@n3Z*t!3TrPk8p7Iv2@4OYq%a!*~|H#t_rC1E-FZ9ytC^;EIPY-&74%NfyFg+7zuQTqp#4PYyOYWnCO?EP z;T=L<$=oP)@*dE8o%_`LunXDp_dA+IE+qL&I`P${|A6xW_?{>~gtxqm{DaO1ofDMn zbbkIHaz5mo1Zn#*yr&;V6V->E4?7d_mPe*VatCJu-d!G!qY3q$Cja=T^KV`{Njnj? zeTj)lN)sQAH@I~?16JkD@i3D2#Eo8}Jk85R=k*aQU(J!@B)okob)et3*2fII2d(qF zH-T?-e0ePJ?xsE8i`5w4{5EfZ4=mIcdOwxIPmnRAybL8m9 z9(Nw|=yAu78LbRx8#1X(%8$a1*gEBW%+ndCbo!42Jkt!tV_Vm?97RWyyfZI4 zpMa)mlT_g+o!;qFPVe+-M@VK@9s9I1DWS%E|NPPl&mbMMk49oj;p2hEOg>`W&vBqu zw7y@Ct1-IO!BIdR}=drRTl z?QbmHT7Od~p4U>%kwd``_q%uQXPkl4X=mUxkn;BK@m1;I)-6UH0dTy1OiydiO0 z_S}m<*UOjOV&?oE77k=y2{bp3?YTq<5)H9E9% zyzZx94=I5ND zBzz;p8A^(I_g}x@e9`%m^JV8u!kyqJoUb@vb-u=XwE9l1e+O6YOJJJW7-a`i}uV z{hn+g@%dr@S!vB5dMsbAx)hT8sd7iwzbmU_KDO_;>Ti0=(a0q<=Oh#QDVjp>=gK{0 zqa(55R_{!%;i2W6a|TW^HSjdgbc$59_)PnCHUIwCK&m$Ejc>0k?6^r|exVtszK1*X z-*?OywnIs0V~J;a9Jx>WeWXex^E<>3oF6!u)>kdXj@FdC(t%_x^h4*_LsDx}I{BLB zkDMRD^Gx+)=h;W;XqBHhKY{0_AH-C*GuWhU|I~T*l3t6OdjaleUF@&0EieqX#4|C7_2l7xrJ`iY#MJ3~qMHr0^Y zAAIYHwR7p{Dd#F(t{O<3nKZie7Q8eIm#gdp&nK+52A}tzPJiha{nqTS#jAQ(at-Ld z_Dkn-QgZ)3?+h;em*dl~oL@QreU(CM;MdOo^Qf=-`5z~lBu#QlhI5AUyX3!d^!MB! zRXvC$Q;&1Zx!C-VA#Dscf9qU1^gAb+{@3|m=l2!`TOrl|g$U>S|C7SRM6b7JljV+k zZ}Op*-JA3-fXVR>3BMK?uKeE&U7|nYmjnI#g2)C^jz2jUoIgAN=Z%5CIDhT;SO~Vw z;N$V$^Q`jUObq?a`J3~1>~`pLG{5iT)6Ubd@^>7StI7CoU-igJZJ2k@$4Fz!@jpyC zq%oJ9pR-Z$IiyKeH$H%T$Y9a@?S`%^uVd?e=Qr;%{{`siOwY)o^f zgJy(Mfjbja0Gb7w;a&q0UYK?J7fg}&g%fSq+V;1(%p^>i=wOP!t3p7ym|Gf!ns%b z%iz{a(Ave;uYFFn;{*FTtw}lb-;gyqUF-g1Q=$8hO#}a3>e-V*`uMZQ+x~lM#_nK* ziC1N*EPhNG@-K+7x3RtB@gqgYO2sYr>;YJ@-^`*wyDwy zU+kxQ-%pY6oCKes4Pwbb+t+zX8uQf?v7<>pcWcsWUIy~eZ%&EcFi+FepI`pV+m3#| zS87aZNdAklu0vgGrUm4SGx{BcEc`#=AV~^c-x3>n5i}g>M&NhG(b#h@f`%i1d4Es$ z7t?FPp7m@R!snCcyYt;kd$w2iQrm`b`iFH|`QlCnYEgb!9EP<1JB0FUV@!R-36lOc zke0^O^=>$&mW1nTZhup0y}q=iguUmc>)=w3z1e^6%KRGBqu*fr*XqHI>l~7wRb1d+ zE?VenTIBXcqPK{@6(xJDIi|*pp2341rpo`)`F(vEYp_dlW!fupFP3z97P~`Dz1Ley zpI-zms^6Q|g&-uyM9hz9Rdug=Q z9T?fAkd!ulCgR)N?Hnz+(g*5dj0OsYp<%_p5Uh=Uei=MF8s z-aQ6-gGGXbClcZ7qj>Q~>_PwD2q~M}Ra>^Z(TqdV5mK>yo_FO{RgCu{Zs9xkEwkc2Bsn%h4x6L0{hECR0%7 zO2+SXFOA;kUK+jMO{NdHK}uDFA53bGRGLG@|B!pRDX}Cc-K#XP8c3|aXFK|^`&_1& zdek)(-ctYOUZtU{f$%!NlDJpS*Ngs9JV|W*kGPjYG4+_6OeTlN-N&Et^SkloV#ANR z7f+JsDc8`)LhIt=?$FXFT$?`W8v2y0>C>*JPXdS4(P!Lb!uwLLO)=H~GWdD)FO9GN z+>CwJy;3N=en0DeZU`wnPoMjFSJM~VROIVEJ7Yh_H{73{o)3=KUv!^~s7W;4Q3HP=5U*JMI z&1;<}TtlXpno#TcM@iu$-$ws)w>6C=n>Q5ku=X4%udjDuE{FUpuFz1wNfTZ(L(win zXEV7Bllt-gM{+8kWB!-@Ktl6>>IV`I#J#K6I2@U@0|~<|_0D|^t0u`qYSJA2 zP)mY77>iPpU}=Kb=mu@{2b;752@^fmrAo|8m)GZ|^0@b0gZbF@bo~upKECb##d`NV zT-ra&iCW>7dgmru=pX9cVz{(_mJ_wYE%nY#w9r4)yTx#6|12kJgm(QZbrhXWj^dXb zjYT{3xkkq>g-+|IH#%ZLr_>z74~AMxr`NgaRK5p3PK^1;*EMT(RER{F2&=a-zumr1O5?-F${1|{b| zSRC!mU|AaqJEnez!uH_U^jmar>?QZ~!Ls}8wDZi(&%M{z;J3S--%yl#C~Vq3Keyvo z{!H{t)xSRy!egoZ()vaop86lB*FO8ppQ;3x#y9;V7#gcV{!n9+uL;BQGcpOoMDZE6_F78L1i6P&}4Sq8>H8xL_JX^!m zCHu#am}hmahR@9!=&Kk1BmegsnW;1J?}}y1R1QNgP?^)RHJ-q562plM$1==kIEG=4 z4rgX&s{&X+xPhS~VP+ona;Y~gTXjGE^wTqkWp7~UNSHa9@)6V@&(NX2qlt%QPacs5 zyW^;znZ3!&4|YE@4fzkt-bB0VAo3T#q@>_0Wb?FO*#vtb@JqEn&hP*3`K3NDa`2yI z_zi|%XSjvoR~UYk;Ws6O-3alw8GeiWcMyMv_#xu&GW zu{^`zu9PQ}{7mvQ$Bdk#hVn5?r{1RJ>I}mN8P2~>*UR0+g@R%4 zHu7&Fe;xhbK>ue@Zz{v-3>S(%(l24Sl;H}7%NcHYr_N^+!^Pwm60c>ri2MZ%|1?jh zE2jK!#Pcb?j^QuKpKJKk{{->13_r$j4#TmcH=O;FVH*4Ulx%cTYzQZGARNbjI1c4S z@~6j{apCIp0;cAArNeF$}#D0MeXED5q;ar9j7%pWvnc*UaD;Z8_ zIGe#|JBo9M7)yWbm@PvGo5%o!xDz- zH1qqcgeYf*)}Qq=&7b>A^1&86^M9-Pi+-g;bpc@(>pu(r1B%~EzoNsHXLX4GFrn+y z^E)$p?iV!wCNF=^dy@a3g^y6iMK;0;q?52fLf99-B|J&Flut0=)7hNove`efN9uke z=|@vf{C9whfF1S=hx4)nJL0c|vN@cG9ols`Z|Bo~KIQpLpU?Rf|A^j8uUIZcxng=n zdy00HNk@Ma=l#V@x0v=8Q*SZTtt4Jad>hl>En?QRL zm~K4f<0&6c`FJCzKjUeCKK18Qe?Il+)1UcFH=p^>r$5V?ZaMXrQ-3+_EN8mqMxW`I zGv5_Vzk>QJXlDh}tzfzpOgEMKQ>j0d`cs+jRHmCvz1h^8O}*LFn{D)He>UweqW&W4 zFQT1AOt*;X7P0K9P&2I}2FziyzN8<_3} zqeuU5;JWDsuA6RPIp)&N+$=qQ=Q90VBd49Yv_F^mDRTiGlStUrW?lmhB4hR=CgzH z9pvwz-VWxogZ6hAeU@Vi&nLG~{}!gdh4yY?x?7m;7W%V^`kSb~iTazUzms?;^>$Kk zC+)1Gd>#4gsJG6@X{XeL)GwvqrPSNRFq3vNsVC=8*|MoG>&En#>-F6)Mj_11zD>@v z;NOPRqpT}$`;vqhH^o>e;C!#w4ZyM<5PUoICEUiaj^Sa3QHBpnnBk|(6bw6$iyiR) zr0q@k%g^20Q3=cDW2;me*pI0)c=<{&qRE91?q?aud{>cV=CGS8vP@WCN zKk>p%AJ?J6wBW77pMu?)7>Bun5%v&Edbz%u%Np>;b$2B55w;wETa7) z+AZREDq=ZSQ@)z{-A?)KF%Q5UDUga>F=U^8|B-WejD|+89DX0(e9)XGRozAn&pL= z=^U47xo9Op- z#Mc?jbUElhh44HFS93j6M}8gC z?P9uJ8;Ff3;8h<(oT%>z2xtuAA8B) zPyT-L_ZvR@`F_r8`)O}K{o2EHdsv=5OuvWv4U{*~P6Oo)w4cfP9Y=nY`cc}ClAk$w zq&I&~rXAdONJ}3!d_+cO*2wIfQKNImj2$ z?x?J)-nwmj&7C{$+Ijaq8+HwR+dc3kmpw&fPc65)`ue^58XE6yYHn$5i{2M&@95lr zplh&$gNFj!{R7^1?RwyO4?h3!;TJsg!WX^xB`-blvX?*nihug&R~~)U!;d`j>W5$R z+Sk4Q*c;yXrZ+$Q@WXGx{?@l0fBV0@<6j?s_?-{G>)j{7cn|jXV(0cgy}kbfh7kxq z$n8S`{!qb_*gpK|zkNj8f9&z0%BR0}Kbk`E)W=c?0_+VR|HLOh_3)=3{>EFPGS5A2HA641ds9 z;eNR5M~T&c*^zkoO#5)z3w<@it2J=72Cmk?)f%{316OO{Y7JbifvYuewFa)%z||VK zS_4;W;A#zAt%0jGaJ2@m*1$ht4gB~g-9P+tB^ z8?b*2`=@7Un~%Z%n}I)xUGjJb!p~vTy$KFHyc7&hB{#)YLB76+{ABcBPS1N-2P1wb!_kjNd_PH}P-UOeUuwO^~ zMa2IT`+QJ~Kz$8t3v$GvJfjyu&&IJ&9?$23)jcU_F<|H$KmQ;@14+Q#7C&ZIIdAI#c`i{Bho1K791UQ9GqS1-8h!0_v4tM9s}Q1 zr*KSDp8zKlU!F|IH*B8(PFG*UeyjQ}jw98Nam-e~#4$(x2FFqA|8Q(jX->M@qVjNT zR0TMWR`YPoRZDOjqi(@*tXhlXy{ZhyajFu>@#-!dC#X6cC#nVz5~bM zsv5@;YCDb@Y6p&)>Tc+)S9LgUP))G!susjs)qWgjtHU_nqmJO%hW`?wK z0FE{4AspwcBRF2Kj;6V2+eZ-Juil2^0regn4`Ljop=D3uI7WQ}$Fb_uIF7@3Nmr}Y zS8y!GI7>tOp2Km1`T>p;)sMmNQvZYFMvS6#wLtv^_J^szA%3SCk)Doc_{XNFp$|+z zyjD%aaiN-n;~}*G$3<#6qd;)-xJo^W;|=QLINqo}kK_I7t2o}I z{vF3Mbq>b|)Kls5CerzIc~9rp>GIZ2Pr5u?{QGoyW9I^NZdQN6Q^v#9-{9vIrG}-U zf2QGx*P46Xq+bSid0N@*GK$SE^G2#&{IhrQ(d^=>Jjo|dKj&b7G4{d&rRHImxeUYQilw774K<_H9{C^1}`RAmP9&hBki87 zc~8XiqNG-p>{TTVk*1c21T8q!$J(0e>s1L7wBfI%rA=bd4tQVEu1Y#v>l^pB#h`gG z8f$FpKp2B7kgi2BV)Y#e_rr;O$W*QEj5fC&MBeN69fSqARoV#q`sSTa?Mq-hUMnqyQolOmm zsuZcP@9S)qptH5DO_kQ~iPaxarHwH-(;875TcY)-h~`~ri@H^`w2hdKK2+HQFvPc{Dj>cA1Rv)cJA3XAsnJYQ|GP>$W9^OmMVAb_1vfXs_02HXhO%sK zYn4V5>oIWA>@AU)Dp%!^J*XMUwY*N1*B{tb9ckQE)>*I0o7z-)vnp>>TlPuc+tR$N zq@fY@v!%Ii*T#;BbSjCKx1r{x)%J*S;Z)SeS|~(R`n1QcYU>OrR(HmlL^0NQFrv1! zw?tYIRw%S^SOU4dkr+C^MPdwL!J?VV#kUZzTYjr^6L0A z$8X`&#_zAKYHq8@*wP|&10}%KJ&y^yhmHlek=Z9>koeT zBe|RPv!6fppTGF!`TzRWfB*Xb{m*ZDe*3%s{rw;Q_@@hh{=dKc^>2TFy8q9+Uu5}< z&BO3`7JhTWbMRM2`ES*0lX!m!jXa(9Ao#L}Z%@nerPmGLF3~SQ_o9_r=jk-aUYbe{ zzS*81X5I)9hRV?k{)+Y41?*kH^pe)%9k$|LG|uprJwd6iThTd;4M#OKzInQb)nsoQ z8?qt6;oRQko{eYp(Dh#<52N1Vn~681;Kvn%5x&27TJzVR`cm~RFMP6l^()`^#Pf%} z=E3tDi#t2oHg?o3Wx5hvd9~o03ac>eezTR~TD2Y5LWcVQ^{a5Lv`$X(YOQzNg|Hr1 z;oG2JkEg-a79uNs}XRUJx)7vk09P0&=V~An{B(=jO+3Z z$h#UV!Y!&CVI{&c#EKzXN5v9wisclQgmKaauM(PKr3PnATX!SMA)9Tj2KY|w+p(8o zmu(|7s*rav!jgEd3LLRnt(9<`1MlbHD$;Bk*BMAJef_%voMKq7MsC}f$6d(L=9GFK zNE@uf{SbvKH=A=~JRiHfTF>T44%MCwlfthPQxlR(?E4bY#R?82d=pc+=OXnaHKY9k zOsH=^H>od^vuFu!Ky67+Y-R5#L7#}A7I~JvBikDvx!1a0sB=;10hM0*a>S%IH{x!C zY}H;rl@`~V^w}z_y$m+`>pZUwk~S}eEva3-ZAVPXCEHr$Wj5UZ@X8`}A=`R-R1SU9 zAF3^V={xJZFX`yMq*EzRTi3`IXjd3EYF+nr>33V9RR(O!rA*?b^bOfcQ2&YL6t9C? z3Y_g;3zVRovgy(VxneId|DgS~u(BEHrB|7_*b_fR*VM}fkFzGu(RQUa^rpv@^okOX zv0m;hF)j@4pU;*2s-aT}EiJF{%HshX)?nm{j_wW8o>IGJ6dQX!S7sBbU$d?EJoRgG zt!JwkI%S^E(i(aM=oH&fUYU8M1b(m4`E2!S$h+LeBcsBhWWitAt5 zn(AY%_03C{EUas87Q7Rr!+X3?jyrMBM>aX`#N9L5O4CdZw)+a;SEcjDfeY;xR*`%SXRQF|%vUE$SB z3C3*9o8#ro(uQ~)O5f(q`;tcDofy-&80Vbdgnm=+jdl5sUAVjrXO`A}=*5uxzLa`l z{#4*R)8*wK?r#-jt?<4W=OQ_8)ncBq%VXqH?kLLDjPljuj;gIAP3e7sNop6l= zUKe;WZp4nkn_;gbsSd=V(UaVokvf&;M)qPB=2gi^UWNOy*6QySH=B5V_3qGPYC6iy@KuQ|1Sm zgEvSbY?4OKC_(;uPb)cvlulMIwwLy-yb*rMOlDR%ed*b0lf960OBHgHwOR@8|4RAv z=JPbxv#ilG`PsTt$LPzXY1%%l68k@OHJr98NQ6Qb?EWZ?owA$9@$JeWz{5p z1xqAY&TqwN5y{VNdgW|ZUkWR>c5n8O)%-5(GDmiJGyEQJhFXf>8WtmQ2j;~#%nTiv zPh_6lg;ZvJCpu=U!fYmIgJx({V@8W$w%qQ`z*<9JE6Dmf>M_K3>4mbgke*)U^&q`6 zUjt+|JzmYYm9ePH6r2xq@6zXO(b20*!7`pqD7B)~ulGtP^{>mY9>1!{wjRH$=x{m1 z6%1E0T*dGPhKs%L6Nx>kFA2q>%wGQ0jk*3Xq2D*82k9BoGY9`Rpf|{j;^VF0nk_hk z+Vv(nW(GBBDmedDd-Wjmtkjg8_hk*`=TjNLQfvA;O?s282{(Bz$ogrs#aRO_83S6X zyjI+byiCuNwWRb!+lCm@c4XFA>(!r)r5@{KRqq_(8KWbT)1SQ+7Rt}^p&WdO@a zH@->w$^e#got!I8AFB*tX&LDgria;n>2tCkOVZAA29}ns#27c@R`QfBDA(6h+u=GMPlu}w= z&p3&EfA&e_n^7n0VSQ#Sh86po(&o$9T*sET`F7cDeg)d97`0(sE{IvE`M0 z$T#;PuSt-Lmx=i&%EdcbU+U50x0uI{^G%ECQRHiBY@~92H>1ec5lcQ_>za8rQA_Gm z&$q^+nQw!7hHvy_RVC*yQ=?ljlI7aC2xrndg!-t|O~Zb@cJ%7AW8U(0b^M96SAF~8 z17{z7!~1K>-g)MivGS^kk5v@>>hYJSe{0M`A5*8deC#y~dv@Hl=C}3V8uPj_xbZtZ zCueyeeRRYJVsE?mTVp=?YqdM$m21ndMP72vcs`cp-N#vjxNH?O^!=UdHB=SXX?!2? zQ`0miRJ$oZM@E$R`^1NdKTLd-_&D)#;#U%%B>pDxY2xn?pCx{hxSRMr#683xBUbaZ zzh5BECH^6C0kOW@fp#GN8s)2rKSNwWe1>=x>q}qdE47>QH&Nb2+(dj~y7p%#@lnca ziGR)dHTRv5Q*N#sP7>=o1xlSJ{wUM`p6TUT4B5_6ZqDDi%s*X=)p^Rz_0$F8mr|Zb z{b9rz*K7aH9h?HnhZ}v$|An}a_*KNKh&K|K68{@<4e|SkFR*@#i5n(x2yw;&U4P#t z&LcicTu5xzU#o~uQ(j8^ZQ@ldUnX%4<=-N1ApQ|?7x8}(A0hq<@iF4Zh))oImiQF$ zzZ0J!{#W92#2+9&Py7?&3&gJ`&RD4HqnkL7_!Gp1#NQxZMf_9ZQsN&F*AV}hxPkb4 z#9hQ+BFs`Nqmm-*ASm4ekbt-;tvvMEYkHW_l9N5BYs>%RY?3v;%@qLEAcAIj}V`rTwgum zx`^`UQ(i%Tvx#dcH|vK6rq_2am1>~8gZd|#K99JI@(&RoA>Lu^Q$L6J80A}tic5P*l(>rcF!h%Z*HC_t zIFIr<#0`}1BhICKHgOl_dx?(_|1)tZ_2&~Gqr8Rq1n~=r&r$yt;!~8rg!l~QHyKR% zi-@C?7ZIPM{4K=ii4PE8Anqj2SghM?EAe60_gLaQ%3nuZNL)?4ium=!N0@#baVh2h zM0}k7t{|?V{6XTQOh2Buf%0v{$0(mb+(r3z;v>Yzj6U%zh))o|jrbJt3F70lKauzh z{ z;#HK_5tkBwnz)Ae^TZ9rCyBd=PZ1v>{wnb?;x7}Qrhk)(Pf)&-xRmSLpA(;={By)- zi9bbrp7>qFYN@WDHxQp;ep86^D1ReyA@SYBM_4~giC0m6h`5LH)x@Qgznu6a<*SHm zC_hYmit-zX8z_GP@mcyimAH%Ydx(z^w-TSD{xsraleKA-1YZ=57HBXJ?|O~k8+ZzV1zzKytscr|eYaWQchaS8De;lbv-Nd&O_YiL)RG_k`4$XVia;%;L8do0yMoM{#;b9DK$h;xav zi3^BxiHnHG5w9j5Ph3Gfk$5-pWa23CG~y$~*ApKjzKQrG@vX$CiA#vj5;qZ_Cw91? zxt92B6Xj9jCgQ`y4i{)giPMRX z6OSN1Nt{W1nmCL2EO9n*H}PcR9^#vb)wR034i|X2#OcHZ#3P7{h%<>-6K4@u5N8wb zCZ0?jCBBLH2(iNj<1yk);uFMK#HWa}iO&#ECO$`e6LAl*V-}Q!y1bdhxx`t-1;mqy zi->O`E+uvfbbqKJ&LnOi&LZwI>4}e+^s{yPVCc(;#OF0kuiMxzG@e!lHO6wmpa^e$4 zezTUJGIHWGM!s6h&lx%Kd4tz#`2~YZHO}CDiL5e>^9-)gxR5yg0gYD?PbN0^HEw}e zu7z(5{C;^y;P=iGpIUyy_sVx}d`U(3jL-i3<(uSbr)K;%EKe%c;>o2A*jup+Zic;} zT%N1i9Kyc?zq890)USlCeRyU{o~#m^F;6R8Z!bKMr)yiGYqp?0{hVeU^bUAWcJ51I zPo9PqJ2CI6t#)HB$-h#_#W#6MRBQ$FTZ`Y?^^?9*FRA?!y$Ub4{jeo(iRh9B?Nz~w zJZUTW$rhBC!=Db+Weaq|>c1FV{fw@pZ1hSQW@jCqf0g!(CTJz+R}C92&@)@mA9*fV zp3*fML3tJIOU=~6PME(Uk9nolEfq{J&)G&p>S3$rw^-C$Fr7R>T#LRUwmZE4Af8I^ zpyypGJM!G4JnbR9*YwUkUQbZ4A2G@Boq`5@)j*yqsq%QW=ryv{QAb)_HhK0>hq`_1 zskaw?%C?vN!qlj|H6ojg5FP41b}#KVp@n5@rQKFy-8+=mz9N@?u0w6Ff%&w1Un-IB zxZLN-+wr{z**Z`j9qN86H7T3)UD-OBZV$^PPln4T&s)pZOgr*Kq-=ZXuk?P|8rUWg z)SPVfEN2VtMvy|bCZ^j<|K(Y5+2pxQ*_x=|M0@RgN2`-|<*9brqO`M*`N(sevPtih zt%>8UC0;LD-a`I9mQU)t3Ht5GPimwN{z#2U-&o-F6##6~M;2hroBIgTR~F!zAl*9@ z`%5*RcF~*k7wJFdI$!$D0z46B?kh1-(gs6S=V`qeyTy<A&Ky(U*QK^>6A+`tt&eTw`DQ zwa88VN&jAe((p8k+{K+QAerDQD#;cUW_}$`_b920$ z?Owh4{X)jI_-E=-#<%nG{M@ujdP2-s;)&`-Pq#^gCE$vfUe>@>F+Xf7j#OpZDx>QR26nhJDsUVc}GMxT~G4Pt=@D!mBz=Ht|xhKPH(!N1N|+3%>8=&+t0`wekL>^OvVw^=9(-=SRuk?|(XfdA43}I)C5aJzoEk{DbYU{V*-7 z{gC%)^rq`yo^&=?>R+A{)|<{p-mKA^uK)0SWJWMOROeG2?>{;pf8NyPk*8Rb?IyOX zyf5ybskB{vO(iL{-PqPhE9K{RbJiBW?nJ%?E9r>qQvxORx$an ziMOjxZ+e{>54Xq5sr{8V)@*c;3MlSyCh_8#ZeKXpO{w7N<`W5l>xG9f0 z?`!+TR{5p9x5meXmahq2OP1fhqZ_HJ;U}+b5r)vSuw7wm^ZkJZpn_j2a#_L&pS%6wL^`zJBby&6NP0w>; z&&G1aY-7=~v3wmO5qHM1TyHEuJ|?Jn<1>P@z25Zr+Y|R!WBHS7ux0C6&S}yO} z*>bs0l!z14%l#o+F82x&vG1Scw=dp)I==?=9$UX9{$&v@Z;iK~#^&nN%okCsKE-}C zP`+rq-|F<{s@$aS49NFe_GFz~Z(&)-iWR-->x#yBe)>Am+z1qWZl~w?~hvE60dK)uJ!%X>u!Hs>g!Z}??^1_>j_&f_GR4aO|MJL z-3`%~@|(LT`o4qABW9k`*LCKuhQ7}t^Ma`_y-xMZr?DLMrmutV_3lv#M_&)gcVYCV zuV0$t<3nF3`2L%9yy58U=%#r6>Fb@Q_&lz!6U|)}eV;|@SI-7=Uqr6A{PC!-_sm@t zk;{BxauY1`pd9rk_dgQldc65^!7cIrr?2Pas5gC`Z|*|r`%=DY=C`B2FTfatA50$Xy}!JzV7zxTkhA{{Zrq^F?TEFex8)x??3v!jvV!-?*sVlsqf=-#^(=x z-zOSBf9vZ&eYDGK^X>BL`!xIEh2Hf26yG1c-jn%6&oDmLJ=S28UgL(iKN`2h&tDq1 z$L9x)JL2b0egDSKe-833P=((6aPttm5&JEmTM>#(aF!P{p?=aY_{QQjcn^FDzMH$! zdn;Mqd6O@w>}08ZtlzavRZ3b5`MUk~Ey&7TkaFA5~e3ovs1@5;yuM}CQ_ z549rmptc;eaRB-GXRB0t@_uGLb~#UW;7+IhI*a^XC96%{D!N{((6i(h8TtN;{?5%B zFO7Wvzo2LimJ=2BITpk~f zMOYb{Z#hW5(rY{6i`mwrUgX;nhBF5_)FFkuHQaY7-+Qq8v#by08xGiGv9?%2M}1dE zL2Fw_!QM7}gtVYA+FT!LuP=zzNAY>qdE&!eH{N{X-FHiPs~6s}6K_7RTfea!Mz&V3 zU%UcZ2tD1cB^6#M>B_h4D&AVXWmmy124>*OrQEVU}&&ys>)M=Hlv- zQuzs*xN=>|*2=1lTgp9NN##6MhAc`d<%oCt%kPZaL)@?>xmr_Ixy$AW-det~WXsxh zUYba3Unf4-+)>cj?iD;zP>av7Ha6GSq15=&a3oex-xZCat?}Jp*o*5+EyYzETMHJi zDA?23QP9#>=QT}dYg236fz|?4YGZ3{TP#*z+fg82SZ-?-y~6f+1?~7ot7>e;cV$~6 z%?0(+05?LV78X2Lkfd#2YvUn&yEs{|r4b&r?klK`L_0cT65A7t)HaDpZ`+G+N23fK zZ3X-4;Z=Q0Tg+TKQ$vED+rIua*?RbR?C%*~(BbM=uGY%kyuH<9ZgY9;9gi1!mq9L& z+|QVON4A>1AUi=OXgu}@AbTJn%K`r*X-XZ1>}WtX%Clk}94kJE(cFR@@4f4w$%=(Z+5=NB+V_^>Rdo4sGkQNvlUu#;dwSFwDT3a_GafBMZR5-R|Iry zed)7DE%^z=gL#X-*fO^5{KdY#86DxBMw$zdpAG2P`sns5_g3FV5#p(QFgC?!*=#=~ zAA7U?=z$-HVYkN0$JUj&*gR&*Pa+;x4`R#Mw(}SJ_GWa1m$wA%e;e9ApcB;3gO1q> zt+?v{Ai!Ec@&R^`?o6!+omy{p&DlGf9uEf3aTk;br@)ujiww=G&w>P6B zyyH@S$j=6JY<;i%#lDR~#KX!jwv25%f3a_GMn`yOr2Mc~VcEBJCGM5qlAlPCzt}Ri z?fk{Qy>$ohd89L&oi1ZdVmhNEd7QOum^?);wj^CaNZP~TUBG@eL?&rd$qJX|cy%B; zwtodBiT9Z^2~rev)T4eSvn%GfSxIvt+y(WudyZbWNE;L$fW%mEWWWRGAWys zqawuSaq!NB@PoYLDg4Y>n^-?xDazdwl85*vejW{xNqM>~zFi*4L+lj<@;3G)ludjV z|4KvjP6T*ofrEWkY+MNFok>x?f^~`Ypq8a**MMFD^vq_re?>sg=tw<813rmN>g#X_ zU-XYze7hc{EaG=VNM5#{lw}okj`pD^Wf8wmh3IvyM?b@UenYl8jlBW;ap1nTfu`vR z*tGKt%d2a7jv7XRUH>(uiN1BSo#gj>qqiCH!hqg!=%t6)%MIumd!lOWtwua(uZ#Hx z^(s(*_LdjGMkejJ+L9T28Q|Ob2JM+PGIoNYcfPRfR=`iwXKcGCEFH123iT~%WwZ5G z2kJ-UVo%y8FVLn&RvN;W`LQOz7dykTcU%3^_$s!f4@i4QLwq=%!rxUJ6YIYRX;YmW zBo8U`Y0Lf@*fl=b^>EJ8k#xs^`?4*1Qtmvw2!jcQ$-fA{sJ}tw!6JcHj z%7U;I_%!z1&Ape+wqxRlkzVS<*fac8;fX=cf3V8Z-#Un*p6u-y@R==%JdyWRpXViA zIobkgrT&g1l=kRrOVvg_XnPs!vf2G?724F^idN)!eJH3`5zuRZUYNaxfL_r`eO}8A z$$(xr^hVHOyBuc%ddE|g<8VOF_!lg1D*u9dLI2dM@OiB}kZ%F> z!p=7r0(uS5Gh^5;Z!Y>qa1*^u?1uy6TljJ=Ivc_leRX@XEzv&~!WUboL-;bUoel6s zSK6~8zz56gW9I{W(Uvd_AiIggm2cO-yUhy=Coh-~Vw* zS90UdwULg<&i4JSJ0tk_J&heZar3*iwqe)Og-aJMUa@meW9v@-Ump`L-PN^X*}`bu z9%hgZLw{uaI|w(FRF~l&m8uGKgoW}m$ZY(#J8TtWv9Hf0uf_YB^>|IDDu7JuwY1JI zDpIGx>&7Ibd0p!Go=mkWZtGy3*iz9<{8|H@wpg@Q@Zn5VF%r134#k4WMReO2`!aM1zg)ym5{ML&5&P7r#56`Zaa>+gLFW?6W^1R>cyx%P_iII2c z(4o3L@*HI8)@)t2SV!&bjm2KR6$!i@UcNOpuUhNvPT*-h+{5?g%7q=x-jDgs7M_j# zaBpAd2l?zBI!zaN7hVP5x^$VMzr?)m7(Ba6%5?g?PFGxAHhb5uh&q#iThv)#sVgl% zq`HAGVA@((uWg?DBi3AEQ}@FqVzcK@;2|V$sqiu`AaB3FN>^4jX*sGI9}T143gM{& zoPY2Eo`u@H_uIj0bYc(Bj;W&?UGIqIzV6Kjvv&MsOk zDrbM1qmJJm=XpK~zn|M-qvs6Af7)H*7WEn810tiB4OgR=jEp*Xxqo~e_UaL8Jb2@m zEz;nBd^Jhdhsm$4{g}aS~5K9c<~IC zRf)LqH!n-&)uBzQN2n!0SEn(E9|xjm!0v(ILo&WMiKJ-kAxFH~W^LHjyWv(!}Bnp!;; zx?|MTNAr3nc8`y0eh&EA;KNQO`IxlRF@fh#c2)N8+zPQH1Hj48Qu$BisQiv>m0vef z<)a+=u?ao#x-)fXLecMlULC^fOz3B*{K^U4PL?b6UzC6SNR)93%9y97J7d+@p4{$H zr_oOI{Rr~xkB+hD`PWN+j+AQ+%EA1T{5E_OnsV5ECX8px!}@@X16#+~Frh6ArZ+yD z(4+}s!}ro>qJLzl(UlleK`eTYT7A+RSJ@bIBQfT()cBY+=8R1{jijBBp(b=-$9R~4 zu{2@HnC@Q3u3bJa?MS4}LfT9_MvG3*xb87$N1v7vHnJkFAFOlRUpsE<+^e&|JQcJtDFfp=6XP1; z666}q-L3m)h~LJpgg-<7ye3Co(=kO|Q#V;%gRyZ9#)daC&yGEvi?N~m(g;0=1@pE2 z_52L9Ek5X!gLck|4d+~9&1pef;t%G5l=T$U5383Xe**Pp+A3(vPM0b!{yk**XKeZU zyA#G;Fb@x7oS^@B=O2?k7lmvh)r~=4%T<$}#5uxi<6M>VB-+@sI}Uco!tNN@%~eyLgx%iw9pj;kG&uJ_SI&Q0 z|C!*2m9IZ_a4|YkC#lN#R7f2L^B8FQu(I`LBh0rj8)1Hh`QKX~7!3U|-@M{T+fEB{iGeLalMIkcYIB1)}H>FiPy#6HS%unnn~7JW~~*b zuh&aaC(M3u?PS(g#*V=z4D!Ql8r|?P8o$m9S&!x~%EX*og*mqp*PVCZy0cu#np&=L zce`e7ZQmbY-1rp;^OuZNGwbe9GnZAUnNDfaHEfaC45Ud|lTwynFhY%T%G8MNVbS#6 zX%%jf_DSxOI@!1mugoZN@G;dfmEN^WVm!F6HTi{5)V)66)Ht%lr{o8?V5+c$u2)EK%m(-(lRh%gKy z*5y3zrM-59n&=!;oKMk1beo?<8Fd|;Mjd=SsSZx#hr9gwnegR@YGhAlx8K8b`m^{! zxlg&*M-HKn>`&+;$MGb$)EgXUV zcc@^Rv%kRZSI5(we)yT9PI_y{-ekSBK|sUWiVrdpG%WhvA;;GBp8ZF!%qxGNj`7GQN5n zd%Dl3S(65e5fAr>;&tYtRQU&Livof|8W~ym*ccY)|P}7j!n^ieB`;|ULS_)f8u(b9;G;KYdMmeQe;ewsI$nofnpER&fPC+Kin($0lX`>%aelA%wk3>zuf9C} zRQ!Qk0tuIn@1#pZVr=@#G~blny;rMevJg))riQl)=|VZF&%_r}r6@N;*HajNHs zx5D1Br1`-+H>XJFU0Ze}-skRZj?!xlUJIvKSHCDSp98ha*8)h0%6!c_KB@l870Z+o4d z>iLAQ>%n~dE}8h-Wb$>?^bFjGz>e#@>G=I=`jW}rPFOnIA9;SDa&%8l_sG+k(Tv?A ziiTI@FCD37b!=C&>b9v_%c^m0RH4Ty(2Q*%yC7!#(v(qEs#Z<6pOAHMLn)Si@U z`>^tQ^<@2y*jF3bWlE)M>)7#NUbf7R2d|-}-S?m_Ot~%H{A=*LH|{;-x9@}}DCC|{ zkz7Yxy7Ba;A9?;**Nj2z)mJut@5XQ5xGymwW_~LV{4P5!TTSa2jkVDzHLW@a>m%S; ze$S-t38zEv<(d4YJeBy(9RE1O`)zTFzv_znYRa559KZc$sGKFZu89uc9q$(@+93a0 z{61g35`HhodZ1(7SC+r#ukLShvWd2OK#+KhVN2{@q=xc1L z_fph*zIX1v1?TQ1q33Qq)~E7k3`3d9R1VHh=DNN}`h2jT%*?_)x;!=W$;mx=-4oA_ zKRq@&W;cF^@#=jH>OB|rj{3)ak7a?E2WUq{Gu4uSd%EoaaNyDn1M6@J}B%v}>y{*(Tl3R5oK zkM2P~st)Z(M{zGBf2Pb|ThwUuBm3G_`jVEFhs$PaUMX{$42c z)ysI%{nc+@T{nC-EztH3{s|VIACvyeHb}m|mOmv;WjgDXxsO~RQ81MX>#h+?zkF`-YG3c^z-=!yJNh;e=&)R!E)`lDzgXuQmM$Q{`#$ z4$8egl3XA0vV^rk(1zXTOg<*GWfSo1Q^z=zZLFH`J3O1=*$&L>sru|xxlcVc^!}~B z_cjIh-X`PT+t{RgZ-?=Wr|usk^>01i9EN*;c&2I^=9y`jXQnOT9M+pG(@~ky?xt*E zbz_$|RatBu+S1qgtKiE@T<0&*=MJt((bOn zU>RS|Fjoy*=IA=;u;N%p`OkGS9=8WuOVFonU!^>l@9|7x@^fL*|BX*}8e`Aqr8s}a z%V_Kb`qz~ugpWx-9kLUhwxc@BZEV&OqMosL&(-CKLPkT?>7GVrX89UNcRvp_# zemAbhGeG~YI1kW(y9|?Nr zTQ83DF2;s^4tBiXi$>x1B0T?!wHBX!l_%`*T&(<-6fVohx*gBm%AMh}=9fBIub^x5 zet7b;!}*1{pIkQ$*U3|HUpX&fES!{dR$t1Wpy%HB+SBxru(9c_adS{k%sDamEx+I3 z`L4X!n4Zzye8w@17fd&2q?&_qItObBZ`L^LJ!`ysGzz8fXJ)IMNBB$y#*6ta#2bel z7>CBkVE?wtrTZ0pt%k45@T{r$Ys>9;&`uEBx+ZU%XU79+{q-iwVXZe;2in2$`W4po z@*H2lhW7jav-dXeRTOvM_ar%i1Oo&JkVt@tQKO zIe}nNqoSgsQbdhPY4oBtT3S;?jfyrZTB@i~QPEOOD=Jm0QPEOM?fw1F&YbMooP*f* zy6)?Kp60`!?{8;kXXkBaXJ=>Un6U-D&(;6e^CXyO7o^UYQ|HOAVH=s(X`Mqm2DcBY8CW`?C^_3+%cgEbnoFi92VVJ>nO zbCE}d%|(`SO^9?q4{MjD{l#40b)+4Ah#H!c$@qMF#P+^JuE$8%wso_VceJ(PPnr7O zN8L-KT}&I}dLGdC#0Y)EVZFFs<-KTv8dl7;nvtL~f_+p5`ILcMMsZq^bAQU<{xl?F zd|QZb+R=m&JdW#rG+`af7-v@KU6Q;TlKn%=k5xlUjv?(?q@8azYMkeV472}$$1^57 zGI#=W6OU(1`#AauS)sX!`udV`a9tm1MG_Fsy*Pl`YKqfY;D0p&hBVjb*|>)jg{SJ=+;-(;TuCWW5=GUOQf-eAi}uJaLG z=fka%n0p=Fzqvlb@PU0 z-CgApYUk{}XtZguH2$1+=WyDcQM5aU(e8{0wL6{Od~~1p+iHF+{E!M)IoPyD3nx;& z@utmvtT(Upvjg8l&^H=3CUiG0b^7PY^xgZ@cc-6T>zeCjpADmrr*`N%RAQb_bl)gS zSdq$F;%n<)8uyYQW9H?2e^e6B{l@3?pWCTJ8QeeUTV!ku?@>E(cYTYu+7p3{SsYA-OpJvpPalHQ5-=|Ia9$+pX?M2L(K59(N`LR9XA^ox|BJ|6oZn^X8K=DdXq+X5YUZ3f- zv&{SIBkiEQ?%Z`?FymW6=3SKg7%PwCUK*8o$d5^Qlhmm`B z#CxaB>u*as+6m){^MDvNK&}CMyo}??wk|7H*_Qd=2|krj%WSby;$ZSOtuJZApXA%t z`<%RxJdivQ+CN=JY~p0?cGad2tLTPZ{Ni;eZExFM=n zY-xw_iBqw-$J97(PCeyWk^5K*_py|L^gHc&Y(7|8cQ0kX^wEraBK58B`0i`z zy?US8i_IqAhb}hxKIQ=V?rmG5+%KH@pAUuRe>OAEOn+aM!}s&G;VrCZ@*NiRc??RIqU+u4w zHzw62rpBt&S5mTVUHyEiPYt@*r{d4!Sq{eZj#Is_aJ~=l`uz!he~ksnU!mKtQ@);e z6S}STxY;y)6A#pH(rtj}`*52VUg|lLeA`O;2X18i*zP}2_|{J}MvJ?*KDo=qhGmbn z+uua%KT=pa4N>|r2a3yZ`e-~0nRhs$(b#BX`eD!fGOr}O52))BQ-0MAkNDIPk5ZRr zCu*L}b|Krt*p|O*&^NfYL+z=P2j=}&_&AO&uQZu|@QQvb-qEYwx$oF^`^^V@>TB#) z>ab9@7jN>Z$Jmy?(0Qb8k9X>J+OhPlEBbPMrmKEkNu7N<654y!#FzTASx zI_dmGP1#<<_C;*V-_Z~I)Cri~Z@2A!echRKglTVGa@QHRw*K61ww~F22dZ0<`e1tO zi!~5ixmXEKlDsEG48vIxLg+a-l(HpY@S>a|_;$`di6@oByZ_JkSj z80TDvM?4qZLVFE``g-=d>_K;(^0q