From be441166eb4d3c4da6dcbb688e683b505d186c7a Mon Sep 17 00:00:00 2001 From: Joohwan Oh Date: Mon, 18 Apr 2016 01:33:36 -0400 Subject: [PATCH] Add dtags version 3.x --- README.rst | 101 +++++----- dtags/chars.py | 2 +- dtags/commands/__init__.py | 280 ++++++++++++++++++++++++++ dtags/commands/{directory.py => d.py} | 16 +- dtags/commands/{execute.py => e.py} | 10 +- dtags/commands/manage.py | 223 -------------------- dtags/commands/{tag.py => t.py} | 18 +- dtags/commands/{untag.py => u.py} | 14 +- dtags/shells/bash.py | 90 ++++++--- dtags/shells/fish.py | 35 +++- dtags/shells/zsh.py | 92 ++++++--- dtags/version.py | 2 +- example.gif | Bin 198502 -> 0 bytes setup.py | 21 +- tests.py | 146 +++++++------- 15 files changed, 602 insertions(+), 448 deletions(-) rename dtags/commands/{directory.py => d.py} (63%) rename dtags/commands/{execute.py => e.py} (94%) delete mode 100644 dtags/commands/manage.py rename dtags/commands/{tag.py => t.py} (81%) rename dtags/commands/{untag.py => u.py} (83%) delete mode 100644 example.gif diff --git a/README.rst b/README.rst index a8a563c..239397b 100644 --- a/README.rst +++ b/README.rst @@ -1,16 +1,14 @@ Features ======== -**dtags** is a lightweight command line tool which lets you: +**dtags** is a lightweight command line tool with tab-completion which lets you: - Tag and un-tag directories - Change directories quickly via tags -- Execute commands in tagged directories at the same time -- Easily manage multiple git repositories, vagrant machines etc. +- Run commands in tagged directories at the same time +- Use shell variables to reference tagged directories +- Easily manage git repositories, vagrant machines etc. -All commands come with tab-completion. - -.. image:: example.gif Installation ============ @@ -28,53 +26,41 @@ Installation # You may need to sudo depending on your setup ~$ pip install --upgrade dtags -**Step 3**: Add the following line to your shell runtime configuration: +**Step 3**: Add the following line at the end of your shell runtime configuration: .. code:: bash # For zsh, place in ~/.zshrc: - command -v dtags > /dev/null 2>&1 && eval "`dtags shell zsh`" + command -v dtags-activate > /dev/null 2>&1 && eval "`dtags-activate zsh`" # For bash, place in ~/.bashrc (or ~/.bash_profile for OS X): - command -v dtags > /dev/null 2>&1 && eval "`dtags shell bash`" + command -v dtags-activate > /dev/null 2>&1 && eval "`dtags-activate bash`" # For fish, place in ~/.config/fish/config.fish: - command -v dtags > /dev/null 2>&1; and dtags shell fish | source + command -v dtags-activate > /dev/null 2>&1; and dtags-activate fish | source **Step 4**. Restart your shell. -:: - - Note for those who are upgrading from v1.x.x: - - dtags v2 has config changes that are not backwards-compatible. - If you want to keep your tags, you need to run a migration script: - - ~$ git clone https://github.com/joowani/dtags.git - ~$ python dtags/scripts/migrate.py - - If you don't mind losing them, simply run 'rm -rf ~/.dtags' instead. +Once installed, you will have **5** commands at your disposal: +``t``, ``u``, ``d``, ``e`` and ``dtags``. -Once installed, you will have **5** commands at your disposal: ``tag``, -``untag``, ``d``, ``e`` and ``dtags``. Make sure you don't have any -linux aliases, functions or symlinks etc. with the same names. Usage Examples ============== -Tag directories with ``tag``: +Tag directories with ``t``: .. code:: bash - ~$ tag ~/web dev work # add tags 'dev' and 'work' to ~/web - ~$ tag ~/app # tag ~/app with its basename, 'app' + ~$ t ~/web dev work # add tags 'dev' and 'work' to ~/web + ~$ t ~/app # tag ~/app with its basename, 'app' -Un-tag directories with ``untag``: +Un-tag directories with ``u``: .. code:: bash - ~$ untag ~/web dev # remove tag 'dev' from ~/web - ~$ untag ~/app # remove all tags from ~/app + ~$ u ~/web dev # remove tag 'dev' from ~/web + ~$ u ~/app # remove all tags from ~/app Change directories with ``d`` (designed to fully replace ``cd``!): @@ -94,53 +80,58 @@ Execute commands in one or more directories with ``e``: ~$ e -p vm git pull # execute 'git pull' in directories tagged 'vm' in parallel ~$ e vm,~/foo ls # execute 'ls' in directories tagged 'vm' and ~/foo -Search and manage tags with ``dtags``: +Display, search and manage tags with ``dtags``: .. code:: bash ~$ dtags # display the directories-to-tags mapping - ~$ dtags list ~ ~/vm # display the tags and directories associated with ~ and ~/app + ~$ dtags list ~ ~/vm # display the tags and directories associated with ~ and ~/vm ~$ dtags list foo bar # display the tags and directories associated with 'foo' or 'bar' - ~$ dtags reverse # display the tags-to-directories mapping + ~$ dtags reverse # display the tags-to-directories (reverse) mapping ~$ dtags edit # edit tags and directories via editor like vim ~$ dtags clean # remove invalid or stale tags and directories + ~$ dtags commands # display all available dtags commands (e.g. t, u, d, e) + + +If a tag points to a single directory, shell variables are automatically created: + +.. code:: bash + + ~$ t ~/some/dir foo # shell variable $foo is automatically created + ~$ ls $foo/sub/dir # $foo can be used to denote the tagged directory ~/some/dir + ~$ rm $foo/file.sh # $foo can be used to denote the tagged directory ~/some/dir You can always use the ``--help`` option to find out more about each command! + Technical Notes =============== -- Windows is currently not supported -- The directory-to-tags mapping is saved in ``~/.dtags/mapping`` -- Tags are also saved on their own in ``~/.dtags/tags`` for - tab-completion -- ``e -p`` hangs on interactive commands that wait on input (no easy - way around this) +- The directory-to-tags mapping is stored in ``~/.dtags/mapping`` +- Tags are also stored on their own in ``~/.dtags/tags`` for tab-completion +- ``e -p`` is currently not supported on Windows +- ``e -p`` cannot execute interactive commands that wait on input - ``e -p`` spawns child processes and redirects their output to temporary files and then to stdout - ``e -p`` sends *sigterm* to its child processes when killed -- ``e`` uses environment variable **$SHELL** to guess which shell is in - use -- ``e`` redirects all stderr to stdout and should always return an exit - status of 0 -- ``e`` executes the commands using *interactive shell*, which has pros - and cons: - - - ``e`` can properly use linux functions and aliases - - The shell runtime configuration must be "sourced" each time the - command is run +- ``e`` uses environment variable **$SHELL** to guess which shell is in use +- ``e`` redirects stderr to stdout and always returns an exit status of 0 +- ``e`` uses *interactive shell* and this has pros and cons: + + - The user has access to all linux functions and aliases + - The shell runtime configuration must be "sourced" each execution - The performance of ``e`` is affected by the shell startup time (beware oh-my-zsh users) - Any errors thrown during the "sourcing" will show up in the output - of ``e`` - ``dtags edit`` uses environment variable **$EDITOR** -- ``d`` prefers tags over subdirectories if there is a name conflict - - To go to the subdirectory put a ``/`` after the directory name -- ``d`` requires ``grep``, ``cut``, ``seq`` and ``/dev/null`` +- ``d`` prefers tags over subdirectories when there are name conflicts + + - To go to the subdirectory, put a ``/`` after the directory name + - ``d`` expects ``~/.dtags/mapping`` to be correctly formatted: - - Please refrain from editing ``~/.dtags/mapping`` directly + - Please refrain from editing ``~/.dtags/mapping`` directly. - Instead, use ``dtags edit`` which does the validation and formatting for you @@ -149,3 +140,5 @@ Technical Notes - Don't touch this file at all if possible - If this is deleted, it is auto-generated the next time a dtags command is run. +- For a shell variable to be created automatically, the tag name must + not conflict with environment variable names diff --git a/dtags/chars.py b/dtags/chars.py index 1e79f8f..767f714 100644 --- a/dtags/chars.py +++ b/dtags/chars.py @@ -6,7 +6,7 @@ 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', - '8', '9', '-', '_', '.' + '8', '9', '_', } # Allowed characters in directory paths PATH_CHARS = { diff --git a/dtags/commands/__init__.py b/dtags/commands/__init__.py index e69de29..8c531e2 100644 --- a/dtags/commands/__init__.py +++ b/dtags/commands/__init__.py @@ -0,0 +1,280 @@ +from __future__ import unicode_literals, print_function + +import os +import io +import sys +import shlex +import atexit +import signal +import subprocess as sp +from collections import defaultdict +from tempfile import NamedTemporaryFile as TempFile + +from dtags import style, CFG_DIR, MAPPING_FILE, TAGS_FILE +from dtags.commands import d +from dtags.chars import get_invalid_tag_chars +from dtags.config import load_mapping, save_mapping, parse_mapping +from dtags.shells import SUPPORTED_SHELLS +from dtags.utils import close_stdio, abort, finish, expand, rm_files +from dtags.version import VERSION + +USAGE = """Usage: + dtags list [|...] + dtags reverse [|...] + dtags edit + dtags clean + dtags commands + dtags --help + dtags --version +""" +DESCRIPTION = """ +Commands: + list Display directories-to-tags mapping + reverse Display tags-to-directories mapping + edit Edit tags and directories via editor + clean Remove invalid tags and directories + commands List all available dtags commands + +Arguments: + dir The directory path + tag The directory tag + +Options: + --help Display the help menu + --version Display the version""" + +EDIT_HELP_COMMENTS = """# Format: ,,,... +# : the directory path +# : the directory tag +# +# Examples: +# /home/user/app/backend/mysql,app,backend,mysql +# /home/user/app/backend/redis,app,backend,redis +# /home/user/app/frontend/web,app,frontend,web +""" + +COMMANDS = """Available dtags commands: + +t - tag a specified directory +u - untag a specified directory +d - go to the specified directory by name/tag +e - execute a command under a directory by name/tag""" + + +def _edit(args): + """Edit the mapping directly using an editor.""" + if args: + abort(USAGE + 'dtags: too many arguments') + try: + with TempFile( + mode='w+t', delete=False, prefix='mapping.', dir=CFG_DIR + ) as tfile: + with io.open(MAPPING_FILE, 'rt') as mapping_file: + tfile.write(EDIT_HELP_COMMENTS + mapping_file.read()) + tfile.flush() + except (OSError, IOError) as err: + abort('dtags: failed to edit mapping: {}'.format(err), err.errno) + else: + editor = shlex.split(os.environ.get('EDITOR')) + if not editor: + abort('dtags: undefined environment variable: ' + + style.bad('EDITOR')) + try: + sp.check_call(editor + [tfile.name]) + except sp.CalledProcessError as err: + abort('dtags: failed to edit mapping: {}'.format(err.message)) + else: + mapping, excluded = parse_mapping(tfile.name) + save_mapping(mapping) + rm_files(tfile.name) + if excluded: + print('Cleaned the following entries:\n' + excluded + '\n') + finish('New entries saved successfully') + + +def _clean(args): + """Clean stale and/or invalid directories.""" + if args: + abort(USAGE + 'dtags: too many arguments') + mapping, excluded = load_mapping() + if excluded: + save_mapping(mapping) + finish('Cleaned the following entries:\n' + excluded) + else: + save_mapping(mapping) + finish('Nothing to clean') + + +def _list(targets=None, reverse=False): + """List directories and tags. + + :param targets: the list of directories or tags to highlight + :param reverse: whether to display the reverse mapping or not + """ + if targets is None: + targets = set() + else: + targets = set(targets) + additional_targets = set() + for target in targets: + if target.startswith('-'): + abort(USAGE + 'dtags: invalid argument: ' + style.bad(target)) + else: + additional_targets.add(expand(target)) + targets.update(additional_targets) + mapping, excluded = load_mapping() + if excluded: + print( + 'Found invalid entries in the mapping:\n' + excluded + + '\nRun ' + style.cmd('dtags clean') + ' to remove them' + '\n' + ) + if not mapping: + finish('Nothing to list') + msgs = [] + if reverse: + if targets: + mapping = { + tag: paths for tag, paths in mapping.items() + if tag in targets or paths & targets + } + for tag in sorted(mapping): + lines = [style.tag(tag, tag in targets)] + for path in sorted(mapping[tag]): + lines.append(style.path(path, path in targets)) + msgs.append('\n'.join(lines)) + finish('\n\n'.join(msgs) if msgs else 'Nothing to list') + else: + rmapping = defaultdict(set) + for tag, paths in mapping.items(): + for path in paths: + rmapping[path].add(tag) + if targets: + rmapping = { + path: tags for path, tags in rmapping.items() + if path in targets or tags & targets + } + for path in sorted(rmapping): + tags = ' '.join( + style.tag(tag, tag in targets) + for tag in sorted(rmapping[path]) + ) + msgs.append(style.path(path, path in targets) + ' ' + tags) + finish('\n'.join(msgs) if msgs else 'Nothing to list') + + +def _commands(args): + """Display all available commands.""" + if args: + abort(USAGE + 'dtags: too many arguments') + print(COMMANDS) + + +def manage(): + """Manage directory tags.""" + atexit.register(close_stdio) + signal.signal(signal.SIGPIPE, signal.SIG_DFL) + args = sys.argv[1:] + if not args: + _list() + head, tail = args[0], args[1:] + if head == '--help': + finish(USAGE + DESCRIPTION) + elif head == '--version': + finish('Version ' + VERSION) + elif head == 'edit': + _edit(tail) + elif head == 'clean': + _clean(tail) + elif head == 'list': + _list(tail, reverse=False) + elif head == 'reverse': + _list(tail, reverse=True) + elif head == 'commands': + _commands(tail) + else: + abort(USAGE + 'dtags: invalid argument: ' + style.bad(head)) + + +def activate(): + """Write the shell runtime configuration to stdout.""" + atexit.register(close_stdio) + signal.signal(signal.SIGPIPE, signal.SIG_DFL) + args = sys.argv[1:] + if len(args) >= 2: + abort(USAGE + 'dtags: too many arguments') + if len(args) == 1: + shell_name = args[0] + config = SUPPORTED_SHELLS.get(shell_name) + if config is None: + abort('dtags: unsupported shell: ' + style.bad(shell_name)) + else: + shell_path = os.environ.get('SHELL') + if shell_path is None: + abort('dtags: undefined environment variable: ' + + style.bad('SHELL')) + shell_name = None + for supported_shell_name in SUPPORTED_SHELLS: + if supported_shell_name in shell_path: + shell_name = supported_shell_name + config = SUPPORTED_SHELLS.get(shell_name) + if config is None: + abort('dtags: unsupported shell: ' + style.bad(shell_path)) + finish(config.format( + mapping_file=MAPPING_FILE, + tags_file=TAGS_FILE, + version=VERSION, + usage=d.USAGE, + description=d.DESCRIPTION, + arg_err_tty=d.ARG_ERR_TTY, + dest_err_tty=d.DEST_ERR_TTY, + input_err_tty=d.INPUT_ERR_TTY, + index_err_tty=d.INDEX_ERR_TTY, + prompt_tty=d.PROMPT_TTY, + choice_tty=d.CHOICE_TTY, + arg_err=d.ARG_ERR, + dest_err=d.DEST_ERR, + input_err=d.INPUT_ERR, + index_err=d.INDEX_ERR, + prompt=d.PROMPT, + choice=d.CHOICE, + )) + + +def refresh(): + """Write the shell declare variable statements to stdout.""" + atexit.register(close_stdio) + signal.signal(signal.SIGPIPE, signal.SIG_DFL) + args = sys.argv[1:] + if len(args) >= 2: + abort(USAGE + 'dtags: too many arguments') + if len(args) == 1: + shell_name = args[0] + config = SUPPORTED_SHELLS.get(shell_name) + if config is None: + abort('dtags: unsupported shell: ' + style.bad(shell_name)) + else: + shell_path = os.environ.get('SHELL') + if shell_path is None: + abort('dtags: undefined environment variable: ' + + style.bad('SHELL')) + shell_name = None + for supported_shell_name in SUPPORTED_SHELLS: + if supported_shell_name in shell_path: + shell_name = supported_shell_name + config = SUPPORTED_SHELLS.get(shell_name) + if config is None: + abort('dtags: unsupported shell: ' + style.bad(shell_path)) + + assign_string = 'set -g {} "{}"' if shell_name == 'fish' else '{}="{}"' + mapping, _ = load_mapping() + print('\n'.join( + assign_string.format(tag, paths.pop()) + for tag, paths in mapping.items() + if len(paths) == 1 and + tag not in os.environ and + not get_invalid_tag_chars(tag) + )) + + + + diff --git a/dtags/commands/directory.py b/dtags/commands/d.py similarity index 63% rename from dtags/commands/directory.py rename to dtags/commands/d.py index b65facc..0780a27 100644 --- a/dtags/commands/directory.py +++ b/dtags/commands/d.py @@ -22,18 +22,18 @@ the same tag, a selection menu is displayed. """ -ARG_ERR = '%sInvalid argument: %s\n' +ARG_ERR = '%sd: invalid argument: %s\n' CHOICE = '%s: %s\n' -DEST_ERR = '%sInvalid destination: %s\n' -INDEX_ERR = 'Index out of range: %s\n' -INPUT_ERR = 'Invalid input: %s\n' +DEST_ERR = '%sd: invalid destination: %s\n' +INDEX_ERR = 'd: index out of range: %s\n' +INPUT_ERR = 'd: invalid input: %s\n' PROMPT = '\nSelect directory (1 - %s): ' # Style the messages if the output is going to a terminal tty = True -ARG_ERR_TTY = '%sInvalid argument: ' + style.bad('%s\n', tty=tty) +ARG_ERR_TTY = '%sd: invalid argument: ' + style.bad('%s\n', tty=tty) CHOICE_TTY = style.msg('%s: ', tty=tty) + style.path('%s\n', tty=tty) -DEST_ERR_TTY = '%sInvalid destination: ' + style.bad('%s\n', tty=tty) -INDEX_ERR_TTY = 'Index out of range: ' + style.bad('%s\n', tty=tty) -INPUT_ERR_TTY = 'Invalid input: ' + style.bad('%s\n', tty=tty) +DEST_ERR_TTY = '%sd: invalid destination: ' + style.bad('%s\n', tty=tty) +INDEX_ERR_TTY = 'd: index out of range: ' + style.bad('%s\n', tty=tty) +INPUT_ERR_TTY = 'd: invalid input: ' + style.bad('%s\n', tty=tty) PROMPT_TTY = style.msg('\nSelect directory (1 - %s): ', tty=tty) diff --git a/dtags/commands/execute.py b/dtags/commands/e.py similarity index 94% rename from dtags/commands/execute.py rename to dtags/commands/e.py index 333f7f7..3ee3444 100644 --- a/dtags/commands/execute.py +++ b/dtags/commands/e.py @@ -90,16 +90,16 @@ def main(): elif head == '--version': finish('Version ' + VERSION) elif head == '-p' and not tail: - abort(USAGE + 'Missing argument: ' + style.bad('')) + abort(USAGE + 'e: missing argument: ' + style.bad('')) elif head == '-p' and tail: parallel = True head, tail = tail[0], tail[1:] elif head.startswith('-'): - abort(USAGE + 'Invalid argument: ' + style.bad(head)) + abort(USAGE + 'e: invalid argument: ' + style.bad(head)) # Parse the positional arguments if not tail: - abort(USAGE + 'Missing argument: ' + style.bad('')) + abort(USAGE + 'e: missing argument: ' + style.bad('')) directories = collections.defaultdict(set) for target in head.split(','): if not target: @@ -112,13 +112,13 @@ def main(): if os.path.isdir(path): directories[path].add(None) else: - abort(USAGE + 'Invalid target: ' + style.bad(target)) + abort(USAGE + 'e: invalid target: ' + style.bad(target)) command = sp.list2cmdline(tail) # Check which shell is in use (e.g. zsh, bash, fish) shell = os.environ.get('SHELL') if shell is None: - abort('Undefined environment variable: ' + style.bad('SHELL')) + abort('e: undefined environment variable: ' + style.bad('SHELL')) # Execute the command in the targeted directories msg_head = style.msg('Executing command ') + style.cmd(command) diff --git a/dtags/commands/manage.py b/dtags/commands/manage.py deleted file mode 100644 index 01ae8ad..0000000 --- a/dtags/commands/manage.py +++ /dev/null @@ -1,223 +0,0 @@ -from __future__ import unicode_literals, print_function - -import os -import io -import sys -import shlex -import atexit -import signal -import subprocess as sp -from collections import defaultdict -from tempfile import NamedTemporaryFile as TempFile - -from dtags import style, CFG_DIR, MAPPING_FILE, TAGS_FILE -from dtags.commands import directory -from dtags.config import load_mapping, save_mapping, parse_mapping -from dtags.shells import SUPPORTED_SHELLS -from dtags.utils import close_stdio, abort, finish, expand, rm_files -from dtags.version import VERSION - -USAGE = """Usage: - dtags list [|...] - dtags reverse [|...] - dtags edit - dtags clean - dtags shell [] - dtags --help - dtags --version -""" -DESCRIPTION = """ -Commands: - list Display directories-to-tags mapping - reverse Display tags-to-directories mapping - edit Edit tags and directories via editor - clean Remove invalid tags and directories - shell Print the shell runtime configuration - -Arguments: - dir The directory path - tag The directory tag - shell The name of the shell (e.g. bash) - -Options: - --help Display the help menu - --version Display the version""" - -EDIT_HELP_COMMENTS = """# Format: ,,,... -# : the directory path -# : the directory tag -# -# Examples: -# /home/user/app/backend/mysql,app,backend,mysql -# /home/user/app/backend/redis,app,backend,redis -# /home/user/app/frontend/web,app,frontend,web -""" - - -def _edit(args): - """Edit the mapping directly using an editor.""" - if args: - abort(USAGE + 'Too many arguments') - try: - with TempFile( - mode='w+t', - delete=False, - prefix='mapping.', - dir=CFG_DIR - ) as tfile: - with io.open(MAPPING_FILE, 'rt') as mapping_file: - tfile.write(EDIT_HELP_COMMENTS + mapping_file.read()) - tfile.flush() - except (OSError, IOError) as err: - abort('Failed to edit config: {}'.format(err), err.errno) - else: - editor = shlex.split(os.environ.get('EDITOR')) - if not editor: - abort('Undefined environment variable: ' + style.bad('EDITOR')) - try: - sp.check_call(editor + [tfile.name]) - except sp.CalledProcessError as err: - abort('Failed to edit config: {}'.format(err.message)) - else: - mapping, excluded = parse_mapping(tfile.name) - save_mapping(mapping) - rm_files(tfile.name) - if excluded: - print('Cleaned the following entries:\n' + excluded + '\n') - finish('New entries saved successfully') - - -def _clean(args): - """Clean stale and/or invalid directories.""" - if args: - abort(USAGE + 'Too many arguments') - mapping, excluded = load_mapping() - if excluded: - save_mapping(mapping) - finish('Cleaned the following entries:\n' + excluded) - else: - save_mapping(mapping) - finish('Nothing to clean') - - -def _list(targets=None, reverse=False): - """List directories and tags. - - :param targets: the list of directories or tags to highlight - :param reverse: whether to display the reverse mapping or not - """ - if targets is None: - targets = set() - else: - targets = set(targets) - additional_targets = set() - for target in targets: - if target.startswith('-'): - abort(USAGE + 'Invalid argument: ' + style.bad(target)) - else: - additional_targets.add(expand(target)) - targets.update(additional_targets) - mapping, excluded = load_mapping() - if excluded: - print( - 'Found invalid entries in the mapping:\n' + excluded + - '\nRun ' + style.cmd('dtags clean') + ' to remove them' + '\n' - ) - if not mapping: - finish('Nothing to list') - msgs = [] - if reverse: - if targets: - mapping = { - tag: paths for tag, paths in mapping.items() - if tag in targets or paths & targets - } - for tag in sorted(mapping): - lines = [style.tag(tag, tag in targets)] - for path in sorted(mapping[tag]): - lines.append(style.path(path, path in targets)) - msgs.append('\n'.join(lines)) - finish('\n\n'.join(msgs) if msgs else 'Nothing to list') - else: - rmapping = defaultdict(set) - for tag, paths in mapping.items(): - for path in paths: - rmapping[path].add(tag) - if targets: - rmapping = { - path: tags for path, tags in rmapping.items() - if path in targets or tags & targets - } - for path in sorted(rmapping): - tags = ' '.join( - style.tag(tag, tag in targets) - for tag in sorted(rmapping[path]) - ) - msgs.append(style.path(path, path in targets) + ' ' + tags) - finish('\n'.join(msgs) if msgs else 'Nothing to list') - - -def _shell(args): - """Write the shell runtime configuration to stdout.""" - if len(args) >= 2: - abort(USAGE + 'Too many arguments') - if len(args) == 1: - shell_name = args[0] - config = SUPPORTED_SHELLS.get(shell_name) - if config is None: - abort('Unsupported shell: ' + style.bad(shell_name)) - else: - shell_path = os.environ.get('SHELL') - if shell_path is None: - abort('Undefined environment variable: ' + style.bad('SHELL')) - shell_name = None - for supported_shell_name in SUPPORTED_SHELLS: - if supported_shell_name in shell_path: - shell_name = supported_shell_name - config = SUPPORTED_SHELLS.get(shell_name) - if config is None: - abort('Unsupported shell: ' + style.bad(shell_path)) - finish(config.format( - mapping_file=MAPPING_FILE, - tags_file=TAGS_FILE, - version=VERSION, - usage=directory.USAGE, - description=directory.DESCRIPTION, - arg_err_tty=directory.ARG_ERR_TTY, - dest_err_tty=directory.DEST_ERR_TTY, - input_err_tty=directory.INPUT_ERR_TTY, - index_err_tty=directory.INDEX_ERR_TTY, - prompt_tty=directory.PROMPT_TTY, - choice_tty=directory.CHOICE_TTY, - arg_err=directory.ARG_ERR, - dest_err=directory.DEST_ERR, - input_err=directory.INPUT_ERR, - index_err=directory.INDEX_ERR, - prompt=directory.PROMPT, - choice=directory.CHOICE, - )) - - -def main(): - atexit.register(close_stdio) - signal.signal(signal.SIGPIPE, signal.SIG_DFL) - args = sys.argv[1:] - if not args: - _list() - head, tail = args[0], args[1:] - if head == '--help': - finish(USAGE + DESCRIPTION) - elif head == '--version': - finish('Version ' + VERSION) - elif head == 'edit': - _edit(tail) - elif head == 'clean': - _clean(tail) - elif head == 'list': - _list(tail, reverse=False) - elif head == 'reverse': - _list(tail, reverse=True) - elif head == 'shell': - _shell(tail) - else: - abort(USAGE + 'Invalid argument: ' + style.bad(head)) diff --git a/dtags/commands/tag.py b/dtags/commands/t.py similarity index 81% rename from dtags/commands/tag.py rename to dtags/commands/t.py index db93581..898258c 100644 --- a/dtags/commands/tag.py +++ b/dtags/commands/t.py @@ -12,9 +12,9 @@ from dtags.version import VERSION USAGE = """Usage: - tag [...] - tag --help - tag --version + t [...] + t --help + t --version """ DESCRIPTION = """ Arguments: @@ -37,28 +37,28 @@ def main(): elif head == '--version': finish('Version ' + VERSION) elif head.startswith('-'): - abort(USAGE + 'Invalid argument: ' + style.bad(head)) + abort(USAGE + 't: invalid argument: ' + style.bad(head)) path = expand(head) invalid_path_chars = get_invalid_path_chars(path) if invalid_path_chars: - abort('Directory path {} contains bad characters {}'.format( + abort('t: directory path {} contains bad characters {}'.format( style.bad(path), style.bad_chars(invalid_path_chars) )) if not os.path.isdir(path): - abort('Invalid directory ' + style.bad(path)) + abort('t: invalid directory: ' + style.bad(path)) mapping, excluded = load_mapping() tags_added = set() if not tail: tail.append(os.path.basename(path)) for tag in tail: if not tag[0].isalpha(): - abort('Tag name {} does not start with an alphabet' + abort('t: tag name {} does not start with an alphabet' .format(style.bad(tag))) if ' ' in tag: - abort('Tag name {} contains whitespaces'.format(style.bad(tag))) + abort('t: tag name {} contains whitespaces'.format(style.bad(tag))) invalid_tag_chars = get_invalid_tag_chars(tag) if invalid_tag_chars: - abort('Tag name {} contains bad characters {}'.format( + abort('t: tag name {} contains bad characters {}'.format( style.bad(tag), style.bad_chars(invalid_tag_chars) )) if path not in mapping[tag]: diff --git a/dtags/commands/untag.py b/dtags/commands/u.py similarity index 83% rename from dtags/commands/untag.py rename to dtags/commands/u.py index 23a6241..9cde762 100644 --- a/dtags/commands/untag.py +++ b/dtags/commands/u.py @@ -10,18 +10,18 @@ from dtags.version import VERSION USAGE = """Usage: - untag [...] - untag --help - untag --version + u [...] + u --help + u --version """ DESCRIPTION = """ Arguments: dir The directory path tag The directory tag -Remove one or more tags from the target directory. -If no tag names are given, ALL tags mapped to the -target directory are removed.""" +Untag the target directory. If no tag names are +given, ALL tags mapped to the target directory +are removed.""" def main(): @@ -37,7 +37,7 @@ def main(): elif head == '--version': finish('Version ' + VERSION) elif head.startswith('-'): - abort(USAGE + 'Invalid argument: ' + style.bad(head)) + abort(USAGE + 'u: invalid argument: ' + style.bad(head)) path = expand(head) tags_removed = set() for tag in tail if tail else mapping.keys(): diff --git a/dtags/shells/bash.py b/dtags/shells/bash.py index c4b3435..ebb23bf 100644 --- a/dtags/shells/bash.py +++ b/dtags/shells/bash.py @@ -1,7 +1,31 @@ CONFIGURATION = """ -unalias d &> /dev/null +unalias dtags > /dev/null 2>&1 +unalias t > /dev/null 2>&1 +unalias u > /dev/null 2>&1 +unalias e > /dev/null 2>&1 +unalias d > /dev/null 2>&1 -d() {{ +function dtags() {{ + dtags-manage $@ + if [[ $1 = edit ]] || [[ $1 = clean ]] + then + eval "`dtags-refresh bash`" + fi +}} + +function t() {{ + dtags-t $@ && eval "`dtags-refresh bash`" +}} + +function u() {{ + dtags-u $@ && eval "`dtags-refresh bash`" +}} + +function e() {{ + dtags-e $@ +}} + +function d() {{ declare _dtags_usage="{usage}" declare _dtags_version="{version}" declare _dtags_description="{description}" @@ -43,7 +67,7 @@ return 2 elif [[ $# -gt 1 ]] then - printf "%sToo many arguments\n" "$_dtags_usage" + printf "%sd: too many arguments\n" "$_dtags_usage" return 2 fi declare -a _dtags_dirs @@ -93,39 +117,33 @@ fi }} - -__dtags_d_command() {{ +_dtags() {{ declare cur=${{COMP_WORDS[COMP_CWORD]}} if [[ ${{COMP_CWORD}} -eq 1 ]] + then + COMPREPLY+=($(compgen -W "list reverse shell edit clean commands" -- $cur)) + elif [[ ${{COMP_WORDS[1]}} = list ]] || [[ ${{COMP_WORDS[1]}} = reverse ]] then if [[ -f "{tags_file}" ]] then COMPREPLY+=($(compgen -W "`cat {tags_file}`" -- $cur)) fi + _filedir -d fi }} - -__dtags_e_command() {{ +_t() {{ declare cur=${{COMP_WORDS[COMP_CWORD]}} if [[ ${{COMP_CWORD}} -eq 1 ]] then - if [[ -f "{tags_file}" ]] - then - COMPREPLY+=($(compgen -W "`cat {tags_file}`" -- $cur)) - fi - COMPREPLY+=($(compgen -W "-p" -- $cur)) - elif [[ ${{COMP_CWORD}} -eq 2 && ${{COMP_WORDS[1]}} = -p ]] + _filedir -d + elif [[ -f "{tags_file}" ]] && [[ ! ${{COMP_WORDS[1]}} = -* ]] then - if [[ -f "{tags_file}" ]] - then - COMPREPLY+=($(compgen -W "`cat {tags_file}`" -- $cur)) - fi + COMPREPLY+=($(compgen -W "`cat {tags_file}`" -- $cur)) fi }} - -__dtags_tag_untag_commands() {{ +_u() {{ declare cur=${{COMP_WORDS[COMP_CWORD]}} if [[ ${{COMP_CWORD}} -eq 1 ]] then @@ -136,24 +154,40 @@ fi }} - -__dtags_main_command() {{ +_e() {{ declare cur=${{COMP_WORDS[COMP_CWORD]}} if [[ ${{COMP_CWORD}} -eq 1 ]] then - COMPREPLY+=($(compgen -W "list reverse shell edit clean" -- $cur)) - elif [[ ${{COMP_WORDS[1]}} = list ]] || [[ ${{COMP_WORDS[1]}} = reverse ]] + if [[ -f "{tags_file}" ]] + then + COMPREPLY+=($(compgen -W "`cat {tags_file}`" -- $cur)) + fi + COMPREPLY+=($(compgen -W "-p" -- $cur)) + elif [[ ${{COMP_CWORD}} -eq 2 && ${{COMP_WORDS[1]}} = -p ]] + then + if [[ -f "{tags_file}" ]] + then + COMPREPLY+=($(compgen -W "`cat {tags_file}`" -- $cur)) + fi + fi +}} + +_d() {{ + declare cur=${{COMP_WORDS[COMP_CWORD]}} + if [[ ${{COMP_CWORD}} -eq 1 ]] then if [[ -f "{tags_file}" ]] then COMPREPLY+=($(compgen -W "`cat {tags_file}`" -- $cur)) fi - _filedir -d fi }} -complete -o dirnames -F __dtags_e_command e -complete -o dirnames -F __dtags_d_command d -complete -o dirnames -F __dtags_main_command dtags -complete -o dirnames -F __dtags_tag_untag_commands tag untag +complete -o dirnames -F _dtags dtags +complete -o dirnames -F _t t +complete -o dirnames -F _u u +complete -o dirnames -F _e e +complete -o dirnames -F _d d + +eval "`dtags-refresh bash`" """ diff --git a/dtags/shells/fish.py b/dtags/shells/fish.py index fb3c9fa..202f843 100644 --- a/dtags/shells/fish.py +++ b/dtags/shells/fish.py @@ -1,4 +1,26 @@ CONFIGURATION = """ +functions -e dtags > /dev/null 2>&1 +functions -e t > /dev/null 2>&1 +functions -e u > /dev/null 2>&1 +functions -e e > /dev/null 2>&1 +functions -e d > /dev/null 2>&1 + +function dtags + dtags-manage $argv; and dtags-refresh fish | source +end + +function t + dtags-t $argv; and dtags-refresh fish | source +end + +function u + dtags-u $argv; and dtags-refresh fish | source +end + +function e + dtags-e $argv +end + function d set _dtags_usage "{usage}" set _dtags_version "{version}" @@ -22,7 +44,7 @@ cd $HOME return 0 else if [ $argv[1] = "--help" ] - printf "$_dtags_usage$_dtags_descriptions" + printf "$_dtags_usage$_dtags_description" return 0 else if [ $argv[1] = "--version" ] printf "Version %s\n" "$_dtags_version" @@ -34,7 +56,7 @@ printf "$_dtags_arg_err" "$_dtags_usage" "$argv[1]" return 2 else if math "1 <" (count $argv) > /dev/null - printf "%sToo many arguments\n" "$_dtags_usage" + printf "%sd: too many arguments\n" "$_dtags_usage" return 2 end set _dtags_dirs (grep -F ,$argv[1], {mapping_file} | cut -d',' -f1) @@ -126,13 +148,16 @@ -a clean -d 'Remove invalid tags and directories' complete -f -c dtags -n '__dtags_no_args' \ -a shell -d 'Print the shell runtime configuration' +complete -f -c dtags -n '__dtags_no_args' \ + -a commands -d 'List all available dtags commands' complete -f -c dtags -n '__dtags_has_first_arg list' \ -a '(__dtags_tags)' -d 'Directory tag' complete -f -c dtags -n '__dtags_has_first_arg reverse' \ -a '(__dtags_tags)' -d 'Directory tag' -complete -f -c tag -n '__dtags_past_first_arg' \ + +complete -f -c t -n '__dtags_past_first_arg' \ -a '(__dtags_tags)' -d 'Directory tag' -complete -f -c untag -n '__dtags_past_first_arg' \ +complete -f -c u -n '__dtags_past_first_arg' \ -a '(__dtags_tags)' -d 'Directory tag' complete -f -c d -n '__dtags_no_args' \ -a '(__dtags_tags)' -d 'Directory tag' @@ -140,4 +165,6 @@ -a '(__dtags_tags)' -d 'Directory tag' complete -f -c e -n '__dtags_no_args' \ -a -p -d 'Execute the commands in parallel' + +dtags-refresh fish | source """ diff --git a/dtags/shells/zsh.py b/dtags/shells/zsh.py index 6bbd3a4..205e1f6 100644 --- a/dtags/shells/zsh.py +++ b/dtags/shells/zsh.py @@ -1,5 +1,29 @@ CONFIGURATION = """ -unalias d &> /dev/null +unalias dtags > /dev/null 2>&1 +unalias t > /dev/null 2>&1 +unalias u > /dev/null 2>&1 +unalias e > /dev/null 2>&1 +unalias d > /dev/null 2>&1 + +function dtags() {{ + dtags-manage $@ + if [[ $1 = edit ]] || [[ $1 = clean ]] + then + eval "`dtags-refresh zsh`" + fi +}} + +function t() {{ + dtags-t $@ && eval "`dtags-refresh zsh`" +}} + +function u() {{ + dtags-u $@ && eval "`dtags-refresh zsh`" +}} + +function e() {{ + dtags-e $@ +}} function d() {{ declare _dtags_usage='{usage}' @@ -43,11 +67,10 @@ return 2 elif [[ $# -gt 1 ]] then - printf "%sToo many arguments\n" "$_dtags_usage" + printf "%sd: too many arguments\n" "$_dtags_usage" return 2 fi declare -a _dtags_dirs - PREV_IFS=$IFS IFS=$'\n' _dtags_dirs=($(grep -F ,$1, {mapping_file} | cut -d',' -f1)) @@ -95,36 +118,30 @@ fi }} -__dtags_d_command() {{ +_dtags() {{ if [[ CURRENT -eq 2 ]] then - if [[ -f "{tags_file}" ]] - then - compadd -S '' `cat {tags_file}` - fi + compadd list reverse + compadd -S '' edit clean commands + elif [[ $words[2] = list || $words[2] = reverse ]] + then + [[ -f "{tags_file}" ]] && compadd -S '' `cat {tags_file}` _files -/ fi }} - -__dtags_e_command() {{ +_t() {{ if [[ CURRENT -eq 2 ]] then - [[ -f "{tags_file}" ]] && compadd `cat {tags_file}` - compadd -- -p - _files -/ - elif [[ CURRENT -eq 3 && $words[2] = -p ]] - then - [[ -f "{tags_file}" ]] && compadd `cat {tags_file}` _files -/ - elif [[ CURRENT -gt 3 ]] + elif [[ -f "{tags_file}" ]] && [[ ! $words[2] = -* ]] then - _files + compadd `cat {tags_file}` fi }} -__dtags_tag_untag_commands() {{ +_u() {{ if [[ CURRENT -eq 2 ]] then _files -/ @@ -134,21 +151,38 @@ fi }} - -__dtags_main_command() {{ +_e() {{ if [[ CURRENT -eq 2 ]] then - compadd list reverse shell - compadd -S '' edit clean - elif [[ $words[2] = list || $words[2] = reverse ]] + [[ -f "{tags_file}" ]] && compadd `cat {tags_file}` + compadd -- -p + _files -/ + elif [[ CURRENT -eq 3 && $words[2] = -p ]] then - [[ -f "{tags_file}" ]] && compadd -S '' `cat {tags_file}` + [[ -f "{tags_file}" ]] && compadd `cat {tags_file}` + _files -/ + elif [[ CURRENT -gt 3 ]] + then + _files + fi +}} + +_d() {{ + if [[ CURRENT -eq 2 ]] + then + if [[ -f "{tags_file}" ]] + then + compadd -S '' `cat {tags_file}` + fi _files -/ fi }} -compdef __dtags_e_command e -compdef __dtags_d_command d -compdef __dtags_main_command dtags -compdef __dtags_tag_untag_commands tag untag +compdef _dtags dtags +compdef _t t +compdef _u u +compdef _e e +compdef _d d + +eval "`dtags-refresh zsh`" """ diff --git a/dtags/version.py b/dtags/version.py index 780e307..aaa4264 100644 --- a/dtags/version.py +++ b/dtags/version.py @@ -1 +1 @@ -VERSION = '2.0.7' +VERSION = '3.0.0' diff --git a/example.gif b/example.gif deleted file mode 100644 index 8310699ef34c5c6cecc0ea58141a012972bae3d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 198502 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�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

  • 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%0D%?-^E=SHo(ZZ=uJ?vYsp~J4&+X=8j0#JBTy;pr zH?Ez#eO;rrdsAb{Mp2T~dHFuL4s4;=4w^4_@AYIMl(;pIQ+5ht1GZJ^X~Z`IaYG}74@fX>g7}OxXeSXf$Q()4CW`h1=3LgR|I_gGV7E>&Yyjd z+(Eb*8&VY_^z;oiW8A)@EWze;kQAUlF}8S}09`_*U?|GJ`f42E&6v=1h_+8hiTg1s7&|`bie{pdSV?Q^v&hv07>V#t>fO60nm9&;C-KQ{oDPcjvdx*4i~I7 z%?GlNmT&ZE_hA$B!uwBN#q1tBB=Rri%aHFPu}rY6-P269Q9W=ZoBeP!@>)~!<(oU| zydQI$O;Ji1a(H@e1(KE$$3C?%KY!}qKvuOj>0E444)x3XrN1jlr@)^3@Iy?<-yh#` zG(=|Xk{93G@-XgM)<(^=zO?_l+3zr+Q>D4`X%*uAoA@!1>K?Emx${18261-oJ!Q6uz&%ty-73 zl`;8ya7p82$L5(jGD8&SauUs&{cvylLH-R-GxvG8WGHz`?x2frJ>$gKiJrK7Q{Kv| z$fuIeCgXS_3ffdwE$`c$0*ue@)3V+|F#5vM~beQco*hN%2FUH4bXkXc1g#$)IlNcHYmOUW5d|TF zOru=40$meXDLE12rGNL@;0cXo7Jbje2xunxg*bI$EUhN0SkeQ6H z=a7;hi$Od*>^su1=uBOII=l$|Q|A(kBgjS zB)nX3K4HbjPEb3{Q~YEBJi|b3TUXT3%`3+?m8g?=&0j2(CME?IpZ_9y&B)Vi%tO+j z@0yPHLkEdNgg=)c1;gRtbzKU57$c8KkBVIpU#wi)CG`g(q9r=F$^{ce;h7;ylFfp? zHUw#dRETk}^yqzGcCXB|4$Va(N89okq81YxAcw=F4PISP6Z4z0_0vd`(xwO8NAP?a z3()+eEPWjtjD^7M#DMDpkRwF&E8H8UfNT#1!2o|91p!@}g2R}C_clzfFI(}!QI!Bc z$v%Zpj@%JNWFXp75gv6#$R9FpPqcm# zRl-v)wF$|+CcyRa#rvNM$9F=4z6$0m2OE^B?g-wB6}wt=Jou=4aM@|mN^tNuj@nNW zS8-2JH;a+%KNIx}bLj+BU7H9e{eXQUl^%ooq+yKG`ZOlGLi1mSe)y^vPrMAlA#5KZ z9)f|TPeqGkJf5i@_msoo!rI-hP}|qTg7IO9VC|9P@E&nl=5crk3FF5(rUbd_U~n~v z72f_OJW%Y4pQ3snQ720>EM=R2P5GFdiu&KiaKlpgN^#kdfGRUPq&QyM@FK*x|HjI4J{X;PWVJt~(;Ip7eN$R5pn>E3 ziN)s|aWtqQvHq@gjYhHsr72jIU^ab2AO~UA({xG$ALWk72l1Rp%M?e`y@Nf31;==w zp1Db!jtgrRK4oYgNKAaK7wx`nD~l<+e_KjG>Ikef{>x|6?~mf^PDlB&0XaM6m}q55 zH%gqL#no?-nE*&|5?mM@Q`&DyM_37^ArzrjF*Eg$0=xc~R!wzkeFOYKigI>CB8WRj z8^2jAy4iHo4?NWLXfC&4*f=2BV_nU-|R33G^Oal~Qw8PI3J#7rS#^H$nS*m?Z9Oa}NY4q~K%6k)>j*;#Wq=)r5G01m2Bh=LNi z6e7q&64;s`?dgxQ7lNAMdhIKEG<85m%&rQcx7RWYPlMzg$ebV`qS)|KQeUWP?^7`7 zctt}x3pSR5)L_C4@L-JzO=nPDk1wtPgFswkD}qYXV?R1AV9fwN?Ny4#b-QwPt`suuy3nl)xIdB0#-yP}ar(zyjaZ zAawEmon|v==wb#Vc5|x?ZY}uL{T{6TMqKeuQ^Q}K-vX) zmI>2ffg*Vae6b({4UomJzt5A<=^7Rpas3G?^YE7NM2&?TXS(f-Kw?DDp*Ky_bO9nt zgb-*T&)h{r;?RFDXEOM}H_wBu=nxD5gR{q^@r&}52SMR8#@tOa9nv@teBuQ*a(b=U zi$y*$oH&pzDeJAv;;Z3@DZoQh%A_<0@Mb>*2@ZywhnhJIJL88zAQYZ63IKyvB#&7w>z zuY+|s=&H}qs~jYh0x_bys!>J%d;I9Xf4Pj9so76|Sz%Ux{(g9eA1rIOu7Cp(aF25M zfP#v3HZSZ<45%RwxuF3yX8onbR9c-!oFx5E3t#i(af6)}gpLSfL0W!Xb%MtpyllvdRgLd=$3$Q3HWVEXT$Q*fTYa|W7E^CIw zGa-`NNa@3oI>fjZ25OBTbU&0H_S9LE#{88+gX#Q%5J;O&bm&4d3t(*nj3q(FBF1M} zT^p%Fn`{;yN&&_#a8RjRFCn5Yo-eMKlp>|&pnqHjL70tH)>hBPR0@7|@{@!4g}+># z0V^h;M2G4n=nH5e)tRFz7`T@<)II?z%@6B$MVb?4$%I)464I0FyB|jomJ#-Ph%o$R z`#Xrwc`Jz*9^4?zzRf{iqx6kN=;MihKed{V8eV9lJrTW%oYFuhYH+WLU2*jZj)1$K zFc2NKoeGQt_*EDT>IAHU44~GO2X!8cD!5@dFs;CXVifp_D;;@CyG^35~9 z*3Oth4;>j3*}o1PHQypS*Dsn2+DH#)B&=}pRL-QV`A(!EU8quT+FldtJ-=i7Y3wrF zAuUf-3G+Vj&tH7NTDmOL88c3Z+bRf0erkuchanqo4pCXJPuzHB&w1Q2fp8%1fia*2 z#%o6Sei{KvWZfW+?gi}hj}xBg5}uHG2lN;~YR<75?J=^(r>RYL)3f<9n@?aoNHvO? zi(eO}!;Oi+3%)JWYcuk|R^98T!Wg)N_5*3gsG=g&8T0R2^^gL4biopcp-zg^U5k8y zjQA{*Q4ov>;$yr~cOCwXhI!meyJ*g9a}Vy@{;vQ-5zZVC5!ryV`EGIkdSrgMW=Q}+ zNnqXZH*nT659Xx;W=etZ;bJ1lnh4rB50X3Yni2mspjyao`B6GcK#U;m&3T#50^(V4 zj}MRtb7b@_%Z}fi1h!=i1#u+pnJo^{QG@hgA+Y!*Wy}_g4o)CKiSH1-|MiK*JNM`I zPf9Nw&-r9Pl9#t8zxmhn)ZFHun9Ko7^L9tPXYi=1WY>8qu2xC zU`5m>FA`c*8!|ixW@q>HL|Br7gV3U-qYVI?ZeW9JXoOuq{4TtMog^tlN;-xNs*0G* z4HPbU?O_yA*GFQyo{D#_Ibxn>B8t8}7T&UN1~HfaY>mW-=0#)1p87U>KZ{RH0Q{~c z2?$IWSSt`5Ea{H`o+gsu8;F5({Y}_~`Aa^f|w|0)7LD#dB=Ra}H z#o%XGN;>bc;n+Vs`8ML(vdr>M`xNIAsV_2YhECw@aChXJ_0b&h4(-^OU)P6{5g?U_ zls{7DeD|jQ6vG^Q!*;&|FVzOBkLU`jmye zk^0!TH~<0{Bo}_X@$%#azKsrc_KDXQ~R}g zhv>~&w({c`wq?}C?0u0o%a%69?%m%E$f@&Q-j;&HV0;+Ng2D)Bk)+$(z_bc~QZnVq z!=doL+i#9u%CYlglP!(9=BT&9gfWaQM`RMgA3x(b{x3b)B^jaJtRBDT22%tcUjM|f zOOV(F^nBya|9@6S$<=afYj_;PE#+aWIaH#&mEcZ{91Hc3S)2O9PFSO5ASlmo_ zuRJrv`}IMD`RQ*%o1!Ut%LeF-AcYfeNfX?rBe6~ZU83HQU+d{|)ak>YclSGtpBe%H z*a6ejyT}p`^5^Y)I*W>X`s*b7jZ(H|>$eo1?}%vOp`J}2_X}~Ohg0T;8^U+1f-p9K zT0@Lu$)XG(2xQ4Ux_M1w;8-HUGM`p{R4=XL^YPsY^a%=q2%a&yfPG=+Ael{*G`sfW z?V4~>Zpo8#8)?X0&B?41yE6|B=d(H_1!%Yba(Zx>wcD~2qg`M1EA8dI*aycXA!&4u zSbDV#Elq82>~^6LYYbYM4T6x*!OxBZJQAum4JVc%@%Jl>j0BR)gm16d^^96cVA3CU zCxc3h2JR~{ZL;E4pH%krxLu*xJsI{F3@Dkf(xiF=o)i%?BCzkU?R_>a^ML$`ni>;M zsUT7Kd5DzPqwQuePT^O2h@RMSbe;4G3pt?YznZoGcOKUw-n&dyw*B_!WDzTcwR}3LER4Y=Gj_xO13nhIW2d^X;h_ zTIQYs6m*qpmQ}Zekt>@GJ%74#Ua(mqU5^45VVc0mKGO4wjiWkv!RwUNBZ`HM9mdIjhh#shJcw*Id)Im@iRUq$C#uCptIaJx z`*DMMRIAICwlg(6D=kh@ZD%{%&fUvi>9`!#e*RsX$KO0p7}-%Bfm-ce53`^2v_*A> zUupMw&hvC&F6wS%XS?r*?587#2cm7I5MG|Y@Z9476fWe+$1_5q!7FQdkLiFUWnPs0 z{plg@3>G3e#knm)9)kszYMM*oGejTT@@eCcXD$ppwc-RfeI2Jh#1~czp z#V>Sij3;_viOKKC8h3p2$=?PJIpHUYH#WOT{gPTp%b#DJ>g8t~NXb$HX~%WI`VI{| z_qVjKG?U=^^klwt3Lq)sl5Ry!=4IGUBnyuaPeMJ9021#dmzn-h4I}R3k&e{$VIOrx zG9Siaf(Ja30xvz}$`LTuDT{2dNW&N`6h9#$*0r5f2pR_%SH0{=@T|w4V@6_-@I^dK zpA3QpQIaJaa%ulw9UrrSGbkX^rnusF-a|4)qV)Va{A}qU2L_;)DPBDPO7IKXS>E<| zn=j?JHoj<7b_*^>L8K+4)1D;r9MDp^VN-s12&nEg3t=Z-2gN|%w4PQn66d&?`g?em-J-B z5Bc4Jx*Upbz6!ev&S$u*`vS`_a=mTD4B{3ia_FbBe`32Z>79*QF^+UlAGqUUOcH_c2$kF z%mR=!nGznwRjn)YL^uyX=hGb+mC3&t^ueWCO#Vr4viQU2x2koq#5q+ra(m&x zJ(>Xm{Mu9hOr{e|O7}N!m?J#LtSs(^Y;WuX581GLw@4jay<=5#RbTMEZxNEF6g~3T zyNl75l%peAyWlv!TT8s^6ZAf1XmvtMFyKB$)^F9@ttN_I;jI{!_^vCnc1dFm^5A zY1bF4?}h zL5A!B&}w8lEBx^jpNG4?6+nc#CvrIIQuuZPKIEz%hA2czgoydFIXv!>)~~=K07Q{-9tVK91qd2B$7D6!mvJ><2K6NX zXbCh**fq`M*h@cfX5Y|kr>dlb& z8a3MN|Gu9HW`&*{^9`HwJk~oYt}O0P`Qz{CCE38lzw2QGt=7}@6; z0Hlu?q`NewK>HFL_Y&Kb;pno+6JDPDl(-ximo-PZ@+8cn7>o(M+!b;|r#0YU0Hq8D z^lbp~OoTNCaSC@mk&TD~&^thJG=MG>vAqg|SVi+GvhphNAVp?wt`#`j4IMFC9Oi`v ziTR-kC6(-w@E<}DJXmKH6}zT?-BBdnOF&Jv6kc1}_Zo100pvTDI!vQ5oDy1SNtSWh zg^waP#=vCyu?i+Q`jAjA|G@iky2Rh^UN}{Sz05NWul2U+nH?x;4Cl@TO4@%q;Ir%t z3ST6@>PQXzf2M&fRv=LX#8pPDv@Y~A1N!P?<;D-es;A!1P`;J`B9Rd*mWjBGzrH?O zwP6f!M--h85URlf9xMt6D{2A&uPM+svo*prNIV@*S{3B3ffd9R4Vef64Pwj^6aWxQ z^oVp4jLe87($E4-^i5{Xn=IHC6Rki5$Ft$K+-V0LBD>C?$N@oU2r|R`y;^OQC;A$_ zmPkVQlMpL|wbN_WAH0yV>Jr=u^;NuTJi!RSidKl%=nTc`w}BHd;KRrkdDEdveg@(b z3Lw&J)A9Ah{ss&0O!tF&VUxxR4xCI!v^F=II5l>x0r8X?;+%K{3vMgb3}71_))5z- zYB@C6Q#$a@vEj-=C3h@wl?jLeU?moUKmhP8gd<)xvm8(Xz~(H36C3iDQS&1UAx#AB zGF!qiKvHaT+Fa!(hX2=(<|P2;THBUDfkKGVPN6eZI8bIgaTzT z(wT_^-ddE{p=8_GLB~U$&L#EEM^2q9mph+kcdoT{wwM4$v{PUmMAK_QE>BX1Da{>8 zvWSQ~^)MCz!5mWXrc@bz5&zT%$9{rbrXRwCWB9TzDsT=&p3R|@==YrH)kN{5sEQ77 zn1DAE9fcPVKHxopLp*A&-}>3<9|fj;g?_^}+%~y;W=X0tx@{L|b*4dVFg&z2s4>G3 zbiL^^J_NxFN+2L~HM;ys)ik?%0IM!tfjhUWxN!e|0_%P{(0YXqzrnm$w#L6qL&}5+ zXof)|b|CNR-bMf-;lTEEoV&prcr2+WVXTD>Ffx{^J$VGY*HJ`5vu{Mrh91c2PjC(~&N!hzXaT+cC3UqB9DJSq7Lp}Xt!K&+3z)i{Ab9)WbzzEKd|jSgGl zAZ`G4kr*&PvuBYsSaxXIF9(8$ ztVM8ugUbR*Jm_m|geYw=^-XsIEp{{;KxZQ!{Hm@WZi}2BvY+QBU1d)&5zZ{4os;CL zf_@IsZhd}q+8Oa-4kbJ%DU9hUb5i}qD|3y7;Lf=M+7XUSem5dGiOeUFi;zA)_!U2{ z952!N##W~e@yiPw&wwjlu8TIUQ)+|cN`=zqAjf`>DJ%dH>^kISs7VK$=G_HXsIw*X z9)c)!WF}feeez9rvx&<{0te*oG7`Fm@@;D*(dxghwbU(*IKJ&)q60DXVHw;5;CHp6 z3pAEJu*)2eY=Oy6!&O18118{i*po51>1p}{&$nWi2{o^<^;VY=$7zF)nB)Bsx+rNL z2|o0767(7dMr0$%M2K-L>MLjs7Y^!) z4EUAdMPJK$N2kpHl!pKIMxNeoi|l|WV4->I2y0+qCBEs^PdF={FG}W+e`f+Q@Y7yO z@Cd1P_&3kYSNdWVFeb3jt3_))PJqVarhCszUn3wyeGn-h;ak7!qv(h?9q=fgB_Y=( zF<&H!aGzgOg2ZAj|5);sSyJT(WEYoxw^@;!_rvEKZ{iBL0Oq?xhT#0!h8b1B6~Z|2{VTvvsiYW($T)i(scw66P>(( zN_n^FenleciU4SIJ{^O&iO>9iZ#JpwPwNC?i9Int8*C3<9^ZN=sDgW9d+<0$UG(&o zmFzr$q-+E>vSkqu#4_NO3TQT`>E{CK(w}ArtmtJzX6x4S**~kd;ugtLQ^*BGB>!sG zm6cf8`gjGjvB;xj{^eZnW+J73k-09nwACI4ieV6+8XTSQ(cm;GCYD;UfrGd~)#1)*4x9>lVVMlK2SASK?+!+<+FxQ27 zz=zj{tyKxVABcJlnKvB7^Y z_PK)`+Ox7~i4JXvelB+(y+uT*f|%{z{KS98k=ncVOZ+e6`Ce`EpTq$YGW@~M_+luH zI-GoAnOCwEY@e?^3HXKuY5pjRP*QfgH(xB_8UN|T7cp1SL*>XJ4So!3WQp_Y%DL|7 z?2b1f9dyTz=vq;eTl$TMB8VJuVIoA5S3r!;3LZWne*}02+{_D=k26ObKZ=~{_E4t7 zEeYH^=&o&g*@o0?#*^6Z`FaI)gl7L@D!4lLzq{Nm z_$xo-Xw_pc0aEQfxSG4|#-_a6+_ABi&8w1?uOE}1bwyn7(&p_DYyKyWv%bihjv{i{ z7G}m;p!5Ll?974u?xB*vNv0niDq69ApXW?L-t)c6*Saq=*Ng?+ z3&SK#M$3y79)BY}N(Tl>IsHE!`)}s-ch2|6p$7yp{JKd3d8W*UwgHOsp8v1UUO)T3 z09&r9Lb;cx`Xh#-HxbUfb(PX1bvc7S!iJLkhT44|-*x6TQ27%GMq0G*x93_;j0}%% z44Pm@CVWPWb0db@N4_6Y_7WI(#WAD2>vVx^gjD9}9j%|`wWHh4U&NjEzfk_t`jc<6 z(VaBB_{j&fB3&CT@EtrhbStNI`!CcctJPp0Vxj|>o!$~J7`=l1$;Wq}>{~>6hPr?4 z>uK#_`Yg5MW%>;hw+~?7PhglSeA$Iyz!h}Kip1#@Rn1>TF6sWum=s%+e z6+G*op0k(U!bi|ZOOR(`LPn$lB!X;a9&fLdo)DQJuauFHE)P^zRaalT2@r4kM}umr zbrJ}b!togGa`(RO@JtsN3YdU#%{cxYE3jc zM7=#jKnnqeN5J|Noq)-xF?HoJiOHjFxk`}t)?aPp4K>LaKmymyUu>=mdKr47b)9m; zK`2GA_{B+q7`-17`zSi7rr;-hZ}3j)(Pog7Y3K5*$4C`in0d1AtlDGu(legRR@47uwkt;MequqqrVOAep-2^r#>nGd{PKtM+83h+-s?DWnYH#3Eiz@O5W+0vE zR$F0gDM^LCR<_SOk4+j8<bvL0|3PUMQy!#LC9WKY?zj&gQ| zS(E$;h28(C+t2i$BKpLX`ExZs$d{TziKhdol_1V5tHMCd8W zdamV6l=R!!9lsi7rzc9`P~eSbwN`{R+BlH&N(g9SW@gUFSmN(%vhUl-JL|7a+txJc zQed_(Gut3>Jq1jS%+VhnP_y#{ONmc>1e;bjkpfG@nkLBj_%a)m0z2OqF$OhHqjmBd zt^)U4uzF_l&<`0tvzfK8gzvQ|UR<`H^Vt6=j#({r4~k`)SbnmdzRbF%;QUh1_Mcx+ zs-r9y1lX?NU_@sJTV)!{E^N76q=vSR?CT0aL_(;tOW4)f3K_Fbn?r_1+_J8+|L6*0 zxw0^3)o{G0t4{%E_}joFBk(3zX*`W?p!_l;{QEXl<)18w&-G6f7$5l)xh-%}y01~x z6Ca}j!zUKO9FLk?qD5+Mrto9W#^&$VnG;j_e`^Ja0(Un^gF97~amfb*-`@ZF@UxU| zhuIT_{{A?la_@hd>knqRf-P>DQqpGE{(M;tzW3+rX7qXf6li(1~KHx_MU^!nCwIBE&uPvIXS9Hf)pSrE$5(3h2TE zI4F@~sZhyCWSfFwzpEU}>6mn1ymL1G{gUF9kAP@TiWU0o?R*fQ4gZY+>pe4_lzx9f zfdYk9@v`o`Qj!(gD7gR=@fhVjxJ_C6VKdLD%`*^k)2o>s69%zUO?pUR8`c>^EEB=^ zwU&Yxk)Pe9XPQohICh_rbN`u^e?SKF4Jgd32U@oO9UlPr>w&sbqOxKZP-@&{faGk~ zOaLi`wlXwr;DVyqzON;j%)LBe(~!Rikm89{E3=;*giR?R$X_~f%v5l}f9I3LqW+|w zpZ>9Tn-IRp8RbybG3q~N@MF*RtTB6(OcUZE5v^bpgp|S~&}MY}+T*e3WC~Mj=c1M$ zFB2NC@Ic1qMO8XI6^$gO8ucXmps;u}-(0D@)n_z<3~1U!v+j_{8MZZfDo4rUsgYY`2&+Or*;_zNtiX1xq$E5%iCG)qCZV^WuCK z7zj_S!?;@=cJ5rUt;A$$Q!`y%Z?g4Y3ELT}#-HwtBN$Eh1fvy?ziZ*%`}iQ|E9%E& z6sqB6QSzrFtOdh4lNAzRG4Ax@LOci+&Q_2))JaqRDww^ws$hcc$kbpgwVrv>B1R_S zwaBb?bJ#_RyHJ;y(g-Hk&~zx3>E$CE5~F$w`t`27Dw7|&Hf6W;5`CO%FZ+g5I(7Y8 zx?maAA#FS}!wiZzBseE4!Zuu;-b1f%ier;SC#2L|6ckSxi$%m3^sg*MDa(;9re z3}C8OA0cuw*G2BCrmLO&sL0pcmAaO0uMxWjQJOxYEVs6;ndf91x|xzSu#lyFb1dgV zm+twa;3g}=yA^*pt+ajQDw08cajw>@#B>J%En4vbO8|1oVVYe5fD{hr-VHj zsd8y7>?X5z^6tkwDi^{7h$7QQUzS{Rqcml@JUz6h7>YQwMpf7OV6*iy*DF#lGgOUX z9p|nGsz3QIdDbEO_F+m4E4j|rz-HUtg6fi2FCzcmzGu}Efcn#rTvCbm-|_; zRM%Ja?{0E>ZG+isY96&jqt{mc?Bgs{VQ$Okh^KenmmZJT_daV;eTR0ru;D|)1A1Tf zgmB2Yqn_a^dhti3yu4|z8i+rf6Q}|ur}Rqo-YK|NlYolN#|Vs~^T~~tN5juv(ocLD z>+&t;Q<>9HJrK)Qx^)+qakRMj+~h~$X}g}#UyRnX^_m9DCYvJ%ML2%2ab@>`wUGBY z!21u+to!&1A(yS`iM4$EL&9B1SYAD<`USjQ79clEBK)Th2|S0^N% zcPh&FD29$i9e#fjT>ao$%#wyc^BnMEoj~FJJ?)lOjc2M8uvbVDFT}VgxtCl+o>Z=x~Hn%SH4Yh$O?)zSF<#n*8BImc8Me4dRJ5Qiq z5`5KZ!tPOGY~Mu3PklqkcTIRORmIbd6-5e>WBhL7BgtOzl^eRW*>rCpM!&KYc*^?h zF5htG-}-US>CiuPof0Lpf=@@in&k-4vgLnn6m?Uq&)gYYG(P#Mrs8*_GF#_yrFK-o z)8CagMKe)8N z`|`pdpEHwwf1ghHVd`o8JSvQX7St!K+)3hTiGy%Yy3Gj%p8*R7NPq&d zWI$dM08tFom;mB04u0h!1mXbFtI7O!z|=V*Ne&>4fnu>ZI3rOHl*DxoTVtTyHM!PI zQVkQFf(Kqr%kdheQJ+#w2?-dk;2guXheA%-0HTDX*DSC?NMd`mC^z}WM>CdmPqzdt zol8ODSPD0T%ZJO5aZBXAku1tgucRmR{EISV${FIJQ?`e`Hl>+c!HI(RxdshDfo!Zo zOVv}Ld}pMIV*%Ab>Rs-4=m2;Ij{m!k){HNBmEyN|1V$3zs(`g-Kw5Yxxh1o~)BKkq z$rA6ZC1H9P%_kI+h%(Bmq9+`Hk}i9OY#65Ue$KWeKsA;imK=yNTh+=lduqU(e3fwe zBLS?d+}a}-tUjU`l2dtre1Kscci50%WR#;&N~vK33Pw;PqNtV;^q-aj?LA5!IaP|1 zWetGA$h23@x7|UR--sXuiA)LO!Y_KjTe5(ZLw*$zfZ_5ZV1u`? zz%YastCreYP=4r3;J#55jDuv=SE`oUtj@Z}0es|GHDk740K41slHZp#6N!&c&! zfe>Q#u}_s-cu)!(qP$<~PJ~0575|{BsCqR}t~!NO1z;;Ii==-3Fg?eq`iZN#hXO8< zDyneV)0FCiGO4#Qd|Hf?mc&yxypoUX8G#4VG}N3!2vrL)H2}7H^hZUn4SduQR*8k5 zXI6v&Rmuky=SAwY%HcsoxIPnghQu{h)K_xAqgim%^%{M4J=cj6$^aiF!Zlbx5Cgzq z;iF}6Z3;Mu4GyKiFJdc>66<@V2Viq2 zc=jG}0oU+-Emh1@=*ahzYl;Ld0ylvt7fu9PhuRWZZPbW67iNi(=Yn3@n>;b%4PZ3_ z1Ul+xB?Q~70YFx=s!z^U$kOQ+2VfnOjthhi({)q;r4AreA7fT4W1AJ36&kFXn*Gi{ zYRwC+t@_MLUq&aC(Wr}U@K~?7K)Cz(pq=0Z*PwUsQ|c9o@QXNMqxHM{YE5U=n}ZlF zzRZf1AMMk)=lkaDK6 z4f8+S7iUr92NgK(57HT?NCV?EnndVyU0g>Xp|_gd)5@$?7zQ9XAeh57z}6i8g#8&T z-*bdqV!_Tj!H*FbvKu1%lKt_foq@c7l@m;kx61Ely{|@f5KrwT9Nfv7j1s3Y4dM~RCY<|$J_p_em1%LPk zrOK`kX4bhDz^i@w);8`{nsS{rsJxAu)gP5UICwC#!jIV(M5kir{#xD;XDt)nOOjydaTgj)hZ$8g<5l4ZeEDYL1-QA^B1TNlMgSv;c*Sr+aq9QjeUE&zRTPqEG=x(=A=Rdc zZ`8mxthWBO@e8GjZyYzKzvKnL3#iofK2PHo>ED&gP5{R2!OoAn?|7>|?*r|o<5i4K zf%6c6UB&+ve2H+#d@4EUHr)AWj+qiRRmrUQ^<&VvgPsun;4EMN(ao_o=>~G;10|VW zE2*|>R*Eq$)0P2}=t8SAhWC#MgM@m5L_qkQ2{TH*qx5kL=7@nwXCo&-Y_gEbH{GE2D$Wcb2EGvOc( z42=iNQmPr6^K#NtJ8LlIxtS`;Z5}3=whT#RYQ(V-jx=p~68JrVMI}K0AL`yasHwHx z|6b`Kw9q?*-ZAtJN$5RPsT!()fOL?e0YV1}2#AUr6clL&0YwxI9T5}|u>wI+P*4#; zv26Cc_OqY!ywCZ~nfaZW_xy3*o3I9E!Z5SeC)fA7@2eU9vO^s0Chp)T!))iv#@s+r z{gX1s`6n+si(Ubz91&gX93m{(TRUTJ97?_ke&$A(nG>q=i;`IYDj}>pfddv+k5K|( ztFJf&2~gi`AqDy~6>ld6>N))MvqZ0Pt_ROLFF&t2`QSVGxysJ7);G@=sKd49k1uAo zUvUxse&@y2_(z#$0$0mlboTRer5e8o?P$7B_CR;@&2# z{&6bNCpjAV)RN4D3+p<@KxW3HE`DE3`XS)7&A3P96}~JyuEYJ|?NZuN=mIWZLeRYe+9Z*O~PFE7fD!LaovNNLg53*3QY?+X7oI)JBn1L(Dv(GjV&dXsM z0aTvc>$GB_bBO{v+JI@L;7F13J4G6`KqWO^Ll&!ObnKLCPB_WOH*;B$J)?;Dq`I3h z^s95lc+tqORv?io;eI~+uC0Uj9!I!`yyfx{f33Y!-$ymBd&Ir2)rezi;21{|_S^-M zxXk(DzxKb2zon-rkQ!zX<8KEX*)Q$W6?1`_9J0Ea`rKG&$EfwG@!ctt=7FP4Z`RJ- zeP6%${`}s1hV+Mv79YT9!-O*F2i-aA9mif${-S`@F*54IvMA?khKwdZ8L%?X_r;9psNC@&njTYFf+dp{p)@HVgg zu-TVv-tO1d5l#wM52Y_hPn+&ZXiSrJiTuIYZ>)H&O^0-Hzk96??v z64@*{6m57+Y(uB8dD_n5ajuwa(BW$Kp}pshug;6ptF2+jT>7?!q^|Lv-F6qW6u6ts zah=88lpNID=(umz@$G<-;T@CU(5>@y=Uye@ zI%Hd(S6)@o`&pyQ_NEJI9QuqUeTv|AB*_&_;Lc>aX0Tlk$dirpcYIM>OJ0Ou!x*%U zDMH5s7VgR2RKX>b`ICv|(|6ycxU;|@JOd%8Bw{@lg(f6I6geF$JOl+q?FQVnYA_i~ z9Klo+PZJrLPc|MA*Ez5v#7fZ>ijr62vYxh2qQax}y-Y~ntrk+vN4!012922B!Ee2L zW>JayJ_Rgf_aH3NhC7G`?A>8=#(Mie_uHJ@GTF#MJfrR}VWExU4`}6~YS}s#S9J7_ zp)S*X+nBzc~}ad{|Za|X>BR%%u}CP6k?inO2Ixd{pn+o#K}X}l8WWlPNs~s zn_tIG@C)KF&Di0eH@;ya&Yk-s;tKQ}r(^4&$d1e6{`zxQ=I!id^p6#6&jj=EpLef$ zHF74um3~5c*WYhw zaUb6gD>FJwZs4rp`kL432kwW)wuM@;eO*G5mko1V+C6I`)ctgC<#s;CEIwtX7Db`I z!JQ<`2@AVAM`L(R&16d(`_@H*5+A<#jZV`vU zivL#QtuV{pz>1-t?h8H>D8B`ijU}j$lO^xn@_ZEJ<)bL|G~(^0iVGH5KPgtN`n{XW zT}j{FnOAt7eY<)LWVE`HodbF|0T_0Sr`BR8iOb= z#=A#e-N}&F-E)#fEN=|SF~-D2&A&nb;Ks@4e1u)43i0^+o|t1jgl%WN-m+~B71|d< zlDRT67wFIl0pNiE!)t%U1L9anY4DFRj5aCg+r!|8&(~h7!+goZAvR^Nu_?m@cUG<$ zmtUBSL)Q1IG9a+_EdR3XfI^DyX#jynj3+%bi1UgkA>CbzPn7R)*l|ff)(TInYi@Va zxD8iWfTJTE_vpxJF(MU#WQ5WAEw&5FY3*EO8X|)kOhk@%R}$<#GFf9sj*u#?cnr$6 zB1*15_nob1uZHI$5_%Gd2n!lBw4w}pI<(EO51MmC`I|dVv)~x*QX4>K@mgkWXEg6g z-+MpiW&z*=oB?kOcXfj!xooQBZ;fE58m*DA!SvsR35?BeoV%u_qwn)q9nUrD+M?SS zf-y3#T&x2}(iF&?S*Psz$9m?@y(hPSY3Xv4NnvxcgtEJ>T#vk2{18=sP36_|=HD#D z^ATAB8*e%M6O%YDSFv#dtVsC=o|^VnZA}b(EQ)Uv@{J!*NBC0llL}orM4ro-G!hRE zeWk07_Zb;(3m4@3`cQl4Xys!MHOlyWRFIu6OG1?l{rxUHIGH5~9y#wQz6SCubnP_?2vp2LyQdXvAZ#KNf zzU(qgRk+4`oMDA_ri>z|iTNgFP;!iofVKr!80;A}D9*mnY|j?)dniv4z~-%_qk&-@ zDe(n0$GBd*JZYK*d-eupvc`ZXvvcM@0E4IDV05gG#f_{|%`%_mt(=2E66xp2=dX(x zjOTogL!U)OK9sFnUy}GuhA{LJ)H&t(1ULzU7WP{XaVv!@tY9_uw*}?PxtG+buT}Bv z<(eU@a0&m@fa7AAbr76@_*ql6KL(YWQVN$&#iLY2*Tvk|rnP3=i==#`l-?Byj*l}gh1LvF26!wv zN<5iW3;UnZR8!dM-h*caH~ek-3xrx@jz9`b>ERk{Do%e&Utcf>Y`Ejl&Jmw8eG97z zhgFv)Wwzfg!A`xmkjWgA68_paH3QX|sNxEzM$Md+&e2WXZOkJyyhJVuD!u$6FHGqZ zw-}!9Wxd;mA{uLJ!*szt;l?$sC~8R%1z+oiPYo)&hd+@9Lw*u zk4n!Ker1FM1FFzWY%bSi_39N)*OH>(PN|^uVqu_4dgo_hnFewQ{gViFv~XTfskp2T z&eNulW55Q51w}d>dwgXA5pva&pF}hEUdGg0%Lirq&6rwwRa~UxT-XtI`03}NT^06T zQT`{+UA+3pc^d(ZSc=ofFCI`=X3i^Ijx(L=eyXSHvVQpPq+{e;?hjsULrB6@wjeoQ`=Gl&}U?}k$`0TK!j%#4`{(Zs!h-Q`6g;EnMCB-oN_kViLK_RK+m0Zz_{FUFBM)&LL(;7b&@MXjh$l#bkq0ddyzr-RmsD!9^Pj|diEi-2TmP`jiN%F-AA zHht8^aW97Yly@tJrZ|ZNk7=SEY!H*kUy%9dx2&VAYeOUZCersE%CA_1|8u|+dpf$ z6T7LM*X4Pau@t&pGSe=1TlTD;{V>G=cFJBB3(3GjqlY0Ca}t?&hh!$~cbw>mgZ-HxoX7_KVyB*IC&4`MJ-kEPx!TR# z_u+gG;GBX9&M|A4KdoF^=a3DJF8CCL<|t+lAt1LX^1dgxhuwb;R?cp#k7{S!i&889gAe0ef;2xu=7c*<0-! z_sL}>l7Jq&8S#fsReS*#-(Y-GgN#gK2qQ1lAps?LUvl4k;L;{nIzwXXHAaA(m*y$? zn<~jU962m|QiH#whwf`%Aa$1|<#1WktX47#BJvIrJQNhUi_#BXI8GRN+*24R%K2srTDr^d5F&acYG?rsw2~m z(@5alV4^|}N&*+v7@{@~4mH2726os-lAYZ14OcEF&dy&LXo#DZO_Xs!JLl7Ij%-qSapClAg|z5Ee-aggr_?<$7xkTZtTLu#Jp22twaMpT)QA>D;n0{-$zdq%V!!dd~E4pp0&oJs{ z>i9(4)PI$1JCFcbc+uX>kwFAHj>!WybeIjk<7G=n$YYc9Y>qpIken11BHQTP4s1s} z<-4N}EFMM#+ZEtC*43DYbpaxyOn1g)H^Y5fTmaF^^bvrcjE52_cCf>p6i;TJkLk%x zVEaWUk-9&~7eb`NgvgLL;@60H_?0h!2>aSqIbY=TH6puH2n?$LT>@ApunE(@)U~G< z;7ikk-@tHcVBrt~ptqhO@}S%Mv56_W{S$cfE!$lE(V(k?w3MdVzktoI;LS)8qj~J9d%j1sRd<@>K+Z0&=okG z^78|hNPs(X@DxdqtiW;GXPGGy%!I=}WiK%ZoaIqdh!qRa#9lwH-Y0vqlgaFHPk}Z_ z+~oNJ021&sW6U;6uZJn7Rf0qWZgQQyzSkmTPJl1eVlJuQNe*M$j`gTj_xTvYc@HQ5 z;eY#t>1~r=cbKoQ|K@{qzRZ8vDy^sPYsu^$;=HS&0}!y#t2%-00(-s|U=uFgP9b`0 z;;%;D%_~EBDM(y@8@nGt2DtE@671_%g=3>4)u~onM@^l{Yjv3is zHsaSd5->Ruv@vp!YcyD6G}L)CJZAJz*=SVT=;6uH*p1O6Tw@6uV@b|qDKTSdWn)L% z#xf_zvNy(#bB*U{jORIz=f{i}mW^N6=_E)BsBR(@*ihX)IDp4NT=Sp@aQDG;{vd{s z5*Q@H>zvZKZ>oz32ZKZmAw2cIZVogIKhaJ`L=b>B^28M`sX;|xt8`R=1uOe)6g7?T zrXs7dkh)A=Zsz^=X&{^c^Ur}sPDAAKChIlyl?bp9Fi@jCrS}Co#Kq~&p0G-udTu6Z zA^}*kSy?fN>l%{`E@0%2t`8O2H7Tb`Mb`YDFqV6?ZKmJpEbwb`YDfe4@q21TLsFBa zW=VGl-2ifaaU))FEV8lkRHP07Y&lPknjs=tGhr-@AQ>s?f@lMSIk-oWj2X#tWGEXW z7&`+{r=lpxDK6lzcoA6t75jKka$)k3Ga`yPi=`vgDNr!l!A(K(ZvxNC9{(LJGBihC z+L)DbLCR&%L@@sf6_L%&LRd3oP2_qE@*klhSlA}iuzvzzKWYbNeHSp^n#cq3$S}%$ zAOIXLe?0YS3eTE{QlU`CSMk!+}n=1VZz zhbKH%Sa<=}&S(KJFtb=GeqMnMhUey{G#_HM@j#q+HGrZ)- z)7e~iVkZP$V0yrl(vQ-I7M75IyorgMj6Sgp28#q;5c?=dFP;gXJ%r`n-PHrrs{)@^ zOI;RncsNDk#eYsfBa*q^g(`p2M#a!y>(+qRTkt<_cD>AxD7}ZuBBn>{>GR@&BSPbmTN?;Z*N0(oj~?(mdg=T? zGW+oaH{d0`?k4S@YylJ0gcL1K4NI;U_0L2wK8|v2j97g7Ubfa2v=K^xMY11eeVRu~ zy?=fJxxw>@iHBIQV7_PFZ4fsz7%=a2sRZ1IW7C_L9}eA@Xt`Z@uVDeRwehf{e+_cv z6{R0~zkg#ydZV2RrMN7vPd*xqn{?B?L(4_BP!$VYX@^~^83Uw7Krj}u(yf(TGJu;_1rA!AYdvbSawcpZAUFvrLH>bkJVPP=rW6hVj`Ayk-558~((4eBg#HfUL6mE{Suj9JL zgAZnz%^hu#r^ila`iTvh#6qXMS~}19&=1^)5t!SogxlsWM!o%@6wcW zvv79*Y0Nb|cv{X5YFlUpQ=!+T7r{C5U_j(=G$Di-poKAh78$8%SD=8FwEl8^8mMT+ zELKM`Ptwl7k5mOhy7w4PXL(AL1V6-6^Wpiv)5~O8HR+Z%q!%9OY<+r-GE^evR9nNb z&x`a$CE+=!9NE6qw;vWB+`M)$A3I$1C1m6C5}y}a{D5=ZAhsi4QikGu z>-yUVb-ITaCvSDFK4MsvO1t!Rzkl59*?M5AuV?)!GxX*s_bVsP0%#8QIHj2;u1{u6 zNW0$YU4vwl;bQ2LD{#s9-_8c|!#}4pg`Rh?4xdBT}Tf zp#rFa(p81yu#HY>KYl*h!M+9 zf+LWk)I6?qTdW?}96C^p>X3b3oPxfxacfQ7hvk`X zM%l|TDZp-ilHDlTp>pH6&V0K2``h~GdjLvflLZ%v*&IMCw`~q`8E$M2?G?bkME8BU zQ7`>M&5I<3J7Yi<=AYMoKBhO{aD;5sSg&(uod$vNdMDJ#5S3jGIguyHb#{Ti0A5?Iln>)|9wiDPsL3+r^%P{cR@7ClTmH zNplcbc2b$&gAI%izhoN#7IQfYfHEO1iddZ2ub*{zlX%dt>`j+&c%Tv-SyS+8@6+^6 zqxI@;4m=c(N-g_-py;W;EqQ(U_Sns_^?ZDqlJS|i(qZ5d>|ijluPe>OcxmFw&nSv@ z!${8YHNHW3CT*IU2Cq4Ox1H<$QjDK#EZW?dGQIrgGsGG9vtGCcNeDH;3{RH8;|sBM zRGv>?d1!0I2L91H9?e;87@E5u!*14C<=5k==B@ z%^Z}2)A)r=S(FK$z`36gBb*x39C_tl}n=37Yn#1-g zlHw1`*O8ORXGnJEkqJ=2^$U~V< zd{4L%uz=W3u#9XkUoKN`B4e_M_cF;{X0rf$`}t7%N}Zq}T06%d;Z~GVoJTXl8%dd$ zR2(z2mmSO3{pkGJ#jzVEDXl!2>$PPqGtDh|clA=r%?+7 zkIPs7nk<}_;2&dE@?%WMg%_AevVySVoqbk_r~|iQwR703S3lgiI6V||)Avh(>GZO5 zojLoeiukjU+Ai#&ZF2iAyYOjvseY~|e6RK=129)PfqS1~pY@iXH@|+r`_W~UXb2W% z+MH_T=6fXbUV*>R=Gwj0*l~`cfQIK7RS)EWM_ISmg-~}+2~GOJj=js_eb4a;eVjCS zqE5o+rK_m@HP~Vc*Os!G3SbX58kkaaS3K3)eMrTsmy-ZZquKs!@E@G?! zQ_1Dt#v(Wa0ncpyC`k87c%>3`0(}hnCU;VvSF^$S#>5uM8OWCtWU+*D!K!B=LwrT- zpt9{aJe>t_)eF`EzODR;;NYP!inJq|nR z7VOZvqbblECi#21^VG|%!%@Spt{i#z_582js|4P@=|b1-ixPjV+3#~2sntQXN0)^* zi&4p6$fFfA%ZZPlI85;DVG^t~xQ$#-icMh>VRwQkD7m!md8%-C17al7UVfOn>~cZC zp>Q-(Ei|*mN22ZhFfy6fbXwr)o3^5I*+2WsoF4mNKWfOLE_~HldHl&q{J9ihkUX?R zXl=gtex{eETfg7qX78x^Lo7_?)zaJ_nvzeNR{qE9c^1l+`7YnrvVm9b_-|t8X55yH)M&&UtOwjY4jU2K2RP@BVdnr(ZK43l zK_pCScn~YOLd5J1;&dB%l)9-DFO>W?$(W8xW#;H7TN!WbF%(g0WC&p{rD4PY*wjFi zAv2v+$1scURy;pWQar3}d`U9C$p9}|J#a;tVZ#HDhXq#ypwqFhin$|#Bf3FHY^)wZ%@rX zy6s?`2z%%55W|ovL-Dt)7?b5>uXQ^aR>>PNq}3A*OVe@5@kimyPFNatp;~v;D{CwX zho++*z#TK1C3ChjMMf}2Livy7m7jOJ*r%v1r5f^5Od>~U65goyG~F5%aqyh>%N%O& z4j*be%uTn-4Fb693Hi#*lA%pHBfV~xo349axx72Bd^M#}V{yBO&y|GF$+p9s&MWK&7eaO>3M-Tu~ShMj9^2Cns zSAGACaEELgRDP3h8xGa;Wq&H4UqO$r-Vfhn2;b_I^07Rr=TH33*7y-lhx<}cs`vLd z_jp(p<#8 zk@_PA>f~35x(MX@QL1w(W)3`@!e(!C9Gmr3y>Iyz+>*@Nw4F?laqo0GaXowN5^Twk zSHVDQRr^dNhgqx#R&x|^d5siPN;I%_J*A_1Rz6g(;6TKPQM_CjHMw?kq#j!tCX9_T zwc}Y04}UQLlQa&`CWkv+4VP-P#>=Uv7sEp?W5bY84r+vV73xwV6h~Eb#GgMm5_{_{ zmX8H%wGB)kt<((z$7V!AC|>6CaZ0Cv;v2S;*VQilhy;skUH57adDx?W#z)20Md7de zR6ISTCaSz$td1k=#wSHjx`SOVqGef?^3^a26Y(xv%NsZ9vBa}M1Bc624sU-^M(Oxy zrpwJ#g^$fH`B$_0amI&lfbQ(G%rC|ww)o2(ng{;8`@>8C8UQ5 zG}LGV$(x1s0)~d0Cl2cxVk$G5hEd53;$jGIG){IGZ*#hgl&T7czz*v=+` zEu;CtM$Xnk{19CaCf66u!<%L_igDCLR+C}a_`sQ40yJdsF;s(8y`%X0cU00QOkt(hszqaC zH;Ea|NZoDR%raO}PSTh|N}#QDtVx)eJj=Dq8c2VzA%RM7{>EsoQ3)VYXT5VMFU~r4 zY#ifb&2vETc=cBs?Kvc&2H>@}wM-0+qQy2Fx*C{P1)&isVTEN9%0cN@dJW`rt#4yH z!D4yXp=ZkU_ekMQIa#J$xt>E-x?@H>ocRDqq8Fl4aoOYYKhG}jw}1rsPhO-Zk>gp z^~;TL<(w&HJ|krcTy8v_J?2r$;!Ov&g#9n1D6L0&h}V0p89BDudz81JVgo!)gjna^ zE0v~HaLFnog`p+abwhS4)|}2kkE)>uPd}m!a^3PLCE`p8>W_5+J_oeh2Ay=cLR73& z;+Cy+u@qR+K~6$tw}{2#_bVOUA4^ANKH1+xwAG42Cu#WU7W-xgqLVg!bIkU)W_o{1 z@gu4z*DF@i#dI%vqtas>t~?2Rzsq}O80*Rra9yaPop#^*c|&>aa2hM@hyyl@BTz#p z@b&)4kSK>rQq5jdnW|ymxtv6uyWthaK6Rpgea^iHM&X_U@jafAKG1gu^4`~5kBT^R zD2O)MmEEe_dvY$_nBqn`ZPs?*D*&yzSyOsSB~10~*XNVmGa(#6=s~?u38ep9_tB5v z&NKGt=7>!6){fciPeyQ|)))0U^&!=%Ib9mAv7&7xi zy?P?fJyi|t_A-#*=yzk9q;x)`_;l!e(f1A+9NK5R}rj*D(Lq=HmyX-~olZ&s{BZ-716YZt7y)Q82 zl<tH1O2eDBJs1` zlnh*}I^@!^*jKzH##k1^VsUYAW6gBFo?A4fylxW4zJ6)ocu8J=?+uUViV=2YeR}0x zBJ{BI8+5~>2vz2NkZ$a6snodDx2z>^9rhX(cJv_zK`;a>i()4M=Myhu_Vz7Br#Ua0 zig&Cck70S4OGIpH=79oJi?utDHDmd;3wx3uq}X*2V3rI;jrg;Bl@Ia2LyU08qP_sO z&XpZWdwcQIR6`t;w)cKm5PouIRR1e*=b`?GSb!|O9(#9LX!9_M8Z|rB^v{{>2@L*l;ezttPVzs%b+wsZ#(xL=*85npkzS)lJSla4X#JR%h zeAsm4hY#6wNJTPo6Zpdgjo94ss|56)EVmH=1liNDVhw*pK<@~amkjAUw?(qtwm!IR zdwkpe!nWhRZRe$J*FU$(GCLlYJ6;EOe2(w(v~%Fk9g57i5X*022fsxe z{}y@STQsjkc@pmMk%ibL6n*a-$q=F`^L-)+4=2Ea;`s{juwycUTGNQYO*Ezx8ia?H zP_Tk5gbow@a}ajC{T}ZTpDJf?hkvDGqSqNh&|xy$Xxc9DRa$9%+nvdn_k%V}d%}=+5R6S7 zPjQ(h>OY?0GY?vLB0J-4OmXcU^tLAsDhf!u*t7IQ-^=SMY!f4Mg=M1&aLJ3dMFXhl zl3mU%ihV(m*a21CrqwvVtb}y@w&Cz4Zp}T>$kWxWbb^XM02Ph5Dsl$9)&E z1OXWM=^tol^_~<#$4rOP=G)bu_3N7yy@KzekW}BC?^ByWT@Jw(<65RG{SMF89ETkI zjZ}lkiB<>S?Y62*9Q7Fx299QzFYTnm@X5ZkLn}8j%ZWT1(g9Q9pb{X#L{7AKlG_4# z%W6y=nF6UNUtAyHe-<6`V>hT_ykNg%o&?v3E@M*aqQRXG?Blo(7&q83{g!*tLV#t} z-R;5yXw)a60tKl};duWTIv<~5fA~PUVRx9I+BL2OqO+vgY@YL1<0^3O*pHFmLTQ8C zN4R`v+oIsDIov=ojVwD<6qtqdMSb#Bx@cNDyjEm(!A}mr$^ztN2rY8J3hWqQ)2L>8 zXKs%lYwD$9?I$w+o!^cxvU3F>h3O5W6zz3}6%O-l9q=Mz5aeFWt{~a1Who7T^ zgM~F)qm>Y311T+vc5hkpa$?e7gWIlud&>&X4^ui5{HeNYs^lk@|AkXk0#QC9=vAb; z{FX{$ag+s@I~r?cCeh9>(5&syoc>ef@o9~+EhV&cxG9_`fZw{B91109$`Upi6Nu6~ zPX+9_KMbnKTG7Y{yQf{*6=%$~BRR0dJ0n)kkUQ7I@|>K1$^+WX+AYJ&{d?f?qHN>+ z9JMPreAtK@BauY)l%(DX)c3~7FA0*kWlyG1bc=y!zUUL> zy+dt^zx>-un{7XAb*QZr#8*RL?+N>WgSiCA4XXmYHJ=Th;IH|xVXOPDRb#OZefiwh zLSJRrS;Tn~S}dAhEhz1MTE!~{IFk`xDWsWSUll7W{X^i;`O?An^82{znbx@^6Q=dB zDtC>MYD!cCtUzqkIpcjTS^mY;%keI53tbHY3uF4p8I5V(-<4~2>&*!<5y1`gGcKq- zecR-o!LK*)Br)=NH6u~_%lKAc`oUoWreQ$USYh{3@6W0$)_B;S!m$ZN;lmqN5Y6Ub z5p26q{J=_oJ)Z9L)=jSGZoSq)X+!}(UV>Px1`%3&rFdD6`%gR@qTF0`9Ll~6pRS13 zo$-Y+@W!&f4E;YE1h2j>RQXeo0dOZ zT5Gf{bMuB;X_;NJJ)t_>k%4Fvsk!K6GLtL(4q9>~mgfEAvGB{R+yTfg5@Yb}>8tIX z9LO$(;|TG&Yd0VTFj>V;k-iWr9ji~H0#?mSSn*WB^In~C4ZX$KR4jnvf?({69XZaY zEBl$XdMAqy+WPB`vS!@TCj&`5pG0q+tj^EWk-ad%59Xkuxwe!vG-$Zu*Eeg!BLVFg z#rHb8uyJfI^qUGCqC$XpkZ~zAIze+^f>S1$Dy}JK0}~8+fT{Z^ErcG`M3Qq3TD*q5 zlSe?R?-!xGC{{1MM)gl!6^e0u19=!Tf?)Y|VZLTVI=Ge0R@dqQ*Fu^c-NgSM1u6yr|F=<~5|9TFA+XhPKKNEF2LNzj0d5HZ zDS*KPd)US= z;cT{l{?S7vN2AYCgCaAEZnf8+y>gAw)z9j^HZpkcM*je_fB5#u*ucQR(BQ!6$k6E6 zUkm)d|04?-NT9~sE1W+u?wMfhEO**@m9MW_?W(P+!8%;j=<+NgS}NI0puCu`#@1C7 zVO7eWj$;V5&>+^fg=XWrQ zaw{2itv61!-C|t3)z{m3_ttgh&Hh`rZjFuH92*3$y<mMGw z13oksi#0GXHa0jmHpKet!3~d%f?xlW5AYv%?0@Wny7$k?sxC#vE(K-fCB@~Hw2Gpt z+UnBU%DOXWs{vkJTU!%pF+(Y17afi(S6eyi;QAIavQ`S>Me6%p6#HE6+^v&z5e5*X zTP|tx;(;PiMA#Tr;OPE<$dQz=rjshfHZrNi15i6xvpF|v#>f~HhaaJx{ z_Cok)>=|kRD~B5|#>hdB@Cvieuo(dEwKY%=wWr{Vz+T}}m06O*_ovNB$_~eL;K9~V zk|x60|M`1t6XCy0oW*}8P6hx(|N0z@;w8A1C9!H^q9&493t0d!C&4W$Cn}>TCZj5d zvoJBx)G;(BDgdq)=3;sdN+t)@N#5ojv2O03zJ7j3585OK*gLp|+XN?krJ_#=M>d6>jJJ62sw!5n#<>^nhp-mAm!1M{B*BPHDMH##qnlXnP&if+iJg!i zX62QN$_N^r@r~yH?_=fpZ&-l_j33M?1OQ=vkgUIdlLRfAn6NNbP*h2bTR~b_Sw=!t zRv4>nsi>-Mprav=Hv=a_o0yomSZZ0B8`)Y}2D+JG@z&ZVR(h5WYL-6W>}TWsF=hdY zHjXZ?;Bs?waq$cFc1!ZLI~M318Rbt6bk03U&I4Z*a!smFerDW>yv)-@+5Xw!abd-c zrZQU1#hV?MZg)4{z1h)n{nnM+BOU!i?e|7+_Oq@Jj)9h|?;lz-GQ=7j0Vx_D0XZ7| z%VhogL;K(VGphQZSlJX6+x#0=pdmvUtJD@&11K}~bNO}r@)rB#%#^IEqbqsU0Dx`^l0z7vFWqzqj($I#WIeY;<)+nKCqd0;z(%}{tDHGEY z=8&>c8UbXAHOhERi}g6S0E{4y0+E4Tey;3M_EWY#IbL?iE(dfgz)9o(4LywfH;h0% z{0}kwiylx9L3;j{L{JI;#SkclAU&WGf(xVvj1d1LM@^(uZ~y3R8?G@6X4lLAm~W8wqN6{(;(QAdIVtF`cg9H3U^t9 z4R90rJP}(#0AbSfs416JeeqeIx*o?o`{_%dVKq-v4-E+0Hmx%jp@v#qLi{+AinMuI zH4wjV=`I-nk3qr)0WNFhm}YDvU6ur(XhXREc5iM{;a z_N1yni2k(|`VYwypODrC&@Y^KULd9R5F2fDHb}R_Mlwai9NlD@60~u$yH~=rJrRFv^4*ltq!;Th*%Q z`wb_LRRi|Unrc!p{$6}IP4O@%tTYcwKvSaB21BuvLsvU-f@xFv0l-<`Mz4SFhrmSg z|J(Kw20(#E$P36{`ymk+1b_)61jWV0M7f2~%1Ax%Y+Rgw@ilH^yD6VX)>1W*bn z5hVdhWr&2aptQc2iUEh_K4oy}m>L@!>1t_mDhWI2h}s#bd6+3U8S6mpOm%$(ee4X} zYz!lvjUzqH17d|?5_U4iWG)>iH3PeSCN5CJNYLAWyO0eW{d66C;BIlcE>Y;LG{oUp zNSKSWv$Lb8Utmxm*~K;8&+brwPsD!b$WXtuNFN99NN3-}z9EqwhmJ-@MP+4Y#U>_2 z_=OP7>~jye6@GKM(Zy%d>T z1`lXLBwPhu<$&}v-m!(T8HI?H5lBrfyrhz&`Wi=LUvgDzQr<~a`7B4v4C>Sy%&k>) z+gD8gPjvJ8NqS|^g@U#-`8O{W-)=kAcBwkAzMEFlRMT?vYER#dn>V_c&4WGXhwpTZ z4flfXbj$7GoBad5L!h@a`sbg2-eui6n@vUS{quuaSX5k6T2_9df?ip5vbv_0&W}2E zmIkfAz^H|32TJARFBd_z0t16isCxzBO9TS71-b8DYQ$$@`H4W)dO{;u9jidL+*$x zFyN%Z2%)P!aQ0-7g1*NDd* zdY!KvXVfr9yV^|RHcCykHTj~e;+6;te4?AYk59=*(J9Ew7~()(G={LJC&TC9fn|;ys_& zDEK-FxFmEJA`r17pf}-t>R8ZS%&vyYGJ``Z&ZUkiNbqPb%z*RBt>iKINwe^)hxu2n zPD;|?5E5Y=5iRboB+BMfMn&TiVMnnFm#~T=G|88y&AGx$UPoScn^RUcY9e1cGSnr< z_n-8yo-^mOE*6#r2j5Ls4dt@!=bq$4utv`T0w*aFVC`GEf7u!Ct^U~&K@fnu@?xienXosuo#-pVb{ zni~+2+b_B|@=O^qfTRLm@tq{p_p;Fucw^gqiF%W-YMzBu9V_-Z>4Ych9rCL?N&0H^hwqmOdSDG_jJA%ZAGQ2u(j71m+{F9K7%yvm(o z8c0zFuICUSeE0vr9lUs>!RE0ZIWotJb1T+n^|Jq3`~U(6XXOfiF;6EdSg^k<#GX;B zBsvkvgaCm1qpb|;;yh)^Ubt~UhWj|j;KDUxWDB1h&zbZhApIF6S2&Bd87rB#!5Wgb zWisRhgEw<%x3gI4N8}2Q%Cn^7sH|KbJL#>VV5eiV)HA@dDvZ$o!_%3#L-oIL|IB{u zV_&k2eG4P|5@TPoj4YAT*aY;KHKCGfdgk{$ z*Y*4Zvz&9T&$+Mrec!LwAIDZ@3ji-Tj%j7D9Xf6qY;l)jaUJ8LD_)|kV5_6UR0j2R z)asm$m>sMdFFXI22ova4u4>8F==d3T#6n4M-6`wZXTB#FtQ3QE-ZpaPG7k8*1)$Ad z+wVMjgpRVRj=xeg4d^q8#lW#a(TV3lpKw`D!+7yiSR+fx3DmGDH5V*Aj{W)2%y^5h zHGHZN^tYPFc=2SY1wy#f&10u|)}RcMtUUw2R~FZ@qAlY7vCdurrlW$BO+Kfj0tc@8;+;+5K?o%JJuW~=nLFfFzke!yH_#S<~jg!xvvS$uw{z}d9yulnj zea^89H<2dXqb&(%61NSl8eCAwAz5-J1}dmah34s9+d-#L`xyBoE3Eh@^374JU7TGe zepZk_3z2O=I$3H%!my}FS(a5UK#(8#Lgg2owz6|#@<@Ng=Eu{qj%|asR+zq~;=kV>ts1js%i>nwW18hf4J}GOjX;1 z;6M{JRPfJE6TyoZ5#urGqpt?a*4%<`$I1a>2A40-&KzJ!z!By>LYwN@$msOE>@TGi zwsp2>kv%tb6}!&@NI_xcDT}b)&_jY(oDnhI4T@0M9h-r+oIEx8ATN4;(lC*dZVdh4 zC6RUFDN#2E1C`z*=8T~a7F4vjRPV~ebhmCodg%bNNeL|E%f8lAmStYsf?htUF7951 z2(vbn(ohHr2~`BRpHmJi&y#@UhqVVB#30I8n~T!8`={1#k_F5$e8Q5l{`$J4kJmm! zKVS>jeM76|BC=rc769f(bJssj@dgtwh(R^7xo}%R@-F~Bp-ZwgxEP9}(3M36scyXC zkk2msG2ED2@P;**$P=o7Edx+4ehwY$Ic12ak`cwh+SVj>?&n4YD1xJ8wfO{Rx|faQ z!&6a?niHriEGvukZGL$SRQ3y%gX+1`t_ROT00ihSH0kPt407OHk;@SrQw;7gZBeCA zqLuZcYT!j1?=7YILoxqV`70=B(ytX<#a#3@PW3}<>>Sz})aKid-1y^Y# z`A-4QP^E?lp<4r_yjSHKE7kY0rAW@^oK%NKiyI5ggPWav;N3^onPfnXc?16X5|Ur_n)v^cnaKB`y`?XB{z?Z|>+ z;JnZE)pP)J2Ko4Cm7pRayF+}1*Qk2`b=?_|dXAbS$L5(uxqL6|Qs094K23ukB|x)P zvmg4B{nA!tVlZ25%cl#4LFLf;uHh=iQU}f^yH0Din z1nfw^jq%PlpCb;XxpTi0#MU)h;yynH27rK0OsD!y?XBe`n>fm6)xXyOO9!!TOXafw zjrvZch2)(@>&fh|dbc1*N2p|~FU+&)(7#APVE-H><-q$bpDXFlp7fpNV*sF`ul=f= zT%3~)J zp7m~WL;Ut`a=6Z)Iyu{C_cJjVOx_Q32IObgGnn-5ADHO;{oIkf=;nowZ>5RnR7x|+ zlqmWf+=Y}@goW}>lipy{3Yok-KhI15)WTsjV`I2Fy6pQP-QAk;0D67SJT(~!;S;x8%kY6YOdCx|2-kiZ~hNq|A}g%V1XBolJ4QZ?stVQd7* zPar}tq(u%V{W}i&i&qXqT1~mA^q-vc!{T?wB|P*}Wj`TNWAOE{SQE*MWh&8se0=Cr z(m;G-UJCEpw|poA_81GZEZ`MU1)mbLR>K{h{76MqkUQ(j9}y0a@^c`}lHY0&GaL-V zK>v{doc}{V`BCcqE9JCgo?&u~1iHeoBCUWDWoQ)hUiHc-t=MTDFlF(QRQPOD*;yR+ zaL&)GjsxXc$1)z%fjQijRV&ydQnmn-_?Q{;l;a+A0IxqRtDg)u`T^+M15QoBO}{`G zMGnP*Y#M@1PQfrrRh(5wF$*v`2J$i?nlHiiKCUK{ASj_~KdAaJ>wKRdSlrQ~TvtElcvo zw#kiMzZ*YNZ|q&Wv48i*pEozyzit3hRH!Kxew>O-qk>gb?t4_;1uFkO6)jaKWLhV3 zyiP2wPNJ$#>Rz4nLY?e>9Y(5N!L(lKc)dzmy;@aREv5e8LcKQobNwktF3#?@3=+x3DJ`8O%bIP@q9**eUw;JO&U23irWW|gkhUP7n*L+S~>zj%_>lxh-?BHFVR|TocX;;%@;AP=k`Ub zip;{Xx>s>61q|p-M1JAD0>6Hu7(H&?9@@+eT+#r^rigGxTQCMhW0Awoh-}W%HUTm0 z%ro@4?Hec2#~>r{$OzIcZ31%GRF~aG=;%*t)g>W0x<51r?n`LXWZV>H0zr(nP$pEJ z))~s`hzV+I;f91@+W}gOCI(Q#BZXm*AVSA`XU<0>ImF^{IzpS)`RX$w_FF3%-TuQA zL=$hdpRaqs=ECdZQ(#`V_71xTrQAq zlR$)N;ZTMc4*V90Y3z-|qAa3vHk0c*rpP?u87ui<5C=}1)n0O|Ie-RL$LbP_kea0S zCVbb%eoxvyLKBT9Gj8WlpxTV)+r-uY0+h2g?v;*=y3l@>r$2b1S(n~+g4P8?cjyxO zE1dhYoY|rw8^+SrcPhD?LJ1s{@oheO|GCf5?^T_|#XIRm?Jb{aAMXt0RdYibw@=MB zr!VyAVt^2OSJLnH=Ht!UK#Mk^%{uK)_3wTk0!@3bE9y`W zDw(2@OgNHB7_tYhTpp+!l(>*l&_X7*wz67F0-Mr`kcRhERHL93&OD9PJR#V7?~V_` zt%mb(E&h0hC`MY;!B4c|zk3@65eE=k^g;|GO$t*%Ndun>G4# zu^D~y)`>^Fmc~jSp986Q_?IySruC_G>Uatb>2)1Y?@RF-R8At@c4^rSl~DF+%fR zyEc!g){zGQZNy8kCHh{M!Exl!@urlF`$M-n$lOhyy0`9qMx-s#E1VmZm)cr^2M;yq zI@N6eFka{b3qz)2NQfkogyBKOOu#0VV3JG%P6?tsF!h6bJi{qqjVU;^FoGR|{+HHw z)&=y;09`)!{Y*n%zcoVT1|nF97XTB~!_;~{R??&(rHX z3USrp4pXUMz#l>>Pd{q2=Yqe$`D(h##i?u(eWVC-;t%2bpKf94nc;ozKQ#}Jy7EXb z4U89Yc<2jZrfvEDzB!qu}xeD!RoEPn-}kYuHxZmcBpDD z0)!r&$M^R4JFr_lajuhn={;3TGN4jojUXzXi84c@+&Owo8Y+`h;MFM}wnqKQZB{*GA=-Q#P|;%Qf**rFMb>l&c7JRsWvYT}vyhF@OUC&>O~ zN(@OA11mDc@1OvL?J6KJ`Hqk6CaOZYc^$o?9tiRJh>|3RVrxSyy>4|mqZe>c*UufQ zwUI?LWuINc&oncPE=90SkpXySO&Byu<|31&s8Uy9XAvQ8vF4Mx=3BdVd}Qs!@|r^+ ze;kv)UG*fM+8B`eaU_2H0`}42Iv7qqRJ{~w9ugg~y!N|isEBB7M+b4YjkgehCDS|6 zVqFvmO9K#w1lWD7l18bKC;^sES~tYajyIrm6~J3LAb}_$z)(!Yt|wkXXpEuG|Ai>i zP*DK%TO7=n^*V!y%3wi8s#k^$6Me1wc(#;ox%?cS%CL0ZNAYy;$FI0nd!nfgGyyQ8VcBY^`%}l z#2f&==q7C5*x7>bK$8g@0|8*Yo6n7LHWS%N(Z+DhyF znW%(BP=$_)LIZv{mw#W@1a#IV|7kBXyaN!YjP*}dW)cd}>l#9c&m-ToOly$_Vw#8@ zua);@7>FKiUVC)M{N0Ylza5<1?*AXi^?z#60LU0k_uvrOwT#9A&?B!HOYJTRW7PdsIhxQiYquoZpIZ^YAz zKa%*nnsyb7phl~^?qVp#RS;qME-`fcQ7tG}4tL~P*9?N;nt9IBQIS+s5+PcNjygj@ zrqWTa!pLOWuZU1E_zIu8!s=z*UIt+=>kHC~b}Ao$bapBX1Hav9VAdD6ihr;K#z`n1 z!m(@WH-NOWdve?mqf*q&KduX3rMP|=mz02KiJN2qx$qAx_H@ar-4h6NK%8<(Vf;pX z4agy(q~0BgRpENtg=7e{rxCvuk$!(!`x8w;4R?WyBOr;G7!KegBEb8f`hF&??}3u) zCQg2mTw;w6rhcl5E9j~|$5cQHTOTHe_@&(Y@Af?n0)$O^t;S_o(Z*j zhvCQi^;{fQxHL>Fz5zy4M#-LsniZ!Ul7ZicW{!#D1A8mN^vVG2lTSv+^a;YR?Ssp3 zIM1^-<7c?S7&(VOsD-ZdLU7WSJo@S+a=yC=aI8R{3WUEf06LCZmD)Y_5wK{K{>Hr7 zfUlPk;mvASj->NuZuC5<6J}DVHMz1AZ_45HBmT4^sl&(rr2f zkC#UrwMeQQv3BNaQW7yZy_%Zq!gm>)LEG|pEVkHWV7bSeDwTLE+xUT-nAK$dnML2U zrJ2e)ML^6_>Q@1po{ZwNuy;n!?Lk;gW^z94;nwk4ehD*k`C%rkkwShviTQH(Cg6T& z_}q612+?3esoRgEL*426VhfyJ6 zbg{=k=!1O=W4c<6@MFHtDlOxpyg}T^-J4eOSSizta%KJ6^WU#moRa>{w{jy@e~)UD z+Su{_?U^oumA8D#?W_kf-dq@m1Jez!NU{#?ub0!4Y9>w=oUcQ2`Xrl23xQO|WgAFd zOT=`f`ezTg=4oT-WQpCmrZE}$5Jyl+V^a{}-V71tl8t25afxJr_opuPt9w5>fVB?c z$xU8mz{+w#;(a6QC%7CmTsdSV?lQam)3n>%H!@Vt32ikY``At*fXcitkCHL+{*FA5 zPw;S%t!kJ>0&^nHsQMz=ZKO=O4$8`>##hJ0>=@#|UfaEQ|XAg4cY}#`1F{M~J_sz89q3gLJBHYW|R~(|m+>dRy zp)I3Da+B0B!Q;956wcOKV>hYx!W-x42`dL0F+YJ^^Gfl_)q=z-aO?O+0jxNopQh+` zAWkRI3Hny@!H&Jl4-bTRwo3znH%xS*_O2G~psmZ12}Gd5wmc+J{_@XdnHTSE7o_hP zlnR-n6KrcoFUb_b@xBxich1B0NvJ9bpK|Tr8LeKA>2^W7)jNyl*|ml>nGgmZPE-1j zG93(osH)d}a+Hl_Uq-|`c=W%Fk;Z4qj%(e$05?6sQDu|}23pBR`4WECpn0HU2Y)Pk zoV$>AJ2ne`*u3fYZAOLbhzDV=xS6Y{iXfm1_FdbH7~a+fHQwv*b8%Uh|mr z_irmO*j{1n>2GYyNvkpV`}Il7=!znw1ePnv#Q#(A(TYDFd;qRYPOb(+Dn>W(|0BX> zDG%;*TK3u4*c*x}Oe>2&>rVVbH*6Un?^7q-Gk1BsuN$st6h-Hu)zDKiwzzDGAG8dY z=z3vAA88Q_I+WLVLZr=C#IGD{E+X+x9wcNTYPjND+5x`pU=beaNwwo5^RO@=+Xf_o z${8PcC-x?E1L*dtn>XeD?a6R8K)^T-N<*M<+Eyd(a&dHnqOxF?TO-7+q`g5|r|_Z6 z>A13*%?4FVu1ENyxblXBjq2`&kGyWhU1^VQ)I7!Y*!NLsIm|d%8HvfCYp;hUs1>Rr zsJZMwijCTF0Bw@ONJ@^(OskMxL!A^?;1N5%Uj^1d?bd{E&C|Rd;zr~^{&{^{pXEeV4fC)O6g6mO>(k#feJiv_7sl zu`Lji!J{%wk$Qj>&T{oas9VJpInU@9zE3f@d4~2*so{8`<~-yY#P{PlspWtf>Ar@-4u(m z+*|RNaoP;}Y3Egjxnlef{oyEr4xv9F%f?hfETXf^%p|R$8M9@IY9hYgA5{eK(=efJ z>!Tf7587+5>EOmaySvLDv|r6S;@>oe-Vm;2FnnatB=&d-7WiwUH)>)}E>vw9o z5BW#Ap7KF(&=2jRp_e0`0;8?^UDqGhFFZVY$+!Fw;y;qb4@hU){J7{IoM5%u8mIoA zSPfiJR^67|NgWxILta@s5c);s;C6a{#bH~3<5kZ6xKt;=wPsi8yC}oVQ3&XWP>`>R zF5brGOWh?qxGxL#K5f3Ee7uq0^bzB5MT2F)2^D4ZwWC)`bt}>5E*#mvjPEJ1Qdzlp zS(QzC84FZHcl-^<++ddr+GD)uC)f5WlKH0T3*N9 zxM>6b?MWv5s5@%sS!hr{(PbKow%i%L?4$|a?b%7V`n_NJ*ciJ(P1nbhudY2{_*S5H z&BTEQyN*DM_crEle1KOUgLp*c6%s3F%E8$7FspS<)U|_RyDtaIpv6K1zq2~jk6s`5 z%h8SacITjpkqjSQi$Eng_s~xVVS1x3~T{IdtBhu3(xi)ZAaP<% zVnW$K$H2$I!{-zv{TGU>5X%lJq#-|taetQJI_b%kIGfiFN9Nq&a%T9|VY#`~eaQ%( zC!)GgikwI*LYJg+znX1;#j^nG}sd5_=Ydv2@n2H6#hL1 zzof4Jz{`^xc>lxy6_%jUNGuwm%Z0j({(04W{JXdCWh;=$|B8Mh|GN&vfajNikdU9T zWFt&@_XGtaEMD(#Sa-JHFhE$z!6LDwBSAEIMZ|$9bX2~0EBF+DuSgmt=3Q1?NT67X zute0X*fbLf6|0Q@#_3KArU^>se+bOZ!V6wSiTqy*ZgpLtzMoID%($j*Buf05ZMAbeKhz|12Sx|Tie$|Wn3N*rJr6#ca2#2(BficvKh$Th9!wxu%=V8(urii7G9PCJVw2yN@fc_}7e zr8Q?m8y6aNx$ieRjp^$CgsaNODeMrD7(n@Erdj`?kCg`vrw$I3wU%I1xaoR}{Rx&i zvXMsmZ$02Xi9$XOk`}xAeP{#Eoy0(g7W%QMgZrMys(>M(OE*KT&P*B3oHqQCoUMnk znANL(TqwoEG|DvU94*aMHZeBBq*lel+nl)y#m!1zD4O&FYBb2T9Aoia_Q6_ViMsfX ze7q^o+DVR_x&D)>JwA;K&~KUQM9sV1%Rxmk%+eVoQLGly)K7?#{)HMS#xQ^Op=0X> zcJ4#RoE{H9Cz#neEJT9A0T;I)&SGAfjXT$VS9P!ygEFX1;oBku>XvQ2mX;fq^`_?t zidH+xogeRUZ>m~;=_eH=%D}Cx`Y>$^pL?a?T)#hYvr)E#-%UB78ckbX&kfq&b*p5o zjq7g#QC(?Ic}t;ntHWMdxCsNB)p|Z9Xd}!M|D*7_mvoAOomL>I6p>>UDWb6sY8l(- z9gr2m2m#rd##J)QgYF) zjeA`@gWZ~gy+;P`L=E;|7`)pyIQV#wMp6+cLKrreN{CP#Ri#zmfoKa1KOU-40&onB z4dY5F-PLp*)^Q;4b@lN40a+*xhQq=b=|fMBjFhbA8$@wEyI{XuIfA1Phrb_L^@M!$ zA6oYx`B`0rqq(aAaBsMb6brx+!T=m+;b%mI=5QGgu>jzV0{|R5YDl6Rz8~h}b%SFd zIL!TYC5Qn<$%0_SvqbMU9-S+{gF|zQGq^Pgwzn}>w3=@M3?(T71^^sR#~?^5D;J_P zm*{^Fa9L1bpgGT<-{Uxf5pO$Wrwzi^B2N5`qQ9e#=(<2o+7{rjAu6+Df9^xO_r^{w zIb^EQtxtd&OY|xKp;y00GL7L}yrV1S_Zyk{zgF^1nzbf1MHU`o&P0Q7?9iJAm=GsZ zW60p3#K2Ry@h*imchD1`~|7Be{DzqRP6 z21|5l#-r&6agCdNJ zm#}~c-2uv+Dm?Jw66r-b3wT-l+{SgzE@sZ*;+#{*+>s}9u3K~Nd@nt;UV6H|^p1IX z?BYwmj+g#VUY^`~d5Z5G-?Qy){T9Ai`Mlgv*P$ zhu>IdiPXp}+jn2o_CSoqaJ`mU4k5kC8e7t4EiFAsRiKU)r_V9u>E?oTal-vkduTXj zzGnC>fJKBc-rV2=gmK90u83StVnu%wj$Y(hX6ECW^;-W+tU@sh+H@vz#EXM!$iBWP zWr5_xP@E1g$3_{7g>YFs7?cUU9>WBvAH2W3 zL9iD8m)kL+{48dG#Y+5B=HbrO`)}XuodXXN#(AM|K?A@#jc+Cr#tE&WhyX71{#3h zd^587WCTHU`zk|S_@0TBp=^l-Y(mj1uP&`naF7R45Pj?fB@ktbgPD&(iy?^PSd=|U zKNGvHZ28=`c$!l(|Gmn17ByAE`k2cHESv;yWg;U8?{Zlm*|m$^eD4Qck-GGyU?y}` z4fyaEWSnD(L?chJcC7`!-yNQxk%5IU5J9-F+N9kF%L-4>@&T zZSe2MrGR(aCz;ddHiSn$pP;UN;RDXPAym-25odRDambXjUEntr*9%o$uBte&J^auDrEnCMvR zyuQ>W&Oxf~MLlX2D4ESCFx_RbYvHp!3c}0FW3#1QU=oTF9ecm%m?M z9K86eyJLZ@0}Qx-6%_zb&wjrf4*I;NW?1`y4pU z;RFl3{T>4@y<5cspnAA40EA(^!w~>9Ker@TR3B%HGqm+hLIQlLb_bKe+}Nmtne{*e zrLDcAvy0Z<(|h|)Uw^KuX^9|?C)Wbg=@ZUh;u$Vc9D#-Ast1K1(hiqt3km38glhsm zp^w@x`4{CzuulbrmVC;7m4}@UhlPiG`G;Qc4Asphe_dwEdc^;no{-dk4lHSsXAqJS zO31rvHZdL(61lfpH1&zz^^n&+hsTiWZ|~`BahsebA{D1jQ;v=tx$TH9_E9CxFzd=} znp|~uHvwghF=?fyqR&>@ZLKew@i(2HAjsBGK!Ah=e$>6RbDX;e;QGdF#f4!lcL~2j zp=9;9j$*g7eYRfvTx#)?q!;{N~Ar8!ja9-!nx(02~$E{Bjnzj~2`DcnH zabf5~8sCDFXx0^GK*ApmOAwUjMRk^DOaAG= ziAadyM-x?zor!f2iZ#Cvm5XOtO(B8kH)|CoQ~;jvxv}+QRWy{AT}-KDW^+++ zEEOf_ZL!C2mA&}pW8niVkVq6tJ5q}oE``>VfGpK)8KuwM2Ey0{=h`m=gh(xR-k1U% z&?Ju+a3zdA&(h5gAbQImoVg4^l#sSHG)30uKXwd!ytUz_l46CBytS1UWj7|aDB?l6 zT~yRPW4O^yLl?;BiNg<9*K&EypWf+mx`nQY-hO!6IokH1#^bmLGSvgyP&tu*^eI8LPwhKT`@IO`viNxpC`4oZK1$9E zAVT?Yi-d7+0s0E6LIlQ&o9ZAzc3|l&57aY4zLp{2>vC?FEh|?}pOO+ITgAU|I3SY^ z#4dHi1TsWCrXTC}Z%@7^%tP{Jd`n{XR``sl`OCS4Sceqo^ej>_9m`Ljktg=-EhmeN zJbI_W5*%|cs5rAfBBaWPgAg)KPQRNHCIDKwBfxbj>WHJ8)+GljCU#4k>B zOHrM~McWaA4?#er0m6@03%oh7ZWm}wMW%3ID*@jo)TA~;R|@%MR`IkVQI7(5t1Rg~ zimm$tNM?tW0t(F_+DM6UHT~DI9os=4 zmziv&hpuFU7ou19z0~uaI-yr?=^sbVCFz4rvtiDxhWlx_e4GyzNnDpcDDu$J)(}w{ zN6b!Bx_d87*IkTIDXlb?df{3j8$$v@aydsKviDp5p*wO_r$ect+Oj zI=0hqh!H!djde?Ky!(_Op@ZZ!} z&c%D0w!gn4Kd%7n!c^n2{d$Jmxsj*6j_r2gUs--v>ru3>2rIs5%7W0Q6<BC_o-VeLF>m@snBTM4A&OG?Txte#Eh6Kw5(pWiQ zG|&CRA!o#BQE!>gQ%o#y@Tn6IslyK2h1vF!8v&67tjZ(I@{n|(#osFvRq z)JxaNwsWxT_4o?2b;(h|2p$G_0f8i@LJrR??%XULWkdhaZ@M^PB)!7t0oaH};s%`d zfD)u)tVX3ZOlI|)zueQ{;$MsjW5)a>mh+Z8&3Z3Ido4=4XqVrtTC~-7KbA6XbKtZ1 zpm1|#8vEd+|HtBHLzKoPb?QuxOdLV;gI3Dp)Pc7L=4jkl+8Z&d@bwSRC0@XuMUx!e zU~+2Qhz8yHnL~!U2TffJKd;fxfueN8ZSU}QCm^C582_$z@QH(0A0pimDp){6IjZ~$ zAWF>BZNKF?8FlidQX`}~#ZP;b?LR4*uarji6<)k61w^rHLXG;eghSnfz7PYXW7_%za8V%EEYM@tNn3so*TA z@xV@X{#)DivEkSg$tT2Kv@Iw2uaL}JAW{C%7r;|jcSXuqaPO5Ko|3mw%VSoUvZ(l` z9V~3@ts`#Lywy~@G&tfHGZtu_dQh)Zr>HF^?%S*DFK2(p?|_6CafC%gxwQLFA$pi2 zzFLSKU~$cIWoz{2oBfvH+ltdmcW78Ese?F@)_+feVsLVx*w>MSk5WP*6?SH?iKE$_ z^@t2`jJGB!OG{lI(9Jc^?{yy2`kN)->}&GW;+cbjFGe8x1pwb=y}F4qrdxWB&0c@(r=_vIpY zjQq3_E~jvA7?NVH5o@RiYEsUnpb=`+Bn{>CPL}5bTU1+IxKSA{86bgoGA;6XghMPl zXv$wc!J*V3hnuAC1hdE~;9mt?MkTAAk@+CuaB?3?76evv@Djc*{N)Kfm@H_y&oRKN z8W-Ro3L()c}OG{&aLkov6p8e0;%gmM#J-yQrP(^mHBA{`5E*1nS1%9 z7FnD~!694QH9;O22E{Grlt3hJY}+2W!$nzF4ok*z^n`l(Ox3hZ?<{pxaGL zF=RPihbvPXaFLj>V331+L$o*e)`uu(DIG&qa4T0h-rWTaUmyb+M*=Q8w@n1UOVmHn z&pquGj8w!@c3ft?3KN4aoqV5{QQ#a+idnBST&vR>3km~O-8jADJ0v3my`w2T8mDb^ zNy_fst8QDbF1{{zo;S>B_@vGonN~x@2Rl%@*m%E+p3B=!I?CQ27L6X#xh12*M;&0r za%-jB>Z0n(v3?(p#si*O4v7F>-=R$ZbT7>8rKdars-f;>c+AVe0A)<`3|7K@6~%u z;Yuu&Vog@@ZO7{6t!2Y~!3&|zxlG@n$ntnRD(qMwfPwsLhPP3!3Lmqxp`h>-lq2?d zGlTOk1Ym$Q@*>lit%%Ju}j^l;9K7jVJcMS4pd%jK*Ji zy++8Op6v58Q6}i0*slI>uX+t>%+Bt;)P~h#??zY_hB(BZnvbYXqaFIAT(w(n>qkT> z*b#Q7P$(bJ9dRw(-tvLIfgGb~*4FQCSwRv26-f-JfJN>d4YunGCO}a>NRDaztkzYB z8MR;wl@J?3@QiUtN&~DKN7YBdO;th+uyCEEyf{SJPLnHsGSFR&yBK5Q)nxp)l{5Jm z`U8GO{uZh>RXq)h3i$zQ+0>rzL-i|0#vsoJA4ApYnew2xbnhTd$4E|;@br%X85n|p z()EGKU_HYKCy|7FpA#hnNUolqn40WSZk{ufmw1vRH+v(m+j~Mn>o(s3V&WJ{3R3SFvYtY*cAt(}1Dls7e+Q8#ROk!cHI0czt#uA$q_EmE{@z(4NHC&=h^| z^gExJykk6CG{<9OF+DqAiSx}a#b)DMW8jf-`IM+r*Z20=|8XFh~`yVrnUG0nGX2eB@XD7T?F;tJ1x_9x! zf5wX8DJeU~kGSKP8(SnEaT_GZS5?JtiJqxR<9QK`;vyXGU~oBzYo1os{a|v|o}lLd za7QxDQ#})J<03xJ8P7xp+M|-pxp+c8wO#Ow)GPBn^173+H?u%IIa8PnzHY_qTH7+r zFqq6^`JS08W3PTmK8^QD&kV z@+~_^X--UiLq^)3czU;OI-F$WOt-iv-j)#p5pPT8r=enqz!WNH(-UkF*ViY&`~}Y$ zIG#(!!9#WrNnc>eA!6fn?w}(I3X%Dn-A+v*1 zd0bn%bAjAzi9;S95IsU}A26(kYx0PI404N}@*R%11#hi_jvCiuY-1OaIm(PY>2_w>d7q25)-u$?j zOVB%mM#i&7{)LpNCD&Y;zZp#=806B=6{-`dRKCUwrQj6~!iBcIb1g8%^-N#nV{t99>-@Mp8eyIu@<-PQHJG08n>3s!NM$@60Pn!ny-1Lp&!W@c=_gf znb90wym_o%R7;g!Nmmp-yokFjptGg!tCnHm$*wKiM&ihxAvp& zfAuFNdS~KvYnG=Yr_H;YLviPx^F z*Qzk<+9}r?|CrPw++`iAnp$1^8j&5Tu&oK?u$@a3LGK1z`8f1swd1({s~`RhJ02(v zH5hpkf<3&Z47JTL(%(OsNeI~Ta!Dp-!rN*#zH>h8CtSt~M{X&(0xeQU z+K!_C7-t&k}9&Jv}s=7lK zPm%FY$siW+t*#p3dX0ozd+9yWI6x=eLJiCARarc?&z)vI!hQ2tTI=UtHyha7?wGm{ z*HUolTv$D)>hz0Kw>iByyyl(B{ES1~k2ibM&TQNP!&fEK&+T|7#1J6@4448QVuAzQ z6Y5>~`*Z#K`!Q?ytn5_HlPoh{5mQFq z?{wClkOAEDKKPEs|Br>1`zB=hO@w{wo7giIQ6fa@ECk@a#g7wP!5R4>0UIwL>>lHrj>NPi?Do*{Hd{P|(`R+1t^R%Qfhd6$Rkx<-!Xi zJH{gR>lMQO-vApr#7{6pED3_+)ChRZPKvJjC=ZI}a5BFyGdV9UUPF02(rp)l!h^$W4O6y_l7r3!nG7 z4``Yl@sCQsP~A58cyS|Llc{JOYgK33z!5!`<5HluR`~TYPu#4_XKWdsS?J`7qv0WN zYxWzEO~XHo?bM|m#>kW3eAx#k_Gk7s{s~~I^ei}!RQsAEsDa_}#lo<3heI4u-ntq) zf&XM*t~F7F*hjI!dSNm$Fy*o1ju_jF2qF#bc+p8DwTltxoFn^CeQrx>n@QNgsSA-zXM-?1T4d>jMq!S`aBre?okI92vO%51!&teD%u6UwyMN3HO z#W?c!-8ESxOpN7`1iQ0d1kf6YlL?z!?*j^u-X1{*^~Zv4^2mHi0VxBwG1-dq?Gktk zQx`bSLTV2qT$)QE+UMv91z`Zs%GgQCU^EmW6?)XFK;opY$H%PTtEnHap6n~MmkiYh zNjxFT>K||Ly>~=h3#O1JxleR5aFP-@jQzFH0m@kI>CSM~8)!2S+?2BCB0BR zHg@=8=D+RtP-B$#d)rC>wXIx%WA(jR0<5#Z8$t8)1g>nx6cI6FF2W2Ja=6Xw#liTg zndBTHii0d-&mcusy|(u}pd}$6))GPqU6=J{&uUzSy%1WR$f0WY;Vl0|7);sIVq%0u zYUNrwZ305#rd!FpVx;vtDHDiU<_~J)B*(IpGBlfRDN=dE(7=dg|W!6f;&0{#*_Rn8-ZGCSV z&^|f55t=rZsv4a1Wt1@YH5w{KReO%v>w|on2En*u`kAw_%CwyB2ZNhHtX<}rYMo}% zj{TZ+ta{k3EOoWZA|NH8Kj6UZJWu0x<~{70camS`*a&$=6*t4nN;d*b`C`?OOycsm zOtER-{oK-|qvC{G5w#{;Yobr3YR+4Aw59E0sSuItiK+@|fe7T|53(us`n6*hfADN> zzsCbJ5_Uv)#`fV=i34@rNjLU>zlbziF63{7Q84UI(UoBsBqxUYQ&)~n@_})WeGxjl z9tgt!o+IQ1*?%t9KYh1X?uU>~o`6zw8FT!?8W;o(*PJT-VrFs9X0D zpUeb*%{Zy{Nz?@~FN>GVCb|Ay{kprkw*}!$qs4p8Rhxq!y0F00(<(Jybu9VL7*ztLsI?0n9wGQYG3W#no;7S{-B2MP7QMxQsB#SNTcvRl>vzR*rSXB|lLZ*Gm zXpLC=(97ZrQg_!I%510&S>NADEnRrnmNR?c(4vUnofbu01+}Trk8}1m2Qeg9VEsW% zXNqLjkX$+j3foP*rwB~yR5!)J)}#p9K5bHISVpVYb3Yq(db34zTfA>|i_)Ki4dDi| zyEmo*{`%WOjUck00xExJqb%DuGSX_ZBQcrKIlF^6t&J9f8yAw034qkMd0l`de&rCB zmUCS%7kDjTWLyWd-T%?0tG#}~vlD)4>pG&++EL+Mf-**f}_r;zZxMGhT$K#?1N; zc>pBn<}3Xd!^+)uRYkGa`jp;DeYN~+%xZ&zbO4}IfHM<*9RV)|VAu08@E zroF{RiF|NAw6aoJ3b}jE=c}6IMJo5%ZeQskzD-wFnQIJ&0hHZeD@E%8X=dQ4E}Onr zh`Dj37wAm*0+?U++wkfce%Mp`qcbA?{gKbZOE*P+vXmVF!_r&8Iyv}o61(@#yuLOT513tbl$YCaCXg;!7YV}r+$$CjyK zq(>(KY8X5Todi(Dh+$|>D&=)}kZHu938_3Fk`x^6hzF1}Vcl5z5$~XGY;ZWALk=P% zn25@ss8}qdPDH72fLKmqJ}XO4Caw=adN8x4-iSi<(Ah_V6e7wIoudu-iEPH5pGMIV z!$^Q%6c!|EW*diQ!+9Z&Nw6JcH)jXb=_SFPKw9D<(3Bf&%nmvDHRM_X3`T(s_lF2z zMZY0K_Ad#lu~3$j_+Co1_E%&g3Dhfa7cL0Pmd?yT`aOk!UG3Rl2GaMU3v;nZ8YO-Y zB8RfgJwez^&g12`asg9H{!?yle?nw-Tbv{*j`R>+;UsgPhB9ZOT=)Y<-T@B^6k#XG zDu8KeVn*9hBsA8}N6?N8Gv<#262l^Rv@v9AU4Ph7^RNgGbuan!yaUvXLnW$vIZ(rB z45aXz=*}8cBoH!7N4PGBD`Uf>CQ$Zd=$%j4vSV0cP*#;G>Sq#~-3HIWgX}jE>)s(~ zI_ms1@N^IsfqQWX)!IukjGteM*LqPo)Rab+U!0IB~}z-)ww zz_C;!>LC-KN-Smn-2I^c1ciw-AFM%xA-0_GSBKErTvP-vw(3#Yd<`;j6|P89F^jy zo9J+oQ*+6i->l3EV?~@~2gH(419j(eNau7->j7&0c=EZn!l?ceegm@s{X6mw|Ej3| z1&8>(KnL{W{)T05)aJCqemY|0@wrIs*(9y=g|D}(dzdL1obn0N(zhL`Pd}0Kj~i}< zVWfa_N*$;$l7tuw6^R9`wL*mlVa6dSV@`U6*9lVIxvSK=sW8;T!78>$2v}b>px%gC@78F z>>_=(QJ^f1YHsrG{HeC;A7LjaCQ*K-7na)^`|!X)NlZJGl;&XMbD z_qyefbn9Pap*k<8hZ5a-Z=nAt_Vc#YcTU;~$C z@PC7tzx_diHNfjUc=5aTUBBV!PYUX{)nlwF&ASB4yZPfy3J52)h|;JE_!##@6p23{ zl*5QIVYgUedSU3!4)~2Am@Z(e+6iM7nc@(djEjYBms|0mtBjwsO`f(R%OoEq z-O)JtTk!h~s?b@GXco2)4@AlMB^97vZurWQS<(f)H&AJnuj9IRq`q#e6JCl1xxS74 ztcs3C^QA&*v#@P>*)j_pq(=*NIcmJ>tO~< zcfx28VR&L@{?s*KmFAZjGBunIC*d`!R9d%Tj#xY$+^6x?AN7E_h&Y1VI($=P>-PDX> zvo7yng8cB7P$>G_Kw9#pv^leZTn6foL);<_!`tlqektAECN7MD;yU)dq@nUo7dR8Q zVH+1SJ{*F5qLsa@VSO+>RqzM1R(A>^R>vY{J^Xp9kC!_4{>U=34c%Tm9#TM3XFjOG zd>iQ)YO9lz$r65(2`OaRFW>B@UIa(411q@FjjT_5p%i-VX}>7l_E_tUYz>8+z32-M z6LaDiIbE+iV_)Z_OXS8o|g`rLp%Ip9V5a!-{LOwG|5WodwSn2=9?P zbvBf*!=#;;xha%;D~bp+W&o{DD8i*UQ8Fu^SE%J1avhDhmUMck;QI3R6#u*fPvML& z4bOc4gK-)@Yr=qS{VtYfg{e@(qDgQ)&6401>h&aenNSPbBK)~|i7<`1dkV>ycx<54 zDyB-&9gH3LuuAoDmRZ=SHOBgopTcO_c9A&y(49OwYHurm=qO2?Vg{d`tr42Wu2e`l zqhAa)P?_m$>Bbgdt|}3wj13IK4@n=&!ZuYXbF%cD=hMV0Q-uqwkk4(e`IKYNxl8g!hGzM47{%RxpK*8H=c-TmtT z?N^}S5_)W_FBw~N%;V&L!S`>Nwx@()G8|#lf$4lEw0$ADw$giEc(AtQS1oO}#YA9X z#`{#=W6Ao*4GFwD0@{Kfw2 zoM-2|nJEL7k$-E>$ID)bkLv5igO?8pvIctYdZxkIl@m{wthn^h$LVQ!hrWR;!sdmK zf}0ZQO}VchD-2&v96sqTeM|W=eeQ43R@fz*C*xfo1v9m=X}it?tT1PTlLJ#L$_=c4 zKQD|cp4~}qtO&5C!Iwp$P1rX*k5Bf7HWfFJ9=RvS=t5+bdn zHzbDNKGn);6C_i8E+Hifx(3}PI>VCwKI^B6wb!&ool5Ci6YhZ#a`N8AY!o$I7e-(> z)UtOy0@T&BE*(hUOWOI*u27&bUPt%A2!z?C*6?QT-L)%J6&!Qw_TRdV%Xv7iuQUDf zKj&zBR=oAKUiqgmNwXyr&+eH^ofc8gNSf6kwyUNZz8DS@&p=N#bmfv?Js0eja)XGeTuzVvo8J2L zuHVjAS7f6tG#qR&p#CpYskB_@QKAr#g?9)fp#DFsCz}HXp zWwuh{c^gp%G?qOoz?fEHI&+l>R9zfi%N+`14&~G!m-eBJ*>u}SA6kgRIdsS*F>pTN zbJk`OV_IfiX2VzEndTplAH0^0~l)llwV zLEYdU5_~z5CfXIr)x18BO5e_*ULPjGososYZ;<}LiB|5Yb2TVuHT&)n)rFndKYe`fTE0%Uw&=1Op`38pAKhp6te8B(!nzI zfaHlLzIHtLKaB0*UHh$Z zXSAPDXHF$DcmGDRg)T&J%Z}qtL=Ea4D}bHjKbHn`f|rBCD6p8H6P|M~eU6~wWJHHw zPhO==C#_uV2Br{t1wp!u5Nk&GhrE)|@zPVFPv=5gNYgEhnH+NAF}GXZy4n1d`Ni5X zaq7%R+qSH+)3KcG8AonpxZLcsx>=hJ zY2;M+CEzIUMgXjc?T#bv!mj$d!qmZiWZ_dJ%puN?2DQG5-5u%P5S!d1W;I~8N z_pZxrSj376DO>4&XqNz)Afe@8je1p(h9l_cecJrpt@%sk4wPjQbiqNR&r-MNikgc z#Pt^0*q;TVqPt40gKrZGEL1>cliO`COVLpqGl6NE43zSBo3F^zmcM2K1MH8ze4uFW zvFM;~am(gd+M8X8`3$>x1ZgL4cHpS3rZvC&oLrA+4v8sD;J3V0CYKcjCl`mGL;NdTK{zq(e#Y&iwRDu3(Ly}UsLg;ut(m;?cmB@KGvn&3K)(ahP zlcDtvS3_-I>OQe=MQs9OMVA0OABLl(-4Tu^kVmqi=UaV0OV4+zqMav<<&HUumF*bI zRx+2fI&P~@vVns!1}Xyb7$)21DyahQUVlY8Xhse^0| z+5kYqc^#9XyU^J_L#3SX2ubN9T((k_8hPw!$+BPI2zi;;-Tkrj(&73|tii%X8kGV9 zA{z@+2+8mGEV#wuFVTbTQ}x<(?8=`LjV$aD#=Mm+YnDK>RdFs+QWCetI>*e{ z|Gi;p%F+i!eRyY8J9@eqfOPweDnekdEggX|-iAg#Fb@&4yQ6>Yp2$RvWo+_8Z~$}y znxk63MT}*P9qKsv)%rU>Z2PZ5yak+0Cr0hu-de9Yx&3S7Vp%$TzV%D*Z{GCI|Neeo zI{DwftvCFz?cdGM|NRFDF#(hl83Z>q$Y66j zJclO*5t}#E0C;UZ39YczBzY0d#_xs@dz0?M=ff*l7c( z&$Ek<%L2kqp_8cM-eSq^P*v<#n@K^AL9rAz3;P0@0~phD%$dz9xa6B^uSr>w%eevq zM2S5|@%cYOK}Ba7XP+%RN|G2zG8KRyt>ZybGFeD604H$D`5oU`Aw^jiF38QwPD2RC zlf@PJgX77-7Gl1|4e9f6bO;3OINH%HkrRV+8Fj!UP{G&sMkek#uk9+fZur<%!X9+C zebn9(RN9~y3UPvng|qXCdHRJzk#L>L#|0SQZv_mVihvDsMCSHY#z+A{On%kz@D#Z* z$ZJMFopk2t@V6%H8Ch$>Dqwlz-g(3~8%a@>OpE9P7fQ(*rhA^a3qg43NKk|0tlc=! z$2c!mvfbg9@b$j0H03NfxcaQVZaO0+7aB^EZtV3$W%##IW{;$J~Nl>6WY5r|CkVm)Q1cm)f@~-6U4#VGY;EhxO?7J$TZ7)y#vAd?$N` z3LPc?)FlG4fmey zl%+e*e-3Y6=ec*olVqNOlXQ$C9WM0sG6tMvVt{=!g6$lHjARgWq+kq=RiXE2PhRdS zxeEl7VG8T|oqDepBwjp0_aLvOiO=Y~H5DQcIFZn%Tg2@_P!cVu=2C_SaXc%)Dc%OT z0CqAlcGXRIDML`R_@E;Un?3|UoNbtG?`t@w=l=lJkH}XrlwQz4?LbC~vO z`bEXRfZhfjvSwYWJtZ0gi~RN+gWgp)-$31PrRbNeah zmI4O{Fnktj89t@_b>37k)|Vu;lN&z5b=k>;TQng^)PRt$>B?M~86(<;7p=iMHA0S< z);RoP^F+o$D6s#em|4h90C7bPZUv;BrhBQ7u z1;@ERQ&xV4QZma^LQ|J`Ft0B#D=wO-6>m5M6Jx?JtHLdKkTVlu3?O#1U_dB6*c7zk z1lSVck_E-F)fj$2`t46uTS{1epP7UP@QGIP10QUm1$k(R7$gV8m|AzsZ11lJ;d}Tp zA@T|R6D40;;NNi}AE#ix*h+v2QS#25)`U10fzQEU&N4cBsOY(7h#ne)Mk9g+fM%9J z6bf@JK$?$b4`)MU+d39g-=kTE=|Q|l#_Ca(FElAP4$0uMLQ>k)Qv+q-$hbN^TCj?qgA#~rO36IgeC_tTlygQ_xHH}~(F|&uUBGPF;fXZIY zS}Q#0%Q>S-I)x&gQo%QLlq07?!T}!4!7-f`1k%1$?G>oTGU53a1w+h2#e$L=_1YH} zA;h<6N!|&MoHIjPXk%t^m$6t^o66^(LDw(B$yocw?OM#|DNz405a!VGM^ zX!Y6@2)twk24nRtPV&=HO-QKvwUi#Ia9>`d7=SR4O;eyk+S3=!XlYMm;Y!AUvUIp6 z43Ju+i<#KA9z^#zG4V;pNYd)Y_EI`iG_7?*%3<=Pn?-wJU=;m`9 zc^Vp(hW1;k08B6M3jdD@MPma8{J|tv7mHU~@)nMX7sUhC6&&OV}=-f29;j@Ly3K>=^#-TuHr^}xQ6)T5ldUj;!& zs6mEAKw1apTn+VIZ0*Yrob0G@TFggjg>1`UrE&1>f`-eL2o)mWi-jNt6Qre^GAoZ1 zHkwMpNmzL4ju>Bx3OH7!C4a(~5v#(X_>vG(H2dGO9Qp% z)xy_t+whro(3%Nf#b0$M0(*#k%FIe3`=(KCc-rkMy+?)LYcSQ1`YJTN-u1^EaZovT z;ZjC6ip;S{#M(C)q2we4`0W}OPBziSqLe9O3}M6>v=o{dDN9wDIGEIgGhfRobw%q8 z3;a)#)f#|bGZ&=CchJkoqEq$ zBcBO5LyQi#RvQLi>S({jU_`0FyP;+~ZLPrr*uIxHV7!|n%=2~jY}VE5;I@!Frqk-| z55Z~YE3YNSbeO&-0K`|fi?tp79DJP@SeKo5Zi$MBW5R8jsQCN)MA$dhRDo%4tOyZK z;=-Q3KRP=x{v|N%%HB(NpVDKv$W7Vfw$_t&MjUp0O2# z`?lD{uDg7FWGyWffNTXXOC4^C2mErxfAD|;EASs|AYB)sN`$^YoPMYP2+?mn znY#?B0eb^VGM3GR2T(igFC(Id9g1f}v92i>IuhiHEJack49j4#vAW4GPkD58y zfl^E`(Cc<*pEDmW{u<}tmlJT^TFk5k#4%@k*xm}v`_r8z7C{;2i!P>2m|PT0tz{8p zE(pA|HHm_4<~?xedvNS2{C($)3=z8LwvBV8-rMNJEPMc!STlTD0af3q`ww*H9d&rAi!nDgvbIrLP zv@&Vuc&)bkANp*SMB^mPoa{jrgpaI035*9d?z)pMx(_}>TmM5xK11JMLHoGfOHC8@ z5uP2z0Euq97W9CkwD6^pTRq_O)Ai2~T*lMU=lINdi}JhopTU>t9_@iovlF~YbQrn* zNfR8d%vovp_oCvXt>!_8&h6{=-3&VguJ_megGuWz6#lJTDscN@=fWeqXc=>#P97{J zz3`LtqUzq7zh3KS?5)doEuri)#+#5>fFuh>PjI??9i|>dm&^6klU_TaySn&s`o11w zh<?j=f><9umP90R7gS(KD3CBlqVs z0Po>1;GMGw5F`9vBEi-<2iD^Y_LM((^7Q1vS1ZT90GH!zFbpd{$=7bLypG-Z z=xOhO;MvKMV0fiH0ChfP@ zf0p6?&PV8ODPyy18@-rz&z%Y!AKUaTeOOeyxp`!Zwg)fV8st%dq~o1=sDQ3s6# zTg#nZVLMI?alhAp_z?u3&XxM@5&x!p5}@9TG3L5pOFiS^*8T^JZdiYK;OqU$)%V%^ z!>d++0P$AF*H{$S+q=`P`C!mMBetW}w>=g3I0`IAE-e95?XHjZtN$wnzV=Z5mC*kI z)VoU9C-&R_%2)vRrfT!6>jV1%eA8?zLSVY=W{>vucKdyIP9L7#d34?wcKyTD_P2+g z#A!Nv68ORo+a?v%whzuM|1a6rdE=XbtQNInX!h~jUvDiaHV5{`14X|J4DK(gnbgYZ zSp6xCwfVopwtp}Ry4G$-BGZcNJ4feMKKvC@)Z68LG%CHMq3inHXCMCwE9vjvcPu)i z^nCY?`RAXuMU;2$*?;`xsj|kNoA+LP{{Mz;tqX`v&a$bJ zbYjZif})oW3^mt%;vEYux6c%j6N3aQTkq5wyU%wPK6rVz-dgL^2Z8Ua_n3B4B6>xA z+=Ui5P(MmA;l+b?uaE9sMJCT5b{=^g^-=KW$`UK+76STTpJh7Vg-7@g;~eE5a>Cs| zBrGsOB*Z@|%6}J8-`M1T-heI)`2T71q~Q=u1_8pP;8L=Da~@7yP#poP%S#b)Xtbs{ zQT>0MdC32D=E3F7Wi?IE|0~QhH#gt8(?C;!=xCz7&rHu(TmFAkc?VSwIhyWsFb&yn zMF}T>@=lPsGuB|Awy6X0|KrI!y2}~v##iO}7(02vTxf95P!so1zAX za)i8}9C>ITUy_#?;_d1ab~rH9GdSu081kZH<2)i=sx5Uo9F6aIo97=U=LLC`#~mt2 z3hxLFzjWAhfkyqD8nGJcnQ3K5J);%TcqnNiTIh64Nxkm1Z#x_L{=6){JTJb3L90D; z_-}T?X4c8R&7@9VTD3?#EB=p2FQM{sLeBq_NRM%~A$Qc{STitf1V_;}#u;)t8FjIwg?-nt{UFY?avqjjwNHVOcN7hUcEM(wfflg>-V2>)s*yhXM4YMSBEX$V`5|ICS+cCwq5{@$19LwtMosKZv}Ytt4R^cI#=iZsD+i$nKc= z5B?`MU^8Z^zkRR^7eg1~^EDk>e(0}(C$#=`zq6BAr^2?ZME zis!gmEvDk9cW)a-{?rN$B~4?g;D$}^K=$q383bOYbB9hNU1*D4?)x+PxeffMoAYAg zg5^|p{Ihju(-*SlJO2EA`~b9T5NR`)FoX?jK640e%gJa6W5chTh}LyXoQp1Gre~o8 z#EeCsNT!D`mLJSC&Uw(GNcwRgB(K2Iczd<*aY2%YHOg*=tID??N8SHNZu9{1l&p#K zIEIbJzN@8S-xNZLNnOnq=mn2_IHe_MW>2NXA_|F^D|b|W2(o=chlB&$y=8llLx5t&A_b;Q!akgq6lqEj+ec*M z7jW4>#9UD_b+e9G!eqcjW%(TPMdh@uhXo1|burTlPKsZvC9}}pRaEV!D!S609i;r2 z5W}1c%0{|{PL)7fdA>;Y7+763f#>O6#ZRO-x$h!(P# zBxZwv?rHttLdLLD<#FuK2!(%BEshGRorf{X54=-9DqevYGL1+LhjX?G+cTsdeA}P^ z+b?66E;=H226R*_s0L~~t}A&$$_F;SdV3gN`tG2-!@1m1Wa8{NwjAwz8Qt;kwZTMP zw+LzMR#xYS@RoHw$nf-Un+8KcQFq38IhI4N$eax@L|OCt)EpIZ(lV!&ENkt4E>TYJ zG9<*(qw<$yM-*e90W8Htwcp#tE+@EaO&j>wmCPk%)`m^a z3lSUF03m^_D-)???bw-%65;sGaS(7Ge-wV+72TY-|z-wBqp?b#hG8zq2Z{hJc; z@svB%7alJet(g03_+u;OhWYllY~?*9Xx9Zk%U+SJdNs2@YnSGB`kT{5XS75WSguJq zXObj28dxvM#+wMcv8kMUGbYK&M=-a+THTbd?;yNtRzGl+aTnX>Glzekg@yV)k!*P5 zMCv~zO}Faybv%?? z%5GARe0g5Wjcb}A&ldQN&xOp@&@)=iaDv0ob;-`Wy{YK$IrJKJZ%r`*V;n9>xiTn3 z5se|y(dO(XLVcKimW=#c6@ym5iRzuhJS#G%nvJl&bSjje+f%0lmxOJKx)&G|V8 z!%UE(OQ#&kg>nSO%f6J48LCgCCA+g>l0F1f^!7`(xep04-Jqji|0wdm#gce&!NsOM zZ}5||ZGPQWfyZw=`^tw*eJf&-qxE*Wv;JP^$4pIK>6{0- zg{*a2?V+mnLgqgDs`}hMXHJ&ynrZ`#4pXO#+UUlEfnx9*x|5FXPTc%lO<-^OK@T#C zR8fHih0KWy!|}%AFk%kuEI}AzGl8R5g%R;!rg_N&rup3t0-l$ru-qgn{IG+Z@3Pn| z_oF?R&R(j@Tx_%a(LpY`OCQet$EodWW~jlT~2Cl8!Xftg+Q%z}%Ed z>dcmHMAX*!2QzPIK+ogYQCB}1U0W7}9nApYNE) z16^#*ND=A|F@AVXE6d5|*tZnX`R5d*_@E}RIPzSt0Cf!eM(}LYp)c)j}Fs@m*)<0-p|s z1fH9es3Z$Eu5cp)hZ!UM4fb69MgQ$eqU!f2vA;SNkg`# z4yt_#u$xT$h}ry=YQ1>aTT9CI>?oalgOP$W6+V;S(uwq%-gQYM*}Ka2-&B78@%bG6 zYu;??vd~&;-}n>-IQ?-ZWCy)*Q;rSVDCWQ@bYQ(`nInP?jN0SpXCpHVVCZZSU4U}e zl)eCOrx$>_C(gWP@BD`_Jb%dDSMYt}wZ$j_aLWbb5@^x)L9q)@{2M-?0YkuIy=H1U3fBw7xL!gZ<_ixs^|7@xIkJ^%T1NFtZFBx(y0P zP$vP-C$v=OGpu`ADB26yat6!+Q_hcNjfGqjEa_w9#Sx8RPF~l6@lRp^`{7QHUoD@r zF_|afZ+6{7Pn4bbo=5tp=E(w)>+Bx=Q&FSw3%(e0X;#q|N&W}`%wd{80vucU>PBQ@ zoBuCAEL?7i{mXRl=&w1A9A2R)U_9tA9L>EUxXeoXvh&myz#74B1V=ZGk+c zOeE9)SA-8JFup(IvS`4c4=qRz3OKVFr_4f5ZUUQ2$OtMF%1(}8CI&G1dxVTA5>jkO zYBm;xmXQmar#8&eBe0oKcqBkcdPU2MVnOTqnQClg1Sc(Lo0<7xGDB%bm}d)1mJ$}B zB1b(GwJ0cc3Q8pi(8T8?GEh{i!CCKcT*$GFR`OIZ)YuxHO-F7|C)b$)xFmjVGfkL_ z45LEzn{iO>si^7P6WrVtjda7>3>`{RGz!9@A%6}(!Jb>c2_@1p!>6X@U$@!26u^b_qgz7Hmnk^p086qu($gY+O4Qqw7Y<4{@z6XUO0NPAOY zxLhc-RT%Gt3@XTPnn~8@06Lr`quLY^)x6#US}q$n!N_&bw2G48hVEY#;57R z%&a{c3>{v<_!6WI6h)Eak2oQ-NZDc*nDJYqXJMIO`@WP}3C{3)Y-H})+mvZkwQ)iEk&a4#85%&TrEQjnThvJ zjaiW~Ul9q+08BY#+l+IV73m{aspOX&&l85UHD*h&=o!~4Ke_XLRIv}&ZFWvT&P zj*BTDo3bcBVGPAnQ5b5KJkXvcr)9=2St>Z{xhz(gg06Y1gE6nHPRa;lC8W>LH3h4) z$mMeyK)J8?MS%W%xkYIM8Azd77UkwKI+Bv|n=~$lVe>foiEn7ui|DgLbl^qK~HqR-6=lq%%UFj&T zOh>-QHTt#Ip2#gWiLIKhymIscJ&c5uk2r|uWu9ma(~{7#WLKH`^*N;WIi2fs8R>I- z8uJ+|y2BnYp!%pVgr0Evv^VVqq=Ya{=%`jrn^g2RWq%e`!lD=DU2u(XaZe#b=1MmD zP8|AZubP*Qb@;hhELHtgjFS8Tg>iz?y8pJ)2DooDQ+G6=XJE`mE_Og`X{Wt`j3Qq1 zFoY|`5a{I^4b9fdlW0;UYRJy@GKI3Mc z*m@&$cBMnaSbyU;`>Jv6p3CCBf2>-?t*`xwX`|S-oimRRtIFo=#4Vy4BnH+h33&n9 zcB!KhoA&<35I@(6X4zc>9MD84NX9i@aDTh5EncNM=34&a`#uM;{aZS*sf%RMGaiaRde5>#i-y_KX=5_=V{)To3M*qu zf5-3&<0`rWp6B`*9w^2d`qDO2&dvm|VxtDhL30HnkEVb%j&9*=oe74}6c9R#Pky~7 zgi`mbB9D)#i@apZz*(>xbkS$*i6(aO6%ytc8D;RL?<))KFd7q>YM)?(EyF_@z~tek zYrojKC@0qrFg^_nXax}cW+1(#tX zm17`Kd1N+=?6zs8FtLWUrQou#YBPpvs1|hoogQ=W&S4XRy@6bLsvL}hx+E=6VcaNV z&)KiuIzuIF-^m%-^FoinT-ZXc=SK;A;hA~SaiJn?|Md5(Z z;7R-awS$_8iyh8o$i zL+1k2XFYTh#fPp=qC6i$`c&~1=JBFd?7cpvM;l2;iJNn<1(UeS75~x*Z0AGxKJQi!En9cvX zvTfvDM^aJJfrQX2q=^9OhHTs3OwX9Fao+RE2d?xDph(?vyLJ1LKH(7LUUp8pGu;=@ED{Hjz94s;aL(@%aca8x zM0d?EcNdIj_-SvyTZ|BL`{aIqqn1{WXh=2sJFJ^4S zQZ&MiSRYF1*TR?o6_Id7@Gk0e5I)+&ax%*Su?+ z&TK!TbnwMDJMk+k-FAjK(E`?LvJ#YW8R$k-g&l&6NNslWpuc@2ZXaBA1M$G+%z1mi zMSHu)*WdhkmmK8YaN~dp2^6R7Xc2OLZ3AZHI8M1+r7k*(6726+a<|8bAQ5;sFn0F- zL#Ox!hm&?M;^U{o;G~+x8}C!)OXkCxzQ5hA_OAN8^;nRh=i`@Vi|=zma$gHJe(Yu+ zc}VZVYj%#qr{{o9iCfZ`#F^)AS2$w7b>M(9`^COD$R^hUzaU^paG4V4KU?>00Tor%GO^-><5+{|b9Q+)bDLrLyzGK5a)SfgkLmevh04&l;-7 zM;)}>LoxBc0;i`!2_~M8t-d$%6N`6(@Mp07<mR?8qV6h$#Z&+y`@Rmd{19UBr8i?o4Cb_G4g-)(*GdC zk1{$g*}|`Qm`{5{lB{IB_IL5r59p&Grmyx5y=G~tWCE2!l5xf83oj%~(wKjLOW2H! zOK#qd*eOsIANPmdUnO??oyxyro>dea>`=`H zxKD5vdx5?Ahl)w~y*ON#-xm8&T=A~0hcpmhGXQvJv@fAh+=ojw+_P^qFcee7&*!1F zgM<5%kcxnGdLG)a@(mrf`vy8wBBUMszeqaku%`a^ji0l#A_il0k8T_(p*TuH)PYEf z4x~c{(&gxe(W#DZ7$%_T2niJ(s7NRd1O-I}MaAOt<9q%7-*ufocH(*8_x-$XJ%0k0 z)qegxAafuV#+^b`Iyq#+aivz1|Gvac= za$ch`97MRZfy9%Ys+%`9PVs$N>g(VuAy0)z5U04!%HEwWg?2}i!Biym0QZ6I4FcXf zzlvxw$bWO_g7lI7c*5VU?!wDFOX$z3Ed5hPE*v{qZmh@)S5KG}eGoJ92TX@kD0{3! zS>sYy45JV6Y(f#VnLDxi23gz9Z^zP7kn8=Bob>x=jw!$QJ}s{2i|8J@CSYZiRjcAl zo>UGQQ4V{XNC4>1CXtwi2cX4M&(eWN!;-X26h3uq>$9pBSICaSNzKJDrUteV^|VC= zc*x^=VNBual!XWs|NOfslwcP=1H`}5N(HMzbS8WO5%j3(CRTPlLj?n*avKv?E9BI- zw9*6MgXc*`p*ux|0`#3}Q$VEP)N2E7qZKJ2%f=p!Xr4^A;?Nyyna)=6dgdu3QKg8s z5(BAbru=!-YPpI@T%T-qHTw}j);*GM?sYO`Vs2TJJfz|2!6nw0V^yO98 ziK_cD<<)pw8&5H>FcB=>D}6orv~)C`Hl8b{VqJA5H9RIWtzaT-TG~G143enpB$5@!JYJm2{OjioVI= zVg_%8%UFjF6yy<5`E|Z?(yd2TeY^Wr14;s+cqZsmCb8qEemxhyTws?tTHe^YTD`iY z)L;ZVVd(R~6F+)*LuD=aloLl0Ud27(!W7dm*QW-=<(2g8sr|YeBFn!Hj>CoSMpp|U zVuVJOY;}&GzVDLZJEpIL+3vdO@*~#)?chRU4hf7WQ_&JVX3|R%Ee{|>DW=W686qB)76;wi8~DS z_d_6JI;A^nB+La!#z;D5-(J$czgKg8!Op=a`|$W@{YqZPJ3RV4pWnKkmimMh>9Bt* z{9x1Zhb7S&v7z-~dyk&xLXO!#hF~!UN8r93?~|-u)Q!wS$Y$KwE#sI79kr+GtDfLb zbCp`mmrbVKjNfHM`ASZ5Q;=q~uDtCR`V?9{Y%iN<_oOrsliAZ}> z4!8o}CR75Kaz?{k82V}ZKVZ$6mXh$H_f$L~Q+ah$A`zLBh38Nr>WF`!WFE5PfG-iD z!>dC^ht=!(3bRJ#Rl~CFB1WMla^}H^?rg`-dcmHo2kL=gxo0-(h3})s2svSS-s%ma zPqW5!+r#pMgB!%(pvMggiU6(3dQI-t9<%+>D%V7vAPUGZ+N#t22SU=j)J&DCw0+%T z1gpD_7SR2Q;s40XvxK*_nqWrBW+h9XG_x|!A@hXNh7nv~z0HYEa7ODPcLZpC?{B>% ztaqq#?pB{TIUJ=@`c_o0Okpo{bS-pgt{NvPujUbh41MkD8)s4_8h+Q4H+EeC0QfTl zhIxUYYtW&Yq3(|f{07XwnSLuk#^KRC?43u=%If%g(b%upCz}Ntp)-?)6Jy!^anpwq zW5=SrKAag70C2JU-DZ5l+4(f8FGQrOrg^3TCiZgXt*Hd6XiF#~Ks3ZVC`|b8 zs2a)>zh_`pH@7t`DKPJF1lybcbHYk`kCDm4G82qqyp`M9F39>&-)!3DdIWwNZEbCK ztj2%3e5ok=u=WixO5kn;aM+eXeyRYjzqF-Fm|;aZ6JH9)%v<@_{<@j#s!L0obdtTWO-nk|N(^Ma%ocH~;$f$;=s zkTadf>F6zyZ`GR0w4?44QbVUIU|JIB3X_%0UvW=tSaGwZy3qEu$YIr~@%j{X9%>$!Zb&OVu&m={F0kbrs(hH0qr=1sGFz+Fyh~CQk!1bSe z+BFwMr*?D))?n`abvtv7doHtz)yl}|6 zXYcHaV8uP+@&@H2jC^uK@9EB3ZjM%@E*Ko>o&6gr6N|}-5AXyeMo#oq+b7UqVfHYB+VqQx_++-GMK@|EO!tz;1gmZ zV_8GfEra@=CKuKO{Hd-FeLMeXD~CIvi?|Df`XkE|BE(x|G(Ii`9kM3E+PO^AfL}XL zAKJw3y5E`<@4FMY_QaGMHf~G{nHWdW->30feRCPjij^shL+?B|{!l6H(UFr)dvCrS z-=hCr4YULklU?6*q3jhV$oKe;olGDvtRA_>M`}9#!Q5TUK1Q+EE^%6we)K3lMC^M~ z0uW+ie4rqY&x-=1{iSi;{BC-Os~*%`r9*zLiKSTpvh0S5OX5W{5h6#1ja?eeJ4LoAPgdxoLNv&bNj^wP5&*obiXfA8+(CS5t3@hC05Sw1 z73&nm^;F0JI7l{Dz42jRgD^GO;KyRf> zu#(@;iSnfsAKy*aS}#Tu04zsI(rzI_h$fL;ieJw*W&qR}Za9-H6;|@QQouK>gf9#- zrW74Om-zO9`^*&KSbYUEKjB!guQgRGD_yuheRw9@+#h|gAL^+rjoe6pNWkH_bOg-| z$p*9>0U>iB))1X$gGNv*_jT?#6?Aw^QWQs3kxEsGO;uSyRYi7HRa;ffWYy)3s;eB; zbt=^jHq}i5)h&D3)opFn9h22v8`V7=HN7e|*KKNU2GrcnuIX>9xieWaxKVSTqjpH8 zcEqOkK|t+zcI{+a?W4&eEVHuK2GArRMM-FP;^o}yFfTmvI2DIy!OpW_b6bEH3&zR9 z8`F!H*udRUjVXrYPZ?OSYoSDInIYA5Gr+0XFHN^~9N+pRc?baH#y zcv*>jC5?bQK<84zBln}rF9UFVl>hZMWf3l??uViYNH207qcK%w8)&|v!9$0137|F| z5@rJu6lkB$pNVZaNC?z!gpjIsWFY;0)s>!$4Z30i`gnv99hzvi{8=iBS`p_N*4fK_ z8)W3D&}0d$29Pqg=mQMIs||5A0x}C8n;58a>&l4~AcAvW3v`%XRXqWvs0SvuP zhO-WXt@i@z;8^fH3oaN)g0o=z`m!hiiPQrm1KT`R(Yyf6iw)zWfn{+`%QhxP^fCom zm=S<04Agf;EH-VX6IJB_z!*6n)`fv!5NiZI3kf^ei3H96P~ox#b+ zLxrqV_Zea^V~Xy_4PjDSk1)I0nzL080F8;@up88@)sw=^wSL&6(FW;Ip;a`1W4IQu zIg^OIdNf!x8CJigsuKjeO`|U!MAef}W)#;`W=^AcD0hGhy~AZ*b8wu^>94?L>wZI- zgyO(w#ckQ%rJHz?y51b`8K@OIIs8V1(Vb>2L(t3Z=hlu{(v((!30WQm#?sz`4La zZ35h{txtezu1@HjsO~Z?DwC1{-1-lm)9ET~EK8|`65IQQsSwlwnPZ`SHL9=XU?@pe z#<~^J}ZpDW>#S0zv{9R6?BKgJTGFX{3&qzvwrA!veY5Qy2(M z0$Tc&w5-u>wS>!L)n+*(v?#fGiBJL6K?lQ%)bWVnYmh0mt7o)DoC@g>8XTxy)g5_> zVxxQM0?<8M4`a^W=3^~~Hb?Zxt&wstbH-?y;~gW_Q8JylpLsd*`1rh-_hdU4oZT!Y zZ^jvL@5m^KBY~+kZAR2P{n*ZjbKM3E$dwy3CxW3AhbdLG3b7?%01Q7r{$ENXCLZ0X z0~VF23e}%aFxR4xMXD0eMHd|^LGnNQK!-pSpSFy7hL33d`TgA3cG1#ZB@2(8Mf6CNJEzqx;AzpZ@wb~>pep@ZwuF%eHg zv;kGmm^NihsTWRzI2+5Z)a;iT!HlRmF9#ZY{*LOj_w0Vy{|-%E?uF(8_pJ8ubyPSX zbwTwbH*hig-s?@d#{)gTHXDXpQ`A1xr^IA@Xzj6nC_369qE2f_hy#E6w{l@StBnpMW~`wmBMXX;h_7Tf63+ zmSLh;KN(*|A*vUfr}z#mm7*Fl)Cm9Du}0`5E3cW66Ye+Ykq$<&&m4L?O zwC(KJt_O)p`}3lsbRB(P=r8hcG3M9hE$DY;!M zr9QbrA83wmnTs>^QlAU5MX<4{#Q_W;=GKP$4GZIHhlp1=S%4Dd^4R8Me$~eUs`bMOmvQa4 zQn5>4Jj6YNM$-63kw9zor#=J?_UXf%&npnS)w49+BFl z$teZxk3BX3eM*9s@iJy6iu2x$4k-TMGW!+CN95jp-ObC$K~lT0)1B&j3u)w5^NE(b zj({A#>s}zhRRcr?mRQ@4wlf+ejlubWUUL>^kE*(&R{$J5n;PNUV+c?+0?s6L8SU&u zn&F{X7HEEo=kyFHfw$N_$nQYY`@`guU>WY%>zDt#Xj&lyIO~gVX}F|DRGo=9?Enn} z9!LCuN3Zo9fQX|wxcd_Lgv#@_>cv0%X8J&rH2wD4;5zqK8{X~K)#}R!9^XpEKc23= zH5@U*!-dR`aQJr^ZoXyv-@m8L8e=xS4R7OH*Rx*&JmuzumyC)*3(i(+BS^{=;L5#2 z8S0FA_My3EsNsis>~Rrl&Yhm;ee+yTyLqOS`N|)sbdhO;LezUFH#+3RKPm?;7^|}R z@iTkD1Af#_N@tJW9H98Aqr6M?^3T1T`j>}Kv5!RKc^+kc$sNIc_Ys9TI@6=k(k!8r z?bvzqFWF^>!-iz*Vc_NWaZ1};vn9YIXOvdSWewugJ_{I5Mt|+%l01jz+q%sV05M{q z*uZ*p;~1^4GL2Duv;%jb=L)U>gJ2e?v4LzAw63&3*1T!B0bTRJH$_vBd^1|15N&cK z!;iIUl~v4g9JtqzoV1$wB=O>l@kk-UPC5w$i3VAGjhQNm1^BxrdIqm4-;GWt%9ol+ zTNIg$hV#vTU(y({a_o@o8o2H>y4V@~Y=FsUPJ^Dyw?1hBr0!clq**Dy z3@z;2=K1@2ffhL0$n(8s=xP6z2r}y3liG%pznemTw-o+v>-oKqlH3)_SeQxfxoWAs z)sV>sPm+G=rT${pfh6p1IxG2)Xl<%XhAv}Qe6=8jopPGXMnOA1Ckk!9uzrt;|#80x}b9ew^{9B^$C`~J{{)5kI{nzj& zzun$yf|BZvLK_-N002ZtF%-h;A~Upvcmz@fa7avw7MRX+Q0SncRzYTVT6#-*V~Q|< zJ!ov$sV+|EHrm1mN1)MOWz6_p?&OTU%kaC!e0+d`d#4b4i^%AtlE3s737Q zQ}E@yl+<1U=ZR%0E;i{MlFgC+1!OPREd2(4uCV7$(ha`8qmJz}cL|A{dMxoYi!t;l z);kBd=EBz_W9NN!JUTb<(L8!p=X{DMqSs5D1)QXzJdM+q? z*;F!=$CWKr!kM@mR3M%FOF}ta%ajigFTJ4rO!#>UoUrc_Mc7P#>_^{WMkfzniMK!nie?94<^uM#50NCNk48L|FgUYw zm1pZI_oAle{XxZNCrEBn}LjK(l`-FglpU)w88Sv^ByK1xW9 zRf3nGG%NFQ%Jn4#Z`u1L?f+PB;Q);M%@wF_8?8XW=rb=53SO{Y_QZOny6RVn z&eBZYHLhC|-wS+omI0e0q?EQLTc6tLk|+<&B_?J)QqtF*pwL6VCz2frBK2s+W&sEJ zXtt@+TB+l`8)r+?^B5!C%L>JLjySsPSsAB&RYgS>zq%TdKFUZA64S`afsEHXEy;d}J6L(RPz$iRta3n`~MM0=;j5k!CPEG|6lhSt6juKKTi;;T?-^&U;f1%4a z6y*nETmk8YXBz>(iOYe+ZxqhsX(#Ols`3I;(Dv@5)&>UzwmY5oZf)`|v4KvH?j~nj?2%jejj0b{NNU-R|605u`l`)9qU2TF8~Nl5C?~}$ij2zXpDfU1c|hINMl;+YhtBP@Gh-oWO0h3}Jd}Y$pHg=m_*$lF zh*$TsdE_>n2JmN@aw~3GyI->aZ7F3qw~a?$w)XHW-Dd5I$;ZA%->O)7&AKf%Q-N;Z zs^=az>))Q7x)ArRhRxk#FmCfCyn63j?Ydoy(aU|5$H2GCTX`*q-rGElTljWm_i>BK z&&j7rzrS4tFs;P>h0+wU9Xk4WtC{daR)*0|9X7w!LdkYI$8D!xWUBS(!H3fYaXSro zOq;cptwUtLk(U^u5ZnOXd(9~I5qlZPhEzSSSB$~X;5JKkz!Rx~+#UC6iXmkwWfsj+(?*4Y6 zCq@$t5_V*qen+5V)Mz;Iy90%pa3=D7gR0IQ77~H|aWP)dO?Z|_eP1isY<2hnu%l(2 zh;?dt*}kdL2fQp-FW&x#zXOW$zATKdB^d$v`>l;E`@K3cr3BG2J-Nrod*mRiu_B9Kon^wV zQ~wfisE1fIsPnvzCu*I@xk-i@Z+UVe=fVpA0h!5LQ#V_zkMlU4I&!BKj$tCGPJD|g z;Eg)&y-$%JJm!zhaRWq52taY}vdiG_q<4H_)@i_iA3MlSo#CcF)8lChTt5X3D{jV~(u|^#+l2ox-R*L?&NKqc;fnh#rsPUh!~4!E>zXqt=cXW+GKzc)vRB#Vua0t6fDZXer|+#Ui6 zD^V{OR@^JEJBNz8ouJo zND%+{x%@VHMNTL}hV&7`xjKm)YfC+VWMqob@x10Dz_S+Sri_RgFQrfR_MLpGLA?M` zJ;4#*smm@nUE%wW61OAo+hzDDi#*66r_K!)&DrM~VX`zwTc6r~9?bCUOH)W?8oMuy z^Stixe0h7pb93buL}nYFOBQpZxR>X|-Y#&C-M^=zMj!nXsFO4j#q)kOT@)3J{{G3~ z**!MmKZ&l)t6y1R7o`5+SCY=Pn(K*>GUI>MxkOM$o+Tei@A@d`p*y^nSMy`r^#N47 zu6pxg%`?@&@jD)a#}tCkZ+t#I12HkF|4Hm(E?p@8Qx3dTNDMuGb#_$$&C2rwqcy^R zQ^upC{*~Mhfon?q{%zZTU2Qxxo#NWU@)d=_`o24*Gm^G5;&#_O3E#t8h)MAZ@feo~ z!!$vD!oGZjdO?DX>n8wPU=kiKiv|<$@Ui!pGjH{bpQ-JkE@G`<9srDxDz*)`ZN=b*pNLB7#vRmRWa@$MglK(ClR*g1m>pKqS_Uw1!&@YUP` z)b`ow-vOyv0E0glwVry)B`M)n`uz;fN*bWd=DPF%Wlo0TX(+|k2!0|engN`=4PF(= z3BtL&$}m%d^ar&At@MBoYwjT^7}pQ?d`tiK@u;Uw|3gH_zQ;I?IZrmFLAzcDBc1M8 z#tP2*in0LQJLGv{GUvf_t<>C=?@ky1;KiTAkoF(?{2&n!UGCvI7V0MGn@-J*Li$)) z76bvOo>-sJZ^|E8%WNw1`kG$&F%qT(#IIF2eig}XAxDUNDshv8BMI;bEJB@zN}!=) zn4HQ?)PB4-3hQEbBW0==HouP9Ql#?j0kG|H08hwN-3IW)3u@R)t&IF%vw$e}5(Zza zr3F~D;?&xB;iO_!EkM5&7x5rfeYr%js$^*k*nVHKi1O5}!ddk1E1X4ITA zSW4OD#-e#R%o{it!YEx9h})4*aj~&GGk<&okp>evA;Um4d_S=-&hhG0RF{>k$`j;NppB;Y&&If_ZT3amBjgdzp*zkyLCAqx9>1*q^6!%D925hx;R9tn(C zp;WUpAR6Lwn_YfvRSTtBLkl=cg|mjL4^yjt?I2EV0SRQa8AWDGaatz(oj)-vCs&S?v97o|U6od;~^bq#S ziYS0%Le31h7!y(~K{!(owglJte)x8__7g48ii9{#uLX#3YXJV|7bHkVSW)1W4uB=& zsudd&q|niBXx;_rC<##>Yl-=N^#}=JMSz4j0R$0_6|2dgtV64UHYCIm3TVSdqe*qA zN$_-lPGnv^!l+%mJy#hy_u=b*pC0@Tw~fAx0Mg$yc{k zu1FE8U6|mHSP?t?m9^}vkGJX8R8UW>Mm7#E@Ed|yAXkox1?y`5F9>ArHJ_&Q2{7x9 zuIcQ|W>WP*Gd$Q3_mySq~DRKLPcJnbldUbl*67Ku*KzC@dNa#4!~B zYFqWgwk6;S4+T+k5%D2b1R`8%%RwAsVcR%s#fa@<1hCO)Uz}301DdslTE8)?yMHy8 zn86Qn0!3|nLe%DTGJM3Xb9uWCqSXOJaN=PLf?l6rRp0xo(*$U2FJ)w{9iJ+m37?ANFWH=CMOz+`i^@x!e02gq8vVSGe zBd7iTFN`x)!H$Ob_#3CouAGd6ujgEEWmTdW97TpIvh;c>@w#c%Yc=#vh|#O~2U4zS zwZhk*kG~Zk2+CG>vBZGi+2FWqui>#1GE5W~8EMbpz_L)8;s}+Z4y$ zW=7b0LoX*$#|7F?5Zd?LfGwMLS0aLseC4&PI_I(WF8uwLkC<~T)Prcwv&{RgjQjt% zfV_uSg@W#Qx?j)0*J~~Gjn|Yl(KEg_X4!Xvpm1Kc#9m|6WoCqq|+Qy5f075i?{{!yOCeHK>Ix__j zBCEBK0jmVgx79b5^M>^1 zUN)4=k++Vgi{fj1W7N=OM4qcl*^tcx7=_NgI z9(?v#VATw7!9V5y)#4BNz!g`BKvNs)9G{U9S}sOok`vmtCe`f4yMK$V$xdWQbWNB| z9K=HQH@OFIaQ^^7m;-Dn>d88{ifFdtJMKx9Wlm+8iFD$D_u)_P)X6I@vkdoka6iKK zQ_4!nMEjafojW=@SHqsFE(3(~)8AG?h{OAlu&3!;+BpWd<5_F;896MVzJ~oRPf?EZ-e9Z25>Gk zR^S^EsLwNbuB~HR^x~sB`hKu?a3Xlml&`Qp#1?#sNJ9$~+-7AqVJyXTSb z4Ka?YcplYWwydStIzGo{bdB7*UZy1ZJk?{qJaNAA@_hB+eC_M`EC1%{k_+{R7aBbl zniCgVFE6wYE_A+L=>E6BkX*cWc=3kE;;qERzRQaPgNt`xFW&pN$jrCj%U^NvVLDtr zUur6MN>{H?6NCjYiyiA5zr^B)T|iLPWSmtp*Bn3C0(t7fCbz;v0m_2h80gHHn@Ht&{?GKb3I>fU*F$T1sfB-4#HY?(>Q^-rjkf|TR)6F3%k`AhJf=JlYKltR*3qBv;IjFx6 zI){w^9u>NYjPt1EM1S@Y#Zl1G(MYR2xm%Pw_4UX5fWLzoq7+Z0a-72b759_hUu1FyVt<}H z`UCSODa-lWnp5tX*4@&ig!>?53_udJcrf>KEHS}%ey7ca#oKH0_%_mE-u>y%py_Cs zO3&Bd*u+>%>Z|CV=|IwfBY%*$k%@juA+#)yrlh@?7g?WM*dpihJ!g^M-~TCY$@`<^ zi;CG+z5N^5N=iNQFP)vJ^(H+#vM`;HIC}NZwV$63Ulj_}f>nG;27r`Dw|;ezP>Q?p zAOOzYiVSeDfj!s!O-Vy!Md=tI?fa9w`?9DM82u=cj3!<~n9*l$eVu+6Zot8uO_|f5 zWeM8M+t=&)kS_~I*qYsZ+%=4YSTY9aBa5I zbof>?dE#ai48~-Y3vDxx9W!)^u{P*07Uc|zGo&s8#Y49OqE*yQ15xqw69I~Le9ujbpLZq`l7h!# z+EqIg4d`Ph(p*n{cM?On-;S_Es-$rG9-fxMz3|PKxfXIle$DzqZJ)VAUD9d4_0#fp zhd*LY2|un}Oe#@kiBQhV=^Mp<;I8BMslR$CN)sTjkMl}B%Q(8aPSO7V+B{7gn7RU1 z%}X=~Fgr*E@!g4Vo~ZOK8(xWd&L1XUjE?TyMQCVhHMBFcPfm>nw*R*-vLG4TBnimC=;}U+^VVdax%99 zfrB%W?Bbazm4x<6mX^272$gX_4-4^MnUJ-?uCrdtV7WnZuKrTi`2wTQ6Xy#}_R!um zGaei7qN7sT-o>_>linpKu8GK5+nd<J%%m7z5;UbRP<~U)p3zhG+5ZK-K zdXEw~cA?ai75T(hqK|0wx|z!nm7SWN^657!e>Yq-kc_50X~!GMlnCFmVjyT#JgJX-RN4a zJ?yKiOH4sAf9eCQb8CEmvzSHh1KewmCoM9i!tR}QTFK70MCW7{UL2Hv{t$jc2M!%b zHwNI;`r+9$_eP;gw^yE_4?u!|_wMgY5xH9F-o_zcH*L*lM52w*q zq}=1nLYJZkKf_N%Vqf8*LosP#ZO7nCfrW@CPK5W9Jiwyr`3GmS#^uxTyds1V0q)*$ zlf5E2n1Kge6?Np{(5CZ=EI?3~3`}!y0j?7;*peUB!<7gg+7$(rhG6N`8Qw@EIM;8| z!}@;!$o=Xpm&&pd_nC($j~G-6e~(h(5*rTSiMcXo5Hq-t#so{qBD_rqq_{DY5`E0DI9AeHsfCZ9+uqv zY9`GlaK!V>V1FM<`_T6tx@Lb7H+FrIQtp(-oO(jvJ9~%CJEqT(6p4kB%$N%WG?w&E zv3t~8)=*5eX4>&*)$$>ZrARvXhhhtG#Yiil>EJ)QBXlZQid%nw9$_*~^w-*CI9bxg zj%+~4nmGLqU7VRe3j3)&3M0^~%th#}Q}KbowbL`5fqK?Af?r-WN_)|j6WM94O2lPh z@8}mrb_IuYxWD0i+4nHAJEE(@<4exVyB}`a3#_Xl6iKImEGp6^0dP@Z5`>yfmYXJi%ogR^x_BlQ8zLMhwSXW&b1b=_VNQZftb>w{KhoB z#;z{UixfAY@0~2qL>?r6ELFsi3NzeeQ{l>ZH^AFML0tt1GbASexBC3L;Z_&iB>oKK z4JTI4PlR8@riwJd?IcZ2d0<4Uc<1P?O&^@EFUy&O+iDPzr5>jOEQmA_75 zLs2iK361C(sQ6XXpXJO892Th?IyzwdrqwqssVY_-BTwppCBPB7txO*I@FhOASnJBk zkf5_V*`<9hHzhW@Y$tNxDt!qZc11EHwRYUpE|tqmW@r~xl{KxzD5+jOjYr=MGJ#-HFi&OF+}|}O;6=x=+}P3&mO#(8Pu{j!aZ~-8 zx8wO}udWIaCra?th|ITv`%U4mcU3nB<`dCz(W79A{_Xq!VYaAT32gX*z9HU%tu(cS zW$w_v5ow<7tYZl)0zG{X4is$X1tq+d_|i9igy$y^)g0H0=32W-1{g2M^ ze5-tv@J_dBZ9#{ZBaqNEX_a5=X;dBCp*uR2aZwZq|5lp;8XLJbzJS=;_#3$@(#Cg9A7Y zkoc`+>#vOi3xolqa-KJ1LO%s%Ex8c~%fC;Y2Jo@25ray$u|zTX^Jv|?A(aY}-7H9n zKi%nx3Eur>B6R(azOFRCCOK7qAFRipwvR!`LLJ<_QXxnqW7M!m#hgn2q6q8!0QD|@ zkH|*a=;D?3*`i-9Wit97H(|UhX&ad3cxE*Ewo(F%f%yAga`v`JK7;$O67cpmay&CW z5k(ELKdVJQd*fh~A5%4o1*%X{ideN%WZ-|~13D@aKi2(~gh<<-tSe49E!RFXMGSsp~oUD`CLkuJy&kG{}KI<^<348|w=}i=_!XjBe zFKyG1O4RgBT54=7f7rw&{8pwCgLg!j1H*u2ImZQI5+RB{X<;n*HAtrKV>yo{F;Z?RsslBLrva329 z#i%>3N8qz3NW>8k`|7PZK_Z@Ua(9eEdFMya3X$OBO)ZKKwt@-ma%6byMLY2d}=5+8gVK&A4xMheVvx>X5t2A~C4p7b)8a}?BvVIb?GOa>7} zq04ZvBqJCnv8ZBAnPSbkq-kmyCPgH^m$RTXyM$d_!WK@fORdN7$H+-HXq$a_s>$9@!dlY?aq! z?xZu#H@h%@gHIF*T|q$n_=*n>`y15oXbv!vfsLigV2QT;N-#ZEXo^js<}T)dq2Q)9 z>^uX_9mCbn;7ZxrtCVLU-fy5MQ9R1AJb~*Rbn?~wSk68=XD5lf0T3$3UsY+wykc@; z@Vt=*++7TW8#!@dz3ieV&l5(%rYUBYQ1Fe7Vfmr$f0YGM@@udhQ>3H}!(=78_;Z>h zx|(Z;5Cm%R8$@6uiI@59`J(ZB0^8VV=BeIyl%ZLiA@h`+4Tt``lwmT}vJUfNNO;pw zWMd-US|)iawZLdszOdx#1@A~&7dPKfHwU7!eGd??~G#Fv8tsx1MmCzhUE6uDoHN>SnIS8WPI zckjvMN>qqTfN5VqU_y(7n694m6Y0++z8{Z z8-Vc=a37}+VaOeLQ=r#qADjf5q)YEbip7$_iRw_l_c8Jy%$p7y-fF*~T`pDvo2`;r z_}$6-6_EFm_52E|Y8xDwal|s9NN7JyATl;=MmOq(7Hi)6=raRriYIpOoW}gHQWX1s0^ef?V`rj zlD=c|Iz!hCD|BqEbqBA?5uGV2Ejr?FVZJzb{fh8CGvtU~2HE(|swGDEz+D~S9(0Hu z4(DMKB#5^j?dS)W4Bis}rr$!O)0*?&jQ*zFojitmuVdmsHd+6MB*1twR!v4%)OJ!4 z`6aOTjYn!PT6}@4H|P*$#BmV698y4&3x1z>^&ZcSd*oHpNZ4K6nyK&go8cB#xKw*Z zT`O+*U3Fa&N9|p0T~sXDTuawHngHK08p?MZGHcXSVfS8Xu&Djk>+siNL`wpS5dXtz zY(+b4x=B>~t916Q<(UTM0RdC*onw9i2Tv39K?3ZaE+9nG57WI3kinPc96j=*2plYt zWhKA?B(GXYg&A=I_pX{lQj6D5;K9dx4uGk#P1$n?F+9+J4M4DLK&&MjYs<+6)N$Lk z>Pjp+?8Ce+a z#}x?M7uTBYfk=iTmLQSEda9kgfp!B=@5SrL2>gTZn|M ziuc?=d#e8Hp@-*#Nsc2Lq6$x)b@O4zc*P~@02V_2jtzK?Wtt~L@N9!?V!WEx-mR^#C$n zEdv71QXAl&`wk)MzqpWJ?a%v!H1vwKEA=@fb>R3}NqsU(Lfb{Rv0ILgN+eF4yBrkf zV5qUJ#zl_}$D(9BUnGAA60xXw!pn$!|B7c*BgHS-L_nK}3d2L%R6vH<5JgZpOJ!)A zp%PgrF`G_+j!F-i%eFHd&1X{QD_T*}0Mv#)QFnNuzx>3b za1CeLLI$AyPGa$|z@jp1o}U0qAiUg{bTgZk=I>r-9=06un2n{(_l7{Vmr=D{j3@tI z1(YLlNB7j3ulZ&*79V)LmmZOU4FA$da^bjb#3bP2W?n9^R?s_n7~;0`J63k)k)P` zQ7Twb>0VKLvZC>MvQHkLX?0WGb2S(mPh7v2aPV{(&pr=#b z_~y@Q_0En6K^NJmEnhcC~w}s{xCMU@ipaD-yFbk<>Ns2>DCK?7}Mq~4^LIW zyfEv{=})NtE_=n}+3>yOSUOas0daS4QuLOtoL^vGcp_A=oJgC0^m=(ha%KDQ=RK#D zNs})>3%>m7{_^L^mw%tX{P&r)v+O*v#@D^vX{8NjMQ#EA$tVc9>JnW`iQvuKey!iV z2vI>2HDvk=Kklpks~K(w4U~lsgvwtMUsrW+c(-jh<6XjV*I0Hh7ChS`j*O zJrFwkB;9>p&*QHTIFjx$(G>Ga5K?)1Myr_5{0eNSDemLVuLfVwUW(+q;{<52ceF&j z05(}Q`3;~*hL=MRf8ex=Ag*q{KbAkZsNJv9T@SKA&qB}hvwV_KVtV*g`%7{Pir+Hm zUS>u=l@z|}L_x$TSEDhX>hFGr#3N$KqPoPb5)zR7!c(*t_~Y{>?g$=#3H|4$C*E~i z3Isp+1dqu0b@v{reBmPs`c^9V=A&?u$e%4T!PQS?HLeB_3q9SXe@ia|kwU*?n$O%4 z`n|a3XOHj~eae^W3w-hUqw&>68&972eij4*p3jCh>O)tff@_-nG6(klHS3>kKYCWs zci+AK!FlV+J3B z@9^>R^Yr!h_xSnx`~3a>{{RCD97wRB!Gj1BDqP60p~Hs|BTAe|v7*I`7&B_z$g!ix zk03*e97(dI$&)Bks$9vkrOTHvW6GRKv!>0PICJXU$+M@=pFo2O9ZIzRsL`WHlPX2m zr>WCEOQS}8>NK0wt2iN8Jw&ysQUWfd(c-6Jf0Hhz*o*-~)%nMj2 z#GJ@rc2O1F@}@K?Gy8Hvnw_q-971AkbxFZDPdriVZsKphIud>7WA#h4}Xd z7*zTPgOfS%Wr3I4El>cHQX)6y4q)t102nZ&2^<&}0KlOk(@6nFZv)66<&)0b0LBo< z6*4CP(`~6k4vs*u19?=YBIO%91dyB#F;GCkgt0WhXP@I`g2E1Q@|DS$dtP8e3_A>w zf(|wKH-VEhEVim;4&(ra4lumZ02njiP~9O0oLJNVNtULXTQB@LMg*}%5J8J-jWvdS zMP^W>kM^y)!(hXAU#qwSb6nHu!)JG_WfLAvORk!3cyn8StHj%vvQFygtZ*17N_* zWSl$HU@4Wxktb!Gx7<)eE7}b~0Sr1=pq&mC>`>Xx9OxS&r8*1|gA^3#z^k6U4XWJ^ z?B={=nXq(*sZR}LYe=<)m{#NqM9K)j7A|a^EwR>$fvs8e8G^PeMXLD97p54OKp`oM zXABOl=7rysILtsM1v}^)=XL(+g;xwsZXm)L3qalQVl4EFAK#kFaERgfStzK2gbr~S zUK@yaHvlQ)rNac*3=#_gF$jj=1g(T1HK96a{^p-41ng-I=hxw|g9C4v;HnO$R9HjD z5F$^3qNcp^VD23j(%EN4Wu04E0h*Q?xMIg=h>!pVA5d#zybwTXahIsfTk7z0V(L~bSV>5 zgQll6DMarT!W%+wP9ZF!{OB~}OCPe(C$~b7%@DD9AGM^YHS!hWZ2$;RAyQLCRG^E7 zIyg_>%!9X9y@7un7{M8IFq|`Vpn?GY2m!z%R0#QDX#y0GzyyrpF&cu-XPP>qAzL9d zA+{m_`|IN!rLdUg(1}TeAYCkEa5oAFB2KH)kiLFJvhon3hOL+m4m-dA>ga0%I=CCj zdc&Z_jItIufMpB0(iNn{MvPx8l8cDd0tG1G1QF<(k^n#g7YXwP)e`0j#O16nCP@Gh zP|=T;2@ClV>J2g|z`gt<0|Tt;0+9qj;QWI>8{FwZFo5NgAn=B6Y$rk17(j4FumcHf z<~NO4RVMyr0R&870V9xKLO~?N1^iQksOtbZ&8fr&#Gn|zp^|nA1cA-aLS0MzTMiIV z01;S#0fjLD4u*gLeVKqTZwUU84k1SYDNH~L4#j~Ey73@?ij<@yfY~V^kb_s*iiC#f zO!a~?m$H5FTemq)Xj+uau{jk#P&Ey))RGpnG*c~x_?~K_=sq(>kBBp9MGDRUsI;aN zUA;3!4;L_ie@Q_G+j$rq0pQLYz)(tlpqOF zZ>~y8F$h2doFt_k7()cN`s*xi5UHW=X(@UhJr3DcPPz1>3wra*=xu<~cEC?W7X3=H3SgMT#NTl7Xokar7 zg@pqGDGLH{;}qNAE?@wPp^E~X*AN9DFR<8K3kqoH5CYh)Ea>}+QL0xrK9vQ-I8$7t zxJ7I6c-B~9VNu9R;l5bGMGsGRjwT|d0pWee0Lq980w{t8zl!iJ8~}r*ila0C6|stS v5`gO&B@h51`2+-H0000iIs*Uz0ssO4fdBvi000000000000IL /dev/null 2>&1 && . <(dtags shell zsh) + command -v dtags-activate > /dev/null 2>&1 && eval "`dtags-activate zsh`" For bash, place in ~/.bashrc (or ~/.bash_profile for OS X): - - command -v dtags > /dev/null 2>&1 && . <(dtags shell bash) + command -v dtags-activate > /dev/null 2>&1 && eval "`dtags-activate bash`" For fish, place in ~/.config/fish/config.fish: - - command -v dtags > /dev/null 2>&1; and dtags shell fish | source + command -v dtags-activate > /dev/null 2>&1; and dtags-activate fish | source And then restart your shell.""".format(version=version['VERSION']) @@ -59,10 +56,12 @@ def run(self): cmdclass={'install': DTagsInstall}, entry_points={ 'console_scripts': [ - 'e = dtags.commands.execute:main', - 'tag = dtags.commands.tag:main', - 'untag = dtags.commands.untag:main', - 'dtags = dtags.commands.manage:main', + 'dtags-e = dtags.commands.e:main', + 'dtags-t = dtags.commands.t:main', + 'dtags-u = dtags.commands.u:main', + 'dtags-manage = dtags.commands:manage', + 'dtags-refresh = dtags.commands:refresh', + 'dtags-activate = dtags.commands:activate', ], } ) diff --git a/tests.py b/tests.py index d4d0933..466f8e8 100644 --- a/tests.py +++ b/tests.py @@ -1,12 +1,11 @@ -"""Test all dtags commands - -This is for internal development testing only. +"""This is for internal development testing only!!! Things that must be tested manually: 1. Run 'dtags edit' 2. Run 'd tag-with-many-dirs' 3. Kill 'e -p' and make sure child processes are dead +4. Shell variables """ from __future__ import unicode_literals @@ -21,17 +20,17 @@ from dtags import CFG_DIR, MAPPING_FILE from dtags.chars import TAG_CHARS from dtags.version import VERSION +from dtags.commands import d, e, t, u from dtags.commands import ( - directory as d, - execute as e, - manage as dt, - tag as tg, - untag as utg, + USAGE, + DESCRIPTION, + COMMANDS ) generated_tags = set() tag_chars = list(TAG_CHARS) home = os.path.expanduser('~') +current_shell = os.environ.get('SHELL', '') def setup_module(*_): @@ -57,17 +56,25 @@ def run(command, shell=None): 'stderr': subprocess.STDOUT, 'preexec_fn': os.setsid } + valid_output_lines = [] if shell is None: - shell = os.environ['SHELL'] + shell = current_shell try: std_output = subprocess.check_output( '{} -i -c "{}"'.format(shell, command), **kwargs ) except subprocess.CalledProcessError as err: - return err.output + for line in err.output.split('\n'): + if 'cannot set terminal' in line or 'no job control' in line: + continue + valid_output_lines.append(line) else: - return std_output + for line in std_output.split('\n'): + if 'cannot set terminal' in line or 'no job control' in line: + continue + valid_output_lines.append(line) + return '\n'.join(valid_output_lines) @pytest.mark.first @@ -79,67 +86,69 @@ def test_init(): assert run('dtags list test') == expected assert run('dtags reverse') == expected assert run('dtags reverse test') == expected + assert run('dtags commands') == COMMANDS + '\n' assert run('dtags clean') == 'Nothing to clean\n' @pytest.mark.second -def test_tag(): +def test_t(): """Test if 'tag' works as expected.""" # Test argument handling - assert run('tag') == tg.USAGE + tg.DESCRIPTION + '\n' - assert run('tag --help') == tg.USAGE + tg.DESCRIPTION + '\n' - assert run('tag --version') == 'Version ' + VERSION + '\n' - assert run('tag -z') == tg.USAGE + 'Invalid argument: -z\n' + assert run('t') == t.USAGE + t.DESCRIPTION + '\n' + assert run('t --help') == t.USAGE + t.DESCRIPTION + '\n' + assert run('t --version') == 'Version ' + VERSION + '\n' + assert run('t -z') == t.USAGE + 't: invalid argument: -z\n' # Tag /usr/bin by basename - assert run('tag /usr/bin') == '/usr/bin +#bin\n' + assert run('t /usr/bin') == '/usr/bin +#bin\n' assert run('dtags') == '/usr/bin #bin\n' - assert run('tag /usr/bin') == 'Nothing to do\n' + assert run('t /usr/bin') == 'Nothing to do\n' # Tag /usr/bin foo - assert run('tag /usr/bin foo') == '/usr/bin +#foo\n' + assert run('t /usr/bin foo') == '/usr/bin +#foo\n' assert run('dtags') == '/usr/bin #bin #foo\n' - assert run('tag /usr/bin foo bin') == 'Nothing to do\n' + assert run('t /usr/bin foo bin') == 'Nothing to do\n' # Tag /usr/bin bar and baz - assert run('tag /usr/bin bar baz') == '/usr/bin +#bar +#baz\n' + assert run('t /usr/bin bar baz') == '/usr/bin +#bar +#baz\n' assert run('dtags') == '/usr/bin #bar #baz #bin #foo\n' - assert run('tag /usr/bin foo bar baz') == 'Nothing to do\n' + assert run('t /usr/bin foo bar baz') == 'Nothing to do\n' # Tag /tmp by basename - assert run('tag /tmp') == '/tmp +#tmp\n' + assert run('t /tmp') == '/tmp +#tmp\n' assert '/tmp #tmp' in run('dtags') - assert run('tag /tmp') == 'Nothing to do\n' + assert run('t /tmp') == 'Nothing to do\n' # Tag ~ foo - assert run('tag /tmp foo') == '/tmp +#foo\n' + assert run('t /tmp foo') == '/tmp +#foo\n' assert '/tmp #foo' in run('dtags') - assert run('tag /tmp foo tmp') == 'Nothing to do\n' + assert run('t /tmp foo tmp') == 'Nothing to do\n' # Tag ~ bar and baz - assert run('tag /tmp bar baz') == '/tmp +#bar +#baz\n' + assert run('t /tmp bar baz') == '/tmp +#bar +#baz\n' assert '/tmp #bar #baz #foo' in run('dtags') - assert run('tag /tmp bar baz foo') == 'Nothing to do\n' + assert run('t /tmp bar baz foo') == 'Nothing to do\n' # Test invalid arguments - assert run("tag ~ 'a b'") == 'Tag name a b contains whitespaces\n' - assert run('tag ~ b@d') == 'Tag name b@d contains bad characters @\n' - assert run('tag ~ @x') == 'Tag name @x does not start with an alphabet\n' - assert run('tag /@') == 'Directory path /@ contains bad characters @\n' - assert run('tag /invalid') == 'Invalid directory /invalid\n' + if 'zsh' in current_shell or 'fish' in current_shell: + assert run("t ~ 'a b'") == 't: tag name a b contains whitespaces\n' + assert run('t ~ b@d') == 't: tag name b@d contains bad characters @\n' + assert run('t ~ @x') == 't: tag name @x does not start with an alphabet\n' + assert run('t /@') == 't: directory path /@ contains bad characters @\n' + assert run('t /invalid') == 't: invalid directory: /invalid\n' @pytest.mark.third def test_dtags(): """Test if 'dtags' works as expected.""" # Test argument handling - assert run('dtags --help') == dt.USAGE + dt.DESCRIPTION + '\n' + assert run('dtags --help') == USAGE + DESCRIPTION + '\n' assert run('dtags --version') == 'Version ' + VERSION + '\n' - assert run('dtags -z') == dt.USAGE + 'Invalid argument: -z\n' - assert run('dtags list -z') == dt.USAGE + 'Invalid argument: -z\n' - assert run('dtags edit invalid') == dt.USAGE + 'Too many arguments\n' - assert run('dtags clean invalid') == dt.USAGE + 'Too many arguments\n' - assert run('dtags shell bash bad') == dt.USAGE + 'Too many arguments\n' + assert run('dtags -z') == USAGE + 'dtags: invalid argument: -z\n' + assert run('dtags list -z') == USAGE + 'dtags: invalid argument: -z\n' + assert run('dtags edit invalid') == USAGE + 'dtags: too many arguments\n' + assert run('dtags clean invalid') == USAGE + 'dtags: too many arguments\n' + assert run('dtags commands bad') == USAGE + 'dtags: too many arguments\n' # Test 'dtags list' assert run('dtags list') == run('dtags') @@ -166,15 +175,17 @@ def test_dtags(): assert run('dtags reverse /tmp') == '\n'.join([bar, baz, foo, tmp]) # Test 'dtags shell' - assert '_dtags_dir=${_dtags_dirs[0]}' in run('dtags shell bash') - assert '_dtags_dir=${_dtags_dirs[1]}' in run('dtags shell zsh') - assert 'set _dtags_dir $_dtags_dirs[1]' in run('dtags shell fish') - assert run('dtags shell bad') == 'Unsupported shell: bad\n' + assert '_dtags_dir=${_dtags_dirs[0]}' in run('dtags-activate bash') + assert '_dtags_dir=${_dtags_dirs[1]}' in run('dtags-activate zsh') + assert 'set _dtags_dir $_dtags_dirs[1]' in run('dtags-activate fish') + assert run('dtags-activate bad') == 'dtags: unsupported shell: bad\n' # Test sourcing 'dtags shell' output # assert execute('source <(dtags shell bash)', shell='bash') == '' - assert run('source <(dtags shell zsh)', shell='zsh') == '' - assert run('dtags shell fish | source', shell='fish') == '' + if 'zsh' in current_shell: + assert run('. <(dtags-activate zsh)', shell='zsh') == '' + if 'fish' in current_shell: + assert run('dtags-activate fish | source', shell='fish') == '' # Test 'dtags clean' (safe version) assert run('dtags clean') == 'Nothing to clean\n' @@ -184,16 +195,15 @@ def test_dtags(): def test_d(): """Test if the 'd' command works as expected.""" # Tag home directory to test the 'd' command - assert run('tag ~ home') == '{} +#home\n'.format(home) + assert run('t ~ home') == '{} +#home\n'.format(home) # Test argument handling assert run('d --help') == d.USAGE + d.DESCRIPTION assert run('d --version') == 'Version ' + VERSION + '\n' - assert run('d -z') == d.USAGE + 'Invalid argument: -z\n' - assert run('d /tmp bad') == d.USAGE + 'Too many arguments\n' + assert run('d -z') == d.USAGE + 'd: invalid argument: -z\n' + assert run('d /tmp bad') == d.USAGE + 'd: too many arguments\n' # Test changing directories - d_msg = 'Going to {loc}\n{loc}\n' assert home in run('d; pwd') assert home in run('d home; pwd') assert '/tmp' in run('d tmp; pwd') @@ -207,10 +217,10 @@ def test_e(): assert run('e') == e.USAGE + e.DESCRIPTION + '\n' assert run('e --help') == e.USAGE + e.DESCRIPTION + '\n' assert run('e --version') == 'Version ' + VERSION + '\n' - assert run('e -z') == e.USAGE + 'Invalid argument: -z\n' - assert run('e -p') == e.USAGE + 'Missing argument: \n' - assert run('e test') == e.USAGE + 'Missing argument: \n' - assert run('e -p test') == e.USAGE + 'Missing argument: \n' + assert run('e -z') == e.USAGE + 'e: invalid argument: -z\n' + assert run('e -p') == e.USAGE + 'e: missing argument: \n' + assert run('e test') == e.USAGE + 'e: missing argument: \n' + assert run('e -p test') == e.USAGE + 'e: missing argument: \n' # Test executing commands s = 'Executing command pwd in sequence...\n\n' @@ -249,37 +259,37 @@ def test_e(): @pytest.mark.sixth -def test_untag(): +def test_u(): """Test if 'untag' works as expected.""" # Test argument handling - assert run('untag') == utg.USAGE + utg.DESCRIPTION + '\n' - assert run('untag --help') == utg.USAGE + utg.DESCRIPTION + '\n' - assert run('untag --version') == 'Version ' + VERSION + '\n' - assert run('untag -z') == utg.USAGE + 'Invalid argument: -z\n' + assert run('u') == u.USAGE + u.DESCRIPTION + '\n' + assert run('u --help') == u.USAGE + u.DESCRIPTION + '\n' + assert run('u --version') == 'Version ' + VERSION + '\n' + assert run('u -z') == u.USAGE + 'u: invalid argument: -z\n' # Remove tag from home directory - assert run('untag ~') == '{} -#home\n'.format(home) + assert run('u ~') == '{} -#home\n'.format(home) assert home not in run('dtags list') assert home not in run('dtags reverse') # Remove tag foo from /usr/bin - assert run('untag /usr/bin foo') == '/usr/bin -#foo\n' - assert run('untag /usr/bin foo') == 'Nothing to do\n' + assert run('u /usr/bin foo') == '/usr/bin -#foo\n' + assert run('u /usr/bin foo') == 'Nothing to do\n' assert '/usr/bin' not in run('dtags list foo') assert 'foo' not in run('dtags list /usr/bin') # Remove tag bar and an unknown tag from /usr/bin - assert run('untag /usr/bin bar unknown') == '/usr/bin -#bar\n' + assert run('u /usr/bin bar unknown') == '/usr/bin -#bar\n' assert '/usr/bin' not in run('dtags list foo bar') assert 'bar' not in run('dtags list /usr/bin') # Remove the rest of the tags from /usr/bin - assert run('untag /usr/bin bin baz') == '/usr/bin -#baz -#bin\n' + assert run('u /usr/bin bin baz') == '/usr/bin -#baz -#bin\n' assert run('dtags list /usr/bin') == 'Nothing to list\n' assert '/usr/bin' not in run('dtags list foo bar baz') # Remove all tags from /tmp at once - assert run('untag /tmp') == '/tmp -#bar -#baz -#foo -#tmp\n' + assert run('u /tmp') == '/tmp -#bar -#baz -#foo -#tmp\n' assert run('dtags list /tmp') == 'Nothing to list\n' assert run('dtags list foo bar baz') == 'Nothing to list\n' @@ -324,12 +334,12 @@ def test_bad_mapping(): assert '{} #bar #baz #foo #home'.format(home) in output # Test 'tag' - output = run('tag /tmp') + output = run('t /tmp') for expected_error in expected_errors: assert expected_error in output assert 'Nothing to do' in output assert 'Cleaned the following invalid entries' in output - output = run('tag /tmp') + output = run('t /tmp') for expected_error in expected_errors: assert expected_error not in output assert 'Cleaned the following invalid entries' not in output @@ -337,12 +347,12 @@ def test_bad_mapping(): # Test 'untag' with io.open(MAPPING_FILE, "w+t") as open_file: open_file.write(test_mapping) - output = run('untag /tmp') + output = run('u /tmp') for expected_error in expected_errors: assert expected_error in output assert '/tmp -#bar -#baz -#foo -#tmp' in output assert 'Cleaned the following invalid entries' in output - output = run('untag /tmp') + output = run('u /tmp') for expected_error in expected_errors: assert expected_error not in output assert 'Cleaned the following invalid entries' not in output