From 8274156fae85f82050bdb377b088f29a5657c882 Mon Sep 17 00:00:00 2001 From: "Michael W. Clark" Date: Wed, 17 Apr 2024 12:12:12 -0700 Subject: [PATCH] merge --- .github/CODEOWNERS | 3 + .github/dependabot.yml | 12 + .github/dependencies.yml | 38 + .github/workflows/dependencies.yml | 29 + .../workflows/dependencies/requirements.txt | 2 + .github/workflows/dependencies/updater.py | 450 ++++++++ .github/workflows/installer.yml | 56 + .github/workflows/installer/.gitignore | 1 + .github/workflows/installer/.vercelignore | 2 + .github/workflows/installer/vercel.json | 23 + .github/workflows/main.yml | 10 +- .github/workflows/project.yml | 10 +- README.md | 164 ++- SECURITY.md | 5 +- custom/example.zsh | 12 + custom/plugins/example/example.plugin.zsh | 3 + custom/themes/example.zsh-theme | 6 + lib/async_prompt.zsh | 144 +++ lib/cli.zsh | 9 +- lib/clipboard.zsh | 12 +- lib/compfix.zsh | 2 +- lib/completion.zsh | 2 +- lib/diagnostics.zsh | 24 +- lib/directories.zsh | 6 - lib/functions.zsh | 7 +- lib/git.zsh | 62 +- lib/history.zsh | 17 +- lib/key-bindings.zsh | 21 +- lib/misc.zsh | 9 +- lib/prompt_info_functions.zsh | 2 +- lib/spectrum.zsh | 1 + lib/termsupport.zsh | 75 +- lib/theme-and-appearance.zsh | 36 +- oh-my-zsh.sh | 86 +- plugins/alias-finder/.zunit.yml | 9 + plugins/alias-finder/README.md | 55 +- plugins/alias-finder/alias-finder.plugin.zsh | 79 +- plugins/alias-finder/tests/_output/.gitkeep | 0 plugins/alias-finder/tests/_support/.gitkeep | 0 plugins/alias-finder/tests/_support/bootstrap | 2 + plugins/alias-finder/tests/test_run.sh | 107 ++ plugins/aliases/README.md | 12 +- plugins/aliases/aliases.plugin.zsh | 2 +- plugins/aliases/cheatsheet.py | 2 +- plugins/ansible/README.md | 3 +- plugins/archlinux/README.md | 1 + plugins/archlinux/archlinux.plugin.zsh | 51 +- plugins/asdf/asdf.plugin.zsh | 35 +- plugins/autoenv/autoenv.plugin.zsh | 16 +- plugins/autojump/autojump.plugin.zsh | 28 +- plugins/aws/README.md | 20 +- plugins/aws/aws.plugin.zsh | 110 +- plugins/azure/azure.plugin.zsh | 14 +- plugins/battery/battery.plugin.zsh | 44 + plugins/bazel/README.md | 12 +- plugins/bazel/_bazel | 2 +- plugins/bazel/bazel.plugin.zsh | 5 + plugins/bgnotify/README.md | 29 +- plugins/bgnotify/bgnotify.plugin.zsh | 95 +- plugins/branch/README.md | 2 +- plugins/brew/README.md | 20 +- plugins/brew/brew.plugin.zsh | 12 +- plugins/bun/README.md | 20 + plugins/bun/bun.plugin.zsh | 14 + plugins/catimg/README.md | 2 +- plugins/chruby/chruby.plugin.zsh | 4 +- plugins/cloudfoundry/README.md | 2 +- plugins/coffee/README.md | 2 +- .../colored-man-pages.plugin.zsh | 1 + .../command-not-found.plugin.zsh | 3 +- plugins/compleat/compleat.plugin.zsh | 4 +- plugins/copybuffer/copybuffer.plugin.zsh | 2 +- plugins/dash/README.md | 2 +- plugins/dbt/README.md | 29 + plugins/dbt/dbt.plugin.zsh | 23 + plugins/debian/README.md | 9 +- plugins/debian/debian.plugin.zsh | 2 +- plugins/deno/README.md | 27 +- plugins/deno/deno.plugin.zsh | 1 + plugins/direnv/direnv.plugin.zsh | 4 +- plugins/dirhistory/dirhistory.plugin.zsh | 8 +- plugins/dnf/README.md | 3 + plugins/dnf/dnf.plugin.zsh | 28 +- plugins/docker-compose/README.md | 41 +- plugins/docker-compose/_docker-compose | 2 +- .../docker-compose/docker-compose.plugin.zsh | 1 + plugins/docker/README.md | 11 +- plugins/docker/{ => completions}/_docker | 11 +- plugins/docker/docker.plugin.zsh | 29 + plugins/dotnet/dotnet.plugin.zsh | 24 +- plugins/emacs/README.md | 2 +- plugins/emacs/emacs.plugin.zsh | 2 +- plugins/emoji/emoji.plugin.zsh | 18 +- plugins/emotty/emotty.plugin.zsh | 2 +- plugins/encode64/README.md | 2 +- plugins/extract/README.md | 3 + plugins/extract/extract.plugin.zsh | 116 +- plugins/eza/README.md | 101 ++ plugins/eza/eza.plugin.zsh | 62 + plugins/fancy-ctrl-z/README.md | 8 +- plugins/fastfile/README.md | 4 +- plugins/firewalld/firewalld.plugin.zsh | 2 +- plugins/forklift/forklift.plugin.zsh | 4 +- plugins/frontend-search/README.md | 12 +- .../frontend-search.plugin.zsh | 20 +- plugins/fzf/fzf.plugin.zsh | 3 +- plugins/gas/README.md | 2 +- plugins/gcloud/gcloud.plugin.zsh | 12 +- .../git-auto-fetch/git-auto-fetch.plugin.zsh | 2 +- plugins/git-commit/README.md | 47 + plugins/git-commit/git-commit.plugin.zsh | 58 + plugins/git-extras/README.md | 2 +- plugins/git-extras/git-extras.plugin.zsh | 176 +-- plugins/git-prompt/README.md | 4 + plugins/git/README.md | 482 ++++---- plugins/git/git.plugin.zsh | 688 ++++++----- plugins/gitfast/README.md | 6 - plugins/gitfast/git-completion.bash | 221 +--- plugins/gitfast/git-prompt.sh | 31 +- plugins/gitfast/gitfast.plugin.zsh | 2 +- plugins/gitfast/update | 8 - plugins/gitignore/README.md | 2 +- plugins/gitignore/gitignore.plugin.zsh | 4 +- plugins/gnu-utils/gnu-utils.plugin.zsh | 6 +- plugins/gradle/LICENSE | 19 + plugins/gradle/_gradle | 30 +- plugins/gradle/gradle.plugin.zsh | 2 +- plugins/grails/grails.plugin.zsh | 14 +- plugins/grc/grc.plugin.zsh | 6 +- plugins/helm/README.md | 13 +- plugins/helm/helm.plugin.zsh | 1 + plugins/history-substring-search/README.md | 103 +- .../dependencies/OMZ-README.md | 15 + .../history-substring-search.zsh | 231 ++-- .../update-from-upstream.zsh | 129 --- plugins/history/README.md | 1 + plugins/history/history.plugin.zsh | 1 + plugins/hitchhiker/fortunes/hitchhiker | 34 +- plugins/httpie/_httpie | 2 +- plugins/ionic/ionic.plugin.zsh | 12 +- plugins/ipfs/_ipfs | 2 +- plugins/iterm2/README.md | 2 +- plugins/iterm2/iterm2.plugin.zsh | 2 +- plugins/iterm2/iterm2_shell_integration.zsh | 4 +- plugins/jira/README.md | 7 +- plugins/jira/_jira | 1 + plugins/jira/jira.plugin.zsh | 25 +- plugins/juju/README.md | 2 + plugins/juju/juju.plugin.zsh | 34 +- plugins/jump/jump.plugin.zsh | 11 +- plugins/kind/README.md | 22 + plugins/kind/kind.plugin.zsh | 23 + plugins/kn/kn.plugin.zsh | 2 +- plugins/kube-ps1/README.md | 1 + plugins/kube-ps1/kube-ps1.plugin.zsh | 27 +- plugins/kubectl/kubectl.plugin.zsh | 1 + plugins/kubectx/README.md | 6 +- plugins/kubectx/kubectx.plugin.zsh | 2 +- plugins/lando/README.md | 24 +- plugins/lando/lando.plugin.zsh | 35 +- plugins/laravel/README.md | 1 + plugins/laravel/laravel.plugin.zsh | 1 + plugins/macos/README.md | 2 +- plugins/macos/macos.plugin.zsh | 13 +- plugins/macos/spotify | 37 +- plugins/macports/_port | 8 +- plugins/marked2/README.md | 2 +- plugins/marktext/README.md | 2 +- plugins/minikube/minikube.plugin.zsh | 24 +- plugins/mise/README.md | 32 + plugins/mise/mise.plugin.zsh | 26 + plugins/mongo-atlas/README.md | 2 +- plugins/mvn/README.md | 2 +- plugins/mvn/mvn.plugin.zsh | 2 +- plugins/n98-magerun/n98-magerun.plugin.zsh | 2 +- plugins/nmap/nmap.plugin.zsh | 2 +- plugins/nomad/_nomad | 4 +- plugins/npm/README.md | 2 + plugins/npm/npm.plugin.zsh | 8 +- plugins/nvm/README.md | 11 +- plugins/nvm/_nvm | 34 - plugins/nvm/nvm.plugin.zsh | 122 +- plugins/otp/README.md | 2 +- plugins/per-directory-history/README.md | 2 + .../per-directory-history.zsh | 14 +- plugins/pipenv/README.md | 16 +- plugins/pipenv/pipenv.plugin.zsh | 39 +- plugins/pm2/_pm2 | 2 +- plugins/podman/README.md | 47 + plugins/podman/podman.plugin.zsh | 47 + plugins/poetry-env/README.md | 10 + plugins/poetry-env/poetry-env.plugin.zsh | 27 + plugins/postgres/README.md | 2 +- plugins/pyenv/README.md | 8 + plugins/python/README.md | 18 +- plugins/python/python.plugin.zsh | 29 +- plugins/qodana/README.md | 20 + plugins/qodana/qodana.plugin.zsh | 14 + plugins/rails/README.md | 5 +- plugins/rails/_rails | 1004 ++++++++--------- plugins/rails/rails.plugin.zsh | 5 +- plugins/rake-fast/rake-fast.plugin.zsh | 42 +- plugins/react-native/README.md | 4 + plugins/react-native/react-native.plugin.zsh | 4 + plugins/ros/_ros | 2 +- plugins/rtx/rtx.plugin.zsh | 2 + plugins/ruby/ruby.plugin.zsh | 2 +- plugins/sbt/sbt.plugin.zsh | 2 +- plugins/screen/screen.plugin.zsh | 2 +- plugins/shell-proxy/README.md | 5 + plugins/shell-proxy/proxy.py | 23 +- plugins/shell-proxy/shell-proxy.plugin.zsh | 2 +- plugins/shell-proxy/ssh-proxy.py | 3 +- plugins/singlechar/singlechar.plugin.zsh | 2 +- plugins/snap/README.md | 18 + plugins/snap/snap.plugin.zsh | 10 + plugins/ssh-agent/README.md | 29 +- plugins/ssh-agent/ssh-agent.plugin.zsh | 11 +- plugins/ssh/ssh.plugin.zsh | 53 + plugins/starship/README.md | 21 + plugins/starship/starship.plugin.zsh | 8 + plugins/stripe/README.md | 9 + plugins/stripe/stripe.plugin.zsh | 13 + plugins/sublime/sublime.plugin.zsh | 4 +- plugins/systemadmin/README.md | 2 +- plugins/systemadmin/systemadmin.plugin.zsh | 116 +- plugins/systemd/README.md | 1 + plugins/systemd/systemd.plugin.zsh | 3 + plugins/term_tab/term_tab.plugin.zsh | 1 + plugins/terraform/README.md | 39 +- plugins/terraform/_terraform | 864 ++++++++------ plugins/terraform/terraform.plugin.zsh | 10 + plugins/thor/README.md | 2 +- plugins/tig/tig.plugin.zsh | 2 + plugins/tmux/README.md | 39 +- plugins/tmux/tmux.plugin.zsh | 93 +- plugins/toolbox/README.md | 3 +- plugins/toolbox/toolbox.plugin.zsh | 3 +- plugins/ubuntu/README.md | 2 +- plugins/ubuntu/ubuntu.plugin.zsh | 2 +- plugins/ufw/README.md | 2 +- plugins/vagrant-prompt/README.md | 2 +- plugins/vi-mode/README.md | 10 +- plugins/vi-mode/vi-mode.plugin.zsh | 50 +- plugins/vim-interaction/README.md | 2 +- .../vim-interaction.plugin.zsh | 2 +- .../virtualenvwrapper.plugin.zsh | 3 +- plugins/vscode/README.md | 29 +- plugins/vscode/vscode.plugin.zsh | 11 +- plugins/wd/README.md | 2 +- plugins/wd/_wd.sh | 2 +- plugins/wd/wd.sh | 4 +- plugins/web-search/README.md | 67 +- plugins/web-search/web-search.plugin.zsh | 20 +- plugins/xcode/xcode.plugin.zsh | 7 + plugins/yarn/_yarn | 10 +- plugins/z/LICENSE | 2 +- plugins/z/MANUAL.md | 41 +- plugins/z/_z | 2 +- plugins/z/img/demo.gif | Bin 0 -> 1271520 bytes plugins/z/img/mit_license.svg | 1 + plugins/z/img/zsh_4.3.11_plus.svg | 1 + plugins/z/z.plugin.zsh | 106 +- plugins/zoxide/README.md | 3 + plugins/zoxide/zoxide.plugin.zsh | 2 +- plugins/zsh-navigation-tools/n-list | 2 +- themes/Soliah.zsh-theme | 10 +- themes/adben.zsh-theme | 2 +- themes/agnoster.zsh-theme | 36 +- themes/avit.zsh-theme | 7 +- themes/awesomepanda.zsh-theme | 2 +- themes/bira.zsh-theme | 7 +- themes/bureau.zsh-theme | 7 + themes/crunch.zsh-theme | 6 +- themes/eastwood.zsh-theme | 2 +- themes/emotty.zsh-theme | 4 +- themes/essembeh.zsh-theme | 4 +- themes/fino-time.zsh-theme | 1 + themes/gallois.zsh-theme | 136 ++- themes/gnzh.zsh-theme | 2 +- themes/half-life.zsh-theme | 6 +- themes/josh.zsh-theme | 8 +- themes/junkfood.zsh-theme | 4 +- themes/michelebologna.zsh-theme | 11 +- themes/mlh.zsh-theme | 2 +- themes/mortalscumbag.zsh-theme | 10 +- themes/oldgallois.zsh-theme | 24 + themes/rkj-repos.zsh-theme | 2 +- themes/robbyrussell.zsh-theme | 6 +- themes/sonicradish.zsh-theme | 2 +- themes/wedisagree.zsh-theme | 14 +- tools/changelog.sh | 115 +- tools/check_for_upgrade.sh | 228 ++-- tools/install.sh | 19 +- tools/uninstall.sh | 23 +- tools/upgrade.sh | 91 +- 296 files changed, 6396 insertions(+), 3258 deletions(-) create mode 100644 .github/dependabot.yml create mode 100644 .github/dependencies.yml create mode 100644 .github/workflows/dependencies.yml create mode 100644 .github/workflows/dependencies/requirements.txt create mode 100644 .github/workflows/dependencies/updater.py create mode 100644 .github/workflows/installer.yml create mode 100644 .github/workflows/installer/.gitignore create mode 100644 .github/workflows/installer/.vercelignore create mode 100644 .github/workflows/installer/vercel.json create mode 100644 custom/example.zsh create mode 100644 custom/plugins/example/example.plugin.zsh create mode 100644 custom/themes/example.zsh-theme create mode 100644 lib/async_prompt.zsh create mode 100644 plugins/alias-finder/.zunit.yml create mode 100644 plugins/alias-finder/tests/_output/.gitkeep create mode 100644 plugins/alias-finder/tests/_support/.gitkeep create mode 100644 plugins/alias-finder/tests/_support/bootstrap create mode 100644 plugins/alias-finder/tests/test_run.sh create mode 100644 plugins/bazel/bazel.plugin.zsh create mode 100644 plugins/bun/README.md create mode 100644 plugins/bun/bun.plugin.zsh create mode 100644 plugins/dbt/README.md create mode 100644 plugins/dbt/dbt.plugin.zsh rename plugins/docker/{ => completions}/_docker (99%) create mode 100644 plugins/eza/README.md create mode 100644 plugins/eza/eza.plugin.zsh create mode 100644 plugins/git-commit/README.md create mode 100644 plugins/git-commit/git-commit.plugin.zsh delete mode 100755 plugins/gitfast/update create mode 100644 plugins/gradle/LICENSE create mode 100644 plugins/history-substring-search/dependencies/OMZ-README.md delete mode 100755 plugins/history-substring-search/update-from-upstream.zsh create mode 100644 plugins/kind/README.md create mode 100644 plugins/kind/kind.plugin.zsh create mode 100644 plugins/mise/README.md create mode 100644 plugins/mise/mise.plugin.zsh delete mode 100644 plugins/nvm/_nvm create mode 100644 plugins/podman/README.md create mode 100644 plugins/podman/podman.plugin.zsh create mode 100644 plugins/poetry-env/README.md create mode 100644 plugins/poetry-env/poetry-env.plugin.zsh create mode 100644 plugins/qodana/README.md create mode 100644 plugins/qodana/qodana.plugin.zsh create mode 100644 plugins/rtx/rtx.plugin.zsh create mode 100644 plugins/snap/README.md create mode 100644 plugins/snap/snap.plugin.zsh create mode 100644 plugins/ssh/ssh.plugin.zsh create mode 100644 plugins/starship/README.md create mode 100644 plugins/starship/starship.plugin.zsh create mode 100644 plugins/stripe/README.md create mode 100644 plugins/stripe/stripe.plugin.zsh create mode 100644 plugins/z/img/demo.gif create mode 100644 plugins/z/img/mit_license.svg create mode 100644 plugins/z/img/zsh_4.3.11_plus.svg create mode 100644 themes/oldgallois.zsh-theme diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 6668cd7ce..361ed624b 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,11 +1,14 @@ # Plugin owners plugins/archlinux/ @ratijas +plugins/dbt/ @msempere +plugins/eza/ @pepoluan plugins/genpass/ @atoponce plugins/git-lfs/ @hellovietduc plugins/gitfast/ @felipec plugins/react-native @esthor plugins/sdk/ @rgoldberg plugins/shell-proxy/ @septs +plugins/starship/ @axieax plugins/universalarchive/ @Konfekt plugins/wp-cli/ @joshmedeski plugins/zoxide/ @ajeetdsouza diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..4dc9f3854 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,12 @@ +version: 2 +updates: + - package-ecosystem: github-actions + directory: / + schedule: + interval: "weekly" + day: "sunday" + - package-ecosystem: "pip" + directory: "/.github/workflows/dependencies" + schedule: + interval: "weekly" + day: "sunday" diff --git a/.github/dependencies.yml b/.github/dependencies.yml new file mode 100644 index 000000000..f760ddcef --- /dev/null +++ b/.github/dependencies.yml @@ -0,0 +1,38 @@ +dependencies: + plugins/gitfast: + repo: felipec/git-completion + branch: master + version: tag:v2.1 + postcopy: | + set -e + rm -rf git-completion.plugin.zsh Makefile README.adoc t tools + test -e git-completion.zsh && mv -f git-completion.zsh _git + plugins/z: + branch: master + repo: agkozak/zsh-z + version: afaf2965b41fdc6ca66066e09382726aa0b6aa04 + precopy: | + set -e + test -e README.md && mv -f README.md MANUAL.md + postcopy: | + set -e + test -e _zshz && mv -f _zshz _z + test -e zsh-z.plugin.zsh && mv -f zsh-z.plugin.zsh z.plugin.zsh + plugins/history-substring-search: + repo: zsh-users/zsh-history-substring-search + branch: master + version: 8dd05bfcc12b0cd1ee9ea64be725b3d9f713cf64 + precopy: | + set -e + rm -f zsh-history-substring-search.plugin.zsh + test -e zsh-history-substring-search.zsh && mv zsh-history-substring-search.zsh history-substring-search.zsh + postcopy: | + set -e + test -e dependencies/OMZ-README.md && cat dependencies/OMZ-README.md >> README.md + plugins/gradle: + repo: gradle/gradle-completion + branch: master + version: 25da917cf5a88f3e58f05be3868a7b2748c8afe6 + precopy: | + set -e + find . ! -name _gradle ! -name LICENSE -delete diff --git a/.github/workflows/dependencies.yml b/.github/workflows/dependencies.yml new file mode 100644 index 000000000..2e2217e1c --- /dev/null +++ b/.github/workflows/dependencies.yml @@ -0,0 +1,29 @@ +name: Update dependencies +on: + workflow_dispatch: {} + # schedule: + # - cron: '34 3 * * */8' + +jobs: + check: + name: Check for updates + runs-on: ubuntu-latest + if: github.repository == 'ohmyzsh/ohmyzsh' + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Authenticate as @ohmyzsh + id: generate_token + uses: ohmyzsh/github-app-token@v2 + with: + app_id: ${{ secrets.OHMYZSH_APP_ID }} + private_key: ${{ secrets.OHMYZSH_APP_PRIVATE_KEY }} + - name: Process dependencies + env: + GH_TOKEN: ${{ steps.generate_token.outputs.token }} + GIT_APP_NAME: ohmyzsh[bot] + GIT_APP_EMAIL: 54982679+ohmyzsh[bot]@users.noreply.github.com + TMP_DIR: ${{ runner.temp }} + run: | + pip install -r .github/workflows/dependencies/requirements.txt + python3 .github/workflows/dependencies/updater.py diff --git a/.github/workflows/dependencies/requirements.txt b/.github/workflows/dependencies/requirements.txt new file mode 100644 index 000000000..3c4c149ea --- /dev/null +++ b/.github/workflows/dependencies/requirements.txt @@ -0,0 +1,2 @@ +PyYAML~=6.0.1 +requests~=2.31.0 diff --git a/.github/workflows/dependencies/updater.py b/.github/workflows/dependencies/updater.py new file mode 100644 index 000000000..f54d316f9 --- /dev/null +++ b/.github/workflows/dependencies/updater.py @@ -0,0 +1,450 @@ +import os +import subprocess +import sys +import requests +import shutil +import yaml +from copy import deepcopy +from typing import Optional, TypedDict + +# Get TMP_DIR variable from environment +TMP_DIR = os.path.join(os.environ.get("TMP_DIR", "/tmp"), "ohmyzsh") +# Relative path to dependencies.yml file +DEPS_YAML_FILE = ".github/dependencies.yml" +# Dry run flag +DRY_RUN = os.environ.get("DRY_RUN", "0") == "1" + +import timeit +class CodeTimer: + def __init__(self, name=None): + self.name = " '" + name + "'" if name else '' + + def __enter__(self): + self.start = timeit.default_timer() + + def __exit__(self, exc_type, exc_value, traceback): + self.took = (timeit.default_timer() - self.start) * 1000.0 + print('Code block' + self.name + ' took: ' + str(self.took) + ' ms') + + +### YAML representation +def str_presenter(dumper, data): + """ + Configures yaml for dumping multiline strings + Ref: https://stackoverflow.com/a/33300001 + """ + if len(data.splitlines()) > 1: # check for multiline string + return dumper.represent_scalar('tag:yaml.org,2002:str', data, style='|') + return dumper.represent_scalar('tag:yaml.org,2002:str', data) + +yaml.add_representer(str, str_presenter) +yaml.representer.SafeRepresenter.add_representer(str, str_presenter) + + +# Types +class DependencyDict(TypedDict): + repo: str + branch: str + version: str + precopy: Optional[str] + postcopy: Optional[str] + +class DependencyYAML(TypedDict): + dependencies: dict[str, DependencyDict] + +class UpdateStatus(TypedDict): + has_updates: bool + version: Optional[str] + compare_url: Optional[str] + head_ref: Optional[str] + head_url: Optional[str] + + +class CommandRunner: + class Exception(Exception): + def __init__(self, message, returncode, stage, stdout, stderr): + super().__init__(message) + self.returncode = returncode + self.stage = stage + self.stdout = stdout + self.stderr = stderr + + @staticmethod + def run_or_fail(command: list[str], stage: str, *args, **kwargs): + if DRY_RUN and command[0] == "gh": + command.insert(0, "echo") + + result = subprocess.run(command, *args, capture_output=True, **kwargs) + + if result.returncode != 0: + raise CommandRunner.Exception( + f"{stage} command failed with exit code {result.returncode}", returncode=result.returncode, + stage=stage, + stdout=result.stdout.decode("utf-8"), + stderr=result.stderr.decode("utf-8") + ) + + return result + + +class DependencyStore: + store: DependencyYAML = { + "dependencies": {} + } + + @staticmethod + def set(data: DependencyYAML): + DependencyStore.store = data + + @staticmethod + def update_dependency_version(path: str, version: str) -> DependencyYAML: + with CodeTimer(f"store deepcopy: {path}"): + store_copy = deepcopy(DependencyStore.store) + + dependency = store_copy["dependencies"].get(path, {}) + dependency["version"] = version + store_copy["dependencies"][path] = dependency + + return store_copy + + @staticmethod + def write_store(file: str, data: DependencyYAML): + with open(file, "w") as yaml_file: + yaml.safe_dump(data, yaml_file, sort_keys=False) + + +class Dependency: + def __init__(self, path: str, values: DependencyDict): + self.path = path + self.values = values + + self.name: str = "" + self.desc: str = "" + self.kind: str = "" + + match path.split("/"): + case ["plugins", name]: + self.name = name + self.kind = "plugin" + self.desc = f"{name} plugin" + case ["themes", name]: + self.name = name.replace(".zsh-theme", "") + self.kind = "theme" + self.desc = f"{self.name} theme" + case _: + self.name = self.desc = path + + def __str__(self): + output: str = "" + for key in DependencyDict.__dict__['__annotations__'].keys(): + if key not in self.values: + output += f"{key}: None\n" + continue + + value = self.values[key] + if "\n" not in value: + output += f"{key}: {value}\n" + else: + output += f"{key}:\n " + output += value.replace("\n", "\n ", value.count("\n") - 1) + return output + + def update_or_notify(self): + # Print dependency settings + print(f"Processing {self.desc}...", file=sys.stderr) + print(self, file=sys.stderr) + + # Check for updates + repo = self.values["repo"] + remote_branch = self.values["branch"] + version = self.values["version"] + is_tag = version.startswith("tag:") + + try: + with CodeTimer(f"update check: {repo}"): + if is_tag: + status = GitHub.check_newer_tag(repo, version.replace("tag:", "")) + else: + status = GitHub.check_updates(repo, remote_branch, version) + + if status["has_updates"]: + short_sha = status["head_ref"][:8] + new_version = status["version"] if is_tag else short_sha + + try: + # Create new branch + branch = Git.create_branch(self.path, new_version) + + # Update dependencies.yml file + self.__update_yaml(f"tag:{new_version}" if is_tag else status["version"]) + + # Update dependency files + self.__apply_upstream_changes() + + # Add all changes and commit + Git.add_and_commit(self.name, short_sha) + + # Push changes to remote + Git.push(branch) + + # Create GitHub PR + GitHub.create_pr( + branch, + f"feat({self.name}): update to version {new_version}", + f"""## Description + +Update for **{self.desc}**: update to version [{new_version}]({status['head_url']}). +Check out the [list of changes]({status['compare_url']}). +""" + ) + + # Clean up repository + Git.clean_repo() + except (CommandRunner.Exception, shutil.Error) as e: + # Handle exception on automatic update + match type(e): + case CommandRunner.Exception: + # Print error message + print(f"Error running {e.stage} command: {e.returncode}", file=sys.stderr) + print(e.stderr, file=sys.stderr) + case shutil.Error: + print(f"Error copying files: {e}", file=sys.stderr) + + try: + Git.clean_repo() + except CommandRunner.Exception as e: + print(f"Error reverting repository to clean state: {e}", file=sys.stderr) + sys.exit(1) + + # Create a GitHub issue to notify maintainer + title = f"{self.path}: update to {new_version}" + body = ( + f"""## Description + +There is a new version of `{self.name}` {self.kind} available. + +New version: [{new_version}]({status['head_url']}) +Check out the [list of changes]({status['compare_url']}). +""" + ) + + print(f"Creating GitHub issue", file=sys.stderr) + print(f"{title}\n\n{body}", file=sys.stderr) + GitHub.create_issue(title, body) + except Exception as e: + print(e, file=sys.stderr) + + def __update_yaml(self, new_version: str) -> None: + dep_yaml = DependencyStore.update_dependency_version(self.path, new_version) + DependencyStore.write_store(DEPS_YAML_FILE, dep_yaml) + + def __apply_upstream_changes(self) -> None: + # Patterns to ignore in copying files from upstream repo + GLOBAL_IGNORE = [ + ".git", + ".github", + ".gitignore" + ] + + path = os.path.abspath(self.path) + precopy = self.values.get("precopy") + postcopy = self.values.get("postcopy") + + repo = self.values["repo"] + branch = self.values["branch"] + remote_url = f"https://github.com/{repo}.git" + repo_dir = os.path.join(TMP_DIR, repo) + + # Clone repository + Git.clone(remote_url, branch, repo_dir, reclone=True) + + # Run precopy on tmp repo + if precopy is not None: + print("Running precopy script:", end="\n ", file=sys.stderr) + print(precopy.replace("\n", "\n ", precopy.count("\n") - 1), file=sys.stderr) + CommandRunner.run_or_fail(["bash", "-c", precopy], cwd=repo_dir, stage="Precopy") + + # Copy files from upstream repo + print(f"Copying files from {repo_dir} to {path}", file=sys.stderr) + shutil.copytree(repo_dir, path, dirs_exist_ok=True, ignore=shutil.ignore_patterns(*GLOBAL_IGNORE)) + + # Run postcopy on our repository + if postcopy is not None: + print("Running postcopy script:", end="\n ", file=sys.stderr) + print(postcopy.replace("\n", "\n ", postcopy.count("\n") - 1), file=sys.stderr) + CommandRunner.run_or_fail(["bash", "-c", postcopy], cwd=path, stage="Postcopy") + + +class Git: + default_branch = "master" + + @staticmethod + def clone(remote_url: str, branch: str, repo_dir: str, reclone=False): + # If repo needs to be fresh + if reclone and os.path.exists(repo_dir): + shutil.rmtree(repo_dir) + + # Clone repo in tmp directory and checkout branch + if not os.path.exists(repo_dir): + print(f"Cloning {remote_url} to {repo_dir} and checking out {branch}", file=sys.stderr) + CommandRunner.run_or_fail(["git", "clone", "--depth=1", "-b", branch, remote_url, repo_dir], stage="Clone") + + @staticmethod + def create_branch(path: str, version: str): + # Get current branch name + result = CommandRunner.run_or_fail(["git", "rev-parse", "--abbrev-ref", "HEAD"], stage="GetDefaultBranch") + Git.default_branch = result.stdout.decode("utf-8").strip() + + # Create new branch and return created branch name + branch_name = f"update/{path}/{version}" + CommandRunner.run_or_fail(["git", "checkout", "-b", branch_name], stage="CreateBranch") + return branch_name + + @staticmethod + def add_and_commit(scope: str, version: str): + user_name = os.environ.get("GIT_APP_NAME") + user_email = os.environ.get("GIT_APP_EMAIL") + + # Add all files to git staging + CommandRunner.run_or_fail(["git", "add", "-A", "-v"], stage="AddFiles") + + # Reset environment and git config + clean_env = os.environ.copy() + clean_env["LANG"]="C.UTF-8" + clean_env["GIT_CONFIG_GLOBAL"]="/dev/null" + clean_env["GIT_CONFIG_NOSYSTEM"]="1" + + # Commit with settings above + CommandRunner.run_or_fail([ + "git", + "-c", f"user.name={user_name}", + "-c", f"user.email={user_email}", + "commit", + "-m", f"feat({scope}): update to {version}" + ], stage="CreateCommit", env=clean_env) + + @staticmethod + def push(branch: str): + CommandRunner.run_or_fail(["git", "push", "-u", "origin", branch], stage="PushBranch") + + @staticmethod + def clean_repo(): + CommandRunner.run_or_fail(["git", "reset", "--hard", "HEAD"], stage="ResetRepository") + CommandRunner.run_or_fail(["git", "checkout", Git.default_branch], stage="CheckoutDefaultBranch") + + +class GitHub: + @staticmethod + def check_newer_tag(repo, current_tag) -> UpdateStatus: + # GET /repos/:owner/:repo/git/refs/tags + url = f"https://api.github.com/repos/{repo}/git/refs/tags" + + # Send a GET request to the GitHub API + response = requests.get(url) + + # If the request was successful + if response.status_code == 200: + # Parse the JSON response + data = response.json() + + if len(data) == 0: + return { + "has_updates": False, + } + + latest_ref = data[-1] + latest_tag = latest_ref["ref"].replace("refs/tags/", "") + + if latest_tag == current_tag: + return { + "has_updates": False, + } + + return { + "has_updates": True, + "version": latest_tag, + "compare_url": f"https://github.com/{repo}/compare/{current_tag}...{latest_tag}", + "head_ref": latest_ref["object"]["sha"], + "head_url": f"https://github.com/{repo}/releases/tag/{latest_tag}", + } + else: + # If the request was not successful, raise an exception + raise Exception(f"GitHub API request failed with status code {response.status_code}: {response.json()}") + + @staticmethod + def check_updates(repo, branch, version) -> UpdateStatus: + # TODO: add support for semver updating (based on tags) + # Check if upstream github repo has a new version + # GitHub API URL for comparing two commits + url = f"https://api.github.com/repos/{repo}/compare/{version}...{branch}" + + # Send a GET request to the GitHub API + response = requests.get(url) + + # If the request was successful + if response.status_code == 200: + # Parse the JSON response + data = response.json() + + # If the base is behind the head, there is a newer version + has_updates = data["status"] != "identical" + + if not has_updates: + return { + "has_updates": False, + } + + return { + "has_updates": data["status"] != "identical", + "version": data["commits"][-1]["sha"], + "compare_url": data["permalink_url"], + "head_ref": data["commits"][-1]["sha"], + "head_url": data["commits"][-1]["html_url"] + } + else: + # If the request was not successful, raise an exception + raise Exception(f"GitHub API request failed with status code {response.status_code}: {response.json()}") + + @staticmethod + def create_issue(title: str, body: str) -> None: + cmd = [ + "gh", + "issue", + "create", + "-t", title, + "-b", body + ] + CommandRunner.run_or_fail(cmd, stage="CreateIssue") + + @staticmethod + def create_pr(branch: str, title: str, body: str) -> None: + cmd = [ + "gh", + "pr", + "create", + "-B", Git.default_branch, + "-H", branch, + "-t", title, + "-b", body + ] + CommandRunner.run_or_fail(cmd, stage="CreatePullRequest") + + +def main(): + # Load the YAML file + with open(DEPS_YAML_FILE, "r") as yaml_file: + data: DependencyYAML = yaml.safe_load(yaml_file) + + if "dependencies" not in data: + raise Exception(f"dependencies.yml not properly formatted") + + # Cache YAML version + DependencyStore.set(data) + + dependencies = data["dependencies"] + for path in dependencies: + dependency = Dependency(path, dependencies[path]) + dependency.update_or_notify() + +if __name__ == "__main__": + main() diff --git a/.github/workflows/installer.yml b/.github/workflows/installer.yml new file mode 100644 index 000000000..5593c9175 --- /dev/null +++ b/.github/workflows/installer.yml @@ -0,0 +1,56 @@ +name: Test and Deploy installer +on: + workflow_dispatch: {} + push: + paths: + - 'tools/install.sh' + - '.github/workflows/installer/**' + - '.github/workflows/installer.yml' + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: false + +permissions: + contents: read # to checkout + +jobs: + test: + name: Test installer + if: github.repository == 'ohmyzsh/ohmyzsh' + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: + - ubuntu-latest + - macos-latest + steps: + - name: Set up git repository + uses: actions/checkout@v4 + - name: Install zsh + if: runner.os == 'Linux' + run: sudo apt-get update; sudo apt-get install zsh + - name: Test installer + run: sh ./tools/install.sh + + deploy: + name: Deploy installer in install.ohmyz.sh + if: github.ref == 'refs/heads/master' + runs-on: ubuntu-latest + environment: vercel + needs: + - test + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Install Vercel CLI + run: npm install -g vercel + - name: Setup project and deploy + env: + VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} + VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} + VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }} + run: | + cp tools/install.sh .github/workflows/installer/install.sh + cd .github/workflows/installer + vc deploy --prod -t "$VERCEL_TOKEN" diff --git a/.github/workflows/installer/.gitignore b/.github/workflows/installer/.gitignore new file mode 100644 index 000000000..f66fce310 --- /dev/null +++ b/.github/workflows/installer/.gitignore @@ -0,0 +1 @@ +install.sh diff --git a/.github/workflows/installer/.vercelignore b/.github/workflows/installer/.vercelignore new file mode 100644 index 000000000..41b233364 --- /dev/null +++ b/.github/workflows/installer/.vercelignore @@ -0,0 +1,2 @@ +/* +!/install.sh diff --git a/.github/workflows/installer/vercel.json b/.github/workflows/installer/vercel.json new file mode 100644 index 000000000..524dc3c0f --- /dev/null +++ b/.github/workflows/installer/vercel.json @@ -0,0 +1,23 @@ +{ + "headers": [ + { + "source": "/((?!favicon.ico).*)", + "headers": [ + { + "key": "Content-Type", + "value": "text/plain" + }, + { + "key": "Content-Disposition", + "value": "inline; filename=\"install.sh\"" + } + ] + } + ], + "rewrites": [ + { + "source": "/((?!favicon.ico|install.sh).*)", + "destination": "/install.sh" + } + ] +} diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8ee2df3d8..264ac31f3 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -20,19 +20,13 @@ permissions: jobs: tests: name: Run tests - runs-on: ${{ matrix.os }} + runs-on: ubuntu-latest if: github.repository == 'ohmyzsh/ohmyzsh' - strategy: - matrix: - os: [ubuntu-latest, macos-latest] steps: - name: Set up git repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install zsh - if: runner.os == 'Linux' run: sudo apt-get update; sudo apt-get install zsh - - name: Test installer - run: sh ./tools/install.sh - name: Check syntax run: | for file in ./oh-my-zsh.sh \ diff --git a/.github/workflows/project.yml b/.github/workflows/project.yml index 1d961d8c0..2c2a1cdaa 100644 --- a/.github/workflows/project.yml +++ b/.github/workflows/project.yml @@ -15,9 +15,15 @@ jobs: name: Add to project runs-on: ubuntu-latest if: github.repository == 'ohmyzsh/ohmyzsh' - env: - GITHUB_TOKEN: ${{ secrets.PROJECT_TOKEN }} steps: + - name: Authenticate as @ohmyzsh + id: generate_token + uses: ohmyzsh/github-app-token@v2 + with: + app_id: ${{ secrets.OHMYZSH_APP_ID }} + private_key: ${{ secrets.OHMYZSH_APP_PRIVATE_KEY }} + - name: Store app token + run: echo "GH_TOKEN=${{ steps.generate_token.outputs.token }}" >> "$GITHUB_ENV" - name: Read project data env: ORGANIZATION: ohmyzsh diff --git a/README.md b/README.md index 4042c8c26..dea36fda7 100644 --- a/README.md +++ b/README.md @@ -13,38 +13,43 @@ Finally, you'll begin to get the sort of attention that you have always felt you To learn more, visit [ohmyz.sh](https://ohmyz.sh), follow [@ohmyzsh](https://twitter.com/ohmyzsh) on Twitter, and join us on [Discord](https://discord.gg/ohmyzsh). [![CI](https://github.com/ohmyzsh/ohmyzsh/workflows/CI/badge.svg)](https://github.com/ohmyzsh/ohmyzsh/actions?query=workflow%3ACI) -[![Follow @ohmyzsh](https://img.shields.io/twitter/follow/ohmyzsh?label=Follow+@ohmyzsh&style=flat)](https://twitter.com/intent/follow?screen_name=ohmyzsh) +[![X (formerly Twitter) Follow](https://img.shields.io/twitter/follow/ohmyzsh?label=%40ohmyzsh&logo=x&style=flat)](https://twitter.com/intent/follow?screen_name=ohmyzsh) +[![Mastodon Follow](https://img.shields.io/mastodon/follow/111169632522566717?label=%40ohmyzsh&domain=https%3A%2F%2Fmstdn.social&logo=mastodon&style=flat)](https://mstdn.social/@ohmyzsh) [![Discord server](https://img.shields.io/discord/642496866407284746)](https://discord.gg/ohmyzsh) [![Gitpod ready](https://img.shields.io/badge/Gitpod-ready-blue?logo=gitpod)](https://gitpod.io/#https://github.com/ohmyzsh/ohmyzsh) -[![huntr.dev](https://cdn.huntr.dev/huntr_security_badge_mono.svg)](https://huntr.dev/bounties/disclose/?utm_campaign=ohmyzsh%2Fohmyzsh&utm_medium=social&utm_source=github&target=https%3A%2F%2Fgithub.com%2Fohmyzsh%2Fohmyzsh)
Table of Contents - [Getting Started](#getting-started) + - [Operating System Compatibility](#operating-system-compatibility) - [Prerequisites](#prerequisites) - [Basic Installation](#basic-installation) - - [Manual inspection](#manual-inspection) + - [Manual Inspection](#manual-inspection) - [Using Oh My Zsh](#using-oh-my-zsh) - [Plugins](#plugins) - [Enabling Plugins](#enabling-plugins) - [Using Plugins](#using-plugins) - [Themes](#themes) - - [Selecting a Theme](#selecting-a-theme) + - [Selecting A Theme](#selecting-a-theme) - [FAQ](#faq) - [Advanced Topics](#advanced-topics) - [Advanced Installation](#advanced-installation) - [Custom Directory](#custom-directory) - - [Unattended install](#unattended-install) - - [Installing from a forked repository](#installing-from-a-forked-repository) + - [Unattended Install](#unattended-install) + - [Installing From A Forked Repository](#installing-from-a-forked-repository) - [Manual Installation](#manual-installation) - [Installation Problems](#installation-problems) - - [Custom Plugins and Themes](#custom-plugins-and-themes) + - [Custom Plugins And Themes](#custom-plugins-and-themes) + - [Enable GNU ls In macOS And freeBSD Systems](#enable-gnu-ls-in-macos-and-freebsd-systems) + - [Skip Aliases](#skip-aliases) + - [Disable async git prompt](#disable-async-git-prompt) - [Getting Updates](#getting-updates) + - [Updates Verbosity](#updates-verbosity) - [Manual Updates](#manual-updates) - [Uninstalling Oh My Zsh](#uninstalling-oh-my-zsh) -- [How do I contribute to Oh My Zsh?](#how-do-i-contribute-to-oh-my-zsh) - - [Do NOT send us themes](#do-not-send-us-themes) +- [How Do I Contribute To Oh My Zsh?](#how-do-i-contribute-to-oh-my-zsh) + - [Do Not Send Us Themes](#do-not-send-us-themes) - [Contributors](#contributors) - [Follow Us](#follow-us) - [Merchandise](#merchandise) @@ -55,9 +60,21 @@ To learn more, visit [ohmyz.sh](https://ohmyz.sh), follow [@ohmyzsh](https://twi ## Getting Started +### Operating System Compatibility + +| O/S | Status | +| :------------- | :-----: | +| Android | βœ… | +| freeBSD | βœ… | +| LCARS | πŸ›Έ | +| Linux | βœ… | +| macOS | βœ… | +| OS/2 Warp | ❌ | +| Windows (WSL2) | βœ… | + + ### Prerequisites -- A Unix-like operating system: macOS, Linux, BSD. On Windows: WSL2 is preferred, but cygwin or msys also mostly work. - [Zsh](https://www.zsh.org) should be installed (v4.3.9 or more recent is fine but we prefer 5.0.8 and newer). If not pre-installed (run `zsh --version` to confirm), check the following wiki instructions here: [Installing ZSH](https://github.com/ohmyzsh/ohmyzsh/wiki/Installing-ZSH) - `curl` or `wget` should be installed - `git` should be installed (recommended v2.4.11 or higher) @@ -72,9 +89,17 @@ Oh My Zsh is installed by running one of the following commands in your terminal | **wget** | `sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"` | | **fetch** | `sh -c "$(fetch -o - https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"` | +Alternatively, the installer is also mirrored outside GitHub. Using this URL instead may be required if you're in a country like India or China, that blocks `raw.githubusercontent.com`: + +| Method | Command | +| :-------- | :------------------------------------------------------------------------------------------------ | +| **curl** | `sh -c "$(curl -fsSL https://install.ohmyz.sh/)"` | +| **wget** | `sh -c "$(wget -O- https://install.ohmyz.sh/)"` | +| **fetch** | `sh -c "$(fetch -o - https://install.ohmyz.sh/)"` | + _Note that any previous `.zshrc` will be renamed to `.zshrc.pre-oh-my-zsh`. After installation, you can move the configuration you want to preserve into the new `.zshrc`._ -#### Manual inspection +#### Manual Inspection It's a good idea to inspect the install script from projects you don't yet know. You can do that by downloading the install script first, looking through it so everything looks normal, @@ -85,6 +110,8 @@ wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh sh install.sh ``` +If the above URL times out or otherwise fails, you may have to substitute the URL for `https://install.ohmyz.sh` to be able to get the script. + ## Using Oh My Zsh ### Plugins @@ -123,7 +150,7 @@ Each built-in plugin includes a **README**, documenting it. This README should s We'll admit it. Early in the Oh My Zsh world, we may have gotten a bit too theme happy. We have over one hundred and fifty themes now bundled. Most of them have [screenshots](https://github.com/ohmyzsh/ohmyzsh/wiki/Themes) on the wiki (We are working on updating this!). Check them out! -#### Selecting a Theme +#### Selecting A Theme _Robby's theme is the default one. It's not the fanciest one. It's not the simplest one. It's just the right one (for him)._ @@ -194,7 +221,7 @@ like this: ZSH="$HOME/.dotfiles/oh-my-zsh" sh install.sh ``` -#### Unattended install +#### Unattended Install If you're running the Oh My Zsh install script as part of an automated install, you can pass the `--unattended` flag to the `install.sh` script. This will have the effect of not trying to change @@ -204,7 +231,9 @@ the default shell, and it also won't run `zsh` when the installation has finishe sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended ``` -#### Installing from a forked repository +If you're in China, India, or another country that blocks `raw.githubusercontent.com`, you may have to substitute the URL for `https://install.ohmyz.sh` for it to install. + +#### Installing From A Forked Repository The install script also accepts these variables to allow installation of a different repository: @@ -229,19 +258,19 @@ REPO=apjanke/oh-my-zsh BRANCH=edge sh install.sh #### Manual Installation -##### 1. Clone the repository +##### 1. Clone The Repository ```sh git clone https://github.com/ohmyzsh/ohmyzsh.git ~/.oh-my-zsh ``` -##### 2. _Optionally_, backup your existing `~/.zshrc` file +##### 2. _Optionally_, Backup Your Existing `~/.zshrc` File ```sh cp ~/.zshrc ~/.zshrc.orig ``` -##### 3. Create a new zsh configuration file +##### 3. Create A New Zsh Configuration File You can create a new zsh config file by copying the template that we have included for you. @@ -249,7 +278,7 @@ You can create a new zsh config file by copying the template that we have includ cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc ``` -##### 4. Change your default shell +##### 4. Change Your Default Shell ```sh chsh -s $(which zsh) @@ -257,7 +286,7 @@ chsh -s $(which zsh) You must log out from your user session and log back in to see this change. -##### 5. Initialize your new zsh configuration +##### 5. Initialize Your New Zsh Configuration Once you open up a new terminal window, it should load zsh with Oh My Zsh's configuration. @@ -268,7 +297,7 @@ If you have any hiccups installing, here are a few common fixes. - You _might_ need to modify your `PATH` in `~/.zshrc` if you're not able to find some commands after switching to `oh-my-zsh`. - If you installed manually or changed the install location, check the `ZSH` environment variable in `~/.zshrc`. -### Custom Plugins and Themes +### Custom Plugins And Themes If you want to override any of the default behaviors, just add a new file (ending in `.zsh`) in the `custom/` directory. @@ -276,16 +305,83 @@ If you have many functions that go well together, you can put them as a `XYZ.plu If you would like to override the functionality of a plugin distributed with Oh My Zsh, create a plugin of the same name in the `custom/plugins/` directory and it will be loaded instead of the one in `plugins/`. -### Remove directories aliases +### Enable GNU ls In macOS And freeBSD Systems -If you want to skip ohmyzsh default -[directories aliases](https://github.com/ohmyzsh/ohmyzsh/blob/master/lib/directories.zsh) you can add the -following snippet to your `zshrc`, before loading `oh-my-zsh.sh` script: + + +The default behaviour in Oh My Zsh is to use BSD `ls` in macOS and freeBSD systems. If GNU `ls` is installed +(as `gls` command), you can choose to use it instead. To do it, you can use zstyle-based config before +sourcing `oh-my-zsh.sh`: ```zsh +zstyle ':omz:lib:theme-and-appearance' gnu-ls yes +``` + +_Note: this is not compatible with `DISABLE_LS_COLORS=true`_ + +### Skip Aliases + + + +If you want to skip default Oh My Zsh aliases (those defined in `lib/*` files) or plugin aliases, +you can use the settings below in your `~/.zshrc` file, **before Oh My Zsh is loaded**. Note that +there are many different ways to skip aliases, depending on your needs. + +```sh +# Skip all aliases, in lib files and enabled plugins +zstyle ':omz:*' aliases no + +# Skip all aliases in lib files +zstyle ':omz:lib:*' aliases no +# Skip only aliases defined in the directories.zsh lib file +zstyle ':omz:lib:directories' aliases no + +# Skip all plugin aliases +zstyle ':omz:plugins:*' aliases no +# Skip only the aliases from the git plugin +zstyle ':omz:plugins:git' aliases no +``` + +You can combine these in other ways taking into account that more specific scopes takes precedence: + +```sh +# Skip all plugin aliases, except for the git plugin +zstyle ':omz:plugins:*' aliases no +zstyle ':omz:plugins:git' aliases yes +``` + +A previous version of this feature was using the setting below, which has been removed: + +```sh zstyle ':omz:directories' aliases no ``` +Instead, you can now use the following: + +```sh +zstyle ':omz:lib:directories' aliases no +``` + +### Disable async git prompt + +Async prompt functions are an experimental feature (included on April 3, 2024) that allows Oh My Zsh to render prompt information +asyncronously. This can improve prompt rendering performance, but it might not work well with some setups. We hope that's not an +issue, but if you're seeing problems with this new feature, you can turn it off by setting the following in your .zshrc file, +before Oh My Zsh is sourced: + +```sh +zstyle ':omz:alpha:lib:git' async-prompt no +``` + +#### Notice + +> This feature is currently in a testing phase and it may be subject to change in the future. +> It is also not currently compatible with plugin managers such as zpm or zinit, which don't +> source the init script (`oh-my-zsh.sh`) where this feature is implemented in. + +> It is also not currently aware of "aliases" that are defined as functions. Example of such +> are `gccd`, `ggf`, or `ggl` functions from the git plugin. + ## Getting Updates By default, you will be prompted to check for updates every 2 weeks. You can choose other update modes by adding a line to your `~/.zshrc` file, **before Oh My Zsh is loaded**: @@ -317,6 +413,18 @@ zstyle ':omz:update' frequency 7 zstyle ':omz:update' frequency 0 ``` +### Updates Verbosity + +You can also limit the update verbosity with the following settings: + +```sh +zstyle ':omz:update' verbose default # default update prompt + +zstyle ':omz:update' verbose minimal # only few lines + +zstyle ':omz:update' verbose silent # only errors +``` + ### Manual Updates If you'd like to update at any point in time (maybe someone just released a new plugin and you don't want to wait a week?) you just need to run: @@ -333,7 +441,7 @@ Oh My Zsh isn't for everyone. We'll miss you, but we want to make this an easy b If you want to uninstall `oh-my-zsh`, just run `uninstall_oh_my_zsh` from the command-line. It will remove itself and revert your previous `bash` or `zsh` configuration. -## How do I contribute to Oh My Zsh? +## How Do I Contribute To Oh My Zsh? Before you participate in our delightful community, please read the [code of conduct](CODE_OF_CONDUCT.md). @@ -343,7 +451,7 @@ We also need people to test out pull requests. So take a look through [the open See [Contributing](CONTRIBUTING.md) for more details. -### Do NOT send us themes +### Do Not Send Us Themes We have (more than) enough themes for the time being. Please add your theme to the [external themes](https://github.com/ohmyzsh/ohmyzsh/wiki/External-themes) wiki page. @@ -353,6 +461,10 @@ Oh My Zsh has a vibrant community of happy users and delightful contributors. Wi Thank you so much! + + + + ## Follow Us We're on social media: diff --git a/SECURITY.md b/SECURITY.md index 7e5c8eed0..ae7458ee2 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -17,8 +17,7 @@ In the near future we will introduce versioning, so expect this section to chang **Do not submit an issue or pull request**: this might reveal the vulnerability. -Instead, you should email the maintainers directly at: [**security@ohmyz.sh**](mailto:security@ohmyz.sh). +Instead, you should email the maintainers directly at: [**security@ohmyz.sh**](mailto:security@ohmyz.sh), +or using the link to [privately report a vulnerability with GitHub](https://github.com/ohmyzsh/ohmyzsh/security/advisories/new). We will deal with the vulnerability privately and submit a patch as soon as possible. - -You can also submit your vulnerability report to [huntr.dev](https://huntr.dev/bounties/disclose/?utm_campaign=ohmyzsh%2Fohmyzsh&utm_medium=social&utm_source=github&target=https%3A%2F%2Fgithub.com%2Fohmyzsh%2Fohmyzsh) and see if you can get a bounty reward. diff --git a/custom/example.zsh b/custom/example.zsh new file mode 100644 index 000000000..c194f49d7 --- /dev/null +++ b/custom/example.zsh @@ -0,0 +1,12 @@ +# Put files in this folder to add your own custom functionality. +# See: https://github.com/ohmyzsh/ohmyzsh/wiki/Customization +# +# Files in the custom/ directory will be: +# - loaded automatically by the init script, in alphabetical order +# - loaded last, after all built-ins in the lib/ directory, to override them +# - ignored by git by default +# +# Example: add custom/shortcuts.zsh for shortcuts to your local projects +# +# brainstormr=~/Projects/development/planetargon/brainstormr +# cd $brainstormr diff --git a/custom/plugins/example/example.plugin.zsh b/custom/plugins/example/example.plugin.zsh new file mode 100644 index 000000000..83611fe3f --- /dev/null +++ b/custom/plugins/example/example.plugin.zsh @@ -0,0 +1,3 @@ +# Add your own custom plugins in the custom/plugins directory. Plugins placed +# here will override ones with the same name in the main plugins directory. +# See: https://github.com/ohmyzsh/ohmyzsh/wiki/Customization#overriding-and-adding-plugins diff --git a/custom/themes/example.zsh-theme b/custom/themes/example.zsh-theme new file mode 100644 index 000000000..5551207f8 --- /dev/null +++ b/custom/themes/example.zsh-theme @@ -0,0 +1,6 @@ +# Put your custom themes in this folder. +# See: https://github.com/ohmyzsh/ohmyzsh/wiki/Customization#overriding-and-adding-themes +# +# Example: + +PROMPT="%{$fg[red]%}%n%{$reset_color%}@%{$fg[blue]%}%m %{$fg[yellow]%}%~ %{$reset_color%}%% " diff --git a/lib/async_prompt.zsh b/lib/async_prompt.zsh new file mode 100644 index 000000000..a83c57f35 --- /dev/null +++ b/lib/async_prompt.zsh @@ -0,0 +1,144 @@ +# The async code is taken from +# https://github.com/zsh-users/zsh-autosuggestions/blob/master/src/async.zsh +# https://github.com/woefe/git-prompt.zsh/blob/master/git-prompt.zsh + +zmodload zsh/system +autoload -Uz is-at-least + +# For now, async prompt function handlers are set up like so: +# First, define the async function handler and register the handler +# with _omz_register_handler: +# +# function _git_prompt_status_async { +# # Do some expensive operation that outputs to stdout +# } +# _omz_register_handler _git_prompt_status_async +# +# Then add a stub prompt function in `$PROMPT` or similar prompt variables, +# which will show the output of "$_OMZ_ASYNC_OUTPUT[handler_name]": +# +# function git_prompt_status { +# echo -n $_OMZ_ASYNC_OUTPUT[_git_prompt_status_async] +# } +# +# RPROMPT='$(git_prompt_status)' +# +# This API is subject to change and optimization. Rely on it at your own risk. + +function _omz_register_handler { + setopt localoptions noksharrays + typeset -ga _omz_async_functions + # we want to do nothing if there's no $1 function or we already set it up + if [[ -z "$1" ]] || (( ! ${+functions[$1]} )) \ + || (( ${_omz_async_functions[(Ie)$1]} )); then + return + fi + _omz_async_functions+=("$1") + # let's add the hook to async_request if it's not there yet + if (( ! ${precmd_functions[(Ie)_omz_async_request]} )) \ + && (( ${+functions[_omz_async_request]})); then + autoload -Uz add-zsh-hook + add-zsh-hook precmd _omz_async_request + fi +} + +# Set up async handlers and callbacks +function _omz_async_request { + local -i ret=$? + typeset -gA _OMZ_ASYNC_FDS _OMZ_ASYNC_PIDS _OMZ_ASYNC_OUTPUT + + # executor runs a subshell for all async requests based on key + local handler + for handler in ${_omz_async_functions}; do + (( ${+functions[$handler]} )) || continue + + local fd=${_OMZ_ASYNC_FDS[$handler]:--1} + local pid=${_OMZ_ASYNC_PIDS[$handler]:--1} + + # If we've got a pending request, cancel it + if (( fd != -1 && pid != -1 )) && { true <&$fd } 2>/dev/null; then + # Close the file descriptor and remove the handler + exec {fd}<&- + zle -F $fd + + # Zsh will make a new process group for the child process only if job + # control is enabled (MONITOR option) + if [[ -o MONITOR ]]; then + # Send the signal to the process group to kill any processes that may + # have been forked by the async function handler + kill -TERM -$pid 2>/dev/null + else + # Kill just the child process since it wasn't placed in a new process + # group. If the async function handler forked any child processes they may + # be orphaned and left behind. + kill -TERM $pid 2>/dev/null + fi + fi + + # Define global variables to store the file descriptor, PID and output + _OMZ_ASYNC_FDS[$handler]=-1 + _OMZ_ASYNC_PIDS[$handler]=-1 + + # Fork a process to fetch the git status and open a pipe to read from it + exec {fd}< <( + # Tell parent process our PID + builtin echo ${sysparams[pid]} + # Set exit code for the handler if used + () { return $ret } + # Run the async function handler + $handler + ) + + # Save FD for handler + _OMZ_ASYNC_FDS[$handler]=$fd + + # There's a weird bug here where ^C stops working unless we force a fork + # See https://github.com/zsh-users/zsh-autosuggestions/issues/364 + # and https://github.com/zsh-users/zsh-autosuggestions/pull/612 + is-at-least 5.8 || command true + + # Save the PID from the handler child process + read -u $fd "_OMZ_ASYNC_PIDS[$handler]" + + # When the fd is readable, call the response handler + zle -F "$fd" _omz_async_callback + done +} + +# Called when new data is ready to be read from the pipe +function _omz_async_callback() { + emulate -L zsh + + local fd=$1 # First arg will be fd ready for reading + local err=$2 # Second arg will be passed in case of error + + if [[ -z "$err" || "$err" == "hup" ]]; then + # Get handler name from fd + local handler="${(k)_OMZ_ASYNC_FDS[(r)$fd]}" + + # Store old output which is supposed to be already printed + local old_output="${_OMZ_ASYNC_OUTPUT[$handler]}" + + # Read output from fd + IFS= read -r -u $fd -d '' "_OMZ_ASYNC_OUTPUT[$handler]" + + # Repaint prompt if output has changed + if [[ "$old_output" != "${_OMZ_ASYNC_OUTPUT[$handler]}" ]]; then + zle reset-prompt + zle -R + fi + + # Close the fd + exec {fd}<&- + fi + + # Always remove the handler + zle -F "$fd" + + # Unset global FD variable to prevent closing user created FDs in the precmd hook + _OMZ_ASYNC_FDS[$handler]=-1 + _OMZ_ASYNC_PIDS[$handler]=-1 +} + +autoload -Uz add-zsh-hook +add-zsh-hook precmd _omz_async_request diff --git a/lib/cli.zsh b/lib/cli.zsh index fed00d21d..aa36a6ab5 100644 --- a/lib/cli.zsh +++ b/lib/cli.zsh @@ -11,7 +11,7 @@ function omz { # Subcommand functions start with _ so that they don't # appear as completion entries when looking for `omz` - (( $+functions[_omz::$command] )) || { + (( ${+functions[_omz::$command]} )) || { _omz::help return 1 } @@ -448,7 +448,7 @@ function _omz::plugin::load { if [[ ! -f "$base/_$plugin" && ! -f "$base/$plugin.plugin.zsh" ]]; then _omz::log warn "'$plugin' is not a valid plugin" continue - # It it is a valid plugin, add its directory to $fpath unless it is already there + # It is a valid plugin, add its directory to $fpath unless it is already there elif (( ! ${fpath[(Ie)$base]} )); then fpath=("$base" $fpath) fi @@ -776,10 +776,11 @@ function _omz::update { local last_commit=$(builtin cd -q "$ZSH"; git rev-parse HEAD) # Run update script + zstyle -s ':omz:update' verbose verbose_mode || verbose_mode=default if [[ "$1" != --unattended ]]; then - ZSH="$ZSH" command zsh -f "$ZSH/tools/upgrade.sh" --interactive || return $? + ZSH="$ZSH" command zsh -f "$ZSH/tools/upgrade.sh" -i -v $verbose_mode || return $? else - ZSH="$ZSH" command zsh -f "$ZSH/tools/upgrade.sh" || return $? + ZSH="$ZSH" command zsh -f "$ZSH/tools/upgrade.sh" -v $verbose_mode || return $? fi # Update last updated file diff --git a/lib/clipboard.zsh b/lib/clipboard.zsh index 2f3b6bcad..5d149f056 100644 --- a/lib/clipboard.zsh +++ b/lib/clipboard.zsh @@ -62,7 +62,7 @@ function detect-clipboard() { function clippaste() { powershell.exe -noprofile -command Get-Clipboard; } elif [ -n "${WAYLAND_DISPLAY:-}" ] && (( ${+commands[wl-copy]} )) && (( ${+commands[wl-paste]} )); then function clipcopy() { cat "${1:-/dev/stdin}" | wl-copy &>/dev/null &|; } - function clippaste() { wl-paste; } + function clippaste() { wl-paste --no-newline; } elif [ -n "${DISPLAY:-}" ] && (( ${+commands[xsel]} )); then function clipcopy() { cat "${1:-/dev/stdin}" | xsel --clipboard --input; } function clippaste() { xsel --clipboard --output; } @@ -100,8 +100,8 @@ function detect-clipboard() { fi } -# Detect at startup. A non-zero exit here indicates that the dummy clipboards were set, -# which is not really an error. If the user calls them, they will attempt to redetect -# (for example, perhaps the user has now installed xclip) and then either print an error -# or proceed successfully. -detect-clipboard || true +function clipcopy clippaste { + unfunction clipcopy clippaste + detect-clipboard || true # let one retry + "$0" "$@" +} diff --git a/lib/compfix.zsh b/lib/compfix.zsh index b09b283f2..2fe9d9e64 100644 --- a/lib/compfix.zsh +++ b/lib/compfix.zsh @@ -13,7 +13,7 @@ function handle_completion_insecurities() { # /usr/share/zsh/5.0.6 # # Since the ignorable first line is printed to stderr and thus not captured, - # stderr is squelched to prevent this output from leaking to the user. + # stderr is squelched to prevent this output from leaking to the user. local -aU insecure_dirs insecure_dirs=( ${(f@):-"$(compaudit 2>/dev/null)"} ) diff --git a/lib/completion.zsh b/lib/completion.zsh index 63379b53f..5a233a322 100644 --- a/lib/completion.zsh +++ b/lib/completion.zsh @@ -49,7 +49,7 @@ zstyle ':completion:*:*:*:users' ignored-patterns \ adm amanda apache at avahi avahi-autoipd beaglidx bin cacti canna \ clamav daemon dbus distcache dnsmasq dovecot fax ftp games gdm \ gkrellmd gopher hacluster haldaemon halt hsqldb ident junkbust kdm \ - ldap lp mail mailman mailnull man messagebus mldonkey mysql nagios \ + ldap lp mail mailman mailnull man messagebus mldonkey mysql nagios \ named netdump news nfsnobody nobody nscd ntp nut nx obsrun openvpn \ operator pcap polkitd postfix postgres privoxy pulse pvm quagga radvd \ rpc rpcuser rpm rtkit scard shutdown squid sshd statd svn sync tftp \ diff --git a/lib/diagnostics.zsh b/lib/diagnostics.zsh index eaeba7d23..d67e6fab4 100644 --- a/lib/diagnostics.zsh +++ b/lib/diagnostics.zsh @@ -30,7 +30,7 @@ # # This is written in a defensive style so it still works (and can detect) cases when # basic functionality like echo and which have been redefined. In particular, almost -# everything is invoked with "builtin" or "command", to work in the face of user +# everything is invoked with "builtin" or "command", to work in the face of user # redefinitions. # # OPTIONS @@ -59,7 +59,7 @@ function omz_diagnostic_dump() { emulate -L zsh builtin echo "Generating diagnostic dump; please be patient..." - + local thisfcn=omz_diagnostic_dump local -A opts local opt_verbose opt_noverbose opt_outfile @@ -90,7 +90,7 @@ function omz_diagnostic_dump() { builtin echo builtin echo Diagnostic dump file created at: "$outfile" builtin echo - builtin echo To share this with OMZ developers, post it as a gist on GitHub + builtin echo To share this with OMZ developers, post it as a gist on GitHub builtin echo at "https://gist.github.com" and share the link to the gist. builtin echo builtin echo "WARNING: This dump file contains all your zsh and omz configuration files," @@ -105,8 +105,8 @@ function _omz_diag_dump_one_big_text() { builtin echo oh-my-zsh diagnostic dump builtin echo builtin echo $outfile - builtin echo - + builtin echo + # Basic system and zsh information command date command uname -a @@ -151,7 +151,7 @@ function _omz_diag_dump_one_big_text() { # Core command definitions _omz_diag_dump_check_core_commands || return 1 - builtin echo + builtin echo # ZSH Process state builtin echo Process state: @@ -167,7 +167,7 @@ function _omz_diag_dump_one_big_text() { #TODO: Should this include `env` instead of or in addition to `export`? builtin echo Exported: builtin echo $(builtin export | command sed 's/=.*//') - builtin echo + builtin echo builtin echo Locale: command locale builtin echo @@ -181,7 +181,7 @@ function _omz_diag_dump_one_big_text() { builtin echo builtin echo 'compaudit output:' compaudit - builtin echo + builtin echo builtin echo '$fpath directories:' command ls -lad $fpath builtin echo @@ -224,7 +224,7 @@ function _omz_diag_dump_one_big_text() { local cfgfile cfgfiles # Some files for bash that zsh does not use are intentionally included # to help with diagnosing behavior differences between bash and zsh - cfgfiles=( /etc/zshenv /etc/zprofile /etc/zshrc /etc/zlogin /etc/zlogout + cfgfiles=( /etc/zshenv /etc/zprofile /etc/zshrc /etc/zlogin /etc/zlogout $zdotdir/.zshenv $zdotdir/.zprofile $zdotdir/.zshrc $zdotdir/.zlogin $zdotdir/.zlogout ~/.zsh.pre-oh-my-zsh /etc/bashrc /etc/profile ~/.bashrc ~/.profile ~/.bash_profile ~/.bash_logout ) @@ -258,8 +258,8 @@ function _omz_diag_dump_check_core_commands() { # (For back-compatibility, if any of these are newish, they should be removed, # or at least made conditional on the version of the current running zsh.) # "history" is also excluded because OMZ is known to redefine that - reserved_words=( do done esac then elif else fi for case if while function - repeat time until select coproc nocorrect foreach end '!' '[[' '{' '}' + reserved_words=( do done esac then elif else fi for case if while function + repeat time until select coproc nocorrect foreach end '!' '[[' '{' '}' ) builtins=( alias autoload bg bindkey break builtin bye cd chdir command comparguments compcall compctl compdescribe compfiles compgroups compquote comptags @@ -331,7 +331,7 @@ function _omz_diag_dump_os_specific_version() { case "$OSTYPE" in darwin*) osname=$(command sw_vers -productName) - osver=$(command sw_vers -productVersion) + osver=$(command sw_vers -productVersion) builtin echo "OS Version: $osname $osver build $(sw_vers -buildVersion)" ;; cygwin) diff --git a/lib/directories.zsh b/lib/directories.zsh index 13b680c19..8927a56ad 100644 --- a/lib/directories.zsh +++ b/lib/directories.zsh @@ -4,12 +4,6 @@ setopt auto_pushd setopt pushd_ignore_dups setopt pushdminus -# add (uncommented): -# zstyle ':omz:directories' aliases no -# to your `zshrc` before loading `oh-my-zsh.sh` -# to disable the following aliases and functions - -zstyle -T ':omz:directories' aliases || return 0 alias -g ...='../..' alias -g ....='../../..' diff --git a/lib/functions.zsh b/lib/functions.zsh index 1d85ea38a..f5c671f9c 100644 --- a/lib/functions.zsh +++ b/lib/functions.zsh @@ -5,7 +5,7 @@ function zsh_stats() { } function uninstall_oh_my_zsh() { - env ZSH="$ZSH" sh "$ZSH/tools/uninstall.sh" + command env ZSH="$ZSH" sh "$ZSH/tools/uninstall.sh" } function upgrade_oh_my_zsh() { @@ -182,6 +182,8 @@ function omz_urlencode() { fi # Use LC_CTYPE=C to process text byte-by-byte + # Note that this doesn't work in Termux, as it only has UTF-8 locale. + # Characters will be processed as UTF-8, which is fine for URLs. local i byte ord LC_ALL=C export LC_ALL local reserved=';/?:@&=+$,' @@ -206,6 +208,9 @@ function omz_urlencode() { else if [[ "$byte" == " " && -n $spaces_as_plus ]]; then url_str+="+" + elif [[ "$PREFIX" = *com.termux* ]]; then + # Termux does not have non-UTF8 locales, so just send the UTF-8 character directly + url_str+="$byte" else ord=$(( [##16] #byte )) url_str+="%$ord" diff --git a/lib/git.zsh b/lib/git.zsh index f049f73c2..277c0b3e8 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -1,3 +1,5 @@ +autoload -Uz is-at-least + # The git prompt's git commands are read-only and should not interfere with # other processes. This environment variable is equivalent to running with `git # --no-optional-locks`, but falls back gracefully for older versions of git. @@ -9,14 +11,18 @@ function __git_prompt_git() { GIT_OPTIONAL_LOCKS=0 command git "$@" } -function git_prompt_info() { +function _omz_git_prompt_info() { # If we are on a folder not tracked by git, get out. # Otherwise, check for hide-info at global and local repository level if ! __git_prompt_git rev-parse --git-dir &> /dev/null \ - || [[ "$(__git_prompt_git config --get oh-my-zsh.hide-info 2>/dev/null)" == 1 ]]; then + || [[ "$(__git_prompt_git config --get oh-my-zsh.hide-info 2>/dev/null)" == 1 ]]; then return 0 fi + # Get either: + # - the current branch name + # - the tag name if we are on a tag + # - the short SHA of the current commit local ref ref=$(__git_prompt_git symbolic-ref --short HEAD 2> /dev/null) \ || ref=$(__git_prompt_git describe --tags --exact-match HEAD 2> /dev/null) \ @@ -33,6 +39,56 @@ function git_prompt_info() { echo "${ZSH_THEME_GIT_PROMPT_PREFIX}${ref:gs/%/%%}${upstream:gs/%/%%}$(parse_git_dirty)${ZSH_THEME_GIT_PROMPT_SUFFIX}" } +# Use async version if setting is enabled, or undefined but zsh version is at least 5.0.6 +# https://github.com/ohmyzsh/ohmyzsh/issues/12331#issuecomment-2059460268 +if zstyle -t ':omz:alpha:lib:git' async-prompt \ + || { is-at-least 5.0.6 && zstyle -T ':omz:alpha:lib:git' async-prompt }; then + function git_prompt_info() { + setopt localoptions noksharrays + if [[ -n "$_OMZ_ASYNC_OUTPUT[_omz_git_prompt_info]" ]]; then + echo -n "$_OMZ_ASYNC_OUTPUT[_omz_git_prompt_info]" + fi + } + + function git_prompt_status() { + setopt localoptions noksharrays + if [[ -n "$_OMZ_ASYNC_OUTPUT[_omz_git_prompt_status]" ]]; then + echo -n "$_OMZ_ASYNC_OUTPUT[_omz_git_prompt_status]" + fi + } + + # Conditionally register the async handler, only if it's needed in $PROMPT + # or any of the other prompt variables + function _defer_async_git_register() { + # Check if git_prompt_info is used in a prompt variable + case "${PS1}:${PS2}:${PS3}:${PS4}:${RPROMPT}:${RPS1}:${RPS2}:${RPS3}:${RPS4}" in + *(\$\(git_prompt_info\)|\`git_prompt_info\`)*) + _omz_register_handler _omz_git_prompt_info + ;; + esac + + case "${PS1}:${PS2}:${PS3}:${PS4}:${RPROMPT}:${RPS1}:${RPS2}:${RPS3}:${RPS4}" in + *(\$\(git_prompt_status\)|\`git_prompt_status\`)*) + _omz_register_handler _omz_git_prompt_status + ;; + esac + + add-zsh-hook -d precmd _defer_async_git_register + unset -f _defer_async_git_register + } + + # Register the async handler first. This needs to be done before + # the async request prompt is run + precmd_functions=(_defer_async_git_register $precmd_functions) +else + function git_prompt_info() { + _omz_git_prompt_info + } + function git_prompt_status() { + _omz_git_prompt_status + } +fi + # Checks if working tree is dirty function parse_git_dirty() { local STATUS @@ -161,7 +217,7 @@ function git_prompt_long_sha() { SHA=$(__git_prompt_git rev-parse HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER" } -function git_prompt_status() { +function _omz_git_prompt_status() { [[ "$(__git_prompt_git config --get oh-my-zsh.hide-status 2>/dev/null)" = 1 ]] && return # Maps a git status prefix to an internal constant diff --git a/lib/history.zsh b/lib/history.zsh index 794076904..ec89bc15e 100644 --- a/lib/history.zsh +++ b/lib/history.zsh @@ -1,19 +1,20 @@ ## History wrapper function omz_history { - local clear list - zparseopts -E c=clear l=list + # parse arguments and remove from $@ + local clear list stamp + zparseopts -E -D c=clear l=list f=stamp E=stamp i=stamp - if [[ -n "$clear" ]]; then + if [[ $# -eq 0 ]]; then + # if no arguments provided, show full history starting from 1 + builtin fc $stamp -l 1 + elif [[ -n "$clear" ]]; then # if -c provided, clobber the history file echo -n >| "$HISTFILE" fc -p "$HISTFILE" echo >&2 History file deleted. - elif [[ -n "$list" ]]; then - # if -l provided, run as if calling `fc' directly - builtin fc "$@" else - # unless a number is provided, show all history events (starting from 1) - [[ ${@[-1]-} = *[0-9]* ]] && builtin fc -l "$@" || builtin fc -l "$@" 1 + # otherwise, run `fc -l` with a custom format + builtin fc $stamp -l "$@" fi } diff --git a/lib/key-bindings.zsh b/lib/key-bindings.zsh index aaa73046e..a5650dd81 100644 --- a/lib/key-bindings.zsh +++ b/lib/key-bindings.zsh @@ -32,19 +32,26 @@ if [[ -n "${terminfo[knp]}" ]]; then fi # Start typing + [Up-Arrow] - fuzzy find history forward -if [[ -n "${terminfo[kcuu1]}" ]]; then - autoload -U up-line-or-beginning-search - zle -N up-line-or-beginning-search +autoload -U up-line-or-beginning-search +zle -N up-line-or-beginning-search +bindkey -M emacs "^[[A" up-line-or-beginning-search +bindkey -M viins "^[[A" up-line-or-beginning-search +bindkey -M vicmd "^[[A" up-line-or-beginning-search +if [[ -n "${terminfo[kcuu1]}" ]]; then bindkey -M emacs "${terminfo[kcuu1]}" up-line-or-beginning-search bindkey -M viins "${terminfo[kcuu1]}" up-line-or-beginning-search bindkey -M vicmd "${terminfo[kcuu1]}" up-line-or-beginning-search fi -# Start typing + [Down-Arrow] - fuzzy find history backward -if [[ -n "${terminfo[kcud1]}" ]]; then - autoload -U down-line-or-beginning-search - zle -N down-line-or-beginning-search +# Start typing + [Down-Arrow] - fuzzy find history backward +autoload -U down-line-or-beginning-search +zle -N down-line-or-beginning-search + +bindkey -M emacs "^[[B" down-line-or-beginning-search +bindkey -M viins "^[[B" down-line-or-beginning-search +bindkey -M vicmd "^[[B" down-line-or-beginning-search +if [[ -n "${terminfo[kcud1]}" ]]; then bindkey -M emacs "${terminfo[kcud1]}" down-line-or-beginning-search bindkey -M viins "${terminfo[kcud1]}" down-line-or-beginning-search bindkey -M vicmd "${terminfo[kcud1]}" down-line-or-beginning-search diff --git a/lib/misc.zsh b/lib/misc.zsh index 132f33551..ff2017713 100644 --- a/lib/misc.zsh +++ b/lib/misc.zsh @@ -19,8 +19,13 @@ setopt multios # enable redirect to multiple streams: echo >file1 > setopt long_list_jobs # show long list format job notifications setopt interactivecomments # recognize comments -env_default 'PAGER' 'less' -env_default 'LESS' '-R' +# define pager dependant on what is available (less or more) +if (( ${+commands[less]} )); then + env_default 'PAGER' 'less' + env_default 'LESS' '-R' +elif (( ${+commands[more]} )); then + env_default 'PAGER' 'more' +fi ## super user alias alias _='sudo ' diff --git a/lib/prompt_info_functions.zsh b/lib/prompt_info_functions.zsh index 3dc9b6d10..29aca9b48 100644 --- a/lib/prompt_info_functions.zsh +++ b/lib/prompt_info_functions.zsh @@ -40,5 +40,5 @@ ZSH_THEME_RVM_PROMPT_OPTIONS="i v g" # use this to enable users to see their ruby version, no matter which # version management system they use function ruby_prompt_info() { - echo $(rvm_prompt_info || rbenv_prompt_info || chruby_prompt_info) + echo "$(rvm_prompt_info || rbenv_prompt_info || chruby_prompt_info)" } diff --git a/lib/spectrum.zsh b/lib/spectrum.zsh index 97f5c360a..31e37792c 100644 --- a/lib/spectrum.zsh +++ b/lib/spectrum.zsh @@ -7,6 +7,7 @@ typeset -AHg FX FG BG FX=( reset "%{%}" bold "%{%}" no-bold "%{%}" + dim "%{%}" no-dim "%{%}" italic "%{%}" no-italic "%{%}" underline "%{%}" no-underline "%{%}" blink "%{%}" no-blink "%{%}" diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index 80ca7ef78..d170ffcbf 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -17,7 +17,7 @@ function title { : ${2=$1} case "$TERM" in - cygwin|xterm*|putty*|rxvt*|konsole*|ansi|mlterm*|alacritty|st*|foot) + cygwin|xterm*|putty*|rxvt*|konsole*|ansi|mlterm*|alacritty|st*|foot*|contour*) print -Pn "\e]2;${2:q}\a" # set window name print -Pn "\e]1;${1:q}\a" # set tab name ;; @@ -109,28 +109,55 @@ if [[ -z "$INSIDE_EMACS" || "$INSIDE_EMACS" = vterm ]]; then add-zsh-hook preexec omz_termsupport_preexec fi -# Keep Apple Terminal.app's current working directory updated -# Based on this answer: https://superuser.com/a/315029 -# With extra fixes to handle multibyte chars and non-UTF-8 locales +# Keep terminal emulator's current working directory correct, +# even if the current working directory path contains symbolic links +# +# References: +# - Apple's Terminal.app: https://superuser.com/a/315029 +# - iTerm2: https://iterm2.com/documentation-escape-codes.html (iTerm2 Extension / CurrentDir+RemoteHost) +# - Konsole: https://bugs.kde.org/show_bug.cgi?id=327720#c1 +# - libvte (gnome-terminal, mate-terminal, …): https://bugzilla.gnome.org/show_bug.cgi?id=675987#c14 +# Apparently it had a bug before ~2012 were it would display the unknown OSC 7 code +# +# As of May 2021 mlterm, PuTTY, rxvt, screen, termux & xterm simply ignore the unknown OSC. -if [[ "$TERM_PROGRAM" == "Apple_Terminal" ]] && [[ -z "$INSIDE_EMACS" ]]; then - # Emits the control sequence to notify Terminal.app of the cwd - # Identifies the directory using a file: URI scheme, including - # the host name to disambiguate local vs. remote paths. - function update_terminalapp_cwd() { - emulate -L zsh - - # Percent-encode the host and path names. - local URL_HOST URL_PATH - URL_HOST="$(omz_urlencode -P $HOST)" || return 1 - URL_PATH="$(omz_urlencode -P $PWD)" || return 1 - - # Undocumented Terminal.app-specific control sequence - printf '\e]7;%s\a' "file://$URL_HOST$URL_PATH" - } - - # Use a precmd hook instead of a chpwd hook to avoid contaminating output - add-zsh-hook precmd update_terminalapp_cwd - # Run once to get initial cwd set - update_terminalapp_cwd +# Don't define the function if we're inside Emacs or in an SSH session (#11696) +if [[ -n "$INSIDE_EMACS" || -n "$SSH_CLIENT" || -n "$SSH_TTY" ]]; then + return fi + +# Don't define the function if we're in an unsupported terminal +case "$TERM" in + # all of these either process OSC 7 correctly or ignore entirely + xterm*|putty*|rxvt*|konsole*|mlterm*|alacritty|screen*|tmux*) ;; + contour*|foot*) ;; + *) + # Terminal.app and iTerm2 process OSC 7 correctly + case "$TERM_PROGRAM" in + Apple_Terminal|iTerm.app) ;; + *) return ;; + esac ;; +esac + +# Emits the control sequence to notify many terminal emulators +# of the cwd +# +# Identifies the directory using a file: URI scheme, including +# the host name to disambiguate local vs. remote paths. +function omz_termsupport_cwd { + # Percent-encode the host and path names. + local URL_HOST URL_PATH + URL_HOST="$(omz_urlencode -P $HOST)" || return 1 + URL_PATH="$(omz_urlencode -P $PWD)" || return 1 + + # Konsole errors if the HOST is provided + [[ -z "$KONSOLE_PROFILE_NAME" && -z "$KONSOLE_DBUS_SESSION" ]] || URL_HOST="" + + # common control sequence (OSC 7) to set current host and path + printf "\e]7;file://%s%s\e\\" "${URL_HOST}" "${URL_PATH}" +} + +# Use a precmd hook instead of a chpwd hook to avoid contaminating output +# i.e. when a script or function changes directory without `cd -q`, chpwd +# will be called the output may be swallowed by the script or function. +add-zsh-hook precmd omz_termsupport_cwd diff --git a/lib/theme-and-appearance.zsh b/lib/theme-and-appearance.zsh index d8859b04c..585e969d8 100644 --- a/lib/theme-and-appearance.zsh +++ b/lib/theme-and-appearance.zsh @@ -20,10 +20,25 @@ if command diff --color /dev/null{,} &>/dev/null; then } fi - # Don't set ls coloring if disabled [[ "$DISABLE_LS_COLORS" != true ]] || return 0 +# Default coloring for BSD-based ls +export LSCOLORS="Gxfxcxdxbxegedabagacad" + +# Default coloring for GNU-based ls +if [[ -z "$LS_COLORS" ]]; then + # Define LS_COLORS via dircolors if available. Otherwise, set a default + # equivalent to LSCOLORS (generated via https://geoff.greer.fm/lscolors) + if (( $+commands[dircolors] )); then + [[ -f "$HOME/.dircolors" ]] \ + && source <(dircolors -b "$HOME/.dircolors") \ + || source <(dircolors -b) + else + export LS_COLORS="di=1;36:ln=35:so=32:pi=33:ex=31:bd=34;46:cd=34;43:su=30;41:sg=30;46:tw=30;42:ow=30;43" + fi +fi + function test-ls-args { local cmd="$1" # ls, gls, colorls, ... local args="${@[2,-1]}" # arguments except the first one @@ -50,7 +65,7 @@ case "$OSTYPE" in test-ls-args ls -G && alias ls='ls -G' # Only use GNU ls if installed and there are user defaults for $LS_COLORS, # as the default coloring scheme is not very pretty - [[ -n "$LS_COLORS" || -f "$HOME/.dircolors" ]] \ + zstyle -t ':omz:lib:theme-and-appearance' gnu-ls \ && test-ls-args gls --color \ && alias ls='gls --color=tty' ;; @@ -64,20 +79,3 @@ case "$OSTYPE" in esac unfunction test-ls-args - - -# Default coloring for BSD-based ls -export LSCOLORS="Gxfxcxdxbxegedabagacad" - -# Default coloring for GNU-based ls -if [[ -z "$LS_COLORS" ]]; then - # Define LS_COLORS via dircolors if available. Otherwise, set a default - # equivalent to LSCOLORS (generated via https://geoff.greer.fm/lscolors) - if (( $+commands[dircolors] )); then - [[ -f "$HOME/.dircolors" ]] \ - && source <(dircolors -b "$HOME/.dircolors") \ - || source <(dircolors -b) - else - export LS_COLORS="di=1;36:ln=35:so=32:pi=33:ex=31:bd=34;46:cd=34;43:su=30;41:sg=30;46:tw=30;42:ow=30;43" - fi -fi diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index 363cfca8b..2fb20298a 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -1,14 +1,14 @@ +# ANSI formatting function (\033[m) +# 0: reset, 1: bold, 4: underline, 22: no bold, 24: no underline, 31: red, 33: yellow +omz_f() { + [ $# -gt 0 ] || return + IFS=";" printf "\033[%sm" $* +} +# If stdout is not a terminal ignore all formatting +[ -t 1 ] || omz_f() { :; } + # Protect against non-zsh execution of Oh My Zsh (use POSIX syntax here) [ -n "$ZSH_VERSION" ] || { - # ANSI formatting function (\033[m) - # 0: reset, 1: bold, 4: underline, 22: no bold, 24: no underline, 31: red, 33: yellow - omz_f() { - [ $# -gt 0 ] || return - IFS=";" printf "\033[%sm" $* - } - # If stdout is not a terminal ignore all formatting - [ -t 1 ] || omz_f() { :; } - omz_ptree() { # Get process tree of the current process pid=$$; pids="$pid" @@ -38,6 +38,15 @@ return 1 } +# Check if in emulation mode, if so early return +# https://github.com/ohmyzsh/ohmyzsh/issues/11686 +[[ "$(emulate)" = zsh ]] || { + printf "$(omz_f 1 31)Error:$(omz_f 22) Oh My Zsh can't be loaded in \`$(emulate)\` emulation mode.$(omz_f 0)\n" >&2 + return 1 +} + +unset -f omz_f + # If ZSH is not defined, use the current script's directory. [[ -z "$ZSH" ]] && export ZSH="${${(%):-%x}:a:h}" @@ -143,25 +152,60 @@ unset zcompdump_revision zcompdump_fpath zcompdump_refresh # zcompile the completion dump file if the .zwc is older or missing. if command mkdir "${ZSH_COMPDUMP}.lock" 2>/dev/null; then zrecompile -q -p "$ZSH_COMPDUMP" - command rm -rf "$ZSH_COMPDUMP.zwc.old" "${ZSH_COMPDUMP}.lock" + command rm -rf "$ZSH_COMPDUMP.zwc.old" "${ZSH_COMPDUMP}.lock" fi -# Load all of the config files in ~/oh-my-zsh that end in .zsh +_omz_source() { + local context filepath="$1" + + # Construct zstyle context based on path + case "$filepath" in + lib/*) context="lib:${filepath:t:r}" ;; # :t = lib_name.zsh, :r = lib_name + plugins/*) context="plugins:${filepath:h:t}" ;; # :h = plugins/plugin_name, :t = plugin_name + esac + + local disable_aliases=0 + zstyle -T ":omz:${context}" aliases || disable_aliases=1 + + # Back up alias names prior to sourcing + local -A aliases_pre galiases_pre + if (( disable_aliases )); then + aliases_pre=("${(@kv)aliases}") + galiases_pre=("${(@kv)galiases}") + fi + + # Source file from $ZSH_CUSTOM if it exists, otherwise from $ZSH + if [[ -f "$ZSH_CUSTOM/$filepath" ]]; then + source "$ZSH_CUSTOM/$filepath" + elif [[ -f "$ZSH/$filepath" ]]; then + source "$ZSH/$filepath" + fi + + # Unset all aliases that don't appear in the backed up list of aliases + if (( disable_aliases )); then + if (( #aliases_pre )); then + aliases=("${(@kv)aliases_pre}") + else + (( #aliases )) && unalias "${(@k)aliases}" + fi + if (( #galiases_pre )); then + galiases=("${(@kv)galiases_pre}") + else + (( #galiases )) && unalias "${(@k)galiases}" + fi + fi +} + +# Load all of the lib files in ~/oh-my-zsh/lib that end in .zsh # TIP: Add files you don't want in git to .gitignore -for config_file ("$ZSH"/lib/*.zsh); do - custom_config_file="$ZSH_CUSTOM/lib/${config_file:t}" - [[ -f "$custom_config_file" ]] && config_file="$custom_config_file" - source "$config_file" +for lib_file ("$ZSH"/lib/*.zsh); do + _omz_source "lib/${lib_file:t}" done -unset custom_config_file +unset lib_file # Load all of the plugins that were defined in ~/.zshrc for plugin ($plugins); do - if [[ -f "$ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh" ]]; then - source "$ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh" - elif [[ -f "$ZSH/plugins/$plugin/$plugin.plugin.zsh" ]]; then - source "$ZSH/plugins/$plugin/$plugin.plugin.zsh" - fi + _omz_source "plugins/$plugin/$plugin.plugin.zsh" done unset plugin diff --git a/plugins/alias-finder/.zunit.yml b/plugins/alias-finder/.zunit.yml new file mode 100644 index 000000000..ae65f8ef2 --- /dev/null +++ b/plugins/alias-finder/.zunit.yml @@ -0,0 +1,9 @@ +tap: false +directories: + tests: tests + output: tests/_output + support: tests/_support +time_limit: 0 +fail_fast: false +allow_risky: false +verbose: true diff --git a/plugins/alias-finder/README.md b/plugins/alias-finder/README.md index 409f4b653..6c87c723a 100644 --- a/plugins/alias-finder/README.md +++ b/plugins/alias-finder/README.md @@ -2,45 +2,32 @@ This plugin searches the defined aliases and outputs any that match the command inputted. This makes learning new aliases easier. +## Usage + To use it, add `alias-finder` to the `plugins` array of your zshrc file: ``` plugins=(... alias-finder) ``` -## Usage -To see if there is an alias defined for the command, pass it as an argument to `alias-finder`. This can also run automatically before each command you input - add `ZSH_ALIAS_FINDER_AUTOMATIC=true` to your zshrc if you want this. +To enable it for every single command, set zstyle in your `~/.zshrc`. -## Options +```zsh +# ~/.zshrc + +zstyle ':omz:plugins:alias-finder' autoload yes # disabled by default +zstyle ':omz:plugins:alias-finder' longer yes # disabled by default +zstyle ':omz:plugins:alias-finder' exact yes # disabled by default +zstyle ':omz:plugins:alias-finder' cheaper yes # disabled by default +``` + +As you can see, options are also available with zstyle. + +### Options + +> In order to clarify, let's say `alias a=abc` has source 'abc' and destination 'a'. + +- Use `--longer` or `-l` to include aliases where the source is longer than the input (in other words, the source could contain the whole input). +- Use `--exact` or `-e` to avoid aliases where the source is shorter than the input (in other words, the source must be the same with the input). +- Use `--cheaper` or `-c` to avoid aliases where the destination is longer than the input (in other words, the destination must be the shorter than the input). -- Use `--longer` or `-l` to allow the aliases to be longer than the input (match aliases if they contain the input). -- Use `--exact` or `-e` to avoid matching aliases that are shorter than the input. -## Examples -``` -$ alias-finder "git pull" -gl='git pull' -g=git -``` -``` -$ alias-finder "web_search google oh my zsh" -google='web_search google' -``` -``` -$ alias-finder "git commit -v" -gc="git commit -v" -g=git -``` -``` -$ alias-finder -e "git commit -v" -gc='git commit -v' -``` -``` -$ alias-finder -l "git commit -v" -gc='git commit -v' -'gc!'='git commit -v --amend' -gca='git commit -v -a' -'gca!'='git commit -v -a --amend' -'gcan!'='git commit -v -a --no-edit --amend' -'gcans!'='git commit -v -a -s --no-edit --amend' -'gcn!'='git commit -v --no-edit --amend' -``` diff --git a/plugins/alias-finder/alias-finder.plugin.zsh b/plugins/alias-finder/alias-finder.plugin.zsh index caee9b5a3..5fdfbc835 100644 --- a/plugins/alias-finder/alias-finder.plugin.zsh +++ b/plugins/alias-finder/alias-finder.plugin.zsh @@ -1,44 +1,59 @@ alias-finder() { - local cmd="" exact="" longer="" wordStart="" wordEnd="" multiWordEnd="" - for i in $@; do - case $i in + local cmd=" " exact="" longer="" cheaper="" wordEnd="'{0,1}$" finder="" filter="" + + # build command and options + for c in "$@"; do + case $c in + # TODO: Remove backward compatibility (other than zstyle form) + # set options if exist -e|--exact) exact=true;; -l|--longer) longer=true;; - *) - if [[ -z $cmd ]]; then - cmd=$i - else - cmd="$cmd $i" - fi - ;; + -c|--cheaper) cheaper=true;; + # concatenate cmd + *) cmd="$cmd$c " ;; esac done - cmd=$(sed 's/[].\|$(){}?+*^[]/\\&/g' <<< $cmd) # adds escaping for grep - if (( $(wc -l <<< $cmd) == 1 )); then - while [[ $cmd != "" ]]; do - if [[ $longer = true ]]; then - wordStart="'{0,1}" - else - wordEnd="$" - multiWordEnd="'$" - fi - if [[ $cmd == *" "* ]]; then - local finder="'$cmd$multiWordEnd" - else - local finder=$wordStart$cmd$wordEnd - fi - alias | grep -E "=$finder" - if [[ $exact = true || $longer = true ]]; then - break - else - cmd=$(sed -E 's/ {0,1}[^ ]*$//' <<< $cmd) # removes last word - fi - done + + zstyle -t ':omz:plugins:alias-finder' longer && longer=true + zstyle -t ':omz:plugins:alias-finder' exact && exact=true + zstyle -t ':omz:plugins:alias-finder' cheaper && cheaper=true + + # format cmd for grep + ## - replace newlines with spaces + ## - trim both ends + ## - replace multiple spaces with one space + ## - add escaping character to special characters + cmd=$(echo -n "$cmd" | tr '\n' ' ' | xargs | tr -s '[:space:]' | sed 's/[].\|$(){}?+*^[]/\\&/g') + + if [[ $longer == true ]]; then + wordEnd="" # remove wordEnd to find longer aliases fi + + # find with alias and grep, removing last word each time until no more words + while [[ $cmd != "" ]]; do + finder="'{0,1}$cmd$wordEnd" + + # make filter to find only shorter results than current cmd + if [[ $cheaper == true ]]; then + cmdLen=$(echo -n "$cmd" | wc -c) + filter="^'{0,1}.{0,$((cmdLen - 1))}=" + fi + + alias | grep -E "$filter" | grep -E "=$finder" + + if [[ $exact == true ]]; then + break # because exact case is only one + elif [[ $longer = true ]]; then + break # because above grep command already found every longer aliases during first cycle + fi + + cmd=$(sed -E 's/ {0,}[^ ]*$//' <<< "$cmd") # remove last word + done } preexec_alias-finder() { - if [[ $ZSH_ALIAS_FINDER_AUTOMATIC = true ]]; then + # TODO: Remove backward compatibility (other than zstyle form) + zstyle -t ':omz:plugins:alias-finder' autoload && alias-finder $1 || if [[ $ZSH_ALIAS_FINDER_AUTOMATIC = true ]]; then alias-finder $1 fi } diff --git a/plugins/alias-finder/tests/_output/.gitkeep b/plugins/alias-finder/tests/_output/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/plugins/alias-finder/tests/_support/.gitkeep b/plugins/alias-finder/tests/_support/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/plugins/alias-finder/tests/_support/bootstrap b/plugins/alias-finder/tests/_support/bootstrap new file mode 100644 index 000000000..01076611e --- /dev/null +++ b/plugins/alias-finder/tests/_support/bootstrap @@ -0,0 +1,2 @@ +#!/usr/bin/env zsh +# Write your bootstrap code here diff --git a/plugins/alias-finder/tests/test_run.sh b/plugins/alias-finder/tests/test_run.sh new file mode 100644 index 000000000..6b7abebb6 --- /dev/null +++ b/plugins/alias-finder/tests/test_run.sh @@ -0,0 +1,107 @@ +#!/usr/bin/env zunit + +@setup { + load ../alias-finder.plugin.zsh + + set_git_aliases() { + unalias -a # all + alias g="git" + alias gc="git commit" + alias gcv="git commit -v" + alias gcvs="git commit -v -S" + } +} + +@test 'find aliases that contain input' { + set_git_aliases + + run alias-finder "git" + + assert "${#lines[@]}" equals 1 + assert "${lines[1]}" same_as "g=git" +} + +@test 'find aliases that contain input with whitespaces at ends' { + set_git_aliases + + run alias-finder " git " + + assert "${#lines[@]}" equals 1 + assert "${lines[1]}" same_as "g=git" +} + +@test 'find aliases that contain multiple words' { + set_git_aliases + + run alias-finder "git commit -v" + + assert "${#lines[@]}" equals 3 + assert "${lines[1]}" same_as "gcv='git commit -v'" + assert "${lines[2]}" same_as "gc='git commit'" + assert "${lines[3]}" same_as "g=git" +} + +@test 'find alias that is the same with input when --exact option is set' { + set_git_aliases + + run alias-finder -e "git" + + assert "${#lines[@]}" equals 1 + assert "${lines[1]}" same_as "g=git" +} + +@test 'find alias that is the same with multiple words input when --exact option is set' { + set_git_aliases + + run alias-finder -e "git commit -v" + + assert "${#lines[@]}" equals 1 + assert "${lines[1]}" same_as "gcv='git commit -v'" +} + +@test 'find alias that is the same with or longer than input when --longer option is set' { + set_git_aliases + + run alias-finder -l "git" + + assert "${#lines[@]}" equals 4 + assert "${lines[1]}" same_as "g=git" + assert "${lines[2]}" same_as "gc='git commit'" + assert "${lines[3]}" same_as "gcv='git commit -v'" + assert "${lines[4]}" same_as "gcvs='git commit -v -S'" +} + +@test 'find alias that is the same with or longer than multiple words input when --longer option is set' { + set_git_aliases + + run alias-finder -l "git commit -v" + + assert "${#lines[@]}" equals 2 + assert "${lines[1]}" same_as "gcv='git commit -v'" + assert "${lines[2]}" same_as "gcvs='git commit -v -S'" +} + +@test 'find aliases including expensive (longer) than input' { + set_git_aliases + alias expensiveCommands="git commit" + + run alias-finder "git commit -v" + + assert "${#lines[@]}" equals 4 + assert "${lines[1]}" same_as "gcv='git commit -v'" + assert "${lines[2]}" same_as "expensiveCommands='git commit'" + assert "${lines[3]}" same_as "gc='git commit'" + assert "${lines[4]}" same_as "g=git" +} + +@test 'find aliases excluding expensive (longer) than input when --cheap option is set' { + set_git_aliases + alias expensiveCommands="git commit" + + run alias-finder -c "git commit -v" + + assert "${#lines[@]}" equals 3 + assert "${lines[1]}" same_as "gcv='git commit -v'" + assert "${lines[2]}" same_as "gc='git commit'" + assert "${lines[3]}" same_as "g=git" +} diff --git a/plugins/aliases/README.md b/plugins/aliases/README.md index 6a2da3d74..14f9c5c53 100644 --- a/plugins/aliases/README.md +++ b/plugins/aliases/README.md @@ -15,14 +15,14 @@ Requirements: Python needs to be installed. ## Usage -- `acs`: show all aliases by group +- `als`: show all aliases by group -- `acs -h/--help`: print help mesage +- `als -h/--help`: print help message -- `acs `: filter and highlight aliases by `` +- `als `: filter and highlight aliases by `` -- `acs -g /--group `: show only aliases for group ``. Multiple uses of the flag show all groups +- `als -g /--group `: show only aliases for group ``. Multiple uses of the flag show all groups -- `acs --groups`: show only group names +- `als --groups`: show only group names - ![screenshot](https://cloud.githubusercontent.com/assets/3602957/11581913/cb54fb8a-9a82-11e5-846b-5a67f67ad9ad.png) + ![screenshot](https://github.com/ohmyzsh/ohmyzsh/assets/66907184/5bfa00ea-5fc3-4e97-8b22-2f74f6b948c7) diff --git a/plugins/aliases/aliases.plugin.zsh b/plugins/aliases/aliases.plugin.zsh index 9864de957..7f1ba83b8 100644 --- a/plugins/aliases/aliases.plugin.zsh +++ b/plugins/aliases/aliases.plugin.zsh @@ -4,7 +4,7 @@ 0="${${(M)0:#/*}:-$PWD/$0}" eval ' - function acs(){ + function als(){ (( $+commands[python3] )) || { echo "[error] No python executable detected" return diff --git a/plugins/aliases/cheatsheet.py b/plugins/aliases/cheatsheet.py index f742fba9e..61bf5f956 100644 --- a/plugins/aliases/cheatsheet.py +++ b/plugins/aliases/cheatsheet.py @@ -57,7 +57,7 @@ def pretty_print(cheatsheet, wfilter, group_list=None, groups_only=False): pretty_print_group(key, [ alias for alias in aliases if alias[0].find(wfilter)>-1 or alias[1].find(wfilter)>-1], wfilter) if __name__ == '__main__': - parser = argparse.ArgumentParser(description="Pretty print aliases.", prog="acs") + parser = argparse.ArgumentParser(description="Pretty print aliases.", prog="als") parser.add_argument('filter', nargs="*", metavar="", help="search aliases matching keywords") parser.add_argument('-g', '--group', dest="group_list", action='append', help="only print aliases in given groups") parser.add_argument('--groups', dest='groups_only', action='store_true', help="only print alias groups") diff --git a/plugins/ansible/README.md b/plugins/ansible/README.md index e0e6a19bb..dd0e1ce03 100644 --- a/plugins/ansible/README.md +++ b/plugins/ansible/README.md @@ -21,7 +21,6 @@ plugins=(... ansible) | `acon` | command `ansible-console` | | `ainv` | command `ansible-inventory` | | `aplaybook` | command `ansible-playbook` | -| `ainv` | command `ansible-inventory` | | `adoc` | command `ansible-doc` | | `agal` | command `ansible-galaxy` | | `apull` | command `ansible-pull` | @@ -29,6 +28,6 @@ plugins=(... ansible) ## Maintainer -### [Deepankumar](https://github.com/deepan10) +### [Deepankumar](https://github.com/deepan10) [https://github.com/deepan10/oh-my-zsh/tree/features/ansible-plugin](https://github.com/deepan10/oh-my-zsh/tree/features/ansible-plugin) diff --git a/plugins/archlinux/README.md b/plugins/archlinux/README.md index fd772c61a..5e015dbaa 100644 --- a/plugins/archlinux/README.md +++ b/plugins/archlinux/README.md @@ -181,3 +181,4 @@ whether the package manager is installed, checked in the following order: - Ybalrid (Arthur Brainville) - ybalrid@ybalrid.info - Jeff M. Hubbard - jeffmhubbard@gmail.com - K. Harishankar(harishnkr) - hari2menon1234@gmail.com +- WH-2099 - wh2099@outlook.com \ No newline at end of file diff --git a/plugins/archlinux/archlinux.plugin.zsh b/plugins/archlinux/archlinux.plugin.zsh index 4f1364779..e20a31156 100644 --- a/plugins/archlinux/archlinux.plugin.zsh +++ b/plugins/archlinux/archlinux.plugin.zsh @@ -23,30 +23,27 @@ alias pacfiles='pacman -F' alias pacls='pacman -Ql' alias pacown='pacman -Qo' alias pacupd="sudo pacman -Sy" -alias upgrade='sudo pacman -Syu' function paclist() { - # Based on https://bbs.archlinux.org/viewtopic.php?id=93683 - pacman -Qqe | \ - xargs -I '{}' \ - expac "${bold_color}% 20n ${fg_no_bold[white]}%d${reset_color}" '{}' + pacman -Qqe | xargs -I{} -P0 --no-run-if-empty pacman -Qs --color=auto "^{}\$" } function pacdisowned() { - local tmp db fs - tmp=${TMPDIR-/tmp}/pacman-disowned-$UID-$$ - db=$tmp/db - fs=$tmp/fs + local tmp_dir db fs + tmp_dir=$(mktemp --directory) + db=$tmp_dir/db + fs=$tmp_dir/fs - mkdir "$tmp" - trap 'rm -rf "$tmp"' EXIT + trap "rm -rf $tmp_dir" EXIT pacman -Qlq | sort -u > "$db" - find /bin /etc /lib /sbin /usr ! -name lost+found \ + find /etc /usr ! -name lost+found \ \( -type d -printf '%p/\n' -o -print \) | sort > "$fs" comm -23 "$fs" "$db" + + rm -rf $tmp_dir } alias pacmanallkeys='sudo pacman-key --refresh-keys' @@ -109,7 +106,6 @@ if (( $+commands[aura] )); then alias auupd="sudo aura -Sy" alias auupg='sudo sh -c "aura -Syu && aura -Au"' alias ausu='sudo sh -c "aura -Syu --no-confirm && aura -Au --no-confirm"' - alias upgrade='sudo aura -Syu' # extra bonus specially for aura alias auown="aura -Qqo" @@ -136,7 +132,6 @@ if (( $+commands[pacaur] )); then alias painsd='pacaur -S --asdeps' alias pamir='pacaur -Syy' alias paupd="pacaur -Sy" - alias upgrade='pacaur -Syu' fi if (( $+commands[trizen] )); then @@ -158,7 +153,6 @@ if (( $+commands[trizen] )); then alias trinsd='trizen -S --asdeps' alias trmir='trizen -Syy' alias trupd="trizen -Sy" - alias upgrade='trizen -Syu' fi if (( $+commands[yay] )); then @@ -180,5 +174,30 @@ if (( $+commands[yay] )); then alias yainsd='yay -S --asdeps' alias yamir='yay -Syy' alias yaupd="yay -Sy" - alias upgrade='yay -Syu' fi + +# Check Arch Linux PGP Keyring before System Upgrade to prevent failure. +function upgrade() { + echo ":: Checking Arch Linux PGP Keyring..." + local installedver="$(LANG= sudo pacman -Qi archlinux-keyring | grep -Po '(?<=Version : ).*')" + local currentver="$(LANG= sudo pacman -Si archlinux-keyring | grep -Po '(?<=Version : ).*')" + if [ $installedver != $currentver ]; then + echo " Arch Linux PGP Keyring is out of date." + echo " Updating before full system upgrade." + sudo pacman -Sy --needed --noconfirm archlinux-keyring + else + echo " Arch Linux PGP Keyring is up to date." + echo " Proceeding with full system upgrade." + fi + if (( $+commands[yay] )); then + yay -Syu + elif (( $+commands[trizen] )); then + trizen -Syu + elif (( $+commands[pacaur] )); then + pacaur -Syu + elif (( $+commands[aura] )); then + sudo aura -Syu + else + sudo pacman -Syu + fi +} diff --git a/plugins/asdf/asdf.plugin.zsh b/plugins/asdf/asdf.plugin.zsh index 3016282c6..7635d20c3 100644 --- a/plugins/asdf/asdf.plugin.zsh +++ b/plugins/asdf/asdf.plugin.zsh @@ -2,26 +2,29 @@ ASDF_DIR="${ASDF_DIR:-$HOME/.asdf}" ASDF_COMPLETIONS="$ASDF_DIR/completions" -# If not found, check for archlinux/AUR package (/opt/asdf-vm/) -if [[ ! -f "$ASDF_DIR/asdf.sh" || ! -f "$ASDF_COMPLETIONS/asdf.bash" ]] && [[ -f "/opt/asdf-vm/asdf.sh" ]]; then - ASDF_DIR="/opt/asdf-vm" - ASDF_COMPLETIONS="$ASDF_DIR" -fi - -# If not found, check for Homebrew package -if [[ ! -f "$ASDF_DIR/asdf.sh" || ! -f "$ASDF_COMPLETIONS/asdf.bash" ]] && (( $+commands[brew] )); then - brew_prefix="$(brew --prefix asdf)" - ASDF_DIR="${brew_prefix}/libexec" - ASDF_COMPLETIONS="${brew_prefix}/etc/bash_completion.d" - unset brew_prefix +if [[ ! -f "$ASDF_DIR/asdf.sh" || ! -f "$ASDF_COMPLETIONS/_asdf" ]]; then + # If not found, check for archlinux/AUR package (/opt/asdf-vm/) + if [[ -f "/opt/asdf-vm/asdf.sh" ]]; then + ASDF_DIR="/opt/asdf-vm" + ASDF_COMPLETIONS="$ASDF_DIR" + # If not found, check for Homebrew package + elif (( $+commands[brew] )); then + _ASDF_PREFIX="$(brew --prefix asdf)" + ASDF_DIR="${_ASDF_PREFIX}/libexec" + ASDF_COMPLETIONS="${_ASDF_PREFIX}/share/zsh/site-functions" + unset _ASDF_PREFIX + else + return + fi fi # Load command if [[ -f "$ASDF_DIR/asdf.sh" ]]; then - . "$ASDF_DIR/asdf.sh" - + source "$ASDF_DIR/asdf.sh" # Load completions - if [[ -f "$ASDF_COMPLETIONS/asdf.bash" ]]; then - . "$ASDF_COMPLETIONS/asdf.bash" + if [[ -f "$ASDF_COMPLETIONS/_asdf" ]]; then + fpath+=("$ASDF_COMPLETIONS") + autoload -Uz _asdf + compdef _asdf asdf # compdef is already loaded before loading plugins fi fi diff --git a/plugins/autoenv/autoenv.plugin.zsh b/plugins/autoenv/autoenv.plugin.zsh index 229a8a834..2f84f0acf 100644 --- a/plugins/autoenv/autoenv.plugin.zsh +++ b/plugins/autoenv/autoenv.plugin.zsh @@ -17,9 +17,13 @@ if ! type autoenv_init >/dev/null; then /usr/local/bin /usr/share/autoenv-git ~/Library/Python/bin + .venv/bin + venv/bin + env/bin + .env/bin ) for d ( $install_locations ); do - if [[ -e $d/activate.sh ]]; then + if [[ -e $d/activate || -e $d/activate.sh ]]; then autoenv_dir=$d break fi @@ -29,13 +33,13 @@ if ! type autoenv_init >/dev/null; then # Look for Homebrew path as a last resort if [[ -z "$autoenv_dir" ]] && (( $+commands[brew] )); then d=$(brew --prefix)/opt/autoenv - if [[ -e $d/activate.sh ]]; then + if [[ -e $d/activate || -e $d/activate.sh ]]; then autoenv_dir=$d fi fi # Complain if autoenv is not installed - if [[ -z $autoenv_dir ]]; then + if [[ -z $autoenv_dir ]]; then cat <&2 -------- AUTOENV --------- Could not locate autoenv installation. @@ -46,7 +50,11 @@ END return 1 fi # Load autoenv - source $autoenv_dir/activate.sh + if [[ -e $autoenv_dir/activate ]]; then + source $autoenv_dir/activate + else + source $autoenv_dir/activate.sh + fi fi } [[ $? != 0 ]] && return $? diff --git a/plugins/autojump/autojump.plugin.zsh b/plugins/autojump/autojump.plugin.zsh index 1b868ee8d..5a52e3067 100644 --- a/plugins/autojump/autojump.plugin.zsh +++ b/plugins/autojump/autojump.plugin.zsh @@ -1,18 +1,20 @@ declare -a autojump_paths autojump_paths=( - $HOME/.autojump/etc/profile.d/autojump.zsh # manual installation - $HOME/.autojump/share/autojump/autojump.zsh # manual installation - $HOME/.nix-profile/etc/profile.d/autojump.sh # NixOS installation - /run/current-system/sw/share/autojump/autojump.zsh # NixOS installation - /usr/share/autojump/autojump.zsh # Debian and Ubuntu package - /etc/profile.d/autojump.zsh # manual installation - /etc/profile.d/autojump.sh # Gentoo installation - /usr/local/share/autojump/autojump.zsh # FreeBSD installation - /usr/pkg/share/autojump/autojump.zsh # NetBSD installation - /opt/local/etc/profile.d/autojump.sh # macOS with MacPorts - /usr/local/etc/profile.d/autojump.sh # macOS with Homebrew (default) - /opt/homebrew/etc/profile.d/autojump.sh # macOS with Homebrew (default on M1 macs) - /etc/profiles/per-user/$USER/etc/profile.d/autojump.sh # macOS Nix, Home Manager and flakes + $HOME/.autojump/etc/profile.d/autojump.zsh # manual installation + $HOME/.autojump/share/autojump/autojump.zsh # manual installation + $HOME/.nix-profile/etc/profile.d/autojump.sh # NixOS installation + /run/current-system/sw/share/autojump/autojump.zsh # NixOS installation + /etc/profiles/per-user/$USER/share/autojump/autojump.zsh # Home Manager, NixOS with user-scoped packages + /usr/share/autojump/autojump.zsh # Debian and Ubuntu package + /etc/profile.d/autojump.zsh # manual installation + /etc/profile.d/autojump.sh # Gentoo installation + /usr/local/share/autojump/autojump.zsh # FreeBSD installation + /usr/pkg/share/autojump/autojump.zsh # NetBSD installation + /opt/local/etc/profile.d/autojump.sh # macOS with MacPorts + /usr/local/etc/profile.d/autojump.sh # macOS with Homebrew (default) + /opt/homebrew/etc/profile.d/autojump.sh # macOS with Homebrew (default on M1 macs) + /opt/pkg/share/autojump/autojump.zsh # macOS with pkgsrc + /etc/profiles/per-user/$USER/etc/profile.d/autojump.sh # macOS Nix, Home Manager and flakes ) for file in $autojump_paths; do diff --git a/plugins/aws/README.md b/plugins/aws/README.md index e1e355741..0d0773f63 100644 --- a/plugins/aws/README.md +++ b/plugins/aws/README.md @@ -1,7 +1,8 @@ # aws -This plugin provides completion support for [awscli](https://docs.aws.amazon.com/cli/latest/reference/index.html) +This plugin provides completion support for [awscli v2](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/index.html) and a few utilities to manage AWS profiles/regions and display them in the prompt. +[awscli v1](https://docs.aws.amazon.com/cli/latest/userguide/cliv2-migration.html) is no longer supported. To use it, add `aws` to the plugins array in your zshrc file. @@ -12,9 +13,11 @@ plugins=(... aws) ## Plugin commands * `asp []`: sets `$AWS_PROFILE` and `$AWS_DEFAULT_PROFILE` (legacy) to ``. - It also sets `$AWS_EB_PROFILE` to `` for the Elastic Beanstalk CLI. + It also sets `$AWS_EB_PROFILE` to `` for the Elastic Beanstalk CLI. It sets `$AWS_PROFILE_REGION` for display in `aws_prompt_info`. Run `asp` without arguments to clear the profile. -* `asp [] login`: If AWS SSO has been configured in your aws profile, it will run the `aws sso login` command following profile selection. +* `asp [] login`: If AWS SSO has been configured in your aws profile, it will run the `aws sso login` command following profile selection. +* `asp [] login []`: In addition to `asp [] login`, if SSO session has been configured in your aws profile, it will run the `aws sso login --sso-session ` command following profile selection. +* `asp [] logout`: If AWS SSO has been configured in your aws profile, it will run the `aws sso logout` command following profile selection. * `asr []`: sets `$AWS_REGION` and `$AWS_DEFAULT_REGION` (legacy) to ``. Run `asr` without arguments to clear the profile. @@ -44,6 +47,11 @@ plugins=(... aws) Some themes might overwrite the value of RPROMPT instead of appending to it, so they'll need to be fixed to see the AWS profile/region prompt. +* Set `AWS_PROFILE_STATE_ENABLED=true` in your zshrc file if you want the aws profile to persist between shell sessions. + This option might slow down your shell startup time. + By default the state file path is `/tmp/.aws_current_profile`. This means that the state won't survive a reboot or otherwise GC. + You can control the state file path using the `AWS_STATE_FILE` environment variable. + ## Theme The plugin creates an `aws_prompt_info` function that you can use in your theme, which displays @@ -57,6 +65,8 @@ the current `$AWS_PROFILE` and `$AWS_REGION`. It uses four variables to control * ZSH_THEME_AWS_REGION_SUFFIX: sets the suffix of the AWS_REGION. Defaults to `>`. +* ZSH_THEME_AWS_DIVIDER: sets the divider between ZSH_THEME_AWS_PROFILE_SUFFIX and ZSH_THEME_AWS_REGION_PREFIX. Defaults to ` ` (single space). + ## Configuration [Configuration and credential file settings](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) by AWS @@ -65,7 +75,7 @@ the current `$AWS_PROFILE` and `$AWS_REGION`. It uses four variables to control Source profile credentials in `~/.aws/credentials`: -``` +```ini [source-profile-name] aws_access_key_id = ... aws_secret_access_key = ... @@ -73,7 +83,7 @@ aws_secret_access_key = ... Role configuration in `~/.aws/config`: -``` +```ini [profile source-profile-name] mfa_serial = arn:aws:iam::111111111111:mfa/myuser region = us-east-1 diff --git a/plugins/aws/aws.plugin.zsh b/plugins/aws/aws.plugin.zsh index 1c386a3e1..0c43031df 100644 --- a/plugins/aws/aws.plugin.zsh +++ b/plugins/aws/aws.plugin.zsh @@ -6,10 +6,26 @@ function agr() { echo $AWS_REGION } +# Update state file if enabled +function _aws_update_state() { + if [[ "$AWS_PROFILE_STATE_ENABLED" == true ]]; then + test -d $(dirname ${AWS_STATE_FILE}) || exit 1 + echo "${AWS_PROFILE} ${AWS_REGION}" > "${AWS_STATE_FILE}" + fi +} + +function _aws_clear_state() { + if [[ "$AWS_PROFILE_STATE_ENABLED" == true ]]; then + test -d $(dirname ${AWS_STATE_FILE}) || exit 1 + echo -n > "${AWS_STATE_FILE}" + fi +} + # AWS profile selection function asp() { if [[ -z "$1" ]]; then - unset AWS_DEFAULT_PROFILE AWS_PROFILE AWS_EB_PROFILE + unset AWS_DEFAULT_PROFILE AWS_PROFILE AWS_EB_PROFILE AWS_PROFILE_REGION + _aws_clear_state echo AWS profile cleared. return fi @@ -26,8 +42,18 @@ function asp() { export AWS_PROFILE=$1 export AWS_EB_PROFILE=$1 + export AWS_PROFILE_REGION=$(aws configure get region) + + _aws_update_state + if [[ "$2" == "login" ]]; then - aws sso login + if [[ -n "$3" ]]; then + aws sso login --sso-session $3 + else + aws sso login + fi + elif [[ "$2" == "logout" ]]; then + aws sso logout fi } @@ -35,6 +61,7 @@ function asp() { function asr() { if [[ -z "$1" ]]; then unset AWS_DEFAULT_REGION AWS_REGION + _aws_update_state echo AWS region cleared. return fi @@ -48,6 +75,7 @@ function asr() { export AWS_REGION=$1 export AWS_DEFAULT_REGION=$1 + _aws_update_state } # AWS profile switch @@ -158,19 +186,53 @@ function aws_change_access_key() { return 1 fi - echo "Insert the credentials when asked." - asp "$1" || return 1 - AWS_PAGER="" aws iam create-access-key - AWS_PAGER="" aws configure --profile "$1" + local profile="$1" + # Get current access key + local original_aws_access_key_id="$(aws configure get aws_access_key_id --profile $profile)" - echo "You can now safely delete the old access key running \`aws iam delete-access-key --access-key-id ID\`" + asp "$profile" || return 1 + echo "Generating a new access key pair for you now." + if aws --no-cli-pager iam create-access-key; then + echo "Insert the newly generated credentials when asked." + aws --no-cli-pager configure --profile $profile + else + echo "Current access keys:" + aws --no-cli-pager iam list-access-keys + echo "Profile \"${profile}\" is currently using the $original_aws_access_key_id key. You can delete an old access key by running \`aws --profile $profile iam delete-access-key --access-key-id AccessKeyId\`" + return 1 + fi + + read -q "yn?Would you like to disable your previous access key (${original_aws_access_key_id}) now? " + case $yn in + [Yy]*) + echo -n "\nDisabling access key ${original_aws_access_key_id}..." + if aws --no-cli-pager iam update-access-key --access-key-id ${original_aws_access_key_id} --status Inactive; then + echo "done." + else + echo "\nFailed to disable ${original_aws_access_key_id} key." + fi + ;; + *) + echo "" + ;; + esac + echo "You can now safely delete the old access key by running \`aws --profile $profile iam delete-access-key --access-key-id ${original_aws_access_key_id}\`" echo "Your current keys are:" - AWS_PAGER="" aws iam list-access-keys + aws --no-cli-pager iam list-access-keys } function aws_regions() { + local region + if [[ $AWS_DEFAULT_REGION ]];then + region="$AWS_DEFAULT_REGION" + elif [[ $AWS_REGION ]];then + region="$AWS_REGION" + else + region="us-west-1" + fi + if [[ $AWS_DEFAULT_PROFILE || $AWS_PROFILE ]];then - aws ec2 describe-regions |grep RegionName | awk -F ':' '{gsub(/"/, "", $2);gsub(/,/, "", $2);gsub(/ /, "", $2); print $2}' + aws ec2 describe-regions --region $region |grep RegionName | awk -F ':' '{gsub(/"/, "", $2);gsub(/,/, "", $2);gsub(/ /, "", $2); print $2}' else echo "You must specify a AWS profile." fi @@ -194,14 +256,40 @@ compctl -K _aws_profiles asp acp aws_change_access_key # AWS prompt function aws_prompt_info() { - if [[ -z $AWS_REGION && -z $AWS_PROFILE ]];then return; fi - echo "${ZSH_THEME_AWS_PROFILE_PREFIX:=} ${ZSH_THEME_AWS_REGION_PREFIX:=}" + local _aws_to_show + local region="${AWS_REGION:-${AWS_DEFAULT_REGION:-$AWS_PROFILE_REGION}}" + + if [[ -n "$AWS_PROFILE" ]];then + _aws_to_show+="${ZSH_THEME_AWS_PROFILE_PREFIX=""}" + fi + + if [[ -n "$region" ]]; then + [[ -n "$_aws_to_show" ]] && _aws_to_show+="${ZSH_THEME_AWS_DIVIDER=" "}" + _aws_to_show+="${ZSH_THEME_AWS_REGION_PREFIX=""}" + fi + + echo "$_aws_to_show" } if [[ "$SHOW_AWS_PROMPT" != false && "$RPROMPT" != *'$(aws_prompt_info)'* ]]; then RPROMPT='$(aws_prompt_info)'"$RPROMPT" fi +if [[ "$AWS_PROFILE_STATE_ENABLED" == true ]]; then + AWS_STATE_FILE="${AWS_STATE_FILE:-/tmp/.aws_current_profile}" + test -s "${AWS_STATE_FILE}" || return + + aws_state=($(cat $AWS_STATE_FILE)) + + export AWS_DEFAULT_PROFILE="${aws_state[1]}" + export AWS_PROFILE="$AWS_DEFAULT_PROFILE" + export AWS_EB_PROFILE="$AWS_DEFAULT_PROFILE" + + test -z "${aws_state[2]}" && AWS_REGION=$(aws configure get region) + + export AWS_REGION=${AWS_REGION:-$aws_state[2]} + export AWS_DEFAULT_REGION="$AWS_REGION" +fi # Load awscli completions diff --git a/plugins/azure/azure.plugin.zsh b/plugins/azure/azure.plugin.zsh index 51b54dbc1..b33b0f805 100644 --- a/plugins/azure/azure.plugin.zsh +++ b/plugins/azure/azure.plugin.zsh @@ -1,4 +1,4 @@ -# AZ Get Subscritions +# AZ Get Subscriptions function azgs() { az account show --output tsv --query 'name' 2>/dev/null } @@ -18,10 +18,10 @@ compctl -K _az_subscriptions azss # Azure prompt function azure_prompt_info() { - [[ ! -f "${AZURE_CONFIG_DIR:-$HOME/.azure/azureProfile.json}" ]] && return + [[ ! -f "${AZURE_CONFIG_DIR:-$HOME/.azure}/azureProfile.json" ]] && return # azgs is too expensive, if we have jq, we enable the prompt (( $+commands[jq] )) || return 1 - azgs=$(jq -r '.subscriptions[] | select(.isDefault==true) .name' ${AZURE_CONFIG_DIR:-$HOME/.azure/azureProfile.json}) + azgs=$(jq -r '.subscriptions[] | select(.isDefault==true) .name' "${AZURE_CONFIG_DIR:-$HOME/.azure}/azureProfile.json") echo "${ZSH_THEME_AZURE_PREFIX:=}" } @@ -31,11 +31,9 @@ function _az-homebrew-installed() { # check if Homebrew is installed (( $+commands[brew] )) || return 1 - # speculatively check default brew prefix - if [[ -d /usr/local ]]; then - _brew_prefix=/usr/local - elif [[ -d /opt/homebrew ]]; then - _brew_prefix=/opt/homebrew + # if so, we assume it's default way to install brew + if [[ ${commands[brew]:t2} == bin/brew ]]; then + _brew_prefix="${commands[brew]:h:h}" # remove trailing /bin/brew else # ok, it is not in the default prefix # this call to brew is expensive (about 400 ms), so at least let's make it only once diff --git a/plugins/battery/battery.plugin.zsh b/plugins/battery/battery.plugin.zsh index db5eeb93a..1d3d529a3 100644 --- a/plugins/battery/battery.plugin.zsh +++ b/plugins/battery/battery.plugin.zsh @@ -13,6 +13,10 @@ # Author: Avneet Singh (kalsi-avneet) # # Modified to add support for Android # ########################################### +# Author: Not Pua (im-notpua) # +# Modified to add support for OpenBSD # +########################################### + if [[ "$OSTYPE" = darwin* ]]; then function battery_is_charging() { @@ -139,6 +143,46 @@ elif [[ "$OSTYPE" = linux-android ]] && (( ${+commands[termux-battery-status]} ) echo "%{$fg[$color]%}${battery_pct}%%%{$reset_color%}" fi } +elif [[ "$OSTYPE" = openbsd* ]]; then + function battery_is_charging() { + [[ $(apm -b) -eq 3 ]] + } + function battery_pct() { + apm -l + } + function battery_pct_remaining() { + if ! battery_is_charging; then + battery_pct + else + echo "External Power" + fi + } + function battery_time_remaining() { + local remaining_time + remaining_time=$(apm -m) + if [[ $remaining_time -ge 0 ]]; then + ((hour = $remaining_time / 60 )) + ((minute = $remaining_time % 60 )) + printf %02d:%02d $hour $minute + fi + } + function battery_pct_prompt() { + local battery_pct color + battery_pct=$(battery_pct_remaining) + if battery_is_charging; then + echo "∞" + else + if [[ $battery_pct -gt 50 ]]; then + color='green' + elif [[ $battery_pct -gt 20 ]]; then + color='yellow' + else + color='red' + fi + echo "%{$fg[$color]%}${battery_pct}%%%{$reset_color%}" + fi + } + elif [[ "$OSTYPE" = linux* ]]; then function battery_is_charging() { if (( $+commands[acpitool] )); then diff --git a/plugins/bazel/README.md b/plugins/bazel/README.md index fc375d219..eba4175bc 100644 --- a/plugins/bazel/README.md +++ b/plugins/bazel/README.md @@ -1,7 +1,6 @@ # Bazel plugin -This plugin adds completion for [bazel](https://bazel.build), an open-source build and -test tool that scalably supports multi-language and multi-platform projects. +This plugin adds completion and aliases for [bazel](https://bazel.build), an open-source build and test tool that scalably supports multi-language and multi-platform projects. To use it, add `bazel` to the plugins array in your zshrc file: @@ -12,3 +11,12 @@ plugins=(... bazel) The plugin has a copy of [the completion script from the git repository][1]. [1]: https://github.com/bazelbuild/bazel/blob/master/scripts/zsh_completion/_bazel + +## Aliases + +| Alias | Command | Description | +| ------- | -------------------------------------- | ------------------------------------------------------ | +| bzb | `bazel build` | The `bazel build` command | +| bzt | `bazel test` | The `bazel test` command | +| bzr | `bazel run` | The `bazel run` command | +| bzq | `bazel query` | The `bazel query` command | diff --git a/plugins/bazel/_bazel b/plugins/bazel/_bazel index c34c572b0..ea1f4cace 100644 --- a/plugins/bazel/_bazel +++ b/plugins/bazel/_bazel @@ -1,4 +1,4 @@ -#compdef bazel +#compdef bazel bazelisk # Copyright 2015 The Bazel Authors. All rights reserved. # diff --git a/plugins/bazel/bazel.plugin.zsh b/plugins/bazel/bazel.plugin.zsh new file mode 100644 index 000000000..d239a06b5 --- /dev/null +++ b/plugins/bazel/bazel.plugin.zsh @@ -0,0 +1,5 @@ +# Aliases for bazel +alias bzb='bazel build' +alias bzt='bazel test' +alias bzr='bazel run' +alias bzq='bazel query' diff --git a/plugins/bgnotify/README.md b/plugins/bgnotify/README.md index 1d8fac54d..33d529f15 100644 --- a/plugins/bgnotify/README.md +++ b/plugins/bgnotify/README.md @@ -1,19 +1,19 @@ # bgnotify zsh plugin -cross-platform background notifications for long running commands! Supports OSX and Ubuntu linux. +cross-platform background notifications for long running commands! Supports OSX and Linux. Standalone homepage: [t413/zsh-background-notify](https://github.com/t413/zsh-background-notify) ----------------------------------- +--- -## How to use! +## How to use Just add bgnotify to your plugins list in your `.zshrc` - On OS X you'll need [terminal-notifier](https://github.com/alloy/terminal-notifier) * `brew install terminal-notifier` (or `gem install terminal-notifier`) -- On ubuntu you're already all set! -- On windows you can use [notifu](https://www.paralint.com/projects/notifu/) or the Cygwin Ports libnotify package +- On Linux, make sure you have `notify-send` or `kdialog` installed. If you're using Ubuntu you should already be all set! +- On Windows you can use [notifu](https://www.paralint.com/projects/notifu/) or the Cygwin Ports libnotify package ## Screenshots @@ -35,20 +35,29 @@ Just add bgnotify to your plugins list in your `.zshrc` One can configure a few things: +- `bgnotify_bell` enabled or disables the terminal bell (default true) - `bgnotify_threshold` sets the notification threshold time (default 6 seconds) -- `function bgnotify_formatted` lets you change the notification +- `function bgnotify_formatted` lets you change the notification. You can for instance customize the message and pass in an icon. Use these by adding a function definition before the your call to source. Example: -~~~ sh +```sh +bgnotify_bell=false ## disable terminal bell bgnotify_threshold=4 ## set your own notification threshold function bgnotify_formatted { ## $1=exit_status, $2=command, $3=elapsed_time - [ $1 -eq 0 ] && title="Holy Smokes Batman!" || title="Holy Graf Zeppelin!" - bgnotify "$title -- after $3 s" "$2"; + + # Humanly readable elapsed time + local elapsed="$(( $3 % 60 ))s" + (( $3 < 60 )) || elapsed="$((( $3 % 3600) / 60 ))m $elapsed" + (( $3 < 3600 )) || elapsed="$(( $3 / 3600 ))h $elapsed" + + [ $1 -eq 0 ] && title="Holy Smokes Batman" || title="Holy Graf Zeppelin" + [ $1 -eq 0 ] && icon="$HOME/icons/success.png" || icon="$HOME/icons/fail.png" + bgnotify "$title - took ${elapsed}" "$2" "$icon" } plugins=(git bgnotify) ## add to plugins list source $ZSH/oh-my-zsh.sh ## existing source call -~~~ +``` diff --git a/plugins/bgnotify/bgnotify.plugin.zsh b/plugins/bgnotify/bgnotify.plugin.zsh index ed2653aa8..0e3f2c640 100644 --- a/plugins/bgnotify/bgnotify.plugin.zsh +++ b/plugins/bgnotify/bgnotify.plugin.zsh @@ -21,13 +21,12 @@ function bgnotify_end { local elapsed=$(( EPOCHSECONDS - bgnotify_timestamp )) # check time elapsed - [[ $bgnotify_timestamp -gt 0 ]] || return - [[ $elapsed -ge $bgnotify_threshold ]] || return + [[ $bgnotify_timestamp -gt 0 ]] || return 0 + [[ $elapsed -ge $bgnotify_threshold ]] || return 0 # check if Terminal app is not active - [[ $(bgnotify_appid) != "$bgnotify_termid" ]] || return + [[ $(bgnotify_appid) != "$bgnotify_termid" ]] || return 0 - printf '\a' # beep sound bgnotify_formatted "$exit_status" "$bgnotify_lastcmd" "$elapsed" } always { bgnotify_timestamp=0 @@ -52,53 +51,89 @@ function bgnotify_formatted { (( $3 < 60 )) || elapsed="$((( $3 % 3600) / 60 ))m $elapsed" (( $3 < 3600 )) || elapsed="$(( $3 / 3600 ))h $elapsed" - if [[ $1 -eq 0 ]]; then - bgnotify "#win (took $elapsed)" "$2" + [[ $bgnotify_bell = true ]] && printf '\a' # beep sound + if [[ $exit_status -eq 0 ]]; then + bgnotify "#win (took $elapsed)" "$cmd" else - bgnotify "#fail (took $elapsed)" "$2" + bgnotify "#fail (took $elapsed)" "$cmd" fi } -# for macOS, output is "app ID, window ID" (com.googlecode.iterm2, 116) function bgnotify_appid { if (( ${+commands[osascript]} )); then - osascript -e 'tell application (path to frontmost application as text) to get the {id, id of front window}' 2>/dev/null - elif (( ${+commands[xprop]} )); then + osascript -e "tell application id \"$(bgnotify_programid)\" to get the {id, frontmost, id of front window, visible of front window}" 2>/dev/null + elif [[ -n $WAYLAND_DISPLAY ]] && (( ${+commands[swaymsg]} )); then # wayland+sway + local app_id=$(bgnotify_find_sway_appid) + [[ -n "$app_id" ]] && echo "$app_id" || echo $EPOCHSECONDS + elif [[ -z $WAYLAND_DISPLAY ]] && [[ -n $DISPLAY ]] && (( ${+commands[xprop]} )); then xprop -root _NET_ACTIVE_WINDOW 2>/dev/null | cut -d' ' -f5 else echo $EPOCHSECONDS fi } -function bgnotify { - # $1: title, $2: message - if (( ${+commands[terminal-notifier]} )); then # macOS - local term_id="${bgnotify_termid%%,*}" # remove window id - if [[ -z "$term_id" ]]; then - case "$TERM_PROGRAM" in - iTerm.app) term_id='com.googlecode.iterm2' ;; - Apple_Terminal) term_id='com.apple.terminal' ;; - esac - fi - if [[ -z "$term_id" ]]; then - terminal-notifier -message "$2" -title "$1" &>/dev/null - else - terminal-notifier -message "$2" -title "$1" -activate "$term_id" -sender "$term_id" &>/dev/null - fi +function bgnotify_find_sway_appid { + # output is "app_id,container_id", for example "Alacritty,1694" + # see example swaymsg output: https://github.com/ohmyzsh/ohmyzsh/files/13463939/output.json + if (( ${+commands[jq]} )); then + swaymsg -t get_tree | jq '.. | select(.type?) | select(.focused==true) | {app_id, id} | join(",")' + else + swaymsg -t get_tree | awk ' + BEGIN { Id = ""; Appid = ""; FocusNesting = -1; Nesting = 0 } + { + # Enter a block + if ($0 ~ /.*{$/) Nesting++ + + # Exit a block. If Nesting is now less than FocusNesting, we have the data we are looking for + if ($0 ~ /^[[:blank:]]*}.*/) { Nesting--; if (FocusNesting > 0 && Nesting < FocusNesting) exit 0 } + + # Save the Id, it is potentially what we are looking for + if ($0 ~ /^[[:blank:]]*"id": [0-9]*,?$/) { sub(/^[[:blank:]]*"id": /, ""); sub(/,$/, ""); Id = $0 } + + # Save the Appid, it is potentially what we are looking for + if ($0 ~ /^[[:blank:]]*"app_id": ".*",?$/) { sub(/^[[:blank:]]*"app_id": "/, ""); sub(/",$/, ""); Appid = $0 } + + # Window is focused, this nesting block contains the Id and Appid we want! + if ($0 ~ /^[[:blank:]]*"focused": true,?$/) { FocusNesting = Nesting } + } + END { + if (Appid != "" && Id != "" && FocusNesting != -1) print Appid "," Id + else print "" + }' + fi +} + +function bgnotify_programid { + case "$TERM_PROGRAM" in + iTerm.app) echo 'com.googlecode.iterm2' ;; + Apple_Terminal) echo 'com.apple.terminal' ;; + esac +} + +function bgnotify { + local title="$1" + local message="$2" + local icon="$3" + if (( ${+commands[terminal-notifier]} )); then # macOS + local term_id=$(bgnotify_programid) + terminal-notifier -message "$message" -title "$title" ${=icon:+-appIcon "$icon"} ${=term_id:+-activate "$term_id" -sender "$term_id"} &>/dev/null elif (( ${+commands[growlnotify]} )); then # macOS growl - growlnotify -m "$1" "$2" - elif (( ${+commands[notify-send]} )); then # GNOME - notify-send "$1" "$2" + growlnotify -m "$title" "$message" + elif (( ${+commands[notify-send]} )); then + notify-send "$title" "$message" ${=icon:+--icon "$icon"} elif (( ${+commands[kdialog]} )); then # KDE - kdialog --title "$1" --passivepopup "$2" 5 + kdialog --title "$title" --passivepopup "$message" 5 elif (( ${+commands[notifu]} )); then # cygwin - notifu /m "$2" /p "$1" + notifu /m "$message" /p "$title" ${=icon:+/i "$icon"} fi } ## Defaults +# enable terminal bell on notify by default +bgnotify_bell=${bgnotify_bell:-true} + # notify if command took longer than 5s by default bgnotify_threshold=${bgnotify_threshold:-5} diff --git a/plugins/branch/README.md b/plugins/branch/README.md index a15dd22df..2b6d12d29 100644 --- a/plugins/branch/README.md +++ b/plugins/branch/README.md @@ -39,7 +39,7 @@ index 2fd5f2cd..9d89a464 100644 PROMPT="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ )" -PROMPT+=' %{$fg[cyan]%}%c%{$reset_color%} $(git_prompt_info)' +PROMPT+=' %{$fg[cyan]%}%c%{$reset_color%} $(branch_prompt_info)' - + ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}git:(%{$fg[red]%}" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} " ``` diff --git a/plugins/brew/README.md b/plugins/brew/README.md index 412daae63..299393b28 100644 --- a/plugins/brew/README.md +++ b/plugins/brew/README.md @@ -10,10 +10,12 @@ plugins=(... brew) ## Shellenv -If `brew` is not found in the PATH, this plugin will attempt to find it in common -locations, and execute `brew shellenv` to set the environment appropriately. -This plugin will also export `HOMEBREW_PREFIX="$(brew --prefix)"` if not previously -defined for convenience. +If `brew` is not found in the PATH, this plugin will attempt to find it in common locations, and execute +`brew shellenv` to set the environment appropriately. This plugin will also export +`HOMEBREW_PREFIX="$(brew --prefix)"` if not previously defined for convenience. + +In case you installed `brew` in a non-common location, you can still set `BREW_LOCATION` variable pointing to +the `brew` binary before sourcing `oh-my-zsh.sh` and it'll set up the environment. ## Aliases @@ -33,7 +35,9 @@ defined for convenience. ## Completion -With the release of Homebrew 1.0, they decided to bundle the zsh completion as part of the -brew installation, so we no longer ship it with the brew plugin; now it only has brew -aliases. If you find that brew completion no longer works, make sure you have your Homebrew -installation fully up to date. +This plugin configures paths with Homebrew's completion functions automatically, so you don't need to do it +manually. See: https://docs.brew.sh/Shell-Completion#configuring-completions-in-zsh. + +With the release of Homebrew 1.0, they decided to bundle the zsh completion as part of the brew installation, +so we no longer ship it with the brew plugin; now it only has brew aliases. If you find that brew completion +no longer works, make sure you have your Homebrew installation fully up to date. diff --git a/plugins/brew/brew.plugin.zsh b/plugins/brew/brew.plugin.zsh index f6abe0875..b15137e0f 100644 --- a/plugins/brew/brew.plugin.zsh +++ b/plugins/brew/brew.plugin.zsh @@ -1,5 +1,10 @@ if (( ! $+commands[brew] )); then - if [[ -x /opt/homebrew/bin/brew ]]; then + if [[ -n "$BREW_LOCATION" ]]; then + if [[ ! -x "$BREW_LOCATION" ]]; then + echo "[oh-my-zsh] $BREW_LOCATION is not executable" + return + fi + elif [[ -x /opt/homebrew/bin/brew ]]; then BREW_LOCATION="/opt/homebrew/bin/brew" elif [[ -x /usr/local/bin/brew ]]; then BREW_LOCATION="/usr/local/bin/brew" @@ -25,9 +30,12 @@ if [[ -z "$HOMEBREW_PREFIX" ]]; then export HOMEBREW_PREFIX="$(brew --prefix)" fi +if [[ -d "$HOMEBREW_PREFIX/share/zsh/site-functions" ]]; then + fpath+=("$HOMEBREW_PREFIX/share/zsh/site-functions") +fi + alias bcubc='brew upgrade --cask && brew cleanup' alias bcubo='brew update && brew outdated --cask' -alias bcubc='brew upgrade --cask && brew cleanup' alias brewp='brew pin' alias brewsp='brew list --pinned' alias bubc='brew upgrade && brew cleanup' diff --git a/plugins/bun/README.md b/plugins/bun/README.md new file mode 100644 index 000000000..5a312370f --- /dev/null +++ b/plugins/bun/README.md @@ -0,0 +1,20 @@ +# Bun Plugin + +This plugin sets up completion for [Bun](https://bun.sh). + +To use it, add `bun` to the plugins array in your zshrc file: + +```zsh +plugins=(... bun) +``` + +This plugin does not add any aliases. + +## Cache + +This plugin caches the completion script and is automatically updated when the +plugin is loaded, which is usually when you start up a new terminal emulator. + +The cache is stored at: + +- `$ZSH_CACHE_DIR/completions/_bun_` completions script diff --git a/plugins/bun/bun.plugin.zsh b/plugins/bun/bun.plugin.zsh new file mode 100644 index 000000000..9924faa84 --- /dev/null +++ b/plugins/bun/bun.plugin.zsh @@ -0,0 +1,14 @@ +# If Bun is not found, don't do the rest of the script +if (( ! $+commands[bun] )); then + return +fi + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `bun`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_bun" ]]; then + typeset -g -A _comps + autoload -Uz _bun + _comps[bun]=_bun +fi + +bun completions >| "$ZSH_CACHE_DIR/completions/_bun" &| diff --git a/plugins/catimg/README.md b/plugins/catimg/README.md index 8f2688050..68dc33c1f 100644 --- a/plugins/catimg/README.md +++ b/plugins/catimg/README.md @@ -1,6 +1,6 @@ # catimg -Plugin for displaying images on the terminal using the the `catimg.sh` script provided by [posva](https://github.com/posva/catimg) +Plugin for displaying images on the terminal using the `catimg.sh` script provided by [posva](https://github.com/posva/catimg) To use it, add `catimg` to the plugins array in your zshrc file: diff --git a/plugins/chruby/chruby.plugin.zsh b/plugins/chruby/chruby.plugin.zsh index d7a28d4e2..1210897c4 100644 --- a/plugins/chruby/chruby.plugin.zsh +++ b/plugins/chruby/chruby.plugin.zsh @@ -2,7 +2,7 @@ _source-from-omz-settings() { local _chruby_path _chruby_auto - + zstyle -s :omz:plugins:chruby path _chruby_path || return 1 zstyle -s :omz:plugins:chruby auto _chruby_auto || return 1 @@ -23,7 +23,7 @@ _source-from-homebrew() { if [[ -h /usr/local/opt/chruby ]];then _brew_prefix="/usr/local/opt/chruby" else - # ok , it is not default prefix + # ok , it is not default prefix # this call to brew is expensive ( about 400 ms ), so at least let's make it only once _brew_prefix=$(brew --prefix chruby) fi diff --git a/plugins/cloudfoundry/README.md b/plugins/cloudfoundry/README.md index 89dd9d1ce..567a9056b 100644 --- a/plugins/cloudfoundry/README.md +++ b/plugins/cloudfoundry/README.md @@ -50,7 +50,7 @@ Alternatively, seek out the [online documentation][3]. And don't forget, there a ## Contributors -Contributed to `oh_my_zsh` by [benwilcock][2]. +Contributed to `oh_my_zsh` by [benwilcock][2]. [1]: https://docs.cloudfoundry.org/cf-cli/install-go-cli.html [2]: https://github.com/benwilcock diff --git a/plugins/coffee/README.md b/plugins/coffee/README.md index 2baade844..c2ab192b6 100644 --- a/plugins/coffee/README.md +++ b/plugins/coffee/README.md @@ -24,7 +24,7 @@ Also provides the following aliases: * **cfc:** Copies the compiled JS to your clipboard. Very useful when you want to run the code in a JS console. -* **cfp:** Compiles from your currently copied clipboard. Useful when you want +* **cfp:** Compiles from your currently copied clipboard. Useful when you want to compile large/multi-line snippets * **cfpc:** Paste coffeescript from clipboard, compile to JS, then copy the diff --git a/plugins/colored-man-pages/colored-man-pages.plugin.zsh b/plugins/colored-man-pages/colored-man-pages.plugin.zsh index 981992d88..57facbb5c 100644 --- a/plugins/colored-man-pages/colored-man-pages.plugin.zsh +++ b/plugins/colored-man-pages/colored-man-pages.plugin.zsh @@ -36,6 +36,7 @@ function colored() { # Prefer `less` whenever available, since we specifically configured # environment for it. environment+=( PAGER="${commands[less]:-$PAGER}" ) + environment+=( GROFF_NO_SGR=1 ) # See ./nroff script. if [[ "$OSTYPE" = solaris* ]]; then diff --git a/plugins/command-not-found/command-not-found.plugin.zsh b/plugins/command-not-found/command-not-found.plugin.zsh index cb8a8989c..c741e18a2 100644 --- a/plugins/command-not-found/command-not-found.plugin.zsh +++ b/plugins/command-not-found/command-not-found.plugin.zsh @@ -3,9 +3,10 @@ for file ( # Arch Linux. Must have pkgfile installed: https://wiki.archlinux.org/index.php/Pkgfile#Command_not_found /usr/share/doc/pkgfile/command-not-found.zsh - # macOS (M1 and classic Homebrew): https://github.com/Homebrew/homebrew-command-not-found + # Homebrew: https://github.com/Homebrew/homebrew-command-not-found /opt/homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh /usr/local/Homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh + /home/linuxbrew/.linuxbrew/Homebrew/Library/Taps/homebrew/homebrew-command-not-found/handler.sh ); do if [[ -r "$file" ]]; then source "$file" diff --git a/plugins/compleat/compleat.plugin.zsh b/plugins/compleat/compleat.plugin.zsh index 38f1b396a..7fbd2b953 100644 --- a/plugins/compleat/compleat.plugin.zsh +++ b/plugins/compleat/compleat.plugin.zsh @@ -7,7 +7,7 @@ if (( ${+commands[compleat]} )); then local prefix="${commands[compleat]:h:h}" - local setup="${prefix}/share/compleat-1.0/compleat_setup" + local setup="${prefix}/share/compleat-1.0/compleat_setup" if [[ -f "$setup" ]]; then if ! bashcompinit >/dev/null 2>&1; then @@ -15,6 +15,6 @@ if (( ${+commands[compleat]} )); then bashcompinit -i fi - source "$setup" + source "$setup" fi fi diff --git a/plugins/copybuffer/copybuffer.plugin.zsh b/plugins/copybuffer/copybuffer.plugin.zsh index e67f920f0..88bda32a0 100644 --- a/plugins/copybuffer/copybuffer.plugin.zsh +++ b/plugins/copybuffer/copybuffer.plugin.zsh @@ -1,4 +1,4 @@ -# copy the active line from the command line buffer +# copy the active line from the command line buffer # onto the system clipboard copybuffer () { diff --git a/plugins/dash/README.md b/plugins/dash/README.md index 0ca3e4e44..970c6541f 100644 --- a/plugins/dash/README.md +++ b/plugins/dash/README.md @@ -19,7 +19,7 @@ dash - Query for something in dash app: `dash query` ``` -dash golang +dash golang ``` - You can optionally provide a keyword: `dash [keyword:]query` diff --git a/plugins/dbt/README.md b/plugins/dbt/README.md new file mode 100644 index 000000000..e05d79cc3 --- /dev/null +++ b/plugins/dbt/README.md @@ -0,0 +1,29 @@ +# dbt plugin + +## Introduction + +The `dbt plugin` adds several aliases for useful [dbt](https://docs.getdbt.com/) commands and +[aliases](#aliases). + +To use it, add `dbt` to the plugins array of your zshrc file: + +``` +plugins=(... dbt) +``` + +## Aliases + +| Alias | Command | Description | +| ------ | ------------------------------------------------ | ---------------------------------------------------- | +| dbtlm | `dbt ls -s state:modified` | List modified models only | +| dbtrm | `dbt run -s state:modified` | Run modified models only | +| dbttm | `dbt test -m state:modified` | Test modified models only | +| dbtrtm | `dbtrm && dbttm` | Run and test modified models only | +| dbtrs | `dbt clean; dbt deps; dbt seed` | Re-seed data | +| dbtfrt | `dbtrs; dbt run --full-refresh; dbt test` | Perform a full fresh run with tests | +| dbtcds | `dbt docs generate; dbt docs serve` | Generate docs without compiling | +| dbtds | `dbt docs generate --no-compile; dbt docs serve` | Generate and serve docs skipping doc. re-compilation | + +## Maintainer + +### [msempere](https://github.com/msempere) diff --git a/plugins/dbt/dbt.plugin.zsh b/plugins/dbt/dbt.plugin.zsh new file mode 100644 index 000000000..6fcc2eecf --- /dev/null +++ b/plugins/dbt/dbt.plugin.zsh @@ -0,0 +1,23 @@ +# list modified models only +alias dbtlm="dbt ls -s state:modified" + +# run modified models only +alias dbtrm="dbt run -s state:modified" + +# test modified models only +alias dbttm="dbt test -m state:modified" + +# run and test modified models only +alias dbtrtm="dbtrm && dbttm" + +# re-seed data +alias dbtrs="dbt clean; dbt deps; dbt seed" + +# perform a full fresh run with tests +alias dbtfrt="dbtrs; dbt run --full-refresh; dbt test" + +# generate and serve docs +alias dbtcds="dbt docs generate; dbt docs serve" + +# generate and serve docs skipping doc. re-compilation +alias dbtds="dbt docs generate --no-compile; dbt docs serve" diff --git a/plugins/debian/README.md b/plugins/debian/README.md index c1ebe1c50..6835ad65c 100644 --- a/plugins/debian/README.md +++ b/plugins/debian/README.md @@ -13,7 +13,12 @@ plugins=(... debian) - `$apt_pref`: use aptitude or apt if installed, fallback is apt-get. - `$apt_upgr`: use upgrade or safe-upgrade (for aptitude). -Set `$apt_pref` and `$apt_upgr` to whatever command you want (before sourcing Oh My Zsh) to override this behavior. +Set **both** `$apt_pref` and `$apt_upgr` to whatever command you want (before sourcing Oh My Zsh) to override this behavior, e.g.: + +```sh +apt_pref='apt' +apt_upgr='full-upgrade' +``` ## Common Aliases @@ -21,7 +26,7 @@ Set `$apt_pref` and `$apt_upgr` to whatever command you want (before sourcing Oh | ------ | ---------------------------------------------------------------------- | ---------------------------------------------------------- | | `age` | `apt-get` | Command line tool for handling packages | | `api` | `aptitude` | Same functionality as `apt-get`, provides extra options | -| `acse` | `apt-cache search` | Command line tool for searching apt software package cache | +| `acs` | `apt-cache search` | Command line tool for searching apt software package cache | | `aps` | `aptitude search` | Searches installed packages using aptitude | | `as` | `aptitude -F '* %p -> %d \n(%v/%V)' --no-gui --disable-columns search` | Print searched packages using a custom format | | `afs` | `apt-file search --regexp` | Search file in packages | diff --git a/plugins/debian/debian.plugin.zsh b/plugins/debian/debian.plugin.zsh index bab1ae1c6..5ef4cfb67 100644 --- a/plugins/debian/debian.plugin.zsh +++ b/plugins/debian/debian.plugin.zsh @@ -26,7 +26,7 @@ alias age='apt-get' alias api='aptitude' # Some self-explanatory aliases -alias acse="apt-cache search" +alias acs="apt-cache search" alias aps='aptitude search' alias as="aptitude -F '* %p -> %d \n(%v/%V)' --no-gui --disable-columns search" diff --git a/plugins/deno/README.md b/plugins/deno/README.md index 691318397..38f9f2033 100644 --- a/plugins/deno/README.md +++ b/plugins/deno/README.md @@ -4,16 +4,17 @@ This plugin sets up completion and aliases for [Deno](https://deno.land). ## Aliases -| Alias | Full command | -| ----- | ---------------- | -| db | deno bundle | -| dc | deno compile | -| dca | deno cache | -| dfmt | deno fmt | -| dh | deno help | -| dli | deno lint | -| drn | deno run | -| drA | deno run -A | -| drw | deno run --watch | -| dts | deno test | -| dup | deno upgrade | +| Alias | Full command | +| ----- | ------------------- | +| db | deno bundle | +| dc | deno compile | +| dca | deno cache | +| dfmt | deno fmt | +| dh | deno help | +| dli | deno lint | +| drn | deno run | +| drA | deno run -A | +| drw | deno run --watch | +| dru | deno run --unstable | +| dts | deno test | +| dup | deno upgrade | diff --git a/plugins/deno/deno.plugin.zsh b/plugins/deno/deno.plugin.zsh index 7708f84df..bf97d6f03 100644 --- a/plugins/deno/deno.plugin.zsh +++ b/plugins/deno/deno.plugin.zsh @@ -8,6 +8,7 @@ alias dli='deno lint' alias drn='deno run' alias drA='deno run -A' alias drw='deno run --watch' +alias dru='deno run --unstable' alias dts='deno test' alias dup='deno upgrade' diff --git a/plugins/direnv/direnv.plugin.zsh b/plugins/direnv/direnv.plugin.zsh index 5e32c4c23..0a33194dd 100644 --- a/plugins/direnv/direnv.plugin.zsh +++ b/plugins/direnv/direnv.plugin.zsh @@ -7,10 +7,10 @@ _direnv_hook() { trap - SIGINT; } typeset -ag precmd_functions; -if [[ -z ${precmd_functions[(r)_direnv_hook]} ]]; then +if [[ -z "${precmd_functions[(r)_direnv_hook]+1}" ]]; then precmd_functions=( _direnv_hook ${precmd_functions[@]} ) fi typeset -ag chpwd_functions; -if [[ -z ${chpwd_functions[(r)_direnv_hook]} ]]; then +if [[ -z "${chpwd_functions[(r)_direnv_hook]+1}" ]]; then chpwd_functions=( _direnv_hook ${chpwd_functions[@]} ) fi diff --git a/plugins/dirhistory/dirhistory.plugin.zsh b/plugins/dirhistory/dirhistory.plugin.zsh index 7021fc03a..8d67c6188 100644 --- a/plugins/dirhistory/dirhistory.plugin.zsh +++ b/plugins/dirhistory/dirhistory.plugin.zsh @@ -19,15 +19,17 @@ export DIRHISTORY_SIZE=30 # Returns the element if the array was not empty, # otherwise returns empty string. function pop_past() { - typeset -g $1="${dirhistory_past[$#dirhistory_past]}" + setopt localoptions no_ksh_arrays if [[ $#dirhistory_past -gt 0 ]]; then + typeset -g $1="${dirhistory_past[$#dirhistory_past]}" dirhistory_past[$#dirhistory_past]=() fi } function pop_future() { - typeset -g $1="${dirhistory_future[$#dirhistory_future]}" + setopt localoptions no_ksh_arrays if [[ $#dirhistory_future -gt 0 ]]; then + typeset -g $1="${dirhistory_future[$#dirhistory_future]}" dirhistory_future[$#dirhistory_future]=() fi } @@ -35,6 +37,7 @@ function pop_future() { # Push a new element onto the end of dirhistory_past. If the size of the array # is >= DIRHISTORY_SIZE, the array is shifted function push_past() { + setopt localoptions no_ksh_arrays if [[ $#dirhistory_past -ge $DIRHISTORY_SIZE ]]; then shift dirhistory_past fi @@ -44,6 +47,7 @@ function push_past() { } function push_future() { + setopt localoptions no_ksh_arrays if [[ $#dirhistory_future -ge $DIRHISTORY_SIZE ]]; then shift dirhistory_future fi diff --git a/plugins/dnf/README.md b/plugins/dnf/README.md index dc0d1e0a0..f45c8778c 100644 --- a/plugins/dnf/README.md +++ b/plugins/dnf/README.md @@ -10,6 +10,9 @@ To use it, add `dnf` to the plugins array in your zshrc file: plugins=(... dnf) ``` +Classic `dnf` is getting superseded by `dnf5`; this plugin detects the presence +of `dnf5` and uses it as drop-in alternative to the slower `dnf`. + ## Aliases | Alias | Command | Description | diff --git a/plugins/dnf/dnf.plugin.zsh b/plugins/dnf/dnf.plugin.zsh index 653ce7dda..642422fe1 100644 --- a/plugins/dnf/dnf.plugin.zsh +++ b/plugins/dnf/dnf.plugin.zsh @@ -1,15 +1,19 @@ ## Aliases +local dnfprog="dnf" -alias dnfl="dnf list" # List packages -alias dnfli="dnf list installed" # List installed packages -alias dnfgl="dnf grouplist" # List package groups -alias dnfmc="dnf makecache" # Generate metadata cache -alias dnfp="dnf info" # Show package information -alias dnfs="dnf search" # Search package +# Prefer dnf5 if installed +command -v dnf5 > /dev/null && dnfprog=dnf5 -alias dnfu="sudo dnf upgrade" # Upgrade package -alias dnfi="sudo dnf install" # Install package -alias dnfgi="sudo dnf groupinstall" # Install package group -alias dnfr="sudo dnf remove" # Remove package -alias dnfgr="sudo dnf groupremove" # Remove package group -alias dnfc="sudo dnf clean all" # Clean cache +alias dnfl="${dnfprog} list" # List packages +alias dnfli="${dnfprog} list installed" # List installed packages +alias dnfgl="${dnfprog} grouplist" # List package groups +alias dnfmc="${dnfprog} makecache" # Generate metadata cache +alias dnfp="${dnfprog} info" # Show package information +alias dnfs="${dnfprog} search" # Search package + +alias dnfu="sudo ${dnfprog} upgrade" # Upgrade package +alias dnfi="sudo ${dnfprog} install" # Install package +alias dnfgi="sudo ${dnfprog} groupinstall" # Install package group +alias dnfr="sudo ${dnfprog} remove" # Remove package +alias dnfgr="sudo ${dnfprog} groupremove" # Remove package group +alias dnfc="sudo ${dnfprog} clean all" # Clean cache diff --git a/plugins/docker-compose/README.md b/plugins/docker-compose/README.md index bbcff2e0c..66d4e0521 100644 --- a/plugins/docker-compose/README.md +++ b/plugins/docker-compose/README.md @@ -11,23 +11,24 @@ plugins=(... docker-compose) ## Aliases -| Alias | Command | Description | -|-----------|--------------------------------|----------------------------------------------------------------------------------| -| dco | `docker-compose` | Docker-compose main command | -| dcb | `docker-compose build` | Build containers | -| dce | `docker-compose exec` | Execute command inside a container | -| dcps | `docker-compose ps` | List containers | -| dcrestart | `docker-compose restart` | Restart container | -| dcrm | `docker-compose rm` | Remove container | -| dcr | `docker-compose run` | Run a command in container | -| dcstop | `docker-compose stop` | Stop a container | -| dcup | `docker-compose up` | Build, (re)create, start, and attach to containers for a service | -| dcupb | `docker-compose up --build` | Same as `dcup`, but build images before starting containers | -| dcupd | `docker-compose up -d` | Same as `dcup`, but starts as daemon | -| dcupdb | `docker-compose up -d --build` | Same as `dcup`, but build images before starting containers and starts as daemon | -| dcdn | `docker-compose down` | Stop and remove containers | -| dcl | `docker-compose logs` | Show logs of container | -| dclf | `docker-compose logs -f` | Show logs and follow output | -| dcpull | `docker-compose pull` | Pull image of a service | -| dcstart | `docker-compose start` | Start a container | -| dck | `docker-compose kill` | Kills containers | +| Alias | Command | Description | +|-----------|----------------------------------|----------------------------------------------------------------------------------| +| dco | `docker-compose` | Docker-compose main command | +| dcb | `docker-compose build` | Build containers | +| dce | `docker-compose exec` | Execute command inside a container | +| dcps | `docker-compose ps` | List containers | +| dcrestart | `docker-compose restart` | Restart container | +| dcrm | `docker-compose rm` | Remove container | +| dcr | `docker-compose run` | Run a command in container | +| dcstop | `docker-compose stop` | Stop a container | +| dcup | `docker-compose up` | Build, (re)create, start, and attach to containers for a service | +| dcupb | `docker-compose up --build` | Same as `dcup`, but build images before starting containers | +| dcupd | `docker-compose up -d` | Same as `dcup`, but starts as daemon | +| dcupdb | `docker-compose up -d --build` | Same as `dcup`, but build images before starting containers and starts as daemon | +| dcdn | `docker-compose down` | Stop and remove containers | +| dcl | `docker-compose logs` | Show logs of container | +| dclf | `docker-compose logs -f` | Show logs and follow output | +| dclF | `docker-compose logs -f --tail0` | Just follow recent logs | +| dcpull | `docker-compose pull` | Pull image of a service | +| dcstart | `docker-compose start` | Start a container | +| dck | `docker-compose kill` | Kills containers | diff --git a/plugins/docker-compose/_docker-compose b/plugins/docker-compose/_docker-compose index c6b733500..d0ebfe515 100644 --- a/plugins/docker-compose/_docker-compose +++ b/plugins/docker-compose/_docker-compose @@ -128,7 +128,7 @@ __docker-compose_subcommand() { '--resolve-image-digests[Pin image tags to digests.]' \ '--services[Print the service names, one per line.]' \ '--volumes[Print the volume names, one per line.]' \ - '--hash[Print the service config hash, one per line. Set "service1,service2" for a list of specified services.]' \ && ret=0 + '--hash[Print the service config hash, one per line. Set "service1,service2" for a list of specified services.]' && ret=0 ;; (create) _arguments \ diff --git a/plugins/docker-compose/docker-compose.plugin.zsh b/plugins/docker-compose/docker-compose.plugin.zsh index 7a8bf4a03..d1823f535 100644 --- a/plugins/docker-compose/docker-compose.plugin.zsh +++ b/plugins/docker-compose/docker-compose.plugin.zsh @@ -16,6 +16,7 @@ alias dcupdb="$dccmd up -d --build" alias dcdn="$dccmd down" alias dcl="$dccmd logs" alias dclf="$dccmd logs -f" +alias dclF="$dccmd logs -f --tail 0" alias dcpull="$dccmd pull" alias dcstart="$dccmd start" alias dck="$dccmd kill" diff --git a/plugins/docker/README.md b/plugins/docker/README.md index 512b5d17c..0ab2e41fb 100644 --- a/plugins/docker/README.md +++ b/plugins/docker/README.md @@ -30,6 +30,15 @@ file**, but be aware of the side effects: > zstyle ':completion:*:*:docker-*:*' option-stacking yes > ``` +### Use old-style completion + +If the current completion does not work well for you, you can enable legacy completion instead with the +following setting. See https://github.com/ohmyzsh/ohmyzsh/issues/11789 for more information. + +```zsh +zstyle ':omz:plugins:docker' legacy-completion yes +``` + ## Aliases | Alias | Command | Description | @@ -58,7 +67,7 @@ file**, but be aware of the side effects: | drm | `docker container rm` | Remove the specified container(s) | | drm! | `docker container rm -f` | Force the removal of a running container (uses SIGKILL) | | dst | `docker container start` | Start one or more stopped containers | -| drs | `docker container restart` | Restart one or more containers +| drs | `docker container restart` | Restart one or more containers | | dsta | `docker stop $(docker ps -q)` | Stop all running containers | | dstp | `docker container stop` | Stop one or more running containers | | dtop | `docker top` | Display the running processes of a container | diff --git a/plugins/docker/_docker b/plugins/docker/completions/_docker similarity index 99% rename from plugins/docker/_docker rename to plugins/docker/completions/_docker index e6a12d774..466b09d94 100644 --- a/plugins/docker/_docker +++ b/plugins/docker/completions/_docker @@ -602,6 +602,7 @@ __docker_container_subcommand() { opts_create_run=( "($help -a --attach)"{-a=,--attach=}"[Attach to stdin, stdout or stderr]:device:(STDIN STDOUT STDERR)" "($help)*--add-host=[Add a custom host-to-IP mapping]:host\:ip mapping: " + "($help)*--annotation=[Add an annotation to the container (passed through to the OCI runtime)]:annotations: " "($help)*--blkio-weight-device=[Block IO (relative device weight)]:device:Block IO weight: " "($help)*--cap-add=[Add Linux capabilities]:capability: " "($help)*--cap-drop=[Drop Linux capabilities]:capability: " @@ -662,7 +663,7 @@ __docker_container_subcommand() { "($help)*--ulimit=[ulimit options]:ulimit: " "($help)--userns=[Container user namespace]:user namespace:(host)" "($help)--tmpfs[mount tmpfs]" - "($help)*-v[Bind mount a volume]:volume: " + "($help)*-v[Bind mount a volume]:volume:_directories -W / -P '/' -S '\:' -r '/ '" "($help)--volume-driver=[Optional volume driver for the container]:volume driver:(local)" "($help)*--volumes-from=[Mount volumes from the specified container]:volume: " "($help -w --workdir)"{-w=,--workdir=}"[Working directory inside the container]:directory:_directories" @@ -2527,6 +2528,8 @@ __docker_volume_subcommand() { (prune) _arguments $(__docker_arguments) \ $opts_help \ + "($help -a --all)"{-a,--all}"[Remove all unused local volumes, not just anonymous ones]" \ + "($help)*--filter=[Filter values]:filter:__docker_complete_prune_filters" \ "($help -f --force)"{-f,--force}"[Do not prompt for confirmation]" && ret=0 ;; (rm) @@ -2765,8 +2768,8 @@ __docker_subcommand() { "($help)--live-restore[Enable live restore of docker when containers are still running]" \ "($help)--log-driver=[Default driver for container logs]:logging driver:__docker_complete_log_drivers" \ "($help)*--log-opt=[Default log driver options for containers]:log driver options:__docker_complete_log_options" \ - "($help)--max-concurrent-downloads[Set the max concurrent downloads for each pull]" \ - "($help)--max-concurrent-uploads[Set the max concurrent uploads for each push]" \ + "($help)--max-concurrent-downloads[Set the max concurrent downloads]" \ + "($help)--max-concurrent-uploads[Set the max concurrent uploads]" \ "($help)--max-download-attempts[Set the max download attempts for each pull]" \ "($help)--mtu=[Network MTU]:mtu:(0 576 1420 1500 9000)" \ "($help)--oom-score-adjust=[Set the oom_score_adj for the daemon]:oom-score:(-500)" \ @@ -2774,7 +2777,7 @@ __docker_subcommand() { "($help)--raw-logs[Full timestamps without ANSI coloring]" \ "($help)*--registry-mirror=[Preferred registry mirror]:registry mirror: " \ "($help)--seccomp-profile=[Path to seccomp profile]:path:_files -g \"*.json\"" \ - "($help -s --storage-driver)"{-s=,--storage-driver=}"[Storage driver to use]:driver:(aufs btrfs devicemapper overlay overlay2 vfs zfs)" \ + "($help -s --storage-driver)"{-s=,--storage-driver=}"[Storage driver to use]:driver:(btrfs devicemapper overlay2 vfs zfs)" \ "($help)--selinux-enabled[Enable selinux support]" \ "($help)--shutdown-timeout=[Set the shutdown timeout value in seconds]:time: " \ "($help)*--storage-opt=[Storage driver options]:storage driver options: " \ diff --git a/plugins/docker/docker.plugin.zsh b/plugins/docker/docker.plugin.zsh index 8684a9785..b429ae211 100644 --- a/plugins/docker/docker.plugin.zsh +++ b/plugins/docker/docker.plugin.zsh @@ -31,3 +31,32 @@ alias dvls='docker volume ls' alias dvprune='docker volume prune' alias dxc='docker container exec' alias dxcit='docker container exec -it' + +if (( ! $+commands[docker] )); then + return +fi + +# Standarized $0 handling +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `docker`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_docker" ]]; then + typeset -g -A _comps + autoload -Uz _docker + _comps[docker]=_docker +fi + +{ + # `docker completion` is only available from 23.0.0 on + # docker version returns `Docker version 24.0.2, build cb74dfcd85` + # with `s:,:` remove the comma after the version, and select third word of it + if zstyle -t ':omz:plugins:docker' legacy-completion || \ + ! is-at-least 23.0.0 ${${(s:,:z)"$(command docker --version)"}[3]}; then + command cp "${0:h}/completions/_docker" "$ZSH_CACHE_DIR/completions/_docker" + else + command docker completion zsh | tee "$ZSH_CACHE_DIR/completions/_docker" > /dev/null + fi +} &| diff --git a/plugins/dotnet/dotnet.plugin.zsh b/plugins/dotnet/dotnet.plugin.zsh index 89d464670..ed7c55024 100644 --- a/plugins/dotnet/dotnet.plugin.zsh +++ b/plugins/dotnet/dotnet.plugin.zsh @@ -1,25 +1,17 @@ # This scripts is copied from (MIT License): -# https://github.com/dotnet/toolset/blob/master/scripts/register-completions.zsh +# https://raw.githubusercontent.com/dotnet/sdk/main/scripts/register-completions.zsh -_dotnet_zsh_complete() -{ - local completions=("$(dotnet complete "$words")") - - # If the completion list is empty, just continue with filename selection - if [ -z "$completions" ] - then - _arguments '*::arguments: _normal' - return - fi - - # This is not a variable assignment, don't remove spaces! - _values = "${(ps:\n:)completions}" +#compdef dotnet +_dotnet_completion() { + local -a completions=("${(@f)$(dotnet complete "${words}")}") + compadd -a completions + _files } -compdef _dotnet_zsh_complete dotnet +compdef _dotnet_completion dotnet # Aliases bellow are here for backwards compatibility -# added by Shaun Tabone (https://github.com/xontab) +# added by Shaun Tabone (https://github.com/xontab) alias dn='dotnet new' alias dr='dotnet run' diff --git a/plugins/emacs/README.md b/plugins/emacs/README.md index 8ed4a1473..47c7644ab 100644 --- a/plugins/emacs/README.md +++ b/plugins/emacs/README.md @@ -27,4 +27,4 @@ The plugin uses a custom launcher (which we'll call here `$EMACS_LAUNCHER`) that | eeval | `$EMACS_LAUNCHER --eval` | Same as `M-x eval` but from outside Emacs | | eframe | `emacsclient --alternate-editor="" --create-frame` | Create new X frame | | efile | - | Print the path to the file open in the current buffer | -| ecd | - | Print the directory of the file open in the the current buffer | +| ecd | - | Print the directory of the file open in the current buffer | diff --git a/plugins/emacs/emacs.plugin.zsh b/plugins/emacs/emacs.plugin.zsh index 4747f035b..5aa621803 100644 --- a/plugins/emacs/emacs.plugin.zsh +++ b/plugins/emacs/emacs.plugin.zsh @@ -60,7 +60,7 @@ function efile { } # Write to standard output the directory of the file -# opened in the the current buffer +# opened in the current buffer function ecd { local file file="$(efile)" || return $? diff --git a/plugins/emoji/emoji.plugin.zsh b/plugins/emoji/emoji.plugin.zsh index f9e476ebf..f7be56cf7 100644 --- a/plugins/emoji/emoji.plugin.zsh +++ b/plugins/emoji/emoji.plugin.zsh @@ -24,7 +24,7 @@ unset _omz_emoji_plugin_dir # This is a combining character that can be placed after any other character to surround # it in a "keycap" symbol. -# The digits 0-9 are already in the emoji table as keycap_digit_, keycap_ten, etc. +# The digits 0-9 are already in the emoji table as keycap_digit_, keycap_ten, etc. # It's unclear whether this should be in the $emoji array, because those characters are all ones # which can be displayed on their own. @@ -63,9 +63,9 @@ function random_emoji() { [[ $list_size -eq 0 ]] && return 1 local random_index=$(( ( RANDOM % $list_size ) + 1 )) local name=${names[$random_index]} - if [[ "$group" == "flags" ]]; then + if [[ "$group" == "flags" ]]; then echo ${emoji_flags[$name]} - else + else echo ${emoji[$name]} fi } @@ -86,22 +86,22 @@ function display_emoji() { # terminals treat these emoji chars as single-width. local counter=1 for i in $names; do - if [[ "$group" == "flags" ]]; then + if [[ "$group" == "flags" ]]; then printf '%s ' "$emoji_flags[$i]" - else - printf '%s ' "$emoji[$i]" + else + printf '%s ' "$emoji[$i]" fi # New line every 20 emoji, to avoid weirdnesses if (($counter % 20 == 0)); then - printf "\n" + printf "\n" fi let counter=$counter+1 done print for i in $names; do - if [[ "$group" == "flags" ]]; then + if [[ "$group" == "flags" ]]; then echo "${emoji_flags[$i]} = $i" - else + else echo "${emoji[$i]} = $i" fi done diff --git a/plugins/emotty/emotty.plugin.zsh b/plugins/emotty/emotty.plugin.zsh index 661169a8b..b48d121dc 100644 --- a/plugins/emotty/emotty.plugin.zsh +++ b/plugins/emotty/emotty.plugin.zsh @@ -4,7 +4,7 @@ # AUTHOR: Alexis Hildebrandt (afh[at]surryhill.net) # VERSION: 1.0.0 # DEPENDS: emoji plugin -# +# # There are different sets of emoji characters available, to choose a different # set export emotty_set to the name of the set you would like to use, e.g.: # % export emotty_set=nature diff --git a/plugins/encode64/README.md b/plugins/encode64/README.md index 7cdf8c3f3..e3e25a742 100644 --- a/plugins/encode64/README.md +++ b/plugins/encode64/README.md @@ -40,7 +40,7 @@ plugins=(... encode64) ### Encoding a file -Encode a file's contents to base64 and save output to text file. +Encode a file's contents to base64 and save output to text file. **NOTE:** Takes provided file and saves encoded content as new file with `.txt` extension - From parameter diff --git a/plugins/extract/README.md b/plugins/extract/README.md index ac4a8e197..c8d98b229 100644 --- a/plugins/extract/README.md +++ b/plugins/extract/README.md @@ -25,6 +25,7 @@ plugins=(... extract) | `cpio` | Cpio archive | | `deb` | Debian package | | `ear` | Enterprise Application aRchive | +| `exe` | Windows executable file | | `gz` | Gzip file | | `ipa` | iOS app package | | `ipsw` | iOS firmware file | @@ -52,9 +53,11 @@ plugins=(... extract) | `txz` | Tarball with lzma2 compression | | `tzst` | Tarball with zstd compression | | `war` | Web Application archive (Java-based) | +| `whl` | Python wheel file | | `xpi` | Mozilla XPI module file | | `xz` | LZMA2 archive | | `zip` | Zip archive | +| `zlib` | zlib archive | | `zst` | Zstandard file (zstd) | | `zpaq` | Zpaq file | diff --git a/plugins/extract/extract.plugin.zsh b/plugins/extract/extract.plugin.zsh index 7b7a2fa4f..80ca50c50 100644 --- a/plugins/extract/extract.plugin.zsh +++ b/plugins/extract/extract.plugin.zsh @@ -27,63 +27,111 @@ EOF fi local success=0 - local extract_dir="${1:t:r}" local file="$1" full_path="${1:A}" + local extract_dir="${1:t:r}" + + # Remove the .tar extension if the file name is .tar.* + if [[ $extract_dir =~ '\.tar$' ]]; then + extract_dir="${extract_dir:r}" + fi + + # If there's a file or directory with the same name as the archive + # add a random string to the end of the extract directory + if [[ -e "$extract_dir" ]]; then + local rnd="${(L)"${$(( [##36]$RANDOM*$RANDOM ))}":1:5}" + extract_dir="${extract_dir}-${rnd}" + fi + + # Create an extraction directory based on the file name + command mkdir -p "$extract_dir" + builtin cd -q "$extract_dir" + echo "extract: extracting to $extract_dir" >&2 + case "${file:l}" in (*.tar.gz|*.tgz) - (( $+commands[pigz] )) && { tar -I pigz -xvf "$file" } || tar zxvf "$file" ;; + (( $+commands[pigz] )) && { tar -I pigz -xvf "$full_path" } || tar zxvf "$full_path" ;; (*.tar.bz2|*.tbz|*.tbz2) - (( $+commands[pbzip2] )) && { tar -I pbzip2 -xvf "$file" } || tar xvjf "$file" ;; + (( $+commands[pbzip2] )) && { tar -I pbzip2 -xvf "$full_path" } || tar xvjf "$full_path" ;; (*.tar.xz|*.txz) - (( $+commands[pixz] )) && { tar -I pixz -xvf "$file" } || { + (( $+commands[pixz] )) && { tar -I pixz -xvf "$full_path" } || { tar --xz --help &> /dev/null \ - && tar --xz -xvf "$file" \ - || xzcat "$file" | tar xvf - } ;; + && tar --xz -xvf "$full_path" \ + || xzcat "$full_path" | tar xvf - } ;; (*.tar.zma|*.tlz) tar --lzma --help &> /dev/null \ - && tar --lzma -xvf "$file" \ - || lzcat "$file" | tar xvf - ;; + && tar --lzma -xvf "$full_path" \ + || lzcat "$full_path" | tar xvf - ;; (*.tar.zst|*.tzst) tar --zstd --help &> /dev/null \ - && tar --zstd -xvf "$file" \ - || zstdcat "$file" | tar xvf - ;; - (*.tar) tar xvf "$file" ;; - (*.tar.lz) (( $+commands[lzip] )) && tar xvf "$file" ;; - (*.tar.lz4) lz4 -c -d "$file" | tar xvf - ;; - (*.tar.lrz) (( $+commands[lrzuntar] )) && lrzuntar "$file" ;; - (*.gz) (( $+commands[pigz] )) && pigz -dk "$file" || gunzip -k "$file" ;; - (*.bz2) bunzip2 "$file" ;; - (*.xz) unxz "$file" ;; - (*.lrz) (( $+commands[lrunzip] )) && lrunzip "$file" ;; - (*.lz4) lz4 -d "$file" ;; - (*.lzma) unlzma "$file" ;; - (*.z) uncompress "$file" ;; - (*.zip|*.war|*.jar|*.ear|*.sublime-package|*.ipa|*.ipsw|*.xpi|*.apk|*.aar|*.whl) unzip "$file" -d "$extract_dir" ;; - (*.rar) unrar x -ad "$file" ;; + && tar --zstd -xvf "$full_path" \ + || zstdcat "$full_path" | tar xvf - ;; + (*.tar) tar xvf "$full_path" ;; + (*.tar.lz) (( $+commands[lzip] )) && tar xvf "$full_path" ;; + (*.tar.lz4) lz4 -c -d "$full_path" | tar xvf - ;; + (*.tar.lrz) (( $+commands[lrzuntar] )) && lrzuntar "$full_path" ;; + (*.gz) (( $+commands[pigz] )) && pigz -cdk "$full_path" > "${file:t:r}" || gunzip -ck "$full_path" > "${file:t:r}" ;; + (*.bz2) (( $+commands[pbzip2] )) && pbzip2 -d "$full_path" || bunzip2 "$full_path" ;; + (*.xz) unxz "$full_path" ;; + (*.lrz) (( $+commands[lrunzip] )) && lrunzip "$full_path" ;; + (*.lz4) lz4 -d "$full_path" ;; + (*.lzma) unlzma "$full_path" ;; + (*.z) uncompress "$full_path" ;; + (*.zip|*.war|*.jar|*.ear|*.sublime-package|*.ipa|*.ipsw|*.xpi|*.apk|*.aar|*.whl) unzip "$full_path" ;; + (*.rar) unrar x -ad "$full_path" ;; (*.rpm) - command mkdir -p "$extract_dir" && builtin cd -q "$extract_dir" \ - && rpm2cpio "$full_path" | cpio --quiet -id ;; - (*.7z) 7za x "$file" ;; + rpm2cpio "$full_path" | cpio --quiet -id ;; + (*.7z) 7za x "$full_path" ;; (*.deb) - command mkdir -p "$extract_dir/control" "$extract_dir/data" - builtin cd -q "$extract_dir"; ar vx "$full_path" > /dev/null + command mkdir -p "control" "data" + ar vx "$full_path" > /dev/null builtin cd -q control; extract ../control.tar.* builtin cd -q ../data; extract ../data.tar.* builtin cd -q ..; command rm *.tar.* debian-binary ;; - (*.zst) unzstd "$file" ;; - (*.cab) cabextract -d "$extract_dir" "$file" ;; - (*.cpio|*.obscpio) cpio -idmvF "$file" ;; - (*.zpaq) zpaq x "$file" ;; + (*.zst) unzstd "$full_path" ;; + (*.cab|*.exe) cabextract "$full_path" ;; + (*.cpio|*.obscpio) cpio -idmvF "$full_path" ;; + (*.zpaq) zpaq x "$full_path" ;; + (*.zlib) zlib-flate -uncompress < "$full_path" > "${file:r}" ;; (*) echo "extract: '$file' cannot be extracted" >&2 success=1 ;; esac (( success = success > 0 ? success : $? )) - (( success == 0 && remove_archive == 0 )) && rm "$full_path" + (( success == 0 && remove_archive == 0 )) && command rm "$full_path" shift - # Go back to original working directory in case we ran cd previously + # Go back to original working directory builtin cd -q "$pwd" + + # If content of extract dir is a single directory, move its contents up + # Glob flags: + # - D: include files starting with . + # - N: no error if directory is empty + # - Y2: at most give 2 files + local -a content + content=("${extract_dir}"/*(DNY2)) + if [[ ${#content} -eq 1 && -e "${content[1]}" ]]; then + # The extracted file/folder (${content[1]}) may have the same name as $extract_dir + # If so, we need to rename it to avoid conflicts in a 3-step process + # + # 1. Move and rename the extracted file/folder to a temporary random name + # 2. Delete the empty folder + # 3. Rename the extracted file/folder to the original name + if [[ "${content[1]:t}" == "$extract_dir" ]]; then + # =(:) gives /tmp/zsh, with :t it gives zsh + local tmp_name==(:); tmp_name="${tmp_name:t}" + command mv "${content[1]}" "$tmp_name" \ + && command rmdir "$extract_dir" \ + && command mv "$tmp_name" "$extract_dir" + # Otherwise, if the extracted folder name already exists in the current + # directory (because of a previous file / folder), keep the extract_dir + elif [[ ! -e "${content[1]:t}" ]]; then + command mv "${content[1]}" . \ + && command rmdir "$extract_dir" + fi + elif [[ ${#content} -eq 0 ]]; then + command rmdir "$extract_dir" + fi done } diff --git a/plugins/eza/README.md b/plugins/eza/README.md new file mode 100644 index 000000000..5de935c2c --- /dev/null +++ b/plugins/eza/README.md @@ -0,0 +1,101 @@ +# eza plugin + +This provides aliases that invoke the [`eza`](https://github.com/eza-community/eza) utility rather than `ls` + +To use it add `eza` to the plugins array in your zshrc file: + +```zsh +plugins=(... eza) +``` + +## Configuration + +All configurations are done using the `zstyle` command in the `:omz:plugins:eza` namespace. + +**NOTE:** The configuring needs to be done prior to OMZ loading the plugins. When the plugin is loaded, +changing the `zstyle` won't have any effect. + +### `dirs-first` + +```zsh +zstyle ':omz:plugins:eza' 'dirs-first' yes|no +``` + +If `yes`, directories will be grouped first. + +Default: `no` + +### `git-status` + +```zsh +zstyle ':omz:plugins:eza' 'git-status' yes|no +``` + +If `yes`, always add `--git` flag to indicate git status (if tracked / in a git repo). + +Default: `no` + +### `header` + +```zsh +zstyle ':omz:plugins:eza' 'header' yes|no +``` + +If `yes`, always add `-h` flag to add a header row for each column. + +Default: `no` + +### `show-group` + +```zsh +zstyle ':omz:plugins:eza' 'show-group' yes|no +``` + +If `yes` (default), always add `-g` flag to show the group ownership. + +Default: `yes` + +### `size-prefix` + +```zsh +zstyle ':omz:plugins:eza' 'size-prefix' (binary|none|si) +``` + +Choose the prefix to be used in displaying file size: + +- `binary` -- use [binary prefixes](https://en.wikipedia.org/wiki/Binary_prefix) such as "Ki", "Mi", "Gi" and + so on +- `none` -- don't use any prefix, show size in bytes +- `si` (default) -- use [Metric/S.I. prefixes](https://en.wikipedia.org/wiki/Metric_prefix) + +Default: `si` + +### `time-style` + +```zsh +zstyle ':omz:plugins:eza' 'time-style' $TIME_STYLE +``` + +Sets the `--time-style` option of `eza`. (See `man eza` for the options) + +Default: Not set, which means the default behavior of `eza` will take place. + +## Aliases + +**Notes:** + +- Aliases may be modified by Configuration +- The term "files" without "only" qualifier means both files & directories + +| Alias | Command | Description | +| ------ | ----------------- | -------------------------------------------------------------------------- | +| `la` | `eza -la` | List all files (except . and ..) as a long list | +| `ldot` | `eza -ld .*` | List dotfiles only (directories shown as entries instead of recursed into) | +| `lD` | `eza -lD` | List only directories (excluding dotdirs) as a long list | +| `lDD` | `eza -laD` | List only directories (including dotdirs) as a long list | +| `ll` | `eza -l` | List files as a long list | +| `ls` | `eza` | Plain eza call | +| `lsd` | `eza -d` | List specified files with directories as entries, in a grid | +| `lsdl` | `eza -dl` | List specified files with directories as entries, in a long list | +| `lS` | `eza -l -ssize` | List files as a long list, sorted by size | +| `lT` | `eza -l -snewest` | List files as a long list, sorted by date (newest last) | diff --git a/plugins/eza/eza.plugin.zsh b/plugins/eza/eza.plugin.zsh new file mode 100644 index 000000000..6d7f720bd --- /dev/null +++ b/plugins/eza/eza.plugin.zsh @@ -0,0 +1,62 @@ +if ! (( $+commands[eza] )); then + print "zsh eza plugin: eza not found. Please install eza before using this plugin." >&2 + return 1 +fi + +typeset -a _EZA_HEAD +typeset -a _EZA_TAIL + +function _configure_eza() { + local _val + # Get the head flags + if zstyle -T ':omz:plugins:eza' 'show-group'; then + _EZA_HEAD+=("g") + fi + if zstyle -t ':omz:plugins:eza' 'header'; then + _EZA_HEAD+=("h") + fi + zstyle -s ':omz:plugins:eza' 'size-prefix' _val + case "${_val:l}" in + binary) + _EZA_HEAD+=("b") + ;; + none) + _EZA_HEAD+=("B") + ;; + esac + # Get the tail long-options + if zstyle -t ':omz:plugins:eza' 'dirs-first'; then + _EZA_TAIL+=("--group-directories-first") + fi + if zstyle -t ':omz:plugins:eza' 'git-status'; then + _EZA_TAIL+=("--git") + fi + zstyle -s ':omz:plugins:eza' 'time-style' _val + if [[ $_val ]]; then + _EZA_TAIL+=("--time-style='$_val'") + fi +} + +_configure_eza + +function _alias_eza() { + local _head="${(j::)_EZA_HEAD}$2" + local _tail="${(j: :)_EZA_TAIL}" + alias "$1"="eza${_head:+ -}${_head}${_tail:+ }${_tail}${3:+ }$3" +} + +_alias_eza la la +_alias_eza ldot ld ".*" +_alias_eza lD lD +_alias_eza lDD lDa +_alias_eza ll l +_alias_eza ls +_alias_eza lsd d +_alias_eza lsdl dl +_alias_eza lS "l -ssize" +_alias_eza lT "l -snewest" + +unfunction _alias_eza +unfunction _configure_eza +unset _EZA_HEAD +unset _EZA_TAIL diff --git a/plugins/fancy-ctrl-z/README.md b/plugins/fancy-ctrl-z/README.md index f1b1dfa5c..82a4fd75e 100644 --- a/plugins/fancy-ctrl-z/README.md +++ b/plugins/fancy-ctrl-z/README.md @@ -1,14 +1,14 @@ # Use Ctrl-Z to switch back to Vim -I frequently need to execute random commands in my shell. To achieve it I pause +I frequently need to execute random commands in my shell. To achieve it I pause Vim by pressing Ctrl-z, type command and press fg to switch back to Vim. -The fg part really hurts me. I just wanted to hit Ctrl-z once again to get back -to Vim. I could not find a solution, so I developed one on my own that +The fg part really hurts me. I just wanted to hit Ctrl-z once again to get back +to Vim. I could not find a solution, so I developed one on my own that works wonderfully with ZSH. Source: http://sheerun.net/2014/03/21/how-to-boost-your-vim-productivity/ -Credits: +Credits: - original idea by @sheerun - added to OMZ by @mbologna diff --git a/plugins/fastfile/README.md b/plugins/fastfile/README.md index 32f619ffd..7291fde38 100644 --- a/plugins/fastfile/README.md +++ b/plugins/fastfile/README.md @@ -71,13 +71,13 @@ them, add `=` to your zshrc file, before Oh My Zsh is sourced. For example: `fastfile_var_prefix='@'`. - `fastfile_var_prefix`: prefix for the global aliases created. Controls the prefix of the - created global aliases. + created global aliases. **Default:** `Β§` (section sign), easy to type in a german keyboard via the combination [`⇧ Shift`+`3`](https://en.wikipedia.org/wiki/German_keyboard_layout#/media/File:KB_Germany.svg), or using `βŒ₯ Option`+`6` in macOS. - `fastfile_dir`: directory where the fastfile shortcuts are stored. Needs to end - with a trailing slash. + with a trailing slash. **Default:** `$HOME/.fastfile/`. ## Author diff --git a/plugins/firewalld/firewalld.plugin.zsh b/plugins/firewalld/firewalld.plugin.zsh index 5b1090636..b2c0f64be 100644 --- a/plugins/firewalld/firewalld.plugin.zsh +++ b/plugins/firewalld/firewalld.plugin.zsh @@ -9,7 +9,7 @@ function fwl () { zones=("${(@f)$(sudo firewall-cmd --get-active-zones | grep -v 'interfaces\|sources')}") for i in $zones; do - sudo firewall-cmd --zone $i --list-all + sudo firewall-cmd --zone ${i/ \(default\)} --list-all done echo 'Direct Rules:' diff --git a/plugins/forklift/forklift.plugin.zsh b/plugins/forklift/forklift.plugin.zsh index 85889481b..848aedabf 100644 --- a/plugins/forklift/forklift.plugin.zsh +++ b/plugins/forklift/forklift.plugin.zsh @@ -58,7 +58,7 @@ function fl { tell application forkLiftSetapp activate set forkLiftVersion to version - end tell + end tell else if forkLift3 is not null and application forkLift3 is running then tell application forkLift3 activate @@ -84,7 +84,7 @@ function fl { else if forkLift is not null then set appName to forkLift end if - + tell application appName activate set forkLiftVersion to version diff --git a/plugins/frontend-search/README.md b/plugins/frontend-search/README.md index 050058931..920795060 100644 --- a/plugins/frontend-search/README.md +++ b/plugins/frontend-search/README.md @@ -60,12 +60,22 @@ Available search contexts are: | typescript | `https://google.com/search?as_sitesearch=www.typescriptlang.org/docs&as_q=` | | unheap | `http://www.unheap.com/?s=` | | vuejs | `https://www.google.com/search?as_sitesearch=vuejs.org&as_q=` | +| nextjs | `https://www.google.com/search?as_sitesearch=nextjs.org&as_q=` | If you want to have another context, open an Issue and tell us! ## Fallback search behaviour -The plugin will use Google as a fallback if the docs site for a search context does not have a search function. You can set the fallback search engine to DuckDuckGo by setting `FRONTEND_SEARCH_FALLBACK='duckduckgo'` in your `~/.zshrc` file before Oh My Zsh is sourced. +The plugin will use Google as a fallback if the docs site for a search context does not have a search +function. You can set the fallback search engine to DuckDuckGo by setting +`FRONTEND_SEARCH_FALLBACK='duckduckgo'` in your `~/.zshrc` file before Oh My Zsh is sourced. + +## DuckDuckGo Lucky Search + +Enable DuckDuckGo's "ducky" (lucky) search feature to automatically access the top search result. This feature +is optimized for DuckDuckGo, as Google redirects to an intermediate page. The FRONTEND_SEARCH_FALLBACK_LUCKY +environment variable triggers the use of DuckDuckGo's lucky search, rendering the FRONTEND_SEARCH_FALLBACK +setting unnecessary in this context. ## Author diff --git a/plugins/frontend-search/frontend-search.plugin.zsh b/plugins/frontend-search/frontend-search.plugin.zsh index b9e2fe95d..c96596eb9 100644 --- a/plugins/frontend-search/frontend-search.plugin.zsh +++ b/plugins/frontend-search/frontend-search.plugin.zsh @@ -27,12 +27,19 @@ alias stackoverflow='frontend stackoverflow' alias typescript='frontend typescript' alias unheap='frontend unheap' alias vuejs='frontend vuejs' +alias nextjs='frontend nextjs' function _frontend_fallback() { - case "$FRONTEND_SEARCH_FALLBACK" in - duckduckgo) echo "https://duckduckgo.com/?sites=$1&q=" ;; - *) echo "https://google.com/search?as_sitesearch=$1&as_q=" ;; - esac + if [[ "$FRONTEND_SEARCH_FALLBACK_LUCKY" == "true" ]]; then + case true in + *) echo "https://duckduckgo.com/?q=!ducky+site%3A$1+" ;; + esac + else + case "$FRONTEND_SEARCH_FALLBACK" in + duckduckgo) echo "https://duckduckgo.com/?sites=$1&q=" ;; + *) echo "https://google.com/search?as_sitesearch=$1&as_q=" ;; + esac + fi } function frontend() { @@ -70,6 +77,7 @@ function frontend() { typescript $(_frontend_fallback 'www.typescriptlang.org/docs') unheap 'http://www.unheap.com/?s=' vuejs $(_frontend_fallback 'vuejs.org') + nextjs $(_frontend_fallback 'nextjs.org') ) # show help for command list @@ -81,7 +89,7 @@ function frontend() { print -P "" print -P " angular, angularjs, bem, bootsnipp, caniuse, codepen, compassdoc, cssflow, packagephobia" print -P " dartlang, emberjs, fontello, flowtype, github, html5please, jestjs, jquery, lodash," - print -P " mdn, npmjs, nodejs, qunit, reactjs, smacss, stackoverflow, unheap, vuejs, bundlephobia" + print -P " mdn, npmjs, nodejs, qunit, reactjs, smacss, stackoverflow, unheap, vuejs, bundlephobia, nextjs" print -P "" print -P "For example: frontend npmjs mocha (or just: npmjs mocha)." print -P "" @@ -96,7 +104,7 @@ function frontend() { echo "" echo " angular, angularjs, bem, bootsnipp, caniuse, codepen, compassdoc, cssflow, packagephobia" echo " dartlang, emberjs, fontello, github, html5please, jest, jquery, lodash," - echo " mdn, npmjs, nodejs, qunit, reactjs, smacss, stackoverflow, unheap, vuejs, bundlephobia" + echo " mdn, npmjs, nodejs, qunit, reactjs, smacss, stackoverflow, unheap, vuejs, bundlephobia, nextjs" echo "" return 1 fi diff --git a/plugins/fzf/fzf.plugin.zsh b/plugins/fzf/fzf.plugin.zsh index b253a23d2..9e372f498 100644 --- a/plugins/fzf/fzf.plugin.zsh +++ b/plugins/fzf/fzf.plugin.zsh @@ -8,6 +8,7 @@ function fzf_setup_using_base_dir() { "${HOME}/.fzf" "${HOME}/.nix-profile/share/fzf" "${XDG_DATA_HOME:-$HOME/.local/share}/fzf" + "${MSYSTEM_PREFIX}/share/fzf" "/usr/local/opt/fzf" "/opt/homebrew/opt/fzf" "/usr/share/fzf" @@ -61,7 +62,7 @@ function fzf_setup_using_base_dir() { function fzf_setup_using_debian() { if (( ! $+commands[apt] && ! $+commands[apt-get] )); then - # Not a debian based distro + # Not a debian based distro return 1 fi diff --git a/plugins/gas/README.md b/plugins/gas/README.md index 47b3fb9df..a0a7a568f 100644 --- a/plugins/gas/README.md +++ b/plugins/gas/README.md @@ -1,6 +1,6 @@ # Gas plugin -This plugin adds autocompletion for the [gas](http://walle.github.com/gas) command, +This plugin adds autocompletion for the [gas](http://ramblingsby.me/gas/) command, a utility to manage Git authors. To use it, add `gas` to the plugins array of your zshrc file: diff --git a/plugins/gcloud/gcloud.plugin.zsh b/plugins/gcloud/gcloud.plugin.zsh index 30f1dba8f..fa8f884a4 100644 --- a/plugins/gcloud/gcloud.plugin.zsh +++ b/plugins/gcloud/gcloud.plugin.zsh @@ -6,15 +6,19 @@ if [[ -z "${CLOUDSDK_HOME}" ]]; then search_locations=( "$HOME/google-cloud-sdk" + "/usr/local/share/google-cloud-sdk" "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk" "/opt/homebrew/Caskroom/google-cloud-sdk/latest/google-cloud-sdk" + "/opt/homebrew/share/google-cloud-sdk" "/usr/share/google-cloud-sdk" "/snap/google-cloud-sdk/current" "/snap/google-cloud-cli/current" "/usr/lib/google-cloud-sdk" "/usr/lib64/google-cloud-sdk" "/opt/google-cloud-sdk" + "/opt/google-cloud-cli" "/opt/local/libexec/google-cloud-sdk" + "$HOME/.asdf/installs/gcloud/*/" ) for gcloud_sdk_location in $search_locations; do @@ -27,11 +31,9 @@ if [[ -z "${CLOUDSDK_HOME}" ]]; then fi if (( ${+CLOUDSDK_HOME} )); then - # Only source this if gcloud isn't already on the path - if (( ! $+commands[gcloud] )); then - if [[ -f "${CLOUDSDK_HOME}/path.zsh.inc" ]]; then - source "${CLOUDSDK_HOME}/path.zsh.inc" - fi + # Source path file + if [[ -f "${CLOUDSDK_HOME}/path.zsh.inc" ]]; then + source "${CLOUDSDK_HOME}/path.zsh.inc" fi # Look for completion file in different paths diff --git a/plugins/git-auto-fetch/git-auto-fetch.plugin.zsh b/plugins/git-auto-fetch/git-auto-fetch.plugin.zsh index 2df34bb7b..f8dfec759 100644 --- a/plugins/git-auto-fetch/git-auto-fetch.plugin.zsh +++ b/plugins/git-auto-fetch/git-auto-fetch.plugin.zsh @@ -29,7 +29,7 @@ function git-fetch-all { date -R &>! "$gitdir/FETCH_LOG" GIT_SSH_COMMAND="command ssh -o BatchMode=yes" \ GIT_TERMINAL_PROMPT=0 \ - command git fetch --all 2>/dev/null &>> "$gitdir/FETCH_LOG" + command git fetch --all --recurse-submodules=yes 2>/dev/null &>> "$gitdir/FETCH_LOG" ) &| } diff --git a/plugins/git-commit/README.md b/plugins/git-commit/README.md new file mode 100644 index 000000000..f812ee23f --- /dev/null +++ b/plugins/git-commit/README.md @@ -0,0 +1,47 @@ +# git-commit plugin + +The git-commit plugin adds several +[git aliases](https://www.git-scm.com/docs/git-config#Documentation/git-config.txt-alias) for +[conventional commit](https://www.conventionalcommits.org/en/v1.0.0/#summary) messages. + +To use it, add `git-commit` to the plugins array in your zshrc file: + +```zsh +plugins=(... git-commit) +``` + +## Syntax + +```zsh +git [(-s, --scope) ""] [(-a, --attention)] "" +``` + +Where `type` is one of the following: + +- `build` +- `chore` +- `ci` +- `docs` +- `feat` +- `fix` +- `perf` +- `refactor` +- `rev` +- `style` +- `test` +- `wip` + +> NOTE: the alias for `revert` type is `rev`, as otherwise it conflicts with the git command of the same name. +> It will still generate a commit message in the format `revert: ` + +> ⚠️ Enabling this plugin will (potentially) overwrite all `alias.` that you manually set. Use with +> care! + +## Examples + +| Git alias | Command | +| --------------------------------------------- | ---------------------------------------------------- | +| `git style "remove trailing whitespace"` | `git commit -m "style: remove trailing whitespace"` | +| `git wip "work in progress"` | `git commit -m "work in progress"` | +| `git fix -s "router" "correct redirect link"` | `git commit -m "fix(router): correct redirect link"` | +| `git rev -s "api" "rollback v2"` | `git commit -m "revert(api): rollback v2"` | diff --git a/plugins/git-commit/git-commit.plugin.zsh b/plugins/git-commit/git-commit.plugin.zsh new file mode 100644 index 000000000..c4df77c80 --- /dev/null +++ b/plugins/git-commit/git-commit.plugin.zsh @@ -0,0 +1,58 @@ +local _rev="$(git -C $ZSH rev-parse HEAD 2> /dev/null)" +if [[ $_rev == $(git config --global --get oh-my-zsh.git-commit-alias 2> /dev/null) ]]; then + return +fi +git config --global oh-my-zsh.git-commit-alias "$_rev" + +local -a _git_commit_aliases +_git_commit_aliases=( + 'build' + 'chore' + 'ci' + 'docs' + 'feat' + 'fix' + 'perf' + 'refactor' + 'revert' + 'style' + 'test' + 'wip' +) + +local _alias _type +for _type in "${_git_commit_aliases[@]}"; do + # an alias can't be named "revert" because the git command takes precedence + # https://stackoverflow.com/a/3538791 + case "$_type" in + revert) _alias=rev ;; + *) _alias=$_type ;; + esac + + local _func='!a() { +local _scope _attention _message +while [ $# -ne 0 ]; do +case $1 in + -s | --scope ) + if [ -z $2 ]; then + echo "Missing scope!" + return 1 + fi + _scope="$2" + shift 2 + ;; + -a | --attention ) + _attention="!" + shift 1 + ;; + * ) + _message="${_message} $1" + shift 1 + ;; +esac +done +git commit -m "'$_type'${_scope:+(${_scope})}${_attention}:${_message}" +}; a' + + git config --global alias.$_alias "$_func" +done diff --git a/plugins/git-extras/README.md b/plugins/git-extras/README.md index 2adc9d477..7eb53fcfd 100644 --- a/plugins/git-extras/README.md +++ b/plugins/git-extras/README.md @@ -1,6 +1,6 @@ # git-extras -This plugin provides completion definitions for some of the commands defined by [git-extras](https://github.com/tj/git-extras). +This plugin provides completion definitions for some of the commands defined by [git-extras](https://github.com/tj/git-extras), which must already be installed. To use it, add `git-extras` to the plugins array in your zshrc file: diff --git a/plugins/git-extras/git-extras.plugin.zsh b/plugins/git-extras/git-extras.plugin.zsh index 6b96e12af..f5fd387d1 100644 --- a/plugins/git-extras/git-extras.plugin.zsh +++ b/plugins/git-extras/git-extras.plugin.zsh @@ -80,22 +80,10 @@ __gitex_specific_branch_names() { _wanted branch-names expl branch-name compadd - $branch_names } -__gitex_chore_branch_names() { - __gitex_specific_branch_names 'chore' -} - __gitex_feature_branch_names() { __gitex_specific_branch_names 'feature' } -__gitex_refactor_branch_names() { - __gitex_specific_branch_names 'refactor' -} - -__gitex_bug_branch_names() { - __gitex_specific_branch_names 'bug' -} - __gitex_submodule_names() { local expl declare -a submodule_names @@ -114,88 +102,29 @@ __gitex_author_names() { } # subcommands +# new subcommand should be added in alphabetical order _git-authors() { _arguments -C \ '(--list -l)'{--list,-l}'[show authors]' \ '--no-email[without email]' \ } -_git-bug() { - local curcontext=$curcontext state line ret=1 - declare -A opt_args - - _arguments -C \ - ': :->command' \ - '*:: :->option-or-argument' && ret=0 - - case $state in - (command) - declare -a commands - commands=( - 'finish:merge bug into the current branch' - ) - _describe -t commands command commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*}-$line[1]: - case $line[1] in - (finish) - _arguments -C \ - ':branch-name:__gitex_bug_branch_names' - ;; - -r|--remote ) - _arguments -C \ - ':remote-name:__gitex_remote_names' - ;; - esac - return 0 - esac - - _arguments \ - '(--remote -r)'{--remote,-r}'[setup remote tracking branch]' -} - - _git-changelog() { _arguments \ '(-l --list)'{-l,--list}'[list commits]' \ } -_git-chore() { - local curcontext=$curcontext state line ret=1 - declare -A opt_args - - _arguments -C \ - ': :->command' \ - '*:: :->option-or-argument' && ret=0 - - case $state in - (command) - declare -a commands - commands=( - 'finish:merge and delete the chore branch' - ) - _describe -t commands command commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*}-$line[1]: - case $line[1] in - (finish) - _arguments -C \ - ':branch-name:__gitex_chore_branch_names' - ;; - -r|--remote ) - _arguments -C \ - ':remote-name:__gitex_remote_names' - ;; - esac - return 0 - esac - +_git-clear() { _arguments \ - '(--remote -r)'{--remote,-r}'[setup remote tracking branch]' + '(-f --force)'{-f,--force}'[force clear]' \ + '(-h --help)'{-h,--help}'[help message]' \ } +_git-coauthor() { + _arguments \ + ':co-author[co-author to add]' \ + ':co-author-email[email address of co-author to add]' +} _git-contrib() { _arguments \ @@ -235,6 +164,11 @@ _git-delete-branch() { ':branch-name:__gitex_branch_names' } +_git-delete-squashed-branches() { + _arguments \ + ':branch-name:__gitex_branch_names' +} + _git-delete-submodule() { _arguments \ @@ -298,6 +232,7 @@ _git-feature() { case $line[1] in (finish) _arguments -C \ + '--squash[Use squash merge]' \ ':branch-name:__gitex_feature_branch_names' ;; -r|--remote ) @@ -327,20 +262,17 @@ _git-guilt() { } _git-ignore() { - _arguments -C \ + _arguments -C \ '(--local -l)'{--local,-l}'[show local gitignore]' \ '(--global -g)'{--global,-g}'[show global gitignore]' \ '(--private -p)'{--private,-p}'[show repo gitignore]' } -_git-ignore() { - _arguments -C \ - '(--append -a)'{--append,-a}'[append .gitignore]' \ - '(--replace -r)'{--replace,-r}'[replace .gitignore]' \ - '(--list-in-table -l)'{--list-in-table,-l}'[print available types in table format]' \ - '(--list-alphabetically -L)'{--list-alphabetically,-L}'[print available types in alphabetical order]' \ - '(--search -s)'{--search,-s}'[search word in available types]' +_git-info() { + _arguments -C \ + '(--color -c)'{--color,-c}'[use color for information titles]' \ + '--no-config[do not show list all variables set in config file, along with their values]' } @@ -357,50 +289,27 @@ _git-missing() { ':second-branch-name:__gitex_branch_names' } - -_git-refactor() { - local curcontext=$curcontext state line ret=1 - declare -A opt_args - +_git-release() { _arguments -C \ - ': :->command' \ - '*:: :->option-or-argument' && ret=0 - - case $state in - (command) - declare -a commands - commands=( - 'finish:merge refactor into the current branch' - ) - _describe -t commands command commands && ret=0 - ;; - (option-or-argument) - curcontext=${curcontext%:*}-$line[1]: - case $line[1] in - (finish) - _arguments -C \ - ':branch-name:__gitex_refactor_branch_names' - ;; - -r|--remote ) - _arguments -C \ - ':remote-name:__gitex_remote_names' - ;; - esac - return 0 - esac - - _arguments \ - '(--remote -r)'{--remote,-r}'[setup remote tracking branch]' + '-c[Generates/populates the changelog with all commit message since the last tag.]' \ + '-r[The "remote" repository that is destination of a push operation.]' \ + '-m[use the custom commit information instead of the default message.]' \ + '-s[Create a signed and annotated tag.]' \ + '-u[Create a tag, annotated and signed with the given key.]' \ + '--semver[If the latest tag in your repo matches the semver format requirement, you could increase part of it as the new release tag.]' \ + '--prefix[Add a prefix string to semver to allow more complex tags.]' \ + '--no-empty-commit[Avoid creating empty commit if nothing could be committed.]' \ + '--[The arguments listed after "--" separator will be passed to pre/post-release hook.]' } - _git-squash() { + _arguments '--squash-msg[commit with the squashed commit messages]' _arguments \ ':branch-name:__gitex_branch_names' } _git-stamp() { - _arguments -C \ + _arguments -C \ '(--replace -r)'{--replace,-r}'[replace stamps with same id]' } @@ -413,17 +322,19 @@ _git-standup() { '-g[Display GPG signed info]' \ '-h[Display help message]' \ '-L[Enable the inclusion of symbolic links]' \ - '-m[The depth of recursive directory search]' + '-m[The depth of recursive directory search]' \ + '-B[Display the commits in branch groups]' } _git-summary() { _arguments '--line[summarize with lines rather than commits]' + _arguments '--dedup-by-email[remove duplicate users by the email address]' + _arguments '--no-merges[exclude merge commits]' __gitex_commits } - _git-undo(){ - _arguments -C \ + _arguments -C \ '(--soft -s)'{--soft,-s}'[only rolls back the commit but changes remain un-staged]' \ '(--hard -h)'{--hard,-h}'[wipes your commit(s)]' } @@ -432,21 +343,26 @@ zstyle -g existing_user_commands ':completion:*:*:git:*' user-commands zstyle ':completion:*:*:git:*' user-commands $existing_user_commands \ alias:'define, search and show aliases' \ + abort:'abort current revert, merge, rebase, or cherry-pick process' \ archive-file:'export the current head of the git repository to an archive' \ authors:'generate authors report' \ - back:'undo and stage latest commits' \ + browse:'open repo website in browser' \ + browse-ci:'open repo CI page in browser' \ bug:'create bug branch' \ bulk:'run bulk commands' \ + brv:'list branches sorted by their last commit date'\ changelog:'generate a changelog report' \ chore:'create chore branch' \ clear-soft:'soft clean up a repository' \ clear:'rigorously clean up a repository' \ + coauthor:'add a co-author to the last commit' \ commits-since:'show commit logs since some date' \ contrib:'show user contributions' \ count:'show commit count' \ create-branch:'create branches' \ delete-branch:'delete branches' \ delete-merged-branches:'delete merged branches' \ + delete-squashed-branches:'delete squashed branches' \ delete-submodule:'delete submodules' \ delete-tag:'delete tags' \ delta:'lists changed files' \ @@ -465,11 +381,13 @@ zstyle ':completion:*:*:git:*' user-commands $existing_user_commands \ local-commits:'list local commits' \ lock:'lock a file excluded from version control' \ locked:'ls files that have been locked' \ + magic:'commits everything with a generated message' \ merge-into:'merge one branch into another' \ merge-repo:'merge two repo histories' \ missing:'show commits missing from another branch' \ mr:'checks out a merge request locally' \ obliterate:'rewrite past commits to remove some files' \ + paste:'send patches to pastebin sites' \ pr:'checks out a pull request locally' \ psykorebase:'rebase a branch with a merge commit' \ pull-request:'create pull request to GitHub project' \ @@ -479,6 +397,7 @@ zstyle ':completion:*:*:git:*' user-commands $existing_user_commands \ release:'commit, tag and push changes to the repository' \ rename-branch:'rename a branch' \ rename-tag:'rename a tag' \ + rename-remote:'rename a remote' \ repl:'git read-eval-print-loop' \ reset-file:'reset one file' \ root:'show path of root' \ @@ -495,4 +414,5 @@ zstyle ':completion:*:*:git:*' user-commands $existing_user_commands \ sync:'sync local branch with remote branch' \ touch:'touch and add file to the index' \ undo:'remove latest commits' \ - unlock:'unlock a file excluded from version control' + unlock:'unlock a file excluded from version control' \ + utimes:'change files modification time to their last commit date' diff --git a/plugins/git-prompt/README.md b/plugins/git-prompt/README.md index 05208d72f..8f42c6842 100644 --- a/plugins/git-prompt/README.md +++ b/plugins/git-prompt/README.md @@ -9,6 +9,10 @@ To use it, add `git-prompt` to the plugins array in your zshrc file: plugins=(... git-prompt) ``` +You may also need to [customize your theme](https://github.com/ohmyzsh/ohmyzsh/issues/9395#issuecomment-1027130429) +to change the way the prompt is built. See the +[OMZ wiki on customizing themes](https://github.com/ohmyzsh/ohmyzsh/wiki/Customization#overriding-and-adding-themes). + See the [original repository](https://github.com/olivierverdier/zsh-git-prompt). ## Requirements diff --git a/plugins/git/README.md b/plugins/git/README.md index 0895ce39c..4c005ad2f 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -10,252 +10,274 @@ plugins=(... git) ## Aliases -| Alias | Command | -| :------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| g | git | -| ga | git add | -| gaa | git add --all | -| gapa | git add --patch | -| gau | git add --update | -| gav | git add --verbose | -| gap | git apply | -| gapt | git apply --3way | -| gb | git branch | -| gba | git branch --all | -| gbd | git branch --delete | -| gbda | git branch --no-color --merged \| grep -vE "^([+*]\|\s*($(git_main_branch)\|$(git_develop_branch))\s*$)" \| xargs git branch --delete 2>/dev/null | -| gbD | git branch --delete --force | -| gbg | git branch -vv | grep ": gone\]" | -| gbgd | local res=$(git branch -vv | grep ": gone\]" | awk '{print $1}') && [[ $res ]] && echo $res | xargs git branch -d | -| gbgD | local res=$(git branch -vv | grep ": gone\]" | awk '{print $1}') && [[ $res ]] && echo $res | xargs git branch -D | -| gbl | git blame -b -w | -| gbnm | git branch --no-merged | -| gbr | git branch --remote | -| gbs | git bisect | -| gbsb | git bisect bad | -| gbsg | git bisect good | -| gbsr | git bisect reset | -| gbss | git bisect start | -| gc | git commit --verbose | -| gc! | git commit --verbose --amend | -| gcn! | git commit --verbose --no-edit --amend | -| gca | git commit --verbose --all | -| gca! | git commit --verbose --all --amend | -| gcan! | git commit --verbose --all --no-edit --amend | -| gcans! | git commit --verbose --all --signoff --no-edit --amend | -| gcam | git commit --all --message | -| gcas | git commit --all --signoff | -| gcasm | git commit --all --signoff --message | -| gcsm | git commit --signoff --message | -| gcb | git checkout -b | -| gcf | git config --list | -| gcl | git clone --recurse-submodules | -| gccd | git clone --recurse-submodules "$@" && cd "$(basename $\_ .git)" | -| gclean | git clean --interactive -d | -| gpristine | git reset --hard && git clean -dffx | -| gcm | git checkout $(git_main_branch) | -| gcd | git checkout $(git_develop_branch) | -| gcmsg | git commit --message | -| gco | git checkout | -| gcor | git checkout --recurse-submodules | -| gcount | git shortlog --summary -n | -| gcp | git cherry-pick | -| gcpa | git cherry-pick --abort | -| gcpc | git cherry-pick --continue | -| gcs | git commit -S | -| gcss | git commit -S -s | -| gcssm | git commit -S -s -m | -| gd | git diff | -| gdca | git diff --cached | -| gdcw | git diff --cached --word-diff | -| gdct | git describe --tags $(git rev-list --tags --max-count=1) | -| gds | git diff --staged | -| gdt | git diff-tree --no-commit-id --name-only -r | -| gdnolock | git diff $@ ":(exclude)package-lock.json" ":(exclude)\*.lock" | -| gdup | git diff @{upstream} | -| gdv | git diff -w $@ \| view - | -| gdw | git diff --word-diff | -| gf | git fetch | -| gfa | git fetch --all --prune | -| gfg | git ls-files \| grep | -| gfo | git fetch origin | -| gg | git gui citool | -| gga | git gui citool --amend | -| ggf | git push --force origin $(current_branch) | -| ggfl | git push --force-with-lease origin $(current_branch) | -| ggl | git pull origin $(current_branch) | -| ggp | git push origin $(current_branch) | -| ggpnp | ggl && ggp | -| ggpull | git pull origin "$(git_current_branch)" | -| ggpur | ggu | -| ggpush | git push origin "$(git_current_branch)" | -| ggsup | git branch --set-upstream-to=origin/$(git_current_branch) | -| ggu | git pull --rebase origin $(current_branch) | -| gpsup | git push --set-upstream origin $(git_current_branch) | -| gpsupf | git push --set-upstream origin $(git_current_branch) --force-with-lease --force-if-includes (git version >= 2.30) | -| gpsupf | git push --set-upstream origin $(git_current_branch) --force-with-lease (git version < 2.30) | -| ghh | git help | -| gignore | git update-index --assume-unchanged | -| gignored | git ls-files -v \| grep "^[[:lower:]]" | -| git-svn-dcommit-push | git svn dcommit && git push github $(git_main_branch):svntrunk | -| gk | gitk --all --branches &! | -| gke | gitk --all $(git log --walk-reflogs --pretty=%h) &! | -| gl | git pull | -| glg | git log --stat | -| glgp | git log --stat --patch | -| glgg | git log --graph | -| glgga | git log --graph --decorate --all | -| glgm | git log --graph --max-count=10 | -| glo | git log --oneline --decorate | -| glol | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' | -| glols | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --stat | -| glod | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' | -| glods | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short | -| glola | git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --all | -| glog | git log --oneline --decorate --graph | -| gloga | git log --oneline --decorate --graph --all | -| glp | git log --pretty=\ | -| gm | git merge | -| gmom | git merge origin/$(git_main_branch) | -| gmtl | git mergetool --no-prompt | -| gmtlvim | git mergetool --no-prompt --tool=vimdiff | -| gmum | git merge upstream/$(git_main_branch) | -| gma | git merge --abort | -| gp | git push | -| gpd | git push --dry-run | -| gpf | git push --force-with-lease --force-if-includes (git version >= 2.30) | -| gpf | git push --force-with-lease (git version < 2.30) | -| gpf! | git push --force | -| gpoat | git push origin --all && git push origin --tags | -| gpod | git push origin --delete | -| gpr | git pull --rebase | -| gpu | git push upstream | -| gpv | git push --verbose | -| gr | git remote | -| gra | git remote add | -| grb | git rebase | -| grba | git rebase --abort | -| grbc | git rebase --continue | -| grbd | git rebase $(git_develop_branch) | -| grbi | git rebase --interactive | -| grbm | git rebase $(git_main_branch) | -| grbom | git rebase origin/$(git_main_branch) | -| grbo | git rebase --onto | -| grbs | git rebase --skip | -| grev | git revert | -| grh | git reset | -| grhh | git reset --hard | -| groh | git reset origin/$(git_current_branch) --hard | -| grm | git rm | -| grmc | git rm --cached | -| grmv | git remote rename | -| grrm | git remote remove | -| grs | git restore | -| grset | git remote set-url | -| grss | git restore --source | -| grst | git restore --staged | -| grt | cd "$(git rev-parse --show-toplevel \|\| echo .)" | -| gru | git reset -- | -| grup | git remote update | -| grv | git remote --verbose | -| gsb | git status --short -b | -| gsd | git svn dcommit | -| gsh | git show | -| gsi | git submodule init | -| gsps | git show --pretty=short --show-signature | -| gsr | git svn rebase | -| gss | git status --short | -| gst | git status | -| gsta | git stash push (git version >= 2.13) | -| gsta | git stash save (git version < 2.13) | -| gstaa | git stash apply | -| gstc | git stash clear | -| gstd | git stash drop | -| gstl | git stash list | -| gstp | git stash pop | -| gsts | git stash show --text | -| gstu | git stash --include-untracked | -| gstall | git stash --all | -| gsu | git submodule update | -| gsw | git switch | -| gswc | git switch -c | -| gswm | git switch $(git_main_branch) | -| gswd | git switch $(git_develop_branch) | -| gts | git tag -s | -| gtv | git tag \| sort -V | -| gtl | gtl(){ git tag --sort=-v:refname -n --list ${1}\* }; noglob gtl | -| gunignore | git update-index --no-assume-unchanged | -| gunwip | git log --max-count=1 \| grep -q -c "\-\-wip\-\-" && git reset HEAD~1 | -| gup | git pull --rebase | -| gupv | git pull --rebase --verbose | -| gupa | git pull --rebase --autostash | -| gupav | git pull --rebase --autostash --verbose | -| gupom | git pull --rebase origin $(git_main_branch) | -| gupomi | git pull --rebase=interactive origin $(git_main_branch) | -| glum | git pull upstream $(git_main_branch) | -| gluc | git pull upstream $(git_current_branch) | -| gwch | git whatchanged -p --abbrev-commit --pretty=medium | -| gwip | git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign --message "--wip-- [skip ci]" | -| gam | git am | -| gamc | git am --continue | -| gams | git am --skip | -| gama | git am --abort | -| gamscp | git am --show-current-patch | -| gwt | git worktree | -| gwtls | git worktree list | -| gwtmv | git worktree move | -| gwtrm | git worktree remove | +| Alias | Command | +| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------ | +| `grt` | `cd "$(git rev-parse --show-toplevel \|\| echo .)"` | +| `ggpnp` | `ggl && ggp` | +| `ggpur` | `ggu` | +| `g` | `git` | +| `ga` | `git add` | +| `gaa` | `git add --all` | +| `gapa` | `git add --patch` | +| `gau` | `git add --update` | +| `gav` | `git add --verbose` | +| `gwip` | `git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign --message "--wip-- [skip ci]"` | +| `gam` | `git am` | +| `gama` | `git am --abort` | +| `gamc` | `git am --continue` | +| `gamscp` | `git am --show-current-patch` | +| `gams` | `git am --skip` | +| `gap` | `git apply` | +| `gapt` | `git apply --3way` | +| `gbs` | `git bisect` | +| `gbsb` | `git bisect bad` | +| `gbsg` | `git bisect good` | +| `gbsn` | `git bisect new` | +| `gbso` | `git bisect old` | +| `gbsr` | `git bisect reset` | +| `gbss` | `git bisect start` | +| `gbl` | `git blame -w` | +| `gb` | `git branch` | +| `gba` | `git branch --all` | +| `gbd` | `git branch --delete` | +| `gbD` | `git branch --delete --force` | +| `gbgd` | `LANG=C git branch --no-color -vv \| grep ": gone\]" \| awk '"'"'{print $1}'"'"' \| xargs git branch -d` | +| `gbgD` | `LANG=C git branch --no-color -vv \| grep ": gone\]" \| awk '"'"'{print $1}'"'"' \| xargs git branch -D` | +| `gbm` | `git branch --move` | +| `gbnm` | `git branch --no-merged` | +| `gbr` | `git branch --remote` | +| `ggsup` | `git branch --set-upstream-to=origin/$(git_current_branch)` | +| `gbg` | `LANG=C git branch -vv \| grep ": gone\]"` | +| `gco` | `git checkout` | +| `gcor` | `git checkout --recurse-submodules` | +| `gcb` | `git checkout -b` | +| `gcB` | `git checkout -B` | +| `gcd` | `git checkout $(git_develop_branch)` | +| `gcm` | `git checkout $(git_main_branch)` | +| `gcp` | `git cherry-pick` | +| `gcpa` | `git cherry-pick --abort` | +| `gcpc` | `git cherry-pick --continue` | +| `gclean` | `git clean --interactive -d` | +| `gcl` | `git clone --recurse-submodules` | +| `gccd` | `git clone --recurse-submodules "$@" && cd "$(basename $\_ .git)"` | +| `gcam` | `git commit --all --message` | +| `gcas` | `git commit --all --signoff` | +| `gcasm` | `git commit --all --signoff --message` | +| `gcmsg` | `git commit --message` | +| `gcsm` | `git commit --signoff --message` | +| `gc` | `git commit --verbose` | +| `gca` | `git commit --verbose --all` | +| `gca!` | `git commit --verbose --all --amend` | +| `gcan!` | `git commit --verbose --all --no-edit --amend` | +| `gcans!` | `git commit --verbose --all --signoff --no-edit --amend` | +| `gcann!` | `git commit --verbose --all --date=now --no-edit --amend` | +| `gc!` | `git commit --verbose --amend` | +| `gcn!` | `git commit --verbose --no-edit --amend` | +| `gcs` | `git commit -S` | +| `gcss` | `git commit -S -s` | +| `gcssm` | `git commit -S -s -m` | +| `gcf` | `git config --list` | +| `gdct` | `git describe --tags $(git rev-list --tags --max-count=1)` | +| `gd` | `git diff` | +| `gdca` | `git diff --cached` | +| `gdcw` | `git diff --cached --word-diff` | +| `gds` | `git diff --staged` | +| `gdw` | `git diff --word-diff` | +| `gdv` | `git diff -w "$@" \| view -` | +| `gdup` | `git diff @{upstream}` | +| `gdnolock` | `git diff $@ ":(exclude)package-lock.json" ":(exclude)\*.lock"` | +| `gdt` | `git diff-tree --no-commit-id --name-only -r` | +| `gf` | `git fetch` | +| `gfa` | `git fetch --all --prune` | +| `gfo` | `git fetch origin` | +| `gg` | `git gui citool` | +| `gga` | `git gui citool --amend` | +| `ghh` | `git help` | +| `glgg` | `git log --graph` | +| `glgga` | `git log --graph --decorate --all` | +| `glgm` | `git log --graph --max-count=10` | +| `glod` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset'` | +| `glods` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short` | +| `glol` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset'` | +| `glola` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --all` | +| `glols` | `git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --stat` | +| `glo` | `git log --oneline --decorate` | +| `glog` | `git log --oneline --decorate --graph` | +| `gloga` | `git log --oneline --decorate --graph --all` | +| `glp` | `git log --pretty=` | +| `glg` | `git log --stat` | +| `glgp` | `git log --stat --patch` | +| `gignored` | `git ls-files -v \| grep "^[[:lower:]]"` | +| `gfg` | `git ls-files \| grep` | +| `gm` | `git merge` | +| `gma` | `git merge --abort` | +| `gmc` | `git merge --continue` | +| `gms` | `git merge --squash` | +| `gmom` | `git merge origin/$(git_main_branch)` | +| `gmum` | `git merge upstream/$(git_main_branch)` | +| `gmtl` | `git mergetool --no-prompt` | +| `gmtlvim` | `git mergetool --no-prompt --tool=vimdiff` | +| `gl` | `git pull` | +| `gpr` | `git pull --rebase` | +| `gprv` | `git pull --rebase -v` | +| `gpra` | `git pull --rebase --autostash` | +| `gprav` | `git pull --rebase --autostash -v` | +| `gprom` | `git pull --rebase origin $(git_main_branch)` | +| `gpromi` | `git pull --rebase=interactive origin $(git_main_branch)` | +| `ggpull` | `git pull origin "$(git_current_branch)"` | +| `ggl` | `git pull origin $(current_branch)` | +| `gluc` | `git pull upstream $(git_current_branch)` | +| `glum` | `git pull upstream $(git_main_branch)` | +| `gp` | `git push` | +| `gpd` | `git push --dry-run` | +| `gpf!` | `git push --force` | +| `ggf` | `git push --force origin $(current_branch)` | +| `gpf` | On Git >= 2.30: `git push --force-with-lease --force-if-includes` | +| `gpf` | On Git < 2.30: `git push --force-with-lease` | +| `ggfl` | `git push --force-with-lease origin $(current_branch)` | +| `gpsup` | `git push --set-upstream origin $(git_current_branch)` | +| `gpsupf` | On Git >= 2.30: `git push --set-upstream origin $(git_current_branch) --force-with-lease --force-if-includes` | +| `gpsupf` | On Git < 2.30: `git push --set-upstream origin $(git_current_branch) --force-with-lease` | +| `gpv` | `git push --verbose` | +| `gpoat` | `git push origin --all && git push origin --tags` | +| `gpod` | `git push origin --delete` | +| `ggpush` | `git push origin "$(git_current_branch)"` | +| `ggp` | `git push origin $(current_branch)` | +| `gpu` | `git push upstream` | +| `grb` | `git rebase` | +| `grba` | `git rebase --abort` | +| `grbc` | `git rebase --continue` | +| `grbi` | `git rebase --interactive` | +| `grbo` | `git rebase --onto` | +| `grbs` | `git rebase --skip` | +| `grbd` | `git rebase $(git_develop_branch)` | +| `grbm` | `git rebase $(git_main_branch)` | +| `grbom` | `git rebase origin/$(git_main_branch)` | +| `grf` | `git reflog` | +| `gr` | `git remote` | +| `grv` | `git remote --verbose` | +| `gra` | `git remote add` | +| `grrm` | `git remote remove` | +| `grmv` | `git remote rename` | +| `grset` | `git remote set-url` | +| `grup` | `git remote update` | +| `grh` | `git reset` | +| `gru` | `git reset --` | +| `grhh` | `git reset --hard` | +| `grhk` | `git reset --keep` | +| `grhs` | `git reset --soft` | +| `gpristine` | `git reset --hard && git clean --force -dfx` | +| `gwipe` | `git reset --hard && git clean --force -df` | +| `groh` | `git reset origin/$(git_current_branch) --hard` | +| `grs` | `git restore` | +| `grss` | `git restore --source` | +| `grst` | `git restore --staged` | +| `gunwip` | `git rev-list --max-count=1 --format="%s" HEAD \| grep -q "--wip--" && git reset HEAD~1` | +| `grev` | `git revert` | +| `grm` | `git rm` | +| `grmc` | `git rm --cached` | +| `gcount` | `git shortlog --summary -n` | +| `gsh` | `git show` | +| `gsps` | `git show --pretty=short --show-signature` | +| `gstall` | `git stash --all` | +| `gstu` | `git stash --include-untracked` | +| `gstaa` | `git stash apply` | +| `gstc` | `git stash clear` | +| `gstd` | `git stash drop` | +| `gstl` | `git stash list` | +| `gstp` | `git stash pop` | +| `gsta` | On Git >= 2.13: `git stash push` | +| `gsta` | On Git < 2.13: `git stash save` | +| `gsts` | `git stash show --patch` | +| `gst` | `git status` | +| `gss` | `git status --short` | +| `gsb` | `git status --short -b` | +| `gsi` | `git submodule init` | +| `gsu` | `git submodule update` | +| `gsd` | `git svn dcommit` | +| `git-svn-dcommit-push` | `git svn dcommit && git push github $(git_main_branch):svntrunk` | +| `gsr` | `git svn rebase` | +| `gsw` | `git switch` | +| `gswc` | `git switch -c` | +| `gswd` | `git switch $(git_develop_branch)` | +| `gswm` | `git switch $(git_main_branch)` | +| `gta` | `git tag --annotate` | +| `gts` | `git tag -s` | +| `gtv` | `git tag \| sort -V` | +| `gignore` | `git update-index --assume-unchanged` | +| `gunignore` | `git update-index --no-assume-unchanged` | +| `gwch` | `git whatchanged -p --abbrev-commit --pretty=medium` | +| `gwt` | `git worktree` | +| `gwtls` | `git worktree list` | +| `gwtmv` | `git worktree move` | +| `gwtrm` | `git worktree remove` | +| `gk` | `gitk --all --branches &!` | +| `gke` | `gitk --all $(git log --walk-reflogs --pretty=%h) &!` | +| `gtl` | `gtl(){ git tag --sort=-v:refname -n --list ${1}\* }; noglob gtl` | ### Main branch preference -Following the recent push for removing racially-charged words from our technical vocabulary, the git plugin favors using -a branch name other than `master`. In this case, we favor the shorter, neutral and descriptive term `main`. This means -that any aliases and functions that previously used `master`, will use `main` if that branch exists. We do this via the -function `git_main_branch`. +Following the recent push for removing racially-charged words from our technical vocabulary, the git plugin +favors using a branch name other than `master`. In this case, we favor the shorter, neutral and descriptive +term `main`. This means that any aliases and functions that previously used `master`, will use `main` if that +branch exists. We do this via the function `git_main_branch`. ### Deprecated aliases -These are aliases that have been removed, renamed, or otherwise modified in a way that may, or may not, receive further support. +These are aliases that have been removed, renamed, or otherwise modified in a way that may, or may not, +receive further support. -| Alias | Command | Modification | -| :----- | :----------------------------------------------------- | :----------------------------------------------------- | -| gap | `git add --patch` | new alias `gapa` | -| gcl | `git config --list` | new alias `gcf` | -| gdc | `git diff --cached` | new alias `gdca` | -| gdt | `git difftool` | no replacement | -| ggpull | `git pull origin $(current_branch)` | new alias `ggl` (`ggpull` still exists for now though) | -| ggpur | `git pull --rebase origin $(current_branch)` | new alias `ggu` (`ggpur` still exists for now though) | -| ggpush | `git push origin $(current_branch)` | new alias `ggp` (`ggpush` still exists for now though) | -| gk | `gitk --all --branches` | now aliased to `gitk --all --branches` | -| glg | `git log --stat --max-count = 10` | now aliased to `git log --stat --color` | -| glgg | `git log --graph --max-count = 10` | now aliased to `git log --graph --color` | -| gwc | `git whatchanged -p --abbrev-commit --pretty = medium` | new alias `gwch` | +| Alias | Command | Modification | +| :------- | :-------------------------------------------------------- | :-------------------------------------------------------- | +| `gap` | `git add --patch` | New alias: `gapa`. | +| `gcl` | `git config --list` | New alias: `gcf`. | +| `gdc` | `git diff --cached` | New alias: `gdca`. | +| `gdt` | `git difftool` | No replacement. | +| `ggpull` | `git pull origin $(current_branch)` | New alias: `ggl`. (`ggpull` still exists for now though.) | +| `ggpur` | `git pull --rebase origin $(current_branch)` | New alias: `ggu`. (`ggpur` still exists for now though.) | +| `ggpush` | `git push origin $(current_branch)` | New alias: `ggp`. (`ggpush` still exists for now though.) | +| `gk` | `gitk --all --branches` | Now aliased to `gitk --all --branches`. | +| `glg` | `git log --stat --max-count=10` | Now aliased to `git log --stat --color`. | +| `glgg` | `git log --graph --max-count=10` | Now aliased to `git log --graph --color`. | +| `gwc` | `git whatchanged -p --abbrev-commit --pretty = medium` | New alias: `gwch`. | +| `gup` | `git pull --rebase` | now alias `gpr` | +| `gupv` | `git pull --rebase -v` | now alias `gprv` | +| `gupa` | `git pull --rebase --autostash` | now alias `gpra` | +| `gupav` | `git pull --rebase --autostash -v` | now alias `gprav` | +| `gupom` | `git pull --rebase origin $(git_main_branch)` | now alias `gprom` | +| `gupomi` | `git pull --rebase=interactive origin $(git_main_branch)` | now alias `gpromi` | ## Functions ### Current -| Command | Description | -| :--------------------- | :------------------------------------------------------------------------------------------------------- | -| `grename ` | Rename `old` branch to `new`, including in origin remote | -| current_branch | Return the name of the current branch | -| git_current_user_name | Returns the `user.name` config value | -| git_current_user_email | Returns the `user.email` config value | -| git_main_branch | Returns the name of the main branch: `main` if it exists, `master` otherwise | -| git_develop_branch | Returns the name of the develop branch: `dev`, `devel`, `development` if they exist, `develop` otherwise | +| Command | Description | +| :----------------------- | :-------------------------------------------------------------------------------------------------------------- | +| `current_branch` | Returns the name of the current branch. | +| `git_current_user_email` | Returns the `user.email` config value. (Lives in `lib/git.zsh`.) | +| `git_current_user_name` | Returns the `user.name` config value. (Lives in `lib/git.zsh`.) | +| `git_develop_branch` | Returns the name of the β€œdevelopment” branch: `dev`, `devel`, `development` if they exist, `develop` otherwise. | +| `git_main_branch` | Returns the name of the main branch: `main` if it exists, `master` otherwise. | +| `grename ` | Renames branch `` to ``, including on the origin remote. | +| `gbda` | Deletes all merged branches | +| `gbds` | Deletes all squash-merged branches (**Note: performance degrades with number of branches**) | ### Work in Progress (WIP) -These features allow to pause a branch development and switch to another one (_"Work in Progress"_, or wip). When you want to go back to work, just unwip it. +These features allow you to pause developing one branch and switch to another one (_"Work in Progress"_, or +β€œwip”). When you want to go back to work, just β€œunwip” it. -| Command | Description | -| :--------------- | :---------------------------------------------- | -| work_in_progress | Echoes a warning if the current branch is a wip | -| gwip | Commit wip branch | -| gunwip | Uncommit wip branch | +| Command | Description | +| :----------------- | :---------------------------------------------- | +| `gwip` | Commit wip branch | +| `gunwip` | Uncommit wip branch | +| `gunwipall` | Uncommit all recent `--wip--` commits | +| `work_in_progress` | Echoes a warning if the current branch is a wip | + +Note that `gwip` and `gunwip` are aliases, but are also documented here to group all related WIP features. ### Deprecated functions -| Command | Description | Reason | -| :----------------- | :-------------------------------------- | :-------------------------------------------------------------- | -| current_repository | Return the names of the current remotes | Didn't work properly. Use `git remote -v` instead (`grv` alias) | +| Command | Description | Reason | +| :------------------- | :-------------------------------------- | :--------------------------------------------------------------- | +| `current_repository` | Return the names of the current remotes | Didn't work properly. Use `git remote -v` instead (`grv` alias). | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index ed17436e8..146f4a512 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -3,7 +3,9 @@ autoload -Uz is-at-least git_version="${${(As: :)$(git version 2>/dev/null)}[3]}" # -# Functions +# Functions Current +# (sorted alphabetically by function name) +# (order should follow README) # # The name of the current branch @@ -14,328 +16,37 @@ function current_branch() { git_current_branch } -# Pretty log messages -function _git_log_prettily(){ - if ! [ -z $1 ]; then - git log --pretty=$1 - fi -} -compdef _git _git_log_prettily=git-log +# Check for develop and similarly named branches +function git_develop_branch() { + command git rev-parse --git-dir &>/dev/null || return + local branch + for branch in dev devel develop development; do + if command git show-ref -q --verify refs/heads/$branch; then + echo $branch + return 0 + fi + done -# Warn if the current branch is a WIP -function work_in_progress() { - command git -c log.showSignature=false log -n 1 2>/dev/null | grep -q -- "--wip--" && echo "WIP!!" + echo develop + return 1 } # Check if main exists and use instead of master function git_main_branch() { command git rev-parse --git-dir &>/dev/null || return local ref - for ref in refs/{heads,remotes/{origin,upstream}}/{main,trunk,mainline,default}; do + for ref in refs/{heads,remotes/{origin,upstream}}/{main,trunk,mainline,default,master}; do if command git show-ref -q --verify $ref; then echo ${ref:t} - return + return 0 fi done + + # If no main branch was found, fall back to master but return error echo master + return 1 } -# Check for develop and similarly named branches -function git_develop_branch() { - command git rev-parse --git-dir &>/dev/null || return - local branch - for branch in dev devel development; do - if command git show-ref -q --verify refs/heads/$branch; then - echo $branch - return - fi - done - echo develop -} - -# -# Aliases -# (sorted alphabetically) -# - -alias g='git' - -alias ga='git add' -alias gaa='git add --all' -alias gapa='git add --patch' -alias gau='git add --update' -alias gav='git add --verbose' -alias gap='git apply' -alias gapt='git apply --3way' - -alias gb='git branch' -alias gba='git branch --all' -alias gbd='git branch --delete' -alias gbda='git branch --no-color --merged | command grep -vE "^([+*]|\s*($(git_main_branch)|$(git_develop_branch))\s*$)" | command xargs git branch --delete 2>/dev/null' -alias gbD='git branch --delete --force' -alias gbg='git branch -vv | grep ": gone\]"' -alias gbgd='local res=$(gbg | awk '"'"'{print $1}'"'"') && [[ $res ]] && echo $res | xargs git branch -d' -alias gbgD='local res=$(gbg | awk '"'"'{print $1}'"'"') && [[ $res ]] && echo $res | xargs git branch -D' -alias gbl='git blame -b -w' -alias gbnm='git branch --no-merged' -alias gbr='git branch --remote' -alias gbs='git bisect' -alias gbsb='git bisect bad' -alias gbsg='git bisect good' -alias gbsr='git bisect reset' -alias gbss='git bisect start' - -alias gc='git commit --verbose' -alias gc!='git commit --verbose --amend' -alias gcn!='git commit --verbose --no-edit --amend' -alias gca='git commit --verbose --all' -alias gca!='git commit --verbose --all --amend' -alias gcan!='git commit --verbose --all --no-edit --amend' -alias gcans!='git commit --verbose --all --signoff --no-edit --amend' -alias gcam='git commit --all --message' -alias gcsm='git commit --signoff --message' -alias gcas='git commit --all --signoff' -alias gcasm='git commit --all --signoff --message' -alias gcb='git checkout -b' -alias gcf='git config --list' - -function gccd() { - command git clone --recurse-submodules "$@" - [[ -d "$_" ]] && cd "$_" || cd "${${_:t}%.git}" -} -compdef _git gccd=git-clone - -alias gcl='git clone --recurse-submodules' -alias gclean='git clean --interactive -d' -alias gpristine='git reset --hard && git clean --force -dfx' -alias gcm='git checkout $(git_main_branch)' -alias gcd='git checkout $(git_develop_branch)' -alias gcmsg='git commit --message' -alias gco='git checkout' -alias gcor='git checkout --recurse-submodules' -alias gcount='git shortlog --summary --numbered' -alias gcp='git cherry-pick' -alias gcpa='git cherry-pick --abort' -alias gcpc='git cherry-pick --continue' -alias gcs='git commit --gpg-sign' -alias gcss='git commit --gpg-sign --signoff' -alias gcssm='git commit --gpg-sign --signoff --message' - -alias gd='git diff' -alias gdca='git diff --cached' -alias gdcw='git diff --cached --word-diff' -alias gdct='git describe --tags $(git rev-list --tags --max-count=1)' -alias gds='git diff --staged' -alias gdt='git diff-tree --no-commit-id --name-only -r' -alias gdup='git diff @{upstream}' -alias gdw='git diff --word-diff' - -function gdnolock() { - git diff "$@" ":(exclude)package-lock.json" ":(exclude)*.lock" -} -compdef _git gdnolock=git-diff - -function gdv() { git diff -w "$@" | view - } -compdef _git gdv=git-diff - -alias gf='git fetch' -# --jobs= was added in git 2.8 -is-at-least 2.8 "$git_version" \ - && alias gfa='git fetch --all --prune --jobs=10' \ - || alias gfa='git fetch --all --prune' -alias gfo='git fetch origin' - -alias gfg='git ls-files | grep' - -alias gg='git gui citool' -alias gga='git gui citool --amend' - -function ggf() { - [[ "$#" != 1 ]] && local b="$(git_current_branch)" - git push --force origin "${b:=$1}" -} -compdef _git ggf=git-checkout -function ggfl() { - [[ "$#" != 1 ]] && local b="$(git_current_branch)" - git push --force-with-lease origin "${b:=$1}" -} -compdef _git ggfl=git-checkout - -function ggl() { - if [[ "$#" != 0 ]] && [[ "$#" != 1 ]]; then - git pull origin "${*}" - else - [[ "$#" == 0 ]] && local b="$(git_current_branch)" - git pull origin "${b:=$1}" - fi -} -compdef _git ggl=git-checkout - -function ggp() { - if [[ "$#" != 0 ]] && [[ "$#" != 1 ]]; then - git push origin "${*}" - else - [[ "$#" == 0 ]] && local b="$(git_current_branch)" - git push origin "${b:=$1}" - fi -} -compdef _git ggp=git-checkout - -function ggpnp() { - if [[ "$#" == 0 ]]; then - ggl && ggp - else - ggl "${*}" && ggp "${*}" - fi -} -compdef _git ggpnp=git-checkout - -function ggu() { - [[ "$#" != 1 ]] && local b="$(git_current_branch)" - git pull --rebase origin "${b:=$1}" -} -compdef _git ggu=git-checkout - -alias ggpur='ggu' -alias ggpull='git pull origin "$(git_current_branch)"' -alias ggpush='git push origin "$(git_current_branch)"' - -alias ggsup='git branch --set-upstream-to=origin/$(git_current_branch)' -alias gpsup='git push --set-upstream origin $(git_current_branch)' -is-at-least 2.30 "$git_version" \ - && alias gpsupf='git push --set-upstream origin $(git_current_branch) --force-with-lease --force-if-includes' \ - || alias gpsupf='git push --set-upstream origin $(git_current_branch) --force-with-lease' - -alias ghh='git help' - -alias gignore='git update-index --assume-unchanged' -alias gignored='git ls-files -v | grep "^[[:lower:]]"' -alias git-svn-dcommit-push='git svn dcommit && git push github $(git_main_branch):svntrunk' - -alias gk='\gitk --all --branches &!' -alias gke='\gitk --all $(git log --walk-reflogs --pretty=%h) &!' - -alias gl='git pull' -alias glg='git log --stat' -alias glgp='git log --stat --patch' -alias glgg='git log --graph' -alias glgga='git log --graph --decorate --all' -alias glgm='git log --graph --max-count=10' -alias glo='git log --oneline --decorate' -alias glol="git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset'" -alias glols="git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --stat" -alias glod="git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset'" -alias glods="git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short" -alias glola="git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset' --all" -alias glog='git log --oneline --decorate --graph' -alias gloga='git log --oneline --decorate --graph --all' -alias glp="_git_log_prettily" - -alias gm='git merge' -alias gmom='git merge origin/$(git_main_branch)' -alias gmtl='git mergetool --no-prompt' -alias gmtlvim='git mergetool --no-prompt --tool=vimdiff' -alias gmum='git merge upstream/$(git_main_branch)' -alias gma='git merge --abort' - -alias gp='git push' -alias gpd='git push --dry-run' -is-at-least 2.30 "$git_version" \ - && alias gpf='git push --force-with-lease --force-if-includes' \ - || alias gpf='git push --force-with-lease' -alias gpf!='git push --force' -alias gpoat='git push origin --all && git push origin --tags' -alias gpod='git push origin --delete' -alias gpr='git pull --rebase' -alias gpu='git push upstream' -alias gpv='git push --verbose' - -alias gr='git remote' -alias gra='git remote add' -alias grb='git rebase' -alias grba='git rebase --abort' -alias grbc='git rebase --continue' -alias grbd='git rebase $(git_develop_branch)' -alias grbi='git rebase --interactive' -alias grbm='git rebase $(git_main_branch)' -alias grbom='git rebase origin/$(git_main_branch)' -alias grbo='git rebase --onto' -alias grbs='git rebase --skip' -alias grev='git revert' -alias grh='git reset' -alias grhh='git reset --hard' -alias groh='git reset origin/$(git_current_branch) --hard' -alias grm='git rm' -alias grmc='git rm --cached' -alias grmv='git remote rename' -alias grrm='git remote remove' -alias grs='git restore' -alias grset='git remote set-url' -alias grss='git restore --source' -alias grst='git restore --staged' -alias grt='cd "$(git rev-parse --show-toplevel || echo .)"' -alias gru='git reset --' -alias grup='git remote update' -alias grv='git remote --verbose' - -alias gsb='git status --short --branch' -alias gsd='git svn dcommit' -alias gsh='git show' -alias gsi='git submodule init' -alias gsps='git show --pretty=short --show-signature' -alias gsr='git svn rebase' -alias gss='git status --short' -alias gst='git status' - -# use the default stash push on git 2.13 and newer -is-at-least 2.13 "$git_version" \ - && alias gsta='git stash push' \ - || alias gsta='git stash save' - -alias gstaa='git stash apply' -alias gstc='git stash clear' -alias gstd='git stash drop' -alias gstl='git stash list' -alias gstp='git stash pop' -alias gsts='git stash show --text' -alias gstu='gsta --include-untracked' -alias gstall='git stash --all' -alias gsu='git submodule update' -alias gsw='git switch' -alias gswc='git switch --create' -alias gswm='git switch $(git_main_branch)' -alias gswd='git switch $(git_develop_branch)' - -alias gts='git tag --sign' -alias gtv='git tag | sort -V' -alias gtl='gtl(){ git tag --sort=-v:refname -n --list "${1}*" }; noglob gtl' - -alias gunignore='git update-index --no-assume-unchanged' -alias gunwip='git log --max-count=1 | grep -q -c "\--wip--" && git reset HEAD~1' -alias gup='git pull --rebase' -alias gupv='git pull --rebase --verbose' -alias gupa='git pull --rebase --autostash' -alias gupav='git pull --rebase --autostash --verbose' -alias gupom='git pull --rebase origin $(git_main_branch)' -alias gupomi='git pull --rebase=interactive origin $(git_main_branch)' -alias glum='git pull upstream $(git_main_branch)' -alias gluc='git pull upstream $(git_current_branch)' - -alias gwch='git whatchanged -p --abbrev-commit --pretty=medium' -alias gwip='git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign --message "--wip-- [skip ci]"' - -alias gwt='git worktree' -alias gwta='git worktree add' -alias gwtls='git worktree list' -alias gwtmv='git worktree move' -alias gwtrm='git worktree remove' - -alias gam='git am' -alias gamc='git am --continue' -alias gams='git am --skip' -alias gama='git am --abort' -alias gamscp='git am --show-current-patch' - function grename() { if [[ -z "$1" || -z "$2" ]]; then echo "Usage: $0 old_branch new_branch" @@ -350,4 +61,363 @@ function grename() { fi } +# +# Functions Work in Progress (WIP) +# (sorted alphabetically by function name) +# (order should follow README) +# + +# Similar to `gunwip` but recursive "Unwips" all recent `--wip--` commits not just the last one +function gunwipall() { + local _commit=$(git log --grep='--wip--' --invert-grep --max-count=1 --format=format:%H) + + # Check if a commit without "--wip--" was found and it's not the same as HEAD + if [[ "$_commit" != "$(git rev-parse HEAD)" ]]; then + git reset $_commit || return 1 + fi +} + +# Warn if the current branch is a WIP +function work_in_progress() { + command git -c log.showSignature=false log -n 1 2>/dev/null | grep -q -- "--wip--" && echo "WIP!!" +} + +# +# Aliases +# (sorted alphabetically by command) +# (order should follow README) +# (in some cases force the alisas order to match README, like for example gke and gk) +# + +alias grt='cd "$(git rev-parse --show-toplevel || echo .)"' + +function ggpnp() { + if [[ "$#" == 0 ]]; then + ggl && ggp + else + ggl "${*}" && ggp "${*}" + fi +} +compdef _git ggpnp=git-checkout + +alias ggpur='ggu' +alias g='git' +alias ga='git add' +alias gaa='git add --all' +alias gapa='git add --patch' +alias gau='git add --update' +alias gav='git add --verbose' +alias gwip='git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify --no-gpg-sign --message "--wip-- [skip ci]"' +alias gam='git am' +alias gama='git am --abort' +alias gamc='git am --continue' +alias gamscp='git am --show-current-patch' +alias gams='git am --skip' +alias gap='git apply' +alias gapt='git apply --3way' +alias gbs='git bisect' +alias gbsb='git bisect bad' +alias gbsg='git bisect good' +alias gbsn='git bisect new' +alias gbso='git bisect old' +alias gbsr='git bisect reset' +alias gbss='git bisect start' +alias gbl='git blame -w' +alias gb='git branch' +alias gba='git branch --all' +alias gbd='git branch --delete' +alias gbD='git branch --delete --force' + +function gbda() { + git branch --no-color --merged | command grep -vE "^([+*]|\s*($(git_main_branch)|$(git_develop_branch))\s*$)" | command xargs git branch --delete 2>/dev/null +} + +# Copied and modified from James Roeder (jmaroeder) under MIT License +# https://github.com/jmaroeder/plugin-git/blob/216723ef4f9e8dde399661c39c80bdf73f4076c4/functions/gbda.fish +function gbds() { + local default_branch=$(git_main_branch) + (( ! $? )) || default_branch=$(git_develop_branch) + + git for-each-ref refs/heads/ "--format=%(refname:short)" | \ + while read branch; do + local merge_base=$(git merge-base $default_branch $branch) + if [[ $(git cherry $default_branch $(git commit-tree $(git rev-parse $branch\^{tree}) -p $merge_base -m _)) = -* ]]; then + git branch -D $branch + fi + done +} + +alias gbgd='LANG=C git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -d' +alias gbgD='LANG=C git branch --no-color -vv | grep ": gone\]" | awk '"'"'{print $1}'"'"' | xargs git branch -D' +alias gbm='git branch --move' +alias gbnm='git branch --no-merged' +alias gbr='git branch --remote' +alias ggsup='git branch --set-upstream-to=origin/$(git_current_branch)' +alias gbg='LANG=C git branch -vv | grep ": gone\]"' +alias gco='git checkout' +alias gcor='git checkout --recurse-submodules' +alias gcb='git checkout -b' +alias gcB='git checkout -B' +alias gcd='git checkout $(git_develop_branch)' +alias gcm='git checkout $(git_main_branch)' +alias gcp='git cherry-pick' +alias gcpa='git cherry-pick --abort' +alias gcpc='git cherry-pick --continue' +alias gclean='git clean --interactive -d' +alias gcl='git clone --recurse-submodules' + +function gccd() { + setopt localoptions extendedglob + + # get repo URI from args based on valid formats: https://git-scm.com/docs/git-clone#URLS + local repo="${${@[(r)(ssh://*|git://*|ftp(s)#://*|http(s)#://*|*@*)(.git/#)#]}:-$_}" + + # clone repository and exit if it fails + command git clone --recurse-submodules "$@" || return + + # if last arg passed was a directory, that's where the repo was cloned + # otherwise parse the repo URI and use the last part as the directory + [[ -d "$_" ]] && cd "$_" || cd "${${repo:t}%.git/#}" +} +compdef _git gccd=git-clone + +alias gcam='git commit --all --message' +alias gcas='git commit --all --signoff' +alias gcasm='git commit --all --signoff --message' +alias gcs='git commit --gpg-sign' +alias gcss='git commit --gpg-sign --signoff' +alias gcssm='git commit --gpg-sign --signoff --message' +alias gcmsg='git commit --message' +alias gcsm='git commit --signoff --message' +alias gc='git commit --verbose' +alias gca='git commit --verbose --all' +alias gca!='git commit --verbose --all --amend' +alias gcan!='git commit --verbose --all --no-edit --amend' +alias gcans!='git commit --verbose --all --signoff --no-edit --amend' +alias gcann!='git commit --verbose --all --date=now --no-edit --amend' +alias gc!='git commit --verbose --amend' +alias gcn!='git commit --verbose --no-edit --amend' +alias gcf='git config --list' +alias gdct='git describe --tags $(git rev-list --tags --max-count=1)' +alias gd='git diff' +alias gdca='git diff --cached' +alias gdcw='git diff --cached --word-diff' +alias gds='git diff --staged' +alias gdw='git diff --word-diff' + +function gdv() { git diff -w "$@" | view - } +compdef _git gdv=git-diff + +alias gdup='git diff @{upstream}' + +function gdnolock() { + git diff "$@" ":(exclude)package-lock.json" ":(exclude)*.lock" +} +compdef _git gdnolock=git-diff + +alias gdt='git diff-tree --no-commit-id --name-only -r' +alias gf='git fetch' +# --jobs= was added in git 2.8 +is-at-least 2.8 "$git_version" \ + && alias gfa='git fetch --all --prune --jobs=10' \ + || alias gfa='git fetch --all --prune' +alias gfo='git fetch origin' +alias gg='git gui citool' +alias gga='git gui citool --amend' +alias ghh='git help' +alias glgg='git log --graph' +alias glgga='git log --graph --decorate --all' +alias glgm='git log --graph --max-count=10' +alias glods='git log --graph --pretty="%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset" --date=short' +alias glod='git log --graph --pretty="%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset"' +alias glola='git log --graph --pretty="%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset" --all' +alias glols='git log --graph --pretty="%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset" --stat' +alias glol='git log --graph --pretty="%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset"' +alias glo='git log --oneline --decorate' +alias glog='git log --oneline --decorate --graph' +alias gloga='git log --oneline --decorate --graph --all' + +# Pretty log messages +function _git_log_prettily(){ + if ! [ -z $1 ]; then + git log --pretty=$1 + fi +} +compdef _git _git_log_prettily=git-log + +alias glp='_git_log_prettily' +alias glg='git log --stat' +alias glgp='git log --stat --patch' +alias gignored='git ls-files -v | grep "^[[:lower:]]"' +alias gfg='git ls-files | grep' +alias gm='git merge' +alias gma='git merge --abort' +alias gmc='git merge --continue' +alias gms="git merge --squash" +alias gmom='git merge origin/$(git_main_branch)' +alias gmum='git merge upstream/$(git_main_branch)' +alias gmtl='git mergetool --no-prompt' +alias gmtlvim='git mergetool --no-prompt --tool=vimdiff' + +alias gl='git pull' +alias gpr='git pull --rebase' +alias gprv='git pull --rebase -v' +alias gpra='git pull --rebase --autostash' +alias gprav='git pull --rebase --autostash -v' + +function ggu() { + [[ "$#" != 1 ]] && local b="$(git_current_branch)" + git pull --rebase origin "${b:=$1}" +} +compdef _git ggu=git-checkout + +alias gprom='git pull --rebase origin $(git_main_branch)' +alias gpromi='git pull --rebase=interactive origin $(git_main_branch)' +alias ggpull='git pull origin "$(git_current_branch)"' + +function ggl() { + if [[ "$#" != 0 ]] && [[ "$#" != 1 ]]; then + git pull origin "${*}" + else + [[ "$#" == 0 ]] && local b="$(git_current_branch)" + git pull origin "${b:=$1}" + fi +} +compdef _git ggl=git-checkout + +alias gluc='git pull upstream $(git_current_branch)' +alias glum='git pull upstream $(git_main_branch)' +alias gp='git push' +alias gpd='git push --dry-run' + +function ggf() { + [[ "$#" != 1 ]] && local b="$(git_current_branch)" + git push --force origin "${b:=$1}" +} +compdef _git ggf=git-checkout + +alias gpf!='git push --force' +is-at-least 2.30 "$git_version" \ + && alias gpf='git push --force-with-lease --force-if-includes' \ + || alias gpf='git push --force-with-lease' + +function ggfl() { + [[ "$#" != 1 ]] && local b="$(git_current_branch)" + git push --force-with-lease origin "${b:=$1}" +} +compdef _git ggfl=git-checkout + +alias gpsup='git push --set-upstream origin $(git_current_branch)' +is-at-least 2.30 "$git_version" \ + && alias gpsupf='git push --set-upstream origin $(git_current_branch) --force-with-lease --force-if-includes' \ + || alias gpsupf='git push --set-upstream origin $(git_current_branch) --force-with-lease' +alias gpv='git push --verbose' +alias gpoat='git push origin --all && git push origin --tags' +alias gpod='git push origin --delete' +alias ggpush='git push origin "$(git_current_branch)"' + +function ggp() { + if [[ "$#" != 0 ]] && [[ "$#" != 1 ]]; then + git push origin "${*}" + else + [[ "$#" == 0 ]] && local b="$(git_current_branch)" + git push origin "${b:=$1}" + fi +} +compdef _git ggp=git-checkout + +alias gpu='git push upstream' +alias grb='git rebase' +alias grba='git rebase --abort' +alias grbc='git rebase --continue' +alias grbi='git rebase --interactive' +alias grbo='git rebase --onto' +alias grbs='git rebase --skip' +alias grbd='git rebase $(git_develop_branch)' +alias grbm='git rebase $(git_main_branch)' +alias grbom='git rebase origin/$(git_main_branch)' +alias grf='git reflog' +alias gr='git remote' +alias grv='git remote --verbose' +alias gra='git remote add' +alias grrm='git remote remove' +alias grmv='git remote rename' +alias grset='git remote set-url' +alias grup='git remote update' +alias grh='git reset' +alias gru='git reset --' +alias grhh='git reset --hard' +alias grhk='git reset --keep' +alias grhs='git reset --soft' +alias gpristine='git reset --hard && git clean --force -dfx' +alias gwipe='git reset --hard && git clean --force -df' +alias groh='git reset origin/$(git_current_branch) --hard' +alias grs='git restore' +alias grss='git restore --source' +alias grst='git restore --staged' +alias gunwip='git rev-list --max-count=1 --format="%s" HEAD | grep -q "\--wip--" && git reset HEAD~1' +alias grev='git revert' +alias greva='git revert --abort' +alias grevc='git revert --continue' +alias grm='git rm' +alias grmc='git rm --cached' +alias gcount='git shortlog --summary --numbered' +alias gsh='git show' +alias gsps='git show --pretty=short --show-signature' +alias gstall='git stash --all' +alias gstaa='git stash apply' +alias gstc='git stash clear' +alias gstd='git stash drop' +alias gstl='git stash list' +alias gstp='git stash pop' +# use the default stash push on git 2.13 and newer +is-at-least 2.13 "$git_version" \ + && alias gsta='git stash push' \ + || alias gsta='git stash save' +alias gsts='git stash show --patch' +alias gst='git status' +alias gss='git status --short' +alias gsb='git status --short --branch' +alias gsi='git submodule init' +alias gsu='git submodule update' +alias gsd='git svn dcommit' +alias git-svn-dcommit-push='git svn dcommit && git push github $(git_main_branch):svntrunk' +alias gsr='git svn rebase' +alias gsw='git switch' +alias gswc='git switch --create' +alias gswd='git switch $(git_develop_branch)' +alias gswm='git switch $(git_main_branch)' +alias gta='git tag --annotate' +alias gts='git tag --sign' +alias gtv='git tag | sort -V' +alias gignore='git update-index --assume-unchanged' +alias gunignore='git update-index --no-assume-unchanged' +alias gwch='git whatchanged -p --abbrev-commit --pretty=medium' +alias gwt='git worktree' +alias gwta='git worktree add' +alias gwtls='git worktree list' +alias gwtmv='git worktree move' +alias gwtrm='git worktree remove' +alias gstu='gsta --include-untracked' +alias gtl='gtl(){ git tag --sort=-v:refname -n --list "${1}*" }; noglob gtl' +alias gk='\gitk --all --branches &!' +alias gke='\gitk --all $(git log --walk-reflogs --pretty=%h) &!' + unset git_version + +# Logic for adding warnings on deprecated aliases +local old_alias new_alias +for old_alias new_alias ( + # TODO(2023-10-19): remove deprecated `git pull --rebase` aliases + gup gpr + gupv gprv + gupa gpra + gupav gprav + gupom gprom + gupomi gpromi +); do + aliases[$old_alias]=" + print -Pu2 \"%F{yellow}[oh-my-zsh] '%F{red}${old_alias}%F{yellow}' is a deprecated alias, using '%F{green}${new_alias}%F{yellow}' instead.%f\" + $new_alias" +done +unset old_alias new_alias diff --git a/plugins/gitfast/README.md b/plugins/gitfast/README.md index fed4b120a..60b84a23c 100644 --- a/plugins/gitfast/README.md +++ b/plugins/gitfast/README.md @@ -7,9 +7,3 @@ To use it, add `gitfast` to the plugins array in your zshrc file: ```zsh plugins=(... gitfast) ``` - -## Aliases - -An earlier version of the plugin also loaded the git plugin. If you want to keep those -aliases enable the [git plugin](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/git) -as well. diff --git a/plugins/gitfast/git-completion.bash b/plugins/gitfast/git-completion.bash index dd06b5048..9a2045f26 100644 --- a/plugins/gitfast/git-completion.bash +++ b/plugins/gitfast/git-completion.bash @@ -58,6 +58,12 @@ # # When set to "1" suggest all options, including options which are # typically hidden (e.g. '--allow-empty' for 'git commit'). +# +# GIT_COMPLETION_IGNORE_CASE +# +# When set, uses for-each-ref '--ignore-case' to find refs that match +# case insensitively, even on systems with case sensitive file systems +# (e.g., completing tag name "FOO" on "git checkout f"). # The following functions are meant to modify COMPREPLY, which should not be # modified directly. The purpose is to localize the modifications so it's @@ -320,116 +326,6 @@ else unset $(compgen -v __gitcomp_builtin_) fi -__gitcomp_builtin_add_default=" --dry-run --verbose --interactive --patch --edit --force --update --renormalize --intent-to-add --all --ignore-removal --refresh --ignore-errors --ignore-missing --sparse --chmod= --pathspec-from-file= --pathspec-file-nul --no-dry-run -- --no-verbose --no-interactive --no-patch --no-edit --no-force --no-update --no-renormalize --no-intent-to-add --no-all --no-ignore-removal --no-refresh --no-ignore-errors --no-ignore-missing --no-sparse --no-chmod --no-pathspec-from-file --no-pathspec-file-nul" -__gitcomp_builtin_am_default=" --interactive --3way --quiet --signoff --utf8 --keep --keep-non-patch --message-id --keep-cr --no-keep-cr --scissors --quoted-cr= --whitespace= --ignore-space-change --ignore-whitespace --directory= --exclude= --include= --patch-format= --reject --resolvemsg= --continue --resolved --skip --abort --quit --show-current-patch --allow-empty --committer-date-is-author-date --ignore-date --rerere-autoupdate --gpg-sign --empty= -- --no-interactive --no-3way --no-quiet --no-signoff --no-utf8 --no-keep --no-keep-non-patch --no-message-id --no-scissors --no-whitespace --no-ignore-space-change --no-ignore-whitespace --no-directory --no-exclude --no-include --no-patch-format --no-reject --no-resolvemsg --no-committer-date-is-author-date --no-ignore-date --no-rerere-autoupdate --no-gpg-sign" -__gitcomp_builtin_apply_default=" --exclude= --include= --no-add --stat --numstat --summary --check --index --intent-to-add --cached --apply --3way --build-fake-ancestor= --whitespace= --ignore-space-change --ignore-whitespace --reverse --unidiff-zero --reject --allow-overlap --verbose --quiet --inaccurate-eof --recount --directory= --allow-empty --add -- --no-stat --no-numstat --no-summary --no-check --no-index --no-intent-to-add --no-cached --no-apply --no-3way --no-build-fake-ancestor --no-whitespace --no-ignore-space-change --no-ignore-whitespace --no-reverse --no-unidiff-zero --no-reject --no-allow-overlap --no-verbose --no-quiet --no-inaccurate-eof --no-recount --no-directory --no-allow-empty" -__gitcomp_builtin_archive_default=" --output= --remote= --exec= --no-output -- --no-remote --no-exec" -__gitcomp_builtin_bisect__helper_default=" --bisect-reset --bisect-next-check --bisect-terms --bisect-start --bisect-next --bisect-state --bisect-log --bisect-replay --bisect-skip --bisect-visualize --bisect-run --no-log --log" -__gitcomp_builtin_blame_default=" --incremental --root --show-stats --progress --score-debug --show-name --show-number --porcelain --line-porcelain --show-email --ignore-rev= --ignore-revs-file= --color-lines --color-by-age --minimal --contents= --abbrev --no-incremental -- --no-root --no-show-stats --no-progress --no-score-debug --no-show-name --no-show-number --no-porcelain --no-line-porcelain --no-show-email --no-ignore-rev --no-ignore-revs-file --no-color-lines --no-color-by-age --no-minimal --no-contents --no-abbrev" -__gitcomp_builtin_branch_default=" --verbose --quiet --track --set-upstream-to= --unset-upstream --color --remotes --contains --no-contains --abbrev --all --delete --move --copy --list --show-current --create-reflog --edit-description --merged --no-merged --column --sort= --points-at= --ignore-case --recurse-submodules --format= -- --no-verbose --no-quiet --no-track --no-set-upstream-to --no-unset-upstream --no-color --no-remotes --no-abbrev --no-all --no-delete --no-move --no-copy --no-list --no-show-current --no-create-reflog --no-edit-description --no-column --no-sort --no-points-at --no-ignore-case --no-recurse-submodules --no-format" -__gitcomp_builtin_bugreport_default=" --output-directory= --suffix= --no-output-directory -- --no-suffix" -__gitcomp_builtin_cat_file_default=" --allow-unknown-type --batch --batch-check --batch-command --batch-all-objects --buffer --follow-symlinks --unordered --textconv --filters --path= --no-allow-unknown-type -- --no-buffer --no-follow-symlinks --no-unordered --no-path" -__gitcomp_builtin_check_attr_default=" --all --cached --stdin --no-all -- --no-cached --no-stdin" -__gitcomp_builtin_check_ignore_default=" --quiet --verbose --stdin --non-matching --no-index --index -- --no-quiet --no-verbose --no-stdin --no-non-matching" -__gitcomp_builtin_check_mailmap_default=" --stdin --no-stdin" -__gitcomp_builtin_checkout_default=" --guess --overlay --quiet --recurse-submodules --progress --merge --conflict= --detach --track --orphan= --ignore-other-worktrees --ours --theirs --patch --ignore-skip-worktree-bits --pathspec-from-file= --pathspec-file-nul --no-guess -- --no-overlay --no-quiet --no-recurse-submodules --no-progress --no-merge --no-conflict --no-detach --no-track --no-orphan --no-ignore-other-worktrees --no-patch --no-ignore-skip-worktree-bits --no-pathspec-from-file --no-pathspec-file-nul" -__gitcomp_builtin_checkout__worker_default=" --prefix= --no-prefix" -__gitcomp_builtin_checkout_index_default=" --all --ignore-skip-worktree-bits --force --quiet --no-create --index --stdin --temp --prefix= --stage= --create -- --no-all --no-ignore-skip-worktree-bits --no-force --no-quiet --no-index --no-stdin --no-temp --no-prefix" -__gitcomp_builtin_cherry_default=" --abbrev --verbose --no-abbrev -- --no-verbose" -__gitcomp_builtin_cherry_pick_default=" --quit --continue --abort --skip --cleanup= --no-commit --edit --signoff --mainline= --rerere-autoupdate --strategy= --strategy-option= --gpg-sign --ff --allow-empty --allow-empty-message --keep-redundant-commits --commit -- --no-cleanup --no-edit --no-signoff --no-mainline --no-rerere-autoupdate --no-strategy --no-strategy-option --no-gpg-sign --no-ff --no-allow-empty --no-allow-empty-message --no-keep-redundant-commits" -__gitcomp_builtin_clean_default=" --quiet --dry-run --interactive --exclude= --no-quiet -- --no-dry-run --no-interactive" -__gitcomp_builtin_clone_default=" --verbose --quiet --progress --reject-shallow --no-checkout --bare --mirror --local --no-hardlinks --shared --recurse-submodules --jobs= --template= --reference= --reference-if-able= --dissociate --origin= --branch= --upload-pack= --depth= --shallow-since= --shallow-exclude= --single-branch --no-tags --shallow-submodules --separate-git-dir= --config= --server-option= --ipv4 --ipv6 --filter= --also-filter-submodules --remote-submodules --sparse --checkout --hardlinks --tags -- --no-verbose --no-quiet --no-progress --no-reject-shallow --no-bare --no-mirror --no-local --no-shared --no-recurse-submodules --no-recursive --no-jobs --no-template --no-reference --no-reference-if-able --no-dissociate --no-origin --no-branch --no-upload-pack --no-depth --no-shallow-since --no-shallow-exclude --no-single-branch --no-shallow-submodules --no-separate-git-dir --no-config --no-server-option --no-ipv4 --no-ipv6 --no-filter --no-also-filter-submodules --no-remote-submodules --no-sparse" -__gitcomp_builtin_column_default=" --command= --mode --raw-mode= --width= --indent= --nl= --padding= --no-command -- --no-mode --no-raw-mode --no-width --no-indent --no-nl --no-padding" -__gitcomp_builtin_commit_default=" --quiet --verbose --file= --author= --date= --message= --reedit-message= --reuse-message= --fixup= --squash= --reset-author --trailer= --signoff --template= --edit --cleanup= --status --gpg-sign --all --include --interactive --patch --only --no-verify --dry-run --short --branch --ahead-behind --porcelain --long --null --amend --no-post-rewrite --untracked-files --pathspec-from-file= --pathspec-file-nul --verify --post-rewrite -- --no-quiet --no-verbose --no-file --no-author --no-date --no-message --no-reedit-message --no-reuse-message --no-fixup --no-squash --no-reset-author --no-signoff --no-template --no-edit --no-cleanup --no-status --no-gpg-sign --no-all --no-include --no-interactive --no-patch --no-only --no-dry-run --no-short --no-branch --no-ahead-behind --no-porcelain --no-long --no-null --no-amend --no-untracked-files --no-pathspec-from-file --no-pathspec-file-nul" -__gitcomp_builtin_commit_graph_default=" --object-dir= --no-object-dir" -__gitcomp_builtin_config_default=" --global --system --local --worktree --file= --blob= --get --get-all --get-regexp --get-urlmatch --replace-all --add --unset --unset-all --rename-section --remove-section --list --fixed-value --edit --get-color --get-colorbool --type= --bool --int --bool-or-int --bool-or-str --path --expiry-date --null --name-only --includes --show-origin --show-scope --default= --no-global -- --no-system --no-local --no-worktree --no-file --no-blob --no-get --no-get-all --no-get-regexp --no-get-urlmatch --no-replace-all --no-add --no-unset --no-unset-all --no-rename-section --no-remove-section --no-list --no-fixed-value --no-edit --no-get-color --no-get-colorbool --no-type --no-null --no-name-only --no-includes --no-show-origin --no-show-scope --no-default" -__gitcomp_builtin_count_objects_default=" --verbose --human-readable --no-verbose -- --no-human-readable" -__gitcomp_builtin_credential_cache_default=" --timeout= --socket= --no-timeout -- --no-socket" -__gitcomp_builtin_credential_cache__daemon_default=" --debug --no-debug" -__gitcomp_builtin_credential_store_default=" --file= --no-file" -__gitcomp_builtin_describe_default=" --contains --debug --all --tags --long --first-parent --abbrev --exact-match --candidates= --match= --exclude= --always --dirty --broken --no-contains -- --no-debug --no-all --no-tags --no-long --no-first-parent --no-abbrev --no-exact-match --no-candidates --no-match --no-exclude --no-always --no-dirty --no-broken" -__gitcomp_builtin_difftool_default=" --gui --dir-diff --no-prompt --symlinks --tool= --tool-help --trust-exit-code --extcmd= --no-index --index -- --no-gui --no-dir-diff --no-symlinks --no-tool --no-tool-help --no-trust-exit-code --no-extcmd" -__gitcomp_builtin_env__helper_default=" --type= --default= --exit-code --no-default -- --no-exit-code" -__gitcomp_builtin_fast_export_default=" --progress= --signed-tags= --tag-of-filtered-object= --reencode= --export-marks= --import-marks= --import-marks-if-exists= --fake-missing-tagger --full-tree --use-done-feature --no-data --refspec= --anonymize --anonymize-map= --reference-excluded-parents --show-original-ids --mark-tags --data -- --no-progress --no-signed-tags --no-tag-of-filtered-object --no-reencode --no-export-marks --no-import-marks --no-import-marks-if-exists --no-fake-missing-tagger --no-full-tree --no-use-done-feature --no-refspec --no-anonymize --no-reference-excluded-parents --no-show-original-ids --no-mark-tags" -__gitcomp_builtin_fetch_default=" --verbose --quiet --all --set-upstream --append --atomic --upload-pack= --force --multiple --tags --jobs= --prefetch --prune --prune-tags --recurse-submodules --dry-run --write-fetch-head --keep --update-head-ok --progress --depth= --shallow-since= --shallow-exclude= --deepen= --unshallow --refetch --update-shallow --refmap= --server-option= --ipv4 --ipv6 --negotiation-tip= --negotiate-only --filter= --auto-maintenance --auto-gc --show-forced-updates --write-commit-graph --stdin --no-verbose -- --no-quiet --no-all --no-set-upstream --no-append --no-atomic --no-upload-pack --no-force --no-multiple --no-tags --no-jobs --no-prefetch --no-prune --no-prune-tags --no-recurse-submodules --no-dry-run --no-write-fetch-head --no-keep --no-update-head-ok --no-progress --no-depth --no-shallow-since --no-shallow-exclude --no-deepen --no-update-shallow --no-server-option --no-ipv4 --no-ipv6 --no-negotiation-tip --no-negotiate-only --no-filter --no-auto-maintenance --no-auto-gc --no-show-forced-updates --no-write-commit-graph --no-stdin" -__gitcomp_builtin_fmt_merge_msg_default=" --log --message= --into-name= --file= --no-log -- --no-message --no-into-name --no-file" -__gitcomp_builtin_for_each_ref_default=" --shell --perl --python --tcl --count= --format= --color --sort= --points-at= --merged --no-merged --contains --no-contains --ignore-case -- --no-shell --no-perl --no-python --no-tcl --no-count --no-format --no-color --no-sort --no-points-at --no-ignore-case" -__gitcomp_builtin_for_each_repo_default=" --config= --no-config" -__gitcomp_builtin_format_patch_default=" --numbered --no-numbered --signoff --stdout --cover-letter --numbered-files --suffix= --start-number= --reroll-count= --filename-max-length= --rfc --cover-from-description= --subject-prefix= --output-directory= --keep-subject --no-binary --zero-commit --ignore-if-in-upstream --no-stat --add-header= --to= --cc= --from --in-reply-to= --attach --inline --thread --signature= --base= --signature-file= --quiet --progress --interdiff= --range-diff= --creation-factor= --binary -- --no-numbered --no-signoff --no-stdout --no-cover-letter --no-numbered-files --no-suffix --no-start-number --no-reroll-count --no-filename-max-length --no-cover-from-description --no-zero-commit --no-ignore-if-in-upstream --no-add-header --no-to --no-cc --no-from --no-in-reply-to --no-attach --no-thread --no-signature --no-base --no-signature-file --no-quiet --no-progress --no-interdiff --no-range-diff --no-creation-factor" -__gitcomp_builtin_fsck_default=" --verbose --unreachable --dangling --tags --root --cache --reflogs --full --connectivity-only --strict --lost-found --progress --name-objects --no-verbose -- --no-unreachable --no-dangling --no-tags --no-root --no-cache --no-reflogs --no-full --no-connectivity-only --no-strict --no-lost-found --no-progress --no-name-objects" -__gitcomp_builtin_fsck_objects_default=" --verbose --unreachable --dangling --tags --root --cache --reflogs --full --connectivity-only --strict --lost-found --progress --name-objects --no-verbose -- --no-unreachable --no-dangling --no-tags --no-root --no-cache --no-reflogs --no-full --no-connectivity-only --no-strict --no-lost-found --no-progress --no-name-objects" -__gitcomp_builtin_fsmonitor__daemon_default="" -__gitcomp_builtin_gc_default=" --quiet --prune --aggressive --keep-largest-pack --no-quiet -- --no-prune --no-aggressive --no-keep-largest-pack" -__gitcomp_builtin_grep_default=" --cached --no-index --untracked --exclude-standard --recurse-submodules --invert-match --ignore-case --word-regexp --text --textconv --recursive --max-depth= --extended-regexp --basic-regexp --fixed-strings --perl-regexp --line-number --column --full-name --files-with-matches --name-only --files-without-match --only-matching --count --color --break --heading --context= --before-context= --after-context= --threads= --show-function --function-context --and --or --not --quiet --all-match --index -- --no-cached --no-untracked --no-exclude-standard --no-recurse-submodules --no-invert-match --no-ignore-case --no-word-regexp --no-text --no-textconv --no-recursive --no-extended-regexp --no-basic-regexp --no-fixed-strings --no-perl-regexp --no-line-number --no-column --no-full-name --no-files-with-matches --no-name-only --no-files-without-match --no-only-matching --no-count --no-color --no-break --no-heading --no-context --no-before-context --no-after-context --no-threads --no-show-function --no-function-context --no-or --no-quiet --no-all-match" -__gitcomp_builtin_hash_object_default=" --stdin --stdin-paths --no-filters --literally --path= --filters -- --no-stdin --no-stdin-paths --no-literally --no-path" -__gitcomp_builtin_help_default=" --all --external-commands --aliases --man --web --info --verbose --guides --config --no-external-commands -- --no-aliases --no-man --no-web --no-info --no-verbose" -__gitcomp_builtin_hook_default="" -__gitcomp_builtin_init_default=" --template= --bare --shared --quiet --separate-git-dir= --initial-branch= --object-format= --no-template -- --no-bare --no-quiet --no-separate-git-dir --no-initial-branch --no-object-format" -__gitcomp_builtin_init_db_default=" --template= --bare --shared --quiet --separate-git-dir= --initial-branch= --object-format= --no-template -- --no-bare --no-quiet --no-separate-git-dir --no-initial-branch --no-object-format" -__gitcomp_builtin_interpret_trailers_default=" --in-place --trim-empty --where= --if-exists= --if-missing= --only-trailers --only-input --unfold --parse --no-divider --trailer= --divider -- --no-in-place --no-trim-empty --no-where --no-if-exists --no-if-missing --no-only-trailers --no-only-input --no-unfold --no-trailer" -__gitcomp_builtin_log_default=" --quiet --source --use-mailmap --decorate-refs= --decorate-refs-exclude= --decorate --no-quiet -- --no-source --no-use-mailmap --no-mailmap --no-decorate-refs --no-decorate-refs-exclude --no-decorate" -__gitcomp_builtin_ls_files_default=" --cached --deleted --modified --others --ignored --stage --killed --directory --eol --empty-directory --unmerged --resolve-undo --exclude= --exclude-from= --exclude-per-directory= --exclude-standard --full-name --recurse-submodules --error-unmatch --with-tree= --abbrev --debug --deduplicate --sparse --no-cached -- --no-deleted --no-modified --no-others --no-ignored --no-stage --no-killed --no-directory --no-eol --no-empty-directory --no-unmerged --no-resolve-undo --no-exclude-per-directory --no-recurse-submodules --no-error-unmatch --no-with-tree --no-abbrev --no-debug --no-deduplicate --no-sparse" -__gitcomp_builtin_ls_remote_default=" --quiet --upload-pack= --tags --heads --refs --get-url --sort= --symref --server-option= --no-quiet -- --no-upload-pack --no-tags --no-heads --no-refs --no-get-url --no-sort --no-symref --no-server-option" -__gitcomp_builtin_ls_tree_default=" --long --name-only --name-status --object-only --full-name --full-tree --format= --abbrev --no-full-name -- --no-full-tree --no-abbrev" -__gitcomp_builtin_merge_default=" --stat --summary --log --squash --commit --edit --cleanup= --ff --ff-only --rerere-autoupdate --verify-signatures --strategy= --strategy-option= --message= --file --into-name= --verbose --quiet --abort --quit --continue --allow-unrelated-histories --progress --gpg-sign --autostash --overwrite-ignore --signoff --no-verify --verify -- --no-stat --no-summary --no-log --no-squash --no-commit --no-edit --no-cleanup --no-ff --no-rerere-autoupdate --no-verify-signatures --no-strategy --no-strategy-option --no-message --no-into-name --no-verbose --no-quiet --no-abort --no-quit --no-continue --no-allow-unrelated-histories --no-progress --no-gpg-sign --no-autostash --no-overwrite-ignore --no-signoff" -__gitcomp_builtin_merge_base_default=" --all --octopus --independent --is-ancestor --fork-point --no-all" -__gitcomp_builtin_merge_file_default=" --stdout --diff3 --zdiff3 --ours --theirs --union --marker-size= --quiet --no-stdout -- --no-diff3 --no-zdiff3 --no-ours --no-theirs --no-union --no-marker-size --no-quiet" -__gitcomp_builtin_mktree_default=" --missing --batch --no-missing -- --no-batch" -__gitcomp_builtin_multi_pack_index_default=" --object-dir= --no-object-dir" -__gitcomp_builtin_mv_default=" --verbose --dry-run --sparse --no-verbose -- --no-dry-run --no-sparse" -__gitcomp_builtin_name_rev_default=" --name-only --tags --refs= --exclude= --all --stdin --annotate-stdin --undefined --always --no-name-only -- --no-tags --no-refs --no-exclude --no-all --no-stdin --no-annotate-stdin --no-undefined --no-always" -__gitcomp_builtin_notes_default=" --ref= --no-ref" -__gitcomp_builtin_pack_objects_default=" --quiet --progress --all-progress --all-progress-implied --index-version= --max-pack-size= --local --incremental --window= --window-memory= --depth= --reuse-delta --reuse-object --delta-base-offset --threads= --non-empty --revs --unpacked --all --reflog --indexed-objects --stdin-packs --stdout --include-tag --keep-unreachable --pack-loose-unreachable --unpack-unreachable --sparse --thin --shallow --honor-pack-keep --keep-pack= --compression= --keep-true-parents --use-bitmap-index --write-bitmap-index --filter= --missing= --exclude-promisor-objects --delta-islands --uri-protocol= --no-quiet -- --no-progress --no-all-progress --no-all-progress-implied --no-local --no-incremental --no-window --no-depth --no-reuse-delta --no-reuse-object --no-delta-base-offset --no-threads --no-non-empty --no-revs --no-stdin-packs --no-stdout --no-include-tag --no-keep-unreachable --no-pack-loose-unreachable --no-unpack-unreachable --no-sparse --no-thin --no-shallow --no-honor-pack-keep --no-keep-pack --no-compression --no-keep-true-parents --no-use-bitmap-index --no-write-bitmap-index --no-filter --no-exclude-promisor-objects --no-delta-islands --no-uri-protocol" -__gitcomp_builtin_pack_refs_default=" --all --prune --no-all -- --no-prune" -__gitcomp_builtin_pickaxe_default=" --incremental --root --show-stats --progress --score-debug --show-name --show-number --porcelain --line-porcelain --show-email --ignore-rev= --ignore-revs-file= --color-lines --color-by-age --minimal --contents= --abbrev --no-incremental -- --no-root --no-show-stats --no-progress --no-score-debug --no-show-name --no-show-number --no-porcelain --no-line-porcelain --no-show-email --no-ignore-rev --no-ignore-revs-file --no-color-lines --no-color-by-age --no-minimal --no-contents --no-abbrev" -__gitcomp_builtin_prune_default=" --dry-run --verbose --progress --expire= --exclude-promisor-objects --no-dry-run -- --no-verbose --no-progress --no-expire --no-exclude-promisor-objects" -__gitcomp_builtin_prune_packed_default=" --dry-run --quiet --no-dry-run -- --no-quiet" -__gitcomp_builtin_pull_default=" --verbose --quiet --progress --recurse-submodules --rebase --stat --log --signoff --squash --commit --edit --cleanup= --ff --ff-only --verify --verify-signatures --autostash --strategy= --strategy-option= --gpg-sign --allow-unrelated-histories --all --append --upload-pack= --force --tags --prune --jobs --dry-run --keep --depth= --shallow-since= --shallow-exclude= --deepen= --unshallow --update-shallow --refmap= --server-option= --ipv4 --ipv6 --negotiation-tip= --show-forced-updates --set-upstream --no-verbose -- --no-quiet --no-progress --no-recurse-submodules --no-rebase --no-stat --no-log --no-signoff --no-squash --no-commit --no-edit --no-cleanup --no-ff --no-verify --no-verify-signatures --no-autostash --no-strategy --no-strategy-option --no-gpg-sign --no-allow-unrelated-histories --no-all --no-append --no-upload-pack --no-force --no-tags --no-prune --no-jobs --no-dry-run --no-keep --no-depth --no-shallow-since --no-shallow-exclude --no-deepen --no-update-shallow --no-server-option --no-ipv4 --no-ipv6 --no-negotiation-tip --no-show-forced-updates --no-set-upstream" -__gitcomp_builtin_push_default=" --verbose --quiet --repo= --all --mirror --delete --tags --dry-run --porcelain --force --force-with-lease --force-if-includes --recurse-submodules= --receive-pack= --exec= --set-upstream --progress --prune --no-verify --follow-tags --signed --atomic --push-option= --ipv4 --ipv6 --verify -- --no-verbose --no-quiet --no-repo --no-all --no-mirror --no-delete --no-tags --no-dry-run --no-porcelain --no-force --no-force-with-lease --no-force-if-includes --no-recurse-submodules --no-receive-pack --no-exec --no-set-upstream --no-progress --no-prune --no-follow-tags --no-signed --no-atomic --no-push-option --no-ipv4 --no-ipv6" -__gitcomp_builtin_range_diff_default=" --creation-factor= --no-dual-color --notes --left-only --right-only --patch --no-patch --unified --function-context --raw --patch-with-raw --patch-with-stat --numstat --shortstat --dirstat --cumulative --dirstat-by-file --check --summary --name-only --name-status --stat --stat-width= --stat-name-width= --stat-graph-width= --stat-count= --compact-summary --binary --full-index --color --ws-error-highlight= --abbrev --src-prefix= --dst-prefix= --line-prefix= --no-prefix --inter-hunk-context= --output-indicator-new= --output-indicator-old= --output-indicator-context= --break-rewrites --find-renames --irreversible-delete --find-copies --find-copies-harder --no-renames --rename-empty --follow --minimal --ignore-all-space --ignore-space-change --ignore-space-at-eol --ignore-cr-at-eol --ignore-blank-lines --ignore-matching-lines= --indent-heuristic --patience --histogram --diff-algorithm= --anchored= --word-diff --word-diff-regex= --color-words --color-moved --color-moved-ws= --relative --text --exit-code --quiet --ext-diff --textconv --ignore-submodules --submodule --ita-invisible-in-index --ita-visible-in-index --pickaxe-all --pickaxe-regex --rotate-to= --skip-to= --find-object= --diff-filter= --output= --dual-color -- --no-creation-factor --no-notes --no-left-only --no-right-only --no-function-context --no-compact-summary --no-full-index --no-color --no-abbrev --no-find-copies-harder --no-rename-empty --no-follow --no-minimal --no-ignore-matching-lines --no-indent-heuristic --no-color-moved --no-color-moved-ws --no-relative --no-text --no-exit-code --no-quiet --no-ext-diff --no-textconv" -__gitcomp_builtin_read_tree_default=" --index-output= --empty --verbose --trivial --aggressive --reset --prefix= --exclude-per-directory= --dry-run --no-sparse-checkout --debug-unpack --recurse-submodules --quiet --sparse-checkout -- --no-empty --no-verbose --no-trivial --no-aggressive --no-reset --no-dry-run --no-debug-unpack --no-recurse-submodules --no-quiet" -__gitcomp_builtin_rebase_default=" --onto= --keep-base --no-verify --quiet --verbose --no-stat --signoff --committer-date-is-author-date --reset-author-date --ignore-whitespace --whitespace= --force-rebase --no-ff --continue --skip --abort --quit --edit-todo --show-current-patch --apply --merge --interactive --rerere-autoupdate --empty= --autosquash --gpg-sign --autostash --exec= --rebase-merges --fork-point --strategy= --strategy-option= --root --reschedule-failed-exec --reapply-cherry-picks --verify --stat --ff -- --no-onto --no-keep-base --no-quiet --no-verbose --no-signoff --no-committer-date-is-author-date --no-reset-author-date --no-ignore-whitespace --no-whitespace --no-force-rebase --no-rerere-autoupdate --no-autosquash --no-gpg-sign --no-autostash --no-exec --no-rebase-merges --no-fork-point --no-strategy --no-strategy-option --no-root --no-reschedule-failed-exec --no-reapply-cherry-picks" -__gitcomp_builtin_receive_pack_default=" --quiet --no-quiet" -__gitcomp_builtin_reflog_default="" -__gitcomp_builtin_remote_default=" --verbose --no-verbose" -__gitcomp_builtin_repack_default=" --quiet --local --write-bitmap-index --delta-islands --unpack-unreachable= --keep-unreachable --window= --window-memory= --depth= --threads= --max-pack-size= --pack-kept-objects --keep-pack= --geometric= --write-midx --no-quiet -- --no-local --no-write-bitmap-index --no-delta-islands --no-unpack-unreachable --no-keep-unreachable --no-window --no-window-memory --no-depth --no-threads --no-max-pack-size --no-pack-kept-objects --no-keep-pack --no-geometric --no-write-midx" -__gitcomp_builtin_replace_default=" --list --delete --edit --graft --convert-graft-file --raw --format= --no-raw -- --no-format" -__gitcomp_builtin_rerere_default=" --rerere-autoupdate --no-rerere-autoupdate" -__gitcomp_builtin_reset_default=" --quiet --no-refresh --mixed --soft --hard --merge --keep --recurse-submodules --patch --intent-to-add --pathspec-from-file= --pathspec-file-nul --refresh -- --no-quiet --no-mixed --no-soft --no-hard --no-merge --no-keep --no-recurse-submodules --no-patch --no-intent-to-add --no-pathspec-from-file --no-pathspec-file-nul" -__gitcomp_builtin_restore_default=" --source= --staged --worktree --ignore-unmerged --overlay --quiet --recurse-submodules --progress --merge --conflict= --ours --theirs --patch --ignore-skip-worktree-bits --pathspec-from-file= --pathspec-file-nul --no-source -- --no-staged --no-worktree --no-ignore-unmerged --no-overlay --no-quiet --no-recurse-submodules --no-progress --no-merge --no-conflict --no-patch --no-ignore-skip-worktree-bits --no-pathspec-from-file --no-pathspec-file-nul" -__gitcomp_builtin_revert_default=" --quit --continue --abort --skip --cleanup= --no-commit --edit --signoff --mainline= --rerere-autoupdate --strategy= --strategy-option= --gpg-sign --commit -- --no-cleanup --no-edit --no-signoff --no-mainline --no-rerere-autoupdate --no-strategy --no-strategy-option --no-gpg-sign" -__gitcomp_builtin_rm_default=" --dry-run --quiet --cached --ignore-unmatch --sparse --pathspec-from-file= --pathspec-file-nul --no-dry-run -- --no-quiet --no-cached --no-ignore-unmatch --no-sparse --no-pathspec-from-file --no-pathspec-file-nul" -__gitcomp_builtin_send_pack_default=" --verbose --quiet --receive-pack= --exec= --remote= --all --dry-run --mirror --force --signed --push-option= --progress --thin --atomic --stateless-rpc --stdin --helper-status --force-with-lease --force-if-includes --no-verbose -- --no-quiet --no-receive-pack --no-exec --no-remote --no-all --no-dry-run --no-mirror --no-force --no-signed --no-push-option --no-progress --no-thin --no-atomic --no-stateless-rpc --no-stdin --no-helper-status --no-force-with-lease --no-force-if-includes" -__gitcomp_builtin_shortlog_default=" --committer --numbered --summary --email --group= --no-committer -- --no-numbered --no-summary --no-email --no-group" -__gitcomp_builtin_show_default=" --quiet --source --use-mailmap --decorate-refs= --decorate-refs-exclude= --decorate --no-quiet -- --no-source --no-use-mailmap --no-mailmap --no-decorate-refs --no-decorate-refs-exclude --no-decorate" -__gitcomp_builtin_show_branch_default=" --all --remotes --color --more --list --no-name --current --sha1-name --merge-base --independent --topo-order --topics --sparse --date-order --reflog --name -- --no-all --no-remotes --no-color --no-more --no-list --no-current --no-sha1-name --no-merge-base --no-independent --no-topo-order --no-topics --no-sparse --no-date-order" -__gitcomp_builtin_show_index_default=" --object-format= --no-object-format" -__gitcomp_builtin_show_ref_default=" --tags --heads --verify --head --dereference --hash --abbrev --quiet --exclude-existing --no-tags -- --no-heads --no-verify --no-head --no-dereference --no-hash --no-abbrev --no-quiet" -__gitcomp_builtin_sparse_checkout_default="" -__gitcomp_builtin_stage_default=" --dry-run --verbose --interactive --patch --edit --force --update --renormalize --intent-to-add --all --ignore-removal --refresh --ignore-errors --ignore-missing --sparse --chmod= --pathspec-from-file= --pathspec-file-nul --no-dry-run -- --no-verbose --no-interactive --no-patch --no-edit --no-force --no-update --no-renormalize --no-intent-to-add --no-all --no-ignore-removal --no-refresh --no-ignore-errors --no-ignore-missing --no-sparse --no-chmod --no-pathspec-from-file --no-pathspec-file-nul" -__gitcomp_builtin_stash_default="" -__gitcomp_builtin_status_default=" --verbose --short --branch --show-stash --ahead-behind --porcelain --long --null --untracked-files --ignored --ignore-submodules --column --no-renames --find-renames --renames -- --no-verbose --no-short --no-branch --no-show-stash --no-ahead-behind --no-porcelain --no-long --no-null --no-untracked-files --no-ignored --no-ignore-submodules --no-column" -__gitcomp_builtin_stripspace_default=" --strip-comments --comment-lines" -__gitcomp_builtin_switch_default=" --create= --force-create= --guess --discard-changes --quiet --recurse-submodules --progress --merge --conflict= --detach --track --orphan= --ignore-other-worktrees --no-create -- --no-force-create --no-guess --no-discard-changes --no-quiet --no-recurse-submodules --no-progress --no-merge --no-conflict --no-detach --no-track --no-orphan --no-ignore-other-worktrees" -__gitcomp_builtin_symbolic_ref_default=" --quiet --delete --short --no-quiet -- --no-delete --no-short" -__gitcomp_builtin_tag_default=" --list --delete --verify --annotate --message= --file= --edit --sign --cleanup= --local-user= --force --create-reflog --column --contains --no-contains --merged --no-merged --sort= --points-at --format= --color --ignore-case -- --no-annotate --no-file --no-edit --no-sign --no-cleanup --no-local-user --no-force --no-create-reflog --no-column --no-sort --no-points-at --no-format --no-color --no-ignore-case" -__gitcomp_builtin_update_index_default=" --ignore-submodules --add --replace --remove --unmerged --refresh --really-refresh --cacheinfo --chmod= --assume-unchanged --no-assume-unchanged --skip-worktree --no-skip-worktree --ignore-skip-worktree-entries --info-only --force-remove --stdin --index-info --unresolve --again --ignore-missing --verbose --clear-resolve-undo --index-version= --split-index --untracked-cache --test-untracked-cache --force-untracked-cache --force-write-index --fsmonitor --fsmonitor-valid --no-fsmonitor-valid -- --no-ignore-submodules --no-add --no-replace --no-remove --no-unmerged --no-ignore-skip-worktree-entries --no-info-only --no-force-remove --no-ignore-missing --no-verbose --no-index-version --no-split-index --no-untracked-cache --no-test-untracked-cache --no-force-untracked-cache --no-force-write-index --no-fsmonitor" -__gitcomp_builtin_update_ref_default=" --no-deref --stdin --create-reflog --deref -- --no-stdin --no-create-reflog" -__gitcomp_builtin_update_server_info_default=" --force --no-force" -__gitcomp_builtin_upload_pack_default=" --stateless-rpc --strict --timeout= --no-stateless-rpc -- --no-strict --no-timeout" -__gitcomp_builtin_verify_commit_default=" --verbose --raw --no-verbose -- --no-raw" -__gitcomp_builtin_verify_pack_default=" --verbose --stat-only --object-format= --no-verbose -- --no-stat-only --no-object-format" -__gitcomp_builtin_verify_tag_default=" --verbose --raw --format= --no-verbose -- --no-raw --no-format" -__gitcomp_builtin_version_default=" --build-options --no-build-options" -__gitcomp_builtin_whatchanged_default=" --quiet --source --use-mailmap --decorate-refs= --decorate-refs-exclude= --decorate --no-quiet -- --no-source --no-use-mailmap --no-mailmap --no-decorate-refs --no-decorate-refs-exclude --no-decorate" -__gitcomp_builtin_write_tree_default=" --missing-ok --prefix= --no-missing-ok -- --no-prefix" -__gitcomp_builtin_send_email_default="--sender= --from= --smtp-auth= --8bit-encoding= --no-format-patch --no-bcc --no-suppress-from --no-annotate --relogin-delay= --no-cc --no-signed-off-cc --no-signed-off-by-cc --no-chain-reply-to --smtp-debug= --smtp-domain= --chain-reply-to --dry-run --compose --bcc= --smtp-user= --thread --cc-cover --identity= --to= --reply-to= --no-cc-cover --suppress-cc= --to-cmd= --smtp-server= --smtp-ssl-cert-path= --no-thread --smtp-server-option= --quiet --batch-size= --envelope-sender= --smtp-ssl --no-to --validate --format-patch --suppress-from --cc= --compose-encoding= --to-cover --in-reply-to= --annotate --smtp-encryption= --cc-cmd= --smtp-server-port= --smtp-pass= --signed-off-cc --signed-off-by-cc --no-xmailer --subject= --no-to-cover --confirm= --transfer-encoding= --no-smtp-auth --sendmail-cmd= --no-validate --no-identity --dump-aliases --xmailer --force --numbered --no-numbered --signoff --stdout --cover-letter --numbered-files --suffix= --start-number= --reroll-count= --filename-max-length= --rfc --cover-from-description= --subject-prefix= --output-directory= --keep-subject --no-binary --zero-commit --ignore-if-in-upstream --no-stat --add-header= --from --attach --inline --signature= --base= --signature-file= --progress --interdiff= --range-diff= --creation-factor= --binary -- --no-signoff --no-stdout --no-cover-letter --no-numbered-files --no-suffix --no-start-number --no-reroll-count --no-filename-max-length --no-cover-from-description --no-zero-commit --no-ignore-if-in-upstream --no-add-header --no-from --no-in-reply-to --no-attach --no-signature --no-base --no-signature-file --no-quiet --no-progress --no-interdiff --no-range-diff --no-creation-factor" - -__gitcomp_builtin_get_default () -{ - eval "test -n \"\$${1}_default\" && echo \"\$${1}_default\"" -} - # This function is equivalent to # # __gitcomp_opts "$(git xxx --git-completion-helper) ..." @@ -457,11 +353,9 @@ __gitcomp_builtin () else completion_helper="--git-completion-helper" fi - completion="$(__git ${cmd/_/ } $completion_helper || - __gitcomp_builtin_get_default $var)" || return # leading and trailing spaces are significant to make # option removal work correctly. - options=" $incl $completion " + options=" $incl $(__git ${cmd/_/ } $completion_helper) " || return for i in $excl; do options="${options/ $i / }" @@ -604,6 +498,7 @@ __git_heads () local pfx="${1-}" cur_="${2-}" sfx="${3-}" __git for-each-ref --format="${pfx//\%/%%}%(refname:strip=2)$sfx" \ + ${GIT_COMPLETION_IGNORE_CASE+--ignore-case} \ "refs/heads/$cur_*" "refs/heads/$cur_*/**" } @@ -617,6 +512,7 @@ __git_remote_heads () local pfx="${1-}" cur_="${2-}" sfx="${3-}" __git for-each-ref --format="${pfx//\%/%%}%(refname:strip=2)$sfx" \ + ${GIT_COMPLETION_IGNORE_CASE+--ignore-case} \ "refs/remotes/$cur_*" "refs/remotes/$cur_*/**" } @@ -627,6 +523,7 @@ __git_tags () local pfx="${1-}" cur_="${2-}" sfx="${3-}" __git for-each-ref --format="${pfx//\%/%%}%(refname:strip=2)$sfx" \ + ${GIT_COMPLETION_IGNORE_CASE+--ignore-case} \ "refs/tags/$cur_*" "refs/tags/$cur_*/**" } @@ -646,6 +543,7 @@ __git_dwim_remote_heads () # but only output if the branch name is unique __git for-each-ref --format="$fer_pfx%(refname:strip=3)$sfx" \ --sort="refname:strip=3" \ + ${GIT_COMPLETION_IGNORE_CASE+--ignore-case} \ "refs/remotes/*/$cur_*" "refs/remotes/*/$cur_*/**" | \ uniq -u } @@ -670,6 +568,7 @@ __git_refs () local format refs local pfx="${3-}" cur_="${4-$cur}" sfx="${5-}" local match="${4-}" + local umatch="${4-}" local fer_pfx="${pfx//\%/%%}" # "escape" for-each-ref format specifiers __git_find_repo_path @@ -693,12 +592,19 @@ __git_refs () fi fi + if test "${GIT_COMPLETION_IGNORE_CASE:+1}" = "1" + then + # uppercase with tr instead of ${match,^^} for bash 3.2 compatibility + umatch=$(echo "$match" | tr a-z A-Z 2>/dev/null || echo "$match") + fi + if [ "$list_refs_from" = path ]; then if [[ "$cur_" == ^* ]]; then pfx="$pfx^" fer_pfx="$fer_pfx^" cur_=${cur_#^} match=${match#^} + umatch=${umatch#^} fi case "$cur_" in refs|refs/*) @@ -709,7 +615,7 @@ __git_refs () *) for i in HEAD FETCH_HEAD ORIG_HEAD MERGE_HEAD REBASE_HEAD CHERRY_PICK_HEAD; do case "$i" in - $match*) + $match*|$umatch*) if [ -e "$dir/$i" ]; then echo "$pfx$i$sfx" fi @@ -723,6 +629,7 @@ __git_refs () ;; esac __git_dir="$dir" __git for-each-ref --format="$fer_pfx%($format)$sfx" \ + ${GIT_COMPLETION_IGNORE_CASE+--ignore-case} \ "${refs[@]}" if [ -n "$track" ]; then __git_dwim_remote_heads "$pfx" "$match" "$sfx" @@ -742,15 +649,16 @@ __git_refs () *) if [ "$list_refs_from" = remote ]; then case "HEAD" in - $match*) echo "${pfx}HEAD$sfx" ;; + $match*|$umatch*) echo "${pfx}HEAD$sfx" ;; esac __git for-each-ref --format="$fer_pfx%(refname:strip=3)$sfx" \ + ${GIT_COMPLETION_IGNORE_CASE+--ignore-case} \ "refs/remotes/$remote/$match*" \ "refs/remotes/$remote/$match*/**" else local query_symref case "HEAD" in - $match*) query_symref="HEAD" ;; + $match*|$umatch*) query_symref="HEAD" ;; esac __git ls-remote "$remote" $query_symref \ "refs/tags/$match*" "refs/heads/$match*" \ @@ -888,7 +796,6 @@ __git_list_merge_strategies () }' } -__git_merge_strategies_default='octopus ours recursive resolve subtree' __git_merge_strategies= # 'git merge -s help' (and thus detection of the merge strategy # list) fails, unfortunately, if run outside of any git working @@ -898,8 +805,7 @@ __git_merge_strategies= __git_compute_merge_strategies () { test -n "$__git_merge_strategies" || - { __git_merge_strategies=$(__git_list_merge_strategies); - __git_merge_strategies="${__git_merge_strategies:-__git_merge_strategies_default}"; } + __git_merge_strategies=$(__git_list_merge_strategies) } __git_merge_strategy_options="ours theirs subtree subtree= patience @@ -2281,7 +2187,7 @@ _git_reflog () fi } -__git_send_email_options="--no-cc-cover --cc= --no-bcc --force --relogin-delay= --to= --suppress-cc= --no-annotate --no-chain-reply-to --sendmail-cmd= --no-identity --transfer-encoding= --validate --no-smtp-auth --confirm= --no-format-patch --reply-to= --smtp-pass= --smtp-server= --annotate --envelope-sender= --no-validate --dry-run --no-thread --smtp-debug= --no-to --thread --no-xmailer --identity= --no-signed-off-cc --no-signed-off-by-cc --smtp-domain= --to-cover --8bit-encoding= --bcc= --smtp-ssl-cert-path= --smtp-user= --cc-cmd= --to-cmd= --no-cc --smtp-server-option= --in-reply-to= --subject= --batch-size= --smtp-auth= --compose --smtp-server-port= --xmailer --no-to-cover --chain-reply-to --smtp-encryption= --dump-aliases --quiet --smtp-ssl --signed-off-cc --signed-off-by-cc --suppress-from --compose-encoding= --no-suppress-from --sender= --from= --format-patch --cc-cover --numbered --no-numbered --signoff --stdout --cover-letter --numbered-files --suffix= --start-number= --reroll-count= --filename-max-length= --rfc --cover-from-description= --subject-prefix= --output-directory= --keep-subject --no-binary --zero-commit --ignore-if-in-upstream --no-stat --add-header= --from --attach --inline --signature= --base= --signature-file= --progress --interdiff= --range-diff= --creation-factor= --binary -- --no-signoff --no-stdout --no-cover-letter --no-numbered-files --no-suffix --no-start-number --no-reroll-count --no-filename-max-length --no-cover-from-description --no-zero-commit --no-ignore-if-in-upstream --no-add-header --no-from --no-in-reply-to --no-attach --no-signature --no-base --no-signature-file --no-quiet --no-progress --no-interdiff --no-range-diff --no-creation-factor" +__gitcomp_builtin_send_email_default="--8bit-encoding= --add-header= --annotate --attach --base= --batch-size= --bcc= --binary --cc-cmd= --cc-cover --cc= --chain-reply-to --compose --compose-encoding= --confirm= --cover-from-description= --cover-letter --creation-factor= --dry-run --dump-aliases --envelope-sender= --filename-max-length= --force --force-in-body-from --format-patch --from --from= --identity= --ignore-if-in-upstream --in-reply-to= --inline --interdiff= --keep-subject --numbered --numbered-files --output-directory= --progress --quiet --range-diff= --relogin-delay= --reply-to= --reroll-count= --rfc --sender= --sendmail-cmd= --signature-file= --signature= --signed-off-by-cc --signed-off-cc --signoff --smtp-auth= --smtp-debug= --smtp-domain= --smtp-encryption= --smtp-pass= --smtp-server-option= --smtp-server-port= --smtp-server= --smtp-ssl --smtp-ssl-cert-path= --smtp-user= --start-number= --stdout --subject-prefix= --subject= --suffix= --suppress-cc= --suppress-from --thread --to-cmd= --to-cover --to= --transfer-encoding= --v= --validate --xmailer --zero-commit -- --no-add-header --no-annotate --no-attach --no-base --no-bcc --no-binary --no-cc --no-cc-cover --no-chain-reply-to --no-cover-from-description --no-cover-letter --no-creation-factor --no-filename-max-length --no-force-in-body-from --no-format-patch --no-from --no-identity --no-ignore-if-in-upstream --no-in-reply-to --no-interdiff --no-numbered --no-numbered-files --no-progress --no-quiet --no-range-diff --no-reroll-count --no-signature --no-signature-file --no-signed-off-by-cc --no-signed-off-cc --no-signoff --no-smtp-auth --no-start-number --no-stat --no-stdout --no-suffix --no-suppress-from --no-thread --no-to --no-to-cover --no-validate --no-xmailer --no-zero-commit" __git_send_email_confirm_options="always never auto cc compose" __git_send_email_suppresscc_options="author self cc bodycc sob cccmd body all" @@ -2321,7 +2227,11 @@ _git_send_email () return ;; --*) - __gitcomp_builtin send-email "$__git_send_email_options $__git_format_patch_extra_options" + # Older versions of git send-email don't have all the options + git send-email --git-completion-helper | grep -q annotate || + __gitcomp_builtin_send_email=$__gitcomp_builtin_send_email_default + + __gitcomp_builtin send-email "$__git_format_patch_extra_options" return ;; esac @@ -2456,7 +2366,25 @@ __git_config_vars= __git_compute_config_vars () { test -n "$__git_config_vars" || - __git_config_vars="$(git help --config-for-completion | sort -u)" + __git_config_vars="$(git help --config-for-completion)" +} + +__git_compute_config_sections_old () +{ + __git_compute_config_vars + echo "$__git_config_vars" | + awk -F . '{ dict[$1] = 1 } END { for (e in dict) print e }' +} + +__git_config_sections= +__git_compute_config_sections () +{ + test -n "$__git_config_sections" || + __git_config_sections="$( + git help --config-sections-for-completion > /dev/null 2>&1 && + git help --config-sections-for-completion || + __git_compute_config_sections_old + )" } # Completes possible values of various configuration variables. @@ -2670,16 +2598,8 @@ __git_complete_config_variable_name () __gitcomp "$__git_config_vars" "" "$cur_" "$sfx" ;; *) - __git_compute_config_vars - __gitcomp_nl "$(echo "$__git_config_vars" | - awk -F . '{ - sections[$1] = 1 - } - END { - for (s in sections) - print s "." - } - ')" "" "$cur_" "" + __git_compute_config_sections + __gitcomp_nl "$__git_config_sections" "" "$cur_" "." ;; esac } @@ -3628,43 +3548,6 @@ __git_complete () ___git_complete $1 $func } -if ! git --list-cmds=main >/dev/null 2>&1; then - - declare -A __git_cmds - __git_cmds[list-complete]="apply blame cherry config difftool fsck help instaweb mergetool prune reflog remote repack replace request-pull send-email show-branch stage whatchanged" - __git_cmds[list-guide]="attributes cli core-tutorial credentials cvs-migration diffcore everyday faq glossary hooks ignore mailmap modules namespaces remote-helpers repository-layout revisions submodules tutorial tutorial-2 workflows" - __git_cmds[list-mainporcelain]="add am archive bisect branch bundle checkout cherry-pick citool clean clone commit describe diff fetch format-patch gc grep gui init log maintenance merge mv notes pull push range-diff rebase reset restore revert rm shortlog show sparse-checkout stash status submodule switch tag worktree gitk" - __git_cmds[main]="add add--interactive am annotate apply archimport archive bisect bisect--helper blame branch bugreport bundle cat-file check-attr check-ignore check-mailmap check-ref-format checkout checkout--worker checkout-index cherry cherry-pick citool clean clone column commit commit-graph commit-tree config count-objects credential credential-cache credential-cache--daemon credential-store cvsexportcommit cvsimport cvsserver daemon describe diff diff-files diff-index diff-tree difftool difftool--helper env--helper fast-export fast-import fetch fetch-pack filter-branch fmt-merge-msg for-each-ref for-each-repo format-patch fsck fsck-objects fsmonitor--daemon gc get-tar-commit-id grep gui gui--askpass hash-object help hook http-backend http-fetch http-push imap-send index-pack init init-db instaweb interpret-trailers legacy-rebase legacy-stash log ls-files ls-remote ls-tree mailinfo mailsplit maintenance merge merge-base merge-file merge-index merge-octopus merge-one-file merge-ours merge-recursive merge-recursive-ours merge-recursive-theirs merge-resolve merge-subtree merge-tree mergetool mktag mktree multi-pack-index mv name-rev notes p4 pack-objects pack-redundant pack-refs patch-id pickaxe prune prune-packed pull push quiltimport range-diff read-tree rebase rebase--helper receive-pack reflog relink remote remote-ext remote-fd remote-ftp remote-ftps remote-http remote-https remote-testsvn repack replace request-pull rerere reset restore rev-list rev-parse revert rm send-email send-pack serve sh-i18n--envsubst shell shortlog show show-branch show-index show-ref sparse-checkout stage stash status stripspace submodule submodule--helper svn switch symbolic-ref tag unpack-file unpack-objects update-index update-ref update-server-info upload-archive upload-archive--writer upload-pack var verify-commit verify-pack verify-tag version web--browse whatchanged worktree write-tree" - __git_cmds[others]="" - __git_cmds[parseopt]="add am apply archive bisect--helper blame branch bugreport cat-file check-attr check-ignore check-mailmap checkout checkout--worker checkout-index cherry cherry-pick clean clone column commit commit-graph config count-objects credential-cache credential-cache--daemon credential-store describe difftool env--helper fast-export fetch fmt-merge-msg for-each-ref for-each-repo format-patch fsck fsck-objects fsmonitor--daemon gc grep hash-object help hook init init-db interpret-trailers log ls-files ls-remote ls-tree merge merge-base merge-file mktree multi-pack-index mv name-rev notes pack-objects pack-refs pickaxe prune prune-packed pull push range-diff read-tree rebase receive-pack reflog remote repack replace rerere reset restore revert rm send-pack shortlog show show-branch show-index show-ref sparse-checkout stage stash status stripspace switch symbolic-ref tag update-index update-ref update-server-info upload-pack verify-commit verify-pack verify-tag version whatchanged write-tree " - - # Override __git - __git () - { - case "$1" in - --list-cmds=*) - while read -r -d ',' x; do - case "$x" in - nohelpers) - ;; - alias) - ;; - config) - ;; - *) - echo ${__git_cmds[$x]} - ;; - esac - done <<< "${1##--list-cmds=}," - return - ;; - esac - git ${__git_C_args:+"${__git_C_args[@]}"} \ - ${__git_dir:+--git-dir="$__git_dir"} "$@" 2>/dev/null - } - -fi - ___git_complete git __git_main ___git_complete gitk __gitk_main diff --git a/plugins/gitfast/git-prompt.sh b/plugins/gitfast/git-prompt.sh index 1435548e0..76ee4ab1e 100644 --- a/plugins/gitfast/git-prompt.sh +++ b/plugins/gitfast/git-prompt.sh @@ -84,6 +84,10 @@ # single '?' character by setting GIT_PS1_COMPRESSSPARSESTATE, or omitted # by setting GIT_PS1_OMITSPARSESTATE. # +# If you would like to see a notification on the prompt when there are +# unresolved conflicts, set GIT_PS1_SHOWCONFLICTSTATE to "yes". The +# prompt will include "|CONFLICT". +# # If you would like to see more information about the identity of # commits checked out as a detached HEAD, set GIT_PS1_DESCRIBE_STYLE # to one of these values: @@ -96,9 +100,7 @@ # # If you would like a colored hint about the current dirty state, set # GIT_PS1_SHOWCOLORHINTS to a nonempty value. The colors are based on -# the colored output of "git status -sb" and are available only when -# using __git_ps1 for PROMPT_COMMAND or precmd in Bash, -# but always available in Zsh. +# the colored output of "git status -sb". # # If you would like __git_ps1 to do nothing in the case when the current # directory is set up to be ignored by git, then set @@ -255,12 +257,12 @@ __git_ps1_colorize_gitstring () local c_lblue='%F{blue}' local c_clear='%f' else - # Using \[ and \] around colors is necessary to prevent + # Using \001 and \002 around colors is necessary to prevent # issues with command line editing/browsing/completion! - local c_red='\[\e[31m\]' - local c_green='\[\e[32m\]' - local c_lblue='\[\e[1;34m\]' - local c_clear='\[\e[0m\]' + local c_red=$'\001\e[31m\002' + local c_green=$'\001\e[32m\002' + local c_lblue=$'\001\e[1;34m\002' + local c_clear=$'\001\e[0m\002' fi local bad_color=$c_red local ok_color=$c_green @@ -508,6 +510,12 @@ __git_ps1 () r="$r $step/$total" fi + local conflict="" # state indicator for unresolved conflicts + if [[ "${GIT_PS1_SHOWCONFLICTSTATE}" == "yes" ]] && + [[ $(git ls-files --unmerged 2>/dev/null) ]]; then + conflict="|CONFLICT" + fi + local w="" local i="" local s="" @@ -564,15 +572,12 @@ __git_ps1 () b="\${__git_ps1_branch_name}" fi - # NO color option unless in PROMPT_COMMAND mode or it's Zsh if [ -n "${GIT_PS1_SHOWCOLORHINTS-}" ]; then - if [ $pcmode = yes ] || [ -n "${ZSH_VERSION-}" ]; then - __git_ps1_colorize_gitstring - fi + __git_ps1_colorize_gitstring fi local f="$h$w$i$s$u$p" - local gitstring="$c$b${f:+$z$f}${sparse}$r${upstream}" + local gitstring="$c$b${f:+$z$f}${sparse}$r${upstream}${conflict}" if [ $pcmode = yes ]; then if [ "${__git_printf_supports_v-}" != yes ]; then diff --git a/plugins/gitfast/gitfast.plugin.zsh b/plugins/gitfast/gitfast.plugin.zsh index a6db0c6bd..c456eff7f 100644 --- a/plugins/gitfast/gitfast.plugin.zsh +++ b/plugins/gitfast/gitfast.plugin.zsh @@ -1,6 +1,6 @@ # Handle $0 according to the standard: # https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html -0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${ZERO:-${${0:#$ZSH_ARGZERO}:-${(%):-%N}}}" 0="${${(M)0:#/*}:-$PWD/$0}" source "${0:A:h}/git-prompt.sh" diff --git a/plugins/gitfast/update b/plugins/gitfast/update deleted file mode 100755 index feb13ff7e..000000000 --- a/plugins/gitfast/update +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -url="https://raw.githubusercontent.com/felipec/git-completion" -version="1.3.7" - -curl -s -o _git "${url}/v${version}/git-completion.zsh" && -curl -s -o git-completion.bash "${url}/v${version}/git-completion.bash" && -curl -s -o git-prompt.sh "${url}/v${version}/git-prompt.sh" diff --git a/plugins/gitignore/README.md b/plugins/gitignore/README.md index 753dd31fd..23c7887cf 100644 --- a/plugins/gitignore/README.md +++ b/plugins/gitignore/README.md @@ -1,6 +1,6 @@ # gitignore -This plugin enables you the use of [gitignore.io](https://www.gitignore.io/) from the command line. You need an active internet connection. +This plugin enables you the use of [gitignore.io](https://www.toptal.com/developers/gitignore) from the command line. You need an active internet connection. To use it, add `gitignore` to the plugins array in your zshrc file: diff --git a/plugins/gitignore/gitignore.plugin.zsh b/plugins/gitignore/gitignore.plugin.zsh index a687f5cce..3271d61a9 100644 --- a/plugins/gitignore/gitignore.plugin.zsh +++ b/plugins/gitignore/gitignore.plugin.zsh @@ -1,7 +1,7 @@ -function gi() { curl -fLw '\n' https://www.gitignore.io/api/"${(j:,:)@}" } +function gi() { curl -fLw '\n' https://www.toptal.com/developers/gitignore/api/"${(j:,:)@}" } _gitignoreio_get_command_list() { - curl -sfL https://www.gitignore.io/api/list | tr "," "\n" + curl -sfL https://www.toptal.com/developers/gitignore/api/list | tr "," "\n" } _gitignoreio () { diff --git a/plugins/gnu-utils/gnu-utils.plugin.zsh b/plugins/gnu-utils/gnu-utils.plugin.zsh index 6bd3e8463..adc2bd3bb 100644 --- a/plugins/gnu-utils/gnu-utils.plugin.zsh +++ b/plugins/gnu-utils/gnu-utils.plugin.zsh @@ -14,12 +14,12 @@ __gnu_utils() { local -a gcmds local gcmd - # coreutils + # coreutils gcmds=('g[' 'gbase64' 'gbasename' 'gcat' 'gchcon' 'gchgrp' 'gchmod' 'gchown' 'gchroot' 'gcksum' 'gcomm' 'gcp' 'gcsplit' 'gcut' 'gdate' 'gdd' 'gdf' 'gdir' 'gdircolors' 'gdirname' 'gdu' 'gecho' 'genv' 'gexpand' 'gexpr' 'gfactor' 'gfalse' 'gfmt' 'gfold' 'ggroups' 'ghead' 'ghostid' - 'gid' 'ginstall' 'gjoin' 'gkill' 'glink' 'gln' 'glogname' 'gls' 'gmd5sum' + 'gid' 'gindent' 'ginstall' 'gjoin' 'gkill' 'glink' 'gln' 'glogname' 'gls' 'gmd5sum' 'gmkdir' 'gmkfifo' 'gmknod' 'gmktemp' 'gmv' 'gnice' 'gnl' 'gnohup' 'gnproc' 'god' 'gpaste' 'gpathchk' 'gpinky' 'gpr' 'gprintenv' 'gprintf' 'gptx' 'gpwd' 'greadlink' 'grm' 'grmdir' 'gruncon' 'gseq' 'gsha1sum' 'gsha224sum' @@ -41,7 +41,7 @@ __gnu_utils() { for gcmd in "${gcmds[@]}"; do # Do nothing if the command isn't found (( ${+commands[$gcmd]} )) || continue - + # This method allows for builtin commands to be primary but it's # lost if hash -r or rehash is executed, or if $PATH is updated. # Thus, a preexec hook is needed, which will only run if whoami diff --git a/plugins/gradle/LICENSE b/plugins/gradle/LICENSE new file mode 100644 index 000000000..06edf4af2 --- /dev/null +++ b/plugins/gradle/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2017 Eric Wendelin + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/plugins/gradle/_gradle b/plugins/gradle/_gradle index f8df928b4..ca13fd0b0 100644 --- a/plugins/gradle/_gradle +++ b/plugins/gradle/_gradle @@ -1,28 +1,4 @@ #compdef gradle gradlew gw -# THE LINE ABOVE MUST BE THE FIRST LINE OF THIS FILE IN ORDER FOR COMPLETION TO WORK - -# -# Taken from https://github.com/gradle/gradle-completion -# Copyright (c) 2017 Eric Wendelin -# -# Permission is hereby granted, free of charge, to any person obtaining a copy of -# this software and associated documentation files (the "Software"), to deal in -# the Software without restriction, including without limitation the rights to -# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -# of the Software, and to permit persons to whom the Software is furnished to do -# so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. -# Terms __gradle-set-project-root-dir() { local dir=`pwd` @@ -38,7 +14,7 @@ __gradle-set-project-root-dir() { } __gradle-init-cache-dir() { - cache_dir="$HOME/.gradle/completion" + cache_dir="${GRADLE_USER_HOME:-$HOME/.gradle}/completion" mkdir -p $cache_dir } @@ -98,7 +74,7 @@ __gradle-generate-script-cache() { zle -R "Generating Gradle build script cache" # Cache all Gradle scripts local -a gradle_build_scripts - gradle_build_scripts=( $(find $project_root_dir -type f -name "*.gradle" -o -name "*.gradle.kts" 2>/dev/null | egrep -v "$script_exclude_pattern") ) + gradle_build_scripts=( $(find $project_root_dir -type f -name "*.gradle" -o -name "*.gradle.kts" 2>/dev/null | grep -E -v "$script_exclude_pattern") ) printf "%s\n" "${gradle_build_scripts[@]}" >| $cache_dir/$cache_name fi } @@ -125,7 +101,7 @@ __gradle-generate-tasks-cache() { local gradle_all_tasks="" root_tasks="" subproject_tasks="" output_line local -a match for output_line in ${(f)"$(printf "%s\n" "${gradle_tasks_output[@]}")"}; do - if [[ $output_line =~ ^([[:lower:]][[:alnum:][:punct:]]*)([[:space:]]-[[:space:]]([[:print:]]*))? ]]; then + if [[ $output_line =~ ^([[:alpha:]][[:alnum:][:punct:]]*)([[:space:]]-[[:space:]]([[:print:]]*))? ]]; then local task_name="${match[1]}" local task_description="${match[3]}" # Completion for subproject tasks with ':' prefix diff --git a/plugins/gradle/gradle.plugin.zsh b/plugins/gradle/gradle.plugin.zsh index 5bca364d1..dacc46478 100644 --- a/plugins/gradle/gradle.plugin.zsh +++ b/plugins/gradle/gradle.plugin.zsh @@ -6,7 +6,7 @@ function gradle-or-gradlew() { # taken from https://github.com/gradle/gradle-completion local dir="$PWD" project_root="$PWD" while [[ "$dir" != / ]]; do - if [[ -f "$dir/settings.gradle" || -f "$dir/settings.gradle.kts" || -f "$dir/gradlew" ]]; then + if [[ -x "$dir/gradlew" ]]; then project_root="$dir" break fi diff --git a/plugins/grails/grails.plugin.zsh b/plugins/grails/grails.plugin.zsh index ddc257428..e5dceb530 100644 --- a/plugins/grails/grails.plugin.zsh +++ b/plugins/grails/grails.plugin.zsh @@ -7,7 +7,7 @@ _enumerateGrailsScripts() { then directories+=(plugins/*/scripts) fi - + # Enumerate all of the Groovy files files=() for dir in $directories; @@ -17,13 +17,13 @@ _enumerateGrailsScripts() { files+=($dir/[^_]*.groovy) fi done - + # Don't try to basename () if [ ${#files} -eq 0 ]; then return fi - + scripts=() for file in $files do @@ -42,19 +42,19 @@ _enumerateGrailsScripts() { done echo $scripts } - + _grails() { if (( CURRENT == 2 )); then scripts=( $(_enumerateGrailsScripts) ) - + if [ ${#scripts} -ne 0 ]; then _multi_parts / scripts return fi fi - + _files } - + compdef _grails grails diff --git a/plugins/grc/grc.plugin.zsh b/plugins/grc/grc.plugin.zsh index b709b9e02..55ffc1a1e 100644 --- a/plugins/grc/grc.plugin.zsh +++ b/plugins/grc/grc.plugin.zsh @@ -2,8 +2,10 @@ # common grc.zsh paths files=( - /etc/grc.zsh # default - /usr/local/etc/grc.zsh # homebrew + /etc/grc.zsh # default + /usr/local/etc/grc.zsh # homebrew darwin-x64 + /opt/homebrew/etc/grc.zsh # homebrew darwin-arm64 + /usr/share/grc/grc.zsh # Gentoo Linux (app-misc/grc) ) # verify the file is readable and source it diff --git a/plugins/helm/README.md b/plugins/helm/README.md index 8be024bfb..dcbb30b6c 100644 --- a/plugins/helm/README.md +++ b/plugins/helm/README.md @@ -10,9 +10,10 @@ plugins=(... helm) ## Aliases -| Alias | Full command | -| ----- | ------------ | -| h | helm | -| hin | helm install | -| hse | helm search | -| hup | helm upgrade | +| Alias | Full command | +| ----- | -------------- | +| h | helm | +| hin | helm install | +| hun | helm uninstall | +| hse | helm search | +| hup | helm upgrade | diff --git a/plugins/helm/helm.plugin.zsh b/plugins/helm/helm.plugin.zsh index 7fc05be98..e754a6541 100644 --- a/plugins/helm/helm.plugin.zsh +++ b/plugins/helm/helm.plugin.zsh @@ -14,5 +14,6 @@ fi alias h='helm' alias hin='helm install' +alias hun='helm uninstall' alias hse='helm search' alias hup='helm upgrade' diff --git a/plugins/history-substring-search/README.md b/plugins/history-substring-search/README.md index 6d8b56425..4be744c4c 100644 --- a/plugins/history-substring-search/README.md +++ b/plugins/history-substring-search/README.md @@ -23,7 +23,15 @@ Install Using the [Homebrew]( https://brew.sh ) package manager: brew install zsh-history-substring-search - echo 'source /usr/local/share/zsh-history-substring-search/zsh-history-substring-search.zsh' >> ~/.zshrc + echo 'source $(brew --prefix)/share/zsh-history-substring-search/zsh-history-substring-search.zsh' >> ~/.zshrc + +Using [Fig](https://fig.io): + +Fig adds apps, shortcuts, and autocomplete to your existing terminal. + +Install `zsh-history-substring-search` in just one click. + + Using [Oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh): @@ -33,24 +41,63 @@ Using [Oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh): 2. Activate the plugin in `~/.zshrc`: - plugins=( [plugins...] history-substring-search) + plugins=( [plugins...] zsh-history-substring-search) -3. Source `~/.zshrc` to take changes into account: +3. Run `exec zsh` to take changes into account: - source ~/.zshrc + exec zsh + +Using [zplug](https://github.com/zplug/zplug): + +1. Add this repo to `~/.zshrc`: + + zplug "zsh-users/zsh-history-substring-search", as: plugin + +Using [antigen](https://github.com/zsh-users/antigen): + +1. Add the `antigen bundle` command just before `antigen apply`, like this: + +``` +antigen bundle zsh-users/zsh-history-substring-search +antigen apply +``` + +2. Then, **after** `antigen apply`, add the key binding configurations, like this: + +``` +# zsh-history-substring-search configuration +bindkey '^[[A' history-substring-search-up # or '\eOA' +bindkey '^[[B' history-substring-search-down # or '\eOB' +HISTORY_SUBSTRING_SEARCH_ENSURE_UNIQUE=1 +``` + +Using [Zinit](https://github.com/zdharma-continuum/zinit): + +1. Use the `Oh-my-zsh` Zinit snippet in `~/.zshrc`: + + zinit snippet OMZ::plugins/git/git.plugin.zsh` + +2. Load the plugin in `~/.zshrc`: + + zinit load 'zsh-users/zsh-history-substring-search + zinit ice wait atload'_history_substring_search_config' + +3. Run `exec zsh` to take changes into account: + + exec zsh Usage ------------------------------------------------------------------------------ 1. Load this script into your interactive ZSH session: - % source zsh-history-substring-search.zsh + source zsh-history-substring-search.zsh If you want to use [zsh-syntax-highlighting][6] along with this script, then make sure that you load it *before* you load this script: - % source zsh-syntax-highlighting.zsh - % source zsh-history-substring-search.zsh + source zsh-syntax-highlighting.zsh + source zsh-history-substring-search.zsh 2. Bind keyboard shortcuts to this script's functions. @@ -73,6 +120,10 @@ Usage bindkey "$terminfo[kcuu1]" history-substring-search-up bindkey "$terminfo[kcud1]" history-substring-search-down + Users have also observed that `[OA` and `[OB` are correct values, + _even if_ these were not the observed values. If you are having trouble + with the observed values, give these a try. + You might also want to bind the Control-P/N keys for use in EMACS mode: bindkey -M emacs '^P' history-substring-search-up @@ -115,7 +166,7 @@ Configuration ------------------------------------------------------------------------------ This script defines the following global variables. You may override their -default values only after having loaded this script into your ZSH session. +default values. * `HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND` is a global variable that defines how the query should be highlighted inside a matching command. Its default @@ -141,6 +192,12 @@ default values only after having loaded this script into your ZSH session. value, causes this script to perform a fuzzy search by words, matching in given order e.g. `ab c` will match `*ab*c*` +* `HISTORY_SUBSTRING_SEARCH_PREFIXED` is a global variable that defines how + the command history will be searched for your query. If set to a non-empty + value, your query will be matched against the start of each history entry. + For example, if this variable is empty, `ls` will match `ls -l` and `echo + ls`; if it is non-empty, `ls` will only match `ls -l`. + * `HISTORY_SUBSTRING_SEARCH_ENSURE_UNIQUE` is a global variable that defines whether all search results returned are _unique_. If set to a non-empty value, then only unique search results are presented. This behaviour is off @@ -155,6 +212,9 @@ default values only after having loaded this script into your ZSH session. receive globally unique search results only once, then use this configuration variable, or use `setopt HIST_IGNORE_ALL_DUPS`. +* `HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_TIMEOUT` is a global variable that + defines a timeout in seconds for clearing the search highlight. + History ------------------------------------------------------------------------------ @@ -175,24 +235,17 @@ History * March 2016: Geza Lore (@gezalore) greatly refactored it in pull request #55. ------------------------------------------------------------------------------- -Oh My Zsh Distribution Notes ------------------------------------------------------------------------------- +--- -What you are looking at now is Oh My Zsh's repackaging of zsh-history-substring-search -as an OMZ module inside the Oh My Zsh distribution. +## Oh My Zsh Distribution Notes -The upstream repo, zsh-users/zsh-history-substring-search, can be found on GitHub at +What you are looking at now is Oh My Zsh's repackaging of zsh-history-substring-search as an OMZ module inside +the Oh My Zsh distribution. + +The upstream repo, zsh-users/zsh-history-substring-search, can be found on GitHub at https://github.com/zsh-users/zsh-history-substring-search. -This downstream copy was last updated from the following upstream commit: - - SHA: 0f80b8eb3368b46e5e573c1d91ae69eb095db3fb - Commit date: 2019-05-12 17:35:54 -0700 - -Everything above this section is a copy of the original upstream's README, so things -may differ slightly when you're using this inside OMZ. In particular, you do not -need to set up key bindings for the up and down arrows yourself in `~/.zshrc`; the OMZ -plugin does that for you. You may still want to set up additional emacs- or vi-specific -bindings as mentioned above. - +Everything above this section is a copy of the original upstream's README, so things may differ slightly when +you're using this inside OMZ. In particular, you do not need to set up key bindings for the up and down arrows +yourself in `~/.zshrc`; the OMZ plugin does that for you. You may still want to set up additional emacs- or +vi-specific bindings as mentioned above. diff --git a/plugins/history-substring-search/dependencies/OMZ-README.md b/plugins/history-substring-search/dependencies/OMZ-README.md new file mode 100644 index 000000000..c5967bb7d --- /dev/null +++ b/plugins/history-substring-search/dependencies/OMZ-README.md @@ -0,0 +1,15 @@ + +--- + +## Oh My Zsh Distribution Notes + +What you are looking at now is Oh My Zsh's repackaging of zsh-history-substring-search as an OMZ module inside +the Oh My Zsh distribution. + +The upstream repo, zsh-users/zsh-history-substring-search, can be found on GitHub at +https://github.com/zsh-users/zsh-history-substring-search. + +Everything above this section is a copy of the original upstream's README, so things may differ slightly when +you're using this inside OMZ. In particular, you do not need to set up key bindings for the up and down arrows +yourself in `~/.zshrc`; the OMZ plugin does that for you. You may still want to set up additional emacs- or +vi-specific bindings as mentioned above. diff --git a/plugins/history-substring-search/history-substring-search.zsh b/plugins/history-substring-search/history-substring-search.zsh index c326778d4..471cc9ad1 100644 --- a/plugins/history-substring-search/history-substring-search.zsh +++ b/plugins/history-substring-search/history-substring-search.zsh @@ -43,11 +43,12 @@ # declare global configuration variables #----------------------------------------------------------------------------- -typeset -g HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND='bg=magenta,fg=white,bold' -typeset -g HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND='bg=red,fg=white,bold' -typeset -g HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS='i' -typeset -g HISTORY_SUBSTRING_SEARCH_ENSURE_UNIQUE='' -typeset -g HISTORY_SUBSTRING_SEARCH_FUZZY='' +: ${HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND='bg=magenta,fg=white,bold'} +: ${HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND='bg=red,fg=white,bold'} +: ${HISTORY_SUBSTRING_SEARCH_GLOBBING_FLAGS='i'} +: ${HISTORY_SUBSTRING_SEARCH_ENSURE_UNIQUE=''} +: ${HISTORY_SUBSTRING_SEARCH_FUZZY=''} +: ${HISTORY_SUBSTRING_SEARCH_PREFIXED=''} #----------------------------------------------------------------------------- # declare internal global variables @@ -64,6 +65,7 @@ typeset -g -i _history_substring_search_raw_match_index typeset -g -a _history_substring_search_matches typeset -g -i _history_substring_search_match_index typeset -g -A _history_substring_search_unique_filter +typeset -g -i _history_substring_search_zsh_5_9 #----------------------------------------------------------------------------- # the main ZLE widgets @@ -97,6 +99,11 @@ zle -N history-substring-search-down #----------------------------------------------------------------------------- zmodload -F zsh/parameter +autoload -Uz is-at-least + +if is-at-least 5.9 $ZSH_VERSION; then + _history_substring_search_zsh_5_9=1 +fi # # We have to "override" some keys and widgets if the @@ -117,80 +124,125 @@ if [[ $+functions[_zsh_highlight] -eq 0 ]]; then } # - # The following snippet was taken from the zsh-syntax-highlighting project: + # Check if $1 denotes the name of a callable function, i.e. it is fully + # defined or it is marked for autoloading and autoloading it at the first + # call to it will succeed. In particular, if $1 has been marked for + # autoloading but is not available in $fpath, then it will return 1 (false). # - # https://github.com/zsh-users/zsh-syntax-highlighting/blob/56b134f5d62ae3d4e66c7f52bd0cc2595f9b305b/zsh-syntax-highlighting.zsh#L126-161 + # This is based on the zsh-syntax-highlighting plugin. # - # Copyright (c) 2010-2011 zsh-syntax-highlighting contributors - # All rights reserved. + _history-substring-search-function-callable() { + if (( ${+functions[$1]} )) && ! [[ "$functions[$1]" == *"builtin autoload -X"* ]]; then + return 0 # already fully loaded + else + # "$1" is either an autoload stub, or not a function at all. + # We expect 'autoload +X' to return non-zero if it fails to fully load + # the function. + ( autoload -U +X -- "$1" 2>/dev/null ) + return $? + fi + } + # - # Redistribution and use in source and binary forms, with or without - # modification, are permitted provided that the following conditions are - # met: + # The zsh-syntax-highlighting plugin uses zle-line-pre-redraw hook instead + # of the legacy "bind all widgets" if 1) zsh has the memo= feature (added in + # version 5.9) and 2) add-zle-hook-widget is available. # - # * Redistributions of source code must retain the above copyright - # notice, this list of conditions and the following disclaimer. - # - # * Redistributions in binary form must reproduce the above copyright - # notice, this list of conditions and the following disclaimer in the - # documentation and/or other materials provided with the distribution. - # - # * Neither the name of the zsh-syntax-highlighting contributors nor the - # names of its contributors may be used to endorse or promote products - # derived from this software without specific prior written permission. - # - # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS - # IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, - # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR - # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - # - #--------------8<-------------------8<-------------------8<----------------- - # Rebind all ZLE widgets to make them invoke _zsh_highlights. - _zsh_highlight_bind_widgets() - { - # Load ZSH module zsh/zleparameter, needed to override user defined widgets. - zmodload zsh/zleparameter 2>/dev/null || { - echo 'zsh-syntax-highlighting: failed loading zsh/zleparameter.' >&2 - return 1 + if [[ $_history_substring_search_zsh_5_9 -eq 1 ]] && _history-substring-search-function-callable add-zle-hook-widget; then + # + # The following code is based on the zsh-syntax-highlighting plugin. + # + autoload -U add-zle-hook-widget + + _history-substring-search-zle-line-finish() { + # + # Reset $WIDGET since the 'main' highlighter depends on it. + # + # Since $WIDGET is declared by zle as read-only in this function's scope, + # a nested function is required in order to shadow its built-in value; + # see "User-defined widgets" in zshall. + # + () { + local -h -r WIDGET=zle-line-finish + _zsh_highlight + } } - # Override ZLE widgets to make them invoke _zsh_highlight. - local cur_widget - for cur_widget in ${${(f)"$(builtin zle -la)"}:#(.*|_*|orig-*|run-help|which-command|beep|yank*)}; do - case $widgets[$cur_widget] in + _history-substring-search-zle-line-pre-redraw() { + # + # If the zsh-syntax-highlighting plugin has been loaded (after our plugin + # plugin, otherwise this hook wouldn't be called), remove our hooks. + # + if [[ $+ZSH_HIGHLIGHT_VERSION -eq 1 ]]; then + autoload -U add-zle-hook-widget + add-zle-hook-widget -d zle-line-pre-redraw _history-substring-search-zle-line-pre-redraw + add-zle-hook-widget -d zle-line-finish _history-substring-search-zle-line-finish + return 0 + fi + # + # Set $? to 0 for _zsh_highlight. Without this, subsequent + # zle-line-pre-redraw hooks won't run, since add-zle-hook-widget happens to + # call us with $? == 1 in the common case. + # + true && _zsh_highlight "$@" + } - # Already rebound event: do nothing. - user:$cur_widget|user:_zsh_highlight_widget_*);; + if [[ -o zle ]]; then + add-zle-hook-widget zle-line-pre-redraw _history-substring-search-zle-line-pre-redraw + add-zle-hook-widget zle-line-finish _history-substring-search-zle-line-finish + fi + else + # + # The following snippet was taken from the zsh-syntax-highlighting project: + # https://github.com/zsh-users/zsh-syntax-highlighting/blob/56b134f5d62ae3d4e66c7f52bd0cc2595f9b305b/zsh-syntax-highlighting.zsh#L126-161 + # + # SPDX-SnippetBegin + # SPDX-License-Identifier: BSD-3-Clause + # SPDX-SnippetCopyrightText: 2010-2011 zsh-syntax-highlighting contributors + #--------------8<-------------------8<-------------------8<----------------- + # Rebind all ZLE widgets to make them invoke _zsh_highlights. + _zsh_highlight_bind_widgets() + { + # Load ZSH module zsh/zleparameter, needed to override user defined widgets. + zmodload zsh/zleparameter 2>/dev/null || { + echo 'zsh-syntax-highlighting: failed loading zsh/zleparameter.' >&2 + return 1 + } - # User defined widget: override and rebind old one with prefix "orig-". - user:*) eval "zle -N orig-$cur_widget ${widgets[$cur_widget]#*:}; \ - _zsh_highlight_widget_$cur_widget() { builtin zle orig-$cur_widget -- \"\$@\" && _zsh_highlight }; \ - zle -N $cur_widget _zsh_highlight_widget_$cur_widget";; + # Override ZLE widgets to make them invoke _zsh_highlight. + local cur_widget + for cur_widget in ${${(f)"$(builtin zle -la)"}:#(.*|_*|orig-*|run-help|which-command|beep|yank*)}; do + case $widgets[$cur_widget] in - # Completion widget: override and rebind old one with prefix "orig-". - completion:*) eval "zle -C orig-$cur_widget ${${widgets[$cur_widget]#*:}/:/ }; \ - _zsh_highlight_widget_$cur_widget() { builtin zle orig-$cur_widget -- \"\$@\" && _zsh_highlight }; \ - zle -N $cur_widget _zsh_highlight_widget_$cur_widget";; + # Already rebound event: do nothing. + user:$cur_widget|user:_zsh_highlight_widget_*);; - # Builtin widget: override and make it call the builtin ".widget". - builtin) eval "_zsh_highlight_widget_$cur_widget() { builtin zle .$cur_widget -- \"\$@\" && _zsh_highlight }; \ - zle -N $cur_widget _zsh_highlight_widget_$cur_widget";; + # User defined widget: override and rebind old one with prefix "orig-". + user:*) eval "zle -N orig-$cur_widget ${widgets[$cur_widget]#*:}; \ + _zsh_highlight_widget_$cur_widget() { builtin zle orig-$cur_widget -- \"\$@\" && _zsh_highlight }; \ + zle -N $cur_widget _zsh_highlight_widget_$cur_widget";; - # Default: unhandled case. - *) echo "zsh-syntax-highlighting: unhandled ZLE widget '$cur_widget'" >&2 ;; - esac - done - } - #-------------->8------------------->8------------------->8----------------- + # Completion widget: override and rebind old one with prefix "orig-". + completion:*) eval "zle -C orig-$cur_widget ${${widgets[$cur_widget]#*:}/:/ }; \ + _zsh_highlight_widget_$cur_widget() { builtin zle orig-$cur_widget -- \"\$@\" && _zsh_highlight }; \ + zle -N $cur_widget _zsh_highlight_widget_$cur_widget";; - _zsh_highlight_bind_widgets + # Builtin widget: override and make it call the builtin ".widget". + builtin) eval "_zsh_highlight_widget_$cur_widget() { builtin zle .$cur_widget -- \"\$@\" && _zsh_highlight }; \ + zle -N $cur_widget _zsh_highlight_widget_$cur_widget";; + + # Default: unhandled case. + *) echo "zsh-syntax-highlighting: unhandled ZLE widget '$cur_widget'" >&2 ;; + esac + done + } + #-------------->8------------------->8------------------->8----------------- + # SPDX-SnippetEnd + + _zsh_highlight_bind_widgets + fi + + unfunction _history-substring-search-function-callable fi _history-substring-search-begin() { @@ -243,10 +295,17 @@ _history-substring-search-begin() { fi # - # Escape and join query parts with wildcard character '*' as separator - # `(j:CHAR:)` join array to string with CHAR as separator + # Escape and join query parts with wildcard character '*' as seperator + # `(j:CHAR:)` join array to string with CHAR as seperator # - local search_pattern="*${(j:*:)_history_substring_search_query_parts[@]//(#m)[\][()|\\*?#<>~^]/\\$MATCH}*" + local search_pattern="${(j:*:)_history_substring_search_query_parts[@]//(#m)[\][()|\\*?#<>~^]/\\$MATCH}*" + + # + # Support anchoring history search to the beginning of the command + # + if [[ -z $HISTORY_SUBSTRING_SEARCH_PREFIXED ]]; then + search_pattern="*${search_pattern}" + fi # # Find all occurrences of the search pattern in the history file. @@ -304,12 +363,21 @@ _history-substring-search-begin() { _history-substring-search-end() { setopt localoptions extendedglob + local highlight_memo= _history_substring_search_result=$BUFFER + if [[ $_history_substring_search_zsh_5_9 -eq 1 ]]; then + highlight_memo='memo=history-substring-search' + fi + # the search was successful so display the result properly by clearing away # existing highlights and moving the cursor to the end of the result buffer if [[ $_history_substring_search_refresh_display -eq 1 ]]; then - region_highlight=() + if [[ -n $highlight_memo ]]; then + region_highlight=( "${(@)region_highlight:#*${highlight_memo}*}" ) + else + region_highlight=() + fi CURSOR=${#BUFFER} fi @@ -329,7 +397,9 @@ _history-substring-search-end() { if [[ $query_part_match_index -le ${#BUFFER:$highlight_start_index} ]]; then highlight_start_index=$(( $highlight_start_index + $query_part_match_index )) highlight_end_index=$(( $highlight_start_index + ${#query_part} )) - region_highlight+=("$(($highlight_start_index - 1)) $(($highlight_end_index - 1)) $_history_substring_search_query_highlight") + region_highlight+=( + "$(($highlight_start_index - 1)) $(($highlight_end_index - 1)) ${_history_substring_search_query_highlight}${highlight_memo:+,$highlight_memo}" + ) fi done fi @@ -338,6 +408,23 @@ _history-substring-search-end() { # zle -R "mn: "$_history_substring_search_match_index" m#: "${#_history_substring_search_matches} # read -k -t 200 && zle -U $REPLY + # + # When this function returns, z-sy-h runs its line-pre-redraw hook. It has no + # logic for determining highlight priority, when two different memo= marked + # region highlights overlap; instead, it always prioritises itself. Below is + # a workaround for dealing with it. + # + if [[ $_history_substring_search_zsh_5_9 -eq 1 ]]; then + zle -R + # + # After line redraw with desired highlight, wait for timeout or user input + # before removing search highlight and exiting. This ensures no highlights + # are left lingering after search is finished. + # + read -k -t ${HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_TIMEOUT:-1} && zle -U $REPLY + region_highlight=( "${(@)region_highlight:#*${highlight_memo}*}" ) + fi + # Exit successfully from the history-substring-search-* widgets. return 0 } diff --git a/plugins/history-substring-search/update-from-upstream.zsh b/plugins/history-substring-search/update-from-upstream.zsh deleted file mode 100755 index 81e1942a5..000000000 --- a/plugins/history-substring-search/update-from-upstream.zsh +++ /dev/null @@ -1,129 +0,0 @@ -#!/usr/bin/env zsh -# -# update-from-upstream.zsh -# -# This script updates the Oh My Zsh version of the zsh-history-substring-search -# plugin from the independent upstream repo. This is to be run by OMZ developers -# when they want to pull in new changes from upstream to OMZ. It is not run -# during normal use of the plugin. -# -# The official upstream repo is zsh-users/zsh-history-substring-search -# https://github.com/zsh-users/zsh-history-substring-search -# -# This is a zsh script, not a function. Call it with `zsh update-from-upstream.zsh` -# from the command line, running it from within the plugin directory. -# -# You can set the environment variable REPO_PATH to point it at an upstream -# repo you have already prepared. Otherwise, it will do a clean checkout of -# upstream's HEAD to a temporary local repo and use that. - - -# Just bail on any error so we don't have to do extra checking. -# This is a developer-use script, so terse output like that should -# be fine. -set -e - - -upstream_basename=zsh-history-substring-search -plugin_basename=history-substring-search -UPSTREAM_REPO=zsh-users/$upstream_basename -need_repo_cleanup=false -upstream_github_url="https://github.com/$UPSTREAM_REPO" - -if [[ -z "$UPSTREAM_REPO_PATH" ]]; then - # Do a clean checkout - my_tempdir=$(mktemp -d -t omz-update-histsubstrsrch) - UPSTREAM_REPO_PATH="$my_tempdir/$upstream_basename" - git clone "$upstream_github_url" "$UPSTREAM_REPO_PATH" - need_repo_cleanup=true - print "Checked out upstream repo to $UPSTREAM_REPO_PATH" -else - print "Using existing $upstream_basename repo at $UPSTREAM_REPO_PATH" -fi - -upstream="$UPSTREAM_REPO_PATH" - -# Figure out what we're pulling in -upstream_sha=$(cd $upstream && git rev-parse HEAD) -upstream_commit_date=$(cd $upstream && git log -1 --pretty=format:%ci) -upstream_just_date=${${=upstream_commit_date}[1]} -print "upstream SHA: $upstream_sha" -print "upstream commit time: $upstream_commit_date" -print "upstream commit date: $upstream_just_date" -print - -# Copy the files over, using the OMZ plugin's names where needed -cp -v "$upstream"/* . -mv -v zsh-history-substring-search.zsh $plugin_basename.zsh -mv -v zsh-history-substring-search.plugin.zsh $plugin_basename.plugin.zsh - -if [[ $need_repo_cleanup == true ]]; then - print "Removing temporary repo at $my_tempdir" - rm -rf "$my_tempdir" -fi - -# Do OMZ-specific edits - -print -print "Updating files with OMZ-specific stuff" -print - -# OMZ binds the keys as part of the plugin loading - -cat >> $plugin_basename.plugin.zsh <> README.md < [unit_num]`: display app or unit IP address. - `jreld `: display app and unit relation data. - `jclean`: destroy all controllers +- `jcontroller`: display the controller your are connected to. +- `jmodel`: display the model your are connected to. - `wjst [interval_secs] [args_for_watch]`: watch juju status, with optional interval (default: 5s); you may pass additional arguments to `watch`. diff --git a/plugins/juju/juju.plugin.zsh b/plugins/juju/juju.plugin.zsh index be8a2c7ae..3c159da22 100644 --- a/plugins/juju/juju.plugin.zsh +++ b/plugins/juju/juju.plugin.zsh @@ -98,7 +98,7 @@ jaddr() { elif [[ $# -eq 2 ]]; then # Get unit address juju status "$1/$2" --format=json \ - | jq -r ".applications.\"$1\".units.\"$1/$2\".address" + | jq -r ".applications.\"$1\".units.\"$1/$2\" | .address // .\"public-address\"" else echo "Invalid number of arguments." echo "Usage: jaddr []" @@ -163,10 +163,40 @@ jreld() { juju run "relation-get -r $relid - $2" --unit $2/$3 } +# Return Juju current controller +jcontroller() { + local controller="$(awk '/current-controller/ {print $2}' ~/.local/share/juju/controllers.yaml)" + if [[ -z "$controller" ]]; then + return 1 + fi + + echo $controller + return 0 +} + +# Return Juju current model +jmodel() { + local yqbin="$(whereis yq | awk '{print $2}')" + + if [[ -z "$yqbin" ]]; then + echo "--" + return 1 + fi + + local model="$(yq e ".controllers.$(jcontroller).current-model" < ~/.local/share/juju/models.yaml | cut -d/ -f2)" + + if [[ -z "$model" ]]; then + echo "--" + return 1 + fi + + echo $model + return 0 +} + # Watch juju status, with optional interval (default: 5 sec) wjst() { local interval="${1:-5}" shift $(( $# > 0 )) watch -n "$interval" --color juju status --relations --color "$@" } - diff --git a/plugins/jump/jump.plugin.zsh b/plugins/jump/jump.plugin.zsh index c2da1144e..c2b21e92e 100644 --- a/plugins/jump/jump.plugin.zsh +++ b/plugins/jump/jump.plugin.zsh @@ -8,8 +8,10 @@ # export MARKPATH=$HOME/.marks + jump() { - builtin cd -P "$MARKPATH/$1" 2>/dev/null || {echo "No such mark: $1"; return 1} + local markpath="$(readlink $MARKPATH/$1)" || {echo "No such mark: $1"; return 1} + builtin cd "$markpath" 2>/dev/null || {echo "Destination does not exist for mark [$1]: $markpath"; return 2} } mark() { @@ -35,12 +37,11 @@ marks() { max=${#link:t} fi done - local printf_markname_template="$(printf -- "%%%us " "$max")" + local printf_markname_template="$(printf -- "%%%us" "$max")" for link in $MARKPATH/{,.}*(@N); do - local markname="$fg[cyan]${link:t}$reset_color" + local markname="$fg[cyan]$(printf -- "$printf_markname_template" "${link:t}")$reset_color" local markpath="$fg[blue]$(readlink $link)$reset_color" - printf -- "$printf_markname_template" "$markname" - printf -- "-> %s\n" "$markpath" + printf -- "%s -> %s\n" "$markname" "$markpath" done } diff --git a/plugins/kind/README.md b/plugins/kind/README.md new file mode 100644 index 000000000..49024648d --- /dev/null +++ b/plugins/kind/README.md @@ -0,0 +1,22 @@ +# Kind plugin + +This plugin adds completion for the [Kind](https://kind.sigs.k8s.io/) tool, as well +as a few aliases for easier use. + +To use it, add `kind` to the plugins array in your zshrc file: + +```zsh +plugins=(... kind) +``` + +## Aliases + +| Alias | Command | +| ------- | ---------------------------- | +| `kicc` | `kind create cluster` | +| `kiccn` | `kind create cluster --name` | +| `kigc` | `kind get clusters` | +| `kidc` | `kind delete cluster` | +| `kidcn` | `kind delete cluster --name` | +| `kidca` | `kind delete clusters -A` | +| `kigk` | `kind get kubeconfig` | diff --git a/plugins/kind/kind.plugin.zsh b/plugins/kind/kind.plugin.zsh new file mode 100644 index 000000000..183eb7bd6 --- /dev/null +++ b/plugins/kind/kind.plugin.zsh @@ -0,0 +1,23 @@ +if (( ! $+commands[kind] )); then + return +fi + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `kind`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_kind" ]]; then + typeset -g -A _comps + autoload -Uz _kind + _comps[kind]=_kind +fi + +# Generate and load kind completion +kind completion zsh >! "$ZSH_CACHE_DIR/completions/_kind" &| + +# Register aliases +alias kicc="kind create cluster" +alias kiccn="kind create cluster --name" +alias kigc="kind get clusters" +alias kidc="kind delete cluster" +alias kidcn="kind delete cluster --name" +alias kidca="kind delete clusters -A" +alias kigk="kind get kubeconfig" diff --git a/plugins/kn/kn.plugin.zsh b/plugins/kn/kn.plugin.zsh index f60177dd9..483d1d68c 100644 --- a/plugins/kn/kn.plugin.zsh +++ b/plugins/kn/kn.plugin.zsh @@ -4,5 +4,5 @@ if [ $commands[kn] ]; then source <(kn completion zsh) - compdef _kn kn + compdef _kn kn fi diff --git a/plugins/kube-ps1/README.md b/plugins/kube-ps1/README.md index 1ed3e4438..dd49eff39 100644 --- a/plugins/kube-ps1/README.md +++ b/plugins/kube-ps1/README.md @@ -136,6 +136,7 @@ the following environment variables: | `KUBE_PS1_SUFFIX` | `)` | Prompt closing character | | `KUBE_PS1_CLUSTER_FUNCTION` | No default, must be user supplied | Function to customize how cluster is displayed | | `KUBE_PS1_NAMESPACE_FUNCTION` | No default, must be user supplied | Function to customize how namespace is displayed | +| `KUBE_PS1_KUBECONFIG_SYMLINK` | `false` | Treat `KUBECONFIG` and `~/.kube/config` files as symbolic links | For terminals that do not support UTF-8, the symbol will be replaced with the string `k8s`. diff --git a/plugins/kube-ps1/kube-ps1.plugin.zsh b/plugins/kube-ps1/kube-ps1.plugin.zsh index 894e0f7f0..7edc62de8 100644 --- a/plugins/kube-ps1/kube-ps1.plugin.zsh +++ b/plugins/kube-ps1/kube-ps1.plugin.zsh @@ -40,6 +40,7 @@ KUBE_PS1_NS_COLOR="${KUBE_PS1_NS_COLOR-cyan}" KUBE_PS1_BG_COLOR="${KUBE_PS1_BG_COLOR}" KUBE_PS1_KUBECONFIG_CACHE="${KUBECONFIG}" +KUBE_PS1_KUBECONFIG_SYMLINK="${KUBE_PS1_KUBECONFIG_SYMLINK:-false}" KUBE_PS1_DISABLE_PATH="${HOME}/.kube/kube-ps1/disabled" KUBE_PS1_LAST_TIME=0 KUBE_PS1_CLUSTER_FUNCTION="${KUBE_PS1_CLUSTER_FUNCTION}" @@ -190,14 +191,26 @@ _kube_ps1_file_newer_than() { local file=$1 local check_time=$2 - if [[ "${KUBE_PS1_SHELL}" == "zsh" ]]; then - mtime=$(zstat +mtime "${file}") - elif stat -c "%s" /dev/null &> /dev/null; then - # GNU stat - mtime=$(stat -L -c %Y "${file}") + if [[ "${KUBE_PS1_KUBECONFIG_SYMLINK}" == "true" ]]; then + if [[ "${KUBE_PS1_SHELL}" == "zsh" ]]; then + mtime=$(zstat -L +mtime "${file}") + elif stat -c "%s" /dev/null &> /dev/null; then + # GNU stat + mtime=$(stat -c %Y "${file}") + else + # BSD stat + mtime=$(stat -f %m "$file") + fi else - # BSD stat - mtime=$(stat -L -f %m "$file") + if [[ "${KUBE_PS1_SHELL}" == "zsh" ]]; then + mtime=$(zstat +mtime "${file}") + elif stat -c "%s" /dev/null &> /dev/null; then + # GNU stat + mtime=$(stat -L -c %Y "${file}") + else + # BSD stat + mtime=$(stat -L -f %m "$file") + fi fi [[ "${mtime}" -gt "${check_time}" ]] diff --git a/plugins/kubectl/kubectl.plugin.zsh b/plugins/kubectl/kubectl.plugin.zsh index 315d3ce93..0dd4e691a 100644 --- a/plugins/kubectl/kubectl.plugin.zsh +++ b/plugins/kubectl/kubectl.plugin.zsh @@ -162,6 +162,7 @@ alias kdelsa="kubectl delete sa" # DaemonSet management. alias kgds='kubectl get daemonset' +alias kgdsa='kubectl get daemonset --all-namespaces' alias kgdsw='kgds --watch' alias keds='kubectl edit daemonset' alias kdds='kubectl describe daemonset' diff --git a/plugins/kubectx/README.md b/plugins/kubectx/README.md index 98f1cf032..d924e745c 100644 --- a/plugins/kubectx/README.md +++ b/plugins/kubectx/README.md @@ -17,9 +17,9 @@ One can rename default context name for better readability. _Example_. Add to **.zshrc**: ``` -kubectx_mapping[minikube]="mini" -kubectx_mapping[context_name_from_kubeconfig]="$emoji[wolf_face]" -kubectx_mapping[production_cluster]="%{$fg[yellow]%}prod!%{$reset_color%}" +kubectx_mapping["minikube"]="mini" +kubectx_mapping["context_name_from_kubeconfig"]="$emoji[wolf_face]" +kubectx_mapping["production_cluster"]="%{$fg[yellow]%}prod!%{$reset_color%}" ``` ![staging](stage.png) diff --git a/plugins/kubectx/kubectx.plugin.zsh b/plugins/kubectx/kubectx.plugin.zsh index 6096feeae..a3210facc 100644 --- a/plugins/kubectx/kubectx.plugin.zsh +++ b/plugins/kubectx/kubectx.plugin.zsh @@ -9,5 +9,5 @@ function kubectx_prompt_info() { # use value in associative array if it exists # otherwise fall back to the context name - echo "${kubectx_mapping[$current_ctx]:-${current_ctx:gs/%/%%}}" + echo "${kubectx_mapping[\"$current_ctx\"]:-${current_ctx:gs/%/%%}}" } diff --git a/plugins/lando/README.md b/plugins/lando/README.md index 6daeae4e4..2f881cf3d 100644 --- a/plugins/lando/README.md +++ b/plugins/lando/README.md @@ -8,7 +8,7 @@ To use it, add `lando` to the plugins array in your zshrc file: plugins=(... lando) ``` -## ALIASES: +## Wrapped Commands | Alias | Description | |:----------:|:----------------:| @@ -21,16 +21,34 @@ plugins=(... lando) | `wp` | `lando wp` | | `yarn` | `lando yarn` | +More or different commands can be wrapped by setting the `LANDO_ZSH_WRAPPED_COMMANDS` setting, see [Settings](#settings) below. + ## How It Works: This plugin removes the requirement to type `lando` before a command. It utilizes the lando version of supported commands run within directories with the following criteria: + - The `.lando.yml` file is found in the current directory or any parent directory within `$LANDO_ZSH_SITES_DIRECTORY`. - The current directory is within `$LANDO_ZSH_SITES_DIRECTORY` but is not `$LANDO_ZSH_SITES_DIRECTORY` itself. +- If the command is not a part of the commands available in the lando environment, it will run the command without `lando`. ## Settings: -- `LANDO_ZSH_SITES_DIRECTORY`: The plugin will stop searching through parents for `CONFIG_FILE` once it hits this directory. -- `LANDO_ZSH_CONFIG_FILE`: The plugin will check to see if this provided file exists to check for presence of Lando. +> NOTE: these settings must be set *before* the plugin is loaded, and any changes require a restart of the shell to be applied. + +- `LANDO_ZSH_SITES_DIRECTORY`: The plugin will stop searching through parents for `CONFIG_FILE` once it hits this directory: + ```sh + LANDO_ZSH_SITES_DIRECTORY="$HOME/Code" + ``` + +- `LANDO_ZSH_CONFIG_FILE`: The plugin will check to see if this provided file exists to check for presence of Lando: + ```sh + LANDO_ZSH_CONFIG_FILE=".lando.dev.yml" + ``` + +- `LANDO_ZSH_WRAPPED_COMMANDS`: The list of commands to wrap, as a string of commands separated by whitespace: + ```sh + LANDO_ZSH_WRAPPED_COMMANDS="mysql php composer test artisan" + ``` ## Author: diff --git a/plugins/lando/lando.plugin.zsh b/plugins/lando/lando.plugin.zsh index af53e7e5a..ee796d212 100644 --- a/plugins/lando/lando.plugin.zsh +++ b/plugins/lando/lando.plugin.zsh @@ -1,25 +1,36 @@ # Settings : ${LANDO_ZSH_SITES_DIRECTORY:="$HOME/Sites"} : ${LANDO_ZSH_CONFIG_FILE:=.lando.yml} +: ${LANDO_ZSH_WRAPPED_COMMANDS:=" + artisan + composer + drush + gulp + npm + php + wp + yarn +"} # Enable multiple commands with lando. -function artisan \ - composer \ - drush \ - gulp \ - npm \ - php \ - wp \ - yarn { - if checkForLandoFile; then - lando "$0" "$@" +function ${=LANDO_ZSH_WRAPPED_COMMANDS} { + # If the lando task is available in `lando --help`, then it means: + # + # 1. `lando` is in a project with a `.lando.yml` file. + # 2. The lando task is available for lando, based on the .lando.yml config file. + # + # This has a penalty of about 250ms, so we still want to check if the lando file + # exists before, which is the fast path. If it exists, checking help output is + # still faster than running the command and failing. + if _lando_file_exists && lando --help 2>&1 | command grep -Eq "^ +lando $0 "; then + command lando "$0" "$@" else command "$0" "$@" fi } # Check for the file in the current and parent directories. -checkForLandoFile() { +_lando_file_exists() { # Only bother checking for lando within the Sites directory. if [[ "$PWD/" != "$LANDO_ZSH_SITES_DIRECTORY"/* ]]; then # Not within $LANDO_ZSH_SITES_DIRECTORY @@ -38,4 +49,4 @@ checkForLandoFile() { # Could not find $LANDO_ZSH_CONFIG_FILE in the current directory # or in any of its parents up to $LANDO_ZSH_SITES_DIRECTORY. return 1 -} \ No newline at end of file +} diff --git a/plugins/laravel/README.md b/plugins/laravel/README.md index 95f590191..a831a86b6 100644 --- a/plugins/laravel/README.md +++ b/plugins/laravel/README.md @@ -10,6 +10,7 @@ plugins=(... laravel) |:-:|:-:| | `artisan` | `php artisan` | | `pas` | `php artisan serve` | +| `pats` | `php artisan test` | ## Database diff --git a/plugins/laravel/laravel.plugin.zsh b/plugins/laravel/laravel.plugin.zsh index a8382d3c9..319946f07 100644 --- a/plugins/laravel/laravel.plugin.zsh +++ b/plugins/laravel/laravel.plugin.zsh @@ -4,6 +4,7 @@ alias bob='php artisan bob::build' # Development alias pas='php artisan serve' +alias pats='php artisan test' # Database alias pam='php artisan migrate' diff --git a/plugins/macos/README.md b/plugins/macos/README.md index 1cb9b395d..2c52ec8a7 100644 --- a/plugins/macos/README.md +++ b/plugins/macos/README.md @@ -17,7 +17,7 @@ Original author: [Sorin Ionescu](https://github.com/sorin-ionescu) | `tab` | Open the current directory in a new tab | | `split_tab` | Split the current terminal tab horizontally | | `vsplit_tab` | Split the current terminal tab vertically | -| `ofd` | Open the current directory in a Finder window | +| `ofd` | Open passed directories (or $PWD by default) in Finder | | `pfd` | Return the path of the frontmost Finder window | | `pfs` | Return the current Finder selection | | `cdf` | `cd` to the current Finder directory | diff --git a/plugins/macos/macos.plugin.zsh b/plugins/macos/macos.plugin.zsh index e27d412c8..2702a1901 100644 --- a/plugins/macos/macos.plugin.zsh +++ b/plugins/macos/macos.plugin.zsh @@ -3,8 +3,15 @@ 0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" 0="${${(M)0:#/*}:-$PWD/$0}" -# Open the current directory in a Finder window -alias ofd='open_command $PWD' +# Open in Finder the directories passed as arguments, or the current directory if +# no directories are passed +function ofd { + if (( ! $# )); then + open_command $PWD + else + open_command $@ + fi +} # Show/hide hidden files in the Finder alias showfiles="defaults write com.apple.finder AppleShowAllFiles -bool true && killall Finder" @@ -224,6 +231,8 @@ function quick-look() { } function man-preview() { + [[ $# -eq 0 ]] && >&2 echo "Usage: $0 command1 [command2 ...]" && return 1 + local page for page in "${(@f)"$(man -w $@)"}"; do command mandoc -Tpdf $page | open -f -a Preview diff --git a/plugins/macos/spotify b/plugins/macos/spotify index 491a60686..ae42db425 100644 --- a/plugins/macos/spotify +++ b/plugins/macos/spotify @@ -1,7 +1,7 @@ #!/usr/bin/env bash function spotify() { -# Copyright (c) 2012--2019 Harish Narayanan +# Copyright (c) 2012--2023 Harish Narayanan # # Contains numerous helpful contributions from Jorge Colindres, Thomas # Pritchard, iLan Epstein, Gabriele Bonetti, Sean Heller, Eric Martin @@ -35,6 +35,9 @@ if ! [[ -f "${USER_CONFIG_FILE}" ]]; then fi source "${USER_CONFIG_FILE}"; +# Set the percent change in volume for vol up and vol down +VOL_INCREMENT=10 + showAPIHelp() { echo; echo "Connecting to Spotify's API:"; @@ -43,7 +46,7 @@ showAPIHelp() { echo " find music by name. It is very likely you want this feature!"; echo; echo " To get this to work, you need to sign up (or in) and create an 'Application' at:"; - echo " https://developer.spotify.com/my-applications/#!/applications/create"; + echo " https://developer.spotify.com/dashboard/create"; echo; echo " Once you've created an application, find the 'Client ID' and 'Client Secret'"; echo " values, and enter them into your shpotify config file at '${USER_CONFIG_FILE}'"; @@ -170,12 +173,12 @@ while [ $# -gt 0 ]; do if [ -z "${CLIENT_ID}" ]; then cecho "Invalid Client ID, please update ${USER_CONFIG_FILE}"; showAPIHelp; - return 1 + return 1; fi if [ -z "${CLIENT_SECRET}" ]; then cecho "Invalid Client Secret, please update ${USER_CONFIG_FILE}"; showAPIHelp; - return 1 + return 1; fi SHPOTIFY_CREDENTIALS=$(printf "${CLIENT_ID}:${CLIENT_SECRET}" | base64 | tr -d "\n"|tr -d '\r'); SPOTIFY_PLAY_URI=""; @@ -198,7 +201,7 @@ while [ $# -gt 0 ]; do fi SPOTIFY_ACCESS_TOKEN=$( \ printf "${SPOTIFY_TOKEN_RESPONSE_DATA}" \ - | grep -E -o '"access_token":".*",' \ + | command grep -E -o '"access_token":".*",' \ | sed 's/"access_token"://g' \ | sed 's/"//g' \ | sed 's/,.*//g' \ @@ -219,9 +222,8 @@ while [ $# -gt 0 ]; do -H "Accept: application/json" \ --data-urlencode "q=$Q" \ -d "type=$type&limit=1&offset=0" \ - | grep -E -o "spotify:$type:[a-zA-Z0-9]+" -m 1 + | command grep -E -o "spotify:$type:[a-zA-Z0-9]+" -m 1 ) - echo "play uri: ${SPOTIFY_PLAY_URI}" } case $2 in @@ -235,11 +237,11 @@ while [ $# -gt 0 ]; do results=$( \ curl -s -G $SPOTIFY_SEARCH_API --data-urlencode "q=$Q" -d "type=playlist&limit=10&offset=0" -H "Accept: application/json" -H "Authorization: Bearer ${SPOTIFY_ACCESS_TOKEN}" \ - | grep -E -o "spotify:playlist:[a-zA-Z0-9]+" -m 10 \ + | command grep -E -o "spotify:playlist:[a-zA-Z0-9]+" -m 10 \ ) count=$( \ - echo "$results" | grep -c "spotify:playlist" \ + echo "$results" | command grep -c "spotify:playlist" \ ) if [ "$count" -gt 0 ]; then @@ -333,16 +335,16 @@ while [ $# -gt 0 ]; do cecho "Current Spotify volume level is $vol."; break ; elif [ "$2" = "up" ]; then - if [ $vol -le 90 ]; then - newvol=$(( vol+10 )); + if [ $vol -le $(( 100-$VOL_INCREMENT )) ]; then + newvol=$(( vol+$VOL_INCREMENT )); cecho "Increasing Spotify volume to $newvol."; else newvol=100; cecho "Spotify volume level is at max."; fi elif [ "$2" = "down" ]; then - if [ $vol -ge 10 ]; then - newvol=$(( vol-10 )); + if [ $vol -ge $(( $VOL_INCREMENT )) ]; then + newvol=$(( vol-$VOL_INCREMENT )); cecho "Reducing Spotify volume to $newvol."; else newvol=0; @@ -354,11 +356,11 @@ while [ $# -gt 0 ]; do else echo "Improper use of 'vol' command" echo "The 'vol' command should be used as follows:" - echo " vol up # Increases the volume by 10%."; - echo " vol down # Decreases the volume by 10%."; + echo " vol up # Increases the volume by $VOL_INCREMENT%."; + echo " vol down # Decreases the volume by $VOL_INCREMENT%."; echo " vol [amount] # Sets the volume to an amount between 0 and 100."; echo " vol # Shows the current Spotify volume."; - return 1 + return 1; fi osascript -e "tell application \"Spotify\" to set sound volume to $newvol"; @@ -468,10 +470,9 @@ while [ $# -gt 0 ]; do "help" ) showHelp; break ;; - * ) showHelp; - return 1 ;; + return 1; esac done diff --git a/plugins/macports/_port b/plugins/macports/_port index 897598a46..f40f6550b 100644 --- a/plugins/macports/_port +++ b/plugins/macports/_port @@ -1,6 +1,6 @@ #compdef port -local subcmds +local subcmds # we cache the list of ports # we shall use some cache policy to avoid problems with new ports @@ -31,8 +31,8 @@ subcmds=( 'file' 'help' 'info' -'install' -'installed' +'install' +'installed' 'list' 'livecheck' 'location' @@ -51,7 +51,7 @@ subcmds=( 'test' 'unarchive' 'uninstall' -'upgrade' +'upgrade' 'variants' 'version' ) diff --git a/plugins/marked2/README.md b/plugins/marked2/README.md index 101343abb..2f825bc4a 100644 --- a/plugins/marked2/README.md +++ b/plugins/marked2/README.md @@ -1,6 +1,6 @@ ## marked2 -Plugin for Marked 2, a previewer for Markdown files on Mac OS X +Plugin for Marked 2, a previewer for Markdown files on Mac OS X ### Requirements diff --git a/plugins/marktext/README.md b/plugins/marktext/README.md index 71d287451..254e4e7ac 100644 --- a/plugins/marktext/README.md +++ b/plugins/marktext/README.md @@ -1,6 +1,6 @@ ## marktext -Plugin for MarkText, a previewer for Markdown files on Mac OS X +Plugin for MarkText, a previewer for Markdown files on Mac OS X ### Requirements diff --git a/plugins/minikube/minikube.plugin.zsh b/plugins/minikube/minikube.plugin.zsh index e87abceaf..0d2737052 100644 --- a/plugins/minikube/minikube.plugin.zsh +++ b/plugins/minikube/minikube.plugin.zsh @@ -1,13 +1,13 @@ -# Autocompletion for Minikube. -# -if (( $+commands[minikube] )); then - __MINIKUBE_COMPLETION_FILE="${ZSH_CACHE_DIR}/minikube_completion" - - if [[ ! -f $__MINIKUBE_COMPLETION_FILE ]]; then - minikube completion zsh >! $__MINIKUBE_COMPLETION_FILE - fi - - [[ -f $__MINIKUBE_COMPLETION_FILE ]] && source $__MINIKUBE_COMPLETION_FILE - - unset __MINIKUBE_COMPLETION_FILE +if (( ! $+commands[minikube] )); then + return fi + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `minikube`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_minikube" ]]; then + typeset -g -A _comps + autoload -Uz _minikube + _comps[minikube]=_minikube +fi + +minikube completion zsh >| "$ZSH_CACHE_DIR/completions/_minikube" &| diff --git a/plugins/mise/README.md b/plugins/mise/README.md new file mode 100644 index 000000000..8ec05aab9 --- /dev/null +++ b/plugins/mise/README.md @@ -0,0 +1,32 @@ +# mise + +Adds integration with [mise](https://github.com/jdx/mise) (formerly `rtx`), a runtime executor compatible with +npm, nodenv, pyenv, etc. mise is written in rust and is very fast. 20x-200x faster than asdf. With that being +said, mise is compatible with asdf plugins and .tool-versions files. It can be used as a drop-in replacement. + +## Installation + +1. [Download & install mise](https://github.com/jdx/mise#installation) by running the following: + +```bash +curl https://mise.jdx.dev/install.sh | sh +``` + +2. [Enable mise](https://github.com/jdx/mise#quickstart) by adding it to your `plugins` definition in + `~/.zshrc`. + +```bash +plugins=(mise) +``` + +## Usage + +See the [mise readme](https://github.com/jdx/mise#table-of-contents) for information on how to use mise. Here +are a few examples: + +```bash +mise install node Install the current version specified in .tool-versions/.mise.toml +mise use -g node@system Use system node as global default +mise install node@20.0.0 Install a specific version number +mise use -g node@20 Use node-20.x as global default +``` diff --git a/plugins/mise/mise.plugin.zsh b/plugins/mise/mise.plugin.zsh new file mode 100644 index 000000000..357174d91 --- /dev/null +++ b/plugins/mise/mise.plugin.zsh @@ -0,0 +1,26 @@ +# TODO: 2024-01-03 remove rtx support +local __mise=mise +if (( ! $+commands[mise] )); then + if (( $+commands[rtx] )); then + __mise=rtx + else + return + fi +fi + +# Load mise hooks +eval "$($__mise activate zsh)" + +# Hook mise into current environment +eval "$($__mise hook-env -s zsh)" + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `mise`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_$__mise" ]]; then + typeset -g -A _comps + autoload -Uz _$__mise + _comps[$__mise]=_$__mise +fi + +# Generate and load mise completion +$__mise completion zsh >| "$ZSH_CACHE_DIR/completions/_$__mise" &| diff --git a/plugins/mongo-atlas/README.md b/plugins/mongo-atlas/README.md index ef1b5e0d2..94183c544 100644 --- a/plugins/mongo-atlas/README.md +++ b/plugins/mongo-atlas/README.md @@ -1,6 +1,6 @@ # MongoDB Atlas plugin -This plugin adds completion for [Atlas](https://www.mongodb.com/docs/atlas/cli/stable/) a command line interface built specifically for +This plugin adds completion for [Atlas](https://www.mongodb.com/docs/atlas/cli/stable/) a command line interface built specifically for MongoDB Atlas. To use it, add `mongo-atlas` to the plugins array in your zshrc file: diff --git a/plugins/mvn/README.md b/plugins/mvn/README.md index 815dfd57c..4181fedc5 100644 --- a/plugins/mvn/README.md +++ b/plugins/mvn/README.md @@ -33,7 +33,7 @@ if it's found, or the mvn command otherwise. | `mvnct` | `mvn clean test` | | `mvncv` | `mvn clean verify` | | `mvncvst` | `mvn clean verify -DskipTests` | -| `mvnd` | `mvn deploy` | +| `mvndp` | `mvn deploy` | | `mvndocs` | `mvn dependency:resolve -Dclassifier=javadoc` | | `mvndt` | `mvn dependency:tree` | | `mvne` | `mvn eclipse:eclipse` | diff --git a/plugins/mvn/mvn.plugin.zsh b/plugins/mvn/mvn.plugin.zsh index da51f74df..a569a87fa 100644 --- a/plugins/mvn/mvn.plugin.zsh +++ b/plugins/mvn/mvn.plugin.zsh @@ -62,7 +62,7 @@ alias mvncp='mvn clean package' alias mvnct='mvn clean test' alias mvncv='mvn clean verify' alias mvncvst='mvn clean verify -DskipTests' -alias mvnd='mvn deploy' +alias mvndp='mvn deploy' alias mvndocs='mvn dependency:resolve -Dclassifier=javadoc' alias mvndt='mvn dependency:tree' alias mvne='mvn eclipse:eclipse' diff --git a/plugins/n98-magerun/n98-magerun.plugin.zsh b/plugins/n98-magerun/n98-magerun.plugin.zsh index d79aee7eb..2744ad96e 100644 --- a/plugins/n98-magerun/n98-magerun.plugin.zsh +++ b/plugins/n98-magerun/n98-magerun.plugin.zsh @@ -1,6 +1,6 @@ # ------------------------------------------------------------------------------ # FILE: n98-magerun.plugin.zsh -# DESCRIPTION: oh-my-zsh n98-magerun plugin file. Adapted from composer plugin +# DESCRIPTION: oh-my-zsh n98-magerun plugin file. Adapted from composer plugin # AUTHOR: Andrew Dwyer (andrewrdwyer at gmail dot com) # AUTHOR: Jisse Reitsma (jisse at yireo dot com) # VERSION: 1.1.0 diff --git a/plugins/nmap/nmap.plugin.zsh b/plugins/nmap/nmap.plugin.zsh index 406870f00..f649dafc2 100644 --- a/plugins/nmap/nmap.plugin.zsh +++ b/plugins/nmap/nmap.plugin.zsh @@ -27,6 +27,6 @@ alias nmap_detect_versions="sudo nmap -sV -p1-65535 -O --osscan-guess -T4 -Pn" alias nmap_check_for_vulns="nmap --script=vuln" alias nmap_full_udp="sudo nmap -sS -sU -T4 -A -v -PE -PS22,25,80 -PA21,23,80,443,3389 " alias nmap_traceroute="sudo nmap -sP -PE -PS22,25,80 -PA21,23,80,3389 -PU -PO --traceroute " -alias nmap_full_with_scripts="sudo nmap -sS -sU -T4 -A -v -PE -PP -PS21,22,23,25,80,113,31339 -PA80,113,443,10042 -PO --script all " +alias nmap_full_with_scripts="sudo nmap -sS -sU -T4 -A -v -PE -PP -PS21,22,23,25,80,113,31339 -PA80,113,443,10042 -PO --script all " alias nmap_web_safe_osscan="sudo nmap -p 80,443 -O -v --osscan-guess --fuzzy " alias nmap_ping_scan="nmap -n -sP" diff --git a/plugins/nomad/_nomad b/plugins/nomad/_nomad index 1c935a02e..87f80aa84 100644 --- a/plugins/nomad/_nomad +++ b/plugins/nomad/_nomad @@ -89,7 +89,7 @@ __plan() { '-address=[(addr) The address of the Nomad server. Overrides the NOMAD_ADDR environment variable if set. Default = http://127.0.0.1:4646]' \ '-region=[(region) The region of the Nomad servers to forward commands to. Overrides the NOMAD_REGION environment variable if set. Defaults to the Agent s local region.]' \ '-no-color[Disables colored command output.]' \ - '-diff[Determines whether the diff between the remote job and planned job is shown. Defaults to true.]' + '-diff[Determines whether the diff between the remote job and planned job is shown. Defaults to true.]' } __run() { @@ -97,7 +97,7 @@ __run() { '-address=[(addr) The address of the Nomad server. Overrides the NOMAD_ADDR environment variable if set. Default = http://127.0.0.1:4646]' \ '-region=[(region) The region of the Nomad servers to forward commands to. Overrides the NOMAD_REGION environment variable if set. Defaults to the Agent s local region.]' \ '-no-color[Disables colored command output.]' \ - '-check-index[If set, the job is only registered or updated if the the passed job modify index matches the server side version. If a check-index value of zero is passed, the job is only registered if it does not yet exist. If a non-zero value is passed, it ensures that the job is being updated from a known state. The use of this flag is most common in conjunction with plan command.]' \ + '-check-index[If set, the job is only registered or updated if the passed job modify index matches the server side version. If a check-index value of zero is passed, the job is only registered if it does not yet exist. If a non-zero value is passed, it ensures that the job is being updated from a known state. The use of this flag is most common in conjunction with plan command.]' \ '-detach[Return immediately instead of entering monitor mode. After job submission, the evaluation ID will be printed to the screen, which can be used to examine the evaluation using the eval-status command.]' \ '-output[Output the JSON that would be submitted to the HTTP API without submitting the job.]' \ '-verbose[Show full information.]' diff --git a/plugins/npm/README.md b/plugins/npm/README.md index 8eafc6d61..7848a1290 100644 --- a/plugins/npm/README.md +++ b/plugins/npm/README.md @@ -29,6 +29,8 @@ plugins=(... npm) | `npmI` | `npm init` | Run npm init | | `npmi` | `npm info` | Run npm info | | `npmSe` | `npm search` | Run npm search | +| `npmrd` | `npm run dev` | Run npm run dev | +| `npmrb` | `npm run build` | Run npm run build | ## `npm install` / `npm uninstall` toggle diff --git a/plugins/npm/npm.plugin.zsh b/plugins/npm/npm.plugin.zsh index e0dcbf142..c333f76ed 100644 --- a/plugins/npm/npm.plugin.zsh +++ b/plugins/npm/npm.plugin.zsh @@ -58,7 +58,7 @@ alias npmt="npm test" # Run npm scripts alias npmR="npm run" -# Run npm publish +# Run npm publish alias npmP="npm publish" # Run npm init @@ -70,6 +70,12 @@ alias npmi="npm info" # Run npm search alias npmSe="npm search" +# Run npm run dev +alias npmrd="npm run dev" + +# Run npm run build +alias npmrb="npm run build" + npm_toggle_install_uninstall() { # Look up to the previous 2 history commands local line diff --git a/plugins/nvm/README.md b/plugins/nvm/README.md index d3fd980be..e88ce0158 100644 --- a/plugins/nvm/README.md +++ b/plugins/nvm/README.md @@ -26,7 +26,7 @@ These settings should go in your zshrc file, before Oh My Zsh is sourced: #### Lazy startup This option will help you to defer nvm's load until you use it to speed-up your zsh startup. This will source -nvm script only when using it, and will create a function for `node`, `npm`, `pnpm`, `yarn`, and the +nvm script only when using it, and will create a function for `node`, `npm`, `npx`, `pnpm`, `yarn`, and the command(s) specified by `lazy-cmd` option, so when you call either of them, nvm will be loaded and run with default version. To enable it, you can add this snippet to your zshrc, before Oh My Zsh is sourced: @@ -43,18 +43,15 @@ zstyle ':omz:plugins:nvm' lazy-cmd eslint prettier typescript ... #### `.nvmrc` autoload +Note: _if used at the same time as `lazy`, `autoload` will start working only after nvm has been lazy-loaded_ + If set, the plugin will automatically load a node version when if finds a [`.nvmrc` file](https://github.com/nvm-sh/nvm#nvmrc) in the current working directory indicating which node version to load. This can be done, similar as previous options, adding: ```zsh zstyle ':omz:plugins:nvm' autoload yes -``` - -To remove the output generated by NVM when autoloading, you can set the following option: - -```zsh -zstyle ':omz:plugins:nvm' silent-autoload yes +zstyle ':omz:plugins:nvm' silent-autoload yes # optionally remove the output generated by NVM when autoloading ``` Note: _this will not remove regular `nvm` output_ diff --git a/plugins/nvm/_nvm b/plugins/nvm/_nvm deleted file mode 100644 index e292a8d8c..000000000 --- a/plugins/nvm/_nvm +++ /dev/null @@ -1,34 +0,0 @@ -#compdef nvm -#autoload - -[[ -f "$NVM_DIR/nvm.sh" ]] || return 0 - -local -a _1st_arguments -_1st_arguments=( - 'help:show help' - '--version:print out the latest released version of nvm' - 'install:download and install a version in ' - 'install-latest-npm:download and install the latest npm version' - 'uninstall:uninstall a version' - 'use:modify PATH to use . Uses .nvmrc if available' - 'exec:run on . Uses .nvmrc if available' - 'run:run `node` on with as arguments. Uses .nvmrc if available' - 'current:list installed versions' - 'ls:list installed versions or versions matching a given description' - 'version:resolve the given description to a single local version' - 'version-remote:resolve the given description to a single remote version' - 'ls-remote:list remote versions available for install' - 'deactivate:undo effects of `nvm` on current shell' - 'alias:show or set aliases' - 'unalias:deletes an alias' - 'reinstall-packages:reinstall global `npm` packages contained in to current version' - 'unload:unload `nvm` from shell' - 'which:display path to installed node version. Uses .nvmrc if available' -) - -_arguments -C '*:: :->subcmds' && return 0 - -if (( CURRENT == 1 )); then - _describe -t commands "nvm subcommand" _1st_arguments - return -fi diff --git a/plugins/nvm/nvm.plugin.zsh b/plugins/nvm/nvm.plugin.zsh index 20697d67d..c2e8de94b 100644 --- a/plugins/nvm/nvm.plugin.zsh +++ b/plugins/nvm/nvm.plugin.zsh @@ -1,3 +1,7 @@ +# Don't try to load nvm if command already available +# Note: nvm is a function so we need to use `which` +which nvm &>/dev/null && return + # See https://github.com/nvm-sh/nvm#installation-and-update if [[ -z "$NVM_DIR" ]]; then if [[ -d "$HOME/.nvm" ]]; then @@ -12,57 +16,35 @@ if [[ -z "$NVM_DIR" ]]; then fi fi -# Don't try to load nvm if command already available -# Note: nvm is a function so we need to use `which` -which nvm &>/dev/null && return - -# TODO: 2022-11-11: Remove soft-deprecate options -if (( ${+NVM_LAZY} + ${+NVM_LAZY_CMD} + ${+NVM_AUTOLOAD} )); then - # Get list of NVM_* variable settings defined - local -a used_vars - used_vars=(${(o)parameters[(I)NVM_(AUTOLOAD|LAZY|LAZY_CMD)]}) - # Nicely print the list in the style `var1, var2 and var3` - echo "${fg[yellow]}[nvm plugin] Variable-style settings are deprecated. Instead of ${(j:, :)used_vars[1,-2]}${used_vars[-2]+ and }${used_vars[-1]}, use:\n" - if (( $+NVM_AUTOLOAD )); then - echo " zstyle ':omz:plugins:nvm' autoload yes" - zstyle ':omz:plugins:nvm' autoload yes - fi - if (( $+NVM_LAZY )); then - echo " zstyle ':omz:plugins:nvm' lazy yes" - zstyle ':omz:plugins:nvm' lazy yes - fi - if (( $+NVM_LAZY_CMD )); then - echo " zstyle ':omz:plugins:nvm' lazy-cmd $NVM_LAZY_CMD" - zstyle ':omz:plugins:nvm' lazy-cmd $NVM_LAZY_CMD - fi - echo "$reset_color" - unset used_vars NVM_AUTOLOAD NVM_LAZY NVM_LAZY_CMD -fi - -if zstyle -t ':omz:plugins:nvm' lazy; then - # Call nvm when first using nvm, node, npm, pnpm, yarn or other commands in lazy-cmd - zstyle -a ':omz:plugins:nvm' lazy-cmd nvm_lazy_cmd - eval " - function nvm node npm pnpm yarn $nvm_lazy_cmd { - unfunction nvm node npm pnpm yarn $nvm_lazy_cmd - # Load nvm if it exists in \$NVM_DIR - [[ -f \"\$NVM_DIR/nvm.sh\" ]] && source \"\$NVM_DIR/nvm.sh\" - \"\$0\" \"\$@\" - } - " - unset nvm_lazy_cmd -elif [[ -f "$NVM_DIR/nvm.sh" ]]; then - # Load nvm if it exists in $NVM_DIR - source "$NVM_DIR/nvm.sh" -else +if [[ -z "$NVM_DIR" ]] || [[ ! -f "$NVM_DIR/nvm.sh" ]]; then return fi -# Autoload nvm when finding a .nvmrc file in the current directory -# Adapted from: https://github.com/nvm-sh/nvm#zsh -if zstyle -t ':omz:plugins:nvm' autoload; then +function _omz_load_nvm_completion { + local _nvm_completion + # Load nvm bash completion + for _nvm_completion in "$NVM_DIR/bash_completion" "$NVM_HOMEBREW/etc/bash_completion.d/nvm"; do + if [[ -f "$_nvm_completion" ]]; then + # Load bashcompinit + autoload -U +X bashcompinit && bashcompinit + # Bypass compinit call in nvm bash completion script. See: + # https://github.com/nvm-sh/nvm/blob/4436638/bash_completion#L86-L93 + ZSH_VERSION= source "$_nvm_completion" + break + fi + done + unfunction _omz_load_nvm_completion +} + +function _omz_setup_autoload { + if ! zstyle -t ':omz:plugins:nvm' autoload; then + unfunction _omz_setup_autoload + return + fi + + # Autoload nvm when finding a .nvmrc file in the current directory + # Adapted from: https://github.com/nvm-sh/nvm#zsh function load-nvmrc { - local node_version="$(nvm version)" local nvmrc_path="$(nvm_find_nvmrc)" local nvm_silent="" zstyle -t ':omz:plugins:nvm' silent-autoload && nvm_silent="--silent" @@ -75,10 +57,8 @@ if zstyle -t ':omz:plugins:nvm' autoload; then elif [[ "$nvmrc_node_version" != "$node_version" ]]; then nvm use $nvm_silent fi - elif [[ "$node_version" != "$(nvm version default)" ]]; then - if [[ -z $nvm_silent ]]; then - echo "Reverting to nvm default version" - fi + elif [[ -n "$(PWD=$OLDPWD nvm_find_nvmrc)" ]] && [[ "$(nvm version)" != "$(nvm version default)" ]]; then + [[ -z $nvm_silent ]] && echo "Reverting to nvm default version" nvm use default $nvm_silent fi @@ -88,18 +68,30 @@ if zstyle -t ':omz:plugins:nvm' autoload; then add-zsh-hook chpwd load-nvmrc load-nvmrc + unfunction _omz_setup_autoload +} + +if zstyle -t ':omz:plugins:nvm' lazy; then + # Call nvm when first using nvm, node, npm, pnpm, yarn or other commands in lazy-cmd + zstyle -a ':omz:plugins:nvm' lazy-cmd nvm_lazy_cmd + nvm_lazy_cmd=(nvm node npm npx pnpm yarn $nvm_lazy_cmd) # default values + eval " + function $nvm_lazy_cmd { + for func in $nvm_lazy_cmd; do + if (( \$+functions[\$func] )); then + unfunction \$func + fi + done + # Load nvm if it exists in \$NVM_DIR + [[ -f \"\$NVM_DIR/nvm.sh\" ]] && source \"\$NVM_DIR/nvm.sh\" + _omz_load_nvm_completion + _omz_setup_autoload + \"\$0\" \"\$@\" + } + " + unset nvm_lazy_cmd +else + source "$NVM_DIR/nvm.sh" + _omz_load_nvm_completion + _omz_setup_autoload fi - -# Load nvm bash completion -for nvm_completion in "$NVM_DIR/bash_completion" "$NVM_HOMEBREW/etc/bash_completion.d/nvm"; do - if [[ -f "$nvm_completion" ]]; then - # Load bashcompinit - autoload -U +X bashcompinit && bashcompinit - # Bypass compinit call in nvm bash completion script. See: - # https://github.com/nvm-sh/nvm/blob/4436638/bash_completion#L86-L93 - ZSH_VERSION= source "$nvm_completion" - break - fi -done - -unset NVM_HOMEBREW nvm_completion diff --git a/plugins/otp/README.md b/plugins/otp/README.md index 8331fd02b..52ad9525b 100644 --- a/plugins/otp/README.md +++ b/plugins/otp/README.md @@ -16,7 +16,7 @@ Provided aliases: email address). Then the OTP key needs to be pasted, followed by a CTRL+D character inserted on an empty line. -- `ot`: generates a MFA code based on the given key and copies it to the clipboard +- `ot`: generates a MFA code based on the given key and copies it to the clipboard (on Linux it relies on xsel, on MacOS X it uses pbcopy instead). The plugin uses `$HOME/.otp` to store its internal files. diff --git a/plugins/per-directory-history/README.md b/plugins/per-directory-history/README.md index 69854aa38..11150b059 100644 --- a/plugins/per-directory-history/README.md +++ b/plugins/per-directory-history/README.md @@ -34,6 +34,8 @@ toggle set the `PER_DIRECTORY_HISTORY_TOGGLE` environment variable. and global histories. * `PER_DIRECTORY_HISTORY_TOGGLE` is the key binding used to run the toggle-history function above (default `^G`) +* `PER_DIRECTORY_HISTORY_PRINT_MODE_CHANGE` is a variable which toggles whether + the current mode is printed to the screen following a mode change (default `true`) ## History diff --git a/plugins/per-directory-history/per-directory-history.zsh b/plugins/per-directory-history/per-directory-history.zsh index 7cd673cdb..926373ae0 100644 --- a/plugins/per-directory-history/per-directory-history.zsh +++ b/plugins/per-directory-history/per-directory-history.zsh @@ -21,7 +21,7 @@ #------------------------------------------------------------------------------- # # The idea/inspiration for a per directory history is from Stewart MacArthur[1] -# and Dieter[2], the implementation idea is from Bart Schaefer on the the zsh +# and Dieter[2], the implementation idea is from Bart Schaefer on the zsh # mailing list[3]. The implementation is by Jim Hester in September 2012. # # [1]: http://www.compbiome.com/2010/07/bash-per-directory-bash-history.html @@ -59,6 +59,7 @@ [[ -z $HISTORY_BASE ]] && HISTORY_BASE="$HOME/.directory_history" [[ -z $HISTORY_START_WITH_GLOBAL ]] && HISTORY_START_WITH_GLOBAL=false [[ -z $PER_DIRECTORY_HISTORY_TOGGLE ]] && PER_DIRECTORY_HISTORY_TOGGLE='^G' +[[ -z $PER_DIRECTORY_HISTORY_PRINT_MODE_CHANGE ]] && PER_DIRECTORY_HISTORY_PRINT_MODE_CHANGE=true #------------------------------------------------------------------------------- # toggle global/directory history used for searching - ctrl-G by default @@ -68,19 +69,22 @@ function per-directory-history-toggle-history() { if [[ $_per_directory_history_is_global == true ]]; then _per-directory-history-set-directory-history _per_directory_history_is_global=false - print -n "\nusing local history" + if [[ $PER_DIRECTORY_HISTORY_PRINT_MODE_CHANGE == true ]]; then + zle -M "using local history" + fi else _per-directory-history-set-global-history _per_directory_history_is_global=true - print -n "\nusing global history" + if [[ $PER_DIRECTORY_HISTORY_PRINT_MODE_CHANGE == true ]]; then + zle -M "using global history" + fi fi - zle .push-line - zle .accept-line } autoload per-directory-history-toggle-history zle -N per-directory-history-toggle-history bindkey $PER_DIRECTORY_HISTORY_TOGGLE per-directory-history-toggle-history +bindkey -M vicmd $PER_DIRECTORY_HISTORY_TOGGLE per-directory-history-toggle-history #------------------------------------------------------------------------------- # implementation details diff --git a/plugins/pipenv/README.md b/plugins/pipenv/README.md index ab1c1e442..e78ef0e3b 100644 --- a/plugins/pipenv/README.md +++ b/plugins/pipenv/README.md @@ -1,6 +1,7 @@ # Pipenv ## Installation + In your `.zshrc` file, add `pipenv` to the plugins section ``` @@ -8,7 +9,9 @@ plugins=(... pipenv ...) ``` ## Features -This plugin provides some features to simplify the use of Pipenv while working on ZSH. + +This plugin provides some features to simplify the use of Pipenv while working on ZSH. + - Adds completion for pipenv - Auto activates and deactivates pipenv shell - Adds short aliases for common pipenv commands @@ -23,6 +26,17 @@ This plugin provides some features to simplify the use of Pipenv while working o - `psh` is aliased to `pipenv shell` - `psy` is aliased to `pipenv sync` - `pu` is aliased to `pipenv uninstall` + - `pupd` is aliased to `pipenv update` - `pwh` is aliased to `pipenv --where` - `pvenv` is aliased to `pipenv --venv` - `ppy` is aliased to `pipenv --py` + +## Configuration + +### Shell activation + +If you want to disable the shell activation and deactivation feature, add the following style to your `.zshrc` before sourcing `oh-my-zsh.sh`: + +```zsh +zstyle ':omz:plugins:pipenv' auto-shell no +``` diff --git a/plugins/pipenv/pipenv.plugin.zsh b/plugins/pipenv/pipenv.plugin.zsh index 244bd6b7c..f81c266a4 100644 --- a/plugins/pipenv/pipenv.plugin.zsh +++ b/plugins/pipenv/pipenv.plugin.zsh @@ -12,28 +12,30 @@ fi _PIPENV_COMPLETE=zsh_source pipenv >| "$ZSH_CACHE_DIR/completions/_pipenv" &| -# Automatic pipenv shell activation/deactivation -_togglePipenvShell() { - # deactivate shell if Pipfile doesn't exist and not in a subdir - if [[ ! -f "$PWD/Pipfile" ]]; then - if [[ "$PIPENV_ACTIVE" == 1 ]]; then - if [[ "$PWD" != "$pipfile_dir"* ]]; then - exit +if zstyle -T ':omz:plugins:pipenv' auto-shell; then + # Automatic pipenv shell activation/deactivation + _togglePipenvShell() { + # deactivate shell if Pipfile doesn't exist and not in a subdir + if [[ ! -f "$PWD/Pipfile" ]]; then + if [[ "$PIPENV_ACTIVE" == 1 ]]; then + if [[ "$PWD" != "$pipfile_dir"* ]]; then + exit + fi fi fi - fi - # activate the shell if Pipfile exists - if [[ "$PIPENV_ACTIVE" != 1 ]]; then - if [[ -f "$PWD/Pipfile" ]]; then - export pipfile_dir="$PWD" - pipenv shell + # activate the shell if Pipfile exists + if [[ "$PIPENV_ACTIVE" != 1 ]]; then + if [[ -f "$PWD/Pipfile" ]]; then + export pipfile_dir="$PWD" + pipenv shell + fi fi - fi -} -autoload -U add-zsh-hook -add-zsh-hook chpwd _togglePipenvShell -_togglePipenvShell + } + autoload -U add-zsh-hook + add-zsh-hook chpwd _togglePipenvShell + _togglePipenvShell +fi # Aliases alias pch="pipenv check" @@ -47,6 +49,7 @@ alias prun="pipenv run" alias psh="pipenv shell" alias psy="pipenv sync" alias pu="pipenv uninstall" +alias pupd="pipenv update" alias pwh="pipenv --where" alias pvenv="pipenv --venv" alias ppy="pipenv --py" diff --git a/plugins/pm2/_pm2 b/plugins/pm2/_pm2 index faa6a3404..66320b810 100644 --- a/plugins/pm2/_pm2 +++ b/plugins/pm2/_pm2 @@ -79,7 +79,7 @@ _id_names() { local app_list app_list=`pm2 list -m` - local -a names ids + local -a names ids names=(`echo $app_list | grep '+---' | awk '{print $2}'`) ids=(`echo $app_list | grep 'pm2 id' | awk '{print $4}'`) diff --git a/plugins/podman/README.md b/plugins/podman/README.md new file mode 100644 index 000000000..99daa28cd --- /dev/null +++ b/plugins/podman/README.md @@ -0,0 +1,47 @@ +# Podman plugin + +This plugin adds auto-completion and aliases for [podman](https://podman.io/). + +To use it add `podman` to the plugins array in your zshrc file. + +```zsh +plugins=(... podman) +``` + +## Aliases + +| Alias | Command | Description | +| :------ | :-------------------------------------------- | :--------------------------------------------------------------------------------------- | +| pbl | `podman build` | Build an image from a Dockerfile | +| pcin | `podman container inspect` | Display detailed information on one or more containers | +| pcls | `podman container ls` | List all the running podman containers | +| pclsa | `podman container ls --all` | List all running and stopped containers | +| pib | `podman image build` | Build an image from a Dockerfile (same as podman build) | +| pii | `podman image inspect` | Display detailed information on one or more images | +| pils | `podman image ls` | List podman images | +| pipu | `podman image push` | Push an image or repository to a remote registry | +| pirm | `podman image rm` | Remove one or more images | +| pit | `podman image tag` | Add a name and tag to a particular image | +| plo | `podman container logs` | Fetch the logs of a podman container | +| pnc | `podman network create` | Create a new network | +| pncn | `podman network connect` | Connect a container to a network | +| pndcn | `podman network disconnect` | Disconnect a container from a network | +| pni | `podman network inspect` | Return information about one or more networks | +| pnls | `podman network ls` | List all networks the engine daemon knows about, including those spanning multiple hosts | +| pnrm | `podman network rm` | Remove one or more networks | +| ppo | `podman container port` | List port mappings or a specific mapping for the container | +| ppu | `podman pull` | Pull an image or a repository from a registry | +| pr | `podman container run` | Create a new container and start it using the specified command | +| prit | `podman container run --interactive --tty` | Create a new container and start it in an interactive shell | +| prm | `podman container rm` | Remove the specified container(s) | +| prm! | `podman container rm --force` | Force the removal of a running container (uses SIGKILL) | +| pst | `podman container start` | Start one or more stopped containers | +| prs | `podman container restart` | Restart one or more containers | +| psta | `podman stop $(podman ps -q)` | Stop all running containers | +| pstp | `podman container stop` | Stop one or more running containers | +| ptop | `podman top` | Display the running processes of a container | +| pvi | `podman volume inspect` | Display detailed information about one or more volumes | +| pvls | `podman volume ls` | List all the volumes known to podman | +| pvprune | `podman volume prune` | Cleanup dangling volumes | +| pxc | `podman container exec` | Run a new command in a running container | +| pxcit | `podman container exec --interactive --tty` | Run a new command in a running container in an interactive shell | diff --git a/plugins/podman/podman.plugin.zsh b/plugins/podman/podman.plugin.zsh new file mode 100644 index 000000000..97cf92b2a --- /dev/null +++ b/plugins/podman/podman.plugin.zsh @@ -0,0 +1,47 @@ +if (( ! $+commands[podman] )); then + return +fi + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `podman`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_podman" ]]; then + typeset -g -A _comps + autoload -Uz _podman + _comps[podman]=_podman +fi + +podman completion zsh 2> /dev/null >| "$ZSH_CACHE_DIR/completions/_podman" &| + +alias pbl='podman build' +alias pcin='podman container inspect' +alias pcls='podman container ls' +alias pclsa='podman container ls --all' +alias pib='podman image build' +alias pii='podman image inspect' +alias pils='podman image ls' +alias pipu='podman image push' +alias pirm='podman image rm' +alias pit='podman image tag' +alias plo='podman container logs' +alias pnc='podman network create' +alias pncn='podman network connect' +alias pndcn='podman network disconnect' +alias pni='podman network inspect' +alias pnls='podman network ls' +alias pnrm='podman network rm' +alias ppo='podman container port' +alias ppu='podman pull' +alias pr='podman container run' +alias prit='podman container run --interactive --tty' +alias prm='podman container rm' +alias 'prm!'='podman container rm --force' +alias pst='podman container start' +alias prs='podman container restart' +alias psta='podman stop $(podman ps --quiet)' +alias pstp='podman container stop' +alias ptop='podman top' +alias pvi='podman volume inspect' +alias pvls='podman volume ls' +alias pvprune='podman volume prune' +alias pxc='podman container exec' +alias pxcit='podman container exec --interactive --tty' diff --git a/plugins/poetry-env/README.md b/plugins/poetry-env/README.md new file mode 100644 index 000000000..bd99d2a91 --- /dev/null +++ b/plugins/poetry-env/README.md @@ -0,0 +1,10 @@ +# Poetry Environment Plugin + +This plugin automatically changes poetry environment when you cd into or out of the project directory. +Note: Script looks for pyproject.toml file to determine poetry if its a poetry environment + +To use it, add `poetry-env` to the plugins array in your zshrc file: + +```zsh +plugins=(... poetry-env) +``` diff --git a/plugins/poetry-env/poetry-env.plugin.zsh b/plugins/poetry-env/poetry-env.plugin.zsh new file mode 100644 index 000000000..f98c177b4 --- /dev/null +++ b/plugins/poetry-env/poetry-env.plugin.zsh @@ -0,0 +1,27 @@ +_togglePoetryShell() { + # Determine if currently in a Poetry-managed directory + local in_poetry_dir=0 + if [[ -f "$PWD/pyproject.toml" ]] && grep -q 'tool.poetry' "$PWD/pyproject.toml"; then + in_poetry_dir=1 + fi + + # Deactivate the current environment if moving out of a Poetry directory or into a different Poetry directory + if [[ $poetry_active -eq 1 ]] && { [[ $in_poetry_dir -eq 0 ]] || [[ "$PWD" != "$poetry_dir"* ]]; }; then + export poetry_active=0 + unset poetry_dir + deactivate + fi + + # Activate the environment if in a Poetry directory and no environment is currently active + if [[ $in_poetry_dir -eq 1 ]] && [[ $poetry_active -ne 1 ]]; then + venv_dir=$(poetry env info --path 2>/dev/null) + if [[ -n "$venv_dir" ]]; then + export poetry_active=1 + export poetry_dir="$PWD" + source "${venv_dir}/bin/activate" + fi + fi +} +autoload -U add-zsh-hook +add-zsh-hook chpwd _togglePoetryShell +_togglePoetryShell # Initial call to check the current directory at shell startup diff --git a/plugins/postgres/README.md b/plugins/postgres/README.md index 59445f31c..3f59a8fe4 100644 --- a/plugins/postgres/README.md +++ b/plugins/postgres/README.md @@ -19,4 +19,4 @@ plugins=(... postgres) | stoppost | `pg_ctl -D /usr/local/var/postgres stop -s -m fast` | Stop postgres server | | restartpost | `stoppost && sleep 1 && startpost` | Restart (calls stop, then start) | | reloadpost | `pg_ctl reload -D /usr/local/var/postgres -s` | Reload postgres configuration (some setting require restart)| -| statuspost | `pg_ctl status -D /usr/local/var/postgres -s` | Check startus of postgres server (running, stopped) | +| statuspost | `pg_ctl status -D /usr/local/var/postgres -s` | Check status of postgres server (running, stopped) | diff --git a/plugins/pyenv/README.md b/plugins/pyenv/README.md index b9ee937b7..f18fc8cfb 100644 --- a/plugins/pyenv/README.md +++ b/plugins/pyenv/README.md @@ -10,6 +10,14 @@ To use it, add `pyenv` to the plugins array in your zshrc file: plugins=(... pyenv) ``` +If you receive a `Found pyenv, but it is badly configured.` error on startup, you may need to ensure that `pyenv` is initialized before the oh-my-zsh pyenv plugin is loaded. This can be achieved by adding the following earlier in the `.zshrc` file than the `plugins=(...)` line: + +```zsh +export PYENV_ROOT="$HOME/.pyenv" +export PATH="$PYENV_ROOT/bin:$PATH" +eval "$(pyenv init --path)" +``` + ## Settings - `ZSH_PYENV_QUIET`: if set to `true`, the plugin will not print any messages if it diff --git a/plugins/python/README.md b/plugins/python/README.md index 97c1a34ee..c99697b22 100644 --- a/plugins/python/README.md +++ b/plugins/python/README.md @@ -12,7 +12,7 @@ plugins=(... python) | Command | Description | | ---------------- | -------------------------------------------------------------------------------------- | -| `py` | Runs `python3` | +| `py` | Runs `python3`. Only set if `py` is not installed. | | `ipython` | Runs the appropriate `ipython` version according to the activated virtualenv | | `pyfind` | Finds .py files recursively in the current directory | | `pyclean [dirs]` | Deletes byte-code and cache files from a list of directories or the current one | @@ -22,8 +22,18 @@ plugins=(... python) ## Virtual environments -The plugin provides two utilities to manage Python venvs: +The plugin provides three utilities to manage Python 3.3+ [venv](https://docs.python.org/3/library/venv.html) +virtual environments: -- `mkv [name]`: make a new virtual environment called `name` (default: `venv`) in current directory. +- `mkv [name]`: make a new virtual environment called `name` (default: if set `$PYTHON_VENV_NAME`, else + `venv`) in the current directory. -- `vrun [name]`: activate virtual environment called `name` (default: `venv`) in current directory. +- `vrun [name]`: Activate the virtual environment called `name` (default: if set `$PYTHON_VENV_NAME`, else + `venv`) in the current directory. + +- `auto_vrun`: Automatically activate the venv virtual environment when entering a directory containing + `/bin/activate`, and automatically deactivate it when navigating out of it (including + subdirectories!). + - To enable the feature, set `export PYTHON_AUTO_VRUN=true` before sourcing oh-my-zsh. + - The default virtual environment name is `venv`. To use a different name, set + `export PYTHON_VENV_NAME=`. For example: `export PYTHON_VENV_NAME=".venv"` diff --git a/plugins/python/python.plugin.zsh b/plugins/python/python.plugin.zsh index 2fbb59577..f6ea85027 100644 --- a/plugins/python/python.plugin.zsh +++ b/plugins/python/python.plugin.zsh @@ -1,5 +1,5 @@ -# python command -alias py='python3' +# set python command if 'py' not installed +builtin which py > /dev/null || alias py='python3' # Find python file alias pyfind='find . -name "*.py"' @@ -44,18 +44,19 @@ function pyuserpaths() { alias pygrep='grep -nr --include="*.py"' # Run proper IPython regarding current virtualenv (if any) -alias ipython="python3 -c 'import IPython; IPython.terminal.ipapp.launch_new_instance()'" +alias ipython='python3 -c "import IPython, sys; sys.exit(IPython.start_ipython())"' # Share local directory as a HTTP server alias pyserver="python3 -m http.server" ## venv utilities +: ${PYTHON_VENV_NAME:=venv} # Activate a the python virtual environment specified. -# If none specified, use 'venv'. +# If none specified, use $PYTHON_VENV_NAME, else 'venv'. function vrun() { - local name="${1:-venv}" + local name="${1:-$PYTHON_VENV_NAME}" local venvpath="${name:P}" if [[ ! -d "$venvpath" ]]; then @@ -72,12 +73,26 @@ function vrun() { echo "Activated virtual environment ${name}" } -# Create a new virtual environment, with default name 'venv'. +# Create a new virtual environment using the specified name. +# If none specfied, use $PYTHON_VENV_NAME function mkv() { - local name="${1:-venv}" + local name="${1:-$PYTHON_VENV_NAME}" local venvpath="${name:P}" python3 -m venv "${name}" || return echo >&2 "Created venv in '${venvpath}'" vrun "${name}" } + +if [[ "$PYTHON_AUTO_VRUN" == "true" ]]; then + # Automatically activate venv when changing dir + auto_vrun() { + if [[ -f "${PYTHON_VENV_NAME}/bin/activate" ]]; then + source "${PYTHON_VENV_NAME}/bin/activate" > /dev/null 2>&1 + else + (( $+functions[deactivate] )) && deactivate > /dev/null 2>&1 + fi + } + add-zsh-hook chpwd auto_vrun + auto_vrun +fi diff --git a/plugins/qodana/README.md b/plugins/qodana/README.md new file mode 100644 index 000000000..0b68bdecf --- /dev/null +++ b/plugins/qodana/README.md @@ -0,0 +1,20 @@ +# JetBrains Qodana CLI plugin + +This plugin adds completion for the [JetBrains Qodana CLI](https://github.com/JetBrains/qodana-cli). + +To use it, add `qodana` to the plugins array in your zshrc file: + +```zsh +plugins=(... qodana) +``` + +This plugin does not add any aliases. + +## Cache + +This plugin caches the completion script and is automatically updated when the +plugin is loaded, which is usually when you start up a new terminal emulator. + +The cache is stored at: + +- `$ZSH_CACHE_DIR/completions/_qodana` completions script diff --git a/plugins/qodana/qodana.plugin.zsh b/plugins/qodana/qodana.plugin.zsh new file mode 100644 index 000000000..2b92a8051 --- /dev/null +++ b/plugins/qodana/qodana.plugin.zsh @@ -0,0 +1,14 @@ +# Autocompletion for the JetBrains Qodana CLI (qodana). +if (( ! $+commands[qodana] )); then + return +fi + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `qodana`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_qodana" ]]; then + typeset -g -A _comps + autoload -Uz _qodana + _comps[qodana]=_qodana +fi + +qodana completion zsh >| "$ZSH_CACHE_DIR/completions/_qodana" &| diff --git a/plugins/rails/README.md b/plugins/rails/README.md index b2425aabc..c0c37ff3d 100644 --- a/plugins/rails/README.md +++ b/plugins/rails/README.md @@ -40,7 +40,10 @@ plugins=(... rails) | `rn` | `rails notes` | Search for notes (`FIXME`, `TODO`) in code comments | | `rp` | `rails plugin` | Run a Rails plugin command | | `rr` | `rails routes` | List all defined routes | -| `rrg` | `rails routes \| grep` | List and filter the defined routes | +| `rrc` | `rails routes --controller` | List and filter routes mapped to specific controller | +| `rre` | `rails routes --expanded` | List all defined routes in expanded table mode | +| `rrg` | `rails routes --grep` | List and filter the defined routes | +| `rru` | `rails routes --unused` | List unused routes | | `rs` | `rails server` | Launch a web server | | `rsb` | `rails server --bind` | Launch a web server binding it to a specific IP | | `rsd` | `rails server --debugger` | Launch a web server with debugger | diff --git a/plugins/rails/_rails b/plugins/rails/_rails index ac90d45cc..48fd1909e 100644 --- a/plugins/rails/_rails +++ b/plugins/rails/_rails @@ -1,6 +1,6 @@ #compdef rails # ------------------------------------------------------------------------------ -# Copyright (c) 2016 GitHub zsh-users - http://github.com/zsh-users +# Copyright (c) 2016 GitHub zsh-users - https://github.com/zsh-users # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -28,136 +28,494 @@ # Description # ----------- # -# Completion script for Ruby on Rails (http://rubyonrails.org/). +# Completion script for Ruby on Rails 7.1.0 (https://rubyonrails.org/). # # ------------------------------------------------------------------------------ # Authors # ------- # # * Kazuya Takeshima (https://github.com/mitukiii) +# * Shohei Yoshida (https://github.com/syohex) # # ------------------------------------------------------------------------------ - _rails() { - local context state line curcontext="$curcontext" + local context state state_descr line curcontext="$curcontext" + typeset -A opt_args - if (( CURRENT > 2 )); then - (( CURRENT-- )) - shift words - _call_function - "_rails_${words[1]}" || _nothing - else - __rails_commands - fi -} - -__rails_commands() { - local context state line curcontext="$curcontext" - - local -a rails_options - __rails_setup_rails_options - - _arguments -C \ - $rails_options \ - ': :->command' - - case "$state" in - command) - local -a commands - local application_directory - __rails_setup_application_directory - - if [ -n "$application_directory" ]; then - commands=( - {generate,g}'[Generate new code]' - {console,c}'[Start the Rails console]' - {server,s}'[Start the Rails server]' - {dbconsole,db}'[Start a console for the database specified in config/database.yml]' - application'[Generate the Rails application code]' - {destroy,d}'[Undo code generated with "generate"]' - benchmarker'[See how fast a piece of code runs]' - profiler'[Get profile information from a piece of code]' - plugin'[Install a plugin]' - {runner,r}'[Run a piece of code in the application environment]' - {test,t}'[Run tests]' - ) - else - commands=( - new'[Create a new Rails application]' - ) - fi - - _values 'command' $commands - ;; - esac -} - -__rails_setup_application_directory() { - application_directory="$(pwd)" - - while [ -n "$application_directory" ]; do - if [ -f "${application_directory}/script/rails" -o -f "${application_directory}/bin/rails" ]; then - return - fi - application_directory="${application_directory%/*}" - done - - application_directory= -} - -__rails_setup_rails_options() { - rails_options=( - {-h,--help}'[Show this help message and quit]' - {-v,--version}'[Show Rails version number and quit]' + local -a runtime_options rails_options + runtime_options=( + '(- *)'{-h,--help}'[Show this help message and quit]' + '(- *)'{-v,--version}'[Show Rails version and quit]' ) -} -__rails_setup_runtime_options() { runtime_options=( '(-f --force)'{-f,--force}'[Overwrite files that already exist]' '(-p --pretend)'{-p,--pretend}'[Run but do not make any changes]' '(-q --quiet)'{-q,--quiet}'[Suppress status output]' '(-s --skip)'{-s,--skip}'[Skip files that already exist]' ) + + local ret=1 + + _arguments -C \ + $rails_options \ + '1: :_rails_subcommands' \ + '*:: :->command' && ret=0 + + case "$state" in + (command) + case $words[1] in + (new) + _rails_new && ret=0 + ;; + (generate|g|destroy|d) + _rails_generate && ret=0 + ;; + (console|c) + _arguments \ + '(- *)'{-h,--help}'[Show this help message and quit]' \ + '(-e --environment)'{-e,--environment=}'[The environment to run "console" in]:env:(test development production)' \ + '(-s --sandbox)'{-s,--sandbox}'[Rollback database modifications on exit]' \ + && ret=0 + ;; + (server|s) + _arguments \ + '(- *)'{-h,--help}'[Show this help message and quit]' \ + '(-e --environment)'{-e,--environment=}'[The environment to run "server" in]:env:(test development production)' \ + '(-p --port)'{-p,--port}'[Run Rails on the specified port]:port' \ + '(-b --binding)'{-b,--binding=}'[Bind Rails to the specified IP]:binding' \ + '(-c --config)'{-c,--config=}'[Use a custom rackup configuration]:config file:_files -g "*.ru"' \ + '(-d --daemon)'{-d,--daemon}'[Run server as a Daemon]' \ + '(-u --using)'{-u,--using=}'[Specify the Rack server used to run the application]:server:(thin puma webrick)' \ + '(-P --pid)'{-P,--pid=}'[Specify the PID file]:pid file:_files -g "*.pid"' \ + '(-C --dev-caching --no-dev-caching)'{-C,--dev-caching}'[Perform caching in development]' \ + '(-C --dev-caching --no-dev-caching)--no-dev-caching[Not perform caching in development]' \ + '--early-hints[Enable HTTP/2 early hints]' \ + '(--log-to-stdout --no-log-to-stdout)--log-to-stdout[Log to stdout]' \ + '(--log-to-stdout --no-log-to-stdout)--no-log-to-stdout[Not log to stdout]' \ + && ret=0 + ;; + (dbconsole|db) + _arguments \ + '(- *)'{-h,--help}'[Show this help message and quit]' \ + '(-e --environment)'{-e,--environment=}'[The environment to run "server" in]:env:(test development production)' \ + '(-p --include-password)'{-p,--include-password}'[Automatically provide the password from database.yml]' \ + '--mode=[Automatically put the sqlite3 database in the specified mode]:mode:(html list line column)' \ + '(--header --no-header)--header[Display header]' \ + '(--header --no-header)--no-header[Not display header]' \ + '(--db --database)'{--db=,--database=}'[Specify the database to use]:database:_files' \ + && ret=0 + ;; + (test|t|test:system) + _arguments \ + '(- *)'{-h,--help}'[Show this help message and quit]' \ + '--no-plugins[Bypass minitest plugin auto-loading]' \ + '(-s --seed)'{-s,--seed=}'[Sets random seed]:seed' \ + '(-v -verbose)'{-v,--verbose}'[Show progress processing files]' \ + '--show-skips[Show skipped at the end of run]' \ + \*{-n,--name=}'[Filter run on /regexp/ or string]:pattern' \ + *--exclude='[Exclude /regexp/ or string from run]:pattern' \ + \*{-S,--skip=}'[Skip reporting of certain types of results]' \ + '(-w --warnings)'{-w,--warnings}'[Run with Ruby warnings enabled]' \ + '(-e --environment)'{-e,--environment=}'[Run tests in the given environment]' \ + '(-b --backtrace)'{-b,--backtrace}'[Show the complete backtrace]' \ + '(-d --defer-output)'{-d,--defer-output}'[Output test failures and errors after the test run]' \ + '(-f --fail-fast)'{-f,--fail-fast}'[Abort test run on first failure or error]' \ + '(-c --color --no-color)'{-c,--color}'[Enable color in the output]' \ + '(-c --color --no-color)--no-color[Disable color in the output]' \ + '--profile=[Enable profiling of tests and list the slowest test cases]:count' \ + '(-p --pride)'{-p,--pride}'[Show your testing pride]' \ + '*:: :_files -g "*.rb"' \ + && ret=0 + ;; + (runner|r) + _arguments \ + '(- *)'{-h,--help}'[Show this help message and quit]' \ + '(-e --environment)'{-e,--environment=}'[The environment to run "runner"]:env:(test development production)' \ + '*:: :_files -g "*.rb"' \ + && ret=0 + ;; + (plugin) + _arguments \ + '1: :(new)' \ + '*:: :_rails_new' \ + && ret=0 + ;; + (routes) + _arguments \ + '(- *)'{-h,--help}'[Show this help message and quit]' \ + '(-c --controller)'{-c,--controller=}'[Filter by a specific controller]:controller' \ + '(-g --grep)'{-g,--grep}'[Grep routes by a specific pattern]' \ + '(-E --expanded)'{-E,--expanded}'[Print routes expanded vertically with parts explained]' \ + '(-u --unused)'{-u,--unused}'[Print unused routes]' \ + && ret=0 + ;; + (*) + _arguments \ + '(- *)'{-h,--help}'[Show help message and quit]' \ + '*:: :_files' \ + && ret=0 + ;; + esac + ;; + esac + + return ret } -__rails_setup_generators_options() { - local -a runtime_options - __rails_setup_runtime_options +(( $+functions[_rails_subcommands] )) || +_rails_subcommands() { + local -a commands - generators_options=( - $runtime_options - --skip-namespace'[Skip namespace (affects only isolated applications)]' - --old-style-hash"[Force using old style hash (:foo => 'bar') on Ruby >= 1.9]" + _rails_is_in_app + + if (( $? == 1 )); then + # is not in rails app directory + commands=( + new'[Create a new Rails application]' + ) + else + commands=( + {generate,g}'[Generate new code]' + {console,c}'[Start the Rails console]' + {server,s}'[Start the Rails server]' + {test,t}'[Run tests]' + "test\\:system[Run systems test only]" + {dbconsole,db}'[Start a console for the database specified in config/database.yml]' + plugin'[Install a plugin]' + + # generated by ./bin/rails --help | ruby -ne '(b=$2;printf("%s[%s]\n", $1.gsub(/:/,"\\:"),b.strip)) if /^([a-z0-9_:]+)\S*\s+([^(\n]+)/' + "about[List versions of all Rails frameworks and the environment]" + "action_mailbox\:ingress\:exim[Relay an inbound email from Exim to Action Mailbox]" + "action_mailbox\:ingress\:postfix[Relay an inbound email from Postfix to Action Mailbox]" + "action_mailbox\:ingress\:qmail[Relay an inbound email from Qmail to Action Mailbox]" + "action_mailbox\:install[Install Action Mailbox and its dependencies]" + "action_mailbox\:install\:migrations[Copy migrations from action_mailbox to application]" + "action_text\:install[Copy over the migration, stylesheet, and JavaScript files]" + "action_text\:install\:migrations[Copy migrations from action_text to application]" + "active_storage\:install[Copy over the migration needed to the application]" + "app\:template[Apply the template supplied by LOCATION=]" + "app\:update[Update configs and some other initially generated files]" + "assets\:clean[Remove old compiled assets]" + "assets\:clobber[Remove compiled assets]" + "assets\:environment[Load asset compile environment]" + "assets\:precompile[Compile all the assets named in config.assets.precompile]" + "cache_digests\:dependencies[Lookup first-level dependencies for TEMPLATE]" + "cache_digests\:nested_dependencies[Lookup nested dependencies for TEMPLATE]" + "credentials\:diff[Enroll/disenroll in decrypted diffs of credentials using git]" + "credentials\:edit[Open the decrypted credentials in $VISUAL or $EDITOR for editing]" + "credentials\:show[Show the decrypted credentials]" + "db\:create[Create the database from DATABASE_URL or config/database.yml for the current RAILS_ENV]" + "db\:drop[Drop the database from DATABASE_URL or config/database.yml for the current RAILS_ENV]" + "db\:encryption\:init[Generate a set of keys for configuring Active Record encryption in a given environment]" + "db\:environment\:set[Set the environment value for the database]" + "db\:fixtures\:load[Load fixtures into the current environment's database]" + "db\:migrate[Migrate the database]" + "db\:migrate\:down[Run the 'down' for a given migration VERSION]" + "db\:migrate\:redo[Roll back the database one migration and re-migrate up]" + "db\:migrate\:status[Display status of migrations]" + "db\:migrate\:up[Run the 'up' for a given migration VERSION]" + "db\:prepare[Run setup if database does not exist, or run migrations if it does]" + "db\:reset[Drop and recreate all databases from their schema for the current environment and load the seeds]" + "db\:rollback[Roll the schema back to the previous version]" + "db\:schema\:cache\:clear[Clear a db/schema_cache.yml file]" + "db\:schema\:cache\:dump[Create a db/schema_cache.yml file]" + "db\:schema\:dump[Create a database schema file]" + "db\:schema\:load[Load a database schema file]" + "db\:seed[Load the seed data from db/seeds.rb]" + "db\:seed\:replant[Truncate tables of each database for current environment and load the seeds]" + "db\:setup[Create all databases, load all schemas, and initialize with the seed data]" + "db\:system\:change[Change 'config/database.yml' and your database gem to the target database]" + "db\:version[Retrieve the current schema version number]" + "destroy[Remove code generated by 'bin/rails generate']" + "dev\:cache[Toggle development mode caching on/off]" + "encrypted\:edit[Open the decrypted file in $VISUAL or $EDITOR for editing]" + "encrypted\:show[Show the decrypted contents of the file]" + "importmap\:install[Setup Importmap for the app]" + "initializers[Print out all defined initializers in the order they are invoked by Rails.]" + "log\:clear[Truncate all/specified *.log files in log/ to zero bytes]" + "middleware[Print out your Rack middleware stack]" + "notes[Show comments in your code annotated with FIXME, OPTIMIZE, and TODO]" + "restart[Restart app by touching tmp/restart.txt]" + "routes[List all the defined routes]" + "runner[Run Ruby code in the context of your application]" + "secret[Generate a cryptographically secure secret key]" + "secrets\:edit[**deprecated** Open the secrets in $VISUAL or $EDITOR for editing]" + "secrets\:show[**deprecated** Show the decrypted secrets]" + "stats[Report code statistics]" + "stimulus\:install[Install Stimulus into the app]" + "stimulus\:install\:importmap[Install Stimulus on an app running importmap-rails]" + "stimulus\:install\:node[Install Stimulus on an app running node]" + "test\:all[Run all tests, including system tests]" + "test\:channels[Run tests in test/channels]" + "test\:controllers[Run tests in test/controllers]" + "test\:db[Reset the database and run 'bin/rails test']" + "test\:functionals[Run tests in test/controllers, test/mailers, and test/functional]" + "test\:generators[Run tests in test/lib/generators]" + "test\:helpers[Run tests in test/helpers]" + "test\:integration[Run tests in test/integration]" + "test\:jobs[Run tests in test/jobs]" + "test\:mailboxes[Run tests in test/mailboxes]" + "test\:mailers[Run tests in test/mailers]" + "test\:models[Run tests in test/models]" + "test\:units[Run tests in test/models, test/helpers, and test/unit]" + "time\:zones[List all time zones, list by two-letter country code]" + "tmp\:clear[Clear cache, socket and screenshot files from tmp/]" + "tmp\:create[Create tmp directories for cache, sockets, and pids]" + "turbo\:install[Install Turbo into the app]" + "turbo\:install\:importmap[Install Turbo into the app with asset pipeline]" + "turbo\:install\:node[Install Turbo into the app with webpacker]" + "turbo\:install\:redis[Switch on Redis and use it in development]" + "version[Show the Rails version]" + "yarn\:install[Install all JavaScript dependencies as specified via Yarn]" + "zeitwerk\:check[Check project structure for Zeitwerk compatibility]" + ) + fi + + _values 'command' $commands +} + +# rails new +(( $+functions[_rails_new] )) || +_rails_new() { + local ret=1 + + _arguments \ + $runtime_options \ + $rails_options \ + --skip-namespace'[Skip namespace]' \ + '(-n --name)'{-n,--name=}'[Name of the app]:name' \ + '(-r --ruby)'{-r,--ruby=}'[Path to the Ruby binary of your choice]:path:_files' \ + '(-b --builder)'{-b,--builder=}'[Path to a application builder(can be a filesystem path or URL)]: :_rails_path_or_url' \ + '(-m --template)'{-m,--template=}'[Path to an application template(can be a filesystem path or URL)]: :_rails_path_or_url' \ + '(-d --database)'{-d,--database=}'[Preconfigure for selected database]:database:(mysql trilogy oracle postgresql sqlite3 frontbase ibm_db sqlserver jdbcmysql jdbcsqlite3 jdbcpostgresql jdbc)' \ + --skip-gemfile"[Don't create a Gemfile]" \ + --skip-bundle"[Don't run bundle install]" \ + '(-G --skip-git)'{-G,--skip-git}'[Skip git init]' \ + --skip-docker'[Skip Dockerfile]' \ + --skip-keeps'[Skip source control .keep files]' \ + '(-M --skip-action-mailer)'{-M,--skip-action-mailer}'[Skip Action Mailer files]' \ + --skip-action-mailbox'[Skip Action Mailbox gem]' \ + --skip-action-text'[Skip Action Text gem]' \ + '(-O --skip-active-record)'{-O,--skip-active-record}'[Skip Active Record files]' \ + --skip-active-job'[Skip Active Job]' \ + --skip-active-storage'[Skip Active Storage files]' \ + '(-C --skip-action-cable)'{-C,--skip-action-cable}'[Skip Action Cable files]' \ + '(-A --skip-asset-pipeline)'{-A,--skip-asset-pipeline}'[Skip asset pipeline]' \ + '(-a --asset-pipeline)'{-a,--asset-pipeline=}'[Choose your asset pipeline]:asset pipeline:(sprockets propshaft)' \ + '(-J --skip-js)'{-J,--skip-js}'[Skip JavaScript files]' \ + --skip-hotwire'[Skip Hotwire integration]' \ + --skip-jbuilder'[Skip jbuilder gem]' \ + '(-T --skip-test)'{-T,--skip-test}'[Skip test files]' \ + --skip-system-test'[Skip system test files]' \ + --skip-bootsnap'[Skip bootsnap gem]' \ + --skip-dev-gems'[Skip development gems(e.g. web-console)]' \ + --dev'[Setup the application with Gemfile pointing to your Rails checkout]' \ + --edge'[Setup the application with Gemfile pointing to Rails repository]' \ + --master'[Set up the application with Gemfile pointing to Rails repository main branch]' \ + --rc='[Path to file containing extra configuration options for rails command]:rc:_files' \ + --api'[Preconfigure smaller stack for API only apps]' \ + --minimal'[Preconfigure a minimal rails app]' \ + '(-j --js)'{-j,--js=}'[Choose JavaScript approach]:javascript:(importmap bun webpack esbuild rollup)' \ + '(-c --css)'{-c,--css=}'[Choose CSS processor]:css processor:(tailwind bootstrap bulma postcss sass)' \ + '(-B --skip-bundle)'{-B,--skip-bundle}"[Don't run bundle install]" \ + --skip-decrypted-diffs"[Don't configure git to show decrypted diffs of encrypted credentials]" \ + ':app path:_directories' && ret=0 + + return ret +} + +# rails generate +(( $+functions[_rails_generate] )) || +_rails_generate() { + local ret=1 + + _arguments -C \ + '(- *)'{-h,--help}"[Print generator's options and usage]" \ + $runtime_options \ + '1:generator:_rails_generate_generator' \ + '*:: :->generate' && ret=0 + + case "$state" in + (generate) + local -a opts + opts=( + '(- *)'{-h,--help}'[Show this help message and quit]' + $runtime_options + '--skip-namespace[Skip namespace]' + '--skip-collision-check[Skip collision check]' + ) + + case $words[1] in + (application_record|migration|model|resource|scaffold|scaffold_controller) + opts+=( + '(-o --orm)'{-o,--orm=}'[ORM to be invoked]:orm:(active_record)' + ) + ;| + (channel) + opts+=( + '--no-assets[Not generate assets]' + ) + ;| + (controller|resource|scaffold|scaffold_controller) + opts+=( + '--skip-routes[Do not add routes to config/routes.rb]' + '--no-helper[Not generate helper]' + ) + ;| + (controller|job|model|resource|scaffold) + opts+=( + '--parent=[The parent class for the generated controler]:parent class' + ) + ;| + (controler|mailer|resource|scaffold|scaffold_controller) + opts+=( + '(-e --template-engine)'{-e,--template-engine=}'[Template engine to be invoked]:engine:(erb)' + ) + ;| + (channel|controller|generator|helper|job|mailbox|mailer|model|scaffold|scaffold_controller) + opts+=( + '(-t --test-framework)'{-t,--test-framework=}'[Test framework to be invoked]:test_framework:(test_unit)' + ) + ;| + (generator|test_unit:channel) + opts+=( + '--no-namespace[Not generate namespace generate]' + ) + ;| + (integration_test) + opts+=( + '--integration-tool=[Integration tool to be invoked]:tool:(test_unit)' + ) + ;| + (jbuilder|resource|scaffold|scaffold_controller) + opts+=( + '--model-name=[ModelName to be used]:name' + ) + ;| + (jbuilder|model|resource|scaffold|scaffold_controller) + opts+=( + '--force-plural[Do not singularize the model name]' + ) + ;| + (jbuilder|migration|model|resource|scaffold_controller) + opts+=( + '--no-timestamps[Not generate timestamps]' + ) + ;| + (job) + opts+=( + '--queue=[The queue name for the generated job]:name' + ) + ;| + (migration|model|resource|scaffold) + opts+=( + '--primary-key-type=[The type for primary key]' + '(--db --database)'{--db,--database=}'[The database for your migration]:db' + ) + ;| + (model|resource|scaffold) + opts+=( + '--no-migration[Not generate migration]' + '--no-indexes[Not add indexes for references and belongs_to columns]' + '--no-fixture[Not generate fixture]' + '(-r --fixture-replacement)'{-r,--fixture-replacement=}'[Fixture replacement to be invoked]:fixture' + ) + ;| + (resource) + opts+=( + '(-c --resource-controller)'{-c,--resource-controller=}'[Resource controller to be invoked]:controller:(controller)' + '(-a --actions)'{-a,--actions=}'[Actions for the source controller]:action' + ) + ;| + (resource|scaffold|scaffold_controller) + opts+=( + '--no-resource-route[Not generate resource route]' + ) + ;| + (scaffold) + opts+=( + '(-c --scaffold-controller)'{-c,--scaffold-controller=}'[Scaffold controller to be invoked]:controller:(scaffold_controller)' + + ) + ;| + (scaffold|scaffold_controller) + opts+=( + '--api[Generate API-only controller and tests, with no view templates]' + '--no-jbuilder[Not generate jbuilder]' + ) + ;| + (scaffold|scaffold_controller|system_test) + opts+=( + '--system-tests=[System test framework to be invoked]:framework:(test_unit)' + ) + ;| + (stimulus) + opts+=( + '--skip-manifest[Do not update the stimulus manifest]' + ) + ;| + (jbuilder|migration|resource|scaffold) + opts+=( + '*:field:_rails_migration_fields' + ) + ;| + esac + + _arguments $opts && ret=0 + ;; + esac + + return ret +} + +(( $+functions[_rails_generate_generator] )) || +_rails_generate_generator() { + local -a generators=( + # rails + application_record benchmark channel controller generator helper integration_test + jbuilder job mailbox mailer migration model resource scaffold scaffold_controller + system_test task + + # active record + "active_record\\:application_record" + "active_record\\:multi_db" + + # Stimulus + stimulus + + # TestUnit + "test_unit\\:channel" "test_unit\\:generator" "test_unit\\:install" + "test_unit\\:mailbox" "test_unit\\:plugin" ) + + _values 'generators' $generators } -__rails_setup_model_generators_options() { - local -a generators_options - __rails_setup_generators_options +# Utilities +(( $+functions[_rails_is_in_app] )) || +_rails_is_in_app() { + local dir="$PWD" + while [ -n "$dir" ]; do + if [[ -f "${dir}/bin/rails" ]]; then + return 0 + fi + dir="${dir/*}" + done - model_generators_options=( - $generators_options - '(-o --orm)'{-o,--orm=}'[Orm to be invoked]:orm' - ) + return 1 } -__rails_setup_resource_generators_options() { - local -a model_generators_options - __rails_setup_model_generators_options - - resource_generators_options=( - $model_generators_options - --force-plural'[Forces the use of a plural ModelName]' - --resource-route'[Indicates when to generate resource route]: :__rails_boolean' - ) +(( $+functions[_rails_path_or_url] )) || +_rails_path_or_url() { + _alternative \ + 'files:path:_files -g "*.rb"' \ + 'url:url:_urls' } -__rails_boolean() { - _values 'boolean' 'true' 'false' -} - -__rails_migration_fields() { +(( $+functions[_rails_migration_fields] )) || +_rails_migration_fields() { if compset -P '*:*:'; then _values 'index' 'index' 'uniq' else @@ -169,450 +527,6 @@ __rails_migration_fields() { fi } -_rails_generate() { - local context state line curcontext="$curcontext" - - if (( CURRENT > 2 )); then - (( CURRENT-- )) - shift words - _call_function - "_rails_generate_${words[1]}" || _rails_generate_default - else - __rails_generate_commands - fi -} - -_rails_g() { - _rails_generate -} - -__rails_generate_commands() { - local context curcontext="$curcontext" update_policy - - zstyle -s ":completion:${curcontext}:" cache-policy update_policy - if [ -z "$update_policy" ]; then - zstyle ":completion:${curcontext}:" cache-policy _rails_generate_commands_caching_policy - fi - - local application_directory - __rails_setup_application_directory - local cache_name - cache_name="rails/${application_directory##*/}/all_generators" - if ! _retrieve_cache ${cache_name}; then - local -a all_generators - all_generators=($(_call_program rails_generators rails generate 2> /dev/null | awk '/^ [a-zA-Z_]+/{ print $1 }')) - _store_cache ${cache_name} all_generators - fi - - local -a rails_generators - rails_generators=(${all_generators:#*:*}) - _describe -t rails_generators 'rails generator' rails_generators - - local -a -U namespaces - local namespace - local -a generators - namespaces=(${(R)${(M)all_generators:#*:*}%:*}) - for namespace in $namespaces; do - generators=(${${(M)all_generators:#${namespace}:*}/:/\\:}) - _describe -t ${namespace}_generators "${namespace/_/ } generator" generators - done -} - -_rails_generate_commands_caching_policy() { - local application_directory - __rails_setup_application_directory - - if [ "${application_directory}/Gemfile" -nt "$1" ]; then - return 0 - fi - - local -a oldp - oldp=( "$1"(Nmw+1) ) - (( $#oldp )) -} - -_rails_generate_default() { - local -a generators_options - __rails_setup_generators_options - - _arguments \ - $generators_options \ - '*:argument' -} - -_rails_generate_assets() { - local -a generators_options - __rails_setup_generators_options - - _arguments \ - $generators_options \ - '(-j --javascripts)'{-j,--javascripts}'[Generate JavaScripts]: :__rails_boolean' \ - '(-y --stylesheets)'{-y,--stylesheets}'[Generate Stylesheets]: :__rails_boolean' \ - '(-je --javascript-engine)'{-je,--javascript-engine=}'[Engine for JavaScripts]:javascript engine' \ - '(-se --stylesheet-engine)'{-se,--stylesheet-engine=}'[Engine for Stylesheets]:stylesheet engine' \ - ': :_guard "^-*" "name"' -} - -_rails_generate_controller() { - local -a generators_options - __rails_setup_generators_options - - _arguments \ - $generators_options \ - '(-e --template-engine)'{-e,--template-engine=}'[Template engine to be invoked]:template engine' \ - '(-t --test-framework)'{-t,--test-framework=}'[Test framework to be invoked]:test framework' \ - --helper'[Indicates when to generate helper]: :__rails_boolean' \ - --assets'[Indicates when to generate assets]: :__rails_boolean' \ - ': :_guard "^-*" "name"' \ - '*: :_guard "^-*" "action"' -} - -_rails_generate_generator() { - local -a generators_options - __rails_setup_generators_options - - _arguments \ - $generators_options \ - --namespace'[Namespace generator under lib/generators/name]: :__rails_boolean' \ - ': :_guard "^-*" "name"' -} - -_rails_generate_helper() { - local -a generators_options - __rails_setup_generators_options - - _arguments \ - $generators_options \ - '(-t --test-framework)'{-t,--test-framework=}'[Test framework to be invoked]:test framework' \ - ': :_guard "^-*" "name"' \ -} - -_rails_generate_integration_test() { - local -a generators_options - __rails_setup_generators_options - - _arguments \ - $generators_options \ - --integration-tool='[Integration tool to be invoke]:integration tool' \ - ': :_guard "^-*" "name"' \ -} - -_rails_generate_jbuilder() { - local -a generators_options - __rails_setup_generators_options - - _arguments \ - $generators_options \ - ': :_guard "^-*" "name"' \ - '*: :__rails_migration_fields' -} - -_rails_generate_mailer() { - local -a generators_options - __rails_setup_generators_options - - _arguments \ - $generators_options \ - '(-e --template-engine)'{-e,--template-engine=}'[Template engine to be invoked]:template engine' \ - '(-t --test-framework)'{-t,--test-framework=}'[Test framework to be invoked]:test framework' \ - ': :_guard "^-*" "name"' \ - '*: :_guard "^-*" "method"' -} - -_rails_generate_migration() { - local -a modelgenerators_options - __rails_setup_model_generators_options - - _arguments \ - $model_generators_options \ - ': :_guard "^-*" "name"' \ - '*: :__rails_migration_fields' -} - -_rails_generate_model() { - _rails_generate_migration -} - -_rails_generate_observer() { - local -a model_generators_options - __rails_setup_model_generators_options - - _arguments \ - $model_generators_options \ - ': :_guard "^-*" "name"' -} - -_rails_generate_performance_test() { - local -a generators_options - __rails_setup_generators_options - - _arguments \ - $generators_options \ - --performance-tool='[Performance tool to be invoked]:performance tool' \ - ': :_guard "^-*" "name"' \ -} - -_rails_generate_resource() { - local context state line curcontext="$curcontext" - - local -a resource_generators_options - __rails_setup_resource_generators_options - - _arguments -C \ - $resource_generators_options \ - '(-c --resource-controller)'{-c,--resource-controller=}'[Resource controller to be invoked]:name' \ - '(-a --actions)'{-a,--actions=}'[Actions for the resource controller]: :->actions' \ - ': :->name' \ - '*: :->fields' - - if (( words[(I)(--actions=*|-a)] > 0 && words[(I)(--actions=*|-a)] == words[(I)-*] )); then - state=actions - fi - - case "$state" in - actions) - _guard "[[:alnum:]_]#" "actions" - ;; - name) - _guard "^-*" "name" - ;; - fields) - __rails_migration_fields - ;; - esac -} - -_rails_generate_scaffold() { - local -a resource_generators_options - __rails_setup_resource_generators_options - - _arguments \ - $resource_generators_options \ - '(-y --stylesheets)'{-y,--stylesheets}'[Generate Stylesheets]: :__rails_boolean' \ - '(-se --stylesheet-engine)'{-se,--stylesheet-engine=}'[Engine for Stylesheets]:stylesheet engine' \ - '(-c --scaffold-controller)'{-c,--scaffold-controller=}'[Scaffold controller to be invoked]:name' \ - --assets'[Indicates when to generate assets]:boolean:(true false)' \ - ': :_guard "^-*" "name"' \ - '*: :__rails_migration_fields' -} - -_rails_generate_scaffold_controller() { - local -a model_generators_options - __rails_setup_model_generators_options - - _arguments \ - $model_generators_options \ - '(-e --template-engine)'{-e,--template-engine=}'[Template engine to be invoked]:template engine' \ - '(-t --test-framework)'{-t,--test-framework=}'[Test framework to be invoked]:test framework' \ - --helper'[Indicates when to generate helper]: :__rails_boolean' \ - ': :_guard "^-*" "name"' -} - -_rails_generate_session_migration() { - local -a model_generators_options - __rails_setup_model_generators_options - - _arguments \ - $model_generators_options \ - ': :_guard "^-*" "name"' -} - -_rails_generate_task() { - local -a generators_options - __rails_setup_generators_options - - _arguments \ - $generators_options \ - ': :_guard "^-*" "name"' \ - '*: :_guard "^-*" "action"' -} - -_rails_console() { - _arguments \ - '(- *)'{-h,--help}'[Show this help message]' \ - '(-s --sandbox)'{-s,--sandbox}'[Rollback database modifications on exit]' \ - --debugger'[Enable ruby-debugging for the console]' -} - -_rails_c() { - _rails_console -} - -_rails_server() { - _arguments \ - '(- *)'{-h,--help}'[Show this help message]' \ - '(-p --port)'{-p,--port=}'[Runs Rails on the specified port]: :_guard "[[\:digit\:]]#" "port"' \ - '(-b --binding)'{-b,--binding=}'[Binds Rails to the specified ip]:ip:_hosts' \ - '(-c --config)'{-c,--config=}'[Use custom rackup configuration file]:file:_files -g "*.ru"' \ - '(-d --daemon)'{-d,--daemon}'[Make server run as a Daemon]' \ - '(-u --debugger)'{-u,--debugger}'[Enable ruby-debugging for the server]' \ - '(-e --environment)'{-e,--environment=}'[Specifies the environment to run this server under (test/development/production)]:name:(test development production)' \ - '(-P --pid)'{-P,--pid=}'[Specifies the PID file]:pid:_files -g "*.pid"' -} - -_rails_s() { - _rails_server -} - -_rails_dbconsole() { - _arguments \ - '(- *)'--help'[Show this help message]' \ - '(-p --include-password)'{-p,--include-password}'[Automatically provide the password from database.yml]' \ - --mode'[Automatically put the sqlite3 database in the specified mode (html, list, line, column)]:mode:(html list line column)' \ - --header -} - -_rails_new() { - local context state line curcontext="$curcontext" - - local _a rails_options runtime_options - __rails_setup_rails_options - __rails_setup_runtime_options - - _arguments -C \ - $rails_options \ - $runtime_options \ - '(-r --ruby)'{-r,--ruby=}'[Path to the Ruby binary of your choice]:path' \ - '(-b --builder)'{-b,--builder=}'[Path to a application builder (can be a filesystem path or URL)]: :->path_or_url' \ - '(-m --template)'{-m,--template=}'[Path to an application template (can be a filesystem path or URL)]: :->path_or_url' \ - --skip-gemfile"[Don't create a Gemfile]" \ - --skip-bundle"[Don't run bundle install]" \ - '(-G --skip-git)'{-G,--skip-git}'[Skip Git ignores and keeps]' \ - '(-O --skip-active-record)'{-O,--skip-active-record}'[Skip Active Record files]' \ - '(-S --skip-sprockets)'{-S,--skip-sprockets}'[Skip Sprockets files]' \ - '(-d --database)'{-d,--database=}'[Preconfigure for selected database]:database:(mysql oracle postgresql sqlite3 frontbase ibm_db sqlserver jdbcmysql jdbcsqlite3 jdbcpostgresql jdbc)' \ - '(-j --javascript)'{-j,--javascript=}'[Preconfigure for selected JavaScript library]:javascript' \ - '(-J --skip-javascript)'{-J,--skip-javascript}'[Skip JavaScript files]' \ - --dev'[Setup the application with Gemfile pointing to your Rails checkout]' \ - --edge'[Setup the application with Gemfile pointing to Rails repository]' \ - '(-T --skip-test-unit)'{-T,--skip-test-unit}'[Skip Test::Unit files]' \ - --old-style-hash"[Force using old style hash (:foo => 'bar') on Ruby >= 1.9]" \ - ':app path:_directories' - - case "$state" in - path_or_url) - _alternative \ - 'files:path:_files -g "*.rb"' \ - 'url:url:_urls' - ;; - esac -} - -_rails_application() { - _rails_new -} - -_rails_db() { - _rails_dbconsole -} - -_rails_destroy() { - _rails_generate -} - -_rails_d() { - _rails_destroy -} - -_rails_benchmarker() { - _arguments \ - '(- *)'{-h,--help}'[Show this help message]' \ - '(-r --runs)'{-r,--runs}'[Number of runs]: :_guard "[[\:digit\:]]#" "number"' \ - '(-o --output)'{-o,--output}'[Directory to use when writing the results]:directory:_directories' \ - '(-m --metrics)'{-m,--metrics}'[Metrics to use]: :_values -s "," "metrics" "wall_time" "memory" "objects" "gc_runs" "gc_time"' \ - '*: :_guard "^-*" "ruby code"' -} - -_rails_profiler() { - _arguments \ - '(- *)'{-h,--help}'[Show this help message]' \ - '(-r --runs)'{-r,--runs}'[Number of runs]: :_guard "[[\:digit\:]]#" "number"' \ - '(-o --output)'{-o,--output}'[Directory to use when writing the results]:directory:_directories' \ - '(-m --metrics)'{-m,--metrics}'[Metrics to use]: :_values -s "," "metrics" "process_time" "memory" "objects"' \ - '(-f --formats)'{-f,--formats}'[Formats to output to]: :_values -s "," "formats" "flat" "graph" "html" "call_tree" "call_stack"' \ - '*: :_guard "^-*" "ruby code"' -} - -_rails_plugin() { - local context state line curcontext="$curcontext" - - if (( CURRENT > 2 )); then - (( CURRENT-- )) - shift words - _call_function - "_rails_plugin_${words[1]}" || _nothing - else - __rails_plugin_commands - fi -} - -__rails_plugin_commands() { - _values 'plugin command' \ - install'[Install plugin(s) from known repositories or URLs]' \ - remove'[Uninstall plugins]' \ - new -} - -_rails_plugin_install() { - _arguments \ - '(-x --externals)'{-x,--externals}'[Use svn:externals to grab the plugin. Enables plugin updates and plugin versioning]' \ - '(-o --checkout)'{-o,--checkout}'[Use svn checkout to grab the plugin. Enables updating but does not add a svn:externals entry]' \ - '(-e --export)'{-e,--export}'[Use svn export to grab the plugin. Exports the plugin, allowing you to check it into your local repository. Does not enable updates or add an svn:externals entry]' \ - '(-q --quiet)'{-q,--quiet}'[Suppresses the output from installation. Ignored if -v is passed (rails plugin -v install ...)]' \ - '(-r --revision)'{-r,--revision=}'[Checks out the given revision from subversion or git. Ignored if subversion/git is not used]:revision' \ - '(-f --force)'{-f,--force}"[Reinstalls a plugin if it's already installed]" \ - '*:plugin:_urls' -} - -_rails_plugin_remove() { - local -a plugins - - plugins=($(_call_program rails_plugins ls -1 vendor/plugins)) - - _describe -t plugins 'plugin' plugins -} - -_rails_plugin_new() { - _rails_new -} - -_rails_runner() { - local context state line curcontext="$curcontext" - - _arguments -C \ - '(- *)'{-h,--help}'[Show this help message]' \ - '(-e --environment)'{-e,--environment=}'[Specifies the environment for the runner to operate under (test/development/production)]:name:(test development production)' \ - ': :->code_or_path' - - case "$state" in - code_or_path) - _alternative \ - 'files:filename:_files -g "*.rb"' \ - 'codes:ruby code:_guard "^-*" "ruby code"' - ;; - esac -} - -_rails_r() { - _rails_runner -} - -_rails_test() { - local context state line curcontext="$curcontext" - - _arguments -C \ - ': :->path' - - case "$state" in - path) - _alternative \ - 'files:filename:_files -g "*.rb"' - ;; - esac -} - -_rails_t() { - _rails_test -} - _rails "$@" # Local Variables: diff --git a/plugins/rails/rails.plugin.zsh b/plugins/rails/rails.plugin.zsh index 015dc9ecb..75dd9b0c6 100644 --- a/plugins/rails/rails.plugin.zsh +++ b/plugins/rails/rails.plugin.zsh @@ -68,7 +68,10 @@ alias rmd='rails middleware' alias rn='rails notes' alias rp='rails plugin' alias rr='rails routes' -alias rrg='rails routes | grep' +alias rrc='rails routes --controller' +alias rre='rails routes --expanded' +alias rrg='rails routes --grep' +alias rru='rails routes --unused' alias rs='rails server' alias rsb='rails server --bind' alias rsd='rails server --debugger' diff --git a/plugins/rake-fast/rake-fast.plugin.zsh b/plugins/rake-fast/rake-fast.plugin.zsh index 19dab154b..082f02f29 100644 --- a/plugins/rake-fast/rake-fast.plugin.zsh +++ b/plugins/rake-fast/rake-fast.plugin.zsh @@ -1,5 +1,28 @@ +# The version of the format of .rake_tasks. If the output of _rake_generate +# changes, incrementing this number will force it to regenerate +_rake_tasks_version=2 + _rake_does_task_list_need_generating () { - [[ ! -f .rake_tasks ]] || [[ Rakefile -nt .rake_tasks ]] || { _is_rails_app && _tasks_changed } + _rake_tasks_missing || _rake_tasks_version_changed || _rakefile_has_changes || { _is_rails_app && _tasks_changed } +} + +_rake_tasks_missing () { + [[ ! -f .rake_tasks ]] +} + +_rake_tasks_version_changed () { + local -a file_version + file_version=`head -n 1 .rake_tasks | sed "s/^version\://"` + + if ! [[ $file_version =~ '^[0-9]*$' ]]; then + return true + fi + + [[ $file_version -ne $_rake_tasks_version ]] +} + +_rakefile_has_changes () { + [[ Rakefile -nt .rake_tasks ]] } _is_rails_app () { @@ -20,7 +43,17 @@ _tasks_changed () { } _rake_generate () { - rake --silent --tasks | cut -d " " -f 2 | sed 's/\[.*\]//g' > .rake_tasks + local rake_tasks_content="version:$_rake_tasks_version\n" + rake_tasks_content+=$(rake --silent --tasks --all \ + | sed "s/^rake //" | sed "s/\:/\\\:/g" \ + | sed "s/\[[^]]*\]//g" \ + | sed "s/ *# /\:/" \ + | sed "s/\:$//") + + local rake_tasks_file="$(mktemp -t .rake_tasks.XXXXXX)" + echo $rake_tasks_content > $rake_tasks_file + + mv $rake_tasks_file .rake_tasks } _rake () { @@ -29,7 +62,10 @@ _rake () { echo "\nGenerating .rake_tasks..." >&2 _rake_generate fi - compadd $(cat .rake_tasks) + local -a rake_options + rake_options=("${(@f)$(cat .rake_tasks)}") + shift rake_options + _describe 'rake tasks' rake_options fi } compdef _rake rake diff --git a/plugins/react-native/README.md b/plugins/react-native/README.md index 807c063a5..39eed6c68 100644 --- a/plugins/react-native/README.md +++ b/plugins/react-native/README.md @@ -54,6 +54,10 @@ plugins=(... react-native) | **rnios14pl** | `react-native run-ios --simulator "iPhone 14 Plus"` | | **rnios14p** | `react-native run-ios --simulator "iPhone 14 Pro"` | | **rnios14pm** | `react-native run-ios --simulator "iPhone 14 Pro Max"` | +| **rnios15** | `react-native run-ios --simulator "iPhone 15"` | +| **rnios15pl** | `react-native run-ios --simulator "iPhone 15 Plus"` | +| **rnios15p** | `react-native run-ios --simulator "iPhone 15 Pro"` | +| **rnios15pm** | `react-native run-ios --simulator "iPhone 15 Pro Max"` | | _iPad_ | | | **rnipad2** | `react-native run-ios --simulator "iPad 2"` | | **rnipad5** | `react-native run-ios --simulator "iPad (5th generation)"` | diff --git a/plugins/react-native/react-native.plugin.zsh b/plugins/react-native/react-native.plugin.zsh index afeaab4fd..9ee081248 100644 --- a/plugins/react-native/react-native.plugin.zsh +++ b/plugins/react-native/react-native.plugin.zsh @@ -39,6 +39,10 @@ alias rnios14='react-native run-ios --simulator "iPhone 14"' alias rnios14pl='react-native run-ios --simulator "iPhone 14 Plus"' alias rnios14p='react-native run-ios --simulator "iPhone 14 Pro"' alias rnios14pm='react-native run-ios --simulator "iPhone 14 Pro Max"' +alias rnios15='react-native run-ios --simulator "iPhone 15"' +alias rnios15pl='react-native run-ios --simulator "iPhone 15 Plus"' +alias rnios15p='react-native run-ios --simulator "iPhone 15 Pro"' +alias rnios15pm='react-native run-ios --simulator "iPhone 15 Pro Max"' # iPad alias rnipad2='react-native run-ios --simulator "iPad 2"' diff --git a/plugins/ros/_ros b/plugins/ros/_ros index 6a04d3c8f..c73a7b353 100644 --- a/plugins/ros/_ros +++ b/plugins/ros/_ros @@ -18,7 +18,7 @@ _1st_arguments=( 'config:Get and set options' 'version:Show the roswell version information' "help:Use \"ros help [command]\" for more information about a command."$'\n\t\t'"Use \"ros help [topic]\" for more information about the topic." -) +) #local expl diff --git a/plugins/rtx/rtx.plugin.zsh b/plugins/rtx/rtx.plugin.zsh new file mode 100644 index 000000000..43127a25f --- /dev/null +++ b/plugins/rtx/rtx.plugin.zsh @@ -0,0 +1,2 @@ +# TODO: 2024-01-03 remove rtx support +echo "[oh-my-zsh] 'rtx' plugin has been renamed to 'mise'" diff --git a/plugins/ruby/ruby.plugin.zsh b/plugins/ruby/ruby.plugin.zsh index 408512110..e09b22c75 100644 --- a/plugins/ruby/ruby.plugin.zsh +++ b/plugins/ruby/ruby.plugin.zsh @@ -23,4 +23,4 @@ alias gel="gem lock" alias geo="gem open" alias geoe="gem open -e" alias rrun="ruby -e" -alias rserver="ruby -e httpd . -p 8080" # requires webrick +alias rserver="ruby -run -e httpd . -p 8080" # requires webrick diff --git a/plugins/sbt/sbt.plugin.zsh b/plugins/sbt/sbt.plugin.zsh index 851302c68..1e977140b 100644 --- a/plugins/sbt/sbt.plugin.zsh +++ b/plugins/sbt/sbt.plugin.zsh @@ -4,7 +4,7 @@ # AUTHOR: Mirko Caserta (mirko.caserta@gmail.com) # VERSION: 1.0.2 # ------------------------------------------------------------------------------ - + # aliases - mnemonic: prefix is 'sb' alias sbc='sbt compile' alias sbcc='sbt clean compile' diff --git a/plugins/screen/screen.plugin.zsh b/plugins/screen/screen.plugin.zsh index c1db8ad92..26531c40b 100644 --- a/plugins/screen/screen.plugin.zsh +++ b/plugins/screen/screen.plugin.zsh @@ -8,7 +8,7 @@ if [[ "$TERM" == screen* ]]; then _GET_HOST='echo $HOST | sed "s/\..*//"' fi - # use the current user as the prefix of the current tab title + # use the current user as the prefix of the current tab title TAB_TITLE_PREFIX='"`'$_GET_HOST'`:`'$_GET_PATH' | sed "s:..*/::"`$PROMPT_CHAR"' # when at the shell prompt, show a truncated version of the current path (with # standard ~ replacement) as the rest of the title. diff --git a/plugins/shell-proxy/README.md b/plugins/shell-proxy/README.md index b19888c56..102e46b6b 100644 --- a/plugins/shell-proxy/README.md +++ b/plugins/shell-proxy/README.md @@ -23,6 +23,7 @@ Set `SHELLPROXY_URL` environment variable to the URL of the proxy server: ```sh SHELLPROXY_URL="http://127.0.0.1:8123" +SHELLPROXY_NO_PROXY="localhost,127.0.0.1" proxy enable ``` @@ -36,11 +37,15 @@ Example: ```sh #!/bin/bash +# HTTP Proxy if [[ "$(uname)" = Darwin ]]; then echo "http://127.0.0.1:6152" # Surge Mac else echo "http://127.0.0.1:8123" # polipo fi + +# No Proxy +echo "localhost,127.0.0.1" ``` ### Method 3 diff --git a/plugins/shell-proxy/proxy.py b/plugins/shell-proxy/proxy.py index 14f2944cc..8c2aaf9f3 100755 --- a/plugins/shell-proxy/proxy.py +++ b/plugins/shell-proxy/proxy.py @@ -6,6 +6,7 @@ from subprocess import check_output, list2cmdline cwd = os.path.dirname(__file__) ssh_agent = os.path.join(cwd, "ssh-agent.py") proxy_env = "SHELLPROXY_URL" +no_proxy_env = "SHELLPROXY_NO_PROXY" proxy_config = os.environ.get("SHELLPROXY_CONFIG") or os.path.expandvars("$HOME/.config/proxy") usage="""shell-proxy: no proxy configuration found. @@ -15,18 +16,30 @@ See the plugin README for more information.""".format(env=proxy_env, config=prox def get_http_proxy(): default_proxy = os.environ.get(proxy_env) - if default_proxy: - return default_proxy + no_proxy = os.environ.get(no_proxy_env) + if default_proxy and no_proxy: + return default_proxy, no_proxy + if os.path.isfile(proxy_config): - return check_output(proxy_config).decode("utf-8").strip() + proxy_configdata = [line.strip() for line in check_output(proxy_config).decode("utf-8").splitlines()] + if len(proxy_configdata) >= 1: + if not default_proxy: + default_proxy = proxy_configdata[0] + if len(proxy_configdata) == 2 and not no_proxy: + no_proxy = proxy_configdata[1] + + if default_proxy: + return default_proxy, no_proxy print(usage, file=sys.stderr) sys.exit(1) -def make_proxies(url: str): +def make_proxies(url: str, no_proxy: str): proxies = {"%s_PROXY" % _: url for _ in ("HTTP", "HTTPS", "FTP", "RSYNC", "ALL")} proxies.update({name.lower(): value for (name, value) in proxies.items()}) proxies["GIT_SSH"] = ssh_agent + if no_proxy: + proxies.update({"NO_PROXY": no_proxy, "no_proxy": no_proxy}) return proxies @@ -35,7 +48,7 @@ def merge(mapping: dict): class CommandSet: - proxies = make_proxies(get_http_proxy()) + proxies = make_proxies(*get_http_proxy()) aliases = { _: "env __SSH_PROGRAM_NAME__=%s %s" % (_, ssh_agent) for _ in ("ssh", "sftp", "scp", "slogin", "ssh-copy-id") diff --git a/plugins/shell-proxy/shell-proxy.plugin.zsh b/plugins/shell-proxy/shell-proxy.plugin.zsh index 4fdbe9322..f6c31da45 100644 --- a/plugins/shell-proxy/shell-proxy.plugin.zsh +++ b/plugins/shell-proxy/shell-proxy.plugin.zsh @@ -27,7 +27,7 @@ eval ' # capture the output of the proxy script and bail out if it fails local output - output="$(SHELLPROXY_URL="$SHELLPROXY_URL" SHELLPROXY_CONFIG="$SHELLPROXY_CONFIG" "$proxy" "$1")" || + output="$(SHELLPROXY_URL="$SHELLPROXY_URL" SHELLPROXY_NO_PROXY="$SHELLPROXY_NO_PROXY" SHELLPROXY_CONFIG="$SHELLPROXY_CONFIG" "$proxy" "$1")" || return $? # evaluate the output generated by the proxy script diff --git a/plugins/shell-proxy/ssh-proxy.py b/plugins/shell-proxy/ssh-proxy.py index a498c84bc..4b692f9e4 100755 --- a/plugins/shell-proxy/ssh-proxy.py +++ b/plugins/shell-proxy/ssh-proxy.py @@ -22,7 +22,8 @@ if parsed.scheme not in proxy_protocols: def make_argv(): yield "nc" - if sys.platform == 'linux': + if sys.platform in {'linux', 'cygwin'}: + # caveats: the built-in netcat of most linux distributions and cygwin support proxy type # caveats: macOS built-in netcat command not supported proxy-type yield "-X" # --proxy-type # Supported protocols are 4 (SOCKS v4), 5 (SOCKS v5) and connect (HTTP proxy). diff --git a/plugins/singlechar/singlechar.plugin.zsh b/plugins/singlechar/singlechar.plugin.zsh index d4b0b6735..6d785d9e1 100644 --- a/plugins/singlechar/singlechar.plugin.zsh +++ b/plugins/singlechar/singlechar.plugin.zsh @@ -1,5 +1,5 @@ ########################### -# Settings +# Settings # These can be overwritten any time. # If they are not set yet, they will be diff --git a/plugins/snap/README.md b/plugins/snap/README.md new file mode 100644 index 000000000..75c5ec19a --- /dev/null +++ b/plugins/snap/README.md @@ -0,0 +1,18 @@ +# snap plugin + +This plugin sets up aliases for the common [snap](https://snapcraft.io/docs/getting-started) commands + +## Aliases + +| Alias | Full command | +| --- | ---| +| sv | snap version | +| sf | snap find | +| si | snap install | +| sin | snap info | +| sr | snap remove | +| sref | snap refresh | +| srev | snap revert | +| sl | snap list | +| sd | snap disable | +| se | snap enable | diff --git a/plugins/snap/snap.plugin.zsh b/plugins/snap/snap.plugin.zsh new file mode 100644 index 000000000..af2346978 --- /dev/null +++ b/plugins/snap/snap.plugin.zsh @@ -0,0 +1,10 @@ +alias sv="snap version" +alias sf="snap find" +alias si="snap install" +alias sin="snap info" +alias sr="snap remove" +alias sref="snap refresh" +alias srev="snap revert" +alias sl="snap list" +alias sd="snap disable" +alias se="snap enable" diff --git a/plugins/ssh-agent/README.md b/plugins/ssh-agent/README.md index fa6a996d4..0afa80cc8 100644 --- a/plugins/ssh-agent/README.md +++ b/plugins/ssh-agent/README.md @@ -90,7 +90,7 @@ use the `ssh-add-args` setting. You can pass multiple arguments separated by spa zstyle :omz:plugins:ssh-agent ssh-add-args -K -c -a /run/user/1000/ssh-auth ``` -These will then be passed the the `ssh-add` call as if written directly. The example +These will then be passed the `ssh-add` call as if written directly. The example above will turn into: ```zsh @@ -99,6 +99,33 @@ ssh-add -K -c -a /run/user/1000/ssh-auth For valid `ssh-add` arguments run `ssh-add --help` or `man ssh-add`. +### Powerline 10k specific settings + +Powerline10k has an instant prompt setting that doesn't like when this plugin +writes to the console. Consider using the following settings if you're using +p10k (documented above): + +``` +zstyle :omz:plugins:ssh-agent quiet yes +zstyle :omz:plugins:ssh-agent lazy yes +``` + +### macOS specific settings + +macOS supports using passphrases stored in the keychain when adding identities +to the ssh-agent. + +``` +ssh-add --apple-use-keychain ~/.ssh/id_rsa ... +``` + + +This plugin can be configured to use the keychain when loading using the following: + +``` +zstyle :omz:plugins:ssh-agent ssh-add-args --apple-load-keychain +``` + ## Credits Based on code from Joseph M. Reagle: https://www.cygwin.com/ml/cygwin/2001-06/msg00537.html diff --git a/plugins/ssh-agent/ssh-agent.plugin.zsh b/plugins/ssh-agent/ssh-agent.plugin.zsh index 78ac46b13..77c422ce1 100644 --- a/plugins/ssh-agent/ssh-agent.plugin.zsh +++ b/plugins/ssh-agent/ssh-agent.plugin.zsh @@ -13,6 +13,11 @@ function _start_agent() { fi fi + if [[ ! -d "$HOME/.ssh" ]]; then + echo "[oh-my-zsh] ssh-agent plugin requires ~/.ssh directory" + return 1 + fi + # Set a maximum lifetime for identities added to ssh-agent local lifetime zstyle -s :omz:plugins:ssh-agent lifetime lifetime @@ -93,8 +98,10 @@ function _add_identities() { # Add a nifty symlink for screen/tmux if agent forwarding is enabled if zstyle -t :omz:plugins:ssh-agent agent-forwarding \ - && [[ -n "$SSH_AUTH_SOCK" && ! -L "$SSH_AUTH_SOCK" ]]; then - ln -sf "$SSH_AUTH_SOCK" /tmp/ssh-agent-$USERNAME-screen + && [[ -n "$SSH_AUTH_SOCK" ]]; then + if [[ ! -L "$SSH_AUTH_SOCK" ]]; then + ln -sf "$SSH_AUTH_SOCK" /tmp/ssh-agent-$USERNAME-screen + fi else _start_agent fi diff --git a/plugins/ssh/ssh.plugin.zsh b/plugins/ssh/ssh.plugin.zsh new file mode 100644 index 000000000..b5b050536 --- /dev/null +++ b/plugins/ssh/ssh.plugin.zsh @@ -0,0 +1,53 @@ +############################################################ +# Take all host sections in .ssh/config and offer them for +# completion as hosts (e.g. for ssh, rsync, scp and the like) +# Filter out wildcard host sections. +_ssh_configfile="$HOME/.ssh/config" +if [[ -f "$_ssh_configfile" ]]; then + _ssh_hosts=($( + egrep '^Host.*' "$_ssh_configfile" |\ + awk '{for (i=2; i<=NF; i++) print $i}' |\ + sort |\ + uniq |\ + grep -v '^*' |\ + sed -e 's/\.*\*$//' + )) + zstyle ':completion:*:hosts' hosts $_ssh_hosts + unset _ssh_hosts +fi +unset _ssh_configfile + +############################################################ +# Remove host key from known hosts based on a host section +# name from .ssh/config +function ssh_rmhkey { + local ssh_configfile="$HOME/.ssh/config" + local ssh_host="$1" + if [[ -z "$ssh_host" ]]; then return; fi + ssh-keygen -R $(grep -A10 "$ssh_host" "$ssh_configfile" | grep -i HostName | head -n 1 | awk '{print $2}') +} +compctl -k hosts ssh_rmhkey + +############################################################ +# Load SSH key into agent +function ssh_load_key() { + local key="$1" + if [[ -z "$key" ]]; then return; fi + local keyfile="$HOME/.ssh/$key" + local keysig=$(ssh-keygen -l -f "$keyfile") + if ( ! ssh-add -l | grep -q "$keysig" ); then + ssh-add "$keyfile" + fi +} + +############################################################ +# Remove SSH key from agent +function ssh_unload_key { + local key="$1" + if [[ -z "$key" ]]; then return; fi + local keyfile="$HOME/.ssh/$key" + local keysig=$(ssh-keygen -l -f "$keyfile") + if ( ssh-add -l | grep -q "$keysig" ); then + ssh-add -d "$keyfile" + fi +} diff --git a/plugins/starship/README.md b/plugins/starship/README.md new file mode 100644 index 000000000..0e66c5294 --- /dev/null +++ b/plugins/starship/README.md @@ -0,0 +1,21 @@ +# starship plugin + +Initializes [starship prompt](https://starship.rs) - a minimal, blazing-fast and infinitely customizable cross-shell prompt. + +[Demo](https://user-images.githubusercontent.com/62098008/169764279-50b48262-9506-4651-ba89-f6611a88ebf0.mp4) + +[External repository](https://github.com/axieax/zsh-starship) for this zsh plugin. + +# Installation + +**Note:** you have to [install starship](https://starship.rs/guide/#%F0%9F%9A%80-installation) first. + +## [oh-my-zsh](https://github.com/ohmyzsh/ohmyzsh) + +Add `starship` to the plugins array in your `.zshrc` file: + +```zsh +plugins=(... starship) +``` + +## ⚠️ ENABLING THIS PLUGIN WILL UNSET YOUR ZSH_THEME VARIABLE diff --git a/plugins/starship/starship.plugin.zsh b/plugins/starship/starship.plugin.zsh new file mode 100644 index 000000000..fc415e64c --- /dev/null +++ b/plugins/starship/starship.plugin.zsh @@ -0,0 +1,8 @@ +if (( $+commands[starship] )); then + # ignore oh-my-zsh theme + unset ZSH_THEME + + eval "$(starship init zsh)" +else + echo '[oh-my-zsh] starship not found, please install it from https://starship.rs' +fi diff --git a/plugins/stripe/README.md b/plugins/stripe/README.md new file mode 100644 index 000000000..9f0f32bc2 --- /dev/null +++ b/plugins/stripe/README.md @@ -0,0 +1,9 @@ +# Struoe + +This plugin provides completion for the [Stripe CLI](https://stripe.com/docs/stripe-cli). + +To use it add stripe to the plugins array in your zshrc file. + +```bash +plugins=(... stripe) +``` diff --git a/plugins/stripe/stripe.plugin.zsh b/plugins/stripe/stripe.plugin.zsh new file mode 100644 index 000000000..e2041bef2 --- /dev/null +++ b/plugins/stripe/stripe.plugin.zsh @@ -0,0 +1,13 @@ +if (( ! $+commands[stripe] )); then + return +fi + +# If the completion file doesn't exist yet, we need to autoload it and +# bind it to `stripe`. Otherwise, compinit will have already done that. +if [[ ! -f "$ZSH_CACHE_DIR/completions/_stripe" ]]; then + typeset -g -A _comps + autoload -Uz _stripe + _comps[stripe]=_stripe +fi + +stripe completion --shell zsh --write-to-stdout >| "$ZSH_CACHE_DIR/completions/_stripe" &| diff --git a/plugins/sublime/sublime.plugin.zsh b/plugins/sublime/sublime.plugin.zsh index dadf37574..cc84de737 100644 --- a/plugins/sublime/sublime.plugin.zsh +++ b/plugins/sublime/sublime.plugin.zsh @@ -4,7 +4,7 @@ alias st=subl alias stt='subl .' # Define sst only if sudo exists -(( $+commands[sudo] )) && alias sst='sudo subl' +(( $+commands[sudo] )) && alias sst='sudo -EH subl' alias stp=find_project alias stn=create_project @@ -62,7 +62,7 @@ alias stn=create_project for _sublime_path in $_sublime_paths; do if [[ -a $_sublime_path ]]; then alias subl="'$_sublime_path'" - (( $+commands[sudo] )) && alias sst="sudo '$_sublime_path'" + (( $+commands[sudo] )) && alias sst="sudo -EH '$_sublime_path'" break fi done diff --git a/plugins/systemadmin/README.md b/plugins/systemadmin/README.md index 3a9d9de66..bd6b08760 100644 --- a/plugins/systemadmin/README.md +++ b/plugins/systemadmin/README.md @@ -1,7 +1,7 @@ # Systemadmin plugin This plugin adds a series of aliases and functions which make a System Administrator's life easier. - + To use it, add `systemadmin` to the plugins array in your zshrc file: ```zsh diff --git a/plugins/systemadmin/systemadmin.plugin.zsh b/plugins/systemadmin/systemadmin.plugin.zsh index 7ce62bac1..03dd995b6 100644 --- a/plugins/systemadmin/systemadmin.plugin.zsh +++ b/plugins/systemadmin/systemadmin.plugin.zsh @@ -13,11 +13,11 @@ # ------------------------------------------------------------------------------ function retlog() { - if [[ -z $1 ]];then - echo '/var/log/nginx/access.log' - else - echo $1 - fi + if [[ -z $1 ]];then + echo '/var/log/nginx/access.log' + else + echo $1 + fi } alias ping='ping -c 5' @@ -28,142 +28,160 @@ alias mkdir='mkdir -pv' alias psmem='ps -e -orss=,args= | sort -b -k1 -nr' alias psmem10='ps -e -orss=,args= | sort -b -k1 -nr | head -n 10' # get top process eating cpu if not work try execute : export LC_ALL='C' -alias pscpu='ps -e -o pcpu,cpu,nice,state,cputime,args|sort -k1,1n -nr' -alias pscpu10='ps -e -o pcpu,cpu,nice,state,cputime,args|sort -k1,1n -nr | head -n 10' +alias pscpu='ps -e -o pcpu,cpu,nice,state,cputime,args | sort -k1,1n -nr' +alias pscpu10='ps -e -o pcpu,cpu,nice,state,cputime,args | sort -k1,1n -nr | head -n 10' # top10 of the history alias hist10='print -l ${(o)history%% *} | uniq -c | sort -nr | head -n 10' function ip() { - if [ -t 1 ]; then - command ip -color "$@" - else - command ip "$@" - fi + if [ -t 1 ]; then + command ip -color "$@" + else + command ip "$@" + fi } # directory LS function dls() { - print -l *(/) + print -l *(/) } function psgrep() { - ps aux | grep "${1:-.}" | grep -v grep + ps aux | grep "${1:-.}" | grep -v grep } # Kills any process that matches a regexp passed to it function killit() { - ps aux | grep -v "grep" | grep "$@" | awk '{print $2}' | xargs sudo kill + ps aux | grep -v "grep" | grep "$@" | awk '{print $2}' | xargs sudo kill } # list contents of directories in a tree-like format if ! (( $+commands[tree] )); then - function tree() { - find $@ -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g' - } + function tree() { + find $@ -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g' + } fi # Sort connection state function sortcons() { - netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn + { + LANG= ss -nat | awk 'NR > 1 {print $1}' \ + || LANG= netstat -nat | awk 'NR > 2 {print $6}' + } | sort | uniq -c | sort -rn } # View all 80 Port Connections function con80() { - netstat -nat|grep -i ":80"|wc -l + { + LANG= ss -nat || LANG= netstat -nat + } | grep -E ":80[^0-9]" | wc -l } # On the connected IP sorted by the number of connections function sortconip() { - netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n + { + LANG= ss -ntu | awk 'NR > 1 {print $6}' \ + || LANG= netstat -ntu | awk 'NR > 2 {print $5}' + } | cut -d: -f1 | sort | uniq -c | sort -n } # top20 of Find the number of requests on 80 port function req20() { - netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20 + { + LANG= ss -tn | awk '$4 ~ /:80$/ {print $5}' \ + || LANG= netstat -tn | awk '$4 ~ /:80$/ {print $5}' + } | awk -F: '{print $1}' | sort | uniq -c | sort -nr | head -n 20 } # top20 of Using tcpdump port 80 access to view function http20() { - sudo tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr |head -n 20 + sudo tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr | head -n 20 } # top20 of Find time_wait connection function timewait20() { - netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20 + { + LANG= ss -nat | awk 'NR > 1 && /TIME-WAIT/ {print $5}' \ + || LANG= netstat -nat | awk 'NR > 2 && /TIME_WAIT/ {print $5}' + } | sort | uniq -c | sort -rn | head -n 20 } # top20 of Find SYN connection function syn20() { - netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr|head -n20 + { + LANG= ss -an | awk '/SYN/ {print $5}' \ + || LANG= netstat -an | awk '/SYN/ {print $5}' + } | awk -F: '{print $1}' | sort | uniq -c | sort -nr | head -n20 } # Printing process according to the port number function port_pro() { - netstat -ntlp | grep "${1:-.}" | awk '{print $7}' | cut -d/ -f1 + LANG= ss -ntlp | awk "NR > 1 && /:${1:-}/ {print \$6}" | sed 's/.*pid=\([^,]*\).*/\1/' \ + || LANG= netstat -ntlp | awk "NR > 2 && /:${1:-}/ {print \$7}" | cut -d/ -f1 } # top10 of gain access to the ip address function accessip10() { - awk '{counts[$(11)]+=1}; END {for(url in counts) print counts[url], url}' "$(retlog)" + awk '{counts[$(11)]+=1}; END {for(url in counts) print counts[url], url}' "$(retlog)" } # top20 of Most Visited file or page function visitpage20() { - awk '{print $11}' "$(retlog)"|sort|uniq -c|sort -nr|head -n 20 + awk '{print $11}' "$(retlog)" | sort | uniq -c | sort -nr | head -n 20 } # top100 of Page lists the most time-consuming (more than 60 seconds) as well as the corresponding page number of occurrences function consume100() { - awk '($NF > 60 && $7~/\.php/){print $7}' "$(retlog)" |sort -n|uniq -c|sort -nr|head -n 100 - # if django website or other website make by no suffix language - # awk '{print $7}' "$(retlog)" |sort -n|uniq -c|sort -nr|head -n 100 + awk '($NF > 60 && $7~/\.php/){print $7}' "$(retlog)" | sort -n | uniq -c | sort -nr | head -n 100 + # if django website or other website make by no suffix language + # awk '{print $7}' "$(retlog)" | sort -n | uniq -c | sort -nr | head -n 100 } # Website traffic statistics (G) function webtraffic() { - awk "{sum+=$10} END {print sum/1024/1024/1024}" "$(retlog)" + awk "{sum+=$10} END {print sum/1024/1024/1024}" "$(retlog)" } # Statistical connections 404 function c404() { - awk '($9 ~/404/)' "$(retlog)" | awk '{print $9,$7}' | sort + awk '($9 ~ /404/)' "$(retlog)" | awk '{print $9,$7}' | sort } # Statistical http status. function httpstatus() { - awk '{counts[$(9)]+=1}; END {for(code in counts) print code, counts[code]}' "$(retlog)" + awk '{counts[$(9)]+=1}; END {for(code in counts) print code, counts[code]}' "$(retlog)" } # Delete 0 byte file function d0() { - find "${1:-.}" -type f -size 0 -exec rm -rf {} \; + find "${1:-.}" -type f -size 0 -exec rm -rf {} \; } # gather external ip address function geteip() { - curl -s -S -4 https://icanhazip.com + curl -s -S -4 https://icanhazip.com - # handle case when there is no IPv6 external IP, which shows error - # curl: (7) Couldn't connect to server - curl -s -S -6 https://icanhazip.com 2>/dev/null - local ret=$? - (( ret == 7 )) && print -P -u2 "%F{red}error: no IPv6 route to host%f" - return $ret + # handle case when there is no IPv6 external IP, which shows error + # curl: (7) Couldn't connect to server + curl -s -S -6 https://icanhazip.com 2>/dev/null + local ret=$? + (( ret == 7 )) && print -P -u2 "%F{red}error: no IPv6 route to host%f" + return $ret } # determine local IP address(es) function getip() { - if (( ${+commands[ip]} )); then - ip addr | awk '/inet /{print $2}' | command grep -v 127.0.0.1 - else - ifconfig | awk '/inet /{print $2}' | command grep -v 127.0.0.1 - fi + if (( ${+commands[ip]} )); then + ip addr | awk '/inet /{print $2}' | command grep -v 127.0.0.1 + else + ifconfig | awk '/inet /{print $2}' | command grep -v 127.0.0.1 + fi } # Clear zombie processes function clrz() { - ps -eal | awk '{ if ($2 == "Z") {print $4}}' | kill -9 + ps -eal | awk '{ if ($2 == "Z") {print $4}}' | kill -9 } # Second concurrent function conssec() { - awk '{if($9~/200|30|404/)COUNT[$4]++}END{for( a in COUNT) print a,COUNT[a]}' "$(retlog)"|sort -k 2 -nr|head -n10 + awk '{if($9~/200|30|404/)COUNT[$4]++}END{for( a in COUNT) print a,COUNT[a]}' "$(retlog)" | sort -k 2 -nr | head -n10 } diff --git a/plugins/systemd/README.md b/plugins/systemd/README.md index ffa0567a8..755c649a1 100644 --- a/plugins/systemd/README.md +++ b/plugins/systemd/README.md @@ -12,6 +12,7 @@ plugins=(... systemd) | Alias | Command | Description | |:-----------------------|:-----------------------------------|:-----------------------------------------------------------------| +| `sc-failed` | `systemctl --failed` | List failed systemd units | | `sc-list-units` | `systemctl list-units` | List all units systemd has in memory | | `sc-is-active` | `systemctl is-active` | Show whether a unit is active | | `sc-status` | `systemctl status` | Show terse runtime status information about one or more units | diff --git a/plugins/systemd/systemd.plugin.zsh b/plugins/systemd/systemd.plugin.zsh index 1270bea0e..382a57b29 100644 --- a/plugins/systemd/systemd.plugin.zsh +++ b/plugins/systemd/systemd.plugin.zsh @@ -93,6 +93,9 @@ alias scu-enable-now="scu-enable --now" alias scu-disable-now="scu-disable --now" alias scu-mask-now="scu-mask --now" +# --failed commands +alias scu-failed='systemctl --user --failed' +alias sc-failed='systemctl --failed' function systemd_prompt_info { local unit diff --git a/plugins/term_tab/term_tab.plugin.zsh b/plugins/term_tab/term_tab.plugin.zsh index 1b612df68..89acd9103 100644 --- a/plugins/term_tab/term_tab.plugin.zsh +++ b/plugins/term_tab/term_tab.plugin.zsh @@ -28,6 +28,7 @@ function _term_list(){ case $OSTYPE in solaris*) dirs=( ${(M)${${(f)"$(pgrep -U $UID -x zsh|xargs pwdx)"}:#$$:*}%%/*} ) ;; linux*) dirs=( /proc/${^$(pidof zsh):#$$}/cwd(N:A) ) ;; + darwin*) dirs=( $( lsof -d cwd -c zsh -a -w -Fn | sed -n 's/^n//p' ) ) ;; esac dirs=( ${(D)dirs} ) diff --git a/plugins/terraform/README.md b/plugins/terraform/README.md index c19f2ad1c..2b535517c 100644 --- a/plugins/terraform/README.md +++ b/plugins/terraform/README.md @@ -1,7 +1,7 @@ # Terraform plugin -Plugin for Terraform, a tool from Hashicorp for managing infrastructure safely and efficiently. -It adds completion for `terraform`, as well as aliases and a prompt function. +Plugin for Terraform, a tool from Hashicorp for managing infrastructure safely and efficiently. It adds +completion for `terraform`, as well as aliases and a prompt function. To use it, add `terraform` to the plugins array of your `~/.zshrc` file: @@ -11,29 +11,34 @@ plugins=(... terraform) ## Requirements -* [Terraform](https://terraform.io/) +- [Terraform](https://terraform.io/) ## Aliases -| Alias | Command | -| ----- | -------------------- | -| `tf` | `terraform` | -| `tfa` | `terraform apply` | -| `tfc` | `terraform console` | -| `tfd` | `terraform destroy` | -| `tff` | `terraform fmt` | -| `tfi` | `terraform init` | -| `tfo` | `terraform output` | -| `tfp` | `terraform plan` | -| `tfv` | `terraform validate` | +| Alias | Command | +| ------ | -------------------- | +| `tf` | `terraform` | +| `tfa` | `terraform apply` | +| `tfc` | `terraform console` | +| `tfd` | `terraform destroy` | +| `tff` | `terraform fmt` | +| `tfi` | `terraform init` | +| `tfo` | `terraform output` | +| `tfp` | `terraform plan` | +| `tfv` | `terraform validate` | +| `tfs` | `terraform state` | +| `tft` | `terraform test` | +| `tfsh` | `terraform show` | + ## Prompt function -You can add the current Terraform workspace in your prompt by adding `$(tf_prompt_info)` -to your `PROMPT` or `RPROMPT` variable. +You can add the current Terraform workspace in your prompt by adding `$(tf_prompt_info)`, +`$(tf_version_prompt_info)` to your `PROMPT` or `RPROMPT` variable. ```sh RPROMPT='$(tf_prompt_info)' +RPROMPT='$(tf_version_prompt_info)' ``` You can also specify the PREFIX and SUFFIX for the workspace with the following variables: @@ -41,4 +46,6 @@ You can also specify the PREFIX and SUFFIX for the workspace with the following ```sh ZSH_THEME_TF_PROMPT_PREFIX="%{$fg[white]%}" ZSH_THEME_TF_PROMPT_SUFFIX="%{$reset_color%}" +ZSH_THEME_TF_VERSION_PROMPT_PREFIX="%{$fg[white]%}" +ZSH_THEME_TF_VERSION_PROMPT_SUFFIX="%{$reset_color%}" ``` diff --git a/plugins/terraform/_terraform b/plugins/terraform/_terraform index 625834563..157495814 100644 --- a/plugins/terraform/_terraform +++ b/plugins/terraform/_terraform @@ -1,411 +1,545 @@ #compdef terraform +compdef _terraform terraform -local -a _terraform_cmds opt_args -_terraform_cmds=( - 'apply:Builds or changes infrastructure' - 'console:Interactive console for Terraform interpolations' - 'destroy:Destroy Terraform-managed infrastructure' - 'fmt:Rewrites config files to canonical format' - 'force-unlock:Manually unlock the terraform state' - 'get:Download and install modules for the configuration' - 'graph:Create a visual graph of Terraform resources' - 'import:Import existing infrastructure into Terraform' - 'init:Initialize a Terraform working directory' +(( ${+functions[_terraform_commands]} )) || _terraform_commands() { + local -a _terraform_cmds + _terraform_cmds=( + 'apply:Create or update infrastructure' + 'console:Try Terraform expressions at an interactive command prompt' + 'destroy:Destroy previously-created infrastructure' + 'fmt:Reformat your configuration in the standard style' + 'force-unlock:Release a stuck lock on the current workspace' + 'get:Install or upgrade remote Terraform modules' + 'graph:Generate a Graphviz graph of the steps in an operation' + 'import:Associate existing infrastructure with a Terraform resource' + 'init:Prepare your working directory for other commands' 'login:Obtain and save credentials for a remote host' 'logout:Remove locally-stored credentials for a remote host' - 'output:Read an output from a state file' - 'plan:Generate and show an execution plan' - 'providers:Prints a tree of the providers used in the configuration' - 'refresh:Update local state file against real resources' - 'show:Inspect Terraform state or plan' + 'metadata:Metadata related commands' + 'output:Show output values from your root module' + 'plan:Show changes required by the current configuration' + 'providers:Show the providers required for this configuration' + 'refresh:Update the state to match remote systems' + 'show:Show the current state or a saved plan' 'state:Advanced state management' - 'taint:Manually mark a resource for recreation' - 'untaint:Manually unmark a resource as tainted' - 'validate:Validates the Terraform files' - 'version:Prints the Terraform version' + 'taint:Mark a resource instance as not fully functional' + 'test:Execute integration tests for Terraform modules' + 'untaint:Remove the '\''tainted'\'' state from a resource instance' + 'validate:Check whether the configuration is valid' + 'version:Show the current Terraform version' 'workspace:Workspace management' - '0.12upgrade:Rewrites pre-0.12 module source code for v0.12' - '0.13upgrade:Rewrites pre-0.13 module source code for v0.13' -) + ) + if (( CURRENT == 1 )); then + _describe -t commands 'terraform commands' _terraform_cmds + return + fi -__012upgrade() { + local curcontext="${curcontext}" + cmd="${${_terraform_cmds[(r)$words[1]:*]%%:*}}" + curcontext="${curcontext%:*:*}:terraform-${cmd}:" + + local __chdir="${opt_args[-chdir]:-.}" + + if (( ${+functions[_terraform_$cmd]} )); then + "_terraform_${cmd}" + else + _message "no more options" + fi +} + +(( ${+functions[_terraform_apply]} )) || _terraform_apply() { _arguments \ - '-yes[Skip the initial introduction messages and interactive confirmation. This can be used to run this command in batch from a script.]' \ - '-force[ Override the heuristic that attempts to detect if a configuration is already written for v0.12 or later. Some of the transformations made by this command are not idempotent, so re-running against the same module may change the meanings expressions in the module.]' + '-auto-approve[Skip interactive approval of plan before applying.]' \ + '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -W __chdir -g "*.backup"' \ + '-compact-warnings[If Terraform produces any warnings that are not accompanied by errors, show them in a more compact form that includes only the summary messages.]' \ + '-destroy[Destroy Terraform-managed infrastructure. The command "terraform destroy" is a convenience alias for this option.]' \ + '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]:lock_timeout:' \ + '-input=[(true) Ask for input for variables if not directly set.]:input:(true false)' \ + '-no-color[If specified, output won'\''t contain any color.]' \ + '-parallelism=[(10) Limit the number of parallel resource operations.]:parallelism:' \ + '-refresh=[(true) Skip checking for external changes to remote objects while creating the plan. This can potentially make planning faster, but at the expense of possibly planning against a stale record of the remote system state.]:refresh:(true false)' \ + '*-replace=[(resource) Force replacement of a particular resource instance using its resource address. If applying would'\''ve normally produced an update or no-op action for this instance, Terraform will replace it instead. You can use this option multiple times to replace more than one object.]:resource:__terraform_state_resources' \ + '-state=[(terraform.tfstate) Path to read and save state (unless state-out is specified).]:statefile:_files -W __chdir -g "*.tfstate"' \ + '-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]:statefile:_files -W __chdir -g "*.tfstate"' \ + '*-target=[(resource) Limit the operation to only the given module, resource, or resource instance and all of its dependencies. You can use this option multiple times to include more than one object. This is for exceptional use only.]:target:__terraform_state_resources' \ + '*-var=[(for=bar) Set a value for one of the input variables in the root module of the configuration. Use this option more than once to set more than one variable.]:var:' \ + '*-var-file=[(foo) Load variable values from the given file, in addition to the default files terraform.tfvars and *.auto.tfvars. Use this option more than once to include more than one variables file.]:file:_files -W __chdir -g "*.tfvars{,.json}"' \ + ':plan:_files -W __chdir -' } -__013upgrade() { +(( ${+functions[_terraform_console]} )) || _terraform_console() { _arguments \ - '-yes[Skip the initial introduction messages and interactive confirmation. This can be used to run this command in batch from a script.]' + '-state=[(terraform.tfstate) Legacy option for the local backend only. See the local backend'\''s documentation for more information.]:statefile:_files -W __chdir -g "*.tfstate"' \ + '-plan[Create a new plan (as if running "terraform plan") and then evaluate expressions against its planned state, instead of evaluating against the current state. You can use this to inspect the effects of configuration changes that haven'\''t been applied yet.]' \ + '*-var=[(for=bar) Set a variable in the Terraform configuration. This flag can be set multiple times.]:var:' \ + '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -W __chdir -g "*.tfvars{,.json}"' } -__apply() { - _arguments \ - '-auto-approve[Skip interactive approval of plan before applying.]' \ - '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -g "*.backup"' \ - '-compact-warnings[If Terraform produces any warnings that are not accompanied by errors, show them in a more compact form that includes only the summary messages.]' \ - '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ - '-input=[(true) Ask for input for variables if not directly set.]' \ - '-no-color[If specified, output will be colorless.]' \ - '-parallelism=[(10) Limit the number of parallel resource operations.]' \ - '-refresh=[(true) Update state prior to checking for differences. This has no effect if a plan file is given to apply.]' \ - '-state=[(terraform.tfstate) Path to read and save state (unless state-out is specified).]:statefile:_files -g "*.tfstate"' \ - '-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]:statefile:_files -g "*.tfstate"' \ - '*-target=[(resource) Resource to target. Operation will be limited to this resource and its dependencies. This flag can be used multiple times.]:target:__statelist' \ - '*-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times.]' \ - '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -g "*.tfvars{,.json}"' -} - -__console() { - _arguments \ - '-state=[(terraform.tfstate) Path to read state.]' \ - '*-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times.]' \ - '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -g "*.tfvars{,.json}"' -} - -__destroy() { - _arguments \ - '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -g "*.backup"' \ - '-auto-approve[Skip interactive approval before destroying.]' \ - '-force[Deprecated: same as auto-approve.]' \ - '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ - '-no-color[If specified, output will contain no color.]' \ - '-parallelism=[(10) Limit the number of concurrent operations.]' \ - '-refresh=[(true) Update state prior to checking for differences. This has no effect if a plan file is given to apply.]' \ - '-state=[(terraform.tfstate) Path to read and save state (unless state-out is specified).]:statefile:_files -g "*.tfstate"' \ - '-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]:statefile:_files -g "*.tfstate"' \ - '*-target=[(resource) Resource to target. Operation will be limited to this resource and its dependencies. This flag can be used multiple times.]:target:__statelist' \ - '*-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times.]' \ - '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -g "*.tfvars{,.json}"' -} - -__fmt() { - _arguments \ - '-list=[(true) List files whose formatting differs (always false if using STDIN)]' \ - '-write=[(true) Write result to source file instead of STDOUT (always false if using STDIN or -check)]' \ - '-diff=[(false) Display diffs of formatting changes]' \ - '-check=[(false) Check if the input is formatted. Exit status will be 0 if all input is properly formatted and non-zero otherwise.]' \ - '-recursive=[(false) Also process files in subdirectories. By default, only the given directory (or current directory) is processed.]' -} - -__force_unlock() { - _arguments \ - "-force[Don't ask for input for unlock confirmation.]" -} - -__get() { - _arguments \ - '-update=[(false) If true, modules already downloaded will be checked for updates and updated if necessary.]' \ - '-no-color[Disable text coloring in the output.]' -} - -__graph() { - _arguments \ - '-draw-cycles[Highlight any cycles in the graph with colored edges. This helps when diagnosing cycle errors.]' \ - '-type=[(plan) Type of graph to output. Can be: plan, plan-destroy, apply, validate, input, refresh.]' -} - -__import() { - _arguments \ - '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -g "*.backup"' \ - '-config=[(path) Path to a directory of Terraform configuration files to use to configure the provider. Defaults to pwd. If no config files are present, they must be provided via the input prompts or env vars.]' \ - '-allow-missing-config[Allow import when no resource configuration block exists.]' \ - '-input=[(true) Ask for input for variables if not directly set.]' \ - '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ - '-no-color[If specified, output will contain no color.]' \ - '-state=[(PATH) Path to the source state file. Defaults to the configured backend, or "terraform.tfstate"]:statefile:_files -g "*.tfstate"' \ - '-state-out=[(PATH) Path to the destination state file to write to. If this is not specified, the source state file will be used. This can be a new or existing path.]:statefile:_files -g "*.tfstate"' \ - '*-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times. This is only useful with the "-config" flag.]' \ - '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -g "*.tfvars{,.json}"' -} - -__init() { - _arguments \ - '-backend=[(true) Configure the backend for this configuration.]' \ - '-backend-config=[This can be either a path to an HCL file with key/value assignments (same format as terraform.tfvars) or a 'key=value' format. This is merged with what is in the configuration file. This can be specified multiple times. The backend type must be in the configuration itself.]' \ - '-force-copy[Suppress prompts about copying state data. This is equivalent to providing a "yes" to all confirmation prompts.]' \ - '-from-module=[(SOURCE) Copy the contents of the given module into the target directory before initialization.]' \ - '-get=[(true) Download any modules for this configuration.]' \ - '-get-plugins=[(true) Download any missing plugins for this configuration.]' \ - '-input=[(true) Ask for input if necessary. If false, will error if input was required.]' \ - '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ - '-no-color[If specified, output will contain no color.]' \ - '-plugin-dir[Directory containing plugin binaries. This overrides all default search paths for plugins, and prevents the automatic installation of plugins. This flag can be used multiple times.]:plugin_dir:_files -/' \ - '-reconfigure[Reconfigure the backend, ignoring any saved configuration.]' \ - '-upgrade=[(false) If installing modules (-get) or plugins (-get-plugins), ignore previously-downloaded objects and install the latest version allowed within configured constraints.]' \ - '-verify-plugins=[(true) Verify the authenticity and integrity of automatically downloaded plugins.]' -} - -__login() { - _arguments \ - -} - -__logout() { - _arguments \ - -} - -__output() { - _arguments \ - '-state=[(path) Path to the state file to read. Defaults to "terraform.tfstate".]:statefile:_files -g "*.tfstate"' \ - '-no-color[If specified, output will contain no color.]' \ - '-json[If specified, machine readable output will be printed in JSON format]' -} - -__plan() { - _arguments \ - '-compact-warnings[If Terraform produces any warnings that are not accompanied by errors, show them in a more compact form that includes only the summary messages.]' \ - '-destroy[If set, a plan will be generated to destroy all resources managed by the given configuration and state.]' \ - '-detailed-exitcode[() Return detailed exit codes when the command exits. This will change the meaning of exit codes to: 0 - Succeeded, diff is empty (no changes); 1 - Errored, 2 - Succeeded; there is a diff]' \ - '-input=[(true) Ask for input for variables if not directly set.]' \ - '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ - '-no-color[() If specified, output will contain no color.]' \ - '-out=[(path) Write a plan file to the given path. This can be used as input to the "apply" command.]' \ - '-parallelism=[(10) Limit the number of concurrent operations.]' \ - '-refresh=[(true) Update state prior to checking for differences.]' \ - '-state=[(statefile) Path to a Terraform state file to use to look up Terraform-managed resources. By default it will use the state "terraform.tfstate" if it exists.]:statefile:_files -g "*.tfstate"' \ - '*-target=[(resource) Resource to target. Operation will be limited to this resource and its dependencies. This flag can be used multiple times.]:target:__statelist' \ - '*-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times.]' \ - '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -g "*.tfvars{,.json}"' -} - -__providers() { - local -a __providers_cmds - __providers_cmds=( - 'mirror:Mirrors the provider plugins needed for the current configuration' - 'schema:Prints the schemas of the providers used in the configuration' - ) - _describe -t providers "providers commands" __providers_cmds - -} - -__providers_mirror() { - _arguments \ - '-platform=[(os_arch) Choose which target platform to build a mirror for.]' \ - "*:target_dir:_files -/" -} - -__providers_schema() { - _arguments \ - '-json[]' \ - '::' -} - -__refresh() { - _arguments \ - '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]::backupfile:_files -g "*.backup"' \ - '-compact-warnings[If Terraform produces any warnings that are not accompanied by errors, show them in a more compact form that includes only the summary messages.]' \ - '-input=[(true) Ask for input for variables if not directly set.]' \ - '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ - '-no-color[If specified, output will not contain any color.]' \ - '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]:statefile:_files -g "*.tfstate"' \ - '-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]:statefile:_files -g "*.tfstate"' \ - '*-target=[(resource) A Resource Address to target. Operation will be limited to this resource and its dependencies. This flag can be used multiple times.]:target:__statelist' \ - '*-var[("foo=bar") Set a variable in the Terraform configuration. This flag can be set multiple times.]' \ - '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -g "*.tfvars{,.json}"' -} - -__show() { - _arguments \ - '-json[If specified, output the Terraform plan or state in a machine-readable form.]' \ - '-no-color[If specified, output will not contain any color.]' -} - -__state() { - local -a __state_cmds - __state_cmds=( - 'list:List resources in the state' - 'mv:Move an item in the state' - 'pull:Pull current state and output to stdout' - 'push:Update remote state from a local state file' - 'replace-provider:Replace provider for resources in the Terraform state' - 'rm:Remove instances from the state' - 'show:Show a resource in the state' - ) - _describe -t state "state commands" __state_cmds -} - -__state_list() { +(( ${+functions[_terraform_destroy]} )) || _terraform_destroy() { _arguments \ - '-state=[(statefile) Path to a Terraform state file to use to look up Terraform-managed resources. By default, Terraform will consult the state of the currently-selected workspace.]' \ - '-id=[(id) Filters the results to include only instances whose resource types have an attribute named id whose value equals the given id string.]' \ - "*:address:__statelist" + '-auto-approve[Skip interactive approval of plan before applying.]' \ + '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -W __chdir -g "*.backup"' \ + '-compact-warnings[If Terraform produces any warnings that are not accompanied by errors, show them in a more compact form that includes only the summary messages.]' \ + '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]:lock_timeout:' \ + '-input=[(true) Ask for input for variables if not directly set.]:input:(true false)' \ + '-no-color[If specified, output won'\''t contain any color.]' \ + '-parallelism=[(10) Limit the number of parallel resource operations.]:parallelism:' \ + '-refresh=[(true) Update state prior to checking for differences. This has no effect if a plan file is given to apply.]:refresh:(true false)' \ + '-state=[(terraform.tfstate) Path to read and save state (unless state-out is specified).]:statefile:_files -W __chdir -g "*.tfstate"' \ + '-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]:statefile:_files -W __chdir -g "*.tfstate"' \ + '*-target=[(resource) Limit the operation to only the given module, resource, or resource instance and all of its dependencies. You can use this option multiple times to include more than one object. This is for exceptional use only.]:target:__terraform_state_resources' \ + '*-var=[(for=bar) Set a value for one of the input variables in the root module of the configuration. Use this option more than once to set more than one variable.]:var:' \ + '*-var-file=[(foo) Load variable values from the given file, in addition to the default files terraform.tfvars and *.auto.tfvars. Use this option more than once to include more than one variables file.]:file:_files -W __chdir -g "*.tfvars{,.json}"' } -__state_mv() { +(( ${+functions[_terraform_fmt]} )) || _terraform_fmt() { _arguments \ - "-dry-run[If set, prints out what would've been moved but doesn't actually move anything.]" \ - '-backup=[(PATH) Path where Terraform should write the backup for the original state. This can"t be disabled. If not set, Terraform will write it to the same path as the statefile with a ".backup" extension.]:backupfile:_files -g "*.backup"' \ - '-backup-out=[(PATH) Path where Terraform should write the backup for the destination state. This can"t be disabled. If not set, Terraform will write it to the same path as the destination state file with a backup extension. This only needs to be specified if -state-out is set to a different path than -state.]:backupfile:_files -g "*.backup"' \ - "-lock=[(true) Lock the state files when locking is supported.]:lock:(true false)" \ - "-lock-timeout=[(0s) Duration to retry a state lock.]" \ - '-state=[(path) Path to the source state file. Defaults to the configured backend, or "terraform.tfstate"]:statefile:_files -g "*.tfstate"' \ - '-state-out=[(path) Path to the destination state file to write to. If this isn"t specified, the source state file will be used. This can be a new or existing path.]:statefile:_files -g "*.tfstate"' \ - "::" \ - ":source:__statelist" \ - ":destination: " + '-list=[(true) Don'\''t list files whose formatting differs (always disabled if using STDIN)]:list:(true false)' \ + '-write=[(true) Don'\''t write to source files (always disabled if using STDIN or -check)]:write:(true false)' \ + '-diff[Display diffs of formatting changes]' \ + '-check[Check if the input is formatted. Exit status will be 0 if all input is properly formatted and non-zero otherwise.]' \ + '-no-color[If specified, output won'\''t contain any color.]' \ + '-recursive[Also process files in subdirectories. By default, only the given directory (or current directory) is processed.]' \ + '*:targets:_files -W __chdir -' } -__state_push() { +(( ${+functions[_terraform_force-unlock]} )) || _terraform_force-unlock() { _arguments \ - "-force[Write the state even if lineages don't match or the remote serial is higher.]" \ - '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ - "-lock-timeout=[(0s) Duration to retry a state lock.]" \ - "::" \ - ":destination:_files" + '-force[Don'\''t ask for input for unlock confirmation.]' \ + ':lock_id:' } -__state_replace_provider() { +(( ${+functions[_terraform_get]} )) || _terraform_get() { + _arguments \ + '-update[Check already-downloaded modules for available updates and install the newest versions available.]' \ + '-no-color[Disable text coloring in the output.]' \ + '-test-directory=[(tests) Set the Terraform test directory, defaults to "tests".]:test_directory:_files -W __chdir -/' +} + +(( ${+functions[_terraform_graph]} )) || _terraform_graph() { + _arguments \ + '-draw-cycles[Highlight any cycles in the graph with colored edges. This helps when diagnosing cycle errors. This option is supported only when illustrating a real evaluation graph, selected using the -type=TYPE option.]' \ + '-module-depth=[(-1) (deprecated) In prior versions of Terraform, specified the depth of modules to show in the output.]:module_depth:' \ + '-plan=[Render graph using the specified plan file instead of the configuration in the current directory. Implies -type=apply.]:plan:_files -W __chdir -' \ + '-type=[(plan) Type of operation graph to output. Can be: plan, plan-refresh-only, plan-destroy, or apply. By default Terraform just summarizes the relationships between the resources in your configuration, without any particular operation in mind. Full operation graphs are more detailed but therefore often harder to read.]:type:(plan plan-refresh-only plan-destroy apply)' +} + +(( ${+functions[_terraform_import]} )) || _terraform_import() { + _arguments \ + '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -W __chdir -g "*.backup"' \ + '-config=[(path) Path to a directory of Terraform configuration files to use to configure the provider. Defaults to pwd. If no config files are present, they must be provided via the input prompts or env vars.]:config:_files -W __chdir -/' \ + '-input=[(true) Disable interactive input prompts.]:input:(true false)' \ + '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]:lock_timeout:' \ + '-no-color[If specified, output will contain no color.]' \ + '-state=[(PATH) Path to the source state file. Defaults to the configured backend, or "terraform.tfstate"]:statefile:_files -W __chdir -g "*.tfstate"' \ + '-state-out=[(PATH) Path to the destination state file to write to. If this is not specified, the source state file will be used. This can be a new or existing path.]:statefile:_files -W __chdir -g "*.tfstate"' \ + '*-var=[(for=bar) Set a variable in the Terraform configuration. This flag can be set multiple times. This is only useful with the "-config" flag.]:var:' \ + '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -W __chdir -g "*.tfvars{,.json}"' \ + ':addr:' \ + ':id:' +} + +(( ${+functions[_terraform_init]} )) || _terraform_init() { + _arguments \ + '-backend=[(true) Disable backend or Terraform Cloud initialization for this configuration and use what was previously initialized instead.]:backend:(true false)' \ + '-backend-config=[Configuration to be merged with what is in the configuration file'\''s '\''backend'\'' block. This can be either a path to an HCL file with key/value assignments (same format as terraform.tfvars) or a '\''key=value'\'' format, and can be specified multiple times. The backend type must be in the configuration itself.]:backend_config:_files -W __chdir -' \ + '-force-copy[Suppress prompts about copying state data. This is equivalent to providing a "yes" to all confirmation prompts.]' \ + '-from-module=[Copy the contents of the given module into the target directory before initialization.]:from_module:_files -W __chdir -/' \ + '-get=[(true) Disable downloading modules for this configuration.]:get:(true false)' \ + '-input=[(true) Disable interactive prompts. Note that some actions may require interactive prompts and will error if input is disabled.]:input:(true false)' \ + '-lock=[(true) Don'\''t hold a state lock during backend migration. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]:lock_timeout:' \ + '-no-color[If specified, output will contain no color.]' \ + '-plugin-dir[Directory containing plugin binaries. This overrides all default search paths for plugins, and prevents the automatic installation of plugins. This flag can be used multiple times.]:plugin_dir:_files -W __chdir -/' \ + '-reconfigure[Reconfigure the backend, ignoring any saved configuration.]' \ + '-migrate-state[Reconfigure a backend, and attempt to migrate any existing state.]' \ + '-upgrade[Install the latest module and provider versions allowed within configured constraints, overriding the default behavior of selecting exactly the version recorded in the dependency lockfile.]' \ + '-lockfile=[Set a dependency lockfile mode. Currently only "readonly" is valid.]:lockfile:( readonly )' \ + '-ignore-remote-version[A rare option used for Terraform Cloud and the remote backend only. Set this to ignore checking that the local and remote Terraform versions use compatible state representations, making an operation proceed even when there is a potential mismatch. See the documentation on configuring Terraform with Terraform Cloud for more information.]' \ + '-test-directory=[(tests) Set the Terraform test directory, defaults to "tests".]:test_directory:_files -W __chdir -/' +} + +(( ${+functions[_terraform_login]} )) || _terraform_login() { + _arguments \ + ':hostname:' +} + +(( ${+functions[_terraform_logout]} )) || _terraform_logout() { + _arguments \ + ':hostname:' +} + +(( ${+functions[_terraform_metadata]} )) || _terraform_metadata() { + _arguments \ + '*::terraform metadata command:_terraform_metadata_commands' +} + +(( ${+functions[_terraform_metadata_commands]} )) || _terraform_metadata_commands() { + local -a _metadata_cmds + _metadata_cmds=( + 'functions:Show signatures and descriptions for the available functions' + ) + if (( CURRENT == 1 )); then + _describe -t commands "terraform metadata commands" _metadata_cmds + return + fi + + local curcontext="${curcontext}" + cmd="${${_metadata_cmds[(r)$words[1]:*]%%:*}}" + curcontext="${curcontext%:*:*}:terraform-metadata-${cmd}:" + + if (( ${+functions[_terraform_metadata_$cmd]} )); then + "_terraform_metadata_${cmd}" + else + _message "no more options" + fi +} + +(( ${+functions[_terraform_metadata_functions]} )) || _terraform_metadata_functions() { + _arguments \ + '-json[]' +} + +(( ${+functions[_terraform_output]} )) || _terraform_output() { + _arguments \ + '-state=[(path) Path to the state file to read. Defaults to "terraform.tfstate". Ignored when remote state is used.]:statefile:_files -W __chdir -g "*.tfstate"' \ + '-no-color[If specified, output will contain no color.]' \ + '-json[If specified, machine readable output will be printed in JSON format]' \ + '-raw[For value types that can be automatically converted to a string, will print the raw string directly, rather than a human-oriented representation of the value.]' \ + ':name:' +} + +(( ${+functions[_terraform_plan]} )) || _terraform_plan() { + _arguments \ + '-compact-warnings[If Terraform produces any warnings that are not accompanied by errors, show them in a more compact form that includes only the summary messages.]' \ + '-destroy[Select the "destroy" planning mode, which creates a plan to destroy all objects currently managed by this Terraform configuration instead of the usual behavior.]' \ + '-detailed-exitcode[Return detailed exit codes when the command exits. This will change the meaning of exit codes to: 0 - Succeeded, diff is empty (no changes); 1 - Errored, 2 - Succeeded; there is a diff]' \ + '-input=[(true) Ask for input for variables if not directly set.]:input:(true false)' \ + '-generate-config-out=[(path) (Experimental) If import blocks are present in configuration, instructs Terraform to generate HCL for any imported resources not already present. The configuration is written to a new file at PATH, which must not already exist. Terraform may still attempt to write configuration if the plan errors.]:generate_config_out:' \ + '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]:lock_timeout:' \ + '-no-color[If specified, output will contain no color.]' \ + '-out=[(path) Write a plan file to the given path. This can be used as input to the "apply" command.]:out:' \ + '-parallelism=[(10) Limit the number of concurrent operations.]:parallelism:' \ + '-refresh=[(true) Skip checking for external changes to remote objects while creating the plan. This can potentially make planning faster, but at the expense of possibly planning against a stale record of the remote system state.]:refresh:(true false)' \ + '-refresh-only[Select the "refresh only" planning mode, which checks whether remote objects still match the outcome of the most recent Terraform apply but does not propose any actions to undo any changes made outside of Terraform.]' \ + '*-replace=[(resource) Force replacement of a particular resource instance using its resource address. If the plan would'\''ve normally produced an update or no-op action for this instance, Terraform will plan to replace it instead. You can use this option multiple times to replace more than one object.]:replace:__terraform_state_resources' \ + '-state=[(statefile) Path to a Terraform state file to use to look up Terraform-managed resources. By default it will use the state "terraform.tfstate" if it exists.]:statefile:_files -W __chdir -g "*.tfstate"' \ + '*-target=[(resource) Limit the planning operation to only the given module, resource, or resource instance and all of its dependencies. You can use this option multiple times to include more than one object. This is for exceptional use only.]:target:__terraform_state_resources' \ + '*-var=[(for=bar) Set a value for one of the input variables in the root module of the configuration. Use this option more than once to set more than one variable.]:var:' \ + '*-var-file=[(foo) Load variable values from the given file, in addition to the default files terraform.tfvars and *.auto.tfvars. Use this option more than once to include more than one variables file.]:file:_files -W __chdir -g "*.tfvars{,.json}"' +} + +(( ${+functions[_terraform_providers]} )) || _terraform_providers() { + _arguments \ + '-test-directory=[(path) Set the Terraform test directory, defaults to "tests".]:test_directory:_files -W __chdir -/' \ + '*::terraform providers command:_terraform_providers_commands' +} + +(( ${+functions[_terraform_providers_commands]} )) || _terraform_providers_commands() { + local -a _providers_cmds + _providers_cmds=( + 'lock:Write out dependency locks for the configured providers' + 'mirror:Save local copies of all required provider plugins' + 'schema:Show schemas for the providers used in the configuration' + ) + if (( CURRENT == 1 )); then + _describe -t commands "terraform providers commands" _providers_cmds + return + fi + + local curcontext="${curcontext}" + cmd="${${_providers_cmds[(r)$words[1]:*]%%:*}}" + curcontext="${curcontext%:*:*}:terraform-providers-${cmd}:" + + if (( ${+functions[_terraform_providers_$cmd]} )); then + "_terraform_providers_${cmd}" + else + _message "no more options" + fi +} + +(( ${+functions[_terraform_providers_lock]} )) || _terraform_providers_lock() { + _arguments \ + '-fs-mirror=[(dir) Consult the given filesystem mirror directory instead of the origin registry for each of the given providers.]:fs_mirror:_files -W __chdir -/' \ + '-net-mirror=[(url) Consult the given network mirror (given as a base URL) instead of the origin registry for each of the given providers.]:net_mirror:' \ + '*-platform=[(os_arch) Choose a target platform to request package checksums for.]:platform:' \ + '*:provider:' +} + +(( ${+functions[_terraform_providers_mirror]} )) || _terraform_providers_mirror() { + _arguments \ + '*-platform=[(os_arch) Choose which target platform to build a mirror for.]:platform:' \ + '::' \ + ':target_dir:_files -W __chdir -/' +} + +(( ${+functions[_terraform_providers_schema]} )) || _terraform_providers_schema() { + _arguments \ + '-json[]' +} + +(( ${+functions[_terraform_refresh]} )) || _terraform_refresh() { + _arguments \ + '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]::backupfile:_files -W __chdir -g "*.backup"' \ + '-compact-warnings[If Terraform produces any warnings that are not accompanied by errors, show them in a more compact form that includes only the summary messages.]' \ + '-input=[(true) Ask for input for variables if not directly set.]:input:(true false)' \ + '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]:lock_timeout:' \ + '-no-color[If specified, output will not contain any color.]' \ + '-parallelism=[(10) Limit the number of parallel resource operations.]:parallelism:' \ + '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]:statefile:_files -W __chdir -g "*.tfstate"' \ + '-state-out=[(path) Path to write state to that is different than "-state". This can be used to preserve the old state.]:statefile:_files -W __chdir -g "*.tfstate"' \ + '*-target=[(resource) A Resource Address to target. Operation will be limited to this resource and its dependencies. This flag can be used multiple times.]:target:__terraform_state_resources' \ + '*-var=[(for=bar) Set a variable in the Terraform configuration. This flag can be set multiple times.]:var:' \ + '*-var-file=[(foo) Set variables in the Terraform configuration from a file. If "terraform.tfvars" or any ".auto.tfvars" files are present, they will be automatically loaded.]:file:_files -W __chdir -g "*.tfvars{,.json}"' +} + +(( ${+functions[_terraform_show]} )) || _terraform_show() { + _arguments \ + '-json[If specified, output the Terraform plan or state in a machine-readable form.]' \ + '-no-color[If specified, output will not contain any color.]' \ + ':path:_files -W __chdir -g "*.tfstate"' +} + +(( ${+functions[_terraform_state]} )) || _terraform_state() { + _arguments \ + '*::terraform state command:_terraform_state_commands' +} + +(( ${+functions[_terraform_state_commands]} )) || _terraform_state_commands() { + local -a _state_cmds + _state_cmds=( + 'list:List resources in the state' + 'mv:Move an item in the state' + 'pull:Pull current state and output to stdout' + 'push:Update remote state from a local state file' + 'replace-provider:Replace provider in the state' + 'rm:Remove instances from the state' + 'show:Show a resource in the state' + ) + if (( CURRENT == 1 )); then + _describe -t commands "terraform state commands" _state_cmds + return + fi + + local curcontext="${curcontext}" + cmd="${${_state_cmds[(r)$words[1]:*]%%:*}}" + curcontext="${curcontext%:*:*}:terraform-state-${cmd}:" + + if (( ${+functions[_terraform_state_$cmd]} )); then + "_terraform_state_${cmd}" + else + _message "no more options" + fi +} + +(( ${+functions[_terraform_state_list]} )) || _terraform_state_list() { + _arguments \ + '-state=[(statefile) Path to a Terraform state file to use to look up Terraform-managed resources. By default, Terraform will consult the state of the currently-selected workspace.]:statefile:_files -W __chdir -g "*.tfstate"' \ + '-id=[(id) Filters the results to include only instances whose resource types have an attribute named id whose value equals the given id string.]:id:' \ + '*:address:__terraform_state_resources' +} + +(( ${+functions[_terraform_state_mv]} )) || _terraform_state_mv() { + _arguments \ + '-dry-run[If set, prints out what would'\''ve been moved but doesn'\''t actually move anything.]' \ + '-backup=[(PATH) Path where Terraform should write the backup for the original state. This can"t be disabled. If not set, Terraform will write it to the same path as the statefile with a ".backup" extension.]:backupfile:_files -W __chdir -g "*.backup"' \ + '-backup-out=[(PATH) Path where Terraform should write the backup for the destination state. This can"t be disabled. If not set, Terraform will write it to the same path as the destination state file with a backup extension. This only needs to be specified if -state-out is set to a different path than -state.]:backupfile:_files -W __chdir -g "*.backup"' \ + '-ignore-remote-version[A rare option used for the remote backend only. See the remote backend documentation for more information.]' \ + '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]:lock_timeout:' \ + '-state=[(path) Path to the source state file. Defaults to the configured backend, or "terraform.tfstate"]:statefile:_files -W __chdir -g "*.tfstate"' \ + '-state-out=[(path) Path to the destination state file to write to. If this isn"t specified, the source state file will be used. This can be a new or existing path.]:statefile:_files -W __chdir -g "*.tfstate"' \ + '::' \ + ':source:__terraform_state_resources' \ + ':destination: ' +} + +(( ${+functions[_terraform_state_push]} )) || _terraform_state_push() { + _arguments \ + '-force[Write the state even if lineages don'\''t match or the remote serial is higher.]' \ + '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]:lock_timeout:' \ + '::' \ + ':destination:_files' +} + +(( ${+functions[_terraform_state_replace-provider]} )) || _terraform_state_replace-provider() { _arguments \ '-auto-approve[Skip interactive approval.]' \ - '-backup=[(PATH) Path where Terraform should write the backup for the state file. This can"t be disabled. If not set, Terraform will write it to the same path as the state file with a ".backup" extension.]:backupfile:_files -g "*.backup"' \ - "-lock=[(true) Lock the state files when locking is supported.]:lock:(true false)" \ - "-lock-timeout=[(0s) Duration to retry a state lock.]" \ - '-state=[(PATH) Path to the source state file. Defaults to the configured backend, or "terraform.tfstate"]:statefile:_files -g "*.tfstate"' \ - ":from_provider_fqn:" \ - ":to_provider_fqn:" + '-backup=[(PATH) Path where Terraform should write the backup for the state file. This can"t be disabled. If not set, Terraform will write it to the same path as the state file with a ".backup" extension.]:backupfile:_files -W __chdir -g "*.backup"' \ + '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]:lock_timeout:' \ + '-state=[(PATH) Path to the source state file. Defaults to the configured backend, or "terraform.tfstate"]:statefile:_files -W __chdir -g "*.tfstate"' \ + '::' \ + ':from_provider_fqn:' \ + ':to_provider_fqn:' } -__state_rm() { +(( ${+functions[_terraform_state_rm]} )) || _terraform_state_rm() { _arguments \ - "-dry-run[If set, prints out what would've been removed but doesn't actually remove anything.]" \ - '-backup=[(PATH) Path where Terraform should write the backup for the original state.]::backupfile:_files -g "*.backup"' \ - "-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)" \ - "-lock-timeout=[(0s) Duration to retry a state lock.]" \ - '-state=[(PATH) Path to the state file to update. Defaults to the current workspace state.]:statefile:_files -g "*.tfstate"' \ - "*:address:__statelist" + '-dry-run[If set, prints out what would'\''ve been removed but doesn'\''t actually remove anything.]' \ + '-backup=[(PATH) Path where Terraform should write the backup for the original state.]::backupfile:_files -W __chdir -g "*.backup"' \ + '-ignore-remote-version[Continue even if remote and local Terraform versions are incompatible. This may result in an unusable workspace, and should be used with extreme caution.]' \ + '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]:lock_timeout:' \ + '-state=[(PATH) Path to the state file to update. Defaults to the current workspace state.]:statefile:_files -W __chdir -g "*.tfstate"' \ + '*:address:__terraform_state_resources' } - -__state_show() { +(( ${+functions[_terraform_state_show]} )) || _terraform_state_show() { _arguments \ - '-state=[(statefile) Path to a Terraform state file to use to look up Terraform-managed resources. By default it will use the state "terraform.tfstate" if it exists.]:statefile:_files -g "*.tfstate"' \ - "*:address:__statelist" + '-state=[(statefile) Path to a Terraform state file to use to look up Terraform-managed resources. By default it will use the state "terraform.tfstate" if it exists.]:statefile:_files -W __chdir -g "*.tfstate"' \ + "*:address:__terraform_state_resources" } -__statelist() { - compadd $(terraform state list $opt_args[-state]) +(( ${+functions[__terraform_state_resources]} )) || __terraform_state_resources() { + local resource + local -a resources + terraform -chdir="${__chdir}" state list -state="${opt_args[-state]}" 2>/dev/null | while read -r resource; do + resources+=( "${resource}" ) + done + compadd "${@}" - "${resources[@]}" } -__taint() { - _arguments \ - '-allow-missing[If specified, the command will succeed (exit code 0) even if the resource is missing.]' \ - '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -g "*.backup"' \ - '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ - '-module=[(path) The module path where the resource lives. By default this will be root. Child modules can be specified by names. Ex. "consul" or "consul.vpc" (nested modules).]' \ - '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]:statefile:_files -g "*.tfstate"' \ - '-state-out=[(path) Path to write updated state file. By default, the "-state" path will be used.]:statefile:_files -g "*.tfstate"' \ - "*:address:__statelist" -} - -__untaint() { - _arguments \ +(( ${+functions[_terraform_taint]} )) || _terraform_taint() { + _arguments \ '-allow-missing[If specified, the command will succeed (exit code 0) even if the resource is missing.]' \ - '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -g "*.backup"' \ - '-lock=[(true) Lock the state file when locking is supported.]:lock:(true false)' \ - '-lock-timeout=[(0s) Duration to retry a state lock.]' \ - '-module=[(path) The module path where the resource lives. By default this will be root. Child modules can be specified by names. Ex. "consul" or "consul.vpc" (nested modules).]' \ - '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]:statefile:_files -g "*.tfstate"' \ - '-state-out=[(path) Path to write updated state file. By default, the "-state" path will be used.]:statefile:_files -g "*.tfstate"' + '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -W __chdir -g "*.backup"' \ + '-ignore-remote-version[A rare option used for the remote backend only. See the remote backend documentation for more information.]' \ + '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]:lock_timeout:' \ + '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]:statefile:_files -W __chdir -g "*.tfstate"' \ + '-state-out=[(path) Path to write updated state file. By default, the "-state" path will be used.]:statefile:_files -W __chdir -g "*.tfstate"' \ + '*:address:__terraform_state_resources' } -__validate() { - _arguments \ - '-no-color[If specified, output will not contain any color.]' \ +(( ${+functions[_terraform_test]} )) || _terraform_test() { + _arguments \ + '-cloud-run=[(source) If specified, Terraform will execute this test run remotely using Terraform Cloud. You must specify the source of a module registered in a private module registry as the argument to this flag. This allows Terraform to associate the cloud run with the correct Terraform Cloud module and organization.]:cloud_run:' \ + '*-filter=[(testfile) If specified, Terraform will only execute the test files specified by this flag. You can use this option multiple times to execute more than one test file.]:testfile:_files -W __chdir -g "*.tftest.hcl"' \ + '-json[If specified, machine readable output will be printed in JSON format]' \ + '-no-color[If specified, machine readable output will be printed in JSON format]' \ + '-test-directory=[(path) Set the Terraform test directory, defaults to "tests".]:test_directory:_files -W __chdir -/' \ + '*-var=[(for=bar) Set a value for one of the input variables in the root module of the configuration. Use this option more than once to set more than one variable.]:var:' \ + '*-var-file=[(foo) Load variable values from the given file, in addition to the default files terraform.tfvars and *.auto.tfvars. Use this option more than once to include more than one variables file.]:file:_files -W __chdir -g "*.tfvars{,.json}"' \ + '-verbose[Print the plan or state for each test run block as it executes.]' \ +} + +(( ${+functions[_terraform_untaint]} )) || _terraform_untaint() { + _arguments \ + '-allow-missing[If specified, the command will succeed (exit code 0) even if the resource is missing.]' \ + '-backup=[(path) Path to backup the existing state file before modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup.]:backupfile:_files -W __chdir -g "*.backup"' \ + '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]:lock_timeout:' \ + '-state=[(path) Path to read and save state (unless state-out is specified). Defaults to "terraform.tfstate".]:statefile:_files -W __chdir -g "*.tfstate"' \ + '-state-out=[(path) Path to write updated state file. By default, the "-state" path will be used.]:statefile:_files -W __chdir -g "*.tfstate"' \ + ':name:__terraform_state_resources' +} + +(( ${+functions[_terraform_validate]} )) || _terraform_validate() { + _arguments \ '-json[Produce output in a machine-readable JSON format, suitable for use in text editor integrations and other automated systems.]' \ - ':dir:_files -/' + '-no-color[If specified, output will not contain any color.]' \ + '-no-tests[If specified, Terraform will not validate test files.]' \ + '-test-directory=[(path) Set the Terraform test directory, defaults to "tests".]:test_directory:_files -W __chdir -/' \ + ':dir:_files -W __chdir -/' } -__version() { - _arguments \ - '-json[Output the version information as a JSON object.]' +(( ${+functions[_terraform_version]} )) || _terraform_version() { + _arguments \ + '-json[Output the version information as a JSON object.]' \ + '::' } -__workspace() { - local -a __workspace_cmds - __workspace_cmds=( - 'delete:Delete a workspace' - 'list:List Workspaces' - 'new:Create a new workspace' - 'select:Select a workspace' - 'show:Show the name of the current workspace' - ) - _describe -t workspace "workspace commands" __workspace_cmds +(( ${+functions[_terraform_workspace]} )) || _terraform_workspace() { + _arguments \ + '*::terraform workspace command:_terraform_workspace_commands' } -_arguments '*:: :->command' +(( ${+functions[_terraform_workspace_commands]} )) || _terraform_workspace_commands() { + local -a _workspace_cmds + _workspace_cmds=( + 'delete:Delete a workspace' + 'list:List Workspaces' + 'new:Create a new workspace' + 'select:Select a workspace' + 'show:Show the name of the current workspace' + ) + if (( CURRENT == 1 )); then + _describe -t commands "terraform workspace commands" _workspace_cmds + return + fi -if (( CURRENT == 1 )); then - _describe -t commands "terraform command" _terraform_cmds - return + local curcontext="${curcontext}" + cmd="${${_workspace_cmds[(r)$words[1]:*]%%:*}}" + curcontext="${curcontext%:*:*}:terraform-workspace-${cmd}:" + + if (( ${+functions[_terraform_workspace_$cmd]} )); then + "_terraform_workspace_${cmd}" + else + _message "no more options" + fi +} + +(( ${+functions[_terraform_workspace_delete]} )) || _terraform_workspace_delete() { + _arguments \ + '-force[Remove a workspace even if it is managing resources. Terraform can no longer track or manage the workspace'\''s infrastructure.]' \ + '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]:lock_timeout:' \ + '::' \ + ':name:__terraform_workspaces' +} + +(( ${+functions[_terraform_workspace_list]} )) || _terraform_workspace_list() { + _arguments +} + +(( ${+functions[_terraform_workspace_new]} )) || _terraform_workspace_new() { + _arguments \ + '-lock=[(true) Don'\''t hold a state lock during the operation. This is dangerous if others might concurrently run commands against the same workspace.]:lock:(true false)' \ + '-lock-timeout=[(0s) Duration to retry a state lock.]:lock_timeout:' \ + '-state=[(path) Copy an existing state file into the new workspace.]:statefile:_files -W __chdir -g "*.tfstate"' \ + '::' \ + ':name:' +} + +(( ${+functions[_terraform_workspace_select]} )) || _terraform_workspace_select() { + _arguments \ + '-or-create=[(false) Create the Terraform workspace if it doesn'\''t exist.]:or_create:(true false)' \ + '::' \ + ':name:__terraform_workspaces' +} + +(( ${+functions[_terraform_workspace_show]} )) || _terraform_workspace_show() { + _arguments +} + +(( ${+functions[__terraform_workspaces]} )) || __terraform_workspaces() { + local workspace + local -a workspaces + terraform -chdir="${__chdir}" workspace list | while read -r workspace; do + if [[ -z "${workspace}" ]]; then + continue + fi + workspaces+=( "${workspace#[ *] }" ) + done + compadd "${@}" - "${workspaces[@]}" +} + +_terraform() { + _arguments \ + '-chdir=[(DIR) Switch to a different working directory before executing the given subcommand.]:chdir:_files -W __chdir -/' \ + '-help[Show this help output, or the help for a specified subcommand.]' \ + '-version[An alias for the "version" subcommand.]' \ + '*::terraform command:_terraform_commands' +} + +# don't run the completion function when being source-ed or eval-ed +if [ "${funcstack[1]}" = '_terraform' ]; then + _terraform fi - -local -a _command_args -case "$words[1]" in - 0.12upgrade) - __012upgrade ;; - 0.13upgrade) - __013upgrade ;; - apply) - __apply ;; - console) - __console;; - destroy) - __destroy ;; - fmt) - __fmt;; - force-unlock) - __force_unlock;; - get) - __get ;; - graph) - __graph ;; - import) - __import;; - init) - __init ;; - login) - __login ;; - logout) - __logout ;; - output) - __output ;; - plan) - __plan ;; - providers) - test $CURRENT -lt 3 && __providers - [[ $words[2] = "mirror" ]] && __providers_mirror - [[ $words[2] = "schema" ]] && __providers_schema - ;; - refresh) - __refresh ;; - show) - __show ;; - state) - test $CURRENT -lt 3 && __state - [[ $words[2] = "list" ]] && __state_list - [[ $words[2] = "mv" ]] && __state_mv - [[ $words[2] = "push" ]] && __state_push - [[ $words[2] = "replace-provider" ]] && __state_replace_provider - [[ $words[2] = "rm" ]] && __state_rm - [[ $words[2] = "show" ]] && __state_show - ;; - taint) - __taint ;; - untaint) - __untaint ;; - validate) - __validate ;; - version) - __version ;; - workspace) - test $CURRENT -lt 3 && __workspace ;; -esac diff --git a/plugins/terraform/terraform.plugin.zsh b/plugins/terraform/terraform.plugin.zsh index 7006f204b..8ef392efd 100644 --- a/plugins/terraform/terraform.plugin.zsh +++ b/plugins/terraform/terraform.plugin.zsh @@ -8,6 +8,13 @@ function tf_prompt_info() { echo "${ZSH_THEME_TF_PROMPT_PREFIX-[}${workspace:gs/%/%%}${ZSH_THEME_TF_PROMPT_SUFFIX-]}" } +function tf_version_prompt_info() { + local terraform_version + terraform_version=$(terraform --version | head -n 1 | cut -d ' ' -f 2) + echo "${ZSH_THEME_TF_VERSION_PROMPT_PREFIX-[}${terraform_version:gs/%/%%}${ZSH_THEME_TF_VERSION_PROMPT_SUFFIX-]}" +} + + alias tf='terraform' alias tfa='terraform apply' alias tfc='terraform console' @@ -17,3 +24,6 @@ alias tfi='terraform init' alias tfo='terraform output' alias tfp='terraform plan' alias tfv='terraform validate' +alias tfs='terraform state' +alias tft='terraform test' +alias tfsh='terraform show' diff --git a/plugins/thor/README.md b/plugins/thor/README.md index 09c705d9a..484c88b84 100644 --- a/plugins/thor/README.md +++ b/plugins/thor/README.md @@ -1,6 +1,6 @@ # Thor plugin -This plugin adds completion for [Thor](http://whatisthor.com/), +This plugin adds completion for [Thor](http://whatisthor.com/), a ruby toolkit for building powerful command-line interfaces. To use it, add `thor` to the plugins array in your zshrc file: diff --git a/plugins/tig/tig.plugin.zsh b/plugins/tig/tig.plugin.zsh index 7e0c530ac..5b7d2550a 100644 --- a/plugins/tig/tig.plugin.zsh +++ b/plugins/tig/tig.plugin.zsh @@ -1,3 +1,5 @@ alias tis='tig status' alias til='tig log' alias tib='tig blame -C' +alias tif='tig reflog' +alias tia='tig --all' diff --git a/plugins/tmux/README.md b/plugins/tmux/README.md index 7348f77c9..09952a9f5 100644 --- a/plugins/tmux/README.md +++ b/plugins/tmux/README.md @@ -1,7 +1,7 @@ # tmux -This plugin provides aliases for [tmux](https://tmux.github.io/), the terminal multiplexer. -To use it add `tmux` to the plugins array in your zshrc file. +This plugin provides aliases for [tmux](https://tmux.github.io/), the terminal multiplexer. To use it add +`tmux` to the plugins array in your zshrc file. ```zsh plugins=(... tmux) @@ -19,25 +19,28 @@ The plugin also supports the following: | ---------- | -------------------------- | -------------------------------------------------------- | | `ta` | tmux attach -t | Attach new tmux session to already running named session | | `tad` | tmux attach -d -t | Detach named tmux session | -| `ts` | tmux new-session -s | Create a new named tmux session | -| `tl` | tmux list-sessions | Displays a list of running tmux sessions | -| `tksv` | tmux kill-server | Terminate all running tmux sessions | +| `tds` | `_tmux_directory_session` | Creates or attaches to a session for the current path | | `tkss` | tmux kill-session -t | Terminate named running tmux session | +| `tksv` | tmux kill-server | Terminate all running tmux sessions | +| `tl` | tmux list-sessions | Displays a list of running tmux sessions | | `tmux` | `_zsh_tmux_plugin_run` | Start a new tmux session | | `tmuxconf` | `$EDITOR $ZSH_TMUX_CONFIG` | Open .tmux.conf file with an editor | +| `ts` | tmux new-session -s | Create a new named tmux session | ## Configuration Variables -| Variable | Description | -| ----------------------------------- | ----------------------------------------------------------------------------- | -| `ZSH_TMUX_AUTOSTART` | Automatically starts tmux (default: `false`) | -| `ZSH_TMUX_AUTOSTART_ONCE` | Autostart only if tmux hasn't been started previously (default: `true`) | -| `ZSH_TMUX_AUTOCONNECT` | Automatically connect to a previous session if it exits (default: `true`) | -| `ZSH_TMUX_AUTOQUIT` | Automatically closes terminal once tmux exits (default: `ZSH_TMUX_AUTOSTART`) | -| `ZSH_TMUX_FIXTERM` | Sets `$TERM` to 256-color term or not based on current terminal support | -| `ZSH_TMUX_ITERM2` | Sets the `-CC` option for iTerm2 tmux integration (default: `false`) | -| `ZSH_TMUX_FIXTERM_WITHOUT_256COLOR` | `$TERM` to use for non 256-color terminals (default: `screen`) | -| `ZSH_TMUX_FIXTERM_WITH_256COLOR` | `$TERM` to use for 256-color terminals (default: `screen-256color` | -| `ZSH_TMUX_CONFIG` | Set the configuration path (default: `$HOME/.tmux.conf`) | -| `ZSH_TMUX_UNICODE` | Set `tmux -u` option to support unicode | -| `ZSH_TMUX_DEFAULT_SESSION_NAME` | Set tmux default session name when autostart is enabled | +| Variable | Description | +| ----------------------------------- | ----------------------------------------------------------------------------------------------------------- | +| `ZSH_TMUX_AUTOSTART` | Automatically starts tmux (default: `false`) | +| `ZSH_TMUX_AUTOSTART_ONCE` | Autostart only if tmux hasn't been started previously (default: `true`) | +| `ZSH_TMUX_AUTOCONNECT` | Automatically connect to a previous session if it exits (default: `true`) | +| `ZSH_TMUX_AUTOQUIT` | Automatically closes terminal once tmux exits (default: `ZSH_TMUX_AUTOSTART`) | +| `ZSH_TMUX_CONFIG` | Set the configuration path (default: `$HOME/.tmux.conf`, `$XDG_CONFIG_HOME/tmux/tmux.conf`) | +| `ZSH_TMUX_DEFAULT_SESSION_NAME` | Set tmux default session name when autostart is enabled | +| `ZSH_TMUX_AUTONAME_SESSION` | Automatically name new sessions based on the basename of `$PWD` (default: `false`) | +| `ZSH_TMUX_DETACHED` | Set the detached mode (default: `false`) | +| `ZSH_TMUX_FIXTERM` | Sets `$TERM` to 256-color term or not based on current terminal support | +| `ZSH_TMUX_FIXTERM_WITHOUT_256COLOR` | `$TERM` to use for non 256-color terminals (default: `tmux` if available, `screen` otherwise) | +| `ZSH_TMUX_FIXTERM_WITH_256COLOR` | `$TERM` to use for 256-color terminals (default: `tmux-256color` if available, `screen-256color` otherwise) | +| `ZSH_TMUX_ITERM2` | Sets the `-CC` option for iTerm2 tmux integration (default: `false`) | +| `ZSH_TMUX_UNICODE` | Set `tmux -u` option to support unicode | diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh index 311c2e6a9..f65598358 100644 --- a/plugins/tmux/tmux.plugin.zsh +++ b/plugins/tmux/tmux.plugin.zsh @@ -13,33 +13,63 @@ fi : ${ZSH_TMUX_AUTOCONNECT:=true} # Automatically close the terminal when tmux exits : ${ZSH_TMUX_AUTOQUIT:=$ZSH_TMUX_AUTOSTART} +# Automatically name the new session based on the basename of PWD +: ${ZSH_TMUX_AUTONAME_SESSION:=false} # Set term to screen or screen-256color based on current terminal support +: ${ZSH_TMUX_DETACHED:=false} +# Set detached mode : ${ZSH_TMUX_FIXTERM:=true} # Set '-CC' option for iTerm2 tmux integration : ${ZSH_TMUX_ITERM2:=false} # The TERM to use for non-256 color terminals. -# Tmux states this should be screen, but you may need to change it on +# Tmux states this should be tmux|screen, but you may need to change it on # systems without the proper terminfo -: ${ZSH_TMUX_FIXTERM_WITHOUT_256COLOR:=screen} +if [[ -e /usr/share/terminfo/t/tmux ]]; then + : ${ZSH_TMUX_FIXTERM_WITHOUT_256COLOR:=tmux} +else + : ${ZSH_TMUX_FIXTERM_WITHOUT_256COLOR:=screen} +fi # The TERM to use for 256 color terminals. -# Tmux states this should be screen-256color, but you may need to change it on +# Tmux states this should be (tmux|screen)-256color, but you may need to change it on # systems without the proper terminfo -: ${ZSH_TMUX_FIXTERM_WITH_256COLOR:=screen-256color} +if [[ -e /usr/share/terminfo/t/tmux-256color ]]; then + : ${ZSH_TMUX_FIXTERM_WITH_256COLOR:=tmux-256color} +else + : ${ZSH_TMUX_FIXTERM_WITH_256COLOR:=screen-256color} +fi # Set the configuration path -: ${ZSH_TMUX_CONFIG:=$HOME/.tmux.conf} +if [[ -e $HOME/.tmux.conf ]]; then + : ${ZSH_TMUX_CONFIG:=$HOME/.tmux.conf} +elif [[ -e ${XDG_CONFIG_HOME:-$HOME/.config}/tmux/tmux.conf ]]; then + : ${ZSH_TMUX_CONFIG:=${XDG_CONFIG_HOME:-$HOME/.config}/tmux/tmux.conf} +else + : ${ZSH_TMUX_CONFIG:=$HOME/.tmux.conf} +fi # Set -u option to support unicode : ${ZSH_TMUX_UNICODE:=false} # ALIASES +function _build_tmux_alias { + eval "function $1 { + if [[ -z \$1 ]] || [[ \${1:0:1} == '-' ]]; then + tmux $2 \"\$@\" + else + tmux $2 $3 \"\$@\" + fi + }" +} -alias ta='tmux attach -t' -alias tad='tmux attach -d -t' -alias ts='tmux new-session -s' -alias tl='tmux list-sessions' alias tksv='tmux kill-server' -alias tkss='tmux kill-session -t' +alias tl='tmux list-sessions' alias tmuxconf='$EDITOR $ZSH_TMUX_CONFIG' +_build_tmux_alias "ta" "attach" "-t" +_build_tmux_alias "tad" "attach -d" "-t" +_build_tmux_alias "ts" "new-session" "-s" +_build_tmux_alias "tkss" "kill-session" "-t" + +unfunction _build_tmux_alias + # Determine if the terminal supports 256 colors if [[ $terminfo[colors] == 256 ]]; then export ZSH_TMUX_TERM=$ZSH_TMUX_FIXTERM_WITH_256COLOR @@ -72,11 +102,26 @@ function _zsh_tmux_plugin_run() { [[ "$ZSH_TMUX_ITERM2" == "true" ]] && tmux_cmd+=(-CC) [[ "$ZSH_TMUX_UNICODE" == "true" ]] && tmux_cmd+=(-u) - # Try to connect to an existing session. - if [[ -n "$ZSH_TMUX_DEFAULT_SESSION_NAME" ]]; then - [[ "$ZSH_TMUX_AUTOCONNECT" == "true" ]] && $tmux_cmd attach -t $ZSH_TMUX_DEFAULT_SESSION_NAME + local _detached="" + [[ "$ZSH_TMUX_DETACHED" == "true" ]] && _detached="-d" + + local session_name + if [[ "$ZSH_TMUX_AUTONAME_SESSION" == "true" ]]; then + # Name the session after the basename of the current directory + session_name=${PWD##*/} + # If the current directory is the home directory, name it 'HOME' + [[ "$PWD" == "$HOME" ]] && session_name="HOME" + # If the current directory is the root directory, name it 'ROOT' + [[ "$PWD" == "/" ]] && session_name="ROOT" else - [[ "$ZSH_TMUX_AUTOCONNECT" == "true" ]] && $tmux_cmd attach + session_name="$ZSH_TMUX_DEFAULT_SESSION_NAME" + fi + + # Try to connect to an existing session. + if [[ -n "$session_name" ]]; then + [[ "$ZSH_TMUX_AUTOCONNECT" == "true" ]] && $tmux_cmd attach $_detached -t "$session_name" + else + [[ "$ZSH_TMUX_AUTOCONNECT" == "true" ]] && $tmux_cmd attach $_detached fi # If failed, just run tmux, fixing the TERM variable if requested. @@ -86,8 +131,9 @@ function _zsh_tmux_plugin_run() { elif [[ -e "$ZSH_TMUX_CONFIG" ]]; then tmux_cmd+=(-f "$ZSH_TMUX_CONFIG") fi - if [[ -n "$ZSH_TMUX_DEFAULT_SESSION_NAME" ]]; then - $tmux_cmd new-session -s $ZSH_TMUX_DEFAULT_SESSION_NAME + + if [[ -n "$session_name" ]]; then + $tmux_cmd new-session -s "$session_name" else $tmux_cmd new-session fi @@ -103,8 +149,21 @@ compdef _tmux _zsh_tmux_plugin_run # Alias tmux to our wrapper function. alias tmux=_zsh_tmux_plugin_run +function _tmux_directory_session() { + # current directory without leading path + local dir=${PWD##*/} + # md5 hash for the full working directory path + local md5=$(printf '%s' "$PWD" | md5sum | cut -d ' ' -f 1) + # human friendly unique session name for this directory + local session_name="${dir}-${md5:0:6}" + # create or attach to the session + tmux new -As "$session_name" +} + +alias tds=_tmux_directory_session + # Autostart if not already in tmux and enabled. -if [[ -z "$TMUX" && "$ZSH_TMUX_AUTOSTART" == "true" && -z "$INSIDE_EMACS" && -z "$EMACS" && -z "$VIM" ]]; then +if [[ -z "$TMUX" && "$ZSH_TMUX_AUTOSTART" == "true" && -z "$INSIDE_EMACS" && -z "$EMACS" && -z "$VIM" && -z "$INTELLIJ_ENVIRONMENT_READER" ]]; then # Actually don't autostart if we already did and multiple autostarts are disabled. if [[ "$ZSH_TMUX_AUTOSTART_ONCE" == "false" || "$ZSH_TMUX_AUTOSTARTED" != "true" ]]; then export ZSH_TMUX_AUTOSTARTED=true diff --git a/plugins/toolbox/README.md b/plugins/toolbox/README.md index abaca31f4..bc04a906b 100644 --- a/plugins/toolbox/README.md +++ b/plugins/toolbox/README.md @@ -22,4 +22,5 @@ RPROMPT='$(toolbox_prompt_info)' | Alias | Command | Description | |-------|----------------------|----------------------------------------| -| tb | `toolbox enter` | Enters the toolbox environment | +| tbe | `toolbox enter` | Enters the toolbox environment | +| tbr | `toolbox run` | Run a command in an existing toolbox | diff --git a/plugins/toolbox/toolbox.plugin.zsh b/plugins/toolbox/toolbox.plugin.zsh index d24d6d396..377e498cd 100644 --- a/plugins/toolbox/toolbox.plugin.zsh +++ b/plugins/toolbox/toolbox.plugin.zsh @@ -2,4 +2,5 @@ function toolbox_prompt_info() { [[ -f /run/.toolboxenv ]] && echo "β¬’" } -alias tb="toolbox enter" +alias tbe="toolbox enter" +alias tbr="toolbox run" diff --git a/plugins/ubuntu/README.md b/plugins/ubuntu/README.md index 2401c102b..20f5c65ee 100644 --- a/plugins/ubuntu/README.md +++ b/plugins/ubuntu/README.md @@ -15,7 +15,7 @@ Commands that use `$APT` will use `apt` if installed or defer to `apt-get` other | Alias | Command | Description | |---------|--------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------| | age | `sudo $APT` | Run apt-get with sudo | -| acse | `apt-cache search` | Search the apt-cache with the specified criteria | +| acs | `apt-cache search` | Search the apt-cache with the specified criteria | | acsp | `apt-cache showpkg` | Shows information about the listed packages | | acp | `apt-cache policy` | Display the package source priorities | | afs | `apt-file search --regexp` | Perform a regular expression apt-file search | diff --git a/plugins/ubuntu/ubuntu.plugin.zsh b/plugins/ubuntu/ubuntu.plugin.zsh index 4d35da2ac..7b765a406 100644 --- a/plugins/ubuntu/ubuntu.plugin.zsh +++ b/plugins/ubuntu/ubuntu.plugin.zsh @@ -1,6 +1,6 @@ (( $+commands[apt] )) && APT=apt || APT=apt-get -alias acse='apt-cache search' +alias acs='apt-cache search' alias afs='apt-file search --regexp' diff --git a/plugins/ufw/README.md b/plugins/ufw/README.md index ac377cd17..ffcc6d6f7 100644 --- a/plugins/ufw/README.md +++ b/plugins/ufw/README.md @@ -10,7 +10,7 @@ plugins=(... ufw) Some of the commands include: -* `allow /` add an allow rule +* `allow /` add an allow rule * `default` set default policy * `delete /` delete RULE * `deny /` add deny rule diff --git a/plugins/vagrant-prompt/README.md b/plugins/vagrant-prompt/README.md index c5bc55d17..dd0ca363b 100644 --- a/plugins/vagrant-prompt/README.md +++ b/plugins/vagrant-prompt/README.md @@ -1,6 +1,6 @@ This plugin prompts the status of the Vagrant VMs. It supports single-host and multi-host configurations as well. -Look inside the source for documentation about custom variables. +Look inside the source for documentation about custom variables. Alberto Re diff --git a/plugins/vi-mode/README.md b/plugins/vi-mode/README.md index 0cb516751..6e781f296 100644 --- a/plugins/vi-mode/README.md +++ b/plugins/vi-mode/README.md @@ -37,6 +37,8 @@ plugins=(... vi-mode) - `INSERT_MODE_INDICATOR`: controls the string displayed when the shell is in insert mode. See [Mode indicators](#mode-indicators) for details. +- `VI_MODE_DISABLE_CLIPBOARD`: If set, disables clipboard integration on yank/paste + ## Mode indicators *Normal mode* is indicated with a red `<<<` mark at the right prompt, when it @@ -53,7 +55,7 @@ INSERT_MODE_INDICATOR="%F{yellow}+%f" ### Adding mode indicators to your prompt -`Vi-mode` by default will add mode indicators to `RPROMPT` **unless** that is defined by +`Vi-mode` by default will add mode indicators to `RPROMPT` **unless** that is defined by a preceding plugin. If `PROMPT` or `RPROMPT` is not defined to your liking, you can add mode info manually. The `vi_mode_prompt_info` function is available to insert mode indicator information. @@ -144,11 +146,17 @@ NOTE: this used to be bound to `v`. That is now the default (`visual-mode`). - `c{motion}` : Delete {motion} text and start insert - `cc` : Delete line and start insert - `C` : Delete to the end of the line and start insert +- `P` : Insert the contents of the clipboard before the cursor +- `p` : Insert the contents of the clipboard after the cursor - `r{char}` : Replace the character under the cursor with {char} - `R` : Enter replace mode: Each character replaces existing one - `x` : Delete `count` characters under and after the cursor - `X` : Delete `count` characters before the cursor +NOTE: delete/kill commands (`dd`, `D`, `c{motion}`, `C`, `x`,`X`) and yank commands +(`y`, `Y`) will copy to the clipboard. Contents can then be put back using paste commands +(`P`, `p`). + ## Known issues ### Low `$KEYTIMEOUT` diff --git a/plugins/vi-mode/vi-mode.plugin.zsh b/plugins/vi-mode/vi-mode.plugin.zsh index 9a410c1fb..5c104f7bb 100644 --- a/plugins/vi-mode/vi-mode.plugin.zsh +++ b/plugins/vi-mode/vi-mode.plugin.zsh @@ -43,12 +43,32 @@ function _vi-mode-set-cursor-shape-for-keymap() { printf $'\e[%d q' "${_shape}" } +function _visual-mode { + typeset -g VI_KEYMAP=visual + _vi-mode-set-cursor-shape-for-keymap "$VI_KEYMAP" + zle .visual-mode +} +zle -N visual-mode _visual-mode + +function _vi-mode-should-reset-prompt() { + # If $VI_MODE_RESET_PROMPT_ON_MODE_CHANGE is unset (default), dynamically + # check whether we're using the prompt to display vi-mode info + if [[ -z "${VI_MODE_RESET_PROMPT_ON_MODE_CHANGE:-}" ]]; then + [[ "${PS1} ${RPS1}" = *'$(vi_mode_prompt_info)'* ]] + return $? + fi + + # If $VI_MODE_RESET_PROMPT_ON_MODE_CHANGE was manually set, let's check + # if it was specifically set to true or it was disabled with any other value + [[ "${VI_MODE_RESET_PROMPT_ON_MODE_CHANGE}" = true ]] +} + # Updates editor information when the keymap changes. function zle-keymap-select() { # update keymap variable for the prompt typeset -g VI_KEYMAP=$KEYMAP - if [[ "${VI_MODE_RESET_PROMPT_ON_MODE_CHANGE:-}" = true ]]; then + if _vi-mode-should-reset-prompt; then zle reset-prompt zle -R fi @@ -59,10 +79,9 @@ zle -N zle-keymap-select # These "echoti" statements were originally set in lib/key-bindings.zsh # Not sure the best way to extend without overriding. function zle-line-init() { - local prev_vi_keymap - prev_vi_keymap="${VI_KEYMAP:-}" + local prev_vi_keymap="${VI_KEYMAP:-}" typeset -g VI_KEYMAP=main - [[ "$prev_vi_keymap" != 'main' ]] && [[ "${VI_MODE_RESET_PROMPT_ON_MODE_CHANGE:-}" = true ]] && zle reset-prompt + [[ "$prev_vi_keymap" != 'main' ]] && _vi-mode-should-reset-prompt && zle reset-prompt (( ! ${+terminfo[smkx]} )) || echoti smkx _vi-mode-set-cursor-shape-for-keymap "${VI_KEYMAP}" } @@ -128,9 +147,19 @@ function wrap_clipboard_widgets() { done } -wrap_clipboard_widgets copy vi-yank vi-yank-eol vi-backward-kill-word vi-change-whole-line vi-delete vi-delete-char -wrap_clipboard_widgets paste vi-put-{before,after} -unfunction wrap_clipboard_widgets +if [[ -z "${VI_MODE_DISABLE_CLIPBOARD:-}" ]]; then + wrap_clipboard_widgets copy \ + vi-yank vi-yank-eol vi-yank-whole-line \ + vi-change vi-change-eol vi-change-whole-line \ + vi-kill-line vi-kill-eol vi-backward-kill-word \ + vi-delete vi-delete-char vi-backward-delete-char + + wrap_clipboard_widgets paste \ + vi-put-{before,after} \ + put-replace-selection + + unfunction wrap_clipboard_widgets +fi # if mode indicator wasn't setup by theme, define default, we'll leave INSERT_MODE_INDICATOR empty by default if [[ -z "$MODE_INDICATOR" ]]; then @@ -138,13 +167,6 @@ if [[ -z "$MODE_INDICATOR" ]]; then fi function vi_mode_prompt_info() { - # If we're using the prompt to display mode info, and we haven't explicitly - # disabled "reset prompt on mode change", then set it here. - # - # We do that here instead of the `if` statement below because the user may - # set RPS1/RPROMPT to something else in their custom config. - : "${VI_MODE_RESET_PROMPT_ON_MODE_CHANGE:=true}" - echo "${${VI_KEYMAP/vicmd/$MODE_INDICATOR}/(main|viins)/$INSERT_MODE_INDICATOR}" } diff --git a/plugins/vim-interaction/README.md b/plugins/vim-interaction/README.md index 681648018..c2b45f1d8 100644 --- a/plugins/vim-interaction/README.md +++ b/plugins/vim-interaction/README.md @@ -3,7 +3,7 @@ The plugin presents a function called `callvim` whose usage is: usage: callvim [-b cmd] [-a cmd] [file ... fileN] - + -b cmd Run this command in GVIM before editing the first file -a cmd Run this command in GVIM after editing the first file file The file to edit diff --git a/plugins/vim-interaction/vim-interaction.plugin.zsh b/plugins/vim-interaction/vim-interaction.plugin.zsh index b73f9b4da..a12b52bd5 100644 --- a/plugins/vim-interaction/vim-interaction.plugin.zsh +++ b/plugins/vim-interaction/vim-interaction.plugin.zsh @@ -2,7 +2,7 @@ # See README.md # # Derek Wyatt (derek@{myfirstnamemylastname}.org -# +# function callvim { if [[ $# == 0 ]]; then diff --git a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh index d359e0c21..1a3ae37b8 100644 --- a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh +++ b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh @@ -52,7 +52,7 @@ if [[ ! $DISABLE_VENV_CD -eq 1 ]]; then else ENV_NAME="" fi - + if [[ -n $CD_VIRTUAL_ENV && "$ENV_NAME" != "$CD_VIRTUAL_ENV" ]]; then # We've just left the repo, deactivate the environment # Note: this only happens if the virtualenv was activated automatically @@ -88,4 +88,5 @@ if [[ ! $DISABLE_VENV_CD -eq 1 ]]; then # http://zsh.sourceforge.net/Doc/Release/Functions.html autoload -U add-zsh-hook add-zsh-hook chpwd workon_cwd + [[ $PWD != ~ ]] && workon_cwd fi diff --git a/plugins/vscode/README.md b/plugins/vscode/README.md index e95ed5d4f..f91b533c9 100644 --- a/plugins/vscode/README.md +++ b/plugins/vscode/README.md @@ -1,6 +1,7 @@ # VS Code -This plugin provides useful aliases to simplify the interaction between the command line and VS Code or VSCodium editor. +This plugin provides useful aliases to simplify the interaction between the command line and VS Code or +VSCodium editor. To start using it, add the `vscode` plugin to your `plugins` array in `~/.zshrc`: @@ -14,26 +15,30 @@ This plugin requires to have a flavour of VS Code installed and it's executable You can install either: -* VS Code (code) -* VS Code Insiders (code-insiders) -* VSCodium (codium) +- VS Code (code) +- VS Code Insiders (code-insiders) +- VSCodium (codium) ### MacOS + While Linux installations will add the executable to PATH, MacOS users might still have to do this manually: -[For VS Code and VS Code Insiders](https://code.visualstudio.com/docs/setup/mac#_launching-from-the-command-line), open -the Command Palette via (F1 or β‡§βŒ˜P) and type shell command to find the Shell Command: +[For VS Code and VS Code Insiders](https://code.visualstudio.com/docs/setup/mac#_launching-from-the-command-line), +open the Command Palette via (F1 or β‡§βŒ˜P) and type shell command to find the Shell Command: + > Shell Command: Install 'code' command in PATH -[For VSCodium](https://github.com/VSCodium/vscodium/blob/master/DOCS.md#how-do-i-open-vscodium-from-the-terminal), open -the Command Palette via (F1 or β‡§βŒ˜P) and type shell command to find the Shell Command: +[For VSCodium](https://github.com/VSCodium/vscodium/blob/master/DOCS.md#how-do-i-open-vscodium-from-the-terminal), +open the Command Palette via (F1 or β‡§βŒ˜P) and type shell command to find the Shell Command: + > Shell Command: Install 'codium' command in PATH ## Using multiple flavours -If for any reason, you ever require to use multiple flavours of VS Code i.e. VS Code (stable) and VS Code Insiders, you can -manually specify the flavour's executable. Add the following line to the .zshrc file (between the `ZSH_THEME` and the `plugins=()` lines). -This will make the plugin use your manually defined executable. +If for any reason, you ever require to use multiple flavours of VS Code i.e. VS Code (stable) and VS Code +Insiders, you can manually specify the flavour's executable. Add the following line to the .zshrc file +(between the `ZSH_THEME` and the `plugins=()` lines). This will make the plugin use your manually defined +executable. ```zsh ZSH_THEME=... @@ -53,6 +58,7 @@ source $ZSH/oh-my-zsh.sh | Alias | Command | Description | | ----------------------- | ------------------------------ | ----------------------------------------------------------------------------------------------------------- | | vsc | code . | Open the current folder in VS code | +| vsc `dir` | code `dir` | Open passed folder in VS code | | vsca `dir` | code --add `dir` | Add folder(s) to the last active window | | vscd `file` `file` | code --diff `file` `file` | Compare two files with each other. | | vscg `file:line[:char]` | code --goto `file:line[:char]` | Open a file at the path on the specified line and character position. | @@ -60,6 +66,7 @@ source $ZSH/oh-my-zsh.sh | vscr | code --reuse-window | Force to open a file or folder in the last active window. | | vscw | code --wait | Wait for the files to be closed before returning. | | vscu `dir` | code --user-data-dir `dir` | Specifies the directory that user data is kept in. Can be used to open multiple distinct instances of Code. | +| vscp `profile` | code --profile `profile` | Specifies the profile to open Code with. | ## Extensions aliases diff --git a/plugins/vscode/vscode.plugin.zsh b/plugins/vscode/vscode.plugin.zsh index 48d904377..77367bcac 100644 --- a/plugins/vscode/vscode.plugin.zsh +++ b/plugins/vscode/vscode.plugin.zsh @@ -3,6 +3,7 @@ # https://github.com/MarsiBarsi (original author) # https://github.com/babakks # https://github.com/SteelShot +# https://github.com/AliSajid # Verify if any manual user choice of VS Code exists first. if [[ -n "$VSCODE" ]] && ! which $VSCODE &>/dev/null; then @@ -23,7 +24,14 @@ if [[ -z "$VSCODE" ]]; then fi fi -alias vsc="$VSCODE ." +function vsc { + if (( $# )); then + $VSCODE $@ + else + $VSCODE . + fi +} + alias vsca="$VSCODE --add" alias vscd="$VSCODE --diff" alias vscg="$VSCODE --goto" @@ -31,6 +39,7 @@ alias vscn="$VSCODE --new-window" alias vscr="$VSCODE --reuse-window" alias vscw="$VSCODE --wait" alias vscu="$VSCODE --user-data-dir" +alias vscp="$VSCODE --profile" alias vsced="$VSCODE --extensions-dir" alias vscie="$VSCODE --install-extension" diff --git a/plugins/wd/README.md b/plugins/wd/README.md index 1d1980632..0ad74e805 100644 --- a/plugins/wd/README.md +++ b/plugins/wd/README.md @@ -153,7 +153,7 @@ wd .. wd ... ``` -This is a wrapper for the zsh's `dirs` function. +This is a wrapper for the zsh's `dirs` function. _You might need to add `setopt AUTO_PUSHD` to your `.zshrc` if you are not using [oh-my-zsh](https://github.com/ohmyzsh/ohmyzsh)._ * Remove warp point: diff --git a/plugins/wd/_wd.sh b/plugins/wd/_wd.sh index 8d5cf15a2..52ecb12e6 100644 --- a/plugins/wd/_wd.sh +++ b/plugins/wd/_wd.sh @@ -77,7 +77,7 @@ function _wd() { # complete sub directories from the warp point _path_files -W "(${points[$target]})" -/ && ret=0 fi - + # don't complete anything if warp point is not valid ;; esac diff --git a/plugins/wd/wd.sh b/plugins/wd/wd.sh index e51cf906a..840e92d61 100644 --- a/plugins/wd/wd.sh +++ b/plugins/wd/wd.sh @@ -396,7 +396,7 @@ fi # disable extendedglob for the complete wd execution time setopt | grep -q extendedglob wd_extglob_is_set=$? -[[ $wd_extglob_is_set ]] && setopt noextendedglob +(( ! $wd_extglob_is_set )) && setopt noextendedglob # load warp points typeset -A points @@ -484,7 +484,7 @@ fi # if not, next time warp will pick up variables from this run # remember, there's no sub shell -[[ $wd_extglob_is_set ]] && setopt extendedglob +(( ! $wd_extglob_is_set )) && setopt extendedglob unset wd_extglob_is_set unset wd_warp diff --git a/plugins/web-search/README.md b/plugins/web-search/README.md index 0bf9f26ad..d21c81ca9 100644 --- a/plugins/web-search/README.md +++ b/plugins/web-search/README.md @@ -12,8 +12,8 @@ plugins=( ... web-search) You can use the `web-search` plugin in these two forms: -* `web_search [more terms if you want]` -* ` [more terms if you want]` +- `web_search [more terms if you want]` +- ` [more terms if you want]` For example, these two are equivalent: @@ -24,43 +24,47 @@ $ google oh-my-zsh Available search contexts are: -| Context | URL | -| --------------------- | ---------------------------------------- | -| `bing` | `https://www.bing.com/search?q=` | -| `google` | `https://www.google.com/search?q=` | -| `brs` or `brave` | `https://search.brave.com/search?q=` | -| `yahoo` | `https://search.yahoo.com/search?p=` | -| `ddg` or `duckduckgo` | `https://www.duckduckgo.com/?q=` | -| `sp` or `startpage` | `https://www.startpage.com/do/search?q=` | -| `yandex` | `https://yandex.ru/yandsearch?text=` | -| `github` | `https://github.com/search?q=` | -| `baidu` | `https://www.baidu.com/s?wd=` | -| `ecosia` | `https://www.ecosia.org/search?q=` | -| `goodreads` | `https://www.goodreads.com/search?q=` | -| `qwant` | `https://www.qwant.com/?q=` | -| `givero` | `https://www.givero.com/search?q=` | -| `stackoverflow` | `https://stackoverflow.com/search?q=` | -| `wolframalpha` | `https://wolframalpha.com/input?i=` | -| `archive` | `https://web.archive.org/web/*/` | -| `scholar` | `https://scholar.google.com/scholar?q=` | -| `ask` | `https://www.ask.com/web?q=` | +| Context | URL | +| --------------------- | ----------------------------------------------- | +| `bing` | `https://www.bing.com/search?q=` | +| `google` | `https://www.google.com/search?q=` | +| `brs` or `brave` | `https://search.brave.com/search?q=` | +| `yahoo` | `https://search.yahoo.com/search?p=` | +| `ddg` or `duckduckgo` | `https://www.duckduckgo.com/?q=` | +| `sp` or `startpage` | `https://www.startpage.com/do/search?q=` | +| `yandex` | `https://yandex.ru/yandsearch?text=` | +| `github` | `https://github.com/search?q=` | +| `baidu` | `https://www.baidu.com/s?wd=` | +| `ecosia` | `https://www.ecosia.org/search?q=` | +| `goodreads` | `https://www.goodreads.com/search?q=` | +| `qwant` | `https://www.qwant.com/?q=` | +| `givero` | `https://www.givero.com/search?q=` | +| `stackoverflow` | `https://stackoverflow.com/search?q=` | +| `wolframalpha` | `https://wolframalpha.com/input?i=` | +| `archive` | `https://web.archive.org/web/*/` | +| `scholar` | `https://scholar.google.com/scholar?q=` | +| `ask` | `https://www.ask.com/web?q=` | +| `youtube` | `https://www.youtube.com/results?search_query=` | +| `deepl` | `https://www.deepl.com/translator#auto/auto/` | +| `dockerhub` | `https://hub.docker.com/search?q=` | +| `npmpkg` | `https://www.npmjs.com/search?q=` | +| `packagist` | `https://packagist.org/?query=` | +| `gopkg` | `https://pkg.go.dev/search?m=package&q=` | Also there are aliases for bang-searching DuckDuckGo: | Context | Bang | -|-----------|-------| +| --------- | ----- | | `wiki` | `!w` | | `news` | `!n` | -| `youtube` | `!yt` | | `map` | `!m` | | `image` | `!i` | | `ducky` | `!` | ### Custom search engines -If you want to add other search contexts to the plugin, you can use the -`$ZSH_WEB_SEARCH_ENGINES` variable. Set it before Oh My Zsh is sourced, -with the following format: +If you want to add other search contexts to the plugin, you can use the `$ZSH_WEB_SEARCH_ENGINES` variable. +Set it before Oh My Zsh is sourced, with the following format: ```zsh ZSH_WEB_SEARCH_ENGINES=( @@ -69,13 +73,12 @@ ZSH_WEB_SEARCH_ENGINES=( ) ``` -where `` is the name of the search context, and `` a URL of -the same type as the search contexts above. For example, to add `reddit`, -you'd do: +where `` is the name of the search context, and `` a URL of the same type as the search contexts +above. For example, to add `reddit`, you'd do: ```zsh ZSH_WEB_SEARCH_ENGINES=(reddit "https://www.reddit.com/search/?q=") ``` -These custom search engines will also be turned to aliases, so you can -both do `web_search reddit ` or `reddit `. +These custom search engines will also be turned to aliases, so you can both do `web_search reddit ` or +`reddit `. diff --git a/plugins/web-search/web-search.plugin.zsh b/plugins/web-search/web-search.plugin.zsh index ec176dd68..c602e0623 100644 --- a/plugins/web-search/web-search.plugin.zsh +++ b/plugins/web-search/web-search.plugin.zsh @@ -25,6 +25,12 @@ function web_search() { archive "https://web.archive.org/web/*/" scholar "https://scholar.google.com/scholar?q=" ask "https://www.ask.com/web?q=" + youtube "https://www.youtube.com/results?search_query=" + deepl "https://www.deepl.com/translator#auto/auto/" + dockerhub "https://hub.docker.com/search?q=" + npmpkg "https://www.npmjs.com/search?q=" + packagist "https://packagist.org/?query=" + gopkg "https://pkg.go.dev/search?m=package&q=" ) # check whether the search engine is supported @@ -35,9 +41,14 @@ function web_search() { # search or go to main page depending on number of arguments passed if [[ $# -gt 1 ]]; then + # if search goes in the query string ==> space as +, otherwise %20 + # see https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20 + local param="-P" + [[ "$urls[$1]" == *\?*= ]] && param="" + # build search url: # join arguments passed with '+', then append to search engine URL - url="${urls[$1]}$(omz_urlencode ${@[2,-1]})" + url="${urls[$1]}$(omz_urlencode $param ${@[2,-1]})" else # build main page url: # split by '/', then rejoin protocol (1) and domain (2) parts with '//' @@ -66,11 +77,16 @@ alias wolframalpha='web_search wolframalpha' alias archive='web_search archive' alias scholar='web_search scholar' alias ask='web_search ask' +alias youtube='web_search youtube' +alias deepl='web_search deepl' +alias dockerhub='web_search dockerhub' +alias npmpkg='web_search npmpkg' +alias packagist='web_search packagist' +alias gopkg='web_search gopkg' #add your own !bang searches here alias wiki='web_search duckduckgo \!w' alias news='web_search duckduckgo \!n' -alias youtube='web_search duckduckgo \!yt' alias map='web_search duckduckgo \!m' alias image='web_search duckduckgo \!i' alias ducky='web_search duckduckgo \!' diff --git a/plugins/xcode/xcode.plugin.zsh b/plugins/xcode/xcode.plugin.zsh index 5d1f901a3..f09434e69 100644 --- a/plugins/xcode/xcode.plugin.zsh +++ b/plugins/xcode/xcode.plugin.zsh @@ -17,6 +17,13 @@ function xc { local active_path active_path=${"$(xcode-select -p)"%%/Contents/Developer*} echo "Found ${xcode_files[1]}. Opening with ${active_path}" + + # If Xcode is already opened in another Desk, we need this double call + # with -g to open the project window in the current Desk and focus it. + # See https://github.com/ohmyzsh/ohmyzsh/issues/10384 + if command pgrep -q "^Xcode"; then + open -g -a "$active_path" "${xcode_files[1]}" + fi open -a "$active_path" "${xcode_files[1]}" } diff --git a/plugins/yarn/_yarn b/plugins/yarn/_yarn index 1237ba672..9ffe5660c 100644 --- a/plugins/yarn/_yarn +++ b/plugins/yarn/_yarn @@ -86,7 +86,7 @@ _global_commands=( ) _yarn_find_package_json() { - local dir=$(cd "$1" && pwd) + local dir=$(builtin cd "$1" && pwd) while true do @@ -109,7 +109,7 @@ _yarn_commands_scripts() { if [[ -n $opt_args[--cwd] ]]; then packageJson=$(_yarn_find_package_json $opt_args[--cwd]) - binaries=($(cd $opt_args[--cwd] && echo node_modules/.bin/*(x:t))) + binaries=($(builtin cd $opt_args[--cwd] && echo node_modules/.bin/*(x:t))) else packageJson=$(_yarn_find_package_json $pwd) binaries=($(echo node_modules/.bin/*(x:t))) @@ -130,9 +130,9 @@ _yarn_scripts() { if [[ -n $_yarn_run_cwd ]]; then packageJson=$(_yarn_find_package_json $_yarn_run_cwd) if [[ -d "${_yarn_run_cwd}/node_modules" ]]; then - binaries=($(cd $_yarn_run_cwd && echo node_modules/.bin/*(x:t))) + binaries=($(builtin cd $_yarn_run_cwd && echo node_modules/.bin/*(x:t))) else - binaries=($(cd $_yarn_run_cwd && yarn bin | perl -wln -e 'm{^[^:]+: (\S+)$} and print $1')) + binaries=($(builtin cd $_yarn_run_cwd && yarn bin | perl -wln -e 'm{^[^:]+: (\S+)$} and print $1')) fi else packageJson=$(_yarn_find_package_json $pwd) @@ -144,7 +144,7 @@ _yarn_scripts() { fi if [[ -n $packageJson ]]; then - scripts=("${(@f)$(cat ${packageJson} | perl -0777 -MJSON::PP -n -E '%r=%{decode_json($_)->{scripts}}; do{$k=$_;($e=$k)=~s/:/\\:/g; printf "$e:$r{$k}\n"} for sort keys %r')}") + scripts=("${(@f)$(cat ${packageJson} | perl -0777 -MJSON::PP -n -E 'binmode(STDOUT, ":encoding(UTF-8)"); %r=%{decode_json($_)->{scripts}}; do{$k=$_;($e=$k)=~s/:/\\:/g; printf "$e:$r{$k}\n"} for sort keys %r')}") fi commands=('env' $scripts $binaries) diff --git a/plugins/z/LICENSE b/plugins/z/LICENSE index d1cca7ae5..6af13b9e0 100644 --- a/plugins/z/LICENSE +++ b/plugins/z/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2018-2022 Alexandros Kozak +Copyright (c) 2018-2023 Alexandros Kozak Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/plugins/z/MANUAL.md b/plugins/z/MANUAL.md index dcca3c452..106d8c107 100644 --- a/plugins/z/MANUAL.md +++ b/plugins/z/MANUAL.md @@ -1,5 +1,11 @@ # Zsh-z +[![MIT License](img/mit_license.svg)](https://opensource.org/licenses/MIT) +![Zsh version 4.3.11 and higher](img/zsh_4.3.11_plus.svg) +[![GitHub stars](https://img.shields.io/github/stars/agkozak/zsh-z.svg)](https://github.com/agkozak/zsh-z/stargazers) + +![Zsh-z demo](img/demo.gif) + Zsh-z is a command line tool that allows you to jump quickly to directories that you have visited frequently in the past, or recently -- but most often a combination of the two (a concept known as ["frecency"](https://en.wikipedia.org/wiki/Frecency)). It works by keeping track of when you go to directories and how much time you spend in them. It is then in the position to guess where you want to go when you type a partial string, e.g., `z src` might take you to `~/src/zsh`. `z zsh` might also get you there, and `z c/z` might prove to be even more specific -- it all depends on your habits and how much time you have been using Zsh-z to build up a database. After using Zsh-z for a little while, you will get to where you want to be by typing considerably less than you would need if you were using `cd`. Zsh-z is a native Zsh port of [rupa/z](https://github.com/rupa/z), a tool written for `bash` and Zsh that uses embedded `awk` scripts to do the heavy lifting. It was quite possibly my most used command line tool for a couple of years. I decided to translate it, `awk` parts and all, into pure Zsh script, to see if by eliminating calls to external tools (`awk`, `sort`, `date`, `sed`, `mv`, `rm`, and `chown`) and reducing forking through subshells I could make it faster. The performance increase is impressive, particularly on systems where forking is slow, such as Cygwin, MSYS2, and WSL. I have found that, in those environments, switching directories using Zsh-z can be over 100% faster than it is using `rupa/z`. @@ -28,6 +34,16 @@ Zsh-z is a drop-in replacement for `rupa/z` and will, by default, use the same d
Here are the latest features and updates. +- August 24, 2023 + + Zsh-z will now run when `setopt NO_UNSET` has been enabled (props @ntninja). +- August 23, 2023 + + Better logic for loading `zsh/files` (props @z0rc) +- August 2, 2023 + + Zsh-z still uses the `zsh/files` module when possible, but will fall back on the standard `chown`, `mv`, and `rm` commands in its absence. +- April 27, 2023 + + Zsh-z now allows the user to specify the directory-changing command using the `ZSHZ_CD` environment variable (default: `builtin cd`; props @basnijholt). +- January 27, 2023 + + If the datafile directory specified by `ZSHZ_DATA` or `_Z_DATA` does not already exist, create it (props @mattmc3). - June 29, 2022 + Zsh-z is less likely to leave temporary files sitting around (props @mafredri). - June 27, 2022 @@ -56,7 +72,7 @@ Zsh-z is a drop-in replacement for `rupa/z` and will, by default, use the same d + Temporarily disabling use of `print -v`, which seems to be mangling CJK multibyte strings. - July 27, 2021 + Internal escaping of path names now works with older versions of ZSH. - + Zsh-z now detects and discards any incomplete or incorrectly formattted database entries. + + Zsh-z now detects and discards any incomplete or incorrectly formatted database entries. - July 10, 2021 + Setting `ZSHZ_TRAILING_SLASH=1` makes it so that a search pattern ending in `/` can match the end of a path; e.g. `z foo/` can match `/path/to/foo`. - June 25, 2021 @@ -77,7 +93,7 @@ Zsh-z is a drop-in replacement for `rupa/z` and will, by default, use the same d - January 11, 2021 + Major refactoring of the code. + `z -lr` and `z -lt` work as expected. - + `EXTENDED_GLOB` has been disabled within the plugin to accomodate old-fashioned Windows directories with names such as `Progra~1`. + + `EXTENDED_GLOB` has been disabled within the plugin to accommodate old-fashioned Windows directories with names such as `Progra~1`. + Removed `zshelldoc` documentation. - January 6, 2021 + I have corrected the frecency routine so that it matches `rupa/z`'s math, but for the present, Zsh-z will continue to display ranks as 1/10000th of what they are in `rupa/z` -- [they had to multiply theirs by 10000](https://github.com/rupa/z/commit/f1f113d9bae9effaef6b1e15853b5eeb445e0712) to work around `bash`'s inadequacies at dealing with decimal fractions. @@ -94,13 +110,13 @@ Zsh-z is a drop-in replacement for `rupa/z` and will, by default, use the same d ### General observations -This script can be installed simply by downloading it and sourcing it from your `.zshrc`: +This plugin can be installed simply by putting the various files in a directory together and by sourcing `zsh-z.plugin.zsh` in your `.zshrc`: source /path/to/zsh-z.plugin.zsh -For tab completion to work, you will want to have loaded `compinit`. The frameworks handle this themselves. If you are not using a framework, put +For tab completion to work, `_zshz` *must* be in the same directory as `zsh-z.plugin.zsh`, and you will want to have loaded `compinit`. The frameworks handle this themselves. If you are not using a framework, put - autoload -U compinit && compinit + autoload -U compinit; compinit in your .zshrc somewhere below where you source `zsh-z.plugin.zsh`. @@ -118,13 +134,19 @@ Add the line to your `.zshrc`, somewhere above the line that says `antigen apply`. -### For [oh-my-zsh](http://ohmyz.sh/) users +### For [Oh My Zsh](http://ohmyz.sh/) users -Execute the following command: +Zsh-z is now included as part of Oh My Zsh! As long as you are using an up-to-date installation of Oh My Zsh, you can activate Zsh-z simply by adding `z` to your `plugins` array in your `.zshrc`, e.g., + + plugins=( git z ) + +It is as simple as that. + +If, however, you prefer always to use the latest version of Zsh-z from the `agkozak/zsh-z` repo, you may install it thus: git clone https://github.com/agkozak/zsh-z ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-z -and add `zsh-z` to the line of your `.zshrc` that specifies `plugins=()`, e.g., `plugins=( git zsh-z )`. +and activate it by adding `zsh-z` to the line of your `.zshrc` that specifies `plugins=()`, e.g., `plugins=( git zsh-z )`. ### For [prezto](https://github.com/sorin-ionescu/prezto) users @@ -166,7 +188,7 @@ Add a backslash to the end of the last line add `'zsh-z'` to the list, e.g., Then relaunch `zsh`. ### For [zcomet](https://github.com/agkozak/zcomet) users - + Simply add zcomet load agkozak/zsh-z @@ -246,6 +268,7 @@ to install `zsh-z`. Zsh-z has environment variables (they all begin with `ZSHZ_`) that change its behavior if you set them; you can also keep your old ones if you have been using `rupa/z` (they begin with `_Z_`). * `ZSHZ_CMD` changes the command name (default: `z`) +* `ZSHZ_CD` specifies the default directory-changing command (default: `builtin cd`) * `ZSHZ_COMPLETION` can be `'frecent'` (default) or `'legacy'`, depending on whether you want your completion results sorted according to frecency or simply sorted alphabetically * `ZSHZ_DATA` changes the database file (default: `~/.z`) * `ZSHZ_ECHO` displays the new path name when changing directories (default: `0`) diff --git a/plugins/z/_z b/plugins/z/_z index 9891a52ed..a493f35ba 100644 --- a/plugins/z/_z +++ b/plugins/z/_z @@ -5,7 +5,7 @@ # # https://github.com/agkozak/zsh-z # -# Copyright (c) 2018-2022 Alexandros Kozak +# Copyright (c) 2018-2023 Alexandros Kozak # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal diff --git a/plugins/z/img/demo.gif b/plugins/z/img/demo.gif new file mode 100644 index 0000000000000000000000000000000000000000..247f52f4d2667211f897fdbe2fb10d7b696b3e0a GIT binary patch literal 1271520 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
|TGYDAg2dH%C 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ⅈo9kvJU*Q@4^a!V+5U^5fQd;3Z* zMd8N+POA$|;zu6*lbGuGpRa5}cEGNluTo5h-XG~`Vf>Q76*rnN2TltVH)#C7` zT!DniJA>zWB{}zeIb}b4mn?6qh09Zw31+%Wx&&Q?4p+z?)pcn}5?Q?LNTDT5r*8<~ zmRHWMDh~s?;#nRyH@%ppt(VrrH~GxgRYwmSY`fUI!FyKSjvsDT*Dm&zA4!(`dSlt! zw-@{CSyB{OEj^sXE=_26Nl_Br>EUK}X<~m%ii)bGr&rjeNz;#{sG08c^eekGc|J?3 zhO4Dl(6mbh`vW-b-?a88&$u*oh4itzdlpVg@?en)PCBk#8o4WC(z|K9S<)1%E6rmg zo=rdKqQ=|4kf)KSSm|7khvCg7d<+NvH)~yb!)?h?bf!7yu*yB3G>gLJyv+rVl`g1w z7)TZMZ%i~+Sv7~loL$MkeL}Mo`@-i*A0`Uqc3qxdmEGpdv`U~vsb$U)se`_EP6{Tt z9FaWX;Ni@w#M|{`l7bK`gR6OwfBTcq^W}Nx=rRNZv`@Ig&f0j$VMgS()>TX93tr4{ zGPpHiM$?sLo24^c+A1$hta>KRk(uf7#!w*JD`ndCC0)k1m;?J<9xwBs8f|bTQlOaW zfh4EmOP8Rm33H|`k!D(X+-(*^!(z21D{3XPBe{h_dJhyUKhbcHIo&9*U5jO1(NPay z%}2idPFL4wonGbiEO5estQ1M6m050AtOT-(o~-%L^znGQoVUQXw3PYvN8hk6RN!m; z@MR{m=NeD0?g=O7rL16gT$isH+e)FpRSrFY6RxLS+qNQ`J&au`sK>!kY|UL? zJE=|l6E7UzaXhr6K={(F?lWe}j}16WT%9hSUbbZF_M>^%*|Y`9w4N+!apg#_=5AQq z^lUj3r?#uo>`9-Q6!xCp>SuVs@cNU8D+;w|^Xm47#WjA|zFhF*`r-{UZ#8OcKfsiz z=gt-*z|605P_c5Q=K)25KYmZ7G#QuInV#ADwvA=(JXwwo-c6UjZO}8~Z+q!tF>At& zt|dnWI}2>SR!!i}zi}*Lcb2o&oim+hl2@@Se!LbiN2p4zS?S7x|LYxlYMw}&OXlBy zdwPOma{tx1BXYkh^fOlZOqKB0Jn6?~d~MFmOLv}~l}@%jIsNdSvPZ`uEH8#I~;R-uvpzyjho4@|mtql+j;kGe*5jai+C6qpZGHH9#G(voUwiD{s~MBDNGCr9*zh8 z2M08i?Z5qCZjU)*l|mDv$sIa0-iizNdNB0%l4sRb-MNI z8_#xKe|pY|kM#iu@A2w;sTaO2I(+w8G5enHF@oX@8=7wDN*v&<*uuVVzwFII{+cJ| z%ehwXJfcpluz`zw@bN@xz?_Ki$%TG@K*T;C{5QD{o%F6As!VDEH*A(-sZq1*^ z>Mh|Qsdl{xTu!u1f6kaO7|JT@O#~x#WW=@_&mbKr%uD`$k{~p%{ z(YEUy|2Ov+pWgrW@qXqIMW!?MEGY*>f*j(r4{)4Wz`na=Q1 zRta8(bKh_?m#o*86&DwKOxB7$wPoeyQ&I5f_ypzCF+4j8<4(>n&i>{xb6x75+0NZ^ zXEzkzJ>TlNI__*$d;{YK%>)j{-DNRXRz|>I2c5-WIro4vbtVzT!3Z`BST z9v`FR^tg~EY-wZB;&>n@(}KfjJQn9)wb zVMC)s+uz@|0`bXTMKc~WPB-~3Q}~FrVKxJYn}%X-vdW?b1w4EnH(F%MJnk~Jeqd;j zVTj?Fo69Hn{9%_)P%g}1X1A@K#*>L2O4sJ} zva%E~ES~7;rl}fzw$Y)1Nl0YnqbV_Eol_+k&KRDMY&Ln`z{HYq-~bbM%z}lpgT zyYAk-)i*!e($nSP!#lN$YFe*e&F;twP77#W)#Tt~bNTYw$mRx3ZM9XamVWy5#wjY) zCnw|LrPIw9F1Q9eHmztfv@y?GyfCdHrEKSp(rG2uzMfuLY4%>$rKR~v$+5R?U3PS` zy>|Vgg_B8OX`y{spl?BrwTpSxoXU#X<+kpYj=pwgc19*v`ausYt_M6%m z9yqY`>C^kBW(Hb1YKCUInp!I67Dk5-?+FVJJay`5M@Q4wukUT`ED{o9($W(P3bH&r zo$ubg?w*oRx2QI=ExmDhW69KF=RgOSxF|bM>#VGlhNTV3)25W|*dE?c>+ENr-uLfb$ew}cpD2kZOyZ@MMNSI@5s$qX#sx+S+K$III_FvUMAI;?JSUD}*kS?w92 zS;4;XUgjgM1a8yOQD9^c;+-PImY zl<(&5n4Od69_mti>}W+5p42hW)VDC!)>GFv(Qa+6Z)m8RH*dzK zO>1N0B4*5(3|T9;XYV%u053m(&&QAN6&2_7_H~>;f6~>}e(Tot1?$(fwKX)HKK1O` z!;qRva|h!G4{rG-c>BeBN47TQu3T>GVQJ!M6P_Jn>Frj&YiGiQzT(M6UKy$8?oN66 znXlhG&0e~=a_^q%BZueCn_*^aWNBqwux@S2jH%U!4%Qt%W^AITrmh$i>`SQRC03pT zezF2m2`S1p!(*e;(GHXn(sR?2lan>jN=V;XV#R)Y;0LiIm5|HN&GAJoAzxouF18nG zVb|$vYB#!aA45-8sQCQK^~bkI_x8gVcGZ^4!4G0Ln`v?2$>|x!+4s)u+-X>f|DPf4 zXnX^USjK}!gTIUp!mPX<51IwsG#0w^`DHw8m57T-1fQ%>CtauUs6(YsJgHM-*$Sm% z^>r^EbsOBfmIPkdm2P}*#p6C3rDxIo4s4n#$(DSXPe2E;KLMYtFgd_Y^XZh3u*|1Z zBhpqrofcE(DI{Oq;u#|7T9Nr|rjnGxfmzNIog54$XBr;nxv?Pg`P>gHPo@P_bvQJL zNg6sZFbY1%e6jHHOU;G=X@Q0&wrXj;#-@!-2X&3O(2 z?B`63^reMZUccYpHc{~1EQvP;6AnBO(q`Dg;PLvvtR5Ce0a<4551fvo-Kz!JX9^fJ zJN91kZqWL0O1o$;OK!0d2gCL^o8poz797^$jo$c7mT76w8g3W+mH27S&D5Sebn{rE#%; zENp%tz14|9g00eUg*NlshtDM<`9(4pvMuy&u=svx_V?Et`c+R$&wsGMK{R$vWwV3D znw2LVE=k<`a3ETu<>)Mao|GfAcuxcc2y%2c=DDPm>}_}KzcQOm^v-&32T7K>c^Bl~ zY?J-{^F?tggR-QtQh-eMEdv3$L)xd-IC7n~zi^4k!)L--rWY0T~ zkh;rpVV^=-!u2ng+z)cOsTMG0FldNVF19}EP1Yy=s~BZT?p9BnDpC5?E}x6quPe zE@hCJ(CGOgUyzBD>A%j0hBUL_dj5qhj6M@4NN-y$Wio+*x9UTyyWkR`<|qR`o)=XgH?n#&@xA&1Annq-fQ)BC6}fX zU&#TBwkM3mk`o*Gyh0~M{O}av>ty4#+rSx-nscSt?5(V7^JlKkUwk_Dv z#1NmcI_|sHlu(2B8QERT@=ZZ3ks=ewr$7RT#uaS=)1qZZI^iXHoMXL&LcIK9qUZj z6*00kK66^Y%097)J4S)E#pBRUfe%N0CUD<=TD3h$M#DkaNuVi8poQa}gcIYn=mv3z zg9=^>>&>_d7; z_Cl`S58LSS8%t^mHC8<#!(A{pi3rWkRyB^Ai3H2@Y|tfV+Q-uAhk5Cp1Z1 zsEbK>;YsVZ6I1>Mv;<@%aIqY06_#;&qO&{lzgKjahXPkXhfw>^laF){D6%jzs2DtC z-Cw{sJMqsmCu_}f9EFa;6E>z9WV;A#VPFw*``GTy!6@49>M@)5>`N8JTMEl9TG&e_ z3drWOa2{hY5lBc#eNy)8s{1b!$2kVAOb*+x__cA!Xw_!&9cUCc+|ep6w<$A1dbax} zF%ChQKn69PBUdCMnbaeA8`Mn{*<>A&`{nEBRi-dDU<&|Sq*L8jy2 z;oZJ3nxgl(%x5cNOmeu_*ZyEH+s*B6Q2`8!KNWEQpsAy!j^Lx{^`_FR;FEf|CdqVlle_sf2t!KBoz!;Kpgx4pY?Qm>T$&%>34l*+u zuBkuB={b=2TKLA%vf8?@o0M0*O7s6c^TN7s+wwc#=JoHM`atjdF89uNW#_FYe^~c@ zAG127F%IpnCoy@m1j8ERrG;^7>WU==u}i`IYDlNr%flul*u~e|-o?or(yz7vUu)F1 zS!>CC-Mon!-f=34asIY8Ms4fbGE+mWtqqJUmDDv9Lvz%ood$Ju?R}Id9MXn#jQjS3 zI>SACv}=}V>gX$VY}1;1RmUq8T;PnGv2I)=my)DTx7=minNZ zicEDhwN!QV)s2j`W8)$WE%e^LeXgmi>K5v}aMA3YJ2%?~`No&W=J)62EL+mjQupA& zEfX8#rjW6n6i7%R_|D!vYk6xuU@T~U190z(z>Sg*|UdNuAB=hFM;&`Q)W)D zJ$|gBqImlBNf$4kc8Lmd_i$=Df8Nr?x@gnJpkUwRl-Ri5Zc_(~^o+#Qr;ipCWSKje zH7sqYIGJCM^ZWMx{{G=~JE!n|aAW-S{qx|) zIGe_U29_c>`CxXj6%U$j&o#Ux#^a{(utjI5gfSA{Q41%SyFrB<0t0ggkP~ z<$3b3LuVU@yf~8}lW-5GW5q=k_S!`Ol6v1>DCdd&(|9t0b)Llp31-%tLhY)&PERHW z99#CpC0}7myOYVLBgs=@%2rBBbNX^N^u$feOsfpwU{Pa8YTATDfA`s#mMlYZ4u{xNCco1WGP|C`@@BL6{Z$Xt8v+>En}6r!3bI_8aNx@obqD5;$I|;( zJy4rtTk(jU+0lWC_v+feKbiVIUXtVQ+}rf9!+iaZqqYJ8j?Q5M3ar2Wyic$8{vYhY z5Td}y-|?>c+-EU{BnJlR1Rr+Rhm4E{7xr`A$`r1O_F(V|U=Wdc(5!I9fvJ*}K~AHW z(llU6}9tHhGr-~a}`f`o%ob|(czIS+97m2H}GHb0f=;-Smo32rQ^4g$%h3l8z- zr5#q&I+f6^%pq=+&?s;5v1?Y-qoW&6xcX-bcEs`|FWXmPVmNDJP)f{g$?F^|O{Vqr z7St&1<`X+^b?apBxlN1Z&bGK`zx~*M06H`t4;lE%Ve)42#Hed6EcA=>V{)^?+t#%O z_&bFJyV%>C8W?EAMtR%X7-gk}LTa+aIKQ|UpX|(V&{?5cDw%I4xtZZ6raCE!f!5Xr;i2wH@c~77(FHkCsYyYhA#QQeJ`VOK7Uudk z)<($*0pGuW3<-1z4s>yMwes|^4hnSE(pK~Jae(ZWi;at@T~zz#%`*od8*P2n{Jz|r zWlOT!Gk5OX+_bXEAuOo0tl+_e+lv;@0o8EL4WB>1^$2%OtcMeLD4v&zH50(@dTV@jgt&!1U1v0&rIHJv-Ol9OX&x;jj(^s5f+Z|`VoJbU)c z*<%R_(G5!*5+?Q)6l8hDsWdg$ItMyTIjMc>)X|!yn)7eyI60Vw=BVZ6XBHLbsB0)z zR+fyUYLO;>#a7n}a6daKJjCnT{HdXJpd&?hKyDyBhg8>=c6T`>?Kro0clrC$kVpSl z28wh#I^Ms$I^O^8AJ^}19-p4S-=^o7@|VxA@1MVI2inoNBUFT|Rb9AJfiWpSh6!{7 z;fkN_0a5~C84p`+H6KoFGxqFw*sjn98u*&laa)%Eub_~)`O3sc-3G^I2#Se*Y?#o? zt+{YH2c{oSmR>$GNoC^szo8>pP{Be6^rl3C(~lgmMaCz znLSCKo-!>`u`g}e%4f55L=QciU2qI^r06xyN#YC(GM~?@`S$Yp{026y7Yka%vR*9g zP+Rq4QO_!|1B)lPajj&S5|)*@v^Q;}+b>fAix+L9IaT13Q&c z3=ZsPUcW%NJil+qe6xO1GAg*TGNeQ&e{Uf8r82E52XC>cDxq7JU06}>s%WlWzCnn9glKe z$t`CxS+Mroz15p`oNaU{*|4S9-H$)P`GVu?v)>=h+VpnP7G_JsHuqm;1_#(XcAx(7 ztd^Of(y@7a2=k38)!9tU%o+_pm<2V?{e0bK<+sbrWr9c{i#X2(CnimX4+j|-cKkDZ zbL9WaAHjmc4Ts*R)L*FjctN>pPw>h4-UnHDcN84jxz7E4?c67ZvG3O3ugl-}G5Y21 zH$UHO-#_8k!Cm_Q|1ce#ul@JO=KT6KKfk~K`)}o^`3#-x2LgCMG|bjsuu9;>0X9|^ z@GOoXq%vy&&+|fOao`=t@83Ue+rBX&F-BWgEhN~bufNm9$vnW{$;aD%_wKE0*Dl|@ zd2MlijE1IiMoI{z%V=StzjNp2N007azkW$qPvgOZTW02lLBYNjmPYLzO~HXKxmn>~ zzrJs6t$*?2QEy+z^XHH3?M<^Y!(*eoJw2=wU zLgQk5Qc~jbvm>>%R9sywQ_~WX69SwZ%plcaT(nPglvi$MM0BKAZf1B?xMzB5h?j?r zyQ`IhgK1Epvz4VmYEqDcy@`#rk-52^qoY|;e1L_yzP^EaS$Sb-h+B4cs=0-JNT7>} zsg9Acwx+hKp`ljo!Wu~3Y2#^|-XL0e7kcu+|?;2JTfl~(hE#$NU4}z(YmJ9CCD*l=JcTQlA>uEwa1TH`*}8}bKIW5?v0&ls z=$P<=f-GZutIi!-md>_@dp>BMdwap-eJ0Wq^#VKO zmYxDlb3;0gHWSVT?v>z`+>#O?{O~wt$8qM>g51Rce*PC=9mk0|aj=e~trXh<&9`zB zI*P%SS>YXyFeR;w@DiU(vi0)w{lFbZ{#&V;RVm-!KxT376@6Hle+trZoOSa0mwU7R zJ#~HY9#okjI*wu)4;neZ=VOB^v#SRgAGU~qDl>_+6%RqPIPl6W;}K{U=TVo=wjY5E z2FEm#dzh|dJnl8$1)9ZqW%0P*;E~3XUR$xuCllqFemv}rC2?p(wAm?4Ajfg`7Y#RCUk#)_GbXOvvaT%Mc0=;T2*)((dz&Y&Zj z>AlQ}3lDLZgDNwb%AyGznNKYbu(LWWaGcd7bn=Me=U3t$k<Yh zx}{!XQD$RJS)IFWB@Z_PkMELQExasOGF&&l5So2w%bRW5tC=)PCkpl`YbvVAZ-p)`5TDh5r40#-(C;oVFOB1ddC zpY<`XO+1!$a7Xb839eKasCe8b~@zqrB1I{80 zHC^v`bdSWaGP*oi_vaJWq0`&FcQG%hI>{t(p~=C=z`&K+ljnfb83uvI8YYE?1Al(L zcwg@2J89S6&l^}YF4oQxQVFbi&YWq;A|SY8_P_rOJc83RTJ%IND6m?+VBB~>`~aJk zfhTj!)ah~_2f4B|nuOL&Vl_W;kUg;=falEu4tI$K{7n;DG<+UTQ{r&?v+_f$flfas zyXax5TLRX`Q!ewCpKyNkq@c-`XORH2sE`1-UX+5=i_@6AS>!P~dEdW(Y;CO%3vqLE zu{5_ZD$0x2&{W>BV>4t;QWtm~QbA4>WUW$Ic;M#EYb`8|%*+jI>neKtI=+5=|Ki0X z$U-H^Dy53b;?lALEp1g}6TS3|B*+RReFLqg=9-3vD)`c(_3KyOym|Q~wxvb$=FNaF zErPEr+OTmo{8$-7L#?1-UpF@^$ayY?Mq2SPzA;hWx_W93_NLBG=4r`6wzkF*VeVOJ zp&>!8ZZ1{{3DJ;=`q;RLK!2yD4|Nj~W43MIsAHhy<8804qXrpL?(gq}j3h%=XjwQZ z!B=IiUAuhu?yaFYYAGpkx_TP$m00Q;ie=@6+1aT&`bwHQilDk2+j1-9wN~(jR*xRt zeg6E>g9o?TJDRRv2dzRGQdP{5bS&ojvmVAtlc!8!nm%LZj0uF+pG}y$Z}O~z)At-f zUw^h?|NcVzrz5np>)8{W=zkUC)_SMukGk+r1pD}%pd}Yo9x#k`; zpzG2)nIj`5>1oHYeqP-!8R&rSv_l#%A2%{`*k$po+yuSmp0h8NVY)%8(1MejA?wdv zPc7ACcJ$rJ!DX=E6$5+FGLsEjFWZ?|1K1dT{wiJ3uoQG`&gpHsj;ome`|Qzh2zTxi zWL9zAcxwA9{zZ9^b8`~i)9q@18f6$JGlZxg(YV0O!Y0aEp);YyC15h63x_L1&5kWE zFRuum&bQ%!Yokz%q{xd4L61+*F!Ee|4?Lo)%wbTiKEy7&ejj*1*PQFZA_qQZ2DS_bu1^oy zgerfjg6^&OC3b+9)#ieDxcyDD`;ENddU=s311GD4L1O4BOTz;~XBBTe?9$ox;*kqu zhk-Mr%$KJJSWbx=ItXxG`2GmAy5flivx<`_tG37n=1E+NDGbeQ{2Je#1(+omj|e#T zEPFHoe9!%v178_g-aiarW<4eNp+(5^z}M^362QI8bxh%*ydjE>0_qba7@W^t)dcl2 ztvdW04rRVr)MI9)vZ%odG@@I^q3JvoG@|<|_7?y01#Mbd`SUgzgGO|3g{{1~0yLug z?8qvEjn}eXuN67Fig(?fZ(8Y)c`r5OVw%`xs@t}2)X-G^`t`j&_)Z@9GF44270i{Y zn9EcX5@T9h>v!zf3@_Fp1$}K@MNqIWqz>rq>sY&Xc~@7GS80rcIyt;K8kf2Y0o1 zG@(@k*RNk9W`!wLiY2!H4h;n!I#T^7mK2@Lv6>%{n&7oIi1o%AGwHWg`yXtm@X?!n z{>7H6vw6Gkf7nsuxBm9~AA9P~Z~L`8x-p^#d3o!EiIXNzDXgz+YMhF)ytRCK*v#k^ zNXuLER)wyK+PNRLy!G(z@V(6^&Ow*AUS_@_BB^-eZo?U-Yp~_58FyJ(*zVrAf94gq zc=`Ej$(wf{m_Jp$mG;=M;9xU{u-VFj2Mw%DJW^&X5)3gGt&qiA%6j}PPF*516%@4l zA&a-3&gJJ2Fi}{bnC8QwX1w#x$<52pUz>0JdvEjfV1WzZ^{r8UFZM5*H3NJvPH3=S zXBbQQR`B}PdnaGzzP8y2E?>TJ+^k4r-8R>I`?}Z#`I=FCPH$g-e?QyqScL-*Gw)1p z5Y~=6V-aO8z#`&tVb}JJpb4Yhubw$DHuCa_=^S9#I`!FQP`jTc->HR<-)Wl7n&PdX z)m!TW!){G~2U@*le`xl$iw{ps*0zt`^Xb#`3yW{(o(ly{80`+SpADKYve|x`)qmff z%GO7M^Fi}PyS{9_dwRbAf5|_OzkYuGUz!EnBD&1Tz@Wpx0BRA%fLlau*RH8+C_$Ed z{`=SV{rkt}ix*8CtZNt5!qgeG9#NCZr&{U@uR7t!oA`2sqhF(udKA%TF+Ih;w`=1K!>UA z-rBmR)h8#TY}ZbEFYC}Sb8BDE;Ix2+i=uqXzkOSmwRmA$yYI=9x&8qr<>l@dFP)C*?r1!F zHn6lXts%uRJlNaE$T=#kbjP;IlS5vvdT4D`{+dG{Tc#l>3}O)509wTSQUDc-XA z>(?fG2c3h5GNU`&vX?H_(pBy2?@UOH*|>4_p~HJ1ZCwXP>zLT^wDd$*S9@na`@X)w zojX$}ObnhoH`3k1>CBnD@W#4;qWpvjeVJJfHUZwwfe!ojr56-B*DbDFvo?O^%D7|4 zvZqcB-LNsqKha0u!Z;++Y$otFO-p(65t) zALMs>+uBnb#O@;2dmiN$e|!%y#avs7yxubczTWfmb;Np4A;-mWXTj?|U$5$ePBGt} zvv&7(&=fQCb6v<3v$NVd$gp?4pALAWVDtBsb)XXC!D03PPxQc3%-xgy!BfnOuOFW8 zzklD~1E1c5r!K*Qwy@*GbvXc zyxy}4vffiU>B?QuNP&@AGPp%D!38u@;Gwqi3Ho|Z!IuXPP76J2l@1<7IhWdf zeR&j5d7Ybak!9`-txWZKK_3eo7);No9AD13X2S`kG`E(6^9>bNWq3%7{AXzLRS;1) z=#_J0gU_-(QafKV1eXSA`9^5`TI#l%?LwAYC)?gB1?M>d*Vt$OXXL8Ksa{hhKE z4BV&AEMRcz)R=t2alh4+4*jlx?8|(LECx)D0#~>jWTFffGCPTJJYwVLocZ7gXOT?E zdh7bOfc1M>zy8j5fx|f32|X*$nn-^Q4#rY=8(E{375h{kBI_@*Sk#cI>XwiShU^8U&4*4+|BnC56jB{ z$15@miqct`mTC)Fl&dvxIKFhKT`v0Oi%!6moco^6ULq_79k*oW7aX1M84wu2lgse` zR)fH5ktK)jb{%{4POCvpPQ$V0H}4OJwHos(*uUJH?DFWDj8?$imgj2&MOj@ECa_C- z1UoRkclqGRXx88updmG8s8mw?hqh&_e9=dxe|#IM@FeP z3_WkwF$4+7nz3B`@>O8frEfQ*d6wATPAleZxNdUi=kXiNtsDO`$OvrNcU!};z>Q&L z-ntixo$8Gy42Qh#wH;$pYOX_fT~avBHBJq%izQWS(|8XR8C7SyUR#erw;4_8ii#|dIL6qpY&III6KXjSA< zVG3wqdh!3B;1Pv)>si-nILLS?uqlZ&NSsQRGqBshZs(C8tYW~S!Sz7xO{Jit=z@bh z-3VAXIgxDtauPxQhdL?~8{)LBt&z+UEOoC4s8VUqtCp`3H zZtW143+PIEBgDXQ;EV z86R{`ux-gxn5A*RQryX}*<}I40*wwut_|8vI{tHcI^7r(CY;~*&7DvG0fVH_ga*Ak zojgp6N9Wp2v}^9muhuc(5O~+p-1y;vpQgtXhqRA-xo+es3N$Dz;BsUXwRyncXTTxK zB*5PwxFnMI#moRs#R+Bq4_x8SKaqQ%>4I1BA5J;ulZWO@ZP0J}W5S?l(2>i0f$`3( zZ~mI19znc|m>p`rEMe?e>yV~BaZc#NneqZBV)iQtq-S(1SVy><>{DRm{IZZ?o$v_( zE&*174q?SyT@Lwgvzq^Xo6dV~i}vep(vB4$P;%oL3kK6Zk8=$l&+u@#uvCkBaB>B-$Y*V4 zkk@dQJQKj6oMRTf{I-jXTIz&9LP!3W9GE=U>W1h2wlm?voac;dm}W8MFJWfqEHz*_ zv#g`hXYrw+*>4!MyeIJF|L~JzW3W49rq^+zQS>NlgYb!oEru@^o?yAy6u5AeNBYSb z$CzHKFzsbvkp29_-_A@gfP2v^#!a_QtTFPK#Ju52kUckpf1i1wFI)epxo82}E4%se8jIee#F6yLPaB&%&kJNISoizIqrk&+nG6NWPDnHG$udZC9b-NG==Xv-Tr13_ zeqCs~-?=DrPcm1{LLu&y@FfOyQzv`AYqvjoNWq%zfN$!;%l2Qt9N(f0U40@{qUQ%aS?q$0SR zde$)69^lrD)0%Lu>Vw8Fq4-&h?X0=(pBoRq3KzH7z;J+hDZj!drj>sgG7dC}7g)$L zIkL1{HZ(somw%|7S?$NKRMgJwaOLLTC9DpaeWE!j?xqC|svVM{!Rz;a6nf~=W?-dtyeR5h5raW|h?ziqftBfX zrfrvft_2H3n6Y}ZF>YL(%UsA6Ya-z2o+Lkkan{u;l?qvrGP8i>(k3Vw8&0dS&fU)LCct&!17mbZ@rDOZ3mMn~9&oY>@URCu)qdcK z|G@fNnaPud+nIsspaYB92ksKJ60VP7g#k@%9kTij)zcTaak&bd`ftGDaDcI(plNzT z>27ugfr7wyZf0r53}GMgm=ET^{%oeaP`#!};HrBO(?X`xtQyl2LRasIJ}1Pzx2%rs zU{}}YF1Cj(5(TUe#9KSUd8RXKRBiBHY0)C!$eyau!R%P6-JUaDJ#Mywb)W!abXf7s z2W>@c9qff%g%3DW!Wa%23%EXT+4Pz5f&x?H34u&ezV;t|R}Hzl448S23S=|{N=@W2 zzMyC9$UA>hlzbzDj{?WZ2T^Q^jK3f7DWA|`j+`LP$jG#q^~wSvTXiexiEM%s*tiP0 zR!*3>_nSbF0+*y^lE6gfG>(1^PPvQ;d{fPs!;bR?De9D~OIZf61(b+Y{a3Zs+&TFs zW0Gcpd-)}vna4ynE3nJ&luQy}eH9^AV!&E)Y;r)Rtimy~`hbkU%Bc~YGMf)DU2b5T z^MNU3^3){DX(^G@(kiEA%$%0Bb6U>LX_}r41(MT?B&X*^PA~f@UOaPpLFM$Co70OI zPOp49y~%P$I^&FD&lw#vXGAB?C|WtA&vJ%_z)Xz*c6LLa{tp}#4FVGsW@<2S8Xufd z@^i+b%;^FN3_A)~+!gp)4B2lKu(N%b#g@RnCqdwP!z`Wz2JQudFB~|xDpc|_&Z@SY zb?D@@r6(EK6ZzRbFfTLU&ko>Q=E=$NkYUG6!7UBk>oqwKFAzN7$#D4Q+|0;1?2Me* z{{#9N8hF_X*e_bn72L?cc7fx?2JT4(EVnr4+>4x_$~lkMkbV8jnQV%4cS;K0Y?#O7 z$jNqrTXN&vZ!;G}cFyPh$jny2%l>e_&_#}^1_G4{3^O$aIaV!@IW?JQm%!c$bBYBP zzTy-V_u}4sf!kbxlVv0Kt_K3rw-y@x>XTn3(3`+uJ7L~`NkQ|hxjO@R84j@aC9s!& z;4tu-Z#-*>YQ$oWj~qKDaNl)aWGy9l^#R8<1NPks+^1%;yJrd*u3D0?E6*oO;P3=) zdxNE{iVLL-*`2G{vm5xNx|SqbEw40NR;t3u<}j0U;W9x(&ZsP|7%NT<0nTj`7V>^v zS~6?JkCf$1{|(vA6Bzn72-I*1e)+JBDUf@I0HRxw>l?D6S?}>Dcxi) zMvaEWd>2;>6*6xZ@SiBKwq0xa@v5~EM$1^T7$!E%x>v=r`R07pU4o?v49gt2Z#8gl zby(BZx%OR^YI4-N4VLRGwU){!@|JyIe(-DdwO{N0{Zi@S5&uwui8sRrxx12?coZ**Z|w41QeE`VRskW=b4^W+aR|7LAeIXz7zdXq-+lWD6*aU#JKjNyDz05~bG6J! z2}z9e&&!UCj__<-*H)Y#6BFf~+pli#qg=B@bM93gBTJp>JWXr>m=KXJ-=V@06Pv5f|f=l@^ws8j_V3 zniTJ!k{A%+=LlJu5gz6d8SdffVI3agmYNil5bGNm;Tas@Y-4StrLC%OpaEW=uWM+m zZEUL3eDR{TzJ{ijiiv}@p@qJUzqh5AOY7CEMur;Y-h&6XY8KWk zTOMm`r<2{8b@S%s%a_kOMTOM2GN0^Imes)Y(dt;;bj-9Fd_GcVCwA(!;p|!Ps z_nxgTL5}zCm;3n}_xE>}?c8B*Vbr>&wPJRKy_a=lURd(9DVA1RDXDSKo;@roc1f&^ zcXHNCn=|Xvr#GusE&cPS)!fc_ro!P+&DLl%1b0?(X1UUl$5e1GrOttnyQfxmyZBqiCzltg)Y8Ae8h z+PYi%#CT?9I~EjV1&8>#x;f07H>0z&`S^)L35hY$F_uBWrkR<^;f-~5^_A<^uUNQn zc5GY(XqRxHX-KGfOl){|PFhlRLU~0IF{8y;M@Tq@I>}yy?`PwNdS<{Yza?SN5faQZ z1CSQs=PR8CkEu35rfeP_?f{Lc?%4Pk%UTLrF2a9&8azVsvhm&P`{(Dsn%|SrFonhU z=9lybjfbWdhBa`2)>3e7O%iLCtyR3xAdt4=VOg5am4!~(1|muf@^L0fPTe+N+Lh*r zxF~k2L`DSEaYZt@IlW^M@@QnO{n)C`^z+4HS7)v%@zNZkn;uT`v1;jboGGHx;o2hc z<%z?MH(!(-{|BZVci=h|ak(>^@5)kF6R9t!9k}$OyY$=vWIkjK?Z#I|Pwp}v<_6xp!6>PxphVf$W3%8uS`Rs+k7w4&zMjYGA z&}F*LeTv1B6;2X-F1<%ImhZW!&iu9VsTnilWr5QyiEmU~(|nQx&@?P+!ojH%X7H_RVL9qB$Pfj?1}OxLnpUPx$4qy13+r^8|(m zTO50mReT(e%9*@z4B-A!?aCaqXvdQ?&FY-TM5_G)H*r_?23=&6mF05UTD;}2<6Y*4 zT9@t4M-1M}Of2%b!(g-M!UqP2o`83fbMO55`|PD}fVFs`bKz6wjq^N9j%{q7!mqSJ zsZ&Yp-V?RHOG62lqE`p+z5fzJ3X+5H5^|3Rc zXOYNqkE2>q;Je0am<}A(tJ>Jj#Iac7xQ3hVtdBj@e=d^R>2b`gO|ZA1XL0hi6>jF+ z0{be?BqzT3;c7i8u)l#vCH}_?SNp!e2^~I5Jk<&(q%$lK>wChfcrfFHxtIzk*NX$Z zc?FEFRi7qveO%~ph*8iY;fUlth6W8uBTuuiAO_n*jEr^%82LmRm68uQ@j0CI){Qzb zg-_8*i@#~=^esjV>swSEr5qag5{@vkBsl0V&paBhmcq!dxy-w7=9#7&4GeA-X(lT@ z{WPP3m2c&EGNdFll-5^PT z*^-?>Npd1X%K`?0UJVyz1%GEQmuV~~R=9C)U~b}R^1x)3x&$PdKG3*n1!o+gH$?=c_gMi4A4IRC2|BB3>VDVptWi5Z9wvyhWn>(Ts zm<$&<#C&|^c4=0bLa>5^_`V4(&(s$3vJ@Q3{;zra)w$knER{OS`Q3u05oXI)FdT@J zyL6jM!TSA%_7cEsyj;i)%zIr3y5^)!88TKJ?lo69GFK_sVa zZ+%XFCT|fd(-#JAfj$GV8i)J8qa;#)x(YFL9h~sjO+`vf>9E4F)2DXyEm$|3H`iRW zCZF+;l_1OW^>UR1hmu%EDs- z=dSc_mYmFRAc4tLAg@cX=7h2|3l|H6ljDJgmL{1-2LFytvtGO0P7IRVrjnEE!4MX} zAS(0VT!kLv^wTd=jor6$+G#W~nSEf~Aa-QEe*y!4#fE2Y_8r@9+j=bF-1NBp%wi?R zf<_lruZv32Th6m8Hiw$7YSx{yQz7>Sqp;nCi<7N>UHv+9le3nuP+p&zlIMwotaG?t z#~FLN?RmhOrY)2+^Tw?c`~1wVg+&VHN^G909ky-D>gqTC{=aXvuQdzYc=qj-EbH}m z`N}Q#$Ho-S-aY+E+WVc?*PbX*pKN_~9ROZpWMZn_di836pF{1U+Mx21 zu)6BF_{iF0$KJeoW^1nvZ|Q04sO9(NLK=G(mRj-g);o7@&T7xJ@%M61NzgUc(KXPx zeEIBy2e&;vELW|HU$#7U>(-R`idbhS3qOBjhp-^m_-NZ;zmq3(eZ1{`^RpwH8^R+j zn^!j7ym`5_G(UIw(wjF+EWO=~tW7LDoWFl>c8UrOO7&l~c+RBB!9RX9b$0q|>nJ(8 zYCHPc#&oq;RJgx-Rg;=#=arRKR_^W+Z?Yi{| z{r#P7?Y^Hry|Hn%h$;y8^m2Low(ip9!swXr{57i^mNgU=yF7SMK6Pq;#h%^0eSwgs z;OR5R!m>jS9m+~ev(M~QFP~NZ`*%xbYKVoSNq9scWIs(-w&R_X zm4ZU&ojX$lit@9vQi?Whs9CDnbpE_ol>7V}Iv+na^zPG6Nes-+Ned12Pi|BX%~A6! z$X&2t7BMZ!0at^yDXYv>@YDDi9iaWB z#XN$a8oz+{lk$7lg7=d?{%`Yd)9&MXOl!-xs_ffaeNBPwnEA;}b^gW_v3Cv;uBrcf zpU9@jIsT3<;dYW;5PqSE%XH%fRUWY`uHqRSCJ$T06E!ZVa`o} z<}8(VN5*Sk#m$^KjCdO9$mo&YV0~V0w;Gh~EX3eD5P-r|-JIS{W{ILj8Kq=5(V!o=HyS3>UOK zKJ02~car2zIZ|JukmBO*&OOD%!!_IGv*SynFKzR9Et|GFa&mt;=6Wqs@$=b~>AKg} zGAOK?a76QObiftMoxFl~cnz~JT;Wqqny`Z*V?SZ(Vb4%0}H} zmR-TiES4;A+nLO=_TEZ%{XKs6`d42jUEo{)=abd86Em96xa2>a7`Yr688be#8np0mTPRsi=$KHiqLav`cVM5ykp)b8Jqrc?x1X3MsrN*XS+X@K zPom++%nK}x0SzoZ5-v(nAG?walYD|2h19Gzwn%dvVDYhN&`SE)lX0X=EVhYfYDFLe zdq*-OM?<59oB~st$_ds>Cyv{xrS|HcY~p8I)IDj>M9vSuf{vyNgWAkPJv|Ky`67)DG7b#9JS&!$lsO90Za$TErA9 z7jr((U@&4U6kf-(%pjG?ySZS3$`J=vM~;nL3~Pdvcj+kV*IJ&*ikhr?)TV zsLoiW=~pB5WdZNWXO_uK7y3A+EcoKG!bLr5LQ>oVQQgSLa!gf+^_z+pTv@WhLy*h6 zV$+c&5|tSq%1mb_?lS59mBJ~)aKXpx#)id~e>7Z9TL^GkELqCz_|m(b%Q50yh?bVF zhKrb$fS=IUl^i`UgYRV=w0Re(;MBS*Z2K#>Ibl;*C-7$buE=uSIP2>g9mUnm7f)T= z*5|U8tz>n~b1vWY)26PgIGgSK;FbN}Utia=K77r{=pC__>sw>1ug)tbCUDb+7t*xZ z&E(Buj?}b)oNQTA5bNjf>F?+0?rQb*>-(oq@87+9-P+pp;-%B=9Zmc9?_988*2j;p z&!0azZ{CdQGbU}{v1!7@?zU^!O3Ml~G?hRr!L?P}*0pKtsy%vi7c!!A?b?OVP=7sr z&6_tbJ2+aIni)h#hn_ie?9{2Fn>MXoy=HlIOt_b~>%>Vtwssaq#=2(ahMrz7`UYAj zPaZKe(%rUwmFn$kD;f-rgiVBPla0IXc2KJ14EEI43nJ$k)%q#6%0S z&Pz*Mb=R&ftyixueW(jr^A+gtY#$crot+M8wN+HOLpDs+9y``>=CrPXGGvr4AKY+D zNwZCuG$E@!Ga}N`H$PiPSAE&?*j20IgDOgOjddJ-Y;#vEb4`e`@N_wOGS@vNA+ou_ zDJs;~PUq&$lJDP}6D#Atd}%auwkrXT%uSjc9Gn)=+39Z^(8Iol4-@&^QwxbX{5KS+j&~IwfpLu8@+v77Z-1R`SRJ` zzQ9YD3k%k+@k{XbiSgXHDe1w3@`^pXlag#9t+1|LT1`#fF(pwUnL)pQx0KH+U%M{B z#^2k*(Zs`Bzi?uKt-Ix&yJbParu7Y8Q>XTuSm|54m|HulKX`D<&CN8tvChZW`0(Mq zef^!8Sq=q-&IySz?jBAv&ubSHWG%j@>lLSxljHc}#iM1*7St@&bdHUThzz=O=jz;f zGwkdw)io4bTI%xhGcj9I*qb(9b36(aW_5v$>xwE3 zG1oDz44z>-pY5y0)>VjgOpRBYrdjP+m~+^b&s@>OdV@}MQ^v`CtPjkRLi(NyESs32 zC*YjQ>AF+p%hnChQMw8xljciYa;t8*g&j0wna_APp>V;iev9vip5z$lHLRH5+9fw* z`+}W~Ez+l9M`fhf=uG)??i|N)v3=126&`^nxYCp}UR`$%W14J!CRt!gLff*E?EB|H z>zF##@BcTeyY*mJ>sr2f>K&VR9QnffRMn*RgLy&IYxSVmin$71V-K-GyxeT1=Kj0+lS1MuP1O6&V5@LKD>l3blO?ig{0A-J=Fri7k8aF3YFkA=^m?-si`Gk0`zvdT; zl;0*ko}SRA`E15rN#`pO=`1q^yCn`jpFELeiUk@c1?#7L18?8u5^Q7s zm?mH**!t;GL;zQdyHkORih3RYPS3zPnS+)0-PS6ms5{U1N?Gc&krR4UhNG?8)Q%+@ z3;$OLO$j=-GiZh2)kOgf_Pje@tv|q~{bqy4)vRpSX<{l$9w+_2JYJ&o@YjTCJb~5| zy4m)+z1eoB?Dg6l*%N8qP8YaDG-DWax+m-soNFx*^+xN8&d%*dN7S8{%j^&^`Xywd z#jrd<YKF6NS zm^_Q!)kn~8R@0YPQ4BU+@4CMB<$OMC@%&844q-vAzzE~JEDbe^Kbt0Ol$7)p%zUS` zl-K)K#OlviLc(*m2CK!b{dz5?{O#88>a8*w)8eP+e!H2meC@YeIoscwxvkry`~6PI z_1y1wE1s|Yey`^H|F_@oH?Zsdc+euAXYr6xW!;ZQUEB|TJf7fO_v6Ww@H|V;p7ePY zPv+Ry{d~TlUGJCUtn_=8&lfLW_v=;j^m9L6&e^Q@`^}c~Z+|`7;2!t;-Jb7p5mpQa z4<|5&-MzPiAv`D0mGO-E`8^E#KusHa*$5ZMuMR2fVY9efb~CUuG&FoZ=ls6*(Us-v z|NT<>x;udBXGh36hc9QQSTZbY*0=k4c6Pu0uQ%Ka7}#$Jd>3TlVmo-yQ%Yg-@2C1T zj~~Y~{#kCp6!oD=%p}2EL}NnfjeG`$o<_ci0A_(E1BSll1)tj%F!K5oD2N_ez>{ua z%e#q1#*UMLBlZI$lYjz;9fK3o|5FW4A9xuUnKPM0*aTV?ISy2q^ehqyO?RH!;Hc2- z&|w>~=&+nX1H0G(1`eeLW+sUR9qblLpO-yoVdQvNxqbE`ndcchwd7J*RXiOWWf&Ov z)~PV4bvQ7&7%(vKJYcu8N#^2?WYAP$WN>3R@Hv6Q!7A$0q?XN(9cC;zEO%Qq(Gf*TFpA_@$wmsU2ktlG#B!_Xk66y@8!>&sH}->TmK zGzA2%yzfs?XkeM7+3a%2sLADolGrmz=NVF8SFm1Akh=0=QZ1JXuixKfb{hu<9uXsE z(GM?`mPayZUufmJvP3=TxK~)xO+yx5kJVBBO^ggZLJU<;9x?2Da7xBu0iy*+qo?u- z8$})kPN@&_w%t+J4oO|}my$W0Q)0oOW^$n2`heGpwu_rU#1aiLfoxXYQmdCQr zL>&%y17?9q4GcUQN$+Hy-@LZV%x8h^3BGMgQNrbX4_G-P8mz-#@4Wu&+jicrw}~Yc zOzcw_T6iiL7-cp@-{TV7aiMqJgAxrkd94J-bs-1YW}S|HS@nH)?PW!tV+M@UAq-6J z1`D&ox$k}3H9hax?K#Ewz3=~8rn~R;*}1jfPv2kr@cPd4Z`U`l%WV38Zu$WZzYiYJ zwwNTOEp{2a%MN|}Mq7L1ym>P|etfO1qo!}5b^6TFFJInSTbn+4a&P*KNxps_**R&Z zW(I~vx|vzY>(;HfcKu>^ckAZOYxnHkW?^ZhqpPl^t?J}#S6x$9P>|KsT(flP{K=F1 z4j$Zf_3HT*D;F(XH2d=9v#;MgojqsT(PIZLUOc^f_tun@xTOzu{ro+343r?-+e*s{ zKy5%b#2Ms}$y&%v?fLU3x9`|=@zUu93uo=$zq7rgX~M+r=;+YU9JP4Z(c^mhn)W`* z>KclLMcLjyZjhtL9UQGZy<9Z4RJ^=gA^S(_>MCvREOfvpk%R85FU~PC*45NejE)J% zdKfwK?l|O=$ltwt0of(^=+WKPYnGombL{x>L)*4*eEs^#sZ&Q+ty&7%A@ca~y@`{0 zkXr=o7^jR6+%7Lw$B2uG4TszLn7`a^*#H}6F7dk4Iz`pi_WMH>Z01ULdO>qE9*_ZVfciL&TSDDm03 z`T6+;&djY|4-RoKiMWZSs)H9*C$C<#!9%T)m7UM#Mo!Q+(4y-9ev>_(HFC;xgm_%o zu^qh2Yr4+n7H1w750m|tpvK69+4oW}G&HpDJ9ikg`}(f~OY0_)UDge(jlwc(mX(8# z?RxS@!GpDIqS{pkHh~2P*jA@9gV$6qG!9~LxX&Op!=Zthm&+Ku`+AY-Z-&kHJ2aN9 zc+}NCb;h+$9Z*|@f7cJCa+7B(9`{{#Rh-s4=cC4x2`<~xlG|^ItbC$A$w#OxWr8p0 z5M4i8PG#^Ry53=rc08S)(AF6^-K{h8*-QmCNIxnSvL6JLcVof*D6IQIytC7dY%TKF zt?|jps6Bc#vb8B;LZ5Aruc?D|?y41W@sWv>Ce$vf^)1M0xqLaOqV&z1XHJo!jb~2R zojBnb9=vnsX8X{9)HFLIb3HRxhuq~$Bbytl4;@^!Dn5JZ;@V?JzkhFbiHpiwywKK8 z=kenzEgjX?D_3sbEUDbLciHmTA3vJHBS5{2&Q5=8U(bpP_wahq^nHGR9^@P&*I+02 zl!U~}`201i7A}fvUDIme>Ea(?a^=dohY#cchl>-0}8popWqtdAYl1dWxN=b=sWS zaq*zNDzV+2TKZag#@aqHo@os!YuCp67v&di+UVqKmo#Nk^QxxZd(zyK6DCg%NuNKr zWLmL2y?d*zMa_rcCWmO0xO< zxv{CqJ2=Gb_wSaNlBkm>bBl^yGTSm@I@|Jka}FKK>Yorab7q*iyOWK-_u|DdCEK@I zS!(wJ8#k^#e0Xm{VoX6n7HGiP+bAqN(8t%fVQGVXf3OloqPHMIlH;Ye}W>tgLNU92giaCJ4^1C^+IcOS$Ds+8piL3vLo=vdyl% z@nT%k9Ly?SqWX*xia|^TYz4wg3U+N-K8HQAnMdQ0&ox0V{ z9E({cwCDbJ>@aD&wo7VJmzU^KM#d!{GL}qcx-BFX7IBfqN$G%R^YR5l$#>!$K1+A_Df0} z8B|0}j&n{tRO!XW;=0gbiCPH5awev;JnVCLmN*IMNxM`zD7m+<`^~~!yYBZ3=AC@I z-|)}u+x3cZgWd(HU5m9Q$nI*Nx7^{A+y{rZj24Y&9b^u09(J%`-_YRToWHP;L25^% z;OB+b_5yFWJzf_m&014%fm`EApabK<8U<%YZ;K-iIR~5mzU60~YtUi$D&YWAhNB4c zPB&)th|VSfMG3YTCb7Q238EqmtSJYY7+V=Tnq-nWqYljGdU>h)v?re=bLPUQO63*| zD(~1kxmq8yE#egCd%(%^QSsUTprBTU1&b6iJMQgqGMJ#!##eGOd+r7`hUHop8WoBI z7IAPaaRnKGNj zyc9T+{y0reSMZRS)^NaCV6kBNjzbQ1AKJ_>=u2!}^Yj{<5L=?i0VzuX7fr5!F21@A zyhaC{l#?8~Wh9P>vq~J{T7FVY_KyRvBQv9tkgFxbmxlbs6PhJ|ggJMLDz{Ho;4o@w zu(bTpz}xxhm_wC=f7Pdk{09yvnV2^GZ?xrO;SfIIAi}VK#pZyfAXB0961NA82`*lh zZ*B#PDmY9K*zq7lZU@79rhvxAB@Y(M=Q=IvQx$07nzDe6m%-^YhfZgZh!R(;u(Ry0 zU5z#jj2s4x%AA{6=cFvCg+$YQD1V0UGuUVfz`lR~9uE3yQ2slE{kV6kiyF$g+^3MTz4!*QfO@ z8JEOZe!4MsI12EeTEG`7&7r|l)W*coG;4zE>5B{xT3wDhD?FBIkYroLdsvZg{tF!s zMIly~#s=lULJJPb6%$sRJygQ9G*>eTW-=%hPS8+b^jo5EB9HOHZ8uNBou^XYIX6i+JmgxkBTweU z(g{n~%w>JRsM>m&b4+lLbe5+dTu!}*R+vl3%Yt@coW`kLkMv1zj1hRqbcu zU=d*TP-S=)*ifS4((+BX;~&HB3H#)pFtdJebu0>G$mc!M+??8B%_Y!sV%H3vDGv?` zuW(@G@=*>95%5T7ztG(H;qYd&l7-?tLhUYwi3&S}4(YL9Vv@Y}L9w{z1*@1rBlCoH z3O6_yMA)JPjA9&E3=$5oooi=lyfbYj^Fc@7erc;8VlMy13m(mI_`;wrej-;Pxj;#v z?^&ur_slc*bBo>1-3e)2adQU?=LW|+tm~UjoMvSXWS#TOA>RI0cug=b1M`d=MvJrG z6uZPY=9rraSg{{CCny;$eNKzH@yr5-2?8F;pA7}PIu6NB=y2q*31nd8dcwuJ;xO;G zE&+b&C4xHZS~g8R%ei@;M1!{<$A-@z9%U7?vMdxx(qNg?>+&{9A(dg%4z~0OCu*w| zKFA#4W8ZX^F+=$lkL2M!A_9zWTF)`Fc`lOh3v*Eob5ywDow7_(%2rr{rHe`Ygxh+L z2~)}*pG$pH{^j4oVGFtwlNA=hVd*ZVAe>#-(}OFEPUh+i|6-Uj17kw0~!(q zB$@T!&0)02IKUM4A=J@EfPwqPL4_w<4@hM^V0I6Z>C$nRJNWQQ@1tJ}6!hgi&afX^ z!7xXGk=66hBkA~~4&ics)B8D|uq#zIm((c8_lIw0G5X}?9J;DGX0t=sJi+OQH6JqE z_~Sg|SnuXrG7RhU3>iw!6_+k(5HM9JOYZfX5M#1P9j`-I-Ro9@1KG-L2G6Zmez;K^X9 zIZ)ox40_N^TYz)huG5yycCmq(v60cC zP<%$Cz;yv(3xV`4g$y66m;|f)%&L{x)m5&$&t-Pgm|m@UB6Hrg>e#O~g<)Bx+hTbP zIanFIrk2#4oL+3r&Tv31n?=#!O1i-D1;yJF1dfFX%ne}Je?UMkrH*G|apl&!tQ{gR z!`PS&qmtAG3OrbKlX*N9@@kqRJ3sNUFt#scWms;?uu@gP_JE($2XjqBmgQm5EQua7 z{;LUe3N$jaG3zoj`Xw|Tath|Y5mS&y3gFtVISZn)k43r5UlUn32i&frC@Ehefb^^9li3^MrXE z4D4-!Qxuq6KEyLL*qbk}Im6D7=uyYy$k`ZB!u8SqgPXZfngG|a1g^j~-bP2C?QNej zL~@pMq%C55X;$`niu2)uuxh8w{NPA{jjHcs){Y31wLr1jEO_va+ZL=M&o+@{-mgH9A5 zXk%qz4RDSBuG7V)D+tP|te8LW1A6kb|k?Y(m{)5I9Y29|#< zvv&#iwp@3Oe==)>WTSEO>|K!p_CK3h6k{g_&1O(&iv7aLlF016HNdsCd8@j>a$!xe zg4q5HeS-%bfB&=AFie=!?;&turOPEwhCPy27bOI@1u*mmOh3_HeA>Kql0jd@0oH8? zc#Rl*BX@8tPT_9^9fKUJIQVAQ+s788vbaz4~CC(hDqnWc14!)V8x z9Tob^1R9w(vQ`LizL~(}oIIQ10@J-nZkCMf?A(Byj}<#&|0G(xaPQ&aQ^|um}LU4o7X5!Tyx`>K;n!<`}1O#q>JnSpJHTO zEjd+y<7kQ4iEFDq{@UQY(SqrOU*{xV-4!Cb8`cVZv}$Fa^e1F(?7@v<4>n3OY?`jf zQEI^4Sj7IBVWXb5h)}lW!i2KogButAcV;?aA!a76Y4LlLU9`6D1J>6DTt^QuvqXy9 zHM1#SU=TmRm^N{X_w6nA)>}iOw}w@3jhMYPYWLQd+gsy)Z%vTi=HtYW61^=gdRx-$ zZCSI$({FD}*}bhmdVB7}ZMoXp%c{4hIBrkx-d=Nid&I)+X|K08NpH6f*kR4U%|4NH zvjO+a27z@6JFFjY88hz4u--9EdYf(n!>I%8H3obvj7$#;IN1z#u{~fvpCEAYz)pz- z2B8IlFCOrmEm+6vxHG?c=eFBhXLd8P3-Yolux@nVuTS7yyqllnBIBCbg5MVKEPl~+{npxVaKoT zeSd!+;Qzg!dn4E0?sC?^1A+?=Ji5TNI)H`4MnGr+58uZ90x^fyX&vNB@O4q&i-A%v&n$9x`DCM zX1Dd7<5Si+)%&m=`pwQ0ctSFf^J{`yN&<`Qg2O2>CzsWjXZUcQNnluiL10dgpu~cc zOo@DT4yPKbPwn8*3%kQ)z2Okw$5VoVEN2u1bQQP{>zrIV=k%#Rs$n(z*%Y|vNT01K z*cG$qs1zeNn*jGCg*|5zPFL+d^WctZSPlP@=yQv29}~ZGRK}67PJ#9En&XpY&V9P0 zQqLoJV2@C>&G}z*RA#Q`2{vGzF+uRhhx2X=&goA)|9j2_mrG1;7cRINoRGN4&X>zl zYq0aZc)Ln{?j;@De(k%L4EDnIKZ!#| z^S?29vsi&g1kv_CX=T`SIyv9~w%j#F83U)S1A*}_Sw zZL^k!mSWyS4MTH9XJ_-&q@eg1-#~w-g50R&!~h>JJMhJzs#)ow;PdUG+t#(^Pturs zRcGOC-3f=ZAzPh7bJXm8lsmR*8Cfdz?9tZISL)jj-4T`BuRi^ZcFht^$X+N-9Yt#^ zL(qn*%y2JHTPH^|4>#+?ct1a12U{DX^wf~ZFpsq4AT4d>&|p`{Q8(u1dN$TZ;b9(D zmIm&wRw02dg?Z7rnGu<(At{LgQQ=+%Ig!y(UJ;@0!9gxM`s%K(mIj8JCMMc}0Zwtz z-ob$``8kp4DZvS`zR?k$VWDo?x@soII>yG@-r4DqtxdJZj^?gh-hA<5(&_A zTIlJiwOqMk;$ZC<5t1;W&pjo<%+uY5%T|9Y8->TJ1YZiirA=Bs1(KXfytE-Ob>hSaTym|BT z)Ttr*=0P*EBg9_cJJPrm7Q|>^wGvf@76V~ zVc8*RjVY&2=cdk@v2Xtlk8syNe_E^d?~9BIdH1f))Yj0{$u_esy{+AM(V{udQDIR9 z;a=WGwjP$@jdexEF2{~#+k083q{i!;>VdXZC3ss|Yk7LPl$I4l$5?IMnsVgGzTdxF zj7`)wZ(bW)8g1cd;$M`Xm=xn3?NLyW)!0~l;bMWci+Oi$2{i`ub$$I{2Nb;cFK`XEUHT0ybs6 ze|6XU^G&~fko`{vH>~flJTtA}fB2~FHOs%Fot+C++U1S3&-{6qur8~XuSjmKul5p$-_aXPYz!Qc5*d*>p#VQ!alD@ zK@Zi1O4#lmnxM?KGdxKDqeu&%(~U~?hoG}$6}_Kv9`STueTU_Kt3jhmfb>+?D?MSG z7(OI8T{3jxVK|_(cxnkOm2s51I*Z{? zScq-n#KVCKb>K@#%BHX~$QJ!S6z8~~z$qY%njyO|S> z1uWi6rF?Y!sF$)LN%$wXgXu5bBd49FUAY)Ai@owx&}r_IcLdLbbLw0%)0w$zvBPaQ zoi7($#CZje`8s(_SjYL3>%bHySG6e{**88GDD0ZibKw-zR13kYDO^)bUBkYsB)OEW zIAY2W_gh0)#p!P5mpdibd#@>SD(XtElfC<&%OP27Zf4+&DO>JNT*lF8EBvtS_Lkts zW{Pov+X_uHzCWFjUMG5aAydJVUHrCfIZ5mj^(NS}>n`5)Du8#=Cg)#5OV+EhUrpTo zR`KY+39tDCUr$gJ_;{SlS-tOxbuRNozlke_O??WSez2^b@Z}vVFN58z^!0zgCGLzC zxVJ$0ilXByw-hVyIj?F0q}e?A9CBT-GieXz?U&tlhzNo9KPicyJmF^bY2t*QB`WHkC%vLR zO`36LiJJMzlYUj7CNJPgEoX8#6*Ozp6ef?QTH!0b0(X6yx}oQ(o1dq5(56q*R!&)} zSAOzz?6pbLcI-*jZ}&Wtl=f-*avnA9-jiq2tc)j~Fj;C8{_{*$)aO~%Lae@vI!|Rj zyQIkfp-F6m=eeR;n>7^_IBYl;vA8&}2$(%wrn^_Opta!Mh z%ZAzEe3jLcc|YGQcM?Ap(Dz4Jan^-{-X9nm!U9qjux?eilRkB^ugXM`Ket0@j!=V) z%!4Hwwkvs_z4UFG;>d2r@zO!y*Tq@4wk$N7%4sTQD3BPU!eFA&5YVm_!nvVj7BlA| z4h{zfz8?%6dcdQKC{_D(~t`Zfyw=%k1PJ!(#3{2b}*-_pCjZ8id zR-6*)VCM*6>UaG{$!lR?8Vt8Z+q8xAl$ zkUA6K*vOzPdV+1nsc?o1TXQ50Yljajg9%28DY zp@2J0EeY#`Wt}BB99o{t`o3p!OrB5F>~q(aF)MA5J;35qz$9j2w)>C@6XTqK37QSt z*ZY(*u)AG|{37+^Kz)clgVF3si5Z6!W=F8toV^txv0wp%c86}=^ph-1e-<5lFe?weCt-&;T^dznK>pfHqBw&!QiJMQ}?D>W%kcAcbwNY zg>QP+$fEFrRdB_@(&9adSxgS=B_vMp9k6-S!sNig!f?3zqR$H_;k9S=CD|FGq%U0G zw}3&{p<#*o+a{~+LJa%`4EY-aS~PeVPlSk`5a+nS=sf$^6@F)v5GDcUMM76sM7phV zXmN-MDpuT*#*ydPaXUHW_pj@9L0cW3&b-*PM1mnmfnjpv**9t1wdU5}Xqlp^lsoSl z%i^839%3>AOzG9XZ`TN!InUYXo0Ptr)3!rErsEEC!S3I8`;U})8=egjY;m|8(y)Es zcV3Um)3-S6JQ_sHKD4NQ`2B$6_~QMKXMJe1{?o_3{>@=^zd~)dnBAi1cO2VUUYMBo z=dpsg7jy@e4Wu#rl*yaL8>ul2*+G?>7}$30n!bUCj;?xIa!^hN=(?cL5H}N39UXmj zV`FV=YlFhvXh#RL;{2GrtOyNFB|97Ah*0-`|Jt;)K^Fzt+nZXL>lqqqX=*7KzBD0g@xrDR zO>OOsbtg_Vo;kf}QB>2pb31o#c27xo@}vsd?Ci_6vDKb8Z-#}3bN153#alL8`+7cj zaQpM;x2smg=PqBmYh zJrnIOUm7P(4o;dnIXEq#rPUX*ZObFv)g{Q$)W$G8!t&%4u8{EPB0T`o*- zQ%`G1dGMgTsMsYmGpM&Ou&liB^y#Cab=B21o{JXGNl37UY}+cCp=oYu^!saY- z>E%sS&&*0rZ%*y*Zk=*cyP(jyeT$Zjhcfu8q?)w!#O$23ZMsvsBa8<E0A}>EPGAdYI19Wo)^7Y^;r8&ZaK14+FReUD~tq z^6~)G>#@NHtRi2Jy>0Dnq{9F{zd~HB;Ijj^%$UN%0PZ}Ps~J2`&OdI?&d<+fpL&Gf zTHKx*C|BB`X3nwe`};+jjsNp2PpPf{2)Z8oJa~G1^0e!>wDuC5Y`E*O}{ z&InLq>73-^lCQGF)gwf0N~&v^+SmIY(Pb=8oHnSixVc^mF*)h%B&PX%j}a9q z(&t=!A#+uAGRKxDjx9V-INhhK{0}*?X7eVN6^@-9P0JmvN>)rr=aed@ebZ?{RF{CG)=%kk5M3Xax^7i9G(dJF85o0%Qb znP4h($>`3t?0i9XRnFj5QnG=8nhaYM*%+b}W>455&-g~*0F!V|fhWgglQ*s(mM!_< zd{NIO-{~^f7Y&bD3t$izqlwW)84qn0`KG?tO_|zRNXs;!jMS6vaa}Ijz^eqUJGI zChzyQiVa>T-t}(};am`_WO7uRUpd8`L63V%jbpsY{XLHRnFaPZ9oN?nc*e#XZ{wKP z-E!Bt$*Se=Lf**#0kT|c>n2>VC@xv+Y!g<}C0Dhi?)Tpfs_O(V*=g<${O&7xf1ci= ztz9vl3J;A>9FS8wFn!B8g;&uXdl)Wgdhj0M=Q=s1k3nE}90xDMi`gQsX07{$J}ncF zJQ(iFw_uj{I~xne6np5NOW9iee#P& zk;{d(sV*9kO8$?I3(6mTrzpy^NGv_MeQ5@Jw#38R-4R&&Pee!yVNn&dBexv z0+s_(k3EiC-P)+R{?($$IL8SxcCG!)A0NxId!BHT`h?jS_H<@@Floja6*blaC;h56 zO`giLRO9HflRe+b^{}^23S>}V zVCd24u)fteQB^=?0fT~riKIa@gF*uXtHMjqcCV1>OSY))R#10r5S&!i)UepdA%o9K zDx^7N&5DS#S?+yZ6AG^^n5D?b&d{)sFNMQJMt-F_GY11>3!ejHi0CWttzOr6rM0YP zD{OLDV<5EblJH`41qOyYRt?Myp)1OK*CZ)6U7tF`l#jVl$K#bIBh!tB4TctL9F;cQ zI9Ihzp;z>Tm#2|mvrE$=xrJ*|Id3zZt*IjKH_$ zp{5*MDc*N>wS}oo^w4z+cW7YSVaiw-+QHK0eRrYUcGW`)9%bd-fueJo7Wf zeKl+Py6df;mexWS#7m~Im{c6l^m=gX^R4MCUdDFXxCmWf-12}?_NoJui$ep8!nb`K z=hEvYb_Q;Dd$54{1p}i7R>Eo_WEpSI{gR(ZHtR zu%ffy=c$(al6kkcY?`*cCbcJR=II2!&yE}R_!!QDTsad?uE9l+TFX?A!DLp;ei_3s#@A=yZ3B8b?RtBLbQ{!oq>V2 zpTFm$M|aPjJ+7gtlo;o4Z*Su3Z66u#;p%D`A0K6Cq}#Tx?b@{qy?q^M9)^t$KRf zjf{1{$1@q|=&O5s**Vyo1_!$6>8bnsIz~r$W~PP|>3vzSyY@;P>|Jp@uH!Pd1Pyop*iUM zYwzszmMd3k7uNXXWcU_jLt2!LXU;$xl_n0>TH4CxUe#FpdN@XghS%3b=7qTgIa+wS?Ae>1zh+fqqj%wk z^?m(8{)KsI4JoZ_T7yypbPSXrEyt?;`?L+Tom_Q3eR|{RWAO0domH!sdZwp@WCoeS zT8nY<*3MC3Yu6<_d-l-5QMahrCB04E!Nm*5>xQWzR$9$HuJ z6XWURYd2+Tzp=elbWHf6Ls``|p62dOkfWeV%L+j2K4)lJ`*~S7n%uf|rEp?FbhKq% zotJB3Y*uy(r2XjX=3wn&-rms^6l|K59Gf>$9Wuu0mJrjvMQh4QZLc_$%q)kLRJ*kF z#GN}+{R6yu_h|Hum6&ZqWwAx!U3$*jBREiVz zuC0Jjzs^%rL_#~l)hcn+SP`H-CCAV+Ksf1-yuJXqH zPuE^45-h*vQtUbl@-qYb&@N+D(t3Yx`n14IktSkrjO58ESZ+|Dpp4J(g}wQuad*Q zk1zgT^33`6T9enIH#48~_-yUkveG$R=!#fy*Nm(;8&Ayo#unJTXjO!Zvr*Gr~~3A_11mDcaEY`kDeWhh2Cy9pFDQHNn7*rSb*;Dz;?DqnX3l` zRCxp^D^Ii$JjG<1BkMjr>B?;fZt0XKE_&i$v)!wlzQk?J;bk#A?joLR5;M2ri*kUm z@X}3wmWx$RtQEQ#wAnK-{mT|l>-Qz+FDA6>e!Ic3@z122&93DVx70VrUP(?luKWFt zOM6JBd-tWO=65{>{~rSFJhKbzh}x-J5ivz}-H%5-=I?$yp5U%m**51#nnmPv|8+l~ z%_)Be*?IP2$@IKmFIRweo~_yb?$_%L$Mt@{DP&Lh{dUKFy#w#|e7|S?_5i#7pATwJ z^Y*;mr+(i0;~De!e?BwG=I{A*$~ph<*Bk5gYTsQ^pAXtpzyIgA9p&$L|9G){{l1uY zEw20CJ=5R+@6VU(>w}qDHU?baV2yk%AQM+9|EY|f;q%S+piT8&AKE9diacRtP&nYd zXQD78TS6sU$O1O=69+pDJ}A6h&B;`ftvi`# ziNeBgw>cgH3~CY`|1%C9<1%4rHxXcDTu|W1dL@A&?vA2>4g-U{Na2J9JWt#fupj z%}L@|({WVwOo)PHfCJ<9S=WzQmAO~%_myGqRLX(AzZsA!@XOc z?U<67jOE*KwbMQfPYmilDX+~*=bn4Q|4{4J4JEmr#-sTo9_r7~#>V+Lw&#o(zE|0yD_kH(+ztQE7#qWKZWuEi+?1Red zr{gBGKyE3KfV8oGgYPp%-%-}z-}&|H`_G@>ZrHGD!o==(?_S)!d;QU)yA6%ixp^72 zbrlO1&N_H#_rr&GX3d(ap{cxe>-x=`*E+k{ySUorYYnE3ORa6#x`?%%grdL;& zd3m{(mgeglXf0km_xbZjko$f*JDWFdTC;G`?69za%&g>$%w+!nuYf@Bl$5x{q}Yha zAPsF*$Z4P&+G>zn)U>o!GCDN0w3W5ALEFas{5|0}swE^uYiKE2I4Kz#=|b9n@Y~gP z@7a3x?D12lj)vx_Az!WL;AmxRq8AeCS65f5qpt*Mco`Y%R@ani>L?ZzW;;0AVBJyH z)LetSsSJMQ+L9&nAR8chdfTsEyYS$_t*ckhLt2(IXHGeN=IF9z3ot8q1_lOpj2&eY zKo|Q=oi=^O%vn<{X3v|yVBw<0OO`HMzGCI7)oa$STfbpr&)iL0w{73CbJmt!d-uUF z_BnC#)af&4&p|Ktxpw`=&0Du;?zwaS!9&=^KCfQCdHe4Dhl%$-LNE6D{pat${|wAr zG9DYi7yD?%oY(+qV}R}rI|^%K9PfYqOjn2#X?MGKy-GY%8{;IFTRI31J53c^u=e)$ z{Qs;c=6aXEyS2OGvsLTq>$!LL7k%ZD^SP0Je_z9YvA8ok3{M}f5x!pPvvX5w&xD6w z%c^&7etw?A`1oBJ3DCV^?>oPFM>)K@z9D&b^xbV+vv2Mwem&34y5a5J1I^s~QxCH- z$Y}AfN*tKe)Gco4Vjv%|`|F3-H#X1rs>}Gvz|Ooe%d5lZvt0Qk%Eq^Z zBd~#`k@HGzbUbKBnMba!0|Wcz#)1Y$@j2UX*7KO{kQ47E}iDk}$1u1-G zFCJDg+Bh_@UN*eWz{rs^<3_vAHi;MpRsjab&ijG_ja>~pS3K@pe^5iYSMo;3;v^ff z%q6LceIAe3c51$Azc(?!&2mNyi$TIe1`UCLLlY)@zI-}8ey3m}15=$rEIWJB0oC+` zZ7-jNpWY~NpF>(D;ZW_*zu%tCtMN)bsBo`Rp|OHxLi)VP+}~EdSmbikfl>67uebxZ z!HNZqOFD{9yjV8pT}n*(mX|kQu2{0~%gUmK@4{cLS~II8OL1=}=yK{Lk>E9}uC02# zZpPAID(erhaSN{7&z1dVBb(rCjZJ6FUiWXBWu^UgStF#E_7GBn2r_%Kpxtxy?_b-G zAD_N||LC2a-hAPLb98v?)vLM7m$qEK?3l8|dR7VDje8v)olHIy?P? zDoX24p7brqiEM4kT(qEM%jU3fi@M{-0!s^RY_;t|0_ z+Xef1q$QbKXy*6lB_!IoC&&N!(`w>m6W7~Sd0>BNU3Gc6yQR0AeOO@AxpP|jT0S`$ zjZNOEsdhDo4<%N{|NPlJaZ<2>m1*g=tq&ho)E+w;R9@m76JhS|bn;|w^}z#4QzmWN zoLsqYZ%9q0o~i!s-CI*<&3OE{YXAQ9-@jX;+gr+ZY=8N(M&I1X#Z~|O`GVFpt#|L0 zr8TBBt!T1xGJW^1&LiA4yCbW*#?#c+&^;x=*hF2&Nax|hJ7qg}I5_GSY*=q(YmwQO zp0{e{s?|%~5@O2t><(|N3k)>1^R!;EBF;6~(Z=69I4!`~-s;$~?8KxPPcN5?mrjRN zl{c?y`t+&6$=5Etq4x6Svl;W}n!7pPx>f3xk=oMgn=omDwV&s+XQ0#7@(Y|Dd~AGT zJoOFKO3Mm9e|~%I+J&M`8+YwW^()A|cC9!fH_XS!`03LJ(b1N3=0wDlL`|6*8r|78 ze|}`uoXROv`w{J}$SwXjM zUAcU@uyk5U?#ktvS&qK(UYjb-J%a!joBckf9zH8bb~S73(^@4bKjX5*RD4NDuc zmo8bmHle=3%Q?{D%-Ou@Gr~gB1LNYY_wV1CmY!I*xUOVsv8|m&Q&Wwfzvt}P(;!EL zL_`J!1bQDnob4X!^6}%V>>S4n7YgFzqw?}IA3V6_UznFZZ_a@OJ8eBIk$Y*vuo860 z>}$IyY1U*1x#uYPf2{8AZJ?XcUh{cXgYP-wmXF(D{_*jN$=dOJH!Z;X+UB1tx#s-* z3V0RE?-NN(TMhpodAAp|uWfI4yoViVU)y8-eEt2Pn-~2rp9hto|6AX(KWJbP%Sec1 zk^|kmXciID#OJ2*utj7ZOCqS3_OOjT_5^58ZpDIjrD++DIzLS80NseJ5uLS4_1U8y zlWQ7tyUaknv?UKuJnna3dpV=uNi6fp#B#w-jC+nE(pEm57E|_8wJ#Ed|>i2W)Sq8Q!KW`iGeY|A%LxrP3j=4!PcGA7b-Gpy;z{Csim>d zR3gOkf9Kbdq%X3>m-XDbvN4Gydf2^3(ErBy*_CR!+c(iFOGW{JvJQTsuViHFIS=S z>G^)`3kRNW(LSiHANrkbg1!ge`PmwWxU6q$9OEt*`FKQTro#b&+hx|mJWp1owDBjb zd2QtOmd`+xh4IG139A`ja9upk6?#CODKAUK@wo2A9OEND+ETuFI%oF;UFJzYV(czI z;iB6Gp2F8_eKe-84$@;;@_W;C1s0=oY6=QRj#(7Sh-`Mwu~6c@W+wa4fnkb-iwl!K z!~cfO=a?fWG;p|!OgZ@Qz=z1g4-NQAEEH?34pcmzEI&`+3KypwvpA=$BZsI&$c71b zEBxIGz4_Y?!Imk(f^zC9@w!CfEtG()S2Og~ze`5J!k+w_K zy}tSLe!XJ5$hX&V#^!rF93~5=9OSuX6c_N7(=&hXha>U)6V+Ha7G03BnRA(wAxgT0 zo!{m_fWV^fmvt}v`Ko^9t5ZV&lh(cI_KjN{ILkdaOgI?2Hx_n^%UDchng5WZ=|~d0 zP))Oe-&W?vJ-!NA7NYF8%mn;gK7{lH9Q~?t;!v=mqN+N_0iku_to9!|8T)@oJC;0T zicxG3jYxLf{J(*^r2iVcQK?NwatTjZY>^avyS*KXtLwPx=IZLF&=Q8wC|inul2mRGR}oWHQ~a zUgW4Hd0av2(*((bY>ZPTOeivGWMH{*K;V(NfI|WIbh`})W!Q|?C5X7NCuXo*tLgM+ zVkw@%_EX-;#IY^yU6Ls4O$NrO53OlkO%1FwoB3}&IH0S!xK%?%k>T9QL&9YO4Du<5 zRu(MuWB9-{m$`!3@x#miPE%42Ff(#UFuYK3P3T=1$8<1qvzWmICndp&+pCwJo5rz5 zZJE(zmW4M3mR{K2Xp_*Db4JqXpCm)$zd-It9tLIw)d?nS3L@c0VButRIQT^@F+}vsgH=kb4y;aIjY>X^@tOi0qI?Am)_c14us@jV(C2W^K0|P? zl0*l`32o*$#g;WpI~k+}1DKs-6q062oDh81(ICOGgsK0ju8#Y(N}Pe2 z&!LfjPC|=8MV0O}gH~pN$8SGr9jW2c59M{@wChb&kb2whP}QI57h|* z_2wrZsjjaqZo4OKe?)}k2a{9D1r~XRr2h&V4m`caFoBJ!qgf$AVy1)D#%|sQVTSsr z2OVD3Ja2q5Glg~HGRIw9l_byl#sj(xd8^wR z|2SPSGko{~o&3LBmTe<#;#artXZA-Mc0via$9xea5Hr8=eK} zwnQtePBxo3_w5rwb_WiI6D|xH3=CQ93)ppzh3;Z>NR_?pdyB>L(GKaPJa+DwyKL+Y zdy;t?(vvr>lK;Rqf6Y=>yFf>UUwjS?tVI_XG9ndX{!gpe%$oEuLp@jdyF!DgfKf!1 zz!SbAu?`^)hpwgtO$@ri9lRV1IvWohU{8@aajx2L!hH6*3SDX*+#C~1nt1MtF<(?O z;SdV{Dw!h6vZ8hQ`jQr>JqJZ)9vm?Dd&<>l^Ejkg;)E^xhjTML4FuRCkFUIAAfPvg zi}y0~0rnd^nLlf)FlU)1!sGYeWY|S14t5`^8ARe0j{EV+6w=B2!vz^v{kfM zaxm0c2*h>N-#V-w&cJZ}7#Fi)ijHaL^7cUH!cL}%oj1N0NfkyYRR}~L$Yg!UT`Agq zwxpZo0!QCvHeUwcEkDwj61#VFc<;K=7#A$ycff(Q(XPFqsoso9#-gc3v^k_GI^zJ# zp$BZm>CFrUPX7%Aq+QB)mTH|Z$YMTFZa<@$#jxe8ia+xK#!O~GcL&BN(-{6f;N@vx z&$bXSTo5Fc&|1^f%Cs~$}{V0 zHdQWMS);Dmq4mlk}NB6Uu6;Ih`{c#sqEy=JpQ^4#0 z&rlr)fmV|mrbN!~&*!eG6u8q_Gk&1K?!BS?%ru7yADj7}1Gn*JTH0>)8NY>PKW;0`^i%8fQ$>wyf>s zV2G9~WHww9(JJuEdFgD6#n)#pW!kvRftexU)#4hVC9E5la5%ENG3dO|6tG^!+WMJU zvbf0bKc_d_#^p)3mOFVZ3AxOYxWJw%u$ZN>xKg#z__)9f0X8dvD1lci`7UzqtPlte zFJ&$)Ro_v{Jh3M(T;NU-pSYB2ZzgZvBM#>iy$4MFvo@5eXc;pcU{$tam~9}i--^L! z1Lre?mgB4pg$6D857@3{t(~SR^vkV~bz%~i0!zpScF!fT)~TGX1x$aOW?6SJou0s? zDX^6J;sn-2#&@%r1dSQLdaTReeD>~jB!>#<@5>jDZ)bXgh2AE?=XnA^-! z^f_$#o^}?~4eobd1s(Jh5Di%OeAc>eZIhZ;%+cx8mUGxB7A^4l*1GpqiCm{Q@OcZ| z?h@b++a$WXNc#V2^=Dn{j5G!QbTRzn+Q1qZVr5ooF3k{rfxmjo6y}SY?RU4i&fYBN zEui^&-G^TS^{rg&hU~i^q%j*#tDMT%6DCmZpve-*_tKdmJ;5Sz_sW!Lfl@c`Za0Rj z4>Bf{H7yCqoIWj+!7YbzHHZieQp zkR6Yh-k0s%pt-q5h-GWF^M|gDoF8{Oi!4i(+T{7!ec$hpQ0rYTE&}_tC+@Ho*fo16 zAA92d)j@$?d(H~&T77$0&HqokSQ?pkD5bJ~T%5jj9`nInXO;Fb9o&21(cYh`6HBKE zK5}4K*&wh@A>5CFy{t97cw5AxP|oS8tabvttc__qwoI!sJ-}LXfZZ^{cLKMWf{&m_ zWD^7X>IspvT}$^(V3`__zBp9C`uT!}-zu#IYnT&wn;B*>8}e0s;LbPTXxe?~vB#Q? z>De`&0%|5ZYAppOcl%A17Fu;^1#6(Q+gElg69JEafWKK43=%etzPjUn<3x`C!=STh~-1cNe5O6_`Y#YVo*Lld(KI1 zxBQ%0g*E~~K1aV=3(PDywtCUAoHM%{{$DxH_u+WyALH^K0kH!|<8lN#eiX7fvT8H1 zJ}_XOAYwa3W*_Uv6aF;NF!U1n4L#FzxKE4GUxz+*;Radb) zp59(@dZ&*-!34I%2Jdgi0#{Oe*(#duJn{9C=$TP=DDV^Gr3W1Qt_mzI$d(c`FE$qD zYd*=f(Y)WnTEc;&URuPyfsxaJBeg-Gt$~?Sfcf#Cv$;BM7Glgw1?Tt@8K15>|CPt% z`<(OAAJ2WXIscLAoJHn&_lEP&&zygDMzHdL+sESqQl>=`4=?=V5&FToo!yZA`2#yH zM&{=WSk8Pn!>@QrCHE4)po8v*Gq;|o=^kL_ED^~0f2`!v9@V7>I6v;-JY+Q^aHIN# zZ4wS^1?J}nyY>n>|2?mIKuA)cD5*d|U;(#mCu6lrfYUzxNg$ymy25{+HPMW*1q1+-03tAkf*s(J_I8!;t^yUDkI7 z!k^aO{WkXj*FGW11cuuSIJz$Iu^95cFW_P;c*u5v`(=W_5r&5<2@Hx01dlD?@0f6r ztMI|Yy$`hZJyN>(K&3$7Qv$>M2mJ3paBY6@;8%lyIm08#g}k>59v+>*Bh~nb^}r*y zx+hW(AF&(quQ%Xj`N+psz-4vrv7jImn*jf@0`8*=IGp<)dHj2tAUBuo!y{fpUh%jG zY#Sdd$_Z{#c*@ks!=~^=!tqIB-1D+N+vI-&^Ai}36bNMX32wT;%k0R_#_*u{-P7{_ z^ImwYd%`=B$7mjJo!?Ud#}~IgFrH-Kd|)V`cz}=3@p;$3m)hrE@Cfp=9bgaM_blh# z12zW!T07q37r2)cTp=fT5?%&&2yl>eK@*PcJ_?`Q95})AF zJpR}TZ?<1xU0}e|c2D38-@9+;?mqGpxXHl9R=~qu_*T%6`?j7y#|O>@2iWgAFn!)9 z@U`wepZwjQeL3d;xOf;pNE>o@O_17nf%mY%>wEt`DDdAE{LgqNfnn1H0kQRhDh?l+ z4zkZYC%`NJ$!Kl=ouBg`kPqv?(=HL0bj$fRQOJLrYt_=?} z*L{|J$jR2gcgukLw!-T#ey^S9e@&SCzM$`6T>iU#{{-h<;GVzX3%}s!sQKS2B|i#I z{G`|TEld9UimMOiA7HO>;Fg@oQMRAo@4irh{`ZFWMv?*SE%EIC`UJNJ{3uo6XY2dg z`2WYZf8QtA|LoHHIi>z*V&2ag`+vHv`#I|poB2H4t%C!c zGg5*x(?io!f}NZ|`(?8;!lEO+!h+o#>`h&q%%j3R{e0}r&2_!A(>1kKHMLZnqr)vM z^qMbR@XgOQG}bjS)6vvbGqN!$-?h`&L@U0(r}gSpEj)NAmHYSk z`J1@LM?ZR0>7E?#5FQ*-Q)%hxQoLpJq{$&sZOx_Iw;5UJ)f_ppeMjoUhj+4w56um`Q&7jOfB{ZcipsU&Emy#6D#9u7uEj!+5G-}UCrS`HvZoA z4PKz>jUdO9Cl4nk#e|0WS06m!;;J7OW?oU@UNO6(bxo^Jtmp6FEe(y;&z?QB_p+Wm zxzE$frC`H)8#jxK+So#Ne5YjE+KCVbU3S` zvUv9FX->{|Wo2$z*^ZG>A<@yGqrp#~&MPU&yMFzmgOAPm^Cx|Cv-}f%Q_~XGtcfou z%+AfrxPKqClOQuIIXfpUIK(U@)ZD?*Ix8y$>j=KNBibA&juXCN>#RKDV9z@y)m0yGr+@Gel@} z{Z0M$He-MF|2KY<{`d+q++Z|q-E{Bk_Ybd^Y2JALaGKqZ!u#jr2->M z!Mlb-?ZvbLu4PNR9Qgm4Bs7bBJ9ff^$*^dWg?Z^F0ZH!0rVC;!LM}>`s(d9%CECj( zCK>QmW?blG5;aQdI-;TS$Wf0klqWj9>Ij_Z_KhQDir8C= z~yF*RYjg3DQX`RUx{*^EIragC%n%9yTki(Gh#;bV3 zm29W70v8U3$vPrD3^f%@A6&AY+_Bm1Jqsti}u zN(vn%rN6v&U9&8EQ=)2c$Vnf5=_T%7-5*3gdg(6bIWURy=$U}itXFj=pXYk{=0c4T z=iHzjoP|{v8d-8RFKqWp)+utjvh>o0IqKujpH$$QUD zzm9Bn_{!Aq&AE3;?}P(}6QPtZana&JH*m**vc zC&9`oYn552-kzWqRn8Z&n|-0x1ye~zuU(!qKE+F4KfyPhhwQt{w6I^`55t{zg1=cm=1=^sP$>18;Q@!I#D|7S z7i1inLKMF8s6?~6EMOG15O^ZEB*~Zgz^8e~9gh}pFf0;2VWXj>)%e6oF(tZlbyKS7 z{-6Es#W$Rt!YoW?FWI0J-SLoz@xYo*mUQk}=G1HOLV4$}+ioW;CYlJnQ%wKTAsu|o zEzQ!UgZ1Nu(*jBE9UBUj=T%(}T+u9`>i2O%$dN^k-;ONpw0W$st0P6l|NBILmZbr^ z55+r*1Pc5%Y;mmL@+91$QXp_s%Vc%ORG%A%kF*HnyEHQ}JmxsW`_dwXd*hs^4q24~ zUtM|?r)<70$gR}WS;;l=gvx21cOrbQSu9rC!6$Z?eLDW_qDz|=V~g*WodOI^Ewj}t z73IUH3q4Ler_dte(O~vtLJ3pCT<)1Olw}mn7?vzn*e@OK)RpmnLcH4N`DvVqOIeDJ zHrhCsY}Q!eu&i>@n+&5!v4tV>?u*uR%_vfMAlc!p`N?dOVa^^r zkfC^d7cSM z=NhV4`&@FF@oTSn+>w=1C#MI=I)%1pm?}ot-f?!}nz&(7O3XhU4{gz=&MkgR*2)y7 z&tynA-E!f}iVEG+%5#l2@A~ppr+)6qu=Y!QYdMV8ccgMF^BP@Qn4`$sEPFaxIeO~J zOD(*q3LUQ}J?aWMF;%PG)+12Z`_@{WZCe@(m7SXuubyrZ+q!}EwAeDkLzDkkPFCF> z>zNn+$@!F!+x(5Z>k8Vv?>v(FzT<@Nx}xc)?>w{mzVkxwx{~F;XEH>5-*sc}I)-hh z@4hRVzUu++`iksHcRxj4-~Hn5yNc_l?|qwgWY1Gy{i?g(_kZ2muJqyTx|+S!_y7I+ zzMuJ|e%bfiu?*5b4qPjAcirPC%$Pm>z$@1cE$Te8-?=m^BpJ9nPf(oTk#a=t_<@e* z^W2Gy0Y8ptxShSTqERR^CgljD#>UQIpT|UQ+s~x#;hA<=_93g|zmJauMIM~Vuq$R+ zB}q$bdrfWg`o?Gxw!4bKRO0}%iot7%=@FM~ z6gpTr9xygONw~zilZmmW;7!qNX|2Y0hOTq&zT&hPI_aBR_^RP?}{HPi3&tk?I_=0A5hSGS^xjv zkLPvnS3U~;GQa=tr+5R?jaubtr3@Ag95Wi69@bA}V~{_j$chJ<+f|rit?fhbE6FmG>Y#nRMFH$2Qk zPfuOnKqD(H)Wz9CPhZo_R5vRvEGZte-y$N^Ju%)dILPJu_m3Lds=)!ykabFd0Zz`* z;hMT?f&R|ryLPr-y=rJ<=AM%1>0u2yPrK#v<%ZLzeDkw|DoS%#t$;M}wX~HXt$Qtf zt=fe(cESGeHol>SUc!XF%!TvKT^#)UO)B^A^DW462oGNRP`7x?W=l_(((T(!9Bn2| z4hgNTsyTAx?c3)u-5s`pK6)m)*-IB|X{*J>M}{}lnptRExpEHP(zmhI&hN|Jwk;(z z(zIoD%aOXgGgmX;9`SS&h%NrLgm}TSd?V1o% zbNJBDpUpM3o-03lH4CKYiEkw3jbyo;`c$>+PU#VSMo5?$FGjMT?{F-Mdk+VSWFEu6OV1 zoL%g643w;#OdWhI0|QM%Ld{mKUV7?Ou7{_yxrIS*Z-7@u>Y>9~Sy_%DRplkqid|jx zoqX-m+tjB{?Qd!I?dWJqO1CPRp;=m*?;qfG`t-5rnDAS-t`towtZ%4_jEVgt}vh;FINQ}vws2&$@J@dSF`xdSI0_WruyN@3m zAXf*ar6=|u)IM`IFFPj-vF(PnMY zl^SEs7t@+$3^OLRSeGh-=deA1LWV)b0ev-(d__PI2yxTRFX$Z7xX@wC*Qfh(UFl%Baq)sE``v^oecY^$PhISM zTGlw8GF!6L>0;KCHT@U(OmZEs+PP>myyTqna;t2ucfbyXzaIpo7=A=e*!|&IV7KcR zri6T_J$YZ)H!x_IvUxW#1e^%4U@*`NxoK4*@0Ox-rNbd7q@-C>!1d0>!{V7T!h9_@ zPdVJ*36-pO{VT?D+}VNUO;M1pc1ov%aem8j@6ZKPH#iH#jPDF5J`( zGfBEBe2|ynVvh5X!kKDM|I1$K2E=5)pQOO2<0g2_L3 zH{~tA9j42e9Q*x&yHDUD+fn}ij@#wGq`%wy-9MyP;^Se5s%sNgNvag71YX-_=X7B9 zjkAhJqQn`*IwrpMUDC*LQO-ljLV&f6rI|-l-ua4}kie-U0(_ZmP60b6+9>!bwtbq< zQ!m8csPag8uLTD~ywSRL*0btwHgR11Z?s91yUwL~ST>&MM$IR$Qwb{LXp!fOrA|1LW(>LM^l`JlSt4_!F zx=EYGS7<77uH}&B-xQ#hrm|?YlZUJRp>usXTU2j*EOD~hC^#wai8OELLr0m5c1^pk zC{OiZ3Mo4#K5Ns_WhO6IILu<7Qo6-;sXlL3)U(CG|Ie({by>>Em*OBWkL&BofZkW0 zQXd0WMr}1`JL{((yeV`_iD~Q|8D8%7Ue`9w`no2=cXibDQ`ffb`ntBDcXiBjuj?%= z57t$j)sAC5aDCset?Ns9*Cec8eErb9uj@OWzD^K79r0XZ+lEfpoMd(Hn~!Y5)=&JK zooaqM@?MPD`k7y|)7`yqt(JJKu&v^lu~1RZ!kV)63qx}<)4ijY{I5_{ln!uloKh%o zCPhW&=8m@>an(0&a4pz&!dEY#<#zN+0dt09w(E+Pd&kZ)5LXmb=*aV&)HBJ(eAiXp z^%aptv28gDDz|MuDYb;*@!9otra|{sui4JPa=?L!!y$p) zCxPLcE(g=M(+}9}m+TMwsn2MYz$mg~0V7KXLzC>8hkW)k)VDJ*ywrDFnVGL+s5VI(nwEfHjRp}>Nlpb!JZm9H-nfoUb%ZG+(JI|zj?3?*n^`-!a zF2e-Y{wX_8W%wPKb^A>E(>_T_h7KbyhQDcDK08lwD>QI?yYt-beA&r`B`4=tDU}jm+u*~x8t7E?`WQ-U~=6L(W>|@%&ED+(y zW3VRirB#B0e%{s%;;)m-R9McaJk<42scB*q|8bx??!$)Vw$}rUQ}>qJHZXZ?Xb|N1 zdE)ufZ9AT7#YFk+QhLV6wT=0~J+15IcRs9pUE2QeeiXOD?RRzMd%mB|H@Yo-|7Tq3 zes;ePjccy6Nd-9UGmrVuW<5vYb?@85>i0f$v`>2^@qYVJP@)zz!#0|LA^ZCaa@9IK$XMIlTo2M{c8(4Y@N+8PwX?J|-`dx+_3BkkU3GYK**3_x;q)m(YcqJG z+0Wku-dxtwR)w^cYZun!uUlj9ZIdvePuEDtAuI^eXs+D9Pg_UXw;*TfL)~xRnjnMW zkYR9mqdBI#BYWxMxcEqqv?TZB`0$2Wa}Hrd*1heudMwl+O{SYheymernFUg7@dPitInmywBDa9Y6a zJEhSbt(PvJX>9T~vb8vWzQEC0XYSkx*Myk&@9RLV(vUN@CqQ%jvX?Bku-7VO# z-pa{z)#|06zcijYm7AHFTwUV{X%L50mHWhamP{)?bT})$P2DfS``NRHEv>$F^+h^ts@bzgJ0~Oj!Gl}gK5lvWnd%yfr%&fbMtBw#=iq4ybNpvu zZK6Uq2YWB^Y;Nf?1-I8!bJyI7~x zQy)Lxc$K}{JHQL*i8D;s2r6T9!ihzzgVo z8Z}eSc-BN*3>9QJ&@Sz!xRH@ThFfrZyZblY6vZ~(z!w+W9V0aaTCx(0CguEC$&%n$ zdPd}Aqsg@l$ zm7Y9t`d8}0!?4t6<%>lJ2E-dIh_FwDunxfWA6AXB7N(ss9>ZT_bDSLVdtYk`coV=Ww(^_C752N;^ zO-zQbCyQq;+;u_vM%wRm_giVz0&BLkX}{ZHqGb@E%!)aTBZ_>Q~_J#kKC zy~AfIS6%0vPobU87d5`T_ide&{ox?TaTO2O3X3fdB0mIHJPDPpViAw}x~ZfvSXBQ? zzN4`8m5qU=Pp`B$a4ui-=~PVOg-cTzEGj0P;c89VeD+mb>Kg~i)gm!f7v#3QceK{t z^3fx1Rfq|Lt@4$UODeLuLRUC-@0K_^-=DJ8G3>U;hBCH;WuZL=8&7?@nc;8w(l>Hh ztcbX4Do=TE@$-`Rj>_jtGn}u<{oi8loF=bg=3K8Hvf*}zy4>qqilH|{E_^;ZrQGL> zq{~-lA3>H%$9{RzHp z*BLbNC5z>3(GT%bPk#F!V!!(Hqk(Gu)X%ntLVhMwwVrf&U01*A{$K~_?r=j^&ZR%@ zPn<6@H{+|I^^Z5(-`DwFl~Fkx`QmcK{=Dz+LyqvXbpHDHpMgiA{E_+rrl6;mY(5K^ z#7~IcTiD$w(DT59P3<68)Q2XCGYiS`gj#qhpawzZQH*I%=R0P`tMoA#3#bQ z@lfZr&v~zgElde(^LW=J1ZFTa8Z@gb37p_zFkouqI>OAl;DGbjTfX~#iEd~ZswXfW04j-yh6T4DUbEye~5`U-)je%gTj1^PblCub&bM*ldZzr>*4@XSNL*#U>&ecjOEe#cRuf8r4hzl}lA z%Qyug%O?Dpy;P8UoDg7UrfXuN^Y!cd zd-rZ=>!?8*aM97B*4C!QCAqnI8HGjJre+3~R>rY$5tWrCfk8giHDxumZfWPfj8M}L3k&6}6Id)n5lT{d&(l+MoPPoLiG-MhW5y>Y|F z)w_3ZO-_k5GS)UQ)J#l@EiEemEea{jPR~e6Nr}_aRx>cvfiDo5Jh{)s)y~4w2)-j5 zvKR$35}fvI70YLeXdE=Q}lr-95Dx`NTrA^}o)n5`-O310KJOUbXgwS@J#b zU8LX>3!A=2J$b;u(s+CVCy%So&P`8G&oIuu*Hfv~u$M`M!9YOrQ_8s&u<=V(+h#G} zU0YHZHxxt1FOySO^V;6}miqv-@$uZAoy835B5V={3=U1wL9<*u9AcFUFUj+D{7?As zmkQ;w!H`vf$xIPW;% z#Om;(A)evLM1v-FNdra)b_O|(M;$8DG9Fc4RaFt>VwEXOEH#Mnh+%#r_@TjpZAST{ zKAUeZ9{0B{jR;_3@>FqQGznO)!eG=@=8&Suu%NNeAuRLh)QB|6sS}uHI!th}7IA14 z*4DYH!octHjDbNsVCB=<1;;d>&rw~vV*yJ+P2^m`FEbllczm9P%cO8H6g12(QCsz5 zQBT%PB}Ik}ffuS7Rs=ZmyPi=$JaemU*o%cbOtoHtj;Bc|ZBuYrIZ59kpn-Lc+re*| zidcAhXHZ_%rlY@>gnZ)T4z`)m3=5=7r!e^`AY&v7M`euo+&&9h8f>*?~7q(q` z1-=+PH}bOTMg|sBhmXwstUn6YF2AYv`|a)z$F%c_p{$0H)*D`y<$4`1`~m<)T3;j!9MolhrJp8qmz6Fg)KhI8Tu730BjLCHyr8Anh*L*%_v%bCfm@T{RmkWFT${1brP`_K~0Pc+kBA4pu z2Vy*Wbl23(VEc|uNy)JWhB}&BDv*wMOH19+qx;vaU3T^A`A?tTT)1#*_wKC@j#ge? zu6Fj89-ht`n#%SLmM2dh*|~G`Zt(GB?Hx_GZ(m7Ci3<+#4GRlMNQ_yweBos9`lsZS z*n9VGJbU)=!-rRpvQ%3~EhN-$>eT+Z^JdJSKlAb9d#_$ShLrhQ+G_A(KQRf^y)P{* zu(UERDb0(Gi%8E%LaqX=ZOkCGKtW-)zJXRiptpmgje&tSq%Jsj?gVmO0549rZe0(l z6gF>O3$GODQ?9c8cW5Z^(2?ptv83o^j@A5t)C8}!L992{m`T5_+W%lfg^%9s^Dnkk zoz2^Q|HFJ-vPX;Da;@>+6~tr_P=;7jckA z`Sh@v(JMd)X>8iO1$2-`-m1_wQ9I!WX&h$c7v^L>cb>UnZ}W+(kb^Yt++t*9VY_ht z(&f9)U%Y$;I!Ghq{=>)Tp6-4B{m0K=zyJJQ^6}BLtI1E-Ll4rp!SbMiOTj5&fp~(H zX&dCQuE%RD#AO5|I2)a|bcxxniaEJy>FMb!4|u+~aNsaIlZ;=K2*c*(=daFpXs$Za zaL~hsjcZP7$A$w34){1h4shL7p|BuRLE+I#h1KBGy1s?ja9=PJka!pxd=q?tYxePn zo0(Yzw&c2QUw?mp1GD_b*F5XvraWWOjytnsW56M1p7&p$?f?~s{7%z)Zp1x1zreZs z*fz`eDSC@R#o?{cmxryRLDM;Ai?1)&zXhJoG1Z-hj~@edW4GUGuLsTMod3{y7BriqSatsGwf;8wssat$+2I* zzCU;F#HUYh=FOYY(o(m5$EL9Gz!xtbZQ8UpH8uXtn`iIeztq-I`}pydho|%I-COtU z-FEo!zMVTaKYV!S_U$WL+N$^O-?X#0eD>_&$&*JwOD`>q+S(dw>nf5{VmEADee>q! z2@|`oU%$9*`^E(eW>r)ccXhQaTejfx<+Guo{tb=Qr%oMx`t-hcc6w!HiL0xpbJ)t-XERBBO#G zoorh!U*5eZ%{4ySF2p}OC(Sm{r)1j}$gx4&wx=v#9_tb2;u7Te@@38JIn$~R9{BU8 z_2duW zoP6+5W?_-by?bRhZQAV$u=}A*woG_E88)*JA2it__ga2CLhx-nOdATQGM2|@bJdE_AOdoaVkZV3g_R@ zNdg}d-Lpr#zP<|9etK|#pTl0kfaAbnX7M5(HjW8u58K&zjI-{X*qD53{5ORdb8r|E^u2~22sdSttK^{YEO#PhwD)-L6e1Gk?#guw;I4hz}Fj98CF4%{;?#LF?A2z=u8b;81@)1tbPE_bUOGo8*JShJN?KrO8! zX-52{@Zh|hWu0;Heycba&6aqks@~)E=;!144QyI37PN?UU2$>ZD~O)B;BUgsZ04}# zhvEwVDK#+3{Aplj_U0=%%Bl4<_}q%cX`XG0xlt1848^P)nOWT@{8wP$sD5P`G^66v z&Y+wf*Q%uFK3glbcvaaqOX-bmYO6u*r`K<4JGd4&)^9cBy2Z;hM{riRx0h7TdIp_< zsSM&z3>c(0Ui)~!@9%^_{*84_(g$J`XDD9a6mnqD+@Z{st>eGvmC5t%CP7{W^U4p2 zT|cn(W!B@(0^s&j_#9z|le{l4O=Z}@z{tgyWBq`Eb=S#)7|Q^KBU~kWE;P#SnX=*1 zgfx}_KFJ?57QUEU_w48E7|9%N2QCk(=z{L;pH^mH`Y2RWa;TP1+VoI}v+mY|w)Qz6 zuf>$V{d(QX&3f%IrdZD7tU@a`+&{s(EbEJd_67!L*{Uxa=esNOPvDpQZ1CS$<-Ef= z%j=x3eb@qVA#f)-u<_MCy4N#TRS z_P<+sD`qihI377|sLj~KBf&7Kq`vLV=6>ZX`|<>2N=4%TII-m3h-YP5GyBJrF8R|t z4%yoOQ@t|jaNW-J2h4Jfo<2GFvf{;)>G}VDzF050WXqL2o+zehjslkBIp&&wK0Egp zac9IjC^##tU1)fhBP_*trkUsGgBj!Q2WL08>&>=l|dq2;CbLay)=PUn05q8JpSdDs(LbT|??jANpgdx_aKE?jOO+0k(3 z|DFUUlRZmf-*d%W`(bjBG2}yhz?#t6tJ?R^WqDKWKY60ZuH%mHBYCsAvKLAm_c&&x z_quiR#D@%91eh3gl-jM9@bQaF997Cp5Mj<_;S4J>uDPMsY%A=4b6&(zC!^e&wvhOB zbIeS2i$3f2I&O8Rb{=|k)>bCj>p`K%0*MuUsS8&)08f9@SGWc?)2s8zJJS$os z^JJBoiL+DOhWLM8OMcx6a}`Vc=(2CmJOl2Z;!87iC!g?HW;A`L+{Qv72G0*&JnNj! zDs;4#`plZb-+fd=k>da#*9j&TK69b^2R^bdeAIQ`r*BC%y*Taml1Cy-#gBew2=bS& znfG01`G5Zpp8C^!QuL$8Db^Y6v`guZR) z@O>lscGV5pms>YZ=v|Yd?tSxA)VEDD&aO!_KYjCD)wj(Hc-LmQd*8Y=>)VzUzH76> zPv5$>>)X~1y=!yQy>H+8f9u<}9cS0(m7l(S@7K5O2YA;NOkc{%XQ1U|wD_@&tTcmh z1WP5`&nERL1wzdQ4Ng1@CzPo^5o3rc-yN0EQL=LO-49|*cCf7Ua5A_w`+1s*(=$_! zGE1XYTc7D%&)>dtn4m52PK;$A%g=XZlertXo^Id&VD5yvtK9R}CfqU`+R{2|uQ zua3=0{HR#EQ?^afc}l?&Ntr}OS%C&#Kb;1JKZ-1l7Q9MKDlM`VRqPsWN0yg6FgNZw zaCzaslG5bsFWlX$E-_F1EcaR`rR~iZLyNN=?8jJJH7392ulG0@slX7+aAiVFcLJmG zqjFz^?w^Mkew@#=Ql4Pf(|wl7aU+l0+f3FYH?=p5b!K;$soWsm;l=-|zzkhRKudvHQ)$1I`Z=Wr>wXZt*qg;pNhX+jtCl*GtSRNGB z+1MT`ox-cNfVu9tl8Ih|BWu92?Hv{gE!%eQeOoCSlStD@kic`Il6U`u@E~W0~4$42P*~-KLKTzU7Spehcf>x zm^hPv$ulMgM;Q#F zKCNaDD79o@lx<*H^MR#`fmuYs#P|TSc>t?_0`n%Obe4++9Rkcw7dT`C*qIz^nI|x( ze`GSfz?3S)ZW=6*yM^&#y0)GHR{}?yNr9C82JP3zX4cHAH-iKM6c~&g1U8uqOlMHg zmS|*ctY=l!OFz(-mr-akfssjo`O&hb3GFG9%q1ls`X(_ja40ai{kIU9<1Qe6p^?du znaO}r+#>P3TiQx?1`7oyh6M~l6Bv|#)NNL0sF&zy{!zhvuu1x1lYvC{64mCw?=mG~ z&WsENOcR+;eznt3V5nzj;Jm;nFoBu*V4c5)KpF!x!v&@*f((m4vgB=QjXffmQP5e) z?rfCOc`QI+S`$aXj&iZ>jK5R`)@fAmr3>77(aXfpcRwtPr+~r8xq+FnyS=f2C9#vg zf>WNk@!NO)OPko3CgxWj7m%=Mmb%gDcY!fZfmuF4cH?we9fOG?oLuiY7(QC`x7_F| zi|E+&W8x~;?h9%H8rQQ6rU?FRWXv`bxR=7ta{a%@kpXKQR{ahzh|BH*scSjWM@n;!Z_ zL*QG6#E%>C(hQ7urstQib}}7cC^ld>38?H4nCN66;ILten1I6B6`dy2CulG*^nH@y z4(zg@o__sHeT*hU+|G&5ZcJpAs8sklW0C442{i#%1qOBnmgyU;SPWS!1(;1XFmO90 z3#tg5SL|SEw0d)tWBLv@?F+MV9%%3+_&XV(doD4IMO%RYQ=sCdkL2^D{!NfB!=frEy*`_vk!p`|~RA(|DWK{Sds`h~? zJU~G2L-)UBj8X+E7hGAG0$5oSo!_LgR$l80?$4jBt9s(hc`l{O5 zJQ`TMZX^YsEI2Z=pXoxcQr1FoP6mAihJp`MCtZ?G=480>h=q9}3zNe!EI`0( z0ej$wng`|j(h7_^0vvx0*_aq&MSk(K7M8zxx3jcF;c?%Rf|*u(-NyrrU#5!GfPwx zoJ9--rdhDFeq?o=wX&+RDov|ru0~Jn1@?=Q6ID+npE|kn*ny=%I}78bmYvXwzlqPUyRt@UX$)|Hrdm8mo6XLrdeu4i_f z%3Qcbi=Cl-`<6&91_sY5F4+wZ-t5vBx5_YXo9H-~c_I7FK!JNDbDgCcTM9Ip3b_Rs z7@1WBHhIlc=3dF1xM|0%c@x?lLeabUtOBxQyjWA*WvlE7PHF zr{>Ky(K9XCrA#ga{I?V@))Y7+JXy8D>cMvTmHaoo}FS;4Bfn>lc|Y{BmE*Q}|Wb1i2HURfb{a`m1S*4sKF1U@oXu`sfQ zG8Rm<5K!*sxZ}QDP+>w1+s3Z{+6-O>0)5&H6S6lRd$m1+YsZmlslTgsAMf7rX?Dc9 zTa3vCEXN+S^oujdH!zuBU|O?)!S4mjZ6>z#Mn(<>))ocE^6;E_1yTwQ%#H!ylZs?spN6Pw0^X;Yoto9f6M7Um<9(R$kdqWmu z0n1e_fsO>`^2IE9Y7EK`m~J$!(3_CY^nU`=)(w)y+zh-I+~OG-S{&+GHXf1ND&EDD z{B-%DjuVHNA2KzsVcagU()ad6ld$AF>H>?_BriR4?4|3GpP4(D8&7V%v*(QTA&bU- zuI1ZUC(g~T*=usUFFBpXWI<~A9){rPt4PS6hr@ABYHB+@feDg%MA8XEA zd|cVGak0xnR-c*7|L%C+mpQkO@xt9Z7g&x)xVDDyEl7H=7#flqYBedecSGowJrZKE zp<;_K%Dlax!W$}JE2q1N#r;CkbcZR%J~CNH!}NRQ3;!Pt%bb}~WO`X3_;PmXW!1lz z7aZk|JIKsaAoY&xipSh5UcLe$A6SG9m_;3!C+xlw5_>hQ_G-l3t5JKe#@xLc_xEao z?6oA@YbmkU(rT||%)OSi_gc=~Yk7aK706yMvb|msd%djodJ2ow?XMB7k3wCI*yRtb zzQ`q|{(&(!CgbRlpi`}iW)oLT2o!QVpy71dTZ30AJk@ljk7e&$r3tcLOOIS{3B1wn zE4=8hNQ3STlY?x24U8NQiyM*{Ed*{`EI50D<@P4u+XA1NXdgkp_-@h^2tXufoTEU09A{S$Yvp0ka6flZk*lDrp zKI_7`dIquSDGy$@3UJEhi5hp#S}yo=t{_jJ$p2VTCcg(?FUo6v$aHVI(|@t!z{@)x z!d`!EZ!jNVwPx_*SF+^Ytaa#;yh@x|d9zbM;A5VJHm<1xCVC9q3mk5&y{A}YG=Hx6 zdt1TBw(BhJN$Auqv-$W$YT;wYiI4OdizE)*{^9tP=OF`Eo@Y#+Kpfvg5#@)MPjokW(N=+1>RnG>E`E_w81?Y$XuExVbdtorWN%zNyhcdw-Iaq#~X z0eiV8Tp{W%b>csc7)-tEA$(-=DWm5$jnB0jizLn}&(IS{uJfGF$FOjpY1%*G#d;!h z)+y)fF%>Q(!u+2d}DTfD4N$CPs~K>{x&)M4NoA`@pFQ&{oWj#XVZR9F)U5s?7h-rNa-5U2(g(@F55j%#ua&-eIPZ`a<0sa{Pao6YoJ|)9NiXFo ze5*bG)0_WwZy(i^sjL^hWM^V%DRk_d&9o2i731IEj}uV-9~Ym%m@NL(O#TbQfsg9* zKfLAp!V>t(=YRa~dxE0#1r_eUb^b3Do&Wy9zAqwq?^gJJN&5eV>EV}McAtan1w#Da zvk885oA_1#er(MAFWL`3nkGK8YUKa^XG@mJ-uKgmIAafNCug*7+JkDqZDIL)7Y*8TXwY?FkYTydbkKp3!Rm}=qX2^<<1`hf2xZ4+ zv6hM;gO-Mar(GwBYer3(QK;;s%ERiS!MWfh<8%!h&zzG2&yKq4)vnv|LU756?!_uR zcN!ifH_tH4{3Uba(IRF>o)rlRI~cu>_cJ^9P5JSJ=~8{V!Urc0ihPdsMPBcv1F>4HNa1f zi(+R68ySZa%-51nuXT5pxf*QGD7xiwcOuSR#;oSe|6CDnMqU<+T6cF2!srIT*Q1^za^;J7w5#NUp8 z(pnX(=TkoK_PH$b;PC!cP2bOc=rA$5r~2~kx9FC2EefY~cc0n%pvsr+M@Va^ZN^2L zlV5ZVCaEpklJrq%_m0Co_jzwVe$SI@8u;PZD&=mmf1FMY8vpesO^ce8bL`v0+f8A? zN+qHJ)9`B`}9e{L8T$#-7=o@4|g;RIXE^5JE+WAVrtc(z}r%DCUDU=n;(WJZoIQ* z;A`ii#>FWYq#DzI1BeCoB%kX5|VE$+bA*&%SC zeZFA%sXSvo8^)sT+WPqoTTR&O7~b3tzVks$e3G1E)LQ=uAHPjvKYID=g?4EMw(sxv zoEO+8@9*{?Ec5xR)3Mn!i;1jZRbWW()HGRSV z{N!!Ha~1`K%SCfIu=G1MF|0}0^+{%l?IG)VkLo1Pl<;kyvD!P?GpU88MWcW@WQUyo z=IM<^bw`+<2H#P39f&=C#3pLrq>@v2D?Ar{7W(po&WS> zv&vgZ4W|v0T5dQz2sTxI=(y|W+4ntLmZ+92fST8ifw?tJCCX;tVtt_SnuVjYq`X-sULb#>uFn~o^e zN9VRFeN*_a=z1=qu0ufV%&JMg7c-;g?~2$qX~~K{)?5vD&W50EYv-(Z!%+F{g21O9 zM}~%mr3`VM0tbD)TsV8LhU;HqVoZ3T6kg@%Bjz$m^NAvxNyGuBE2gIp$!>0DxWK3B z9d5_Zpun_Pc2Z2w1m6||CkEk&!(2yBx5Kf^9(=yIIk~80VT2+HVDBLe*+Nxs4BkSw(OBXQgxxV1Q(v0d) z?SX&4_Ny`I^*5*nB|OmzpY~nIVFsU5<3iaZyB~7)~ns@5)9ky*M`h5T2SDZfG&|G1#Yl*ISAge)wP1g4l_kB0@Os^4$J}9nOK64d= zpQe_0vgI-3w4yT-Cl71h4%{9prtSG|_WkBJtr=5@81ko=D$y&?z1tF;&;W6YN4vz=ec zzv+2*joFs$$!K-;O0jO}e#Eg^%fmbN&Co-dR!md(SWw9NZ$Fk;|Cyd(InKbEkgad3Ewn z?pH4;*n746z5R@!1YR-0gO}4nTf=|f64E@#YQ->3hr^-d`LjNT8-M3cS^q~txBh3J zE++$DLxZAP#X-@erprQnGSBYJwEVhDcOu6hE1PxS&hArf%3C6@;`U8!CBq?`XN`e# z^^MgZ9iPa1%_DxvBZeIo6()LueXoB{4w-1>w1-c0!*1z&sxx={ACUXDO770ZCf@Ae zbMwkBtdmvDRo^ZzY&W5GzRVTZmS%>6CB`IUYsdO^Yc1m%b@(_R6fc^P=VR zuRDC&+Q%f2(DV%qsi&LC+r2MZx7T)C{kK<_WP}qq7jCz{eCNQ zrz7QF?R(~naxs=R6$0rSe#N-V`!wJF?^8~OUT^6SpLgurz2Y3FWt6n#kH@z67w>P| z&0#3ekmhBt-DUS`^1h|N`8bz21Z8tAQsz{>(5zw6Ww(n%pl9!l20NZJ2bvdX^4fGP zYhJkc;T|pN{oN6cVlh^?4tK2;-u?WwuGkv8rr!tmEAKw?!v4!=hpo}ux*7KO?mW0X z$V7(6N!EqqP4GdjBMuTvw3?+Qlv}ne^EkxCqkF5`>7(`RAD?aiw{YxRDrnr02w_femmSAjyG@|*nOa@L*{g8%Rx;C7LJ^C{(ls$PpBzOSoX%+ zHKxQ)nwv39N9MiOzKYdHH%)QfVxu`B$z7wwuH^zV;{pcZ2@HzDde0|yY&s+N{j_{l zm3LXN+nJQ38O6s+s?MC4I(Wu^ z_s-rf2894$(%0v04CK9GCzI1J0ngvn#{f>vvJ28ms1kmX^V6UrM%Q- z0zS;}=U98*Cg+q;ZzoqkQ_(7E1;I%iYmFNZoN~V7<@(0!|BKnpADR-X6fVBm(EUSI zA|s$Bf@Ah7))PM)cm8o<_+aQ|!y$k2>^2q#{SW~)9Vh-)o&ERI?Iw?V63fZQg_pQx znHVP=5ZTe8YkIKxN6<%!t3kd!dwo<|CNQ6TeZj``io#Jvy}ccwy_a}17B)vPysp_L zwWcTL%+(N9hPc*EHVz%lF(-~o1^UQJglv`T3XCryhP|C`q72re{ie1Z zo>MRU*71CPF*KX?a&v@o{?U%UY{|+fw9A1r|U|Q>80Yo zGgYT{1e6|j_gc^zpmwU8vqtv%|3+4Z;;%YMrWbpr_Uk0HC`&XiE?|21h?Q{ygVc|9 z!wU>QI|5^W>#Z{p|8LQtv!Y2UK%Duc*^S*C5)2HI0?bki7!#SL91=cjHv8V*nj8IbMeF}ts-5fpMlr5v-oU$r-=R@DgE1_i!AgLk zl!f7eEYpUsw>G*e1#ON=bauHD8ojOe#Hziw)=X_!JJrb6Btrgb+}++2>Nk2NJen*g zFg%l8G|@D6O6W}++xT~?PSejszV?kVf6X9pfPtrCQS*a42SxcWyuH2nte?Gic#FYp zrjxOMa>I5`h~BmJ_M6rRZ|~my^Y-#z*E{o7PyJ>{U{vd5^6RPRz46{5;o{%hta`Jr zx5nJud*O&gH*-fr{RPIK3M`!saW6%qC#|^i&$UnVTePh5#U9s3EdkTp3OL+u$X%Yv z(6XYL-C=2rbVL0kQ>og>{Yje|4=`vwSa(LXGrFSDs-fZkz69&TC;G$$A2$aul}mRB z7BI$7zIDi!gY`v2^96>m2(Ffd=C%jiub!N?V4cMF!@FeygVPV~;#16XL$`AnOy8oI zY;4EzI)llSjp3fgwPP+Fw;wXb%sqW%#uH;Ph8qupyROV(JbGInO2NXztzS=%*I*9^bU>Sn=@aB!iUc9#34^_|wvu zC;do%C-6i$;a+L->1@6yhI+|C+xlbzJ=!{+-3<0)yz$s>pI?ve{qBmi;;@uXji!<| z2G#}hzRY3>Vtba;`@GR2z4~f=XUEf^G&M;LM*|JcuYaFxy7<&IPWb;MldzT_>67NB zcV;|!(Xg$mUZ-$JmdB?(2kIVeW@O&+k7=h_pxy#z@ej<$ zzwJ5M_j=L?rftXKmK^gqH7#48gV{UaMa@2rW7D!ueRy+9Ew|-Cw*9H>qx0V0*p~DE z%j(y=^*Ha&duy$>`p5%@r!JhEcfPgd$qD$?w3hE(v&XyV)86&$%{nya-6qciuix!? zBgW5Xz!TVP`pz%uJ)h}YGc`HW_g}*DBa+{K{m1u-E&uzp{PWH4k1SxGKlA;cYw!Oq z%VR8fllCM(L-`GZIR8htK9(2ECBGS#nS2m(EnvO>o=yD&=k@pBmVNl@QNS4Sf&2M~ z_Z0=a%X#8e?(?aC6k1;Je?}IA`A1Rxi$Vz<%o#3X`CQ`i91_z%N*^z@+wy^P`A7Ng zk223c$Zh|4WC7Dcwol6LpO(2aaWW|Q`F&Dn@8>jNlfB@kk-tfEeUbL{PrB1N7UKYKbyCIwwV6ea`|Vg?VqiWf3~^)+4lKoyYHXv z*}pi5e{od*;$;5C+5L-4_!rmoFK*>u+}po+O#kA!{EOH2FW$$$_+0kJ zUjxLy2C9DzGXEOv{xu~0YiRn{u=3J76^*R+XTq(U`6b?lcbDFI_J04qcTxLGzd!r> z!J?7>g3He%jmgIuojBhmELTpN|4!%vQ>=SOM*p`HeVv*&nEeBow#+K?@RH83@5^|e zBhyvZ`G6tIy`QLTcy!*c@t*puX$1;PXl|DTtKN|QoTxRm$#^4CCAC6mepG$`m*w&Ww&_3i=T+Gsid0~)h_rd*vB#tRc%F6G56=BnOW1zj zZ2PfZ&*+o{gWiqC-IJX9*meKkD&OAz`=;Am<83Q>_cqv9n5j21JTz{aw!6VKfzeGt zV9JcjubV2P4*oRuYx?wpdFP9t+A3RR5Bxb3&hYTsi8IDk3<6DO?lYDRGVX7#sQ)|VUfbguh14(j_J+w&uo`wa#0OW&dw0RcJWkcp%Sr*PfZ5m5+7^ z|COteEFX90i3JS{e)v3TiFjO?10`SJ5tL0dLWYkPY#d z_4%sj6~0>WL3@4qeYw5A*1x)cy!^zy`r2<_)q@&-T~tq~W4m`;zLCqUL%xAe=){AD zzkj#S2>Y$tEAHn#V*ZN6#`z>1_}&4@)=Vige4B{aOBCC+``er zc2J|iQCp#efkDot@Pe2FPshCuU84t!dk*dWk<4B^c)1Ey={0D>qiEFfggyd^+8>%aS4Rb7jT_Hl_%Jr3@K2QZF#*+EfNi zog11a!5oqhu$)0Ufsvu#A&YbIgbuC70G8W~3tsdynXJ0S(5Bd?F`s>!#etdjiym|a z&7AftdAX9KmgdrFQcGHvF|@3j;Zgi=M#^foqY8`*)*NAUWd18C!oi}(P|(IuS;BfC zXKSfyGlP|c$?Xl>D$QaFV`Zn`DbiqIIv~t^fU!Z~N@Th~*{zw?0p%t&3<3{X~OEh#%uFwwpa#+^LEU-TO5r)6gZ3e-*9MR=vA1)%p$A6ctE)7fWyJtQXC(g zcy(PA9b{6baU9SWkm%iV>12|~5xz)ewnK-SnM+F_M=>+}bhON1V7On$oaZ)Qm|Nln zqqW1r!(y!Fsb;sbHs9??XLRUtW0!cbv4Jyy;lh{8f&Ob9uKH@OWZ-3*@>=qB=K8y4 zt5$82sy@N+grVWink%*Dm;Ib|zg{_bT91Kw%k941?-&>!mVA7=Yiq^Roa<#1c$pN0 zn*R&*mISmjTs-DJK|qMH!Qr;Z<+TqMJmE|gKEQHjsYHn+yXC3Ga|{IvO-&vOjNf+o zm5H3tXS|@m%+%3%fWbhneF}T=#N8LpBrG%fX5!Dw_=c)6x3ucsM1rfD7MHZ!Dhmfgg&;!RJH$)_C$xBap9QBu>H;__x2l~ zY}#Hj=%jj{ZhG;lV(P&YlBz2`pO!dOu{$zN_%dCp$w8N&VFwFKKmyy%8S0w<1sd3{ zB}`Cg;WqWPeqdXH_15Sc9HIz>UjaI+_0B#QwP^Iir9_k^qeSrpvDrV27h zI(TrMP}=d?Kvc1&Wz~OggMhis39D<)8+UM*bqat+fi)M+U|sS{Z0Q~chH%|!4Ew4k zY=}CrME`I{0!4ng1TX`7U&z_NW%zg8! z!h2;dT@#EM4y--m;$eI+NrJILY`W{Mr5T-5ZZOuY-0+2|K~|v2kD@$4JW(t0 z!A;JGe5ZpR2PP$j%QW9`N>F>!%ggkX(_`kTu(&I3e??ZTtjU4BVe8}>H%;iwd2(4!?SdGagJ9a3C)<@&w*50aGhg%Usw|;d$2u4C&78>T zblYa-j*pyk9NRujy!mH^pXLr0rwz>wOB^KK3_Lzg+;>{Q$y%k2)Ar4I6ZfOYkD;L8 zo8yAFZ*!09xQN+(=L)?QTvGnS|GS#zt8f$Noar;a@vke}a#A;>YW|&r>(e!lnXx5a zT7G-Qr)RbMCjXz9^uV#2v2TJ3L&AgHM#J#6+kBfJ{7H4@Vff5zr2j(t35)au z25zRp35E%=DlCCba*HMuGX8MTbO|tI{j|QG>(Aove4abgRTxj#-n?~m&h4#nXH$=y z)t%#bN1pA?{C{8Lj|TWGV3_5|ad*)S`Cq!i3>)Gv)$-5D^$u#8mdneK$$ISP()+)* z$}d{cm0^49_tE=*uF4x{igq|~t+MIod?dCp#MM#2<@VV*q6`P@XLz$b`G3CQK|k99 z2H{053>6Ibw_awL;vmMsa8KsKr5ne@IS$-&WGs9!nSn>~iK>J6g~+FOxvNqqu$hKz zVr1AL!Tdt9<;BzMUT5XDuDtzW>g^LE@oirdBmTrSAB}4*o&EOgZEnt_K+$+!#-xCU za!g$J>rEFasVSX(I!}4iyici%oZrk?&cVR9L_%tV#PbBvZ-0*-)O~QVN!;3|^uIJp( zNIE4Poa-ocfbp2lt{@JkV;r{<7Klc%)VNG4yyqCB?9^~DaZkeTy>pLSoK0 z#hCAkNBA`wg?>!hyRaqjlPrVEQzNbh7O5j53QoVTK60GlXdc?D&LgL9u_0J+n``7I1&(JAbRD1S-V6?&qu`|Q ztbbKSW_)ll$2QknUlSOa6yv0hn9H@u9Ozid*eWNoZ08sL zRiY|SN>~*+8mbu&=sGa4>^bdNapYcXBg2A-@Q#D*AA=XfrbwiuNDD1wV7czjbU>!b zMQX;e7cZZ@jhyW^H%0D}OhwQQ|7Fp>o9i(;qw=G$0 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

N>8qw=JlQ&+Rs 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≶A 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 z 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

o|I;? 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

%@@>vBrt40>#li5-7JwUq3(2g9rvp4-NFa= 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�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

0|cOpluHKmX68#OS=P6`I`O|B%K{nRMbi38 z>_UE~7KcRj99SMP2zDei*>vucq8tI`2ZkBMx)ftSn}EW?~w%N9gc1TgR= z98Tbu^gjDzh5=Wvp!mc*j{G9d+Q64Zo3<_az%@CayVUSy-6qNGOWdZHCRlw^UT*kG zVTHBiHsR=igIE+m%Pcia{(rGgP>}C<(WWo5re5nhUUISB6 z!oRi!gabG1YE;mj7__071xSQ$3C=r=j+G_q}9Y|(ev>a378 z_aRG(6-qHBN*$@GaUrf3i*H`p?5^K*!6K>t$47-N-mL~fE~_<5Cmk`?*E>aKok3X44Cu z9Yws%)4kLmdDXMH@;~y9yrT5SM44l&<;susD~@<=NU^atR@%j)%onPZ(2z96h2g*{ zOa4Vcx=K7e?E2hJyvrW&s4XhH^-kf%W_zWk5Z|jxB9s05HA`2tdaX8L=wM}A^gJRX zKhi6YVN)u5X}&^90b6R(b~oeeSFW5$2{QA)taf~hldg!m;*=Bjw%l0p!D;gazuZf{ zsaK1$rYaR(jhMjtW`|bvhqS1srAlAcD_k(u-yI}>bg6dGv&?Jr!cly{o4b zwtwmjoyj>}rR?X`a<47R%~+rRY*`*l1Bc1kCmmBox(%IcgZ#SJM|TH`i=h{m!~Sto0k7*St=uYT=tiLf3SqN#P9BrsoT9Q&8z>(mCPAs1T&u)NI4i!tZnT&;^*;(%Vep*5m(=3DsMY>Zo9-j7Q;J6qTvUGYfYpzIN5#D5{>mv9S2B2C zHimX~eqPnY`I2+tjgIxqo#&7I@ABvDKJC)I(qh?-uEx1Lwi;DTJ!Ijx_$0^j9o?%R zcb{$P6+GE{lBMtJjO8jNeVv>wZ!P-2S~N^9?C;g={cACSwQ>UI&I!CfCkR?j6s?>n zxpSiI&xwkblT<4wY3`h)`*V_^bF0)V%bKl|rWrP^F=L}D(De7Lv)r9#&9r=E;>Wveu)$sC7MvwMCVV&daG)K2-4)-D+9&@G=290AX zEOHJZs*6~De3#$h9Qab=znE(w z^BH|ftGJ|J3)6QgW!+M6;xs(TvN(8FOHq_hQ`M6ETRv^SmURDGe(>ZWgEOtMMVFKw z9d^>WzoDpanUB)~E1%ywN*{P$HC#Qt$x7)^&Y5k3Yu8wvRZ3#GamHTb(W5mv>=##^ zd-dkrvROPkm!3|lP};Uj!7GQksafpTF6DDP>vb2g_&G4jOj~dMAY$5r_3O`UoLd>< z-*9Htt=R8tly*g}R8CrNskB-7(V2C-PR*LNZhp=m4(T&TdNwV5^MB3CGqJbcw3}CN zc^S0sWzUwCQgQy#n?tQi+154gVrBSNbU)AO_9EZA4!Ub9XWvsvx8(4&NcsX&I_&3;1}NCJ8;US#w=|PRY)>Z<#Evy}2g+;LUA?bF+7p?smK*o%4Iz z!MVJ9yQS4OSu0iTR*2kG(rPPaS1!#}-E{kI&7$4U*WTl6+H<&Rm9@=H z2b%|Sa}2rr^VKhZJaX>Usdq7({NDF1Fj~C)!x8H@tNPxk=)b+@SM=c5+edltUiB4c z^8A0lCGS1gq4x~_ANEu;?BOfree^*nUr_A4?nIeSbuoeJ>rV!6eXZxORJ4Fm>VX_f zLgEvfx~I`+XYTpL=fusTz?8xuXmWsgPlJWO!@1^$oF_5o*iW)Oso{Awv-aXKMxh0a ze9qcu^3ML8b9}PRrxNSqs(Y%IuRA_f=EUc`*J?~xe!lxyQ*%<&zvvF%yC;3`-tfKl zlRf?0kKv!*2bP2nL4VKkJDm|;f5uYw>}21|iGPnRE@8Nr?@_)-;Y|NwjSD)=6aGfI zvLELEz95$2UNIB%@_+BnH*!t;|HnU#`NQ`EyuEw{GM^26X6|L&yhTY)z(aA*ZSE$f zYUVqJ0ZOyxDhbK{S9Fej_319t;kycR9{hXZ@b8O*Qq8Un%6}EqIxL(Y{Ikn{!2O6x z)`RK&-($aRADr&LeV(78+MhxEj)GO)?YFTS`{q9Q9viu%>(1BmYT>*mYxgQ}72M?w z;#Ge1L_O)Av-#8IcONk_Jf1pt7Mp{>MdQ*l0Sqzkj2ADxyL%3A{3n6sfqa>v46iQm z^;@2}bm1;{62Cgby1xPfu|h9(n*@}bUcHSHWNZ*rKJ-TY(f!#*aobzp-mUXuS+Lk} z(L?Q~dF*!-EF2iR6qF7eIx2eg-Nt*oGxxpVWqMa@ox|wxcDc|i%|joR>puz#e%yS| z{r!iRrFJ*u1-0!wXCAZ(L&=Eb_3* zEmUxu=-2;?+GXy`$zGi(%X&a|^`G-IS-w5_$ob-;+{cd!LGFs$hvXTJl-P=-zJ~u$ zZu<53pTcvwPu0o457rB^HZ0d}darrty{Zzch?3Hunv!j;e*}$wPrdtFzWxy7fq%<| zTGcp}uW@MjngrUJe@enf;ljah|2hE2B1NK!EJW%Lnkl|v~5fDgpac|LKvC(W+ zRaI7JlIYo^oN)3)pSqGk!j-~=gU!Z_1|>5D79E-A(k*4%WwP?pQlHsYwOppFuB;4M z9TqBh@T5GGy#Le6lTU`t0*A@=WW?H>ICbKY2RA)<>i&t(fj*k zHD6s@pLx8jF5Kb8#O~g_?=p3NUOc@wn_0}~hCx#6Q+K;*J@E{wt&jZS>J=vo!`!nWEexr9I1ccHhOsenFqwQ*>~}F-d8|8bu0_zg-Rqt!&EVuc zlID~axJshK_R^_l1_Og<%EvUF|B*un%DPMO*rtyGg{=3tEJ5I|2xim11pX2-7b8a3Ja(SWIzKu?y@~l67V(Vos&!70`Tk&$){Jtvp4{Cv%oftiCY-dY1{q7`kxlN&g zbFbJ|tF?!fLUudtczrMFEc>A)`A%|kSl2EsQ50e2Vp3>&%d4-kg^A(f*(DAvS`V%S z|Np?rYyayK$J)GaJFBB-Pk0lz>+T%kw!{SilItJoI&g0jZhhvnU3TIG-v9<rS#W<^n@y|E`y#oM3SXAE+qOpV zS2Nv+bKmvdc2S8z`4Xc9=KPMsGG-h+OfL>yh*8()>T%?D7GPvp<-#P~pulU9ao}vn z25a@N8=O>?!i1*ZIHIo9tsmOe$k8;VLHSGrlW@naKCcjCz8D7v*&WQn9S@o~zVx=+ z>3B*0XK1o{HBp^mhm!DI4F-*_w+ertJE3P$N=c>2%ivj8Z?E_*ewmKP}`@tUHsWP}*@i#%k#V z7tbe3-7ikGToIbkbmYN#w?n7r@dS4_|LGGysNrTb=|Z7$ptAH`4tL9InO!bB7t4Lu z@KOCYapu`2ll9Jbo-0v0s5?45zmYwMf5wRCJu)^)> z)w2t@6qax>X4`Y`xU%9^>3XX>F8`Pwoa^&wy2H%g_+!LB2jv9T_ ztg>j7=n`r;BbKYe+~Fvs(`~|FaZPJtY)>y-hA%6#ddDY!ns{(rmv^Gd=#*I z*`vIY{oHYPtIGW!$0k%B?!NcsRT$sawR*wpW=AgHVBY@OHnjF?_x(TjKJ2S`q|f|! z^?e5JiUTZq8yfk09vq1~S6kwACF z5f#0So&G(KL{?WE)ydn~9nbSv;&jC^lXV+=^Lrl4yskKI^KN5*JIANE7>x0+qkPqH6>var-=IXDrB@Aay54Tjalw>h<04Jk|&Qc^%4~aK)>zbk!nX z(QIkfYxNwf%;zvQ>(5hVO6gz;PFlb!sc|LK{h(R%yuTu8-jd}rBD_{Ebz^ogys=3(GX zizz1!Y^#&Ytvvh_w{kCeWn;S6N@f1ZE9svkcF4_%YuRn}K}mpdE%O7mEjxBF7{!&W zyM5zzb&_?^s&(qy!&%?SCRT5M|6Rm#jUX52#^X{4H;5Q)IPjlqg2CzYol4&?N!Ff> z-^j>1>qE3wk%(f0EQ8dm0w${qrE1bQ8p3l5nv7c(s`s`3@iAEc(_UAdMM8i%!TOP? zrb?q&t%PF&cOPV5CeXY>dC8akcMov%_5XQ1-|q8laq-vs(ISt^mwcAy z;MQGne#$xZ4PVo(8kyETn8|x0kMoMY-B)W{A=5bvzCFBe_oce&*R%63zobkj2VOb< z@3O=<*7OarJp0xQ++t^tabVwYR4m;+X8&<_MvXedz`D!jb*_!|>1qw6e#qL%8;*|^w8kZzB8Y@(^qP~~YgR6=TK_+=$wjca zTwS!zl~MK~6Vm}r-^2<7j;0UCYwof)yk%$5Svg)NE zrwdlqA4Rt^Moc>(Fe#BKEJ4XmnC)&+i1Wc#rU$KSo!fpCw!IEyicyesNMN2ik&R1L zqELX&S;BTEK@$Cz50f5zlVb3*J8uc z&WZ}LDhr`?3bv-9?3@o7ic}fwS`~j3njZ^nGnpPzrqRXZ(6z~voDPB11Hl#M z!c#oDWdoT-8%k_Tn5=~v|4k6cKEhbX!7lg1AY*!KXN6ez3W3!c;p;dUY(j!<|2y`0 zxGK!35Zk#TVP8kMIxEAG8P7NZvN5tw4(dPi;izA1Z*Tkbpjb>6ScQL6LF0Yc{M}e2S-0gV%LTl zUB^@=wEgIMXd!$-qxZ^*UdN}sZ(mIKIU~6wkWKsnYfpr6!VA%)A54M)j5ZC-UJk6f z9~jmun-&BxiaD_I9bjNksbroo+1kJozTWd-krNM^h6tr~PIUGHT$EdcYVbpsH>#bM-~m88;a` zl9?x4vVAiW3RvL5H-UlogV)9-GILMPNcMDWTRFAUQn>%+bdz+EEuM_qI%jWKB4Db( zFns~z><~sFamKYx0@)=Dxdkjy2UPZTI$m2LP<&IrtaEzZ%vrWaX079#z3HaliIsD9 zuADLN<_s>kIclW}5tTEdJHzrp11587ZVLX8oD;KicK6SjoPpEQXHLt$sr^TC`T^(Z zPc#|oAIxBQHN8=DM!Mq+rmh(*Q42o3oclF-A?L+h-UH131?&%=i=2zhVR+ywn!xY> zaH8n0$;$r^F8sAp;ExdFBF|aNUK;bgn(w<~-o_OIH&)KQV>zFpVHWR#SucOij=Z@r z`iJP@gG_cp40fDi_XQbrr!r649?38vQa+H8-N86ckad=ac*rc>m|KDql~nZ_*fyFw z#27Jb4K@}KkZ=%O#$>Q8HA`~V4$sUFqKpiJULTe+I4t#GWWP5_AZL|8-YJa*%B;m! z!ku0s?Mp(`j|xokTFIekFX+JDZ>2VOQJF1cK4+nHpb!)Dl0_4{*f!eT_&!2e0UY-!#NMst>c^9Z8y8cZm^$dkZl;=Yb&^dUy;GfK&abXczKp| z%Or>Wzm{wpkpxcN!04s2UiLnP!(-i&YQR{ zrE6V-7DFb(+Dlq8ud775rTjS@S92t;o_%WV+*N7}w*~LE$qOD}_7h}sRbYxw;4E+8 z6n)TRq{Yzwef^tT>vC5K%$HiV)oPV$$+`=RJ2?~AUcc#la@QJJ$F+}Mtz+BW%3;W4 z6~K7VT|1nsH0g(gdw`Pc#^o2SrYcX|Z2jBWF$>C^(Krm z=Zkrm9GK&0ZQ;Hl?DD`=_TUzmhg)=1whAxYoOD}oM%MiI&i0&wTR8)DUD8F2U+27; zDNq^ABD;}UChNHErn5*L_l~C5b2vUSmNW}EELxO(M3B>Q zo6*HJ%7sid+zhea%$K89UDevftie#fTA*?EgdnFK3<29Y#I~9LFz>uAET6cgYxm}F ziVQ)PicA8#H*-5OU05_@^X@3`B}=-ubVrM%tS;{Oz1wZ#wvy}}XK(M8oyZ>VP`#5u zg(;xhN0HB`NX#mrEWmK_jn~^QaqlrM-0rq;cVzaem9IC=?iQG4swfd7#@^0JhW<|UEysr?f*Osx;nc*8tH#C-|xc3@Iy(_@|ON7 z$HQhi0vdk~aDF_*b#aI5!@~<+>T?wKa9m_RqNrK?bkkZchTsFf_br8GdxW$O3S}@^=G1{Z!<|86M@qpXKWBGf8wbmRH4iprhC@8(qu=tK(+@FJr zbHYk_c9}8SmCZR+AtPegBhY3e%pcD9YLm#i0!AeP_6`S@?SdO+UT@@LJn33<+?Y{6 zsl1_K&tcn*ZV_va#!lF8wMKyNO>%*vIOCrDq#rVm3>7*Bb@L3j$_Ad6nR@zFppAZ! z0`mvC8Y%fS7Xjzj5^HwIzt9q&xl!^^NA=5%r(ahnGF*_i{m;1l;i|KtN@|ul=KpW$ za1_cED22VTICE3yEDOt#-K*9;ztfk`v_{;ZwP%&KIV(f9NR;FRONsW<3pu+soXK9f zTkTll`G+}v%-7C7s5#5DDf_FV2tTi!(A<^mlg=~;N?cxI&a4}Lk;nG3kI4VTvv2og z&;EI?#dGiFZ6ZMdj3NilGcYh-NmivWDke9WSoDGilLe0ft(i+e6 z7Qd=SRIR!|?$wSYz3ej=1pZ#GT)n^g^kL4sYTSFz-Tu>?*SmJftZPR*&%69Tc%Ad1 z+N&7m_PORCx187eeV(zmK{@bRnr%zir0Xd?7eek_f3@Zk>od)~9;K$ao>#62FTQ(C z%jib^U)lJ#%aY#uPZv^2%T>vU70LD$3F5uZu;A8zlXc#P0xA~-S;GBgZ*E+vdwqBA zEv~}rJF}gt)}C_d6>$4|s`Jtv^OvHxg$}$tB=N?nQq{>YLCZAQd+ULwtFngo5-hyW zIBk_o_PKi1@X&Mt1!1F}ERol|_Oglhl|P>4czBnS@m^`{4s%=Kj33aOb);0^b5|${e$M_+amjIs7K}E=rHM*8!uR$qHomfV zxlPbjW&x9zxh7Z6-c!G7a>$4&;Ihr7L;0c3_ah%)xBY18t!Vk%*Q~W}WnYg#$7F$= ze-8?j&8MAydiBdiPC-YHdxH6LQFAW~P8SgFpZ(HB?n&?7ha7@8)F>2ZGPAbWSt z-KW`CUNL=m#bs!|?ccjAxyf;jcD`rL;~(192{M%3Qa-HQ5fmKDaNp^jsq+zG^<%-R zC!EEVzdYA_c;=$9t@CE5YqxVa8J#y1&plm<)8 z_2$<zJSe_Z!gTyctkME+yrgCG6c z1?1y*DDpEX>pSPozqtL-Hx5O%i2r*S8&5L?O0=}!6^!y>{4UISNq8UU#viZWy|F+4 zot@}+N?P1ZAA38q_(bjUX}r>rP~}$q z?$^7}-$$pIh}@SspTd}E;+8t)V}M$zprR$uY@ zu=1hL`d6}i0t^f>0tE}ayR0KwN(62MBrq|GT19MNSg6R}B>T=l@sSb}Pdjfk$Byks zn%f1L+&3g}IyLZ5(=jpGqNLEo%o|_A(ee00!+(ZuUR90&flDs}mv~OqOTBgFWv~I$ zE{(IQ4TmIjon06dZ%t_76v!+v`JmX~ae|deLZjEp^yT#p$*1S#{xDu~V4*AH5dp;m zPEE?j8a@IO7}nleA|aml=Eugw=%p?H8y3V^wuNsH|tt@?EOC1I)2W#-*VG-&XHZVVdnFWHud~8GoRhx zUYweypX?{@aY4bUm8Z8)r_yMt!;V?c?NaaG`&<3v<5T;$3JTX5{`_ROs8KqwpP$u% zS%E=u)`#=<`Uwa08QND}KEIIh)oy?LKT=vB92kY(@T@q$tLlGGBXhUKLDj=7Tn7%a z%br@Wm05E}V{@BIOqT%+el64U<;0v!{j4EG#S4DYh|(4=p6#@C@y?~0&Gd(#pwum1rVLJbDTbuKTI zs(9?spw3d1d8(1+0fWnb9S&wqwRZ~-*jI<7T(lQYG+A{@d-I)5r5U0He8MijV|jWtKx^%hAO_u;M=#tB;x_w{&@%s)OM@8G3Ik2e7cY{VMWlB< z>=FKQ!(k0|H-iqhTTK*m2Trwd{%C5<*?jf`Eli54d7PD@udb#1W z*>BqwQ-9rj>1lXxW_p`@+3dI9!p?n|Kw@T|9WltJ=smQ-|tt?*Z*<5Q(VsOalgG*`P13u{}L=uJd=2KnY%CUN?+^# zec#{C|2}W;yUO%`)t^q+Yt`JnXkM@RH8a1yHg9Qrea(;8+vjV(irimc|L^zr`bx$N zZ|j*=5*T?a99XPc>Nry#y!~|Dfx|7JY4Ib+`Dzu8JZS;V(k@=CmOmT?+5%dXRT4RU zE1X1@1+;3XByz|8aFRF{&}O_OkvF%(S>{qp*126jh3NfO`t<0xlRV10s0vgFwcHG@0^j%KYB+!9#?bsU(4<}}m< zDKxUr+3wNa!oaMqaqx`=14{stqfOf4C93w@PiUO*&z(9aSv&TnGZ*hs(eNjaPtN%< zuj}L_+Y3SS^td&TE&nh{b03eVWRNhU?287@E!+p0CvBJ_#F4;sR(Y92Q6ndhp~Iy4 z!OSY@3JfA0t7e`L@iJNd(lUv!Q}4o*XWDmvo|AgU&Y&p3peEJidTHxKTajD*wr_Wy zmNPv+|GUYO;FgtB8s%I$>H<~YC_HLddS?M|N$< zJ=2&=7R(8BlDf$6)41v8-G;o%+fkoR{TJQg(U_+cUmde_&NfA@&{O%3v+ms3m%i(} zY2$>R56_Sdv#9w9#S|=VM`! zezROL^FgS~qYd{ML)8!clk}K)WE)d^go2RbMgRFN8x}Zyd!nJ}5!uGS<>AG$ABSgJ zpK3L4St-)<&BsfqVZvYLq{TZPnFX$Lc9xl-)6lBs+k1tq>DB!InKk7!Rf*IKgjXpRL2kTAUBRPKD51gk(Vfj!`}w|Y=)W*w-x~*J%?}^sGtOi&?2$SyYkg4ZO>Ta$ zRpU*;4W{c#&%VCsHT%{zH?B>IZzsr@EMWXD(7+>dkKtz9tdmUZzd1QAVx4`0K~U;L zgZPeOrdIxy-2C|sXLA;OFx+xkBVa=pv(SZxxi5ZP6j9&dJnL2tiyYJfY|KAznkykWj^`BVX z`pPqlZQphU@13#Eu40>h?v%;q3QuR-{XU>8mmOf5!ol>w(Ro!+bK9z@56$KLby5lp zVt+!fWxVp|n-Z(&VY7pY{eZLcq6?;6vh!Gf{)~9+EcEl@t^=tI6PQ?)Cd?LJAi;D^ zYI^4-qo1c9KmWue7%3&=#LTGC*vEWfkHfTBkGeyQ4E{gPTha+<+vv1<`kt?D(zun_e(I=xVt#qvbw$MstD2Q_41ya}F+- zXb`;6$R)Afotx{A!{iH==9N}mTTa+6InghD=AZ&ggM3KW`~wX4r5PM2PgycyL#~(M z{|N^a-t6Q&V8&p<#<+md%F0RhjRcn^_eJe}syCLH+$}{Kt_gRPm~iFCbXoMcCDv?dV`*srb97Y@mpxBs zcn-(24GrDG4YCqzyU&~`*y1MJ;?a=9;km?R3CGEaI-ZRy8o2~I>;xJN1v>Udi#0v4 zXPCis@yF)HJC3WLI9~h4y{eKU?2hZ=37+i-EM~d5wC%A~vh3^WNH&G_Qe{j|A;h=?O z>6G<7_b=Ly``6@}&T}tW8eZ{ma$mi`^EBXX$*Bn^0vkOpiStesmA$n1hFAEWz*RjL z^?5rT6nqSN{muWbUzWXjvA|@biW&J?ml+!vre`$8MRTpYapteZi3t~i86O0zR!f+y zJa)@OjB{;Y8;6r^$<(fod+q;Tm@DM@NcrMog%Ibr7rSygymBvEiZ&P(bXfZa_b$13 zL+A3k6uyVj=T^p?_q`junB!_v(&i-vS7)Aa`LC9H?m5fRwg)bc1vsiV?3&OKvV6tG zwjUmi7eXUkL)$l8ouF{}v(MSzIUH7|S1-D_iLGD|-f_a5H+mnC+CtWgpu8t^`HsbWE6F5I!-qU9@5E%!nmBTBh-I z+D4vfQ;3Wc?Xb-ZdVWTnQ-s6Q#h|*^r{(R+S} zFfc@Sl?E;mZP@gc-^wMJ;l)0yk`AK@mnY;hiu`sqW)*aQB7IrdZ*uQ#o;lHGA`ORI zkFNa0*1n_3n3>^9ZijEg-I=Tnv%X%fnc2YXQ@7edEisx^rx1mhS9YBhbj2J?V=F zpWu>n8h-;XK3Lwr^8Q(YgDhwHO&)UZXW%)gz_Txvp>9`4PXbSWf$0BlXP0Nr>N&Nb zN8&~NlOOj_^hTUmacA)gt{+#q*4>DCpW4S!!1rQ8-(m&+$qt-TJ2v;H9A!&|5(#+R!C*MAJQ`>ppSZ9|uMp!h~zm3MQO_jf+IFh$Hgt*g_dOS!UBMKSRtD?>%6kV9fz{YH`h z3>(CK4vJd|PWCG_G3tw8aCqu=&tu66Rtv`EmJdbrxjStZMm`I9G@Eydt+t3gcc;t4 z^KO|PiJ21v=1qw?w<-3RQG8jN#p#EcCtY=3Hy7=jE@Nh=!q}@Ju*La^XUeZFcK4ne zam}0?B;Dz$z518*4nfIfH)MWnnEmpn4#&yadn;w;Xsv40o7to{bt~trg)i5&NJ{Tt zm@$EK&I(DXhdi8pb^NCf%B)`~xmR=cq&)tPeRI2?rO(V;dFA1gZ!4DCzdFz4CATPR zQP9Iod8Sv_A{97=Ud^=2T2j{WdgDulT}!`J%>UPz74<1IXyPlmO|Q-?zT!CaYRS8- z_3M<(POV&b?UluPz3k0)ua|PX-uz8rOJ4T&y4Ul>ly=O^-nA}!W?1&_bJ=_EWv3m< z-uEy20N}5}PhPol?#YvT4vtnHp3b*!T{bY#wzf8{tSo74s($zG#fFWm z4UKdyER8fYm38zq_U_w$;>6(v3uoyYXoZCbMn#8QyLMsG;yKTrJ@oW)2?+3Bvv!$= zwwkq#+3MBHTwU!FlVX=GTk!Vnb5nDJojW%lJhXf2v}*cYNUEwTb#r&j&Pi)q*S2-*`h5 zPDMlpwY1bNT{^$CtRN`Zx2>(gKftT6ucNxAEH^KsusHkh;k^Zg*)g%Z)rR-LgBgJW>;zTYNu$tY30pH!LeSzreYy(j_s`CN|Eh zrpD7h!RPgxr{(4DC8cf*BM)%=XJF)z@z}87U^9oXmdKC9g@@Y( z&Wer7PJMFDT{51VmYkfd5xgqq`h6t; zOC;8=5SUljruAyYl1)!!68UyDEOST{O37@OX#DRuwQZHql`PMUC#$rj+O@uD`Oe~F zS>>?%)vJpema46Ov*}D!yUtSfT+e`d)|m@rg3eDWNpy)%Q+exf#m?oJWKefQ(>1owNQ%#*_NemHFU7D4DhH*Q+(# z-~D>M;ke%KH(Rdf{eHXS`MTfl_I!W$`~3lS{XZX$i0A+LctU;spHFAZ-~ai1!Cn9F zmn-4pCg%eR&w8GV?tA&TINvVb>*`cJhWpE=>~nhm`pUip`E&V`|C+D0 z7y766vHsuxjW4II*r(#aAoZbPr}l#R932PPtUi=;UEw+{QnY#kLvN#mVecb`1(JQ1 zYKo#)PNev4m~i;1OS0mhGl>FDP7D^Slr^`U=zI~dy>ZKjR_>n?83Inu{YNgeF&$KN z`(GC^L00WZ3&Vv44pu)7sNGU&igXk!4GL1?saoRA!+q0X*$)8?Efr6_LZ?2SLr3RK znW(b-QncF__6C!0&s5WOI3+lnT-9$Gs>SU&)qZ62s;Mm+4oa^UZ9C*P!9I_Rq1c(D zPM}Dk^}|J_$z7MP9IKem$a^Hc@Cc^@XOriIx6d;eqCC}8H=SrU2~rGKcp@7NDktffDt@76@HkqW8 zDCFBNlGm$i$fLnn;FWlCiNmUrlLvK}{KPX;=9p+MpET>F-`pLWw4xSuiJB_8H2w%u zPZ#2t`@`(N!2i}K+$lyUXYA?}ZThxEX;Mw6WBR1?CcG{4dyP)m-uArMv!^($N$HA@ z!PV7&_p~fFc{s&cNmNM2W_ir~MV#liZ3FK2SByz0>LVp1j3 zvWT5l9e$Ceg0q_@O&4rj>7DZGY`ezRl@oY0eCGWUTJWrUS%mIM*X2zi-DmP=+v%PR zH(b;-v87mbUX({T`=$#`A5=<1zIrsRJ9#Zuh=-xX)H6D_=-QfJTa_6OYwouSGML%v z8<%hGnJ7EyXjNfr(fgeNafVAK9P4wjNX!;YwpP*(NW3;j{H2bk&g%*1qguAq`{u5A zVeGikro&my)Z>-crKtA*cRYIU7iXqgEjrzFq)g%Yqs&~xOVLe#!nUjXcoec1#dPz8 zZ@tjlE4<7)mZ77tFyycYxBAZsO9Urt-McEu-Rw4@`lE=F-{j5e_KbptWWZOr9#t8TMygN zNy)XUOO9*2{J1ZIDP`839mhQUHcgs-=84+%6WPp+j8>UUsf`{tPez>EG;RBtr+Uuk zmYFebo_^ftnbGW@XEOXY&$@o*nc422|IZfmZJzVo=egDGpXVyhZJzi2%yYZnKhHPt zZCSv+_IYPOpTfP-5tuStSoS>Z2dM>u8yM_eb8`8Fz!uw)$*SYfavE;K<#HqR)RnSfyQBCe$@4y#9j< zkNb`znzzE68oucENO5fPF8bJars9#p`aAp13VqynrdnJ5KmX2Ck(SrGr--V}s_obs zbg8IEr245v`GX|w*ZHfSWS>yI`O~AV=hhtQy>nHw*4YI=YH_|jEBWhNuPgn2U*EQh zuL{%dsEnM%sNCV85Uj>=K1grUYVMZl-`DNBB`xuI%Dt2)VU}O^U-$cNb$;)=iu2V@ zd~3h&`~CNQ1OJ`}?EV$q3)X?|r+*}V{>L%ve;+6G?|Gu`|MOJzzfUvH?|Ei^{^z;s zf1fX!mSk!K3AZvIxVXUI_KA+~)GhigU-b<4#wV=*b!)QUw{7S5zH@micIWlK@3lo1 zL1DQ!nmO((?(93k9_5ie?Z&SY5{-3T*9{UFWa^a-Cf2zWG1N@Gzej67o5TMN@=3Ga zvu{$Bj_=r{t@NSs%kGB1ZXG}SnYCS`RQ}yPZ|`%ecVf1)%WbZMx%a-wus^KgHq2wY z=y8>u;oowBYE@qb386pk0=yjpqBGFO<1MbTQae!p|MGR zN0WAAJx5`=kzj$OVw!$YdA6%if=RhSMYGP0=8(W5)xuiVM9tz)0TO{N*+PO29iko) z>TD1Fw>)oN6<)}Eu`qXHp<{}WPik&hVyp7TR>`dbDypqIJ6cK|%QO>1B^S2Yvxcx4 zhFtsJR;$vI@}kl-Tu}eJkl}Ly-K1oQ_ znD>9H=>IXJ|JRQG#f~}DcC#@|L>o;pj-#AG_ z&_4D5Cm{n#W$RAgPs%oS3?jkb9gHg`!QkBQ5qjZUg6 zLT{gEZF&~Zbg?GKp2$5(9QfHn0?SvTmF$p*Wj8aQ5(p)BeGdyme~b#7G-^y0J-y3WDC5G5$B)xfoJ zVeXYiz8CW~F6MF^T%ffvfbW%nf|YMf;zIFPf*h*^SxzZ48|E@ioPYD0kmRiHrKO9P zZ4of$5)`UxaQKzWUYM_TQ`~i1d(cJsFREQn+yqW;@tLMMjX|M6YGsp_;?jpZ=De8b zTR&4cO=CJoq7QT6Qs0A1HR9owe*e_sj4{SavXwNzYi zLvX8Lp66VygX=s^MLDtsSyu}%XA6o-3x-*=iA4xmtPHJ6<19mAJ#8+Aoc|g^Az!DMy>2rtTp=|{&-}HJUbO(%s+DSnTPy^( z2tM4L&)BZGWQ*v` zc(Gmc;dZ8j1eBG zdizSjnH7SowL>)+n~!7)EGre9{6a81d&vxG!R^0=HcRhj{n&AYTkyEI@crbe*%_(M z2MbPW3;0P*?zWn9&NRY`vH5bh=)u(jo4aGw{wMCfKXdij*U2+?OKBvFx(Dx7YFunp zE&8c4K#Q?ke6hg0YQX?^p}o-p-*{rl z6YIl6?k1%Rf(l=^3a*IkIma>Gq|)=FsL){vA%32Crh}6dCnm@_9`5KcF{=^q+T-GH zBfp=6;l+_2<%36#|I!TA+3Ng8$mdK!gwIAP!J`|+g`#ZYFL)d~^21oP@$mnvf;M}O zy~{fC_o-m~8;gfUMUPLEcxv>86q?673)TMF%5rhB^1+o}|4)c^%n@kq5p236*t88NsQnkpN$!p*N7ILx_>o8f8xn$#xq1G zt`~4Tt-9DEBvW9AkI=TBmA)TO`&>NDIniRfn#7SeLMyTbPu>yac`bORTlnl8!Sinf zFZT!?+jE+=@T`>LnHe(#a+p?WiJvu2W#Z)#eBz_n6+Fvp+BxQhGIMe!HnE-m6mx#H z@SJZsHvcTre$T1@JLf!u>;)#<3oNl0*lI6u%)P+1_X5w|3w(bs2*_R(vc0&ud7`?H zuvBM-Vx{GpGorVAM5X_VDXtZjm9^-u7FPFFeZ(VZTPZ7b=~8!^khbp*!~cet`4T6G zFF%q?w-&Az);p!e=gsf#miI?m!NoMrm(*2P1rI&l4(jgb4_tNb)@>!j+kB08&czCz z*6lv(G2AMr9=+bM9j_cq_exe?rV1)b)1mCavYEAYc}5$i-Ry~G9T zE955ethDD^=%^)d)qDwm;F9=~B`h!Gq%JP9?h;s;b3$TcW4iJpiH8fh8c#R}EiPRu z!1hjn)2YZZQvhoXU-FV`+n>=XEv;qt(f|Yhc<#hrY z66Zw~udNka{w7+u`@hxYO_j}0-+K0`Je=im^4nU0J+lOR=dHT6(S3rSz-gINPgXZx zs(n^qv{LZlN}t5bJG56#PYw48e5w3VV=l z5ODglq~Z(q#`h+IU(Rd9`C7MY$ZwPQxL4ms$j)CU$p7ueE9!aN!h%0`PkJZVFXKM@iZ{5oj`0d5ngU^h19enp*$L~#9wOE3` zK-K!3a1pK_GndKk?$_yUZ1TSw7sg zwfeD=<5$1=LXWEJ=das+E?e;8Z-G_$g4~BiCZC_RZN1RM8+(~1?iO!+#n7d+lqhm(iC{dBe+|8H&d#>nfbqel)hki@LTx*8qt^8#%v4!YH!>pwCK=m zJ0Urqo2Nt%{ph}8n)pw4qfvt1!A|cG_KgQv8UGu^3%y+bkNx6)2FL~VoM{F#0u&iI zxMi*Wd=6M7-)x~07jr}4v0ERfMbVWXg$sn)n7lh=B!pDGEE!^SR5F7e3Nfq+WBO20 zoaiz)oUQGGW!-q6n zw(=eMRs8ryV*=YW-dD~Gq9?}i);*Ol)41JIz&_95#PwAt)^Qq32r6#ia@@Di=M`*;V3nLCMoQXU&Cm|HFH7(&a-cEDRft zGUxLjS^fFzae2N{Z9ffhhV%_Oic)`c4R#zl?##~TepIklVgZV9gjcp2HLIt+}?sfC4{(5!#oPFn$;1vfJ z_+9o_XUK2bu!324jlrQNHWLl!MXRDU?H8M=cpQ0tEqLt$ZqcB1&XVbKF0x6b?!LHy z7tku2$#MZsVp~8;^f&SQBvK{Q{p)%9^WdI!;ZUe_gzRTcKCeIa#kD3Jgnm^qV>~9acpgz?mGbGsGb}A1;g~Qg+@c7oPp`nqz zxG$*3xSxLgQM2gW?N7Hw=kI4Vk10H^x;>`&ysLR^>Gjm@vE}z$&EqPcFWnwj{r;$V zeC_wU+r8`lvsxrHvOjy#m%+QP;Gm?S+K$9_`8JCrGu=r$lDhSeStR$GKil!RTW_)l z8^eTCm(B*sTS;2AyQtk%n9%DLxo}~C-sff04TU+*_9i{cVC}DGv&vXhbL<_{T!Dt4 zO7p~xcBQY@y6f?<@&B~6D8(hhN>v7{M4glt&M^|U%Gr2ak1O*X&!fc}QdZilG8r_2 zPUP<3_KH^6z-u&nk9hHJkG$4baT#yL2=%t9%q*OlysEcVrjkm?Y8)&T7%z7 z(jMhaRnt8eD#p0mRW7X5%DdVqbLL{aI&apz;uqm(1i!srRbOX%;QFB#&zgARqANe2 zzrUl#{p$Ck(#`~ao0Aguiy9Q>a^K>u{ri2p1n>XG!x$s)j@5aGd2=Akg%OTs8UlMe z^!@y6I)WB0o2wy|(#2Bw=nmVZqrDfN__I1TI$XNpVzweAvP{d1vt2XKx1^aYwe-yj`+s@X^&@F!TX*{Am0g~FpC#SmsHI=g zw99jzyQEuP-RW1h?eg6BE$KE-E&Z$RO%g7-)zYIA=wJ73a`>bV=?<(`0Zn387A(8f z>`+k|(Dv=~R0+o0PB%lCyTZ0CV)Im1Uvo1}Q zda}fd@r-S&gN{HtC?@;YXl0Ou3AS^67M3*B` zSn2BWKUWkZbUb*qRBkop^ln);>5W&=?+LX+N7nE=u5=E|j=XiKo7rvWTUVRxtGyLp zG!wdyTyuHUxqxN5|KbU6-6pISJ|@(%J#}qv$<3oTTUV5-?mX%zHNCBKfk=|Uk-eSe z`!C;lFHyE_wc>h*dD^kxn9l6t^SoKLH%j2V+^a3pjQaC64lcjO_hc(yXKpns&(2@B zJQqov)St`uM`XXy(N(8)IZ{<8UGJSzazOmrwI=pOkyC8GC@$R{sNtgXsO5u^h>+(8 zcQ>C$Z$ciaY2SVAm9R(fgple1iDMsk8@v`+StJprX%^DM=@c25bM>f_;{Qz(1Diq= zwV&+gT3Oh)^o}0Kj|xSZT#<5prYG*HN{T{a9cprqQkxqh725W8w*0nEHH-H?{L$-3 z!XljslTMi{8mV&4%Rj_v%%8&Fu(NPB>)dtU(>5rcZ~HP= zbk?Qm$4Zu&?#=Wozjb*&Tj>f{+pM7Jx2`OAD_s@3H!E!Wt*h(XO4p>?zHZAp!uc%n z^n6JkHRah??}+r;jhlWHD)`Ak^I;`v2hR#vxfJ#RK!cZaQk zBkuO?->1Lzy!iBN>VzhZhUVAXug=|5keoSL!|=QN1F2o5*KgOn-4~crW}zH?>-PP= z!`mJI=dF-WIp0ye2WL}`^FYmbTQ=g#>tM1Ehs^aHJ7!Yv$MQCU|sQ|``Qm2 z_mo~L{5$uk#nJ0VRlRZ#BT7~U&wRutsM^i)sO8tx*^~dTth({@=;y%7h&Soir@PH6 zD4eoJ_HF+BWnLkC<-4xmeOG?G`rg-l<@>(heP7RB^MKX9;*j{g5AE(Xk3{!Z95cW7 zvA@0M$@ilSMc(&5t+~9(L+)e8>GHbdrVlkQTSTA%42@OYNuGp}!CQ5L1>4t^3j~nmI9G zzVgI?4n>)y=luflzwY->{=k}4`+$Avf%%vDI*ZSTf7o6hbc2`ckN%;*W|jB6dZG=flDer4F!_h_c?9%usTGQ-!~1^S*9_-HihK z|8aNy|IMMd_<+C_;g7f1d^{|2S@@vHA3ly44l$7~Zk3M5tA*aYwiDfQ@OOc&ZR5V* z3cCDz4$A9HVq!U@ctwouj3B4VA(a#niI78TF=C1(hcu=f(p+*#Ys(?+BZqXZ9MXMq zNbk!beU`%pB8LrC4jY9mFE@5p-?H`pQenrgM;IA&Lh92T|y!i+dFo;{@Letq^~f#cfn(h{>d(yOI-ds z9PU4GWNO7O-z^9IuJF|!o)oBZROHX$#@+o*-a?@N!~ zt;yCC3#=PVPAr6a6eF zk1XC}`q0L8rm<(_<_Tvuo-v+sHd(mA%VnyK^#$n}pC_H%b^4%H~z49{RJQG`X1@Cd+WJ+&QJOT5}DL z_jIl;Q=~ZjE}WW|qWo96W5Fa5m5`3F-W`q=TsvJl?@pemv3m99BOQBnI#%;=&1PvZ z)%M;U=$)lyFEmAPhYrVj7KYtt_)eVRJMP1=CWvD(m-c?0j(>|bwA?s-PNZY9%U%iZ zBW%`Z3Y(n%uJCHqIJqFhw<*H6@5Vvf%uNwO$G$S0z5GT^Z4bvi9j^aUBAjodJHB$Y zED-Q(U2vv7!RO6`6^Ev9tP|mU;nQ*F%2_of$4}Bc;v!wkW%hLk*nj%r*Jp6(!Xcq6 z-W(>;{ZH2Txjk~2lHuPZ!SMW1$Bh~;0UwT&K9ip6aQx=!vU_~Gea2)JgR_eo3?^1= z`uaqEn@q=*l8)~>TyMQNrpa)~A6egf;JngB|E352tqf;4oG~nWh&T?|%}KE)_9&+99)*%eHEr3UkAM zbyv=pXD%J@3~ah^PU|p-bh&bL-kv{l%S_3G)*XMbb|N^@MYTPMFS@?JN_Z^bVrJl2m{+;OT>IbNVDU15!!;_R;cwX471!TH z98;RPw5j7r5AU{&C)+ZYSkCsA=yOnFIAA%ccWaw2SN@%j%Dw$b&5@zT$JaU^{~F<5 z7}Hx))6sYKX2|5@HMe&;v$!r2xYfZM&cJbVk*(>>)G0HwB3EuTYuwY>bR;S{r6;Vi zvyp+Z?(MBjrqN-uk8cjWy*2grw$j_%TW{}}dVA;6+q<^jE_k%p{p9W4OP2{tc&6UG z?Zz4NX-0_K%%FX(Vw|Sa4*GITKO=nXY9FI(%-@BcX$M)3`c64L_m1nGlV`8amt}2m znQ`_<49ChXE3YP>>bt~wvG&xJtG3r!H6Jyf>RJ@MG=$@taqQQsTkn`x{=aop<5^V4 z2A|fcO@8a2ux!ZDoGRtLiRa!lC-3t|r`?|HZ7<5XVWRggm9CdZJGf&zAID5~=RMbb z;NJ2X#%EJ5@56K0gpIt)Y z!h7up?krmH;F86|-wg>mnIQ}ri3}bO-)EeAF=cZ3?!3Ue;~8yqSoKTc^WTF1Bfp4i*HyvF!^!Q7e@9~snq zVc&mY?G7Eb28FQ4-4>7Su5y|#d-U*>pw2d~uc{nIvdIf(CV#ZK*#F}3ql0}8>n=zu zrZDV?@4N8WHcwX7?yh^`6X&!`*EX;II^oIGip{QK9PV-)ero*ksZWvu@>yIDMK} zE*rzI9O1G)k-txL%fAVw?=$Y)aHT?*%hxqMLos%)M10eM1dpH38#!J)`FW+bY-+aK zi`KLkd8eXVpH2SXp7)}2*^91iFS?Jt=(+Zy_t}fSZ!h}UUQQ5uIZ^H9B(s;3-CpLM zY-~Nz6XNx9dfUrtOX*z_H)q&crya3qWH6llZ}@u6__*}Hy}sn|^vtw?V|-ng>O`-` z<;cmrEv!r|d3EP{n`-NZ2S0gqulIWWzkBcPvLkmV2zAuu*)aq>_x0mg@#OHG(AfLi z?moVjdw*8!y)flR`#2WYylbEE{LZx4mu|5gW&2))CD_Pu1f<;)c=oindZo?kl+R)u zb8bDp9d@pX<58o;i#I3ke>lW<#jN93pTool@9&@K`+u$PcwC2i9S5^H$49n?6Z4{f zlySUIZcMn=_uGt%Gk$M-!dvN+AO0NsAhS@4d;Y|~sgGI|683WW^a&)loXczFc=0Ii zxoP5RqcD!jc@O_i={Oz7$yN4I;`rO{6@^XrCW~#K%)e~)*Jm6`;+;b39aCSeZk?Ae zzkY)EvVyy=o$B$OGk+CYZ~WALqG)kJ;glDj_#{6v-0S%NOi7#Rzfs$@e2bUaO&sUB z_19WG+@opE^+-C~S?#%N9c17)_Shbt0t`W zNtraSwCBf{ZiAdKcRz*YpO4pc#l&|;=?f+9@BDj9*v@@RpWW;CJHEDdyp>TbeOvL( zDzZ#}W?7HG+y06TCdWHu{5U@GJ=LF|vby6bs~$)2@)Yy-$r<`w|4cS&WtO%7D9Q5+ zp8FzIQkX+ky}0^&ad+Q`vc&IwiVsrVjQ$60QaxS%B8tPr{f_SUXa7y(`L(~ld0+9P ziQ~ub89%13__1I@LZSXXo4;umhR+)fj18kZCg$h2N))@Qb)3BR@R8p4h@V9w4&Q$- zsQfhJ=dAUg-5;K^s`gWk=d5+(wBwFzw8*%nHv4i?!oOo5b6-AK{630ZKQ^iHhug|u zvu_lY3nnh{-?sMoulby;9y5|V|NYuz{(H0g?=9iKx2FHzR{nc?`|ln8*-NMW-nISr z?&H;4{x|G>{(EnH$JDr)6BSSGQLou`FYC{R=0@F)J(_=xmH#;|Z}MWLb00(0iT~O% z41&!G4I&$A{6C9}YwXB+{pX_k-%IwZ{f}f`K5p158Fcl$31{Ko8`J;ZT>kgg_P@7} z|NVdG`ro_H|K9ul_dff-2jc%8s@LsK|M5HF!=i$pkDkxZN&okJ|BIV#b>>}n@5^=s z)fL_@`@ry^?nhtjEm4kl<{Tg6Ia%4un>^lkN5p+;uWIkmTyWfLcG3Hn^Tk%Si~P1< zv-r~gC6}HqS@OS>kwc7uO-Lu>gTkQ}E^#p(1_e%MhUH4Dx-tYEj&^e>#{E(8Qa&+3 z$$gSe<|ma?Q?$Z2<-Gi)dS-@E`lU6QpViLIu`2&Gr?V+xk+6D|5bw+*q6a-0mQ8Sx zGEzQl%k1rONn(Kp^8NJ3C+TK?TXSx;g1XU@B^N^+JDk~fx$flDy|<_8`=__Bzw19Z z(8T_K@}JHP#|{c{2?`&}KKa1CZG}WpPR>uGXJ=-a7r%Qm^L-4%M3L2BOpLy~n3PrC z7ZqWdls&nCpKFiAPvdu>3+ms!{at?FN!NF}NM6y_LpM!t?pwBUPeSg4OUr}T=l!+% z_C`UnS!LbyN%xMk=4;Pc^VjCrmsi&}=dYja==nZkqI`?~<}9zqwd@jmsxPi|Te-tr zp%HvPeQ)cg2TdF|-2*fPPl^jQ^BxQF^bATYnba2G8WQfYI@4o9CFiUPr7q1?JCx#u zKRr!!{Ku$p%0;3}MY)&ZM#dEf12q>pCxuNGDid9$Dpe-VhQ<-%j=U zwZDFzj_RF%e}PNkX47Mb(j(pWOl%Sv4T@Sd*x?=i@1B{k>mr zRloPL&}d;`2zu~a{{SPmjln@y=^BGWoZ2>%IK}^NG&myYJx7?&(Wl1nnB;4dwZ~+u z{}`T7gx*iT>Ax@U;yp&ExzZ<0;MF~CV|>>1c8&2l%h!91&)fd~V|>Ap+t%cwt8}f& zB~R_WCYOD!|C(G0^tLs<8X8?|dMz@0uj%#J>c6Hp61#29pcmBt-?}Wk?9!E`w+j7x z=ie#4U2A@?vVG;l=BnRoi+LNl^>#S3OHK>OXkUHgu0xmjz5s@alfTS)!p^A?xo~no9$VRiD;fEau+1HXtK< z=Q*p7@w+-_I`5WVveZeA?SF{ldG{rIoE*gJ|8DMI!oum)##yxNOKhvXKm&t@sJhc* z=74{$c5W`_5r@-N?f-xKYA(i+cSb#=+UfjB*Kn`8^!hj#;*vZP-&->8c77b6Guvh#}E0#=fKgOY`wkSgqJ<_^o2F*`zkNp_R`WDd;iT{lb5!+Cmz|FJWE8Mfcq31UZ*v}!Zg zonyE>^U{`OW_vaLidS8p`)SK^yT6(N&01F$3T<8CW~&u6dDWGrMq5|<)oO(-)(T}Z zZ0J1D6Kdc->FUZ)YbM70eKnC~;mox~U27B!wf{$4UUjWt(RqcY%ZU$o*c*&gSqwXS zVqSfSnsADjW&P@ptK*IeMYQsSt^TCF#*wQ#VyezH)sC;)i9b(8oHQ$2E99-xbs_8K z?4)llv-X}zH{We_H1}FlN)C*bcs1?J@Jf=*1o;DMXd2{4o^1cKVd8$NWtby#!j&dai60wtjx;_53Rp9xLdb?>jd|rM3FBA9vKY#Tbm~|d73hy|; zX15`MWx)ehefjxi0>=(pU|Ur%By0s z@3s^D^=lp~e%=&ot+;Wb{+VOy?^BLfPu(#6_o>u2mz~EeY!A*@>EowkU2$5Y?30xI z>}OM^R5Da-{XF}sjQPt$E{4X}J~=em*x2yDKgZEIXQpsddN;?-vkVz;7+CJQZB^KI zrY?5NyyG*^@uf>%=$9*Qd03Nat{r*CDsNLar_&4ds)sH6 zqjr1l2d8_oOjo++z6z@UwV|8UY-4xt6ODMQYn#-b+v(oP^k-jiyg=>i^tF4R{?A=) zb+P)Y*^_yHl7oXc-hNv4Wdr-6oCxdRH}C#g?pX2nZSicYjg!6>dVGi#sC5s!^PsMT z@x|Hvc;P!&?efZY-<^A=QRs_;+&6<=Z++(B(liJxn`!uuskJFib@0w5FIa6u&^LkONP`jAQA}P&{ zTN3AeUfN!9ip~CepYxmC(*M;jb@_G9>z^xL@OaarEpi@i(M=^C!E^5&y|#14*}T#@ zk7eGn&-``yeqQ>7=R4lmez&~7F@m+NBt%W;*_NFz-+k+kzkTO<-tJ4^Yu~RrZu_j% z{Kwso^U9@G{Xd|j!`g6>*Xh!vKejI$%lE7jyy()ceeK!7M^2Sb`E* z%`UU@d9dj{VDk%L-*ue5O@ZZKWOwC!&UFgh+ZJ%|Q{Xwafajb7FWc$E3=TaPk317R zviri3wS}yE6p!%N9TT{gaO1=ONY6V5Wf$Cc5>X5{Ip}DS=&zwDe6B@AD)GjJd!BFR zx=I{$u(%)Qu+XtWk)h$CU%^7(2@55Y9-fS85Mp7I`qnDZPD0<3i&p0T$2JSmy;UOgp5U3>0hLEbu(@(DhBi866fyJr_Qv1BzKKzhqfd zXB~-&QF8L(X1%fS!~{kmCwWJggAOMc87|BdTX*F29T(L_F7hfZDtSkBx>&S6u?Wpl zI=dms_l=Uz5hdRzNuDf;UINNK8p&P?$_8RRHzQ}dUP)44x5&w0zU!9<4myks1q(04 z9x+{X#AYIcXUsi;a}O=zj@bV^U|*=rQ1M^cVjGKTn~OEuLn|p3n^TV+p3G8Ua%xw!hV zGWe)C_B`>3dE%(@#6d^JX+esW=R!|D7B9Xh2SuJ}yR{fUQgV!#X~322>U!Pt45QyB zLB|zK1l(9uCbhg;vB1ru~$#LTAny~EPZxyo_FnB-$iF^84oxswQ%oX335~P zDoBp7TO4_c#Z+&p;}q4ujV+;iE^=k5XKPZUq>e;vV~G(v5|hOuzl9}a(^9uDsosB{ zI%!OCbXgMH)-7`GkzX83oZJycBbR`vmP9_5B)R`A#*0{FWsW5D9Z6l~66ur{s&*tJ z?udW@i-d{V0hT3>8>V<09Z8XDkrQyaKP7eD#DkfS1Q-^~@n|{du!g~t&n2VlNZzCt z^Jy(PlUhX7mOG^^%06|vNQ))s)@0W!&m3H)1S_=&u`Kf`SXj_@q;y$}w$yXSj^zI`e1ISMfNuSxXUp<*(Nr9rBt;hSrd z*pa4t&kwv&b(Bf*ys}KYOx^j1`ZG~A-zkfPmpEi^OY*p*np2VDQnhV%gE#T8yD7I>$oYtbEm-E%M7MrbF zY^SxvZPgN{SBv~sEsfJ!mbPkHp4Os6napAgTn-23)@7}5^W)B7Se50#wI+J*ysTC0 zUY(e@YQ-Z_P8SBQ3G#1b9a%UIo+wBFm2G98?<_B((7HO30r00mioVH z`Lvll0uAg7X3o8KbI&#H-I5L4*S((eOJaXo_L@`Ldv9ew>B-)??^gd*N7*|K`}b)d zaa(ib)JvZY&;25D{57-t?=mo^99;D`duHL9IB-1b)(_VxX%R=h69lLeNQLfI zK8MgyQI;>SF7h?-1RRi><8bDh&I7i0N3ON>EjyAc>he&|W%q$(Cxz8cGI_dglaKK+ zGR7QyEz7{D^8dglp#w~JBxMrx7+dmq5)K~!w3=ng0oE2h#-0XopS-6{ZyA=nJy5sq zRo?-Lkm${kj7%%^7-u+2E6kGcV0iDxAbCgkq@V7aUlLEF@=gmKkbIN(!mZ(%(k$)| z>vpBdJ}YyOSh0?+;J|S%y&rAw*Z({EP^`5}ZGu}#im|3Pe-DFzf$qY@b_0^k_@2xy8`I zz-Yn1o8l)`h;eIfOYOOCOGt1Y&)2-d{B;C;{Z!TgXH=A{;T?N7a17$ zFs^$fx?jja=Es`;vqid(H@^84!!5udbU=-_BcsKdL)Ri-i8ZP`{>UJ)SvUF< z^B)Om0S4ZZP5iSBS^v!75^&&NVr0GjzwyF{%^xXZNR_d`$U=aMHyI+psr{dNi|01KuvW#mSrW|Bs z{Lv84sV_PsThPXc(T72MgA=pB0pgxh}! zttp)%cqn4JDdU{4t7Q*zm@r81DC{?7j5%$(yLH>PM_>D2n#LcVr~bRte)+}(e)GcH zIzDGMy9vzon95Sb+)$LS9=M>f#NS-XWAe332F5cCtCbiTKOE?f&6aYHWO~8Cm~-I2 z*MW3?hO+GMDz_Oj-Alv+Oc*0f;u1~PF`2CYH$&vgwre}L%Wb}0_1ui{$-(~6^}=7i z>PD9p>RU8tuk@>sb^ChMpPxl6o~2RlD?dCpy9bkQBvy4(WS+qn^*Pzj^Jp?lhXgxe>R(E&iC}{ zO4IKV9`lQ@ajuvDaYLNJh>zz}^x>b}=N+CT6x95lA<&W+bNJqDex2FeJA@O8I63sq zewSIA?`-nkxx{&=cSxK|%)IWbMP3oVoOT%bhDLuiI;fw2keRzt(1cMtpn);)|L7H9d`Y95P1-q z%Km-H`Re9m*49O>n~RruWn}2^AE-+&Y3FBn+V+l3=fLE6#x<++1a>rruHJF}U-jDW z5h8mU(rz=XiDWEqf5)+d@!hFA!V5OMN^_78SpT6-Pe_EZlD}$-Z_QC*M^OcWybup3lX4zm50)|5LEtrL~(yB58#yPpzX!ZQz6#rmP3VFRVWH?~ULS zhrVxF{ZkobMHodBJ_$D8xLoaUCHv*Ut&V(K4v6He?U!}pt8kQT$Yl(06kNmj=kMFj z+S(i6V;I&nidX30W!`)Lzisx>6|Ol;yg2OkncM1r|EPaC^O5<3rDp#gG4FfgzmIFv zf0t$7k31C)Wsp!fb5HZR^}eNbbx(rrUIyEFOFRf$U>7{q?)CP4udU~D@7wq0{JtmQ zT5s>$y}NGB^UUu3_qq%3_q}J||6%#2xBUA*%G;kkrm$Yu{r;;|`~lhb@>n-@O2vh(vZxB2#sY@$|EG6EO7PgD!tRifd)+<&3lRI91~vqD#g zZ%n)TDv*J3ef(ZCiHi-Hk(<*mE(_f~EjM~Q-{M6#xPtOd^A~$xyIMJY>AgM;2KH~a zud6j5tPoTW+p{Ajd_#OUkHW`kunX!Vm6FfTceGCZy78os-NL}-VQVjcOjc)}X7Rvg zc3JN2?S;?neuT6=y0<#?pPSB|Oqu?olzD9X=2U(@*1z|dBtvsU9{7IxeRCHTzrX*{ zPw{2b)BZk91`YQ8^K2hqi&qsfFkHCHft_!`V|j^bo~;~yA6Dn@=X{~;(8RTh!O7vB zM9zhS?1~{8T5QX-9;$G~zsl{M{KM#K7Crkoz=q0K50>f<}st2IiFWbC(l^aqEI1n!d+p%&?Jw>5RQgM>%5Fd zU8++OE_w28NJ!|`-n1dPRadb$VOkM|h!|xQzYYF>2JE!XzDmAshlTF2q`M~wW%huQKRYz9k zx3fq%{9hDlJ^!q6RO2&=1lAWDWEXJ0IFWnfVY_5P)qvA z8~J3yJ>}#EfdfTi{_DTUcyuy4TsU}t3TKfKLzqNc#Phk8*UoLW4tsS$bwT_uX0?U3 zw@gA9d{(S{+25gOrDkFkRkgIjHY@yWmHWG@C)cD56d3q3#2)x%d>2Vz(qCqh(5>}K z=7gt!z`L98c7MEfW@S`#5`*oWAOB9|&xtr#r79K0Wuqd~B#~KgVBxF7i&S2v{L7^2i_YJ#|0Z*}mGOdNI@5(i3??5$**`GU zT*z#ASvFyp`ojKN(Jc>Hg*Q#snxVoUa#O+oR%*+t8UaHU8&6IicH4D-`&%Cr@`$i8 zY=6V);AQ=Zi)X?VGf|Nf+Uq?Verj|$D)JT9S_U$DeYh_8v{oh7$a0bAtQE7==RL_( z?o{$wrZLG>hfzi4#R<{)B|^bFIaL2B8yNo1B=UyEpp#Yq*%M=ZX_yeDUT zd6Kp36Z^>p{S1~)lQ^p`7&Z1R><`vzYaS*QFe1; zT$*c<>d&X%O`Hvho1V0(h5V3XrIq0O<&9*IPbt^%ZWUkwjZ1Pr(8HVPhXJVjIm0eQ6R~RBRR-gaMlIx zXDOY2s(XR>he%^3+{ zo92FfbGxlHa6XU|Ki%VyC^*@p>$DK>T!oEtQk~+zA}2jzdf=ko)Y%nabhp34N9{)KNf+0mqZ3X{ zR=FpecVf%#$&Z!3?_#J(^R&>O^tDQ5mx^azsqYk}@Bimb->)`PKkf*3!+*Z@5z|(m zlyKeDG;Pkd{TZ?!!kBatrW&k2D5~a}5nr_0u#zQA{@{kSCZ&^NCZ@zPBwY1~x%#kQ z;>O|5%@G~GMvr1UpH!MpEc6gCkD6()Lpk9^M^kW7vcUCohgSbA@HV-l#dm&&ila%M_D=1{A$B~8h9gMTB{lH{sz-(H;Y`KBi z_5-t{0gGz^%YV-eEWRID0u5M03s@sJu<~x$wv36*(dpqfCpO()gH`L6=X_ulO=h=l zV&m^tZ!pVSvS*_;6z7zw_*n;&=t3R$;bk(8h(*=(@fu5^DOI1cvzd99Gx5&+P@lB=n9yUcTyNf`O?-`q`4%$q8^5ub^jPIf0XO4D z+b0GBm8bsMHQ9tE1)u3)y?k2v&x!twq`ec4C`)}*ndW`TA!!#|&TprrT_3nzjZ*e+ zTCK9fd;h)Ds%QLPt>afYldYz8@y9Jbh8GKzol?%mBnddSs00a$c`p)8eI=Uz=%5vo z#A$Dlr@pFYg|1!Cg?$4h|K}_H)X`TJo48l&NLR|DzbkwtHY*+2a#8sVugw7iwStew z#du6N=%~$jpj@&} zK5jo3sJesa;W55CKP5$Hrc;Y@LZ_Swc5$+up{>Ffq*8WP(UD1Mb(_kA4+r-6s1)_6 zUC8;!WpvE#)6otd6{ATi0iV9q@TsVslMP>^<~K>EIY%}4m8!JRF||*j`}$N}d(@RT zDeo~*30kAHe$9Q>r^AOmaD`~Qnp^CV!8CxvI5nHevSP)-y9CT6L5a@ zoPJg<$2ZI8t(umwn$5dw zerMl$Fqt_%`co14O4QeeC5dd#lcw6A>PS>{fg#)_eVFj=&GB9sCo1k#a+H(HbqOy z*E~98!*@OCCBGUj_J?c?|)P?xT2!AMTJLCC9=t* zH_Pq#VUOwT?!4ep+gws@IIv^sXvr`KjFrR=GCOuCmXhGATHG(eoIk!1qeuBa}j1g;fK#u23@# zntv!nSD1lo{nHdaNyUDxe;32t9|cb>HY+~2?ah?82hLe~FEaeU{gB_r%TmTyRp(3% z-u})@wnSt7yH6fTivA|i-bqo8NgwxIQr;DMeuk;q62CWM?JN4OM!kOb@?M|ioT)nJ zO;xVsb??$R8)beSLM9eDM1eO0Nc%6skfNAbL7;@cPL zN>5WM+IpAoJ^RHY%15@!+dfXtJY=_cld8%!>y@jMtIsGql&#SV`~9u&{k$njj?PKi zCuey$O`g**xxrQ4Xxm>Qe-)2w-x98@JG4oqf?ucky>djUR*k<(pIBzA{#S>!S~31A zCydl5ZA%eBIDVB)*H$l@_HxEI)w2Ao&XX$V!c?|}eUEu0V&4@1f9c9k zKG&3U^z#hUR8LKlbx+E1Y|4MW>bFCZ=>3=0+s+p(Zz_yrDhxa~ey_P`UVF8?_U885yWeXcn%6xouY0+@&Uig+~=vN{y#xo&B8=0LjA^sW%n)^=M>rM zSv383v}pMm(&AZR+i_8?LlvR)Uk4-{rnpe;Yo?!J6Jw$)Y?&ah$~0^j-jfn zsR>t^s>ij^r>o<4O30o5c&6fzg~zup$%3BQJQ~eKipD|Owuh7-`zU!PX?`qGc_P7J zHmUDo#iI>pJky=}cNQIYQBo@}`uxFSf^C?3@FT82Ta>eeRKI-*Jv?<%chP5+o%!}Z z!|V@na!B-9U+7xPq?_sDvHg**b(5a1#WY8!X^aQ-CWoqqJL#976UzKKb*@uUrs&jQ zgTVDlM(Woh{>NCVwvSXU}qOz=4&E(30*e_0zixx$ScpffRFU(P2@I_VV)~v-z z75u;cEGbdBWYQZs%WM52&&m?-S`+uxU+&$AQ04f#G&f4KIB9vNl$N8B_gqWWhN@-V zR!f(L2lPvs@O=I9C`4t(F27QyfR9f88yERYm(FuOY_>dVrEEdi#5}b{rr8ChYd#(d zvodIzLYQ>XViprjlf#rSna-&Md>COhu$WHPksJJt;%EEctAtO4V-VePZe*Wjo7n z??_GhaL?N{^7o&6W-1)lbEi+6?#916^U*HPM>&R3>sfiTS0-hzo~^ZKn#!SVDlF!g zS3KHtw|ZCbgyPx=H3xG;7jwgRv&CmJFO5&y?|*3j!bRJPoenrM9ay+%-_z(a(d6=v zhYlt)9XjuED75R4_#fuQ)76b)HuBu5DkM1TV$68yPZr`!#%a?biW(KLL@w<0#{qW({r%!L5KYw)p{>{60ua}nQ z_xE=$T0FF8{3X{oz%<=mRJ%e1sr&!0c}?Ab#P zPv>{jK^z5BLr+qPlqv6kE^OmEv=02+__p= zS(25NGGoT%O`FzM*OZ+)b#(5$8LqDOv2hW#bro%G4VN#U-MDE@L1DJNgJo27$kwgv z(=(EmE}b6`;9Xi)aQN^(GjqcW7f!8Sz3k-4BMy!>kdsYgV#Bj@(gK5g>g%g!&YW`M z#No-4`+WU8YHG`8&z>3_;_K{U-`(BnAK=y0T$7uZk&~OQsikt@z|O*=?25|b)U<@+ zlH5aw_gLGQ9XzzVp|RS>*M0r^l|jM2y?q^S9!}S;U6?Sj`_`??5s^WWQNd;9g_&8& zuI>*1{t8HDIle68i;|Cp`Y>yv56dxbu=kFOF5jbb= z^o-2p>(?(uMTe!OCwlw16&2?|4qi2Ju!fwv+THK>?ORi0Q?++?x_wB%!9$sl!&VnA zj);qo+^{+R!Gnsx@{+<0>l_?){QQkCT`IKmbMr08agGWNtE=`(jj3<(c=f8rEg>?y zGb=6Ku6{|~lKZ-05fpDDN4q(slkQ{$C?D@vz;!~Z?*yB?S9eZsUVeVQ zLo=7G*OnC*7kf%DEw&CMB?o31iA_+DF{CBCV2 zwZOVlJGnJgkFE|{@3>o#@wlwdjtvhFcL;}z))*{z5lNZN0(x^Bu%WTK5B`z zUC7SUI>#1!&-dHAt90>B%cy;QhQE)!buBOcFYmu^&(F^(U$?p0e`s}hp>ox^l%JvQ z$h|k8U*A8!|Nk)_-5(+C4v$z_7kJ5cOj}UTWA@@fv-wgs#bS;`riHE|aVs9S$&|f# z*sd~heJ>e5kao9QjcP;j79e_p7IBkQ&mkNa%Cy|~bA?xoUPTrc|M zx<_`8i;BDRC6#8^CfS>lnAi%%E=}fUJ_7elX%YpwyO z4I8&#$``ztGx?kZtJ8#*u0u~gJ2==M6FRSS(AnW5+>{69hu2z!7I82A642iq6QH21pZD{ryJ_5=do~x-wVw%A<_SJuF#X)s#-Ek3 zg4ekg{tM(+TXcHY%Vo+|Q=i#9^_}ugc%|Qzw;gBwCV$u>&ad{aNa)_A+qO@?RC=0c zMFxM#(9Hky)k~3o;TM<2Tg-L#u5wd;1WoM!`*UGte!yg*y*<}XpO0=?>hLBxB;kVe z&h?Z2rG4E0)Z?@Be1_^rElgqp3>LyuXB}`-)7Ew2*Yi|xl=>mWIjN<|KJo#BuDixo znKOanA7!1aRtN}9b7^5`eCYW>T=45emsYdJL{}XShD)Ir6wG=$czib5oZ>OZLgRjb@xbj49{YT;~vM1 zW_|3*@L4Q%{lqb|T_1Z3dKSw(_c(5K>tkQVnZ7KQszi#p7e^^q+v3}^Msa?#loCVlNLM?kIqUt^n@oR*Q-<3i%arU z*t}Cl8a~_~xq^elA?JC8kkdOZG%)ZP0$|87zIAG=2_j#^75Gx%!Q-k&LwuJvW%#;oNIRT?7MeJ+bc zB~$DaPhIS*`m&hCSi{5J>(ZoIUzTY2YTn6OdTH9OFG~%2SNf!TU7mI8%QB0zEB(q( zU7q*r%W?Z)Jd(+z$;aS@Q3d@A(F zYUYbsAqTRqCN474SS;hADOh%D^@>X>H)=d$Zl5|c^~}~a6}BgJI6s|ky(6S(xcHT0 zRpr)}H&+!NztQ&Q<7PPa=!HU*vq#G3Rl!;ZRpu#pt~zbkbaQFRw#@=Rby62rg>Q=3 zqO(+XZC0p?RnL}fI_qQC=5T+VT=2h7Sh~R_eAw=_Q^l^j_hNZ8UI&c)BR7s%GFP~cCzUkC2SJ;vA=i8iy(tl2@B?!sXSfd z(V~6nLA!&vvanyrotTaXeAPb=e>T$UaQAs6H2cR94K^|F;4_cJcK_Ze%*}|4d+FvB!fy0_<`n>LqT)Nq7FF zt(`IRysl#L{LMwzRwuamlx^$!!SY++50k=HPC*lIujq`ad%mjo@JYwSCQbKpuS%A0 zH1X2&6$;!Osxt4N$13flS04jYuC6nS^3}_|xyhqaA%gc*^U+Gdh|6wjGS8Me>^o_5 z?~u=QEyXpkXWqMg20d0!L1!o())7{?8&Qrd5JZ^W0DKecY3F)bKw&vG6MAp~|cI z?Q6U*DP1&o+jXbl0B=m%(T`?HQETVw2c=&>^zes+%fAC@G$DrN+XZ-TT5$<1b4^=4!hy=h`7_65ps(`-r=;Dpclm z%G4WW7D4K#3wS4eof0!wC05+;27A!gNjV$tTU3d%Sq` z1&;X74!U#MB1$e@!&13zkHo_r<>f`6f--k1t?uVLlG;?ofAyZys_7Rq^5#!jcK*nB zjg?;=g!T$Ocz$P!rlD;_T7FG4N4&z3&C;y6@qgGI1%bcuEdS*vmg_J!cs{IO zlGwntu~NQ6MnT60>4Oa!iK%WA6ICZ>%bf62ndsLjBqS;(q&Hnu zb%lU@grL%i1n!6BkIV#rZ)(ynY!Y*9-lr<$VaL(q1HfJKFf;|l@%7XnHgi7GdQ z%rdN|HEDjo)WR*Ew2Y}WT1@EncE@lIndy@<7ffyq{n45r(U#<)quu6`DiM-y(U!HN zE$2pC-jB8diS{Ck_L7M9vWoVK8SPa&+G}pKYl^j6i&mN_cGOu22Rzd?*dg2=(XniC zW8(iO9X%4A3=dk*KdQ6+n9BUo@I$#^$uZ%kYn>U484H$)&i;`p!`S7~*d?(r-D^_k zop6iXiQ>_LU2`~uUWMmZJQG;+L$Q6EWYoqC<%bz-(>rIYWt%*#{PI~{4;NL;h)wI2Y3xxfEV}RBo2*!T>6p6p#_UDQa}R{|9Ql^}HmvuF znZSoOp@ilA9ysAqhR|8H<{4@NJHH8V zNKUvo&GYjOC$>s0q3uG_C(YRc3t}!#ym=yDMzLVo4Pm8DABDnlo9vyLjxX8Snnx~Wjh z520t#H~hwNGm0B&(HEwEXjyb-8^^-?&0}{t8j< z$dyc=S3dsM-4HH1B~5q>+p6d*6T}N=uzCut_Y!zkCgf^WWIjuP>88;8X}RnZXRo^D zK5eD}dz7Fvr(jCjWVN63_HzYknJ@KzxW-gMXz9*1z9Q3|64wSbu65fu;|iBm`^!Z; zrcM`IR<`Hb+CG+b)z^hZyLz8xx$cb=++W$h z5UZ6ytI2|!I|be@7h=4%K00NQ-NOxDj2nfoEL7UKj;Gqv-Af>hOGMgQKytQ#{V74& z)k}34*NR7nrBrRwik8UUwMp;yCIjisRbI=DqBooUuik7id$ZN<%{I3;+x_0`Aic%O zdW%c+7PoG#V*(-v90XPrZ1MZOMIn@1*^wt8x_yCxkgm3vZ}iq1MO(u<7s|Tuyr-eHhgbHVG`~P*Dc;mL>)dC^a0-me4voGXfySQD(aC`M? zfd*}X=-C2I-rG+o@f`lhx%_}|nYQq{27$8%f>WynrgsbFp5DRyc!#Os&KSjAN{(AQ zxfwQo5I9jFkZdhbxmsYgwxD;m(CP;}k3HgM-MCGukcaIfhi)Rb=Ea@-h1}|nyDk}W zb2f6UP1t?9X*WXwqe3Ag%Ljpdt9M%~?vZiaBi*={C2@~X;SRC?8~2Db?qOBjcZS=1 zPq*N;+56ZS_i{7t5?9=FfLr8Nw9q|i!L_@ET3-wOtloF|(H=#`Jq$4d#|`$fJlvfT zxL>7kzre;FnuWV;0=GSRz5gQ9e(A)6T#W~84fnH6+{(1@fbhYC90v~wId-mGy+wpa z?}Ft4p+cL>Lb#IUX{8ctCvNVWx}RoQ(T4c>>I2ge>L=ZN9yw)tXDV z@Cd_%BbgPEN8pIVI-gG@0OnLI<&hC&fQ*oc<={@UN2^+f){4o>CDz71X$L8ISLZ zIRbZ2R-N8<>e*J|OdElX-U9m@cF6}$*>uNi?VD3SU0vlTp5E&dynl{>|D>fyc|w0J zK4n;VT4dqc({D~YD^9C2JuC3lNMn_AhO)r5p0jpaReCop5L+mDe2(dZH36K;t6s*$ zJ%1y>{iNZ9!x^=Q)$i||OPON8mg1o6curYy|O zwowHeSu>plh5lYpcy>W-?nSA+7iI2Vl>2*8LH3f8?Io4iOKP>3H0EB?+I#8F6vnM* zF0Fcc)WA1s{(pnZX0@07K3}rXb-Si5aObz=$_nXt_mJ}n<6m#WP$rbH| zTpWsAKDItOcP`5x+{e7|ps662@W;!+weIJv4@)av<4e36|2HrqR`7MVKuWE^p#@jP zE*?vN>($UB$kZc{$;(hsD-vgWz4*x$QN|m4qeVU6UiaK`NbKPu!Gqj}I){}NuL~7& zZ{2W(!Qp1x+o0Ckn_XM3GcP>Kdhn*G;}vtpt85#O&HC$Rr7JqKS6~~%&E>N0rGIZ# zKIQJwy1lLT_Kvx?ckR8s=kD!&e{UarO+&XL$V$7=7Kc)Mk$%tWq(C&e~iP}|sX za;}Snt;lVgyT_bQ-LMV5>MO$bfA3wVkh|-7MBnh-`*i6p)56OabOd(x9Dlag?QU** zMA2R5#tZLx?^{hg^S##dY>vq5z4w2-^<-G*acho{fr;6Dn+N48=l=N!K3nskcgs0} zxS$uY0v}}rKl6x)+C4n9==|?9cN8x^km++{&K36iaF;Lfz6s-9Ww`*|zLQLW7sV7G z>*x7N$33=~_tkbB}}_rxXciCf(hk98J$XXR|>Jh`KEd9KiLzc?+^ zvvMgi!bcR22H(?Nc~>~LPcXbsC~VKu)GUEQgpPqi){ zFY z@e%Nq6LjEVU{ny8nfF3R@kZvsXRMBg)*A>+(-mADd($hCNAki;8Np}FfiIai?&N!T zZ^1p$MdyT;c;6CHyejaJQ=0KjRO7bRI>Fg>0-NRu{ErpfI{USL;8o>`*B8VJEwK|! z&=H6^D|A~Q?z^BToG80jDDj&4#J7nL-*HTQ!=89dY$Bt8&vWLD zZ=Th?3!Hdec;hwpi`UpbUXxJV&;9V$gLz^f&h6rNe9zkWTH5j5pLrr1a|O$51+L5! z;pP{)Z?{L}<4fj;ANUNPv0i+^s`yd3Uv#&eptioi)qTR!^F>tt%Y0@pY*oq^YMl2e zr16I6!W#kyZ}jSZFkZNqqh84My}%^jn=9pRsug|~V*I4I{)I5(S1Wy~4RS)O{XR!7 z{JM!-@Kc?DTD`y)xv!yjjxaAgBKq)f=zO88?{2d52xY~Ie0cYo`QqF87oN*IerGOx zD}C^*;KMIMg5UTRe`K#0$y+D3+E1`EUSKV+)Q`9yL4hBAOWsWAf44RE=ZyJ3XYKzv z=l;)m|9>u!|Fy{e*OK^O%j$ovkUx34cfP_p0iAijn2H~7=(oLP`@2x(ch?NVZSuO0 z{t7#PUc_X$Y4>_9(RKIOF5Y8{5fq*)aM0w>KB4;uc^D>0FwEt9t<^V+OYzaU_nI&M zue~ol@z3pky}z*{XXXAqX!^}E@c}#IM=ixa&+Ii>`-Irvoz*|M_Wgb>o_|98e!^SB z?|omd$-u~Tz@dqibCJP}fQL?Pys~yJ5+5Hjc8co89hnjM*sV|2wvI(I=!wT9Ro{6o zGlQObP1B9t*CHAG%%{;<{GMiqvC^h^v)X?wQXwxuC#1@`&I)-Mw9I#I)|!_WPKK<~ zss2+E^zl{jy4byStkPj`A~vO-o%dDJG*NxN->Z~2CkS)9pBDk4569qW~~Ze~3@ z^J0IOy}P@&o?SlfPsOLFXXm@mkNaEo?d{$D?eg*eYJPovoA0yK{D1Agzkl`5KhV4L z&AQuRTF*~?M^;c-{l=px)MRG=mp z?)20}JpReMDbsRZdK|kDWYX!@*Hy{k*q*d-!qQZwE><_?ejb0(cAFLrk*QO1CMm1+ zXQwWRm};mN6(|RY8BJN@ zC;scp636C4fs2CKxlET@FuW*QY%SYVvb-ia4l_q*FwKAoPvuk!i)cDt&V%a`w~dcD4#NAb<}=lix@ zl32yvV7g0v|DUTuhW52zlNYlzti9H5U-$F*^8Izc-ygTH|NCA2q)+5pz#EDr0-Gn{DGPk@`uSTM7hK6Q}Sq<7MWc6@rB`!ME9TAkcmd8s&yl9;&A4^nBwur~E zC;CkltNU|>o<0>|ZSdW6QL$C~g!&!PNnxEA6%XsAxy;fOOr7*UWfn`LnzK*mM8~wv z8u8VWT@G+EcrAP~_23l=Bje18*|W5iVpwi@T(g{1rjA()1S1itEWW4#B}A0xS7XOjaZkezkKNv@oVyeWh~1YicSRD z9@;eJ!zC4;vzlMJPE6{Wm9m0+g;p(a#eC5={-FhtR_#S6_{^`2jCK9IcKR#8; z`OG$fnb*GN=c%3uQ*4f$!6T+Nr`PWWgTc10j%iy`f=)O-4VkdP@7gBa*(zb2m&|JA zSeGzgT;wt(YkNz@HHEG%9(ng)3f$9Lx+68EC;02vTVETeO_pcO@mb{U{=({cfz-}- zZVipiZ4$|nMX7levc+L<9fI~ecg?T5x;yUMC3VryO8M1Kt>b@PyT0%H(fqovyW{_T zyT1QFYe566O#+knjRWj%1;3;wCa{^`ILO~t(4uOS$ZCG*ka%2y+p9%vT;(?o%U@HF ze8wPnwc*B*=bVQ+L;uKrS$pH?>&^q+sc+`-Y)Lp~eyp&sbWgI}_Z!C_O+5I$&L%}k zJhEKZ?0?ause4k?%x|9bZ!4Oz)FxFc{N}0fV@1=p?n%`vzj->It$4;!n>3^8H_xQI z8Shrmo~*X)=GpwV&l0YS?pR!(seEqji9}A}Fl%9n^ZbojZfCkDI(9z^tu^~NKYG!v zZUd={{$VE0aZfX%AFWi}?sH<6;-=H>KQ1ZGs{6vV{P!e}=_zxbiad7;h!yHCz^f zn_M4pQ!;bg+DND86IpiMdb`)mZBwj3KzYk~JIUAEQ*XH0YOCBik$Yl?a8bkuuGV$0 z`m%O&e#+}UA+7rK-8-lMF|TuKUQfR-`fT+qEQpPXn{JnQ4^-~T99H*0^|6lqEtE^#^ z=y;dB-zq;TCG@JzGk?F_iBI|E>;GNx*k*3;?Q-Uq;?`?sjxqhU9d~|*otu95pl8#Y zm(FQ7UNG(VQ&##nP36x`!G&fnC#3#=Iot8Sj*BZyK4_7X<*x9Y&)cQzo z>gw$ZZ#G^|KGd*rk2?MnQcVsUyBszNIsD%=<*-?a^KYSz9SjN#3cJm7){9hgC~iLd z^V59WFNf{-^h+@xaa3{n^?;G#M3Ym<5m%Xs3du*@TU>r~?Dkl4#B0kD?;}Tit{m}w za>Vb;5r3AW0U}2ORgMOk91V6k8gl2bO3+dLQ#-=WD26p1ja+gxYRl2+BS&{Q@0)kh zm1Ec1IGxpuEXQPp_9pI`7ifGeCFI!h8H>+FyYXDoXe&6DzD8bd$uX&_quDwOldc@g z`*JLw<#>U}@j{j3MJC6KUEFoK8%k4-m!-I$5NxQJa=dcN@e&)J@*~GfTimOjxHE2W zKXk&q=FaiDImhc|dKyZOH>#YdF!4C(aH1^aL~G880~`$hnKqp0-g3g?0HXlIzK$OZ zYyrC#-8eDv$B79&9TP)1q&_e!Cor&iG%o32VryWW8F8X%&WZgiJbLzcurM%KyzuDI zXkZLzSnSZi*w8$YKZ2=UqLGn&-ncFwtSa+d&0ZBNG%6E0o}21f;a8D2|mpk%_18ZH>q%JyVAh=U_)z1lj;o??+=WJg(m#h^I$Z1utG0@ z#p?ibyT{q9CLKHnHmvmSxZZQNWr6Q)7r(1MQyES+ELy|-W=n_isD)n4F8?GT9#WH1O2mt|0!arTr-$0Cykg{>Evj|Mh3 zFe`2d(9LLW{&10fDPz+FChoUhtsNJcRT~`)IM_-9RHg7lSG7B0wESPL;8yO=QtrD1YBpN&-IxN>-Zt-9=4hRixZDbB* zYC3V*c5buX-^&iNSDa)UoI^Q+pRVAW(ZG441+?vVZi5|1&{7!=CEg%M)evV>4%?1X z{0vNP4UN(Zn43Hr<4YSEUoa-kZTQL3p!XwG!!ND!TU>(rGDbXO_(4i^8z@W;}>>44JdZV!* zqQm#*)ZC8Ty9})rJ`4fZ8aYnQVr`i18m3wiA+6D&Akf_M!Dp?`^_CSEvSm4VD{g!g zyw#d}qrEp`X6&uT7w#s$muug4*~xGm`O?Uq(ZH;5qw&HS-_(u;F%3-`7i9}N)Fm3G zt90duwfn%Y|D_6}Q_aMDLPi*lpTz*te(kL1gQXn+rm3 z>{RX8rP`q+!EmsoV|i}J+C7(=ZZtAl9BGPR6y*&%C(ChOwc}W5N6ppnO}gAiN|+f| zF#Yd&b3$LDfoVt6skfK9b#F4hxY_i9QHg^^VgUmeLknX=Q%|o~fo_L*#Z8?Bjc=DS zsy?{TQqcURrbEP|fn&y{CWg3&s&P_BBbp3uKGE&?u$HNPN6br+ODVDqN@s6W@aY4NaBI z51B<1h3u|1StK%?co=>+^2yOVzgchn(S4-Ynq(o{u&kDYk?;HgRgS4w<(ev*8Ba88 z9E<<^_kn<1;{T=%ce(gFEqgdOw>(t8aPrud7MTM~;&Kg&8i~sD9xYO3WY1`-OKlWi zcF)R$!|uRoK8GhR?-*FYu&w#$zkH02{H#>S~W03!b#Exc|uXq3yXl zw(A14Hw{1xXd!Z=tD zG%yA<+DuC_V!Jm}heLSAlg1fWS{0fZ6PPa~{5S*>g3hRP=uK#BDo9rf<6!n+;IN2qO~_i__DY!V z^(3|Q<{ua4urYi|$+T5VULwnI!__56uj7g?<9C&Wm9h*wSQ-2(B2>d}%xw$Z8jwAo z?bU73to18AGz;c8yJfHmF!DGsYs_ev`mK5Ey=0pS8OjqHlut0Tb2P60cdzvZqmV>{ zSV6P)hh}RJhMns!u?BTqnaA><=fT^1cIO%o!MMtlW8&Estp-Mk8UFGWji2}(6V9)gBwRn zS?%?jdruzRdvi{%;rzGf$J^eV_}1xJ)6r#f#bCpmz9$T#8!pJtIP!AYB`(_lIgiGq zwugIT-?myX2i69#pI|=8%8>r-OxuMfDYetg{vTMyGmXA|=W5 zamnxU;^*?M|57vci)X#Z){;3U|4No~lm^Dj1nHM9v-o-}L?$%8bZN%d4wVxT>0g7F zf34f{HTL<}xbI)%>vwY~q%0LEJE~EZ@Vt9{UFRi+^OF-I7fEbvt@w6$Mp?@7Ud#I( zS?y<9E|eX7QI@@3>>_LV_ll-H9ejoIL}mO zQMJCK`Z-6fe+O%IcS(7d_lrHNSQzGh;0{{bVI0Bnzl5K=xxaG~V?mQVcZ>V$B@$&F z2|xN8e)N2}y@cau?~jUZaju(pIC}1Pq{TC*vNyPY>+E~pF=;x-{RHl5<&`tub4*$P zvr(e5^+09QjKihRD<_+G?c9;s7Vxw3GDqe9j{Nct(W{j+>p51rhjq07s%_&~?$5cz zoMYYoxK4)Z#r|Cx^G`QARJ6p$G938Uf8tl~f~qqQ%9b1a?yIP7*WfKt`#rzlXOF{= z9osv1>vy>s`~`~?ET+$e1FGM{;m`99EbWjj_l_+TF+6l zzhlvLj#Kd*7p8yf+pzKJl$!Y~s(Uun^h8uoI8eiIp{DORM}s`a|MTsCr)T`liSM}4 z-{BqccUnQ^MRShz^&Qur?=fd(c-Y_3#s9lw#otxyJESB!!p{BOdA`H4>-8>-&P|6A~*ZnZYY<@Fp-!#R}M8H)A)PS{Y_KI7jqwT{H+HM>(dX05O9W#I6F zosilr#l_|G;zMF@JFoC6#TQQ$kM&5I7rlA$QTYUp6H+6K`Hs1$anIeeCGglOR~hAr zdpHuhz2<8)T3xXWUU_y!(DIUbm6a@(?d8=Bbv3+v_lFnDyNOWZhb&89au-I$GM@I1P)>gj2A zV|A9rKaF2pSmZugFZY*8=7|;IoAciOGJSJnQ~Kp~Z-chJy|b(Q^Sigd%|ATYQ^>8K z_s8PXlT*`;$EW9)*XRGY z`}gP9_s{R&|F>^oW4y$pqGVWt7ue(Vw+^v4277eQi)&@=`N4C zDax~;C!}^O=q|b1z3`|+khtzGiAz1Qg}VlW|4d8MU#YjfX} z=WazzvnDL(Y@Bs*nL?-33ul+YUs`T+JWmEKX5K5I>gc7Qk{znr)WYiMeaK3EJ?BBo zppE*n);gP2OE=9}Ve-*YNc?Qn@0{?9N-b-*+V9$Ub-Si&R=`&2nU+C2?yfq0hnsoo zu645|Ya%38f4IdxZIAKO?yHNw&s*^}lwo~HzSE(iV~0GL(!Z?OuchU4^{|%e?GGDl z7(T3X)7sI}?*6!rrP)m;*v807EP2lD|M4o{Pi#nJ5?^R^#_)8{9G=s8M>*Z+E%Tl% z9DVLh+F4^(-5bUB!5qzU9Qmg29cJ*jFfu$>GkNP^f2ArwPRcOXeb5C`>bBC-L03xu<^8= z_1mqt>#X1He7(>5{oddItUny&wzv6sRJz{g(@E|9HlNR0|KIa|y*EF@m#fkBw%=}M z@3;MaxB9>BkL&*btA0G4U2pg6!#uiyXe z8JIN=F#hYWUvpZP&%xmUtI>u=z8VFV?CCP`2iuw!ew2J!(B8m!K(R^gj{=9Y#-Vqq zdifQG3!L+oH!^Z0wdmC-@+50G-#(b)9=dU1a)E`Y?6Q_C2vwDG_XB6 z$!DqI$gZGyQq$yszevXcK`YHOi9*KpdX_WY{jM%=d~-HdBJi1W(ASBfiAO@&9n;(w zNc#396f2}OaCsP+PGFv}WXgic4;bPCc85t7F?96Ym7ndfTj9kfMplcKHx3tClRj;p z|IcK8qFS0jK%L719mR|go>`No7oJSgFns+Ox7r@otVSDY=NK|4aE ze4 zu5H~kwJr8$xX**EsdaNdu8Msr%^(tR?#fv|CgzGmZ>yxNBhL8=TOMd)mat@rbz88u zul7w)?50aAe7>o0g?grDPrBK7LsV_<)jMx&3>dWU^szIaIP~Vzhv3_q49v^{jLC}H zw{Lzj)>8ZJdur0+<+DDSmW4<($P}=5F#bs_GmLoqR?47Z$vM4Ay-RgV7JIuL-#Jks z`>;nT|EHU0POjr&HhBG3>m=Jv-o}YiYj3^@(`dTkwSDiqxeLSF#Dsq~EzM9{xZe9p z!|LW6KK;rc^PRSJ@4Vre$Y6USR)XyT!;*~;*cM&YV0LL>G;v^LIKEWw?VR8Dc#ADs z{xEJxTJV3GpnyEf98N{UWpgHIimqSU&uDOv;n0HJ_C`i*YzjFH77LiX`5v%$TC7&F z)_J06yum=f^yEZiqpST7uBv&abx!4Ldek`MhGOu$`*LgnO!r(5vNhj$^mZ3Rn@9)a z85cX_S=~IFU;GJBla@V@bXn)QW&6gnE4Uf>3LKu>evWJ_vx}Y2teYYD?`BD}oyj8U zh!>YscU|oJc7Kuaj~AZ7w`wQWB`q~x`|?xlt)sL5nXK4&{pAJD1y`2YnXU?6`zmzv zuB+?nOxGmqzK*=S>)N(`rt6B=zK;F8>-xTbrW=}d-z1){y0SpoY}4emZ&HnS-#k}m zwq>#I+f41-H|8%k+qQY_+yA-6yKmq7XSQQzZtnTk-FKeZneV#1_Fd`b+gBdHi`o5H z_kHE%-S@st`@Y*!ok8yN4Mvp$hAlsHJ?oict_5s3$jf5a(4al%!9lx{LUlMcEvN|_e`u%a9|L*5H-`fk*Dav_anM58JXrJK2h6mb#40IqO+WH zkNYVws0eK+_O7#iv-#i7bMx1J*wih1BZL3ft%LWzt>9N+XE9*m)Y1IxD!{-I@P3!T zF9Y_~>3cu4eJ|zRe(3N~ox0ZxU+z+U?!dsM^FQV-({!7s=lecyv5tN?WBs4?_y3ij z_m}(PRL;UU&*4W}^rZK7+pUg%t^0BF^1W+)$7P4+Q~UW7948L4ns)4X$$sI_ zN9XuoHeycPQ3EdK!Sr}h8;oS*ySn0wuisZrl+;~BVQzJ9#-*Yy7BoerN( z58U}1_o4CLFW!dljq-m>=dwpMuyPz?wQ~3z$iQge#2h8B+`HiO#rdkL4IdK^a-NvS z;FG}0_TcN^`QLQo-`-8wKKEkSgFv?%f<7tXP6sZ^oD7s@beMAYe_Y6udBy?`d@&1N z@E%|iXkg`$m%k&!7_*Sc=inzt2F92Jyb^~*g&6p@Gzb|zWaV=ZZBt}SQG9WC4ts=? z#6L%thIL*2p~SWr{uPZ7<{i*Y6rL5QxniM|6{BdB zqF9#VcfkYF#~#XDnyae$h?T2B#Y%}MMCpQIkci(x2B8D0aSLTGJ!DwZpt9nj+?R%x zvW?2C5_x=N#8xC;Jt?QWR8c{#>BHP4EujNiadY(j7V$n>U^FkLLLtOGM@(oQ+mlWP zz841+w>^9o8KgNYN|MEat>&QE1_t&uj)FOf;z5pVEsX38jp7Rqn1nqxE&9LMylJt; zBxSRAj`AXoe0v_TU3jQ=!9h`lk(-4{MW8`;Mx6Yj#a5dZTk|MG*kW3;>Z8SWpOlq8&2T%mc%|VKApwV0UKXJa zrT*NWyr5Ncgj&!`X_|*~yorl~XBADJttSVIGkU3B=HG$=aYQnAsiAu|o<|!$vOjFVP ze}S1NUNS>X+4ew~+p?90%aWslm|fDC)-W<2aNyb}!=3Sn;ZJHp*`fo1jEok{FGAC} z;+ClkIi&T;r=L>G-L>F?p=u9jn%Sg9B4J4dd1(wKX)9Bkm<$>EBfEa^HoWegcO`J{ zRaFNO0SD0ubD5?#6lbNe@GM{XQB7GjEpnb}O;&7Tj2MH3vik*fuN&&V57gtYxm=&y zz?5>}PvT<@r^MoEQX&EjTm^FSaSH_;W&0UdH0(-f(#yE;_ZeHHkfNJY*{5g;nT%$k z1I>MNSS!@~pC)l-ENbD)xEL9vz>uCaGpe=d-q}P15L5}Go4KS}gW zi((h}f8arE#_O-LQ>g6xp^lZ z_3F*^wu!9gbGyEjk?}%fzuxl3S&JAZI8I4A&``FBp&*fA!Tft4C1&qh$$jZ15W3q&hC80a3E`?;G$QGn##HAZ%UU>o+ia} zM|MAJszk`5b)T|Uu6;FkpZW~H*XwPk8ZSLEX=!Ez$6V$R2ZoeGv+rqjm@%lfB(k;~ zygc(U9+EmYKCsyLcR;J z+v{Gh;d4-X;lTEVVb8SJqVuwMJz8QWm$6%GO<`2f+DofasNj~#*C(;M$6~yTW~~(;pijHt?zQS?wi`s+7c7W8hiBW`7CW;4q0xO zl!a|;e%xhb=V9WANqiQXCB8{pSv9vwP)^xW_llQp<1>{GHwL~V2f5!!D0?2*AM}>> z#T{t@20;wH<}TcJhqvdz{;anQ1-VzI-8*wE^RCw0LuGHS$LXB7rrpt( zb5bm8(mpwTq19KnzBzp?=Yde#>7W1CUjL-?oN0DSE~|-Bcba5wCdXa*2{{Yp=5l

UOpj6JIqNFD{;heB>ej40$#ACd-ebL&3??hD%4(~r zWV=M=pWT=DCM^H?wfF08hK2le%bTc|yXB6E0E0x#iX~lP)t4Gxf11tgq8qYm?bUzz z4Ay!~+6I4SMNPaUp***NPb9xt?){0s`ieU1|1*7PeRsRtZaFts43qEyrvJ-+w0&UC z*8kpgk74-&#&-Q1r!ps6HT^WY#4gYfzclC9x;K;E{=b}ZY{pc-f_9<#EVuQA?@Rr+ z@;f~-f0vM)#H>cuMuiT)L!3bmq%N(y>h-ZTYvc7&Lm_U4+1u8uwk~0No_W=44)Yzw zr+e?KxX4P}U%N8QVU^H4iOI5(^OLxZgJcgIh-&LACvN0bUbiw(oiSx4#|fpojxVKh zHma>!|E4j0y3r&tjSC*XKJw1LC1-r;x@N-`GegbQQ8h20dp-!SS=pjxZ+M#5K`)B& zx$VKwMF&+q8u(wVopZ}UEQXOsr;CxfLHu@}PO+T+ZzBWY27~E_{0=ID8yL767&$@? zNqtw`eT{)nph0N~BO6158jFL%gQQ?14b#&OigS#uJ~ynC{jAUY-@)Mbx(Dx~4f_p_ z=jlJZSR`}9Nbhx#B)@}@!d>YF46G8WL6`1k2^~;0U=lVs$UEg0uL+~eaXns#5@C@q z41e+&cpODl4uzGesw;0=xv|(tzgTnnm({g1w6`DIC-|Og#(SYSMcxR8#9594D;Dyx zFwKkF{C1Pc^NU-2ADh_R))wn|BPz$hB;sVc-LQqvfkU84s)<3O;Dy)p_Z-De2Zb0^ zrp@wif9PACqwZhoec5>JtopKhDJ@79mPZRy9Q`cs*hw=@X6DO~O(bZ_6$z2Bne_>P|Q7QNSZ^xn7Vd%mOZ{f^odG1)&X z`kVi=Pgs9!f;AgI+t0E+r!^FJ-k&kyv1y#IgJqJ(PoEDL;?&ru7W+;+eq@@k+w}cM zrq{R3+~zXFc<0RdKRpZrFV>x#c-v*RbqoJK76By|HeN-+M;(HBEc}JKYa(&SpGNxAn*z@hZyH9r+TSw3P9kOP3=Y#Y$>MZs1I>T80 z)SNo9HiT_Dzsn-!Uyd#;^@j5f{bsNIXMNy0%hByD2fJCED_htsu6VB5=^S(INc)ka z$GK+oREE0noLb+K!tZ_h@aa?jt}~6kg&q;{{$Qz@>w2d8$mxEmkiy+=DXS;EnBcHs zm)oB|^A&BkRk2=J&2oa@?IOSTg;+U3UeBiA<{ zxlzv=_fm9k|B)N{w&8RBHq5Z{IZ^A8vd81X-{(=Sx6Rq^9rwAv`N;kI>8sOOP3-<2 z*Prb1#`gN1Y5y*6w>>YP0xEOx1#N6s~~zVJ5_ zh@0+`a^#tP%k$GmUNn1ZZ+3Z;-&%V&{G_s*`Q19L*LH3ezTP_COaHexf2gZJW2Y_r zzeaYy&x`3BJ#KndSTQv0`DpF(B%kGj`F}^B|NM^stA6b3==FSWf7Vmt@8|6;-_!ZN zb07O|&+=veZbzS)U2A6uZ;42r@PF@@8qWvyjvD`*9m-PnvpIM$8B9oUgq)Bn;GopT zujn>q$A$@qjD=YJuI!kY3_c;%a>|!=E3K9>u3r<&^JfkrAct5vZo6Stv38^!S)6dU$Y!|bgRg!smdEoM} zy|YTQudh!$KFt<-Lh7}>v&-}E?{8!mx0_Q@`1trl_3(XjDvO_=U+6yn?g{sU!8MhiOHBiO|CjB(@{Pl?rp~_F&hgXpkI%2~-~YSz-+#t8TFk51 z-e~Ndu}*8l0yl}A36A}IJsyrNuQ)UhE!xEV^3WtT9ZhG3HA)%13pGAoaAFW>S#h{c z<(I)iUiG5?h6f}wMSR@)<_Yk!?$~#GW&4sMos8p~{&=qvW~kHYXp)*~vi^Agi5bp| z6oRc@oNQUtqOot%iWH4WE$hB$oNnJ1qH$*7DW4b2i`!HtFEkXlDqd{1@t2W?mAIGi znbxi+9_Ks798Ywraq5OFR8ZPgsO-`oG)2?xZd1sLuWme^K?^iYS6ph!aySvV-sta2 ze`inKt*ezcatSGh^h#X~>5RFm9k%pM&DCqs*Q*j0EFD(~g}1&^UU5W4@scP*+~rxJ zD;?@{r|ss6GT@3@dCev(YI_au>sxzPP4$jUKbRVHb;U8!S3wI;)oR5q-PD^Md*hz$ zi`xY+O{cUc3r=3MzItNmsx|l5eCf@;*Y{)X^#{%8wGXYV*qSs$G3<1a#FED5pdAaM z1kYJmNZK9kOkSUI<7M*hUvGD;m{@;EMMKh?NApRG&%CZji*>Hucs9FvSEl(?#t5TT z_Pmd7KA+H`>zO{M#qLz+(wTBoR*Hybh(BLhIeX^fnMv}~(; zk$t*hS=8IDH}h`4-TtsI`rXc#>u$f>{qbD%`@KKk-Ok_5{4cs-6*Cj~_!bky@hwFd z$G3d>^6t^2yVlmGA3nT-pWX8A-3!RsElJ6-+jnfbd-r-+c;KSNbMD{2dF9GETRV%= z(){!1PipI^?cBL})26kTFQ4u2@AU9=Ubbw3gQJy}w(8BBmp5!&eFl8yN=r+fp^?tp zx6g0izVh(l9X)-`!-x0IpFeZK!dbibY+br^en_ZaRaI$nN^D|MY*tpv+<7ws0=%C* zxu>hAk&qbU>*wL>YX9unLr*W4wrkg>PMhHDV!vnaw%4zpY~8v(DmwJksiQMyOkTNi zacy12zI{6$KfY&XZs_Ol+1=fG^w@!h#_EE??CaMrIyl-?R2ExW8PA?Q)!xDK#EHZ8 z^;KHhYLln*IXc-MJ-UDW`jrO{?LL0|P(niVwrv}{yj&|QOIEL5W^Q4Wos(8pUbtrM zG96v@rskUED;DPFWyHos+_`hr!qTX;tROujDJM7G$=R;DrflZSDHkrBI(hO)W>#`U zWKeTU?SzTlZEX#aQNjKJUbk*t4i53PvN3)6^6{Lx)7?Fs?CdQUE}C6lQ4|#HTUeA` zQ(JCqqL-SM(An8sU0rtIz)l}u_xSjznAq@)%;fftrqyefzkc(yxFk0)$mid`wz|5? zl`EIDt!s;mk92c)%*)Tr&(HGqakH^C503~;OHYiB2`?n>mC9hSgPPcVxN6M>$7@ z{`%GIlNxQ|>C)8VZSCh-zogDK$al$o-SU}b4sOQp-`BZ^xx~g*wYt#L^L%%2dwY9F@#}kMcW-}x z|3GCH8{d;BA7+SXi1DA>v-9)w3)ZUyjjDfndQaHse*fIw-Q~|+Gur?E_uIGU=jRuf z&0E&aQ&v3i_VMZY{{R0p{&MMmaR2=N{r{VO1wOgum|-~SP5^V+lm-5*ayNpK3|T8K zHvJFHc-VSJwtZn+f@8d2y%cbzoWm8|hTDfH#FPpZZj9k;V$B5yq}=Y_r5 zwsm9rb>V=@Xwj8+6K_x1Y1erA?XEX!Et>1!9@Bo`^#HAp_@zq!m`x=lv^RE(EyW zy?>eMqqWdgh6vrS*JA3+<^AHzb-&$6nV$RYrmX10o7b<-Tk_2zXR+@0J0;h1zu&ER zzV`dQn(zPLe!t(quJ_|Xi+J9ThaKwcemv?ifA{0@1b4lkPo{+D{e1e{bBVHJ{ii)s zp3i9CS8?WUr}nRxE1suRy;}3w^H&*|7Z7U|NnnYZoe1GKKS_k{#km_oxcwq6V4a>P|v|~`McAh#?bw#V~1OuLk=CVGh0ED~Anaa8M>YFF5q zq`C913*G;Cv^%OM>3Z7iJG^uM|;U7t+^@^ zPA)r72Gy-hVs~7s8NSm#Y}Y3zS)Y>(i9)BBT`5x7UX%J-;G{@g*^J8a#>~aNgu7&4Kpu<1aU6*Jew8udDe|HY2|S%&gNBpp8bGlxy5nMb49a0&w1gq z-0J$tb7i|e&;8J|+-9Q6#LkqBo&E>YmAOCv_jvv#*w4FqvfW&v3zeIm%rAI!#^K_! zfaYzN7FsrG_;;-oYWbI^u&9W~wKQ34YQw|=`KMkU;jEJ8UaZ}QKh=K+yqeIeSF9-Q zdeYlBO2~wZUD>2}vDcXn!9=moOVu~7^l12{HQ~vYa8<>ufQG7&`DaSh%tEt5U4k8^ zn~0ju&$;Rt@oM7gSu7JmFDi%5JAV8}!&K$Sw>=S;W(ln4%3l3%;|r%NPuHD1QWEbi zIpOMyS#mp%bY#2zo$%d`(4l6olaiOZ>DMP z-|ACPYCY|tmCANoFCFIz(Q?nUa$HxLEGu??bnX5Nzg6)MmpQcjl6sLL&Tyx;uP9b1 z?)H@LTK8@BBhQ%MoBt$eqgvH^AHIks-`ZFLF8iF&2@Sq6^~83Y|E-+0--RADYq9K( zbu{q(wOX9b*ySL{LsbLgM+q%1;+a2PeOvXp=Dc@|P?OH%SRgiQD*xn`CWaa7tO9r6 zm^x>w+P9}1;?L6`Em^nmX!<0tg%gzG;d=kCt5ExU6yW%ipB1%=Q%}{mO-zXS+Uy%v`ZO#CD}#$_%Y3n#WsKZ>sy? z$NuPA64&KxQkACeb~V>y+FMsKXnd`TGKqSv-Cs@K-#NPBUhLuTo!772nEs_&LC36P z1*_19X*^QOtkcgN6s?O|tujZGx%|Xo$xR=Y``pp+-dz#%aJ9hWZED*%KJEx~*(abp zd)aoe|BjXgp-G>*S|(YUWbX9#@DrWN-SW)&;Le&au>$i}yFXjH)4;W5U-CQwTUCef z^B13%-koL=YxJ`9%$~*jL=)9pUL85Kt6Xel>9mMg)9qh=IvlB+&9pn^z+1)Nj%WOI zwyLx2UzWykOLy_RxgIAf4#aWXQ=R;M>J?eF+IG{%u)PyGrBy!c<~w!2bkmQ?r71AN|Uj>B`m1{U>T4{@Gxh zC3R!->2G&Dt=?@{dinqBzt6ru|0d7i`SVEn|Bn;$C#FsApYqiB|IZ8k`@Ssq|NAQX z|F0Y8_kG)b{_nf$|GytRm-=si*#FjTZ?R}giD*l!Xv>)4d_qC!{Dd}vqg)CbTkGa)PHdM=Y?l-e+uI;ia6<4# zg6JIv2JH<37Y*9ei?t$m_n4oB3cj%S0~ShusVc zJ=2N$oGfBE zg?Hg(5yf^}NkgBT0=qN>nj8cIR|=dhm>Ryb-#%~(m*Zr`g;S(9`kb~9*pncbtSOMH zDfIHjl;T5E*#f7=Je;b)I8El^gcTi~i!B7!O%PnQV>&-$_i_#fzLV23gr@LroW{>M z-KUY;?dC+?i@ef}(`6KAwnVD=pA^hHDRiVlP~xX(&jTKTi9OPav&0HJ>?3Bbm^o|J z&RJ_X{UsO7SSvYuljZC!k+Zi|&fYO|_O6|?_uQPl@8|3THp;6J}aVx%K>9JdvfxDQbyZmQ-m)yIkT7ql+^o z9xitGGH2%$>gW{NB(OAM*3uxui3*If0|h5U-7*b0C9=6eV70(9%KYaI&ZwP&qLIthk1SQ$xV%QoQO8oihf7fVr$AQM1a-ybBL5wiH+EUs zYYMb>2_5^eqG9n|uE43mmI85J0{a`LMpg>#-7r&HQ($V9!1V`9rbSsKb1}@_wd%>_ z6)XprZ1NJwJteSyl~C#_!6OW-jhk0WUR=;1D1buQuVY3u%OTKBHY z;)B%sHskfKfeXIuQoF&qhGXKwpIT;bJ?FDMT>t-+>9?p24aFNcUYqlrs^gY6{d`jB zTczNSpBrK~&)0c4pMhb4n6x3M(*jv*d#>(3YPiU}+RE%U((x_TTRdiO@!Gw`=k^xA-&+E-g>0p^9v5B`a@)$~ zmbB7Kq3G(ZNt@O<9b7McackUZ5zkculd}Y?B196p1dc`t9Qm-#^rb)%x8T}a+r%6v zZL<f(s>70x+**@-Ib)2>4#7;3shOHGlwH_{)o4DF0aJxX`_MU8^O|OOKc+bjmV32X# zCS$mBRrk!$#wn~5C+vrAi9#vP|6%!+B<|CN!TKLE*0qr@H84C86 zXiFN$9B=9ItBg6(ai{gd|5+Hvx73`RG3VqJ^K}x5>tX_{X3dea=N4WdbLzR_sefsw z{F_dxCbpbhcFOP2DMd#8Z)~T%Hmz4O+$^$ib8@)AwdB)ILL0;c85kKDj`A=(syrhn zXm`LzWm8VV*&3DeIt~|g&N@8YARBnhKxZ|ymIzHy`W!i_TB-c{@j zKfKQU`M8nk;yK?$hj(w3FRwYRXn5|cjEpAtLLn~`_Qs^&G0KLs7qqGu?2QqSF}W~5 zP0IAd1@lRpB@S*D_#58$(TqvZTom*8mcJ`gf3J>po28QE%xK8jryduYVRm<@z z|3&T-1t<6gw@Wu3V4m1lyIb(ihwU1U$EUqHCOPpK*TJjI3$Jk;yk>XspqSzwwTIU- zbOruY&(H|mY2J3ldD6~V*}FI%?&M(H#X9kNON7AE(}F9bPaf*N$}r(Fi{edL$D7=O zH+?7WQAxZhQ#fsw!3n8@R|GB|+0T8QEAX=X!JE!+1y`LFn()^FK+nX+e`*uYgQvuU*wDkIdWJiH8@}3JB(1vWXSi=_@F@PbjSS zft$>6wu5_=H$LPod}w~~$kMd}0WoJK`9!qiME~^))XtHP&N;18CwOVcrJTLTL<1lH z*A-yb6V}fYDEljD`R}pv!W)-r1z7e88pa9k-S8w~;Z?0UV#4#DgsoFMS^G39uGOvY za`eBa33AVp?4G5>Jxi;5mND;H*1l&s_nzhbdsZO#yogWalg;zUCgU49&#UhF>Fs`= z-_%l@w**u|j^G@on6LvcLSiA6b`N7v) z6(3BEdHs3O6|dJ1c+cOkBQ)=to)^!NwE~Cc zP1IfZhUwtcM{$Dp`;O=C5qduF#+2$#u7}s}G%q?dS8Crmp|AU1>oQ*bUEA{^PhijO z8~@%3F#PY@7_qPK?!qG$PuL#b6q$HWq3}JQ;+{3JtGEt+*s1$bjPWCH<45jzp;>1I zdE`Y-tPpB>dxUA@`)w;fi1i5Ey(h4vRw$P5k=*}_pM3eY>Hilfi~X$P_}NxZz+7I$ zUSDXp?1!JL1yydo-w?Itzy<-uexap$0(V~T)$pI9uK4-hJ;C7muWE&tb^8@B{+;c6 zUfADWm@i)_HC`zFzd*9Q=!3UMnmYw@^_MXFh-T*tuABEwx$!$o;dhmV2dmx-T|3v- zP`}w<|6aZQdv?KZVvRq<3xE6x{L&foUDM`W`Q4BDifdl)`)f?8x#OVwl?y(p?7JK-Ik8#FYjTvsI-tq=MF?Rf=b6#N6|8oLCy;pDKuTi-8 zm%DK9!+L>R{{>(2Gd#B!?&uXflP~yDe(kaK!qqYV8WL#S6JKt??)K_fBx7^!X`=6NOThcAqkdAM8IrRqk_?9zvpWog; zK0p3{-M_zo|Fau7FtUeu@G5e+7&x-7)J}3_mv1p};#6M(KEB1^@b4`bHaPR!vlzMv zf{$Td?{&sJtf#MEG%fTujTVC ztESJqXTv#r(+)-l#tUQE zCb2E_QM@J6;ODx?O*oO^$Cf1#DygQ={-2I6$>%*Jwmes!t5LG; z+}mxjT5D}JVy2&B?YucNXzj_k^6#z_Z*)A-Jt5J^F4uW)$&{z&4;9u|a@?yoPqI*I zcJ2yJ?2az2P;7{t^+Ux&`O#E`I47>k1rwt`eNCF`f2U$;UvSX&%fW`KCqyUNZQZ#j z$dc9J?$r8k0@K@{A6+RuIn9nUbHQ}64Pg_T8ncyp{+FnBzUsC5)seY&`?Foy>-V!+ z=WIN#wmWC@c{l6at=H3b=Wf5>W}Ub5`Lf-4yWbzP&foj}+3x)P|JiH`4zjE7DLBmU zZu9Zok>EXr$K~5=tiLOPk8e3{Q+(F^IhBrY`Ss|pFK7Jg?epI}?bUi__h<2&kPe9z zt)JwSY7alUoYi+^y6o?^;Got8J^WtwO0K>|(-fETznbr7$7au@r&7R_GU}Ua|6d;3Qlqw$+bM`~A~Ta}xJhAxQ_wQU>nG1EtY`=g z@R~6pSyd%c^I|wdq{iOgqNy=Ygm`zCaqN`WT9WEEQ_;I+$Al8ylul=n`+}88YgOb@ zY7I9&@LtE^dfU@b^@!FZhnR>7TAx@FV@l$VI6XQ#YWgArUbdp`z zeh9G7%TcbaImz{Whn3l)elOO3^;|z$HrWxH)x{n@oeRU7EK2NUC1xPVcyHm!|J$Ni%4* z^hpxCJma`an$gsqK51r`XP$3KGg)fsn-%u|@~rDe(#*E*^vx@~Jo~;)Os&Hq#e!*< z=R9{wx9Uw&DBUKk!dtZ5DpbI~>e}Ub`ijqOzwY#}`*wN$f0hgfR;z#}u`3JMT{E0S zcLlVWU0KNAn&F~q71$MaWs&&N47aV57|pY$%$WD(g^{~N(4=WsmZ+P?xN{!znzHT6 z(s|M^FU0-Y6M5#!oWw1eexKp*b!{$dFT)e7@LlIZ z*A`c0$K8~=zUx~kL;2Lnai33x@4qCvAy?>4G-q_gPPu8m|2s=xCrQ4JXiLepE{O19 z;Mfp(F3*g`lEaaK?-4WWnFGvL6CGGXq8pjdKH=idX!MrIjyScfooVLVoODHo2Fs3V z3h4|-7+S0wIL zk>$}0v+XPb{0iT!1cW)t8T|^HB&0U9&W&i;skZX~gW7=!ni30nuIZPzjF_<{xpi6@8Z&lbe*vYBM7bnGODWlLzx zo=9ni1A?B~J*;!1XcA`=52IRPTgN6tqjWWc1J^3p4)CxYU}$@i$iQoH zgw^Un17pNO1sRD3p%n^Ej0y(?`!pO_El-WWfn$$MT6Q4H(3D zo^UchFkIs4a85WNfnlD3$A11p?_5P(n3)e8an#Vc+a<5^!dd^T~@wi)771&Y~Yj*4Hv{X>=@8Rrt3`&u4|V2xam)+}7a}kIv;Dy3$+VpJ(q}<|B^Q`49%hI!5K!T1D4a0Q#!=;9!P(cd z6dWWPcxNQAeLCF8enhsmRW#{Wvr0YlX?~02>u{?yE|U)KGY1+Ow(L;m;E-rwKd}GgrTr5cme0%( zNEGJ2&>4P+ffQTbQgUKD^ zgB&mHS~~Xp=QU_FD{&TXX!@eO`?55LlnzJ03nv*F23Z*nxi5|k8aowaIIc=}bLn(m zE9Q3k!p$^!yYvPph6~1a&ifb@n0{p2ExCPwkLR#}%)vLwHt)1M0&nbT+Q59In?oYT zUQ(sw$?79b33fjpJ2QMZEU%;E*utG2-Q%Rusm#FTV#4`(5;H?X%jZwJsweieNZ2qN zbnqIu`uuU?7db3w(<&*`z;6ILOCrXE!!lu4M+ejK*@v4wj-}?fUGF{`$#P`p=A&H| zmZHYo_nkY+o^Zy`;jH|#b@B%H&s;X<3T`UV2I?vtRts2~W|$;Ma|CKw$$fC*V>!(K z#KmZdUQrUu>d7ttnsF&%Ort<^ZN?7H1kStf{qTUhqYa z!GgI=dY$=?!;LeTMLkTNy1g=LJUk|Ed3cLqjuW$H2E#+C)}|YbVmG$1{b;&r&7mjJ zsCr{Fqkt(x1GAXSx}z!`|IfZT6MFmbv@fSi*6ckXBhb2qGg7IOp@W4%pwaTMS@Q!% zDGuhRHXZg07&#NpwKi;#=WdRW=5#D*mh@T7(AF66qpzAc+LLd zw>{(h?oB!iUz}U>;{4M$Jq#xrMHig^wWjlTPWPV@fAvP49lJPLQn^`U1Jp7veBH!p z{ow#h=yA^0NnCS%&P@p5^A+Nsx+Y5GqPpV6^Bfn2Q!k2@UKDS=C^7Y-q-o#ZC7hF5 zIPY%el5ORdTY8bx(s1U7z{NlGnj{_CdPO`8StqZ!B-h+& z7R({DwnL+pLr=FuJCs9OmBXNy!}uu2f5WLkuN7Jp_VVbz?J~Q{X&xJ_+j#l-j>}f8 zeKUXe*ramVv2rfhc1JJ)0}{-^9@30+|UaXy%Z)pA-wnM z>=~i+R$QGfaAnSq(6$998wEmRW%*rgI+Nydn#y)0uyUr|z1XrKELD}yaqpGM9$`%i zEmI1vO|NKbY}nQ`A#CE0Yjba0b4~3i@#Qc&8g^GAY-)fhL&c?;64!fYTz6CDQ0ob6 zJrO=@#m)}`;ge3xD(wyDkc?Qg-lySRy8U@?`7>N^PAk1Rz4hjdwS0z0BW7;BIs53%IahDaeR^}=*PHWM zZ!HkLwUAf4;x6anw-NI^ZW+3AELN3WewK5E>aCTjeYI0LSLbrA5tUsl8n)_d)a!to z|CGBo*mB4`joPCaJ;UR6qeXPdq0sG9Z=7~Cn=|8ft44Sm!+}{lOobe*Ca<{p>Sy!| z!<#J?(Y2w=4(i^X;1Dxi<4$$do%O9TjGWgmIy%hza6NU^o#`iH=AMYYx$(xF9WiOY zVx~*PzStQyFXHUX4W6wYu}>{ym+uN+QgP=*=)_}xx%ncZuWr0MrFs7UtD;>?MLFl# zbQ}udc(63KF7xgJk2tetj{7$Ep10n65i7iMFXyYHT(50q-z?>PJN4eXulL@w-v1za z|D)>tPp0=jyWam2djD(c{cn4P-c9BFk<0b7l~ej`Jy-kB!NA-HeZ&Ao|7pK{8Gamu=N-dNjVSP?s6 zMxwwzp-Hk`%G-p##2i04l}Al((pg&#Ejb6xy3TXGoZ4+%LU9~AazYw08tieLMrPdq zjmtO<(l|}0O;l3TF!vKMn+mTAb_UEcBG@kEZ4i6@dJKi;*v z*D<3ybW%b1#0L%TWp*v0lWg6dOv`xUI{2o(8); z4GDW1n)Wp8T>yXU(}-zLBbPmm+V(X1*wdJ6Ph+1wjr;aAp6ywJ*t0~nXR%@{lH8u9 zggr}5dzM!AEWPbn#Go&ST}I6LLIy7*=vd35mJu4g^dp33}5>-(45KP`1aownMBT}%ZG><-Nt zb$aF*0hg;^%$W8vb=~uAQq7D3>$CU0oYR*&@!7Mvd};H)1uVF>df}Z0nFVQF*%$t4 zHP0-2wVdtQi~|W%X1rRs;?+jMHO`Y6bFRIL6wAtemzD7E6&vsCJzmX>7R}jVSu4_B zZ&Q0Vi;qEKvSIYUX2}JN@*X;UNvkzyG7VXUNbz%-hWP8WAY|8-Z$G%H3&U;bMD!jgWIzA)U7_OW_+g4@L<_$oyP~=PHc+o z%Q@1f!#|^ueF5`{a}3&tH(m3~{jb-&M!)*awyL+6{B#b9@2jWN zvX))cmUh^4@t*VcPtMz&wmy8tXn8{WcUOaOg4@HS27``wFY8vn5nK1ROgpUD^kLK1 z?NKeB(t0c#m~<<&-?P1UP|n|WYK!mdEk`Ehxu4M1esGpi;~j&;d&YqG+mhagGcz)n zzyGTDK_%hCtGv~((^j*Uzh|#sZRyeIySv#wW3|6_fpLa*khC6;fX){&lUI4B?B`dr z#D93atT5*pkNvl#eJ59EZ8m-7$ME{y!EHeXEE||z53nc*FbcoOd!)p~a-%_aMgvDh zi|qDo`^#1<>VH!9FXH@eG2!Z zgO3We%U4U@XtFu~Sxi7rPT&)hLXon2k?Q&ndi<6K*H>Ge*A|xO=}>s!5{bR+EKvF(EIpPzx9{x zhl(8Uf0DZXH8YJz+>JZFeELBt1_gs0?sRP)eukItnzyfNQgvrw{?W4SQj?}YSyH`r zYI+%GdgHdL-ApsSnDejQ=G7oK!+!gw_38a(+h&z*dt|l!mzB>2Z3c-le$}QA#o9UL ztJBth$W33J_y608S>KODS;$_{Ug%b~?Qz+TY;8FWE2$IT|NER+z12@=#<|rCHox3* z`+LjxZ`JY*spr4PvR7vKaVhAv~3uR<_)q z%m%L+XZ$?EWWrjYeKR{C&F96oRX=B+Uwy7x`@-dhJ*R$h9kr>;*PhwFW+&ckiWYi3{2X%oz@f>o^#*ls~W9uGJ{@pjm821Luwt z8V2QV)-~Ih>^~~o8yna^I<@-9`U{d84IB;4+mmXJzyEb2fAxChAKRU3Pe@h#-^c!m zeMP~|bnRQytG9f+u;u#dt@+yDFMnxxU3+qU?Y64F2lxMe5uSFv;n9J@)vP%VcbAvk zOV?(W)Z>z1oE}%ioDuNm`{zBM>K-!Hf1Lj1?*8JU{O#U5TCVJAIHz8}H|ijhe9LyD z|7=ei6&W~K%$WpqR=AyLXc2MSq3LnqKm!Y(B2UEw0|yQ+){2-n8fguEeT)iTIvy7v z9qtg;7V9xkn0%s7oXw{r^1@*T9$9Oig2Ihw8}wN{*SUCpNI1mEEqyEJ)fdexh~ry) z84KQmj&IqJbbOMn$2Xl@>(ef8%9Xx0>GqC<>!;Rcf7iRWr|SEsx39nJKR8e!`~Tb> zfypa8r}1?&yu75KII~ZT&7~k}hi3Be39?FR6`LN2vhn^3(d&C)4H7+hjljxs2pv6$m4dFqGU)X=C()oCvnR~-7^ z5L@+Abw*;BrP|EYQ=t=Nm>rTPi!h5k65!*DYdOH68WXa}H*=k)=-e_ZcV$O+o(Zka zsyv2DjumB7)VTd$zMLY=Y;r1nu7BB!3yb{~)q`f|i-{}`v~^R@kP2`$WDs(Fc4Z<9 zvqV8)x8^_2)Zp5*O6_$!U;UalbMLQT+8YjXS?g@97G+ThRyrCbAjv5y+APNR)4+jW zWRsZiCNoEE-L2AH&mT*9T3vB+S~)Rdp@-rg!v-F4U%_VQo439=Fp3;ln7f75H+t>T z$AaqXgJ+j*(Q!Qc>BPeQtRFwjVB#|@T;RO6YeK${TiKIK%B-E24!HgOC2?Teud?0R zCsk+H6#aMKn|1O2siU8+ZaQsv+Q#^7gJ8%J1{IUiV+_1I7+8g-zeu~nWLvYrLxkZ7 zXT#P#Pw#|)PNUwky@5^PgzEa(faBu42@M$xU7JoFU~pO^$j+c6^1!9i-~6kog!~EH z?Fy`}y<09Z8@w$nv3Sih^?>-tH^vv7l{J=)eUh?z(9V zEYAfW9k3MW5OF#ANLb-eJ2P`cpy^tcyS7{JX@HJz3B6Wh4LQDrSx9Bk1mBwzMELlB zyf`7`$!oxJ+xIw2P4Efr^M70y35B@tB36AzZM_D{B%-NqgqD`w{nCNqfioC(}Bj?Q^8Hn&n7Hr zF=*hw>U`t)gXsc4udZvB`|}{AO8t=Fqzx@q14Ii-(z|S`xX!e=+l_Y-n1e zbFp3FkCMdUibIBzHuj|1BsVZkXuE$QulE4w?_-&ESK7T%=Xj9{<=TO z5lj=BbuZ;jsBGy{Gwrm5@x*QhE7Yo3n0v}syRqpDu<%G0r*F4=DTqiWEsd1mj|O*4+! zs2P=7o=G*@JhR?M&1A9W*~~{5XI|T*X6EW~Hn(W=?0b7c%?@jxE9CQLcxIz+b$R8v z(oLJ^zN=BUd8~Q9^3vvc-}b26eO`IK7Ib{eA9V+2tqYApCG(!xXgCSqTH0i^Wg%a! zhKsV+#m=BDi^TS>a28#4vA0OXK;o~4hqKlt(D5y5wwf;1t1eC5G(}gVR?{b0>+;M? zTb7yGrh6B!x;*FJmgRPTH3OQpLgv5QvcfHN1%u3t32Ys0i@e@O20xc%l}b6==ohLL zEUj>1W!Ti(XEj-27gyTIFevbwEMWZ4;{TaLO%D$*QW}qhez3*sZ z(Z||f7vv@S&8I%~?NVYgXxt+-z1H&H#%h1=`*PavkK3@lsO67Ik(Hmhc_D{Gw~x$4 ze({Kt&UqV{d;f&$2&kOm5NmF;Jd?n$&T=Ho?`}NQbZBDzQpu z6gshw<#;yiNj#SSsHfaJ&C=4#y6bHOaiMf1TUPI8kg%gQjkZw|~`D#sU*7 z-d=|DU5+=loZHO&GsiE0zv22$y?j=a1&j_hyBXWoaVoXkef7U38S3{Y+-g#3;P4eY(B^2+Vk45m>eNxmkoGTQuKkJU&rNb! zJpv~{{6&Pt9=#c4Wf7C&As;n;My$@u?V1BkZ`yB$h?w$Gl*H5|OY_k+xP3#ZsVaW|Qerzti^PBRxjmRs|Hr9J3h zcCH-5oY|94XWej?viK_9^}8s^FbXKl z$6&1U2QZlAbj-`R+iumt>`QLNruvs*5bR`H0 zv~awLXP6WJYi<1Rmr@K|3XJz;w?4RkOqMacz~xdwtKg5=AFT7Z*&Z;kIWT?_R}^p& z@%hidqjHe*zyV7~hH#TZuPa%(YC>5GTxBKX4@tT)*f2>mG`O^M-`|@cz^BNyD&hau z1ole`{h1C7YYqh0P8BO!D9*+pF>CVg3ML*FN3OhsVk{1dA8v@rIwkUb_P{{0<^%U>Ehug>A;Vpzz~_({a!(~fwCjDw6@IJdht=&&*9+C}TVOVWQe zOa6x&OUr@GkK$rK+?*^LTm&9l=1LfFB`*|AW_+=byJ2>Eq0ZD zRo~0@Swy-#bpORV-C2}*RyoySG4q_sA`Xw4G|mg@#J!k# z^9XN48E-gaj3dJVhf>GKoJNa{g;cC|KHj6N{CiIFI#ESGo|`UVPh8m?+_)Nk2k`Nn zNOqdzubOvJUgnlSgad-y{mzm6*oIhWtGJIGXzHyn?NF>5j>i$kZc z_|#U3Ks6VaqU*ve2N+*OI-PO6^fNY_??Cpf$qDn~f)doq4Sjj`EM$0-maoNMkay5> z=lNs~M}{*;7`8YvFfhGkZBW(dXAL~)Cl|BMQ|-4&S1Q-iTrrtEDb;?*<@tOEO1PGP z5_$f4ZR)!ZjWauz*8K~rT+1iAWSME{5pqKxiS|7UBdTH{luZstoVXaLnG0v z{Zqv??k|#DISs-pjXWm~s5huvdltq0NBppU7C&2YD-Bc1_|xlX*UCQ zr7z4{WLfIKaE0-Ag(HIqBfnpEGS`7sYT2vj{a>}YNZiwE`Ho4eKh4nIbt{oiD>7B#y&`UTh{6+McLK&VyAwRIC5|Gkwt48&xu|C^ya3oZnS%cH~J;)T{4UQ@=njdd9oA8{VBPx;A^m+lg0w`8D`UOx1o{ILQ3Db)I$Z*M;Uf_K$8@=f36i8kE7spk5oZ>`<5 zwVfB&y$xFZe4g;0o&!^THJ@3%nL4TOQ^v}V_tqw*<$pYs_kl0`CGXAOYFVXX?;ifk zK2W!Ot{O|(y#ojN#J_0C&f2KIFl`;fm;67gR^Gk0=;$x@hmFP7PlbhR4#Tx)S=_?YCjDqE-dDiT z^8dq)A~jRH=$Nwwtm~Hv2pe9NTKU87Hb?Vp&dUZ{kELm>$#U%D9ar0p4`;9-87m(#o@hLZam)s z)x|T_XHVCNE=*p>_eafz^PK_r;c(`Ni+xk0lA?+j5;jfQxRCXQM)T57RckjXy*AR% zm$~`r@#f5;paLW9`I9*u9v6ILa4x!*$97PCx-!fBCyFXZWpz>wXHPab9j>wYw&r0m z34xYu6;=g-|BaS~o6VbzAD-H{U+rD_y8{b(n{s7iD|=rQ%nH^umekXJW}0ri#Zt#c z{fPPMC&u=xW-d@oa46yQG^q>tQtM(A8S$ll3y*SugIjm2+hL`Td+$xne5fRFh;_<= zt7dAv297d27-H^lGxQYkJ7+Aub71P$FW$#X7|xV9b2o6^@Z?o!2coiHL*j3=Ab78J|oni4zLoSLm{B6=7|vQzvPdC0m!tp48JMc%@NV}_I7V~&dQ85$ezS{^j7T5XzK#x+N8XcBIzSv{-z^zG~%3r8Qu zpQ=YVmQ;K?`Z4o*v26ZD;XD839G^J8+jyS6fWEN$ab#dQSd*ojs^cIo@g-(2qe=z?XN9!w#GNy-DHt)w^5V~##u_$?H)bE-Ic4wUh0Yc;T^nX?ww$TjBBIkE zAQ0owD9x#JK$zvmdDUMGcPtk_zqR=Ej-|=F3?7v(udiBs__COy17kv?z@HcMv-=ka zS0$W{Ufujl>3HxA@or6)-E~|CCf_ZJbGovT{gbb*^%DCjo7I1>HxJoT9^rEI*Jl6S z0fN@s%YQo=GOY04?cDe~xYf#cqV;BHkzMKkcW>jrva5TybE5U0?bd-`UDFs(>^<$X z@AvV2yM6XoSLM-u8<7-YfpLSM|kIJ1^{)zvh-& z>!dhMtf2O4``#PTt4jL!-kfiH>;BP`yeDp5_qok};`V%{8`Ce{ULA6Gx$V8@d+)us zz5l(ocjKMu4Ev(*>}}xq7cWp3F0n6O;os>OtdG~nxRf8=aNNhE|Nqg)%ngq=x4Ojd z3lG_MzrOB5^}dJ(9kaywy1CoyC)hE}*k`=Z?!|t)GxHzGowS>A;a~Iz_Sf@U-|~CB zn;-bT|LD7N&kv7T+0WR%k>9Vma_O_vt)DiZX)yV3P`EGLVgJdkM}=EjU+kColyCpN zeE;`)`ya-&OWOX2U)lS5{?Q+k_x~#2f0E7ZH#5iaG9BYmhxk49@fY^bIP$;t!T(?1 z|6kax=fEIf0Y1KkRm^e6ghc0denqzsiHS+B-QtFNZzc#nbm`+YuM@HSl;kl)AbXNO|hJu<~!TGP$^{MWrdn5XZL|pFA`d_wg-)#R6w-%eG&*x1IGL+rNMx1&@zU^ylLMAI-rJIhwYis?oWeXN9o?~lgarf@^4VlZ z@^aPER*Q{`2ng_YaJ1RIXX~1^%N{?zclq+!!-x0n-o4e#+|bj@rLwYQ!NOS^H?4X0 z>|s=Nh@ZcwxrLE|p^m+SrGbI=(WCp9E}h@e*)(BdcWz#WuAW9kWpQm?MS4b(e}Gq0 zb4_nw$Ej0Cb8^!Y5~8!SQws{Ro<6;Q^5l^-XO2C8{^;PL-FxavW?WJ4p}pkUva*zoo1SGKh`9yqYGuqfNx z$IaM8FEcB7^_t~(?p*EeX?yVC*1?0jeEmG?>#H1{Y_)Zi%gPHQqk`+|DvOG9Y;4V4 z-5k==6KBkreCY6=p5FFp(Ds)-<};GAD@`49S=F0W3l&qzrDM@zP_%Vl%QUcFqtpiS%5iY3#sUaefQY}Kn(Yqq_5 zwR*#`|5~rtY`K>8dhL#9t6s0$^X=8^^#|Cr-)uM{mi=bq3ANR4Hk~nh{but8H|@7u zu7qX3-FhQ!_1kTC%3iIvfu4|v269bU2nF%ez*I>G41y$B4@JS@BQ&? z_4|E)zP*0GpMhQH!vPlYoDT;%)Yp7C#AE*E!(jn;osUOE!gD?zl}KOn@t92cn~%p8 z+I2piP??_d>7>T;HJ?uDY=86Vw83$m&u2`o=X^eE@qEqab2i`Kd_M2MuKVSJi+Jvr ziyrE0zg+S$fBWTffV=M3DzU#~`_ul;&0ru^;K>j~|!qd78`ul;r_XM3y>BiqFy zA;yyHvDenFzC!$uF3Qmy@uC$-M{~?bU-$Fbobq=+pD$?F`}JbU^t@j$S1e!m z>(!d=?|!}Ba9r>An=RM#e!t!EeBJMNd%nN>{r&*E{+|y=#Pk1rJfXh+&!;oy@Be(h z;I9Ao%a!o_zh7^pumAh)PWk)4-@^~`+Rb~^pa1XY3*lcCzus(r|L^yQ;M1z^Zot*{|r0}7}z}yFiCxA;P6?%B!1!mo7IO#fu02{>K+HVqCPZ9oLRtT ze&Qfs)rV#Uo`oFl9*2Zx!H(uQB)01Vwxcn#;%Ani^R5b=xP>y^bP;BNFrP0nBl%t-Dy6HrLLbiX142NZ$Zyu zndctIt!{nnt2nb*?)!=3cE3LMH}EV`VD~)XB=u=RhtCov@slUqtUgVg(6dBE-SebZ z)Tc=^&MZ+gKY7xx>eJ)}JWDm)Jx>McwR9|Ba`LWKlUIw*#;Kx?i(SJcCmY=hoW`?h zsb;yPUhJn$1|ffz8nk+1$0?m>(u&xopF46+XA$UVj?GOMdc4fmpCoWJ z$8*o~RkuFR`*CKu-S?CK&)5C>JfDGgg#)|Sg(j&l3pjjNIEkOS(Do{I_L{~QI@8NREduAjQLZP(Ye1-+|do_k&2b?fW8inFWZzMs0j@7LG$ z4ZLd-*u8HYlKQrx!*@-R_~{$MeN&cJ6uKs>@0N-Pn5N~kS0_4tqTsr$Z<`nJuFcS% zcJtz_Z(B4wS+l}V-@3Nz+tv-eYje`QZ{PZV>)W;+XV>PHpT2$X*SGBlc-IxQd*68^ z^?k<)-*rXPPv3cF^?m1s-gPC*z3;w?`o8PN*>z>xtyRu%Vij5NU|q#=?|YwSec$uK zcYRf}Quo(g-}ip#U0?Iu`~I(6-}n7EyT0!G>HGhFec#W(x1oXE=K+)Sj{_Wj8=Az= zJYci_aZsRdLyNl4L$2r_ha}EzXfr?akgxj3;gd~kD)(~73N`;YqT#o(EBwqOvE4t8 z8uV@KN%wgyb^FILi*2zCWoI7CeXd||;M+8zc}=XmbmehpKcflVH7WAimM4AkKK0Mn zd7|NM$q=&6NIY3#Le*8(8Jr)D;@83mDeDHwdjSb?q$urN#Y%xxddBEWL|LDb?w(geLFgsn+zr@&PlnJ))uSCqx8l+#D!a=@u2InvlASaHz-`a#<87q zQO2wzQ3~1_9UF9o^4fZ&m0ln7)aEG4V_35Lws>RNv_f^x&Lg*#zNdNaSN`;V`jOoa z)Ez4}@*5R&)wC#a-9LCp@YA~mN1`7+kn7mD(#A3LLK~OiM~hIie@{MI9=Oc*KeE+B zW`Z!NW3l&cgxUHxa?s-<#sYrGEImY{JB^QK^N+vVds_D)@b&>m1!PEsZ z+P3XR@7DMV^F;i8C6Qs}GH;#0Dt*}!zIoEG=nCC*=9%6wbJL(?{U z%+Z}_VqEoz>0+&GUS3sCfTHMv?R%Yz&KIA&ELD}Te!Fv2z38pQPoG-(Z*!5*7kKs9 z<*T>flK+}}jQ%ayvrGNK^)IED^HVkb?RLLu-~V~BZoScd`Q0Cn|NrxS?&E*I|Nk$! zljX`Wz)501CK_x6|E)B41y;b85vr&Tp8R~ zw0PdAakpr5UeTN>!H{U-Qc%&xaWOe`N2|z;=CWdeSPg-kiuRBhZ5)CvB^@m`X-R5R znx)E9>TV?a{EuK@^XRZEbM2bZ7;~eQ(Se~MqQx;nU`9p?OJTEsVruA#4ws4)w;de| zGCJJC8mCuu%-+$p>P7O(8yy@O0+li{N`q6K&qIJiOPWG8? zjvW0?6739?Z9gm8>;Au(B_^Njw_ z9j-Hebj#o9^OR^}TQMnEvtM(^R8GbzER75-FQ#1kG1=p!K+?=fHktynUi9d{oOsq^ zQrC|jsm}HnFM5hs26<;r|NdjjB##M^OD5&-oRD2HwJ37}pTz_X&WYNQ)2%K0<1(k% zot%=sQ()rF{{EK}3tmoXe>p?JV@i-jm(|SaQ#fY^oSeDtM`w1WOH*b~3um9#jhW4n z(_&`!E#aJIKXa0-MCa<20_vW#pS+m1E^_wt6}?FkQ+IT>%fFm?Fmu)_%ck>@GwoDn zc6-ifjhvA?V=CW|rX`$x7B?pyik!0hzvbjhKd1U~&N_6nFODl=OfJo}nvwA*L4 z@l2d^>ZZWmh&Ybz7a}NKG$y~Rb%PP7*YBVrV3afACS^q)74~_wOU58m#1;Y;jHfYo7T*&TA9hUcE8Xnor^Qi zc?q3(HIKb>{&g(+L+dmiuDflu?&V9NXSdd> zGOm9mwQdp9dbNY=&qV2b`za7t*>zy$l&O{LmQ?n3bu5|;Ms3K5 zn!AQ$c7f+qG3%K#Hcjivn$RjWb%WGwF0Zv)e$Dz9G5z_8wJO}p1y0ZCn6&=mu1#D2 zzg*G1bFRVcO-DOcAL82N5jjb^#=T#dYb#1lU-LZM*WL2p-vpTm5MQ=WqrS7+S zYgAWD%*kz;tGlXRZ~xc1U5ayA@$2=iNn6rR_9Xq@c35)lbgr$xR;>9|wMFXq(z26% zrrbNGbZ=`rG?t%B_+uEzFI(@3>012f^?~`T z_aCV~_|SU)rPuR*{$9_|bMT|JrpD|8*QRat<_d47lbfi&xx8<3Q z3r-)N^!jk&>FxKjcKKOtVd-htTRqoCdie&grH5B-v0Z(z`P155pVb9C$1bfnYLtCg zvwPpeRa;tb9kh;|9KC0M)|<_nW*lynIsWgpdfR`VWjC#kUy9mSQhmIHXJgl+b;X*U z!ihWNYUb4a5%{<2WW3GJV$YLF5y!0VoSYf6y(?$^jZ>#KM`(j3ki9xEdhaS3g_|};&*uoX%|3VG%-Iz=`y*GkvH6^Pb4LE_AH(l4 zg0J74+wLNwVhx-`owhGMiUqpXlV7 zkQ{SLROpas?e@w!26D0|eo9?ZSi5=K$*nmy=T&2m7ulRs)VUzNcCE;NqpebVwmi=^ zF#CIOlFtd<-b;G5$1-v*+2~^X7t#%{jT43nsdX+%hMBMV0034<8QRC+uIz{S+n>1 z?qeEfE-LLg@OjR)lXK30TX;Rg`)t8k{WjlyXEgWxkiN(mvoCPYv6|jPy|Ndy_Z(a# zeWQ+7@$TzuVsFnge!f|Jc3-~j9&6rP?y?sr?LBGky)CR~{n;}&7QedkL-B-p%z+KI zhC5_$JMLQ3*K_IPsS_+~CREs-T0QsnpIv8DdCv)7y8SWxx*+pirJRkWd)JBXStgjX zZxPS2)c-x3}Kk zzHaP$<8$G?Tb@T=bvFU+9MO*?2y*G;r91-tn8lf?%OhYkN&-t>z?zd?X7|Fxf_>yAKrg` z@8O(VUviFV^gRx%y)oVQ%AL1cSFFAEtmm$)-GhHgCoA5Z53oD^e9fenYo1v7J^VH2 zhM>@6smD)0ycJ2PyC3%GiEQ$-m48Gs?$sQ>13Q|-?s-Yv^X$#fW=lP@Hhgfg=1E1L zVDi1Ei_V^|S|?od@45Sbp%?$xTx_d*v3JgsX1*63ddgjP_qzYp_N`N!s&{YNy#~K? zcNR(uhx@$jsC&8WUE@T)^XZ#jD&Bj!;@Z|xqD*YY(Khg1w-#We%+h>Z?>GtyT)|s_2Ird{eM^Ly?cEm?xwfQt;w}> zQ;ja&t-G|4_wlj1ch_z{*74h>DSJhS_h|E)TMfRC<PwtW4zGJ8FK3n%@ zSMU3;=k783Uz*nYH006a@U@qC>i4``_vmD9mxt|p=KmM<_#RhA-x7%bXwtWZt^UK$ zeR5p>PxRkjR>=P-fBxNSi;v&+&RUBgm=?-G6|b@y!T|NE#S|Hlm5R}JSsKaqW#e)j$Z`Cd+?9|ye8t*iTLG3S%`?_17w zZ|2Ue;+7-?Hy2y$*Db9sdlk2@_U}L4o8NNp%+K1nk7wq# z7YS=3S-Io(n0|~p)&M=4W8Z|!_e^`Ht$BW-MU-7vH%jg4q4s3Abv@Tj|0i8t;cKt* z>(|qqorT4x_i@htT=3{^~|>y-#*Cse%+}#Ukl&e-CNIYKYhFF zrv;~rRc-&(WNm-Fc)MPG?AOXGPZmDD<{ex4=SJes_vcR9e*QQ4oc-@Z&IXRGwpo4$ zel2^gYx!eYx1YoDbwvUD+3TbI4?PnDAI*`Xt^Z4^Ip8oyx77!;!+s%!_I#C-3y+EY zHh#bOxYZHC1Ka$zOmN-(PI-cha{rY#&fm>k@=escYxJFew#*5%k*HJ=^3>h_DyZSZ+ZO*vRRU+6MS6cWK5Rt#5+00XE#21v&ql;>Jq^-mPe-;oUu{0p6q0IcF|`) z=l}e!TUI(PjuP49HowXw&{KWsl$9Q$vLXk)wV!SY_V+&(vMS)PwCJiJdsow|{{E$1 zSKq~inubNDFWnjzoqyCcJhuGl*6{dxR zq)gV7wM?BFp0+b}di=8=DKpd838&4@KW3Rew>)fS+WdOCiRla5)plhp?&mAgk9a)i z&G|Fa-c3Hp`2V5G%h5u~U?ae+dKkroWls|s9 z7tYRBn^!y`Cudj5{rPR-?P!`$dnrY&*zseGyKC=-{WyXc4c&t-Te92=lcHJwrl0h<@J-iIVRswclfh_ zGp9Z}nnl{_n-MMdjnTY0t53FJpsOB4Xh^dmjre!7r52Ys30Qs zOz+6Nizn9^e7-2($QR+n%hc6w8zbEomb_JwkKZ!+lc2v_`ZlgCfmTZ$*n5%O7J<>tr>1+*Dm&^_&k=} z`{J0H(%Wj|ma}}h9di}7U6^2DGeP0*^CRl#Hh6UR$avZ*?>A7qq-XW!zVciSXV!B) zb_`D*$$j2&G@$8HU&x!s>OUh+>CKxowIb)K*2@U@BYSzLa46;$CE#O?)q{? zJ=BRaAVsKT{;v`ZgNJFWb_KB2RcYRz+_yq@K2PTayPk`tf2SV_tleC(w(;4VYwj9T zCkbnuel4bzxzgKo(xe%imduk&UA3*o>Bq`8&DJ#9s zuJoU173fiVWzpl)%R+CyRML3pKT*8&NzRr`t1P+oZR)XUrop?^r>(oX*n;I&aO%ku z4N|2|7FQqNW6M0b>rmcg$E{BtmUo?>eJP|`DEFcUXZ4LFv#B%wFHBZUe0?fnVbr=+ zQM^ygH?O+-&DC?l^VN!1jedFLx=mc8+`CvMp6gcWtPbBi-K3P+=DM@O%qExVuJOz5 zzEPpIZdzE1Mr!%XkVj@BE82WBf{vzNUwZA@Mz+*u8-_Nc1Hf8&yx7rS@ zXYT*z+P?4G+LzAxKVx2rT|LO5_p~wjhSt|SldZ=Ne^AmEiRPaEvaUW$x7sf|@lBh^ z5|w{1GPiR_JA|E`drWs-(|hUDjQ_tJ+eoGSfTk-L21|JMH> zA2Vr(%14U_C*AF9kIB9!b1=2}!O<0NE9WfbnO^Gkf_G*3<>;rv>!+TMb^BbCXydc% z)0JgrYd2aI@;o_ewC-ef**crfKer{1?>y(aZC*@eWkUVE8&m6!Z9b>L^OSMnW^?hg zecejMPx;=r9Eo`PV&?qhgXb0V>*C9VCSGYu;yt;us3hOVC?> zpU{@2nYoiUZEK1%HgZt$2AjM-kem47W?){?56G-{oT*+94vP?>*y%^TK;~| z!R+D>#vAv2xBfqq<*=RE)Cba9OO~sDIg$-(I{;rLh>wYSa&t%d3 zigR1_g%St^_7o&h8w@zY9>s-d5_h;;*j{fq&jz- z%gysDCQ04<*xz3Bg!Np-sqlT}laALsGwrWDU4HL#@%@??uJ%=%>+gM8?q2&Ubbr;g z?f1T}Z?AomYF~Zp`n_-4kJr8{-T%M(-uHXo_p{f1Xtn=ieetf2yFK4MvCzE7-FY92 zoL{Ee?aMg*z@1J?us?H?e{`Y(J8Nb)> ze;S_pZqL(aJWKZ0XMK$S_jAcKd(Ud!AIb+Vb01)wv;WEF{kv9f_>;YF|7ZTdi#%84x1iH|6Mp= zjq_k2v!!s1#Xs*|zPHze6fcv=5m|lefYK7NFHV;ER_5X@iv+42`HeLH-Bc{@KExrp zbM>V)1+UG2ue7+d%E{~Uj$^x5U%X`DEaiMN>Y(spv;XH-?eLV=R&F_*!nv{U^P$Z} zP7A6JSzp=QFRiP4*TE1R7y+6!cDRJJ)8`u@_< zVL51V2}(LM`wp`h+DFvvww-c=pU1bOmio7OFezKL8$oP zyUE9LeOy0vt0mq!CU<1R_E)CDTKZ>{-15(Ck#k)8&Dp)|$VA?lW0gIk$tgS^XFHl5 zar<{#(X;31)S%U=uZ|c!cJpy@_^Nz7^Yn2c8TAbY$75sM4O33M^Y-|!u*E(1&AQ?> z4pmP)loz_C=O|^UXlfcC_S)?tE92=a?G{#Yv~RI|WQnHH?qw5XJdBGy)=DhwXmJVi zIiBEi{6n>8W5@}iKl}SkPI*?YcQ1Cyb+KSPqEIpAL`KZXWi6)!cY8#oESuNt`D2o& z+MnYYJ}27Ocom#>D(&%H?z23p=6He0{>3HUF`izoQ%>bAQ7qtb58^i7D&w_M#Ikvh z``$ZVOW%0qC7=8dvKUbWX7qb8O84tnP`?fDR<7IfJaL=*hUlvZgvVkq; z40nm!)IF{hPtF`zb1b{Y`J&0Z4M$EE*?7-u@zu=Pcx21A1uCAtvlpMbayE43*)N@& z{_}U6tT^H&)nn&=c-w=N(;CfZVpM$hWE?+KbM(oTlOn>$GPBOc#hlEU;=upL-KKsdK<`1DGORt>qEjsn#leu%u{4Xq4(|OLzclmf<(fz4%u40aVPqxbI z6DLc$72KkBm?ir^bn$oa_LB>=_*`;fhq0sc63-7hhj0H;l)Q83$CL|}JZFEsS+eoX zwm&XMZqD)KJGz6>*7Z8iPVQe9RE#c&I-NERxp2v7sYvw&Xx=_iSooP?OIT-MN?a*NW=& z9$c^O<+D-D@a!e2N7}&#sh7=k{q;*PTTH!d={w1E>1FG`dm0$P%cZ_BGBD^cFl=S= zW{F{FXJBAxyLL@oL#b_D+m9cgnlE1b{{5q=gLUhbD~XdP_~c}S*Vj0P2YY9yo4Yt9 zOz3O5bjdk7yy5hzpo&u8{OrmD`y0=mtvPZevbiB^@j^ozbNkQ$OHY^Tg9lvWqwT{2 zo6eofUA4luASZYEQX>n!xcJDx(!#nECn8&$lBZ31`}TSE(!~xDA(~n$NmC}dCB)Pn zKel7XX4^oYxZW;HZ#R#W1RH;E8(+`zT{}I~lPmY_b&iRsJ$5vvyTjDUR#R6kzQ3nz z=MEiX-P(nzf-I*;?2I`&S=6RJv_z>zdYr z_3LUE)#NN+rfr~g<;uC;ySF}kc&A|9+NKpv;SIHAJGLiQ#ushcSh;tPp|zQ@gSAJv zYu@Trp>@^8TQ(b5niOu_P`+okvAtF1!Ud5njlpRF*&SJ~!H#KjW@+iEhd0(mceXXJ zYI5+g39c-2O^kK&wTtO$w+-_3%1F^OHPF)6`t<3In!4huRZH{NtO_W~H+Of+m_Ijj z(E=@PwOhBYczL;IXQ#R+C-@cQMzyyDmKIgduL{Wux_IeyT0@F=v`5L*Vq161lo?aq zlH;@5GfK8@vG(&cvoo^yveq@xPfCt8FxECTGg!E2wxg5n)T#aE7DnwIP5A{`u5R{G z(V_eI?|Az3{PgS&t19PH{Q#?xWL-QJgq6E zYEGqwwwj@tZeM?=t)0c!ukQ~X-cwqd?;qgx;>Dwc#F)ExucxIa-n(}rBt5WUX@hg1 zLuhSPMoYSHZdPtjPU-e-{)s+S`}fr?t}C5ZV(M%cT^Nzym+PLIXy<9&)LeVv!l^A= z)-7AMAS^s^!-iGv9!_i4EDH(s`|#n_=`%-9ojO`tRxo*TUrcPcd#FoXSxmu%d~-L) zr0RsgWWTbRWxlaqk00MFuPB;3Z^p@!NBsOf=g*%R8y7KS#^l#;p6=PZEj%Kys5s}& zovY>!##tSiTH31J-L1tXxeN>pgqKS}Z!%(0Sg_>eWHt9yF()@IJw4qZ`P3ZLJl&cO2U^* zMZ8W})T`_bSuQn2p8Ei7xfI)~O7KlatK)KanY@N9m$F{-`qmD}O-3hf?}IFt%6V`M zv|Q@X>upQVUw7mGwPPn}xzuU9E8;u9ftO3|Uy+^pbL;caD*5yK_Evv;Iq{ggwf&P{ z-+z35UEbZQxozqHwW1I5uf9zOEtkr;Q_E%cLLr0Mu0x?&2((=4%*&wo43VT458Dsf z2Hhw*IPpesy8?K*lv8UGWVw{lUXRDU7SC2Jb}@SgS}t|(M)Cv~vCNcKXStP6Ci!fd zo-#SWO*6I7-!Jp&)QCf2snc-YWK^Si(UDz)MO}Sv!Lya&>eIe(Ug5WY!lL1lmNKDH zs-Eps;KFtq%0LuBXj@>nyvtEh{g2{jpoZ!mKP04*I^?#Vxqu&?k}iyJaqNU);-j z@M0c=g}@>xQ-;4dt{l3?H1o{`t#Y45#U7y^0u6F?IxXCKEI%Kz%bUG9(7@av zdgPmfx6H>z0gkEvYri=boc8^Ge)qn=jLbFCQ;xA&*GxF(Sk67=`#tu;f)?RwohRnE znAgf$GGt4O{J2xfzeHcYUH#tnn^gi^w(-vJQV4jldHr0o7hB5ZtX_2}e`)5`ms!~O zI{S1}roueo_dlPrUo2?hsgams^L~}E$u8zuo8tnQW;8Xda=0iEGvV_E?vm;kz6Jt& z1>6f3*f2P4c;NDdT~+qLcFxGYop+DQ&)@UzbTr4$7vJq(*}iR%D?B2SaP&afokoSZ z7VONo4Y(r|7iROwbm%6Sw)hCN$a1$_l?e$HV4Ecn7Q5mE3)6>|CIg0GD+vz{gQX3P zB1vrjU&RS=1u^=_K4cW)W?=c>S1>`;uCdbmjN-O34S_1bhb%KT9pL70Vv{T3=5whIl;pm;B3j(-N!g#(cORr8i(JMM))j&FOC?o$ zjw>yeWL5Gs-6g~@ZI755C)4TJlb0s2IxJBVJmK53<57#!mjw>{G7kyF2{6PlJBVBS z;A*m9n!}vI?D(MbP*;os!z1Yv^30t78yv-i7&JZ71T+si`&2HBww!R!_Os=LhQ7iD z3wXlV*QGXU@jO`|tj+L^ZIf${oc2N{&znao7}#2LOnR$R7CSRHFm$+WVGy2i6r1hOPl8=1x(t zI4q*Vf9Oi5r6|J|kw+WzIyE^yoSn}2qe)1yfVuewe?6;U=5~)$XKc4^nl$}MR`7hS z%PY!0uNR!@CjRb1r`Uu8LK~D68BQH^h`7Kg#ACDkdIIBWwE zT-co9dYX+*tXYYR;{YdzhQM5|Ny`}?9MX8*5 zEpU@<^)`kbxp|BXIt`TxOpaR)J1|UaP}X5&$W&li_F+M^&&O-q4~TjQs)RK-v^->! ztv>A7b~=io;=$hcYY%Uf61#mC`s zhG#_&IeK2KcMvIDV_xxqdCLJu#d3uQ3Lh>Wh@RTm(7J0?lZ8SD|BnWtf2vH*Y!40! z9-C6~x;p0eBQeD{x+esWo!HYjXGV-xnqh>YX_IPBAloP224RMVYYZU@f>i>kYaP&-}n)Mi0ggcBMyb6CzgHp9`5_c=ZvRJoo=<qd1$bRx{3Ska= zE^va4J)yhN;c$~gOQ@k%b!5{F=CI!qCl;_X^fs3~65H^~*!6-ygRX?j!G9treElcv zY{~h^ef9Hd2aVj9O*y+Rvt{ZvF*0!Y_$DY6Xmki0v}!ljSY2W2d?v-F)Kcc?aD_o( ztJAj!JU)_&{WBhwIECm=2xEV6l})hhb5ePx#5)s)|2gY;Sd7@h`B~0{&b|AAV>N5yT17vDCU&dmwYcDco}(osZs(mRGV(hP6qiWp8XG?=RhF_;_( zQJPVs zrUY}?b^#CVgr{wd8<;M?2x+B zAeE%zJu{C-eS=odqe9K+J|l>&!Wv1F_= z+c_hP;c#K5^QJ|M6-4wiv|rbK-!pl3y0rRq$E^C_ca$G|u?gFI)BoJx<_QY~zsNNG zcbLbxI*La{$in<43$KvVXZ|CbnKRTKCo!%rW%#Yg{`R1w!P$hU5^l!kfS|jq;T#j| zIUd$uXKG-QDEfNHmT?0E(?mA^4esIw4IB$ygq!unMHzlg7sy%=zfN6%V}=jojCkG- zO@Rmjwi6Xs*eV-Ja&NL3Gd*n3oDs@+A({1JCHu!p7DcyQQ-S}Fn0YJ&Oe_SHE!z62l(S5%3CIZlWF%mfAz))6;Lp)AL#f4t znZfl&ZQhFX4MMCh5AY>@@MBh}V-RqfY#?xULLJW*zIrnTdv}4i?gAgw>zN8Om=93Qi2pEVG8 zZNf0=sKeZXbmk8{bytg00FP7n+cNaOhEE^8oAZ(h01nWf@`zSN1% z8Ajb4g_COkFA>`)-4i`CHceu>ILS~#$9`th%;lk1Ui4dYOkh#;+%6u*kq{U*vq@iaa!8~= zWTn8GE!pe`r!haA7J8wN@k5_YbC?Z7_OWn*0EJ|>g;RWH3S9LNxGv$j==$_zmgz<( z+Sn>5sI%8kG!VG-U;@Jet__#CHi~gaJ!pT$6v;e+k416T$0ZpXlsK6K`DTf-@`nh@ z90-z56{wtG%n-n;a3CT1az4-1&Yz2Ca~jT>p=4L6DRA)Rq@oX9cUz~hOzbL35a2Tx z*xAXjJ5r!i!BD`Vf#v_gIi^o1-_@ATuwm}qOo3A;X7A&i!*gv8(?Ql_&#V#y1a65k z6i%7;+)Ut@5QDaXfP(sb28Ve(OXqPuY*1Lx#}}Z<@L@jVsk|AF@)|T}gxyH-W@E4v zC@hQgW=ouVqjUa@P4iP$O#9cVDachIoHcJo<Am+<61%iL&M?7DeptX$AVcDGvulLc(uKj?4B$Tsa1=syvpd5lp$ zfIZ-W5mVtZj)%Uvd9%XV!l%hD57n=Q)5QhOQBw1#-)v)0 zU^?!^(OJME{DF1qj|C^UF(@f8-8{*-T8l|tlA+K0|I(LtUJ(0hY2T@3 zc~&bzW(gz;m^3S}OD33XD_y&FTm@dXTx2fQ-01X#p$x;L!)v1vKSh2`~9 zD_B3yS6{Gdjh4W=U8^=)tzI3q`b-r2u2YNV{aRGqR;RSZ!M>}VVM7Mb79MLWfwBs2 zq2ue-RQ#D1a(;1HA|S{n#GKDDk@Y$gWAqpQ^CyFjGcjLHp2L1{1LK1Y?13A%c5M74 z)$1F^5O&3*+-vft83Gj>+?!5ql=BwYJS~Wsag+G})mAKAo0+yuWntWyY`Srx)%w}D zbeC5#|EdUQ*x*zq%FaBIC2PtemaNS)lr}Lf+|1?3n^LNq^JI&#@WS(4{fD3Ph-$ms z^c0Y~;BnlDjrroHER_{ZiCgYI^77j4?xQUbb6Ypy_R5)_>x+)D*;_H3e!#XsQ{Z?4 z=cEg4c?s)J3uM@EG5lf3WLDsnH(}v1VV`6zz~Sw$`9)x}Q9q|3Z*&NQ$b`)1Q(niF zSkDD5W52kQJCS9XclOHP%jQL~XGk-ZDa>_WDZsVC^>`DT>hWD1hMTjFxUIXbyCS*F#Gz~tj{?Z1RYon9KwpY+e-gy3vem8-IB6oiQ03$ zXwNBWhIy+6TrNxsykf#&uy4*5j`Gi2n}2%m60!c1At2+xp)TN(Wi7C~+EvwD;P&mk za^i3D_M8d|Rf22=HXS5%^bgmPz)KlC2<1EI)f8KidWNd(S^s;9~j6$JW4QXnR>Okcn*q?*a$DLkdd58!y|(UJZ-&VoSKh z`;e3GFE{H%Go#*%f{Oeex&liQ7%X)KLu#+)*j{pcD^Q!jaH~KdQCD!j0}pc}2V22; z!Hw5)|6XVKdyOZMOY<#f$=WLd3$O3`z`Qhp^^k+W=MCI)e=jz~-h8cdgL@(`+XY@v z-D`p$IazZV4m{vxP~cjez_H>0=j6BNr`^5vq~|8*LC!r5T$5^V%##(om%#f-f$PZz z-uney9TQ4c_nuo9d*>FHi#obFzZV9^5`~mVa3S|H=m5nzI6Ry?5Wmp1EZ!FmD1En*kTM;5`9G{>Kh?83cIt zOyH__;L+M}kL%*S_q7iW$lTx0$;T$Z#nX6Sgpu$12hX_irAJ{t#1ltXsM?83{fALxVz326z91#L9 zA`miVbKGJ=PYgCIL@_c3|11cQf=)isn#3SvtO25zmtcXb#7*an~P;ehekx0 zyRoshvy(+^v`=SFWQ1pQl$WWguA`%wgM(>kh+A-=OMst) zg}HuaT1Z5wdu~>QzprCtxQC~^O;UV-xw)Q=wNZGedtqL*uaA9FykBsTi=MtlK~AKb zieEhZPdKFAw_n@dN4aN@wpXm`!rQv}lQeSs)jPInCB*v9y{cnmsidx#ziIXR`Ub*uA{maOf#_;+YhwxzAK;QD+JL`@g&snzAJ~W{5+_@)D?m0(?2UV0B zTAL+I=*?WTAf~&c^1%LylX@(@Tox~xt81*6w`%2;E9c6~3(Z^{!omY;7Sxn%-Qt^{ z?N^Z7aQc)-N_c5FU>{$yZjVO~$prcG-K*00kyH>^2w|d$!Je-aXVgb|gIz@{DJd!^$v}A!IS-Ysf>$r&M>o%09od;`6J!r$IYz-Ci@v!FSx&7->8{J^?(0 zT$FlT%rF|ZRK7q{E1hW(qzZ2*NomW|6XtJZ{uB%Tb1~j?$xI8de+U*-&H&xX)y6#%)l!QDD zZ^z(WTU310%cd^#$zJ#Lq-XY_po_EfE=oR|8z%Yl#&oxjoCmt*Y_*&*SB0_b`NED` zM*02@vsWwf`aD9^+$RbxdEwBh;+B!UW{KLF#S6-oEq6>lcjcJt@(>k`RUB(q1*n=X z{eMb8eXh`xSF5>Cb_uQV`k0mNvTL2o>8O2eS!=u=cm$`d%-XssWFs4|wAdD9%hLi| zT@zSSlx*Jb9ONWA(-50vl&f+WqNWRKQy2owoz_9x7tV z-}i{^ji4###Mu|EICD2&Su4A9m43)}yET)JD6#$)ILct4Gx4ZU~>ADuaY>+CO0|pC2P-VvGz{5sPT7>;3cN7 zKA$f02=XwT5{bPv^Kx{e?WAk^g}TC*1tYVkTo0J;yULNvdWvR5&#Wuo98hva;rcX?nvf}}R&bc3tlQ#1Fd@@D;wA)kYj$6M6 z4;eh(Rpu_&u*J6HwmOLM$-3X~cJV*>{r>WBaVPuwJ@1d2zpu$VA-{jm zr}N?YwOJQG+tq%!UjE)T{pS09wjb_K&;RFpR6(@v{bOT!F>aF`to80$Is%NmCK3T5 z(k34kgm4=hIB>@ZHS99Tl7JZ zRp08&4rHp1P-xyC~$ODcycdkXl&i$z#w{{lZ!p5NuJ|DJ5xo&zyD#M zIR1QeWRN;=f+u^$1nFlR8rzfD98X-}T^M4(Ab#Y5<1vK>`3o)GaV;k}TbYja_k2`L zwc%i95onxQ;=sTg!6E9x&@y{Tp+e9PMcxYyZLSUu9Qv6|LWZA?S!kv7m9{*Zo02dg zAYx-vqzi`t%L1lZKAR>bi7X7z%XIU#YnjZRc#!Qb$MIziK?-gj4or3$0$K)26PovU zD2irUyCH`$8s`pa4Nb35N#W%w|S`jb_aplV`9Ssu^(`9Wy+0 zfP*uWnN8whYl`0Hnam3h2^w5rvE;j~bV)|R)HKsKNAA-cj*Abp^)H=MGdjc&;?TkD zRry~~MqM6BiRrLs>=IB`a8mF!IG`f%h`C0|WrC;86N}R;&$oo7 zEaVo{(Dg5w+pTb1N|dufj_<&wX`8Na?U%XlsG-2Xw&rtzl*}TB5&mb|Zp(7}l2;B3w64krnJQ+Oa>U$x)wr`NNWt=JcF6Lm(55L4%szh`B-jqI zY%`i#z;J^pc>aoz9a;=ruVvQ6a$8SW`b%U5$H~_Y`zA0j+9WB?6Frd1{i#vKCy2o` zfrW)-LW9PC9v4QY4~$9m6>J4gCetp;XbYV7nsChOTl<8mIs%%}6RxcLwvy?>8isdP zLGBAh7}Sbe9k)E3zz~wi`hYcGZc9Of_K}im?T`lHFTcVWSj47sdK}^`GH8-3XyAys zdO%VkfmzYy0i(aidSRx32_dJZ@B4OieZ0K_lac|$MtzMFN^FTu>OBm+b}mki2D|S6 z`)7WD!JtW)C4rf}B7vDHg2`#$f_u#dP8xomXrtEm^2zVWEz@yTrBtV$`*F|&q-=3sbq{_=Q!hdOqz_`lk-_=n`b}VlVJIM z$F9Crrz5v9G$h{Gq{yhyu&z9|gSnuQ;rZNoj$#T7LL16YS}o0#;$phl$PvWIx?-cl z8CQWM>FBjg9?XsGm);2EB`D-JI56=&KX-B0%*Fd#w{2leSm%-~w1G+DpyQgm6O1_$ zRx<~hZC?2MZDx0M%NM^B(xOzRPlnn@QpkL&OZG4I3*CHmN9a2smt? z)VMAnpk<;@&%5115w_?~v(eJhKKX`Th6Ed+kL^dO5lQU z%eQU*+J^%7|2SqH>wHpz>uPB%tL_O!?p=J}{(s_fVqp~6|A5)DLXLYu$2M_$#^4B# zpXcKzeBCaus3@|VP1Sw^r$Zw+7knGP_=FJR+Y!8SRehQXko=O72? z2L_e&`gi43zr-uq6dSn=3p%gIu}`meP_Ilr>c#c2^6d3;=7)?qB}FRF!lh5tOK8+T zGtXgCsOEgwlxvb|s39P~fPv{DD^ma)QzOeoRe>ExBPAH3k4_I{ZEWDW(ZI*isFfjb z?s}8{i)J&0X4Q(?ho87bwq%E2V6O;Z->p`6rMZ}MLtgUqIv+QIGzJ%g1ZHb@fu@jZ zZbs(Z4uRqy&ZQOYm)mn#4szs8OY?icviT`fg+&$ne@BkvU!8>#1ZrNiu^nU+n!sXF zAW*Nt&}dOv@S}h!u#=my=>>bfuUb=~hCqa9;oRdj5ht3M7P6Ro2v{jF)O=`L5g{=5 zM<=^um%)r84#(~<+k^R zHzJQ$RJCxlO?EELGhk&f1z09z_f2YQ*Ok$Uzy7Ek=0s(f$iu7?u*lS9jBLZ#y;j?s7z^L`N+gH zVWKx@BU2&M_T>UqD+OGRI&dGHUT!%dCQ_jHXQNW2fMvNw;m)b-;Vg@f2xwXgXrF90 zxY2JY*~O_ildW*(w4kWGOo3%5TTf`TI92AmyzKGPV3@PD+WdNl*UTB+Gn+zIP71S} z&Fq-E!gD73^QnB38g&F6cepVWHk3wf?~7sgVKQWFnfoE`*G4<_rmnD*;N(-1$N~NSo0a`GEeqBQ5IOB*}>u% za%sE&=ZspWLTASX{TvgQa564sP*_^`a^BPH%}j>Lt(8zbId^9smX%9+T($-u1Q zE)cP5sr9dd45>+f%msX`1pIa_cz2R*^VBMa53I{o7s(_n7Up7zU`=9B;C!T(EBXId zLH?}}R>S3N51Ch`L_cJSYSUuqShb>-W6HM5MVed;J6t1mmK3u&rqo#pq(ljXG%Ve2 zxk4zbWR{h{oKq`QZ!Ydg7_&HC-fvI#Rle{-m`tiA(2Uz$RScMES1gr&^xYx1HUeCGO z%|3;D24jt}mC-J>;DZ_;_a@>Iucja9Q3NoAUTU~zFsDRC2czk)%Gfh{4y^g~w0 z=cx7Hs{|x>Z zYAG;FyK|1Vz|_?OstvpBmoV~&?{+QS-STavlk}<`qRhLGy6rO+=u+VLp;6X(j^%)mv)Ewqtc<5H= zVY$S^Hh&ItEIgdgeMI`uTxWRg97#C^??Lu^MwVvYv0d&Z_8joNc` zN83^BGe;9-jxi}7eXM>gEk_4B!W9h};kv=(&0+}~;VLbRD=COoQ&()ecC9csT1#8C zC@-dMU0YgmP)M*#QC@UjcBG@D8D#uRM@LmpU&Gi~J1)k@)y2}lP}AI8FF7F~D=p00 z+8{GEL`PrE&``_T+Q`A)G(6NjD%>+N!c#*_xiBv}I?^j4*3ZmTS3_I1`Qk-)H|y`; zKbkmL$3%H+>Z<#A+b2$*80hcRdgY40ucJeFaAZrPp^cfdlevL~0c6z1%hR^;+_~`j z8vD=y*Mt~z3w?7J2iqWDOE1@i34J~}89^1L)_$IOt5#+%UI-ckiu3pMw1q6B%t{Z{ z(N%-5^Ni_g_s!3)K6t=AC86@bemgr8dvEL7g*9>Uk&qR+uE|aB{Xnf)b!vaf49(lOuN34&o<4mnrX*^?!r5V=-jPuu zQ3VkVOB;eK%lrep4j};JkQN3@!_TqcG?OU{Fp4V<_uBln7xop`2bqz&w$Bu@E zK8z8rhfd;pGG22s1eA_;OBf4nS+Vi4V;|eg3eX6b`vgwqS-2KSIy7_1dQC~3y$E@c zr0=YxjH@eo*0Wvhx~dtzNMl!*tT*CJxn-xe!OxV-bbk@LLwxbQeR7XITm;P$CkXP* zRS>!Jp}^f+I<(2O{X~d+5sp55XXl#8%nV84rDHWmqIV-%Q=2*s?(}M9JwJr|BaPZ8q?kaut`Am>%w! z+!yq5xv&)PPmc)`{$Es&>*kYX6rN}XK2vVek%La>L|Ht&gVjnLro=3(5U6vOpUuiq6HW5X_e${$PLLBxpDl8?Qg9agM9YAl3h1mg~+w*tTa(g7VzIuOv zMZ9O?KJ8phfn}V$KSU;&I_{aghsD=v@{v^EiNT@gq*@AnWVl&2c#H6-eDqP2Ui0Zx zvs_kwlg@+?k14Y2LqGc(Z$>&(Zp*9{1y&@VDff0;5#tfv?{|v06TaWAxc~Rty_)a; z-)?s=VV5hv*K+&s_lF(oeLEgBiu>(&G{IeO=gpqWZ!7LiPG9%)Sy;H;_oo%bdcR&Q znZKMXWZre#1FzPs?`vS>;SdO6xb77A>+KGAPOiw6{P(I}3kV1_y@|6gC}rEJK3`Wx zXzhdvGQMBs8W{GkU&p{Grr@yW({-iuf4@&N>YumST^i$i6JrhckBn~o4IXL%N98inT z=@6=Ia_MTBsF-ZxAsK7rCYrINg?EmJ6noJzmNb@THp3*xvJK3wI|3Dp&pdGbuw#OQ z)5i%Go(tWURR}&8O)1yj`REmc1B2Rzb#3B_j~wP?2>E8YFtI&U3AFJP3);7&S=lhv zJAjixdDA9^f{+<(d`Tzf?Gc)|L#0becoUP4O}^^%f=(4@K}IH<2a|G|9{WwnoG!qy zpkF^x&20|n*)Xw`7N&^{WF|VDjj0NrF7)t_{`u>>zpT|`V_D(w+8}e1#~GF>+!NIt zmvFXLt(v6t-G{@bdDH*%i~ej>_^Wcto^=sJpqk6<29|}k`9>ESS-#8`SbI{>@X(1x zF%ubu6b`Um>lAmY+q{5p;&O*9$%~Ve(ie%ZT;U!iak6L=9}CNm1MhEiiZM$V%x4!l z!MiN&LU+R!MI}}SPhYPqyB3HrtoXv>9J1@uv}Nb!2rDqKrD-kBvU|yFotY6V^((kd z!9=lmiKGTieP{xi^;Q+p{~yeXnn zqF-rV>zb^EN;lgA#FQ5mqFXJUFZXF(N{Oo#i?rr-r%%G7ty<%ks5p1`PSrg_lS zBhz+M@SeDomSeGNOX@G(TDp#9lFq~V>>LVAcP?F3Sa_5pOjsyxZp%W&$G#nMqCxjM zmzZmb6+Cm0_z~S?F?}yz<$7nP%nMJgQhJ#_zNnNHif_75zTvX(2KQCFCtUx>Qk$UQ zz%KA0R;u;G4z;}-n#_H~r|GfQ_HZ1KDwrM3H~Ytt9OI+yr!yItC+s+)(YLY3x6AH= zWZp50bB21^ImxoWe;oh(*ziSz&l9ElekZ0IZ<;jS#!|()?_@yVru%bZEHtBko_fd$ zIZ9ZFfdRBP<`I)Oi#}4bPfcC1q#*YD_m9t?KWe*nEhi&9Jtf${K-j*1RBedg%3YZq?ay8QI%eRmJ1(y{^vM{8#n`>R*a-??)&A~Gl>)NjLvRok|0 zICt*Ex^*j_J$o1#6})=&vI7TpK7M@f=+XT_!M-)M<*u%lKHm0)xzUYH)q46G$q4}o z3DJphe&%L+#>Uzv_LeCraiPI3*49SF`7zBGFFHAzIfMnqM*DbYrzgexWo9LpmgYM- znS6c_k&sW-OT3dgY39bXZVjS!7FNSa@LhF3`ka(dJD#%a&SsI_IrkW#(+( zcA>5p7GMRc?7oDh6`tV>3`iU&Ngsh~fP=Vlt# zy)h2WT%xy%z!RJEbXILyd3kxjVz0SgTUT9O9kKb)oW)yLUtj1GUi8-s+U$F}^7)GS zYcvaw#jY;Ui=D2Ve#>-bd2+;>+V@X!2DB-Dg=g;r2KXUFLD=|k2CpIv)Xgumr;!1ebsj=wC zL-53AyUH<%q%M06KJ0ut zU*y{c0Zxmz+tV4?L>4g2WM&9>HZxO=!GR_3Q0C`8m>u<3l*vMcX`lc;7-rXHiPi47zFVIh+P0^A%QC+uUpn5{GK zMADr#E9ItFy+1B}dgj{wN{f9aZBl%{y2wL)@}Ht(SNhIu+ApPC^68A;e38!w9Fl(= z+5KqK1}8?3;0q1w9Xm7yma;H>P}|5MV9+AWtonfY?8>6ErkyOI(%V+NE#qyt88_Yc z+n((Cy=6D!*U!>lp46{fK1DBErs!_v_WyT^?{RN^TXwf*^V!W06Ta7Ozu)}+Z`p+j z>J}ypU6umDvNyW2n>j2~7@Qc*e{db(vwmTqIV9q0Cq*i@F>ZU6cJ{N#hZkm!oaf%8Uka9E)s1kNd-YAh;mZp9|7>w&d#2OKF-LB* zR)>*T)BDy3nof)<6NJSX9thYw%8Se~Yv2}9VEd?i;Lra6b5n*jd5kPS85wob%mo$| z6mZup`XV)blcv|jE`gK;uGJh48hIO=#8-=-u$$p7tJ10?AK@TUssKV~JE03hF z-f%KM^r4SsSHsUWQ&+H?c=;G>9N=iOII=>tu+*+Vib2AGA^+sZ-hYpkWOgs#^tv#A zQoQm!cI`+b^<#mJ2|NqW9=UOn=hnxHM(w3s7bD!wE}iTt>bb<~Y3Us{tuUqH%+l(l z29YniYs2|xC@T7=dt4Pvs7+2%5t9FT;?CSjlg{TXdSJJ6@7s%k-4ZORoUSiDeUc{k z#Q#xveC)-M>`iBIn|9Ykw$cRil{Z~2wN2 zS%HV)fYENQ4e4|Z3n>;ErI%X=?wNuS8uy=^Txt&UpHP1x&38X#-%0y z+pa8d@m(CaZ&_|3 zc=epjBW^i==zpYFXkoW37?eDm?oBU@R86xK56e>ku>?Dz^pU533U zL-do(t4`hu@=x13JHKo0&s)FavJWWiebOYpCgeEdkIL^&`JLP~F_Omqv+9(ioql^q zpK|(ff_>8D8B7h#3JV+(gM$PgC9qxXbSg`I|0U9<`P4*R?yYKZd3xbT&s+)F_IX8E zT-dCMXVSQ4zDe;2+&0ns&>s=2@~pFWHWn|xb>=zW*#$bA<^;~^y!!mE#Lf#Hc9{## zn!Iqi|Lj6vp9zn+ZHAM#l-Y!RTb4Dty>!d}b$J2b*KjM@^uXD_uB^B>MMrz?tFYa_ zu39OUPD%8A9Tl#j0A5ii2x)kJV)AB@XJ}(!U{KdkDlG&pr~Cf>V@W~m`SYM_DW*=F zpsS}A6XmU~qn4KyX=h{H-`{CqpuKzdRtHDxr%&&%UcF39TdlkTben^{gQbI`&4Puq zPMtcsZ{Lpj^JgwwzOXny#==6sC@&h)8jX$iF)`6ePYF(n_ct=uHZ#-BN((bE)U>uX zN=pv1wKakaT1G{O1o$~EeW)AY=kWabBOL>!k{OyA9U7))25#<-moA;DudlLpQ#LeL z^o~=}&{DK;Qp%gC(Y9G@$$i~BcdxazH#)o6hvulIq{Qj!X?Vq|8d)mY`zWhxC`LpE zB_+q|=&F~N6@-NcCL}}~80thu1(%lQ8=L5bg!<{|E4h0(L9U9>)KRRdEzitKPHs@I zS)!TSubw|i1G3z0!XfRRJ=zOz>vn9@ns!=y?p2+>{o2#dXg4-hA3eH%-MSTz9^Jij z=jyd<7q)HNaO>9PD_71vethrrnWN91J-B%B^nn9AH*8o1Z>zEYZ(wL@ZfR|6@96C6 z?&9XZ3R<2sTX6?H58#Zp*yk+aQ?K^hv z+C5?FzR9x=PTzCn=&|D`PM$h_=Ipui7cO49d}YJ_{f7=-y?y8Iz55RyK6?D*>9gnC zuJ5}!>&3hGA3lEi{N?Mn??2YQn)+tu&;Ja}TrwUT794E;GD(5UV8O!%ZUGAm8HJVi z)mkKsv+kS#ZAzArw6bwHaNtOn7;6K3yv;^+lOh|hupgVp%A#fG=Yz-FLSoK#T2+d{ z?r?C++Ogmj6PKrBgGN9@Ym>O#4!&YBhgIt~UAk~9ID6aL+uPay7jh(VG&kIx0+QKX__wT_IqMd4=Ry>(D$;V7`vTUDi!+|NX z0tLsXaD;rAGm%xnbKzu@qv|qImQ9(@W`2kwYgta z^I~w?yiuv{~JtR&3RaMLlL-rx$8OJ^>B5WofEUcsJ$6(m7?XG8fO(`uY-d zi9_0o*|R{GIAnFKTC(<-*6TGaPFh-^I~=qV*MHmmdi{ZaQjk8X7?z^q$B$2H>WbgL ze|!YK;%57fO^{n|JUpEp9IZ4omF*oYj~?BB>eSJzSI=L#a7t54#mmdp&fc=6rS9a( zBRh9)-o0n**RSu}JDNUydUN>jzT3C2q^8CPhxmqt1tcWKJb(V^{P~kpr%f<0(1zsr z-MhC&MTgYaS3P}tzrVi|lFK2*kF$%tuAWADMNvd#kOlZwnbNWX%$yC+)-|=|4vsdN zS;>t})$7)+fM?SM3uoQBbs180!87Z!eDr3Yf3c-kcybRRiSI5cJ4oL@X%pU5p#HV_}=Cd&?4sQr3 zn6AN!n2Z~Yw{Aaq_4>`*cke$ee)i%csEGOb>$fi>CnqzT&xa3ri z_MJ>33JVS}Hg*e$@i^SzUUa-4bWP06tfUrpQIisdhQ!B~xhlz^a}UydI$10{IBq03 zvt4GEiM%P}1zNRwzo3dk;sO(+fTOV@q;t2tASl7=0aK$uAZsFIOkb5#;z3mdL(_&? z7a;e+9Wq%a^f(I(Iv+pJ|@Cd;9zQ2RgQv9Z z=lkuoy7prA+U)!1V%5r4-aXtczy8DSh)*vruMSVQd-v=6hsXBW>m&C4{oU6LIVWWS zBA>;A$Aa3B&Pn~Fbr$<)Ex($lqeVQo-FX=H1YeOO?Ae_rF+vyPFWt!rA%TpfH1a_oZq z^v#WS@7|g?X@W<%Yhq=5)46kXCr$*X1!!ukh1b_Se0awtE~?@5DMK4`O)Zs6m(Jv^ zTA9|6lD%}XeP}@QswUe&pX!4LvOBUId~BR!BAk5fY8Ta1?%S)Suc2?M_vzD{$mWKC zl7jgDp3H>{Jkyh{eLdU~V#;=GU$ttfYp`R{rj0qvmo=?u($rOd_UwUgyqB%JrB94! z_57;Jy?eqN>--9Gv)VI4vVxMQO);}GN}V;s-pjgVYVpNOrwi7v(>Bm5EzLK#Fxt0o z$F*x0JiT0Q-MSoE5FU{eTCi?y?Xjc2dD-sC@%aT=;SIIcF6QNXcAMH5nmXCW^>&qP z-BK~TJhr>j*unb2gIm>y4wmiQQ8lO1#7e((+t$#!>X@$f%tfFhS6mZgjqR;W%?xym zbq^oj+t=TjkQj64?zO1su#S$VtgMu;U*Fr>S=1ap6jKs4b!va}3;>Dw+!i^i(oIZ23th~_4*>3H+WlMun{3G+iKnKADcpKST zM71?rdb?%kq`8JTr8lJ(OvwNE@s*#y=iEUU*Cd8y1bX|p1(p^iPMH`}6d9Q8r>3rmHWmaf zF9ejOL>x9QI@%=!Ym$J<3-DMF<|21K{Z~smHZO-ZNkGK~WD4-*$+=c@;bTFNb5dpm z=+{At3+Op1r#6V)g%lUND?YzE$}Rr*9^zW5+DbWaaRFN7ZZwh3)L2RrEkZYxsWlun^ zm2%+o%Xru-@hUvAO{VNcVuf@a=vpZ)@gz`_Bq>*Y9q3xAs%uF-Cf72QldjwaT`Of| zmfY_E9t#r7d@|8P4RlTlcnZ)>^XU|(wnfc+(g7=6EEz(VF0e7OI51AH`KCFQiJ8S}iXdZ0qwvBurUOp%de{mWX7@h( znc>{Q)#5Nu=+4aN^Xkf8Wd=5INr`Z>v3xk>yJS|@Gr=`g3YxRm$o+q~YBBH9DlLZT zY!ft{BQq9xs?BH9&hcN!rywH8_@z;J($m(iJFp2(3ydzjCjZgO;NxOA9BQ6^=*gG$W-MkS7&-0vMP z`E?1fu|E-TaSCi$bcEedCglXLZ9#&E6Q^-X!JcVJTn8j%dJNPYzx{iyzt^$Afbrn% zV}D+X*|TIB%h?IAoHj9gZ{WH>mZM~y!zGqkj^Zq#fn8@U?i9awFmspH;F8W1V37Cc zHgTNiz@y?gkMl~l`^uhW0$z@yPku78@;}Ku$j%(9I?lbyKz>F!>&Z*)DH{T%!=>sydt2X{ijhOmf_%)iU~Y2 zELmL4nN1w7JD6s#bx`KyXyB4_6L=`d&v48+PC#eDerXOBmck9pUp^ga7gJ!A{<k_>wZ=4{HJ^`wjQcT!IJeoI3Lv6kHc9QxxFfTfoM=lI226 z+UA;&4^1o&-4>J?Oc3H*AjIC;D$msF(R)Ubq0pd%doP<=qlvP=mOzu!C9wwW13n7> zwNI!!XC5)+JHl64wAjID;&N4-SSr0l951y`h!j%^XOw7knDAiR zWL_5k5}gj&Vg&)IC!Wl8JnEC1CiG-KP-I^E!ezl91pyltEh*;6!%FetRzVUhJdIWd z9a;qbYY0dL2d>)8q9DJhg<*-q)Ps+uG>Fv!u zn<|!ycnB(eZK&Lm)NW|Y5h;4er%^d@Bhqy>iFFXTowZg|C~OjZ`?E7`6&u$z$+kWq7^9V8Z;ZeG?NxpD=v!6j&pa zvN~3@LxufAbHV@2Cv1!x7z~B2_B2*ZUdZ&bf%n9;<=P*5r^*CySTilcNsUd1v@JfhFcdH<9=d$c!DM3ClwJpcl-*Mu zCaj*oW*?#0a6(v~`_M&(3KKTPzw(}+Q-YdH^cW(APB31`m>|HOaD@Hi2gjn&2;-Mi zma`bHH&fLXIK_5g(;MGSy$b|ZXz?tO|IB(og{hUj?C(R7kgbu5%&q)QK9vkpL^@Ot z8cfK`5MZ&q&B4a>q2aS6%m10bq%TW6V2{b>VwrwjnxkF(Sem)=l7oy2O^%-?s7v#- zOlM>`;xKK3y8Z$mex`+=MOhsmH!(zAV2>=GU4CXo2*(rNShB0!^iK_6Vmw>& zX;(NC!yVR%l?)l{CP@6z^*535&^VNy(G)Vf`b6_GMlN&h2L2;2CVK61Xz}}UWLwbl zonK8D)|lO3NI3ZDh3=**({ta1);@U5{KLg$k&b{*1|yGk#vyB_ubfw=#RSf-$-iWD zU`w6Ak*B*B-*Vt@*U3w`&Npd@e-LV%yE;wx{Tq;d4`v^MYpHh zFDeK)$UY&Z!-jw5#F9Y94RW5L{1S(l0(=^liAf*)&zSe&T1SSxio_2Gt$&@H(tGC1 z{Wx`yMPcp4&*m*D$_e(Lzn@=X8gg)(O+xlR0g)B~hJ7W%tQ8Fr6C3_qZ@Bp>l$n7^ zNwI9nwSg^b1Jj;qO-2^Y zCK1hM70nhinyq#;+uUfj`_b$m(PHGt;1bc|7SZA~qs7ZZ%>71-%Z`=+iPngRExsD9 zVHK@Dj;-z;tuZ%Rofo#cy=YB}XjTnqQ*~ftcjVjLz@5<`a3-NmHGtQcvCYGxt*oL+ zCxBss09#@LH%lSMHw9K!gAUdSY_k&tb{}Zx4PfA2Ah_i}1AF%YJt@a_|BCi$HySE$ zFt9)5W;I}W8NfYd0e2M#I|n0U&kVsX2F~Ui+}jO0r&M%qI8igRLg0)8XR3q1w*ZDm z0bR=_1i1qk_8aibIlz(lpsPfp`^1XE%{K(v4LXW41eV?C5Nzbztszhlz_4tB;1myr zlQ(+3w)OBDvaoL8W*6)gO609J5ad><6?WZ;#J5Mcc|(QK!#;{Qy6?F!t^4U|1Un;dBcYzHp%@di%z zlAKm|XbMvy$DRO&z6}DwoPw_=@NQ8M=w{$dKfqFbfgx_EK!WD9s+FoKlH3Oa7^WN$ z$X+RU(17nd6L<9nKAFm%>YFn{4oz{Kz`+{8!)rK0@*=}c0|B24+})gQeLrUgPMWL} zz{Fa>$Co%$=pc7zf?E29S@E4y7D&$anl$-(1Vg$3^NyLb+cN}KND8I|FuYvAagc$t z`@+m9joBw=s#tRJx7?W1EHRb!;%q@ho=gLl#0|68pPX@W=Uiu}X#$FKwI)u#6J|Nj zYErxN0Tv$yUde_0FLtv3>g)amJz@y)ykgm2Avp0(=xT_5x z{VpkpUHVWrCnG#BD^kZmDK^U6#>N;j_?(&)l$IQnoDk4>G|Nb#5+|%CP#KK%ZGRz}2F)%AF zEF&d2H!D0hGs4BmJSNi1+1cF9)zZV=+Q!-_IM4;OQ$5JV#l=EXOV!*$-^5tQ%uLt7 zKvPp!t@_YG@9cC#bNz}vyPGdua0m-DFwky1dp2wFLg(o4+?6Y|^)yT!Ec1GEckJ98 z+1m8z(H+}BpV~#WmR@dwWyNRD9^bcb$K@+$6DIV=#Yet*^DLt|&9@*YzC5<|$`vDP z(}MMDgVO>^rj^v4IBw=*Z|`O8mKeKg_0r-kn5_-1^VDgefeO#G zuY@DysG9_x&%4ixpTF3O>5cC9X4(jpFX_-Pf|R{$xY8#Fh40dwzRAu zq^8m(E($dM(bnMPYuB)>!8s-(Iwsu9%eAksBfPP0(V{sCi7_cDar5TSOiNF6iV7W& zVLp0VirUpy>Bw4mxLrWmYe}iwB3Fje496=o0z!{=D=^kTmR(?WwJnNY-8s2=xr;a3 z&L1TiY0BpoIp-?*oqgAX!!9NxMH=>})D|1wS8m-}w4$?_;#0^Uy! z8kzIiv0%cX%+J$unh`fR=gf9=mK3(J30UE`$zPS1CuAq|NYb;jUQb-UWM-4;lk&{P z*C0odmPdL|3}NH{`TXVGX630uOYUCZ_Wt<=&<)PEDTn9HSSlw!W6x5h#zo=p{;z$t zXV=fqFD|dnKjX3J*|ZkExam7(Q_8P?6`dA;em`int>4#U4sR7pPP!J$PFdjKASrUP znLn;n-qZExMj1!Zr|K6fM3@p1{eQE9y4uq+lss9t9g$2Bj$)k^syGk4+SVeuMxb(A zK$qRjkBOeTe&3SXneL`N26eTURCX^oacLlB4aLH=* zx&v(5Z#FQ0v|6=(g%Icl=e(>nD^AS2^=8YJu-z{Gy}D66trM88j3gd^|2U`NO(xqTD7eOc^tt9A$IP0Nvm`TeN|j^-50h zSZ~r)Z0wYTX1JgzM2Eosl1Kj5ZNiaNd3}O&5Sg`e)c0xb{ ztCezep$LCSVKXyJgTn-LwNa{VQdrw}O{ngfI4EWHa(G*zssf*cwJhXZu3y zr!0zpZ#i%Z2yFcDp#A*%fC`QyUM|b|6C8Q;=Qvn=*)Qe8Fy)(ELG7K-!dLb(J^KEB z|GwwdCtd~xG%?L!DE;6)?avE$28}!VbTXjPgNgV&NB2Yl3WLdT& zW5R|8vt1L}!hELw;knQv9r2Kva)z~w}{V1-On>GYza0N7eAX7 zCG2~-=bq{IlV?}3uz>4&IqY>kWM_?zj%s0UblbIS#>UzP2AYX+{&`uE87aYS>)LE= zj7&{+b@bI^qr5{y+;nu+3-h8)jCG3hV}b&mogB^d4Kyq)^rIs@?QBg(^@OYvuRnd3rk4oj6{xcaOD;kzIgic4yYrtLM|3Qq5c) z_Uzf_8|PKLWwTpitf95pqepjhGQtxlPqg%OO_?#xGc7qaDJZtP^WnqWy2jdirUu1R ziV`d1@7%fSTaZ(>b4O%em}6w9U69}8$-PZ0nsf}5s^?XG`t)Y?>Sf^doAXVq4P4@) zLTW0leLd3K)GuB-othe7KCA56vxhMyQKe-CB{MV+AKtrQ;q3N~rcCeSQg_PsNb3@xpufpuy(DiZv9C+fF}&YZP)+TyjMx8C}IXW@!p zpPS40^7V{Z_IIi_HQPUemRQEuO*`@S5u5fR9z6l8!#9K18s9$$9#(Jt_FpdJ*n*zM z#WTgO)(Lgr*e`pt9Xzc5`^4LXKgl0Ho?gUoqI`Y>n_$O%$gq0y(Zq|<>~9~)JGq2J zDEc@a2$3lhm8=Me=dP>>Xp`wY@c=Ze{-{gdHzP39f8vfCS=x!_6FYUDfriz;&A5>1 zH?d=Jkx81#l78^8`t+B_g?bb_C1!iL-%}0XlL|fg1m*bgmvfcUz;*q$m(OMw9MgP0 zr$mh9u~aFzuK)J(`TPbpEgW^dn%IG*Gt#~wS4Ke zSFcuYi2C31YUS!xQm@zUc=qbmnpxL=tpwHeI*a$Dy;{Beu-fW3n`*>%uVj$7NI1Z7 zCCs{kfwlMen{9W>x+4XpZJ8LRC|S;4#lR|%(6sex((AXoKOCEVjq6cYY97O!WxMru zUqAKw{eA}Jr)(TrkwzEfRPWASzw6I8=?{km++`*!EAVcbbm+yZY)1~k1sB#GQE1mG zN|#u^+JT8>$(sf)zJ5?$f7s-pqg~DtW=BQWk68Iwc;-`Ev1|RLmtV zR>7ckJGsjp7`LjYI2>Sm7iVH}DW;tFHCNpfmXnSSWm7h@T-)VvfFrW{?YG+no2M8v zU(<46V9Gtd_WM0I<%g3di!yi!1)bxLIL*Mw`ouPnrN;c-jsdyzS3i=5wj27oo3(i^Vy2!a;v0S7Jj^VGgG+1@g?8fb-&*3(2p$hZsM2{{9f*9 z%)u+nGa8CmwwR|>zdK`oK54J9;oo1+U%sn3$jTwW;Ix1D?00{@KR7(Am_uXvnS-2v z&(&P~^l;L~}Xu1FVm-qoDDTAOt*4G%tPdK=! zUI^#yS-|rD%Yi804^0wtf?30-9^|VE@RiqJR}He0z}>^?)~(B>rTGUA?1WtIaP;VY$Tk99J&n_6jygD6-??*j!-iFcM!Lo( zdW}uhko^SPwrwaaD|q(o;p)}P3=DN1KfYH}TW(`xlo0EelM!xhZD?kuo0%T!+Ea}-bvu9p{*Jc>X(!p8xa}g>S`Gl9_SPu-hA<*cXqm)o0Yb{dO||9v7M!% zg?{a#T8FT}ti=m+SFW%L@UA+rzkK(ur4MzZqC+BELG#QtM-JP2TgAmkHl90|FrhcF ztoY5FXTAkFtyiuDrw7KD$GXNxH?3^4axvPub92G^wRIjYqhvzL`FxTUs%@ym(3xq{a+yteZ5sH)Fy4hSR53 zu3Q2-JFHE8{(@OOd$dYsXa-l6`}uqNCaUC3RDbZ`R(?SiWLkL66&+hUi&LkLrllvA zl^515)y&RGGd9*|^)v&3RXbrH{dIHK`b38UKI@;K!hp*O~^D~gcx6v#g z+{49~Oh(yQApdO1PSe%b*C!lCuJu6c+X@~Zsxg}IE?lvK{n6W31^Ndy%ASbbdHp>h z@nDCrHfS4^k?*1>IZ)^Uu z^I)M;$tIJ(Kfix?eA>Tfd2;QFcie7?FXMJy{PUR=w6UP=+VLRE)HF8lq9v>ejRI~O z4_l1pGEOdDqdPUw`QO4X3QqDt;2!RdKsMRT;{t6Q4<9b-)(d@jsrh&7i<_>Y7Zy(J zRRf=xrgY>{s1e_Z%&$kmUj8=RiGNXsx%xvz`Zk5BJqdf5sNAS1T5ACA?a>V$rXctJZ9@Qd+s8 z?f-G8rY_spITk_3n^@bB_t8+4r^kwC&I_;+Yc1up{tV7JI zJPY1#1MhcuAe7L^>)qnru=2{X)p_f5Bv_c7-8n>#x%QtCS;feza^UT@d$YO^FtE?) zez%K7{7%*$Hqn6hq2HhFUcc>cTXrL#4Tny{L5cJ=8=VAm7=jP~vXj}kQ-y!e$CDbt z)g68c;RY;%${&8~GV)z{bAVNB`I^t?PFfWOA9h_3aNq*J&V{$z%?qRpcBp-R^X2mD zB!>x1f&y2Ls))r31|Bw<5zx#cEuwJfBFh_v34#pIdA{DtIlr>ggO$VN$Z^I8yB*nX zofB|ml<4{Ib6~%B^X-z`E#m7^?vs0bEV$z6 z!)tsXSCF+Oq4Jhb{GOk$*7!%5dg{G!HQ(o!f7*f3aE{!MovXIL`~AM=*PfumTeGXJ zId&!U{rPkz+}zn)mt#xQ2Tjv6jN2nb7C3xbY5xB2_Y+ee1Sv2JHXV9gD$daSg!ROM zy$|*_>;M0=m~*0=Pi5GZ4{X92s}J3CsE~jE!u3s{8`8kx90 zG%k)kz%KFUAcI`vf$T(Yaf)o|9wo)e0T1uvdBW_HT0*REu-%<~r#7Ixiz6=#whAnUdGAstHt zW{f4&kiC15mD71yk>}5!w6igW3|wmKs39+j?(gr^&{QUJRWwNpuLF?QPe(DGa0nLaoO3~kH1A$ zX)wUnE16tsVC0=-W+3?B1%oG(f`fv?g2Rjgd@G!Ep!Yi6%Jy2^aI?>EKAS*7LPION z-+#jlg$^e7-e33d*Ti5SsgT!a7hUW zUM?fN#MkD*!4M`vH6Dim^UdIkosRwZnepOc_HDTZUSAJ4aIa10miODU<6~Z^&GNmy z7T+5<_Hb56I4J)3`1;1??ECMu_#199&yZK`RoK|9q)=WIc!4iU&>3f7PRkzwmm5HvTZoc-ShD_Jcp6-J&D9<(uS+ zhaD=@G8S2vv4}A->+B0SAgg0kz*MOiRsq?&X2`gp;97s$RtM$A@3K1}gQ#J4R*pw6 zPYM7nSej_E^V;N)w3Sb%Sw~f>dc?G8KAXW^b#n5=6i^*=eP*XBsAr{~me*wYd~U_F zm!WeFUV?g7myW1gH-bh{#d&A(F6uFxl>*r<0c}mAWc43EK4GqZR#R7mEP+N_|2!BL zKWk_zL$);x>GjVH3=FLQ6%_hXGUsKiT9@;B-v+5OCBEDh>z)_B|9@Zs^3v!FD@wf9 zMyy5qUmh90J^{WHE?4(SK=UC6ezlEDMI<0=9mS$F7P_@E$``%c zp#hnI(b^I|sjZQb{lJPV2SZkYo2RB5H@xau9XUDo?#`k$x3?EOPSc5IUK_N|<|+6< zU$b3d8}FsgKD++m;SS;BOf_KzMvM&1&qBe2GHnv<8-7a^xt`B8?3VN0wMFvmoR30g z;HA;A1sl0|!Gki45wqul);caO-^}EnfH$)C~^t{qW({ z{P{EO9jz)WOWN8Sr%s!&ZQF*Riqe#nxcBd0-nw=9^5wJIdTR0gy{%WS)Ez(W>E)8O zc;T{T3;YATRCb+uV=j5hu*tq)O!Clv`UCe6FXgqh$+`{PC zu>;n=p7{k?mYyyTAKrj?ZR3+4=X2UyBRYk zmzEW@T)rG$U-Ru-)5?{L6B1(@8mmipY>#NFH*74{C6+qb70o9K0R`a8Sm zEnE~;edu6XV@lJCrZsDqC051~{E_>Qx~%m4E)UPMH$&^JjBMXH(VO%FUaT1A~0(8@x`Q%q`luAu-Wr z&))R&=kwpat1H>MC8i{*WQJz>tn&1XB>%!ZMIfU{ktVCJ+Zu^$T=n=w>vwdLnAQRFE!g*-$1RV#&hhd0!E#i>9Jaw?is*tcK1rzgNQF?Q|R zgjK8J4;;uSDt0L?b4zYiuUV>@RGl#EqIP_Ob!u8d@#G?VALVJMwd?9CIsP*+azHj| zaR{qDFyC#(!|{F@cB2xGj}K0?sX8+;Xii*uYPy#Ft`^IW zmsmv%9Aj@d1T^^1atN>DiTbQ|aj{3{t0yxdr37f`7Q8z?YwxPZhgh|kPvtz7Sis7_ zW>@dEcVXfo$C=KdWq+l_9>#1)5ObAwzD|Nk3Vh0|7hVd*7%OW_q9d zV{QK4IBV5OikH6y>nmbKwB*FH!T$U7UrQ0^OEsM^t98Sh6)Rn7>J8;xG>5 zWSPWvxBLQAa#82qRHK6$4ot!o8yh=WcXFybCTxqCFgExY+Mlmho!kie;--wKFlOFYnkg@qfglxgLKF7#NuEXa%f` zxN$?)J@cf-f%PW;j$iLBJXvsvZ|5t+Bb>}38;&}tcojqlfmHy*8z@(qUzP#ck^AyZekXhcyw3t5(jOD zmy@`g6<9mVW-~FH7+m0gJ?Zt^15QshmoPL%CkDW77lMmEPhR>c&f37gLFJ5Y2B)? z*J8@wZVi>6_Hk8~a@_SR+&l&jv*j|E+rH>7Y|FjhWBRBwr_hL}poPmY;s5WW;-Wo< z0o-y=KJ**Ke|gL1n6Wyy^fu1{PWLU=D-w9QI#)cH!YMjuLYvm94Fb(X8Y|fY2 z;>haHF~#ZDwol#BkF%Zomh4KIu;?Jy<2Z-a0-_Ngnwfc03>;KF)eQ=dGGF{xaeJw7 z^)qp16{QX->p2e&GFUS+?D=p+y5Giey|KV=$G)fgs^7B&=G%U|RlI-V=bY`mPre@( zw?FVhD* z!eu#|i@N+*Ja*i1)YtB>kjLGc(g}MOIx=WvHTnA-6A_M4(dE2xk6B51UaRXtCeaNy z9R5#hjcM=+y8e0@tg1Z?rCMh($3Di6%K6^W;8wFp1xhQwupQw@4o`lM@3oqy!nw6!ftmaZBMZ_gN6 zN==mZ3y<(^);O*H^H3+l9Rmg(&J<=R0TwQUhDI%(gecWX6E3#|i1P9&rYh9^P4<+G3U3VHS>LJ4ksR8jaQvHSqim|5f_C+J#s^bbnO`_FZ8#96 zk6UeOBo;fB}#@zwslN%+Vu1gn^VZ{tpaRz zh3WF=rZBtlC05^f<-o3Ez`*`NfT5N5qA**4%c?UEIQ~~15@C6K=Ub2t7sCZ+BfkTa z^;D9=@{gXi2#@rueiYonBf)SiXxg=^b%7gxiE!BOOrDVV@32c%LP`U>jew>|#KOtF zlG2)LF6`nehwe&GaA!AqSP&a=WKrsiwwde=t7LN-(w?gFuqeeghL|7Odv;@AdCaN% zQqznNJ=OQGt%_N|b~W^J&N`X-(s!=}h1X4QXk-oB&@h4oF&)zr|eQ#AoBdhO& zcMPX?Jo#1@EXui}fmv%qzjwmq|NEIZme+M##}wyPY)BU@aNJgqXsxe*kRigLVbWn8 ziy0X#Lf4EPf2;}PIjmDTJEd?TcT>@PXU7^L=Fv7(0eCr+|Zq5h$MYn%*=+pej z5FskWax<=J={vRu|6Dl&{+~4E{B^adAa+y#u_=cmd%n4^zk5m8a;N7lzX{umUEW{i z+~Lrn=+PPwbM%3OdtOA_FJucn5NmQsDpkT@GB=rWo;Cny@lX&|hX=G`&+79MN|7T8OK44^)Il&@Q zv3R+^`~in2NsJ*3f!i_)=iTV`xjDseX0*b?N@>NZzKz_@7gC$I$p>Cwm~y}*a3WJ& z!PMKEQbIhZhOZE?y1*dQP{Urx$;-ep$6VC-fJm)!7|XR_pEZ>i<$FY?VR`K=Dc@5=Y5cz|H*Rxm&p0wD(C;0Isezr`G0QC|Mzn~gVX{h zs|74k3)rd_aLii3wQB*-tp$9)76?c!6q2%iVaVKIDZrhu@SvKgx1%tl0jszH^WPM! z7mBRn8|n;>%cXYCi7B2f{b-S})Z+DFv)4>yuwYgfG-J>|;KcDzGE%ZaF3YCgDc>YY z!EGDU>TiqRZj@&{wCLo^CE<*V4H=j63-tzREsofg9Nr~j<~1>bl_5hw*Xq<_c1Oij zwgwZ$CH7(YOBy9TW>t8tT6E&(k~23&qNRk&R|!_0T9z_vY2B+S)m$QGuNXrU#F##^ ziU}lIpDMWh|6^UI6@&AunWa)o-DfRHo~l*iwQ}+*$Ld!yjlY&JsPamj#H4>gW0m2G zCWm+?M>h8ZIo(xiE=ekC5tmfC80LMRSXHM z4m7D{9a3ZYxa?1=V4Kj?uv1I6gsctUk^TKe%sj2Bx4p!!Wu>TODW|{Eo;_=->#yqI zDrKE3YmXa>T&Y^O&}w}&v$W6##^WuQh1y60z1 zWKz&$Nz^M!H}Dp=HBPi~P|)95#F$g!b4f+=?X@uBhl186>yMil{k|piD#?I(qQRC= z%Q81ICKz(wTs7ymhV6;}iQyk56}N$~=g#0M6QQ|otWG9)+n^CU2G8f;*2uxM+x=(=o^ z8EpNnSdz)WQZ&GF`ee%@afdg?n?-+zRyi>JpJ2|XBCvl6yIRl=i|(xq8@9&&-l}2E zP-X3)J3C6&+<2;kc7XQQ8tn9uCVIe;oZ6%3}x|;rY5{*yiv$BGk}$)W!tWHXR9fp5?f>JMO?NxxfF$a zPH$1)$Ifufna!4oL0UmS##G=_5p&jmLm$5vGdC16?ar3xez05E(es?uUZ#heI0X{d zCiFW+@7kxhORs73?k(aErIy=9?`Mb!VfwRWYxaKDIa@et4n!p#aH-Bs@!G5yy_W0E z0Ug2hPrG(Y%+cDw$nalFx><{1eW}a6)@_OT%Zv?%466#%r+g30Vm!>yFsrtK_3NTq5gGA6)%)k{UfBNi$eEcd z-?|?4&Dk7ib3m^7XwaSIqC7{VYYvL{#Jr0NiF&^kmJI7vbJZSr8x1A%~TxC-g zp3orI(6Fydf0qhGA3enE5H;O(H*=!Rgau+hgIHPq3(k~#utwuh&~k2R(GThh+xIoD z5o`XluiKg}xMbzL+q-W563UJ_Ry=F-8tYR`J^O35X4||vy4q*giZ=&-y*`Et`7Ip#`zlRC51@C@e%wxvcJ0?krG+hoJ1rGDNP zbHOM7-_fMUuY`^*wka<<%i36`%W&w|i5c9wN3yNXl{Zav=V4G+U|ID)oHbwh*h21u zi@VQnsy_ey&UyZx%j;`){qs5Xd-egA*eexXSHAU}*R(pyy7xfP+zTOZ<+y9*4#x;E z&(3i=mg69i5jD-}qS#qRi3_!fCpv5xi~o-KX_vK|>jlqGt-bU0&W(Fo$9mr0aPPgbX79Q!J~w)`&L8(( z7w~`X&DpZ|LO0%CJMrpGn`Ntxhp%~Fr7Bddd1cS-8ujhpC#CA{TD$g|k`}{l>t(Es zY@!p2HI`o5AbL)Bt_=^H{Q%p{E9ZZn5%-ndt*&v?@WfsAnrZ2)F3E;_Oc7$8sXts|~YM9Z*QrIFo zp=H+PmM?p6c~@VHH)ZFfuW(Af!q5rwRMkvhm*2t$XhI@li;h=wX}33>y|d z(CA}u=zI2~igjfl_kU{vrwe`CjhOCUzL;ln_Sj*@o_kC)A7rmuFniPYvqBCJcyb?b z&%7S-PS|*Y`M-=i9kH`*-(HbCcP@$V(fW5!J$4_>;@fgr=lO=&cfRdi17;NO+U``*1dw?5;54ol00&pFQx4Bx-4d;h~ug4;ol<3mv1o>#M0 z?fPl=fkj@lHh{C>KvS;HjmU!^SpRr;yAPCz)60*V409f7RyheAw9*d!uQ{nvBP&TDAbyRs z;A;0p0s)i0a<#6WeMxg??ewsw=t-Zx`PqM;ep8o8Q$Tj-e5M7=aU2W*%BB+^ZrIJV z@!P@g{=%kP9!Utz);3iZaC>a*U@Ulbk>O3FX*|YyPn>>;w*7qCRLz|DW9O&u50(0N zz0}im{`J=B`>OX-{w3R+>(66rao~F5+MF$4lD&O~bK1uF4);TTzg%q1B=Wxg-?sCQ z&14pCYoBZpyu4savgOY8d1vdl`|bF>`Mv||70da;R*Q@O&il`7waD3Owfw)m5iwhg zbbinDoZjd^*F@l~wu>F(UM4~2%B^0E2RtwSc6CT;^qeoS%Ur-x>xtoNo~2SG2pc!|A}`R5{;yE;ECkdQH=f-Pa-+{LE*T zY3{uvGlQS|&9klj$08N-B4Ckg?;()~3=D0HedpSJwM;p{(eJ>ZQ89z;F-W+7Sb^E1qQsy<^Sl6an}UyVL-wgX)q!nmv&0lvFt&#Xnel{vOgh#p zYu_dl`6=bpRNZ*786}!&=jO(5lDMGGD0V4g5yON7Vht14#WOaD#oqezzu`&-yUhlR z2fQ&m&CNLkTbP*Jw3xRk6Bj=N~$7bj?9&8fz5<1b#A$TZYsZOww&`EjQ zPfe|A3Nj9?lMl&!wl&UA+3ah6zs1vud6Uby8y zo6CzuOoCP$)LsRAc+sTIn)UkpQ??Bvs*Z_X3hj&n9xE^VzgO8B672748hW1PMiPU0 zNb6(?hFKDmPB<_!um&)6NG{-X;%0pipeCR7HFVaeU(Xlv3e6O0*i-a0n;|3c(bQ`* z{3H^Xr*60^7M8!C)jX!~_|^Vq#-xab7zyzS3w-{vcpPkLmx|Kf%u*uI5zBCm<-qC+ zURj2~Mv<>4VoEZt+>W;gRQNkFyr_K<*T%IfT%q%G?)3P^f1)Q^N(6T$GVsfN`mu0= zdzg9Z)bO;OsUKJv5*KNyIWo59#mf0J@L5Sb=t#bj&=6+(^>=y$myV@NtDVt<^5^sF z`J@{3|1(7xU1St<^+=nQ+t$fB&$-}%fR>KL!bpZLJFAyVP2Hq3m(Hv^kvYFHZ&A}i z#vKQmWjt;)HL^-pXuRM1`=50BVSaa;!lM_356sXMSnj+a(TZGgPNKI)AZT?U5gmKf*fA{db7QqYx748RaSaEc@&qF3Z5r5_=h4t+_1pC6zB>5iDa5MVU!koBQBhYw=IQrxK`kqH z=rEozh+;EZz;@=21GB1C=LQE$hQNJCrfyi`$+k&#o}|q}F13qG6}yGJX3a60y81~c z-!YF?#wm`f+jY21l2=;I@%$gGe&h>>=E_GB*=EOhMFWl~+gD0@UTWtG;b1z?@POg^ zo+XowE7fg|zZA)_Q(;~5;q2L`5e7stoED7 z(Z2RmL)xk(3!HYoa87x-spsC2h0=$gCtIzWp%L;xC$CFARmHM_TOgCU<)s7Df)yt# zPpK?5-1*Xg-OKWj#&Tn2-&lv)pDs>gxT?y-dY(yO0%PZ;=L`H5S9w=iiF8>RtGYeq z3^2cCwC0q`s);YNf}KRpNiXGQNxtd-S84O5X}d(CgBq0fXc#iSdvlT{E~4S9)B(52 zFCMTu++Yw9pKyKRlF+r%v$JCbnNCirdn)u_cm*5#maFHct0XYRajbD>-+gnYUCM@k zRg7s9nU3zgb!2^m>&f(oqPOyRzjZPdto2-#;o6e(P3iZIH=Z1`nXWBj**eendhF$+ zEtig^Y|xT8pklTiW$yWlkp89U{+P^{$ zg%2DwWLX#$ML8VR1eBVE-?;KSTQoZKeHPGM;;LXE;KI;xWV?daK2kKPuxi{yH{t^U zUw-<-d_QKL1uWGb>-^8Y_O_p8X1u=SEaQR?QF!j zlTYl?Gcm86yVm#F)YHqKGDz&&WXtsGdxz9x^ZKfDp|LX>`5CS;opfOhNKgC6Sy; zM~@2S*|n?|IP{(IhwKMtfj>#9w*HJ;9Pe&u!cbsvi!UUBS471rSvT{~V`clF*3W-^KPbO1QNxhI zc1Pv!svVzSWUg+!BhD_eGrghJ!*}*;?)g7Z-Qtlb|77teardhn z?AdnA+@io7bfG~sVkfu4%zeLit1;Nltk`>F_TF2}aY|a-SxG=esZ$-mOWk(hR zN0AW6#vgY57Kf&HINV&kmsN17OwIu%5spvE44<9txf2iam`q!>(P9l_L(gXpzAp}6 zv<+qnIKTVt(4cwXKeLa6Ov-`tj}K0F*vA!M_pI1%dbI59$qnC5+r=c?KPcXRq`}Ez z$qrK&hiO$E#w-p-EuE@!9MoMn?p)p*_n9f~%W8J4KF~3F#)-)qUJNfh zZMI11vmBnxv3ibyXEtNQlr;?vNuJ%so?kRM*8Dua;M8ILDHhdh)@NvY96B@o+ez5$DTzfZ-&EpN2iXjIU6TyoS#$EDLi%k?VIY}0i2>o zMK^hO^07AX_jc}B?A?DsRZNya+_mF6cL2kQ7Dn6i^C~%n{>n;i4eYl#J+0y5+9pf; zJ0?4}Tv%XmlILzfOF+=Uiq3rjoEm#ALSh2W%3N;0acT0QfdAVHxF>gg{-0kujE{2fP2gN`=)6@`z`rfQ{R}}Z5|{W4R2(^YEg~oA=4|@EV2eUR)87KV zn-;yd9&D=9m0q$6?$K+;GMo8w0}ovDkI-R1-{1) zfl~@Xt9nCQE~uXSb1mMfqoy^qdhQ|roqSUqu9k*go$jC)H1!nYhwGadZv1x-wr;5i zn^AGSy(7G&w>KpBdV5CDWPux1re+4Er@MBo(qiQ*I@??PG@^8FZ+|N1GY`(mf30$s z2G9B0(b5~)pn1K!Akr-`vRszIvEjOqXouxhpSiUh^HRf~>^NmB8`Tj!qy0hH?BrWB zR!21MxG{M_Uro~PT@_8sUY%v+U=lW9R4h24X0dwW4T1kN`WYrNO1uy+e#zYUVaol= zz48r8ni33JE7tQ^FlJwFW(;uu$6?N(c;UlhUDkzL*eV4!M|R5mY%kM_iK%sWTOF1y zJ9XBMejdTF>(UHL%A5DAo=7M(juvF_Tq&Nux$CGer|D;|pxWlMbKO~P#4y~5Hvb&` z|A496E>?!!N28bMu3EYE=30-K8_k@jzIL3xdWm(S1$(1FtC1FKqQJ{su~;q*4}qD_ z_ue~EIzza!U+|#n5#Jd8%FZ*zH$L3D_l{R)tH4RdirDE1_u32Mp4i53zS28+!@U=* z@!Q@UT0c9;Z0@aj1}CR;2mj$U|B~9N>)84Dt8;)SXV;{J$u}mjvL$T#a_G{M&R?z_ zzh#%6G2!HL>*V$`<1c(L#nkt%?A^7-cR9j1ul3&l`P3z|a58&@K>G%sZB3h4HDY*w za4A0&)DN7rbM0*x)`mTz9d}iyiNBlfDZvod)u&a^tM^feH(*le(zSj~LYkVK>o*9s zTJ6ye{(nZ4A-45=%;wJXThC9s5#665dVi{t**E{c9o9i}9|f+~WS$#)_r%?p z;A^UKvF5XrIauQ!`X)V^dP~$UPFpQ$hCm~rCdQa33imcXQJL83To)1eY%b%4$BZ)~Rw^a;Z+N0~aiaFIq`$nkyuT&+=817^ z+sXJWMcedV*X4wDcb;mWdo;}>ak4_%!6`S_uTE=>c&h*KP^#Ut=`&Jd)Z&(!a$1{p z=DeGz)0d_d`_LjU>HbycsV5${FMK*BA>B;SM$Dq|&YeW{Zs{ARTPB{EY+J~yd`(g% zENK;QqyJl*zZ%_+Rkmyez5jg!J3q)QcP}*d6ns2oMa!bx<-Mi;g3qpI*Kul}o>I}m znY8v{Kx}A{oWFnr1NVWZum>D=dKav%FZ{iF=E{wjDP`_?rjH(&X1K+5GRui|ZtLtd zi|W0*(!EpUB&*i4y7=~&*B?*W-Skzd`-;0Yb7t9+ z=?w);U4<>T0o$HDVkgTpDRsk;!Hgn9i+AaeLrem_2KS$kYw5+Ye-ChjA7i z6J8(JnfdI&%!urz>y|EI%?uHFdBCjmpxmpKPcxHaGwek&oh@I_bmP?U%a%Ubefsqk zizz&EW^Wi9G8iUIm026s6!xUqOq^xG+W)(DNUyJG;yTb|D8Z1TGAS#Pvum4DisS0k zi80+?{z{&W7N(hne3`Q^bY&X8oPHv=|H0e*EsxKB<(he|L45;*VE47WJulKGG?v!LjM8YM2uTn>pu4wS2+JxBjs;ytt?NH;;1%-;`*(4{4fw^|1o_ zcN!QyT7F$~nA*Xle_-|ZRUf&JzGpG}IIBWzYR1R*iozrF9<Q`5_s*C}tlhH>)izxV#g^xy1eJD0&$d%jE8o;`1$!613v zsH{-D{E5VEzO2A3@i1WySB;L#1@0Fb9w|H!wyd}7yO?yP(SyNbMvEMGTjskdCs-sp zJe3YIymVV_xpYnCp9uHc?p+uAyDK|w+&S#lGuW?xyn-d4(V>|uL2OONa+mn4M`wl2 zsr&kVnNFa4hn@SAZ~Ka88b~NGpV@X~hGoA?WK5?=zh}#eFLR^5v}Q`^*-K2$C~GMw zSvk$xVv|?h?6Src-_8cFp8Qegiq5y01qY1y^(7B{D|@)TJ>qNFbk3CNCsY5+I6RNhW|F4dh_kZp=^Go>z zp9kf3MH9<@6yATP;o1>DpR*#o>?L2~GU;@c_4}4DtX(^$KQ7i?e{tdl$=RDuzL>It^+qy-Cw|l>g_dvaP+AgmjBKDmuPgr9A+%c_Lvz(v7 z;^_USUw6l*Xy$XST{)BS%|}RlUWr)V{-Mb`)fkj-@;SPtwu?DTl0Sj(C_@vel#cX5{Ab6;$ol%}AFCo$7I0L_1WW-^Qi;vFs z$vgMyRDQhQz%`AJQ)P$XGM`yys$44r7@JKUCD}rXRtYY5)M94iIJh(afXI%j@1Nej z7Jt{Iz#R6UK_DT5p`A-I=uhsO8wm}f%z8O%W-A6i zg_f2`CJ3}GU|>>_n>JD4^uz91&&&Sl7&3f#aL|yc(n#E4y10j|Nm@Zt9(!n0X!66_ z!gqq(h4`L-%Z}jixu+cRKlQA%*)axwhMebizZWrtGT7+6_!s@7;0IF_L&f30->cqA zwoPPMyQv<^?{!W*~Sds8nlhDcnkNbWOV zIq3>hKjQnCI=4kyth5JX7h!-Df7K|Sa36KoLTX(b=z$&_Uk+A+%7Vx_Wab; z-D+M~EzHck#Bjl$&&#I2+xP3=GG>O4YStgzZrHtEzT?TGC%SsajP{7@y}kFvz)!Q{ zVa`+w$(X$4sXPWOF@n3j*YADUclzUhSLxrLAAP5rFt{9JNj5oLeDy@m(o?TCS$}fX zJ6uzI@T?q9Nj&Fbo#JzPYqdY_zI@IhXK&_%mZO}?0=1^sBD43FUi(w@*Yt+*b~eu& zsk3X%Zlxwq^bk98&Ykqse-bjW8n473_XV3--fNtE((=W^?tc-_`tMKi(S}C88U+?*jf0#)8=A!SD6ko?ILKSHp;_*a0*AB4A;C!- zTGVV5xq??565Ui#VqEd?a@36j*F{$giEp@@tXIe=5^*v<`tdapJpt$aHw4-xE-Lb$ zW!-(@SnGJYdp45&pT$)!DxB5tF<0j9P|(Bb!(YI~HU+aQie&G%`CD zZ@1^9guJq=R@B4<83|^&;|o^FF}c@Hdg#k4V8Cj6>O;f&=tc9rp3YD@(beD4k|dvL z(x88dExv0Hhw|EGF6-_(FdsIWwx4gZr-$7o1x^RIFrx{KraPWYVE%u5(Nwn59Ugfq zJ=4Ei6EC-cEJ%Sb4XSix>Zr0aSILarJX_hA#tbbSYx#i`ZC)ZjgFi6Z$HR2cc56W{f zQZ!gBH1X%DY%{lM3shD(=Im5Ge&zGLu&n1#c$6gzyf#h$yyt{;Y|y#AKZF+?HxYAP z);YN?DtN)8$!DH1Y-mgB=o>GU@#V8N`Ag-?E-_Al=YKF68B$Z?{bTs#*XqUyj2Hh6smRmV)Nm84N6CtPV_S4tk7JR`nnLC>|%At$Mh@ zfn7i20Pi8G;Nwo;)cy-L)O6{66c-(Rka)6X4Xx58pruk=;^U-@f%X~7+9jiQ;(IdlR3OL zud>=@=cTPXkGy%4{yqD?fz*?on=;qMDZO-lz>&cH&E$;o|LC~R2UB-4JL$R|*PM9a zT>0{vh3^>F{EvRdhXh`msNinjiHsWv#x+ z$iS#I`Q?<&yl zY%9(QEi7?bSu^p5$_tjh)wc!aF*oSWFrVfq_bH~UXQJQvqvspyjJC5(NV#tCbCR{2 zDMOWvvCHBv^Mlo9tCr@j{m&B-#k6Oq1C!70WFLNq+Z`fbYdRRS_9^VX@|*Dhw?fZ} zty6y9p38NRf$yQ5z=9yb363%kUZ^OU)gM@*Cn&V#{hn8cdZLwX?K?4@|MSY0wkx(9 zelzY2Y;6rXb)(WmZgWl1o&91J3hbaU$b?61*$Z2EmRvZ%b;>|8z?gx-hVg)imVn4r zh1)Yg!;u1OJ&&*W$dVb*Y7`;B%sb`RUIqh4)}FqSrN)0%8dx`j>J-}v59Ey)9BvC$ zrO#WT_}qH`iSx~R+Lrc9VS|{?5=U6%W;StoY?!%0U4$?4W+T^{#wHh$BMSNqyJmc0 zC|TgVT1V_hBeTSYY1`iX_hQOx-+kvLU&9t|+a9J3)^VTiE!AmQ{VveH>eBRkB@tN+ zFU;7EK9Xiz&=q6%uGrp#Rjyt&FIbLYn`IMMLQ#``%|fQ+7hjX3{(YJ;d)>Qo@xKf| z?iIUSoAV~^yTM7{zE2Vi2Y7`nZJ34jSFkx~|5o?^$q=?Kk|AgB>uo2SGSBY+`=wdx zRgnK)wrhK*m&psW$gXfuJ8^r)*7?_6=eqT=V>KMuxC0Q%-#C=L|WSsNxWCgY!49 zgYb{33^7ftAr4Fj{Fvr2Fi1!-C`8RR{jb3Aq{0$vHRfFidbfmeb%W5h@VYz{kU})%I#bicq(zqU#(6CWk|bIt{xI966+# zI7749#l?}oZlU7|xvsxcYAd22G9KXl@*w@_Lz$o%yE`u3Y8CwcRFUD$LYIh#!d@<7 zW(rClPbYS8&J>VP{&zNZXSbr4ixLw9-%U0t4u`zlHii^O)(mg1Bo?onHpdSO_`O)< z(m3R&&GKe>DB#s1Xcx*8#m&pqz$?`f8GFQVA3HB!18>o62_aWWtK>LIHxs)9LWxP` z9uHZ*MTz~Ky)@=XRLEkl%GrUe4XzI1i7U=2*8RWYHYZU^>X=m9;<`8O4-SOiO;t{~ zs&J$*(Wz3gCPXGzXJVqjqj<%IKRw!5LY!3p9GIZmRK9n?|0itw8hIwXZC2$y(7xf4 z9OD7i9c<@yCkhFP2wSmfFf=?{c%%Bo={+po-g&2kI2jzhge(NxUNJOC)wtyKENS;V zqH**19A1YLrN;$KCUu7_a`EW3i41ePHQ8IwLwwCehAW5GF*ux1yq;q^sa7R*&PBH= ztuq}@EJ?8q+9e~w(6Fd=XKSERL}tiSw}hqdc^l#t7kuYzP~|z0epTs6>kU_qW9<#9 zg**(ArUbZuSH;JSxV7ak_Y%ranX5an_zUvMc`s!du*)ivZmL84>JW?mbIErsg_{jT%=C#q}LYVOOrY#bj{oVDBqj!84~J(M6J5tQZkAZZr1nIIbTW<_bv`1S0|oh1cA%j;y8 zxBPng!NW~pMgu2@cD=%b5>2{!i?Hf|1*#@xaOh-rw%HtmGHjd+XJ5f7Y}cUMyF&B(MEial&ZvG`Ya5acf;N-X4o%x!;xY zIWOtE>UxF=?_!Q9@9tG|-22Y=%c?K?bcz*O>Stt#>MY@BUB8uO-MK@ouku_z#=Wg} zcz@y1yBe`47f)S#(xrVWlPV0Ct*>e2H%W8&KAwqg78@!%-`A!UZ*39P+ z9XTUY*6rve4Y!<(r@49!RZ9bw{y)f2(^&mOKOu9&%R{eoUOZbGa>Qv}RGZh4-Zr-V zO2^(Xt!X!W%d57kP2eMs{8hIl22-rm7z|>CJX@HOU5?6a$XsjK%Wz;u+^y@9Ez;54 zGX6{1jaO$ZQgvK8ai&%0{VSQW#$rqn3}P(jxK`*pP29M3LqYrzeYZOwtDh7yw0v;w z+3-*4t?QTfk@L=TF*U?oiDA6XFF5;EVvd7S$C?$-^yV12dn{w{^!xCC-Kz@=*T!-_ zjQH`i_|2x?iAfAB+MN6h+NvUnCxUHtpEaD=^k7?}ik3D{Is3H4SJFZsy)JF=wwm!h z*Cq4AM#l%y66@bhW7~N32D{;d2ZHZi^>61z@%`@*c9s%3tor+4`&?1aH%TA&Uwile z*R1uombA?=URL+XO=a`e6PqNxd2a|E)e4?sw)==?bhlQw&UVqwjxxo;dy~FTREz$PyN=Kf}JVyj156yN=FqM)!7H0lAheg9=KWn${ z0nJ4bTq~x_haIq65WytyFmZ|-PfAZfWwf`J6Tex;(iXK%`~E8?@HgCkb}Yf0C91!4 zL(wC{nM+hw=h@_Qr+BxdFf*jy-@Jd3TYypS5y@lAQ_Q}Xm0iwd3FBYvn6p*VxwO~o zNQnA+2J>%j4CecI%4Zcs$3!c;DSWTi*q;7;s^f~%jOr~1#N4J=9Gt`FP`vyxL&f#P z1&*w1HZd)k!GE(<>f1J-YWDMWeES@>Cwgpm*|OE~N!UfHwqDt?kUdBGcOFqW)7sVN zufg1~anh#X&C*g`_n<%-*B~9&;2%d>r^s;T zFfy~SGW#h0mpsz(+@W*+4+aGbhAXX31})AhvG+FJ=lH`cW5XgE(e3x)e~UlEQNL0P zZiUt$3D=Ipi8i;{lPXv|I*z2B*}#y{8dh-B;fQi_<58b0ERi!BuvYgax z;qG7=I^hV<_8;Agf4pLx)7toGPnU7ym7|eMjy~Djo^8yLbAQ=NP0{Oh55&D(r-Zvo z6f12{SUMqjhortmo0UaNG_UJk7oU=!5e`+&_7yGOTl$zC`m0xO&Dgc1ylU2tot=j* zKUb`GSS!WNvEbU*!Lh=D`NJyrqWdvVIx-VGJ3QJY=Xkmo1gr{hn=^?VmmSckex2op(yRXWQ{< zQYYpfbW3}iz5mto`RrFF+&hvJuEeqH)YBcS)w%w3%-Fb8vfXh3=ZXy-N8g_)l-R3s z^TcuX1>H7`%MAbSnJhhVj?U`cM<#hRx@J+KNMp7;<3=Jz1j%@$Nxt-tc+J>H~61+nBy+;$yM57#;TF8zGiO%i(if&UZCO$gE z%50$I5Iiy2y{^R#~Tz-1vjC#8B%*H1h)#d30*?`-qJXJ0ge(*5V#H?oD^ zTrM<+#c870lbKU8gO~d+ben25^?z3A>hO(eS9eX#4qqRCuuar@T2AEV^oz?vcTdZW z-k$&P*i`H3d9l08KR&y-yujoF_W@b_9>FI{) z*Y?aTPCq~2v0cn|R!QdN<$=q?_RcDOy=H-4&VrpH8gG|P)yuJ|c*(@ITv3pzf2QV< zu0w|$xp=x|l!}+0dT8}uQ^+d(<>uA*_vBsu`EBMs=^*))K{hv~rPMTB3?8iT`S>7t z-+8@{HNU1hveh_5q#WQ__?1)0;lP7u#V32YL=rjdwuyzD*v;15^kL^mo=FD#m|{15 zaC)_*O5pH&J05+Pb`u}3T|&W5A8n_dism>vPe$TD1M}A#%z<`upGX%jlt|yBZ{HH6 zkjlQWf~Vj>bKDe-E-sOP0C%?eB?d=SwsvoF;#sM3{#5^_D@CVYF8g!obl0Reo0bb7 zl`-CFqRw>w%&ab-jJ@B?=1lO_Tm86Tkwxes|NSc-i3Bvv?~_n))YP2w+LuYV)$6cp zeAATO*2SMT1isNzofzbqy{T8hZ+5b9h>E++)TOLq0f`Ns0j^gUSTgQNlouBBYMjJ5 zL%~4t1(U_54n--4#~z(AtO~8-dnUYHkks#c?Sy0Q(a;M`F`^D(QG#BjSHr{|OfE7C z&o~fi&-Na0qD_%G8NsasRGhL$k1IJS#7B>bO#Bacy_PJbG;yWZ}X7$6%F0i%(zL&tS%-8q7IHB^n&pnnWZP zFgD9cI5hD({n*9q#UMVX;IN>0!Q1tB&#}aB+N{CxwrP)C!-DmkLbv^%vE&?O>ai*~ zaDHOLfsO@&%Y17-9P)IxIk1(xOJ?D&_vfS=&X}?{6rX3Ez|?p)QJ`hfA%4OC5exzo z47bGYuw`I;)VlgurRyBkQ-ay^*MGZFwYd9P)MYX4X}gm?osXCN`!@5nUF{RGu!_GQ zqUZeoJn?P$rP^2br^i>nKlpwB@1>p%U$W)@^ZeNKSGS<{-RZa^J#Bm0*(NlFYbRVh zW4>^?Wq^i$0t0iD0fTMLhvqj?{E{9E8%1xtWnwdQWM?yA6`invlX*o9+w@D?7CZ}> ztOFWN114~YzF6y4^Lh5`sDdVeElkY*7A!(jPq?VFy=gU^lgPW7fk|mmKx-<412^X* zM}e*hEj%BlGq4_LU`%OX%$niEYQxZAFZsGTF8S^T4j~IpmBLQn8YRb78qQKo587C7 zCi4HUmpG!x^njH?;xUKk2|dtyGKK;MW+Q_JFP|16rI0xFuNU+fCnhqe&4^>v_ptr5 zb!GL6Jr92DbKe(!D5&;kW4v~3r_sNqmzp@9q@MjW{q!HhwT=IU6aFYQongE+srlFH z1v<5z-XBya%sel0-+5i}nK_-Bv#y=Fp>G_qZ(i(V52Hna!dyk1+#wBqh7t^%JeSN< zkF2c?jCg*ZNv$FEK~qNwlf(TFGmkUQVPKrFAnX>GkVTW!6a{V%X^uOb=lxFx=QCt9 zi7_tlW7y&zVB<8s;aIWv3z?-%yKc{Y_Dn`OtCK&P}oBK*Ps|&9DxoK7C#Yd$FWeYDy^KwTV zmD;wES1+e|(@x+2XLSx=e!8Zyv210iTG*kfqS`I)J-#Qb&TeLk)2ZQmlf+f+bIg!U zyZ7O&N9Q(K9Fn?rKh*2@Dn=WHdCV2eju9X3vm`X0jOb{35Yo0pfx&^}lyREFop z4hPpvP?@~*q#ql@EXD?TMIDvBwpp^AYywU1-W70tu4RyMR8R=r$r%5KwSg^5JNcB_ zjiXwxo~DS;&Jyn5R%LxrwI%+I5x?<{|A*dKCtS9=lQ89N#mtP*4J)$GzJA#myg}V< zt5K*;cC>bN^Zl06|Nm}1O#2jZ{o=E)KU})sWIIb=EzuKQS|s$OPE2yXHN)+l#v2?} zY!exFY}hp6@5$S`{QNtZ7nnP>mE_%DYq*oagJCvf!+AzW^ZA!V*Qze6Qek}Y(EXgK zgJ9S1bOx4p_kM)k-4{ANuW7^V`7cBR7W6GSCSMZH#k}B94eNzNwHzyo9A12BDC6Kt zsNQ|M_~;C?{$ady?z#^X z|803F%+Ij5`p?d1Z`LXEUyE&?Yoo*@bci8Jp+P-7F=C$B&ojZjW!vuEIhJ(2GP3ag z{=JL%-|kB<>*lO^m2x@iyYcp_%Y{DKD}IN*+P_Vt>2zIby#M~2b9Mh+OFjLzKXT2p zkYcNE@jv&#<`d{MhW1sgI|J&q8Y4ARE zU|`f?;EqaU=vnN~4=lxSc}(1TgCc3am_(yM0t{VOqt5iyk*t z%PQ)xZ&4ObSg?eJm06|my@5bK$0vp6R}61ADtx)9@atpbjgK)=Tq`EIJBTFCUBvK| zg@IQ~L6B{MXO_Q1+5?t^1U5Tw*}dz3e&}Q08z8axE&Ig@DboUuPWpK4Sl})$9?6A5 z9P3#&o)UcN@Y-`p??$<0M-QBnY&LwgXd?Sb{=dskADJig+U88w8bSHukE;`UtJ~g7 zr|Rm~f4DX$Nc+EW_m#R$S~HK$Y&kS{Rf13e1FMh6zkmJA2`@PM9C;-caB3}Jep{6H zud!X{p+Lw2ej^7~w?|)f7+4=1;I&HNVf!S+I>F>NtKr&gL+Q_k?n!?twl z=k7~mv173M<>1==nfD1V1M_(k{tvDP-P|l4EMtNL!~|mfOkBfD4likD^m8b-au7Yi z%CMoKn2Sld&%sjit*d!D!-OviEe!64PVTNRJwrphdtJEhbSrc%57%&Vs5{LZAhess z;hEY3+pC-0Tti;QEt$PT&wh2fi|v&w0#|P?J87?dVkSq3!|%y1+*2C$OfsrAI4?KS zk^XX1h{tKVuG8_A*HuL7*-WOfi8iT-2CJ94%+?JG7Y$u3q%$Ldsf|JWP>#}~1&kVu z3(FQWHXM*mUKEyZ8vgnfm%WPco&%BpJ60;QG(;4ZDwb^xznZI9vVhT|LEYA=_Yy-t z7ZbPNgT9_i>gV|*R~N>FGlkq<6(zjIW$(os7p}&}=DuukipxG6*UT%sSl@B_$5~gl zim%U)vwjx8b5hLZt06JT#%T+lo|1BpmKM*~)ZA}rUl*nQZ%QpRGwwK~q1KvS zU6#=~P3ObbjEQEMQ_C`EZp)neEpwq+*3z=9mD{q`e#_cumc6wsd*`<7z2CAAn&liV z%Q?9%=j^wfi)Oi3%W`jS%f0(8_n}$d)3Usm+w%Uu{g(I9EdQ&S{vKzZH4pN)GRYMr z6tHhs<~Om6dpY zH$GsX=yHG|BwRbDfgxr(L)HRSjRU2M2cqjQD#$%74 z33AU8W%v|$R$Nei)F{=ly<};5mFD9TL8a1gbM2_<3>gfZ6CBDiua~X9s8GScS#zMY z^1HIhLk1tkiuUal!Ab(twpUsw38yR+UtwPVb-Ll2?+P2PGelf3ReqqFHk~1>+~)Xq z1ulzP>m41Iwjg29AXS z9Es<69@QKB)^Ilo9C*N^^h3enL7SnLWld4FGQ*N%%dv)VW)DV_?Jd$mV_qT0^y2Aai+wGuA|F2-2NY#(G#8S zp!b78@DN8pqu>t3XofbyfQLomO>!H4H2?k4|JI3N-a@{R?GxG=c|N%EOj|Hv?E(If za!!szt-{BIL$32oI-u~UVM6G1jwZ!+#sw1`BTJnR^0hMb8e_Ep$-vfqQ2Sg57 z%nr*aIllpsdBqxrBb8R0>^01q*=3nGOW4T$?gvKVnqn$BiP2$_^TJ8`I~C?7F5qR5 z=5bo&I&+HWRwuuk{+x@Z$A6#B_<%2NJ6qO)()S6|GPesS+>EHaxtNn-$xrVY{9hX! z7^G4Tc1O-onDdaK?x3U(qwtD{;uaAMix{Q&7=(8zikCcOs7X}udB~9GSXuOt;n6{b zu3sxASFN1=YYwZ*+~_Rnlt!tzgCc2;EA}2#cyd#;Mp1m3qZD6)oY*2szJ#Lx|97r? zTctBiLF9k~kAnlt8i&&6Muj&ECWtfgX#AY0ymJC$f}o64JVzskizLq$#!b8j__-Dd z7)WoHUN}LTaq(sKbxaNI-p8svtE)K=uyQ1^T|3a=-Kg+PK{kUSmTLyXKL*a21xq*? zwCjMt3{I~MXT zV4TmKwzBe|!jjp$*pKXTU$nY+_tIB8rI$qR{3^llWTzxUoAj-pyM>kH_!h{#v)cc) zT6s9(Jn+AKGw%VhNeK~6j-_iCCVaV%xOv-u+fmw+SR zzJm(?H5fX5BO3%4mGU@p#)u1Ecq$TeosGxw{|ga@wAt)ztYR_Ww<|Us@twmEAfuRK z6|bEp&F3J_#9}q?mdpp&I!g&rz6Fv|?J|4}^~`L-d`L?$Vf1G~4ed#hO z;dx7M9i6N2WanPS2JsnDimU#Lz4&wYp{<6?0Un)OJRDAwxo0WJ+++~>RWG@7smaZ7 z#)eJuQcM2bVrXmJ-OR_3cA!D_p92y!!s&&w3`X;|S?;^O*GOgAE^!uCtGtK%3cc4Y{{HOv&gYd@4q^|)GaPw1 zoSuJdeO|k7=FiCg2Wld2{E1vwA#>pmgUG%eyZ&KHzP7@V|G-LEZ&?E(%(W$!r-3SD6>Et2FXmOAy~T{gJNR z^~{8${tK6~C`bl9oEjg_$*ndMNH)lqx9Ojlo98?(FWFW0nJ z>db6^B6!@c`8aN2Ydgy@A!SXYDy!=R(|`-Yku~f$qYQ6!ywPedJ0ZjvHn~6nfib%t9wno$IO?nC^+c&Lf647wpz|m?nd&vybVzvcEPY+&VDfp11v*jaC z)D^KQCR+o)sYUX0=UFfCR`s8nm@;>A+TFCBDb8t;ZrqWsFuY6Tg z#IIautWCVVyPn^E-=CjfUfTF-{A0xv7aO*idM2RD7yTgklL;O;Et;}L)pa8 z=`kImDGHGb8!nz`OckBd(iV1uQK_Rvq9xj~*V0WXWv6dgq^F33L!?&48H>eYY^6%= zV*3IG*i$Peq|NeLDY!u@NdK5ea<5)cTC}I?y=5~PcF8#Ob!xZ;O%~MNTjWs4&>(P( z@ovU;PZJ4Fg^B+AGQOwINR|tE=E`JH%%F8uR3uGLOVY7h$6Pcd*mxhKLYwoR4_l(8 z^FJQXSlnmFmAPb+pI7G6Y3H6FkDY%d@jyevT~{%)|5r=JIYe!nA1q*CVbhAN7cFsH zy`XKfbs=eXh|ENg8Tnigc zhHZXq3J%`)LY6$TX8&X4Z9XI5bN6%xgP_TlmuEcc(c84Ac$wf4*#JII){VO_?*4f0 z_ie^4GnzToCQ5AS)w#0g(pjCCRmB0m>r8^rnUtIp7SS?}Jym#IuAZmpgi^mx(URU1 zsSIYVOIiaJ!`39ZDz+~5(TZHg#n7aiqFXdUJ}u+aX2*@EvJ}^Cdp2urSLenPuN^OX zdC%Oys_4|drLShQQ0^J72RT9h&bp;jm?FB@Zu8?(U^7W9Sp7w3O9>~h?JLKW34+08 znjb8BWI_Z>uFNS;cPx86_xrt~S%-K`W7&!XtoTZA9@7!Odcg6}x0yYUxnXMd=^K!DcIkq$uwyg@#iq*d4v+)HJtB6Y3>Ta7a0bX)3 ztnrf+MO^&)w0yE)YSxF1?hLCd{Vdr{N*Fbt9Msb= z-8eTO?cmP8nFY->pPC>NU@gQ zia4SqWvKXHx9eht|3^0UV;#p#Ru%T<y<{^09k5$lDk+OV?n*w|H8SCti@e0frzf=?Vbh&!&s$j#P=U>n5ROCFdjBkZ$ zaQmx(OpT6A$881;8WzQDDZ1K`=2bJhmNW%MilD|yBAi;e8$*Ns=ZN;3gaq$z4&fJsYt-N*X zO`N)g-NAQaD|>U-6)XR|!C2y;`d@3-8iqv%7g!R)HhT%{F*u!WkaTfm6M7Kls`i0l z$qHrZH>vA0y*ET99XrP&D{(+1#Gy%zM}b>G;{>&0VngcN~}w7 zEq(puRol*PZv8`U1~}FxVTU~Rdg!v8E=9=JPMhndRI5&CM^4yd!eWV8=$DPZR2Y-%-)uDSBBqHbmT#F+&&p^C+-LW$e0a>fqaB zBlB$LyDdxVtuq%S-#I09d{c|K&L{2mm^*Q1J8z!%bD6@t<&4L@2069^Oe*_#oxL;n zYisDDcEKNN!u}bJK_zFB_r5dWW&UyKqPJ0LWw`C__STYXtom6Kx<$<6`75@%`+YmH zxc2j$`}1#2Jo8TS#dr3i`PRpZxtH6w@1r$DXo*aPFP=iesj)|`KkzxCe1V7;xcbN{QJGcQ}E zUT7>{%ihs2&$u>+J&ZYk)rg@{@P@Bvah0$^s&7~o(*ic;0v4VH?4lpoJRD2jDDbFe zG`(mqVLHJ0wUp)f0ydrtETSJ+)0vp;!@#GW79@yQ)b~xRf1=i~r7V&ETfNApVw1 z!1T}*&`F{Kfy@)4Sy$9MMHI4H_=`+$k!^1mZqJR(C@rt3@$=|t{h`4)A?TF5-Irr2 zUoHmv7%)0FaI=TCc!sv8rZt2$r)Fk z-O+tfqc>q;%Vm$uYaP8eJDg9i=+(T`3*PA5_t>NFX-41kj=q;G`d**td;6mAJxBjX zjsDLb{a-WszjyTiT+#pgME~Cx{r@>8Y<-@2Pnj(&VM6XQ`7+T7+$Sd#E%8hEuE17c zd~tC{m?JaG0}h`?mPHC&_czq@a!yk8w6B-&5!5XAIoRu-$YIdL;0$wq7zdlS1$7}S9asW*;(kso+Rk9pz+yXrU8HkL zdFS*mA9?05X&n}DYuUt7p2#}WNIXn4qbiXhZG#otL-v|X1{VRI_>;OW!6qJtk&`cS zE-MnWOJF|Q#JoH~-~fZ^ekJz%j7-fAI{TS;VkS&q`*PN&i+nE5EXqLw8#%RVZYo$x za%FCu!P=;`sfkxjiD616!@>*AlR^a*92=8El{ju5NgFT)cajs=ByoS?WT^Y7$z~vtrp9KK%rGxu zy30p)mI-|2MeI`yIoK503^uW8E)jB)oSYN1u>8X`1%N&2LH#UtHo=K6g9W)0W_y2_=GDl;Qo!0)pzh@$Su{cAv?qg& zLb)GTVbTZfm=B91R;}o+5>WbJ?Bc9YoHj(uv$b8Yep z$Bo=92iO~#|0`ehWYE32#DKG~_=EQRgDWRDp^8x#{e{rR<41SAQz6wVJa2m-ej4)wfTrsM*OO#>l3_%<#uS z>{f!{ZqCK!ifqoo?013%o@6oPW=(y0SZlrm2ajTo$Hz&=M}!-+RyZcEb*U6+^OEd1 zwU)hmX;GpW&p|PkLt=T1;zfxo!#iixBnp^C39Om4n8CofT~V4zVFBAgR+a$fVgZp3 z2g#ZMAv2|N3kS)K2ZTktIAVWVb7XH`_j3`05(AUcI?*HsP9=wzT#8HzOhQW5-#Qh4 zo>Y_*Qc?<9?xM(`ar(c*-XaH+16(l&xbzr!95l-p1}?~Xz-)J56T^XpK27Yl5170R z7MY*kX6iX(?jg;2Ow#`)wHAMx=d8`JKa+cv)AlA!lOvgP+!jgNB*d~m+!}CrtH-nj zmx|`HKHLaf+i#g&ns)-`OR+MWz^ z6GcQAIBX9vXRPeBVPr~+1jo;l(_wL@Gn zfF(76Bb1SAYpr*Wh=6LKh-uIq4F>HEB`-IN^j>et-biJ<)q3L2^Y#ghagSW%a@*ow zU5$IUH0pd$gcL(Ur~$)*fP@_h0$)<&e=Lpv^E948ErBI0VM@fA_kTQ(&&iq`nxtNK zbj=-aJ+VMTvt-k<Fo1Wb3dg4ofeemR@~Lgvp>{= zuUh-PYGb>|=I>kPdMFhgy2Vyl{ZKtp{9^TH-n(5c*C!;_-Z;K%)tfU5?|R=CuX`L` z=k9n#qvP7GO*aI#*D+tH+xW3AV2|%->AUaux?k>9;{DMe$k8a=aW^94e|@>QwDgTe z`4cx>4V%;|nwWd$MXf}!vGV5rz;WaH*$rsw&+qP|OQ+?Q0&=D=d_xNM)v8L@EHgh^d1Z!*}MJ8x;zLR-uZ|AYJ zqHE=e($zP*%=~&Cd7gOldF}nteK6wzn`6)Zik=UR-9CL!7l-slo_l(!qcN86S)$&v zWWQ&rdC$`Oo@K6kmVNG7?z?CCe9sH@o)`N)FU@;i9+%e?5yDzIAwp7w}^*}w0lebne|^p z`sPI6g{C2f%!v*HpA%UwACQX`Mp%2+wREO&D`PLG0C58_320V zoHxGlnfNMbBg486+|TccUj8TgY=Pd5x(!|@r}#w*1!zujO!Yvf~hc>C(O-IELPjSXDyn{96&;CNRhsE}Z{BH%R}WBA)H$L*q-WgH_wZB^f$a&aizvV}j<)!=5u& z?4HbCFEHchw5Y?(b32!N1jx>LIdj2JSwV&Grw_4jiV|49VAT@8ZPoG2^Cf4ky0s&| zY1V;Fv)CBF7uB;K*e9|#KwVXlcZ&dj>?NKRAIvs6@Uu_kp2loBC&96=*?iLn?v7Z2 z7$=LCVm|gnmRA>5H#Kmc{A8XK zarRoFIX9cWE$=?=lCk&n%r{#3QtN+fhdXqh*VMhpDZJ5OR`mq!hWNQl-u*qm^zU-# z5B7<3C%pb~lV9h~d65eW+(G>R87?I9-E~mU{lNF0LEy>~Mg@)q*Yzu(zS^5yrV!`I za4}`;N4NF!%+oG&Et+Mz`g&uUtaXvL1n(_IpSwjbtsZbI9duwn^kq@&$=j<9cE&Mf zlquZuTj1Erry6zTMc@+8sd}lmuDlFh5xCTEY1GwMp=%z3Lr|B(B%4{th z+H5>5${Fr!8(kA@_QpB|9EoP=zB0>`X`+DO)|9P`W)IpIG&pq%n^)b|Xt>NUvDHl> zA(_pEi^b&lOT|@fX%#G6YuW;Onx@)_>Cc_ssIn4Ut$x4;6o7LFp5_=B>I?HQMr z1+G@B;4POqTV7SH`NG+l(ZwU8^Ox|#gtY%>>nH3ekd0a?IMZRN>3_z z8c1<;OstdT2$^u1(O3WcTa(fUp%>apv|cQ(itFkW3qPft!N{uE^}M0z(4+zzLX!05&DfM@F~rUX4^8%2$V(4Z}=4Y%gJ}T{ z7YKQa92VPZBdDNhv%tZnFTaVUp~ekhgQU}u{j9)PN05`T<%bL6{OTsZbz_*^3=R1!j#j+% zWqMTeGLGrf-RB3Ph=LHzo}x=k(9K4#jO0BrJ2iSm;K6Iv3Oe5D;`&a z$2Zf@Dy-n!%E7t7#eT-#Z);`aAKhvYQBYd5UV+);bVK3}!;35aOL8A7 zv4&cis}@hMt9rG1`@gC;JCi1I)co0y9Lco= z!@I({W!uYT2NM{XUN{O_tw|K0)$F19!DU7H&9w#X${pDT?hH02e#R55g&0)acecDe z(m130!85gQlg?*8i*}HVc`30%q(mk`W=-+k)d}j>GqyBJ%{n2;Aa}*OW5VJ8(z_P8 zuG)1_{y#%%@Qe#Cg1sv`IYfIiTngO;Hh*`~a0~1TUXmngT(Zq|1_w{IB8UBzMZChT zPC5C4%w2D;&(mAAwDxS3_cn$Li~R*2d8k(T1kEv-a)rgKU~%+=mmEwRof%mZn5=~k zas)6NJF+BlHFGF*AF}L<^wCgN>3A8?J|#n@K~jgs;be@&?weQ7w6e}*f8Qk3dBgI( z>al9i^Y;>`%xF2NvGH`jXl|u<%(I~ByN}#czw(G(_^N-+SLtJ^lOA|~IqRXTk|bzX zutZsI!_V590L6-R-EGY{-_;bw6ZW(-PP6tRV~ zx#z#m2}{liejRIsl`Jm!=rnvsd-Wv~?$1weT#Or*guDF~Hcz;fdX{5`SmL1eQpH_o}MNZK<40O$IU#+68VN@t>mM zy+~sVZ(dL4|LoY`Q8$j2O@D5DKz&Es<-=cI=-&9Sl5rBNU9?Ha_VZe|J2!k=6A)3V z5t^E3uK8i6gW80GCpHgf%2|Xn90@L58ITuUe#!4>qPRu%NnH{w@te0dzW#~ z!W&{{Vr>i@M?4J@yJC8p#cVIWuo0NVU3KP=D0=~0fYc$L%7P~0j1(7XzJ$Ka8HXfa zS3b?`R$6u9RM=tZX9exHd$zbKTxPhT!6H66ltX*XA+FYfZpIA@eeO@=U~y^UcKK6a zy0s=rP{8nUVehOd&%#8NOcWZF)lRyrwzi{K1TWdE=cj=N?&=}RO7q;j#D}$xeY_0GGN@Y^D#~Yg2 zdzqM1g=Z8Tea9DY`1B@~iY*fC$^oqD3v;@}<(HK#)ve9+DNbcfXE@y3wP?B+W9w{Z zMHY#34{mOdNHV)VgNv2nBD35MZjBg^HnE7)BH@RluK6%BidO}6#bz%}pIPK(5|DUn zL5`FBaktVSrj2hhDnc}$-^gFKwl+5>J^D67#yfAZhwOp^EIhVX*<5zXu67h~*mJ{< z-Nd77Z)>4u8TqsEn$2>D$ zUU@dRu6WM#nCI5dE6>;dD_+1J`@&hh>SAwQ$rAP0m)_}Bm*@T~S>Yc0DtLL-)wOk{ zYtmz1M?bH+zV~10hW6Ok;tIc6Wf-O?nIv$S-|$Q+3HZiclMp`1u}eg+pkvh&X&t9! zr&g?gUcQk%?t^6f0R}AxHlqWKN}Mm6+1Wn)U_7!w>KPvcyTJSo*rW%~Ine{ssjSQ| zobP|#clH9ayo$XiBn6n-gG|tvm)aEf9+fIxxQ!qul;cP+Bb)bj@r{0C))8GU_SK!*2J#$ zl}mjR7%Ux{#Z?^Io?VvJyzt)c+tf$(OBfC;6FBf^vE7;v`#yL(u%>9!B>{q_o#Msef?ZnkIn^92aV01O-8|{fKGZ^%5FtDp|yx^Xs9LW$O zeBk9}`)`{a^Hw_sezsRsc32!?ds1TSHQ^l#7#w7CtY5EIRz7l&HOEQ)&e9VZ4pvPZ z5QS9?qsd&V@T14rmKH?l{Ewf+6%o z6W0W5ah1IaHyN}f8ax-+>|O0B{pC=D^&zMKXUrXC9MnXP#@kbM*2a97sv#bT<@x#sx6^@KI8gwKYybh?j_Z)Foamwg%J22brYOr2* zjhoXMN9PikEEXrVGcJWP$6ww&!uP@@cjX}&35I|b3m)D+#3^yag@u8~U=QO724MjP zorp$>4-ISuUDX@HB|~FxW~ogw2?p+2Ync$32f{lk}Zq z3_R|NOLk}F9GS31D~HEDkHtl}<;WxxhoT(M=_#|0|Cg}0TBU5v(xAA4fxm*Gyv8-y z$MbKoo$v()(*sQUGn#}gm^6RbELh=Gt-)A!Vp(hrr>R7P@(gJ;k9}<|b~*~pj6ax+ zLr%J~9H0N@kfM!i?j$$wJqKlVT(+rrY~5qmf8^km&j+{Hc<$cg9c$=bGH1SWV++rQ z2F?W@^R_s6-tox2bzH)MLCm39ti@X*q`mY*yT=Tt`CC?f5pLNj$iOMlutugqK%$v( zLyOiKkHc$xRE~IDTH`a##d~thx*a**o3EU3FY$e~`Ph{uzI)F2-klmx}oB^@yf9cJ+>QCJh!_z-HRV=XPKOvr*o#4r9mNsHCbb#`HBXu8;$BO8eWz7Fw9^q*J#XL;mOw8AuGXP zA#h&s!5MMMy}|-b$r24(368>w-aB*r`(m7a$awzLIdt8|Q*Q2&oi?^|p=bY|xwwrb zK-u=vUgP5_3wI0MZ0JZ~+;_!^(ZKbojrVhIAzO(?!ILfO8H`IgPBb1lJ2&EliNN_J zpNot?7@I7b7z>&O<{okOIrpmi{I#C*OEpga3OOWc>LA^F%5tlpl53EoY>4ZB9)_8J z&K{o8sOAy8@6JiCp5t1%7fM7L_%d3X3Yv{Px|Y>=-CDBGP=+yQ7h{{to_o*s@tn5N4T`iq`|ik9`@5k|Z$sl-dG@LVFhn$POEk#-aB**S zmzjE2OQu;(VRj}r&!d~CXl+f_jtN-3yi9Z`&>uT#P8{opqz*iC|DG|{$caKcXl^=7CXw5mL zoWNkaqQTsui!YTuaYaP;)@u>9oQw)>Ppq5d6_{C8H09g6+42a9NHExP$maJ1m$Y8) z`9CGlCFi>J(yMZ;o;@))r-xoue0sI^ZRGr=HuslUhc?(Os@=2MIwCdp{Dt2x*&U4B z3e3&6U3{_5rdM2}YdeJ`nbyfPCn42YMBWLanty_A2 z*49hEW1|1A37YRChnP z#_o=3&|7g=Zw0I3Q9Jz&cl8*U?&ZYjM=<_KWHO6oyxDYj&z6{*v2l(^Z?2r!bo?^| zr^h~lgt*sx@2&d3`1Z?_ETJ!&#R3>a7O=dLjsK(@|JgSFi*Nkb*!XX`@!xCXfAq%x zoE!gZZT#=O@qf<7|GgXk?`{15zwr!w35;?H41KMBFIub`rI_6knDQPhE{>em%3-*H ziL35t?8JlFB3#Y~82PSE;C+{{!DIXNgf9MREz22L`1~HM5J;5zz!ma>HD$G&p@I_o zx`zy{!R~v+Dl^YS9*tS0V5B@dbfHD-^9uq>VhaVX^@y=?sR*zJ{$LXdTEA=o4^sup zs)WQi&Su|30?ISkratPbSkQKJW1>-+?H1qb*)!$KTNBm=m@+9SILJOyIyXUCtzqS( zuB02Su{Vr5A5PW?GhV(RN&El2E}MIg*Ii&awM!uER+sMt)(M))9{23F?7eRC?|__J z-0};(rH^k;Uy-a_*Jr&?z(Yv=5@*U;i6_yK4BBR;bp=_Q79Uni@Ow7%YFx*RMk8s~gPN_`39L_KA~A6KOuSN!8fA)hW0rm52pJjhUB|G~i$k};vFVq0zk zOJ*~NvIA?#gr}^L4WB2lOCCvZe9Rj6e+B=7fS0}wthGNfCQQnR+V^s0Mcd}e?nDDi z>qw?emh-6N@`FX^n zCI*Q!n(Gg4l9nr&qphIeaDhivgQHrF;h@lyY>mw=FBdHNkga-b)0Vi`%YJYqRdY_P z6qw-9DmSThrea6Tj?E#N%zhtqN@w|5$XWoh_ zSEp@n>S#H0DD%m*t~^UUr4Ol15%0EJ%wG6U(~wKv|35Rshl8`kADb~2WG$|Wxgs*9 zPOx?Q59ysW6gxuNBuBxrfs)tlPUVe_2D@ zV$PZDuiM%(n#(KL8zlr<0yx?@G{4X2=-ScIbEBj0N5=#K&VD1#DFK|*3OX+@;+%b; z(@(QwUdO{Hai5k*bZ@fg-k!+KkYTuE0{1R~v;ga@MM^veJysnK=sB9fBfszZ+yy+R z7dS;UG^H4{G(K8ht;Atd(dU@JTCHXDPcKQZE&qHW?~Mt){7eig|2e)mqzmh5c9_I} zHgjKYeVvEl#OMEdT^8)ZR`q=fYz%S-dP7d+bQtt;{1AS6fY)TV(Ax)m7Zf@;<`*!m z_@G+Nr{2LJzu?UpuP*QY2A}UAnlgA*{Z`w%bA4zqY2P&Ev%*T~jBi0E!;bzaEsi^E z4dHDa42>L2fl4fy0&F)s**9va-7i}#A*gPsESe}N{&3sOrj2qNCr)26|Iw?7nU78@ zY6|5Tb*V&7QZp3Pm?)%m@Rnppxtv4+!v=Mi1&i%7-`8F0@%!<U=hR{A3iMmh;W)*Ky&0;qOlfCm@VfY7`T-H&hf@|+l--h?DibyLzFkA8WLKD^YF>ZU z!WUEHIj7Cr)S6^D?f$E^+YeZDB*V2RX++)nfShz)CYuK&IJ{BKwB=`WnR z_I~GM`0=}|onvNw=Y-=t6+gwQ3`>u#QwU{e&?;+cieNCfoVN5v4TC~WlR?c9^RE7r zKPPr-h&#VX`^Wl!x)G{(GD+CRV+;&$+rV>*Ie* z>Gh1#>)O>e2Xg;Vj2s1GF@yg6NrEs{7Pxh9;iq=Gy#y&YdA&|@jmHBeXLY8^f-^S_lpA|_m4#-U5NLAXvMPRNbwPXi z7BebSG>DmGT;ZFMwBx{>Ys~BNUOvuvbzt?J?WYc1{k1w#VY9oW zpLM}&z5Dy>{xk9ER2V!w)W)yux2D4I@v%Pe(WpjGPx0GI8aS}bm$yD|G}|yj{j((F zvcD<+0$>A;qTgqg299>^|u&m)yo#{NRF^W3ah54mYd z8`RD_yD(jM_}JLqd!UJ-;nRb+hZi}vF#SIw*ulQ&NSh0%M5>4Lg5F@hwch9V?XCXV z_~I%zo1F9Gvn>Cdp+pk|+I?$nBoN#vrjk@`!)httFCPS*y3I z9h2N&czMEXwi9mu)6v<<;t#Vu;v>+?tqRauF9)DNU&`^dauFB4z|C|U^3E5fn zWU5SM@d4|atFEf?A(=tT_Wk~Jd;R|ZOfnk|FzbKwOsiY+ayH{a#swb?8q^XuFs@=e z5S6w&F^$2FS2M?T!OXRXCdkedWNceFQ|(nagZBNSuG@+WN?JFueRRw`E5_v2c!pKZ zWP;-l%TpK5a!ZPII}{qU{CDTQ6f6As48xr_vCHkbMYcE>UzoUctJC@^pU=q|nY?wj z;1KcNz{jV(&~bs)4h9C}H+vTPI7+r0_sBDD*?P^r(|5Cj3v+@AqX)Ygv+k7#Zv%oK zT*^>p_~>?0!2H6J*}@Ym&0Nkietfd!EaR>V)~WIPWG09mT)ueTu2-u!-`n*%`H!U?aeh) zN-dtaXz4VleV$idY~$^q-f_WDV7VRhgyZMdJc+dvS+nEAy(W=8)4Ak+zt^Ag{XzG7 zdnUt<-z-e~SM#Pge>4{RbtPRu?}tJYXVHHbmf8lT6&Kri1ziH0uaJ z!ff+SO-6n}2CnZ?M(r$iEKNdNJXqD8>>AIkuR9>rqsQmK*Qev>_Hfn39iN&y+X|et z6Ae8~gxDFBPbBH_HF6oxIUyj>@{qwT>x9}OMb&EAqXoGPS6-jWIA*-aus17a@r(fD z6&G*l1vh2&GHx(j-nI2v!2FA`kDhtBGgq8ZDF2n5?KIJ7UxNO`8`&JJ)6^EVpW$T^ zyg9R+L19OuPk}|ScGPu=qLVEQdRCmC93s<9CwX4#s-5;`33uX)3I0L}O>CK0HH4Mg z+cFX}x21TnUp7-@uuxLWesP2|eADLFF#-(wHB!$1Ga|hk?-Whl$`X?>=@GBOu?)9I zy9A#?N9@k7xMNeN*dKEtS!|s}gR#Y-p1hOI!gCJX3BFapQ0#M9 zWw%h0=FYm%tYor~%QRV8CG5Dr&; zDaV9mBA57aFt!;-7<#uUcwIhpg4y9ndZ6XRW(NUB2|X2O?i7(TJbk;BP8&>TIQR4t zQ(rd6zMKY8n;Cj33$*VZKEf^9*2$)|XT@aS7mN2EW_B+XmJ_Dtqck8b_%*Z2Q3 z&FIxFJ)!hRfvLG+VL96cH)pm#>w5&=Royi1kWq4w+-Liru0N4?;*ru*?hMj3 z*B7`<>zg={C;8Bn!=lT4S4hm*I9)y2@^sWaqv@7OtkUVn#L^uyyw!6isH!g!?$^0eb@ba;;fJlRZJKAg zHaquq^kb{*yY88;uYUVFp4s}wAvv>+-MMePxPSJXv@_d0`|X=6u?n}u3mDwHE;K0K zd7!9$xp9mBhsLWjB@IviyR<_yIB)95X$H^r&g_z%{H}T5@0*|Im3NC9G;mF5{LfR6 z;lcFlK_eqW4TIqdwh5LK-n;N5Ftr#S6TA1}@yR2<4c=b6bVUC0yV7u(iGu0hk4azt zs8c(~P;t5WN$-78)#VM!G7=4}D<-gsO?Y%K`a&VYr6mn5{B4Y)3_Dm996wHES9?57 zaMuazzQP6atuJ2iZ9h75pX!qC+b`ATTV3VtD(V9*w$1=8wq~4lTjqJ=%mWNX4Q%=z z4LtVtDM?fK3Rm#gKF+(Zd*`G{`H3rc4Jy}L-T!T8FlBkCa<>=5fzpHtQ(I#nT1lF7 z?aN!C%cH<`>aTZydcx1slf!Snk2~|5$wAPF>tzcjZ`*m~zgUp87N5TKo84@0F?h!o1kXKN9pk*=3tN8uDj&A%>UheQ)h@*nLXpW|) zg2Dp>0hhD6=d0hpzwvgd&!?aF8P3gRxHRXrs={mC1wFdan-mi+{GIovc7DPNImVy_ zRB}unJ$c{RT;iZo;vG$V7H*cPs0N|E{!}M z4rgZ`W3f39zrxv!W1+yZc+MU2cUz?1csypma4@6_evMAr71AyEod%Gn9!IIKjWdK)&iDIu~J$JY=<67EmD+ii{4qk$peAlH!wb`yuhJImDtqd_X6QQYSsr%a=Wjg0%61-4TdtQFXW>|Fkwjag=JfWfE9aZQZ) ziU%S*4!SQCZ$DHNIuvJV6#rk&Ylh{yho5-wOPHy+~OYQ<804yJo;6{pSg1RH3t|x8XUho<_}pa!owh% z@icK+s!7#?$fi`ocTd7jJ@cIRFl(Ob|ERPla+ehJq#o-ZOOEY8jsdUpM z|M){o7*q}juVXO3my)O^fCQM04gIN7j&od^V2k9%^3Sbq|smdw6$l+R{ zC$_lBF8Sk4^~kJeEqs{~Q5n<1GK$iY+uj}HF**33;SWPcTgLZ^8WZE<*|#t`?{Ji4 zV6(mTc*3;QKP#I$za{fAJOQl}p6SNHb3lBFYNOms)^E>qtzIm&TIn+FsaxEVY$eUQ zq9u(&FP-&XHQ7DRdbD_|+KLLLjKZv!%Y$U6^F8vGI>HolfZ% z;Tgx6LL7w|76!U8E!T?wv-Cw?3X{=-M}K6Q@->>Y-5eKay$rwgNcUfo>$Z7IUOhLc zQeCX{dJ|LfBCpk3o~hl9eAVcsY$CO?;nuumL7FROt@i55;*w%{!s{S<;=t}h+6My{ z%-of=YwZFlo&$mg4RRp|r2n{9ZfZ8*cyr*HRs+*~p;rg(Wt{(uIxG|kN@PuFFy&|x zD|)!#+UuisufA)(TxhjoF<&~X+7m~s)sjis`umez+tV#cIoG3fN`+P(w|b(-l(C5|^Q4{jX}0*wb=s4g_{`#+cR|K584 z_fh`8SMUFQ%K!iC{ePwc2JR0G!Uc@d9~hMlrXO`uFF6#d`hnSbLwD%=ot=%M5eA9t z_@1Ypa_(W`d*IMv$tHB6L8ZcggW2J}P6PXD13s1D)C_~}y&IC2eBj#rA^FS)uI(SD zFL2V|aXq%+kWJ2^X$DOu0vk9B6IZr*`5iFUtFAZ9CSs+r-c;0&M6c(c9S~2LGreNjPx<7>WztK93(1Ezv$_n zCUMZ_%wda;b16rdO*O6wJYNg-4vx#@#QbQ0%vBla7bqnFG~-82LP! zIK>a^y=me$Vd3y_(tLkLGW?jbyV2{2Pf06`k|%7^_?5$3RN%<}q>&+DvvbUs3d@!UO%81$ zhn@S4I5HX?E;KqT&+?l5#d*o+z?c$E6-oDy>!u7$XIcbZr*HY%!Kg6B>6s}vgUVFJ zFAUlpT<+f++^2tWWMEp*;b?T=l&EBh|9=xn@hu+POPsHK@x6c4W%?;UW`AnVAIiuVu#<9HkNO^EeOs6^Ho9)h9 zzIz<_?(AXCV8X$e@I8{-#ZaO}k>&Dz0S_Nni)!KT)$-rt{(g`Da)@z7xZfG3i82n- zGn^8nTLdTcg`HqhlQC7uZ+3QJGIcmyaes`n~x1k#=T>vffF&F*6)3%2&M*QjHIsz4^OW&i0a+fKXL$ zryO1#PM5jc&zJJFOk8`g@I;G{$uFrN=jR%`EKEPW@Hq>I#;?Zc6U!HKEIlsdUh|_( zc*kjrjukGy92i>L%Z=T4>{=S$wSt|^6WQ~nv7>KsRcNPi4>WX1e-r`;{VCy zyyoasLzkceK4IJHE%FDp*taB`A2B<@WV)wG^NdqijIi^K$=W}h^n994WDeLoIb!j3 z!<7B+g;e?_8X7n*%wS|`c1)PUsKX?Ya^{GP$^X2@N@tmVuf|3*1OH_rPDkAL$eSJ# znf!XuZHCH=LA*Rnayb@a>!<2nWcYid-!aCS#l@j2!SIy3L&$#KQ|Z@5H~dll$Z%@; zp~eHh);+#-$-%)epg~OKMA_c6n;jf9*MwR*m>-*b{Z2^}*Tw+nkf}d69MtGIq#SWt zro-kWGxxSPjfz`D`7a3h8SK5x?ZQ2`=2STE>D_;L1omFk7QXb{#Wm&6B5CfM!VcVt zd)+ejHaYA#XM99MhSxb|y2_Qa4m?cS57^Hew9J2A>;L9&)11Ah?l<1zZWCnrS)*L|JP)%cIG!_IlazyI6g_c^Cr6tkW9EZL0V zMzHY%Uh_4=ugzQfUHbO!Uw>QYltQ4-u@}?c9OauXeL&`>(+qQ;G!`L-Gl3^ER%CWG zx=S{wdnCp`U=&eklBqeoD1gDw-JEervvW>GaHnG%>)Eqg1Q;$%GGS)0E;jM{%zN(p zUQ2tIh0I437?_VbC~QbOd?1*G{9ZU_}&Nd7NMt3+CC^z;CemD4{7^vvn?lCiHi^Rs|Zhdl& z%TzWLC3rLGs|KkQ@V?}+;@QtD^0PF-m#IVHSmKKn+Rht1)+Vton5zB%$Rd_Lqp#g1 zw;5yWd}R&94KFk@yRj{@y5OU;o&cg<&B@M+cr{61V zvvkm3w3&JRjB{28UgqcB-CgPK8Ieo&qOL^={Rd3bVyW%gbv*EbU-H=-IT8T+R;RU0n zN=}u=qKzC0tV&zoNvyDEa%d&XFbsgs>G53pnEND`c zV~cvg)%IcmBPY*HqYqpximy&`c8EnZubChrbaXw3y3C40+}b6K4c1aj34Coz{~vTN zl#6GX)Ue6uNw=m%>XM7cnE3as@RHxCbJ~MTa+iVLmI;d*6&o$KINCGpX<}bgaxZK1 zk&a6)MQ07ZzslZ`r}nvfGIQF*6H||}eR{UdDeGsan&S4JNL*9LiplJGrC6@__g{?l_{Ehwtu)?m|Swa^p-G`nJcR(2pzpErE;=av+||t zWQH9I|C1&%h@Z`xv9hjSiX(w*TF$4F8av;deB9_DR=L3O@1h&_-G**n$x9OYGScd5 zyEIbmxYJe$GYH*_$f#fW=0?U6AGKMEjoH^G>4JqlTpr#tP#Azpi#k4Hq~=X`uK&6jpC&R*VbEOk z;JQTJaa;Smz!R*0{|CuET@_w-iA}@w&(A*-W(x7V_}QV8@@_XPiEg&VA>IMG|jA6_>n+ogp0DAU}yX3Yf9%>+1|$V z$=|woY^Rff|Zz9WELZJSr6!pSUt4{ODA4k>U_h z;9!U_YMolKC!ugrA%nP)YG8Ml$KpF|n%7>q8MROBHCB3b=H3Nf&6P!>E>TCfM>wX0 z&7as|!?&PQWuEZdmm$xsZdxAk&p6KiylC!IHly>2b5uCrzmeIxMR?wENd|erna{Vf zIk_>fVNxnR7;t6Le`k3HH^-?Szm_hR=haku{Cv}57uOV9(NjK* z20=_yws;Gz%ycO@C9;IiWu-IcD+h;NqEn6jw=DG$bnY=q3TB9KD|^hPKQA z<%w56td(<^!X8{x$WXgQc*{c3w;7(%x9;@hadHbVNPMZZbXsvvY~G1JQAcq(!56|j z0+nmaoEY2OR-EH!_H25!CV~C2)N}#XNK@+VaV+j+HcKmK|!PG;e~8FKtg%@Xh5H>E2|ZD``Y!|E2taDme@gHc7K zfSYmC^l7VqsA~CjI2eks+}-REq;xa&MA`1uii=LYPyH_$XwV!gbiJ)(`X0fL`VEW< z33FYZ?Buxip-I|CfK#~P&^=eKny0UsgEpN}wrUcZX4S~S>Zq$^GEd(nPA2*JLKjU1 zz5M)=LWUv(RiSl-(hNZwW}spJyAwde{(>G8H-`!CESk3cPU;ea#|$eHxTY0fbdEZ) zXydv}wjW0>XvDR&iscF{&ir{N-TuGig@cdgFxp*QbM4yk1uqY>dRjEoY@%dW;2_jZV_c`m=hiKXh|-Z;0ox$K+L zo(P)EHLcIT`>O56i_71Vz5J&Xyly`7b;)_VF2=ouU2-Bz&@^9$Z(d98{IfKVJ=!}ZYj>2z%1>?a_X->0 z&n%LjvEZ2g5jF<59mixY8?+jiD0ZiRE7%a{eCi_mdhHSRT>;Myv_6FOlDm1?E8Q8doL_!+z{BIe$AZ$GI7As`f1L5 zHU@EyoP~2;U5@ad(0Y7XG3lju`y=x?&q`b#TnSrJb6DGS0<-k99m+w+xBCf!*7r6n z4WIpe$)|ACE zzjN1A82RS^IO?48HkVzyi}AkULE(M3r%u24RQbb?E!Y3P<2hN)aCb?W%n?OV4+EQ^ z9SP-o;*WgsIl1R{t1?^0p8%!J3tE#FIQF0OlVotqD7u+p$mgbzy77tyd+?O}ZO`oO zAD>y!mc%3|SYqO3m>ZyWU!pPfXhKuBzRiKTh4<>d@0b7gHs*ljfe*U(beyc`C3r3W z@5Es+XW{yqqXImO{3kG#Z&|?p=|Rjqb;&IW=UY0M7#6ZuI2^a>Wv^Nwa)O*>YKTxJ}_1$e{%?6>1<}wGhkM2V&om`61M{^0f*%G}Up9OQ z=?@ok&}B(Frj(G*;OKa!tMDA76c6`>Ed}N|&415b5YiVEHoj=_Oh9SPg6Iy1QXU4G z7)}O@iG^YbYlfxl~E!MBa_|0l}-H4Oid zAi$<5#^SH!utDNUf`Q9-Lh8jq>gAKvt1qe73u!b5X|zw$=)R=UFQhp+ zNOSrm&DobU=L=~q4$@jaNz1V4@+u+i%|Y7RCt2tn(AGb|IAalqR02mHgQk)f`@T<1 zb_#Pp1uCt(WbW{g$)j-Rws*Q)17F`M3jZ>R=jSAgPezv~FdGQEOaEVF@cokB!p8B&;ov&1O}sGhNJ~jPYf6=9E^k$8PpOidJ?(sJrEVWtnXcD z_@9Z9O@Z;6$7P>Fg$J9=K7R_2`rMHdY!Du7!M545;j@0}W%G{9#>~dy8J8`4HXF_s zR+rz*Jfn%3?EupX1>T4T5rtyzFhhoOu8eNM77`1XjDndI6wON~o0mT}O)h5q>twOh zSpI%+_@&QtUKCr@8e2Ruw)`S&@n*CAM`646R?Gfmhq;#>QiZH$IEI?qz$$RSw^UUD{W;d^UEi|LoG9?CQJ4 z)zic^eu`y|h+Fy>hw>2Bh5t9(swVXcDHxYNFjJpm!W%3dsNlrPz_2ZWVNrrhHM3}X zgV*XWEd8GsiX|{_o8rAaWT%4zd)xxXGeLZ=U)a7KWI6O$uQk~6;brH@VpHMCZt|-x zznJ|0jj^rjD!<3U{vU-5n1lV^Pw-DaZts1?@9QQ1%PS0$P5l3xxZnSx#lJc5{Rf?k z!uI@MohN?rt(+1ZYP6`vBu0rT%Izu>TLW{~6wm#|OclZwh7ULwxN@*PU~~IwerO>} zo@jV}sEomguj5W@(n;er( zuZ4LhgdY#(YhNJhR+bW&V6&J($!7tRp8{`)qhy2vn+ZcCdjpS$BXigS9<~Qe^R`C6 z42?Sf)%NRE-?OGMN3TZR-|FALEoPx%?bY$&ukWRsUzX2GCLcC$UM_UJtYCrqDJfr%svhb8xmNP4lqkK zSiD=va;P!<>4x0s1cqM@dGaN!Zl(;=9P{G;Z{~Dxu+clnq{Wap^IH1sZ&{sY*;l7V zNluG4-JZ2yG?Q~{%ze>lW6_lP+e%u$1+3h*Geq2bV;Ntj`Rg5GIpyWiqNai0ruZy4N@Ubq z&UD-{ed>-GuPd56cTQ-JobY{XzoYmJ?Hd)Q5oMbr=kU**Gxh)V*4fv)gcEq!78I)P ztXf|_bG;Eq)Io_Ok9oBgaFspav{IOoKG}2UL0PW^={Mywvx9BS66PvLPC9y+J7NK+ zS1CitgK3NoF6vXJb6d?a{?-57G+I|;mbLj}cHv%2sl|eiO0+@Hsss1G^ESYezW1_hOKU)Lqni*9KQxolXMZXTW`I5lm zpd>tR0c(SE0cUvscYhnF1cqM>D|xFJg&*V!CM?pn3T1z=C~?=4w-QUfTJ-Im(X+mE zakf?F*%>RJZ;5+owe;$Ywezn{di-Pd+p4wIkLwRww!9W9t)9N&>5uHglCwGg-&n33 zE!Ajcbup45Z2>3S1NI44E6-Pj&b(#jzLhzOQR&VCp1Q|1m#?qg`iuMC^rE-hs}z}7 z{1O;qPOcFZTU#HwJ@J;`Q-dX(J1fpctdopr?EKyI{?_)#k~{jVdy}{KxNct=Yt`Uy zRWA8^G5eN`hoYMlZ})GPUal&=NATwy@t>}G2@GWma;>Ge+uvUId_uzU1)OgdbIoE% z?)~w2Q`LW|1x#~xmowX>H;-`aV2_EFP`o8otP8gJ%GX*ia> z$2f9w9`k<-L(VW>wg(&%4*XgP-POtqZaPZz$((#IeK5P2g-wCGh~d=YJzeaNm~0f- zJrcMj7>p$qT#6%C7XMx{@!Je@sTT9^J4IvS^k=LSo_$#K&Y6$5&RA|gyLacI!xClA zF;hyvAAWsj@$D%~b#0EU-+7c>_QJ8P>YD?`*b=lD>USD(L{zi3i6zZNiJc zChwJ2I-zjU*mz2IV}!A>;J$`*&0D7nCC(T|ow5DieYz&@@}1tqxv}n6Id}hDeJHab zd{?G?#dYgj=a-6ZOuT#5_SeC$F(uO07y74Pm~JaA9OA}o++Hgg!8XGp_yBhsgLql+ z^@(?#zyAu{8a<2EHvZ%Psb|}7H#3^_?~O3sJ=emrd?V}L_1&|V&zyVj@q0tv1okoq zt{*eZMHTN)TsTRR{oeicciH7!r`j$Hmo}U}d%gJa2fZDZ^84w@FwJxZ_Ja$=ghznxV<-QCcC zcFK3|#s)phjC=7>@P=jR^ZAcoOgDb9G3;9IrYG%kuNKF>T0Za9>U*!&%e~$l_j>!h z*Sqh%-Y@s&aNL{Y^WL1k_vXCZ+skopug`mX``+98a_=6;y?Z|I-Rpbr-tT++^pC;O z16;rCwsmvJ6*zog-EYa`_~CkPI9uX}!Uvi?|CvRr4xTA$7Jhb+yRubq3FGIbj2jj? z^CWS+x0ipL8!PSje5?1~U6uPRwj}w^YG$%&3SXnGyg+;Xp$9Wc9{*@K%JD2w?%2V$ zMapt37=Jp%|JYx*(|!B4MJ3sj?JTx5x#jU#M#XDXw6ae~n3fW6VdB_Y@%URS>+B-e z4cpRw9Ik&YDOb@S-!Z@Tt;R6F1xs{!vJ+a23<4>_%jjytnsqz0&L`t#^!n@rh@hwTb&8jm_ure!?p{I9s}b99~p z=aNPFJGQblcxrG8oXXkC`{hg*TY_>xzKxWCS0SI^_Q{3ztf>LzXLw86i%hS4xGZ~B zkik*?Qm%mD@LlZmM>`2dbMK7 zw5(SvS1jW?AhfVSk&QzsqA89c>rGyj5W@T&WHYq!{2r$Y>+~UY?kZ0lyII-!p znNpOpi{BC9Nhc&*j%>Xy=ib20baq4A)TJCI?p7uto(JSTb||PaesF2Y-FB*w`=0;* zM}a9WaqO;6-8%0XKXmEjaUD6sxKqF-&X%e0GMh=tt&`l2%;Gi|4z@q4zR+^_z;^va zCdV5-F?V!+d~p0I6VSIxWBHm-r*yWz`E=SKnq{&V6GOqVbqp_Fo$O!zz-KYzIjIEi zK4#Y9NutcGdrvu-a4WRws#gYmcCK(}?2x&Cfro*$SfpgmBu>diNBlc@N>2HkNi+q7 zv3yVv(6K*hJ@H0Lvg>-++cFDIJ66p~UQqRZVUdF|>%?LQedfd>1}kP(rEYB&PCpCB zHsycjO{|7R3{O}z|DAIXxD@;>k^O8DgSz4Jb-!M%+5Ya=>kZ~6&dN7|k)-m~LK5U(zSPkG-C0Y(vlFAqv5ah=_8 z+JD0l)&or8e_YskJw!AD!c29(sxan=sB{Ydc-}wZ$CKIrpWYRHdF&zIp-yIt4h8P2 zese$Z&SHxXGP5^GFnmh0Wbk=h!V;;VF7@L8N0OgHhf&9TgTM*glQtx?KbYZAQK;S$ zGr@mj_d=d@kHb>8KD6};HcB?7ur)qt6EKNB`=R2g^b%1Pb4`Vgjakl{8BUyHIQ-z4 zS4z67yA6}|-Nd8cSG5Xw{&~Xxj=4c&S1_~ZlZ9UXf*c}sLH11+O`frTk|b7#tnd7> zvWaD9>q)LdE5E-8{O{0UGr73Vk^A=-!~RB=C2e};0>+K43UQL`FZdjmRo6~X&_A+J z&HUs^zp77@S6vbn{P2+7nqz%C!-2DsO)oZIRLQSoaa<(if5>I3#94+?0Y~9fcji?b z3JkUrSY)ql=zg0cn8UV^@s?lVgp?&pR;L1;Vm3{3V^}k>jzPER zaQLop5IliUZ!S;zh_dFHV0=CQ^zj@%BsT3b_A2^fT`NUNBSeuQ!osro#AAk81uLSipSrefS7_UOi%$8l zBJYrUMH2r#onp*?ZJzRiOP*!tQbEQATN-biVsK$_-cqMIXO6*>rECYAr(7%GZTZ2^ zQ1hcxRH@20xrJWBcbQdRhtr5Nw?YyIq zAw$Ncc#iiS#wA<~9Ev##X_MHU&MoTSZuNcVh2C`~-c$Cd>NqeY+|br)UTW?CWZhI# zp@VVW$^!4WIC**v#5OTZU`dWV$oHXD|G#3`t_jMzESut+(zHGti2s+Bs4#azvsi*t zqs1Q<{yAGGrEmNx!1ZGL{(q((nVL!JMKK&se`lp1aA?@rlyfLp(&j)Uud4u`yh8F? zR>LEwiZ?QQ@G!XDxS?XNCScg{Mqznw^XFx!AItszaok~EhXC(~&I=jlk&eQ=W(Tqv z9&nx)d*)pv$o?r%j`yXa+bl8157rZc3SO$mdENKF_SE&Y_24gRPXydG-gJ=QHYNG`{E*dv<_DP03Ke z)o_(`zm>zBz!zOj!9fxvvG#EEDW^jL;%2<{rpew&bRsZ3I!Waieu7DOMn-`9n=UzxU z2PB-mHSYw|*~$7v6Ph2iUt-r<#8}+H;`Gd9Jx9F6#>bwARHXJC&~-fL*u6>b&kGO# zU6%sg<}~RX;+J7$kl44ncLoo8$SoxY-jJ^yPnX0fJ#T2s31(OPe|6eB2DbQJx2~W2 zwyk)@OO}mI8#)qnm>ZnEnH#OUY9`qKS;-|>yId&g)I+YS<7?jV2r?Tdy!dv^`rpS1 z%g+ecCU-w}-M6q~|DI>&=YO6%{f6fj=wM~Xxbw`zGE0 z_pRIizU?@__g(q<-}iq1`+k6b--mYpKaZsU|2W~l@6+`2f1X+Y|9PQ*-gDFQtAliT-@IeRvMh0Vp zt|b;-Kdv`PPv}}Tql-ncm8pRFcLEb@p-RIIfyia;TQhQMUqt+8Z*B4DT>hhb%8K@| z@7@26Z?tyo=s2~bM`yBd?+PL9t0pGNjLZiZr@UyBp3!uijX~lAi-|G|a{;q2v*5!3 zre_s>&oub-R7;W3kKN>F5RlVfd`s{X9(Z0U=%CwW@7B)F<=fMHPW~IA za;T#FV$l=^&B=cxnwdOX**GVJ|Cqu*b86H|EkVnP7d%uhtq`&_U|3*aDwWxCb4QSm zr;5ac2IdKj|J4*2A~rA?K49bx5d0p%^iZIuN@AL>0Yh!VG}Rj{-i4fE0gRF-r$j_d z3Ck2@o>4zxXY1vl30aymTW&N(iOoFTF_UNK)OkN=DhJ7={Fr*)*ws0JQSJjnTIQsD zkN8=Vx@rp;vl>|A3|Q3*Sb_waI23!o1u(r~koMRqz;u9t*EMa}!yHqu&zyT}=iG?SxxqW<&Y3x7f#tj>Hzi{|CoYXNo-lz?%z!bt zWExXJ=fRhAm<^{JHZbTkuq{~8>bscl^#lHi485N_1(*tE`8Tkhl4MX_G0UX5CEsCw zujJJKJDM&?&b?YWAuMyk|CyOH{Z7ukvvc88&z{SX^Hic1#Z}B(!fB)RkwM6Sf$u`l z2hI7{Jf|=`V4YSl+i3$sTmeg{0MqOADJIH%KR59G-QaE9B@j4)Lwy1BDNTWOHx@7# zOc%6Tdd_m;&WMFPigVZPoavVtFS~Mv#H+ctelAtIHB+r>S;i^}tB*bVS*B@CWJoq( z&^G96=2$9Yxu92)Wo-hF)<-tc09NY{EV3UK|KVh~^MFrv18+&y61I(ug})ZDeO#hd z*b?+>mdDDaJe^CUI=ZKyT*`G)n1yrMea&TeJ(q>dT()A?s_u=;gjNRS?P9DlV9;5x zXm#dtnOjqSx*Jy+Fd0nb^uNF)IB|M)XXk%i4F*L6hQ>;PNmBCzyZTME7V2wEef?sF z_sx~(Gne^Gu6p!x;a$sRGF7WqNv(UdYsTW6%T5|G`x-FVJFMQ?HBClx(T-WIzLy!- z8VKYCunAn8y?^J*+MldPJ#ASPTYa2Yo{QS>??>w_uQkUiR^QpxcP(q-70G4Gsun(u z+9)R7lVjD)UBJk^fjRN!x@j|}ecaW1$%4&yfe?29tM7tI|2;GRL>2M|FtSTcv!2Od zYP|BS)lyFHDWRDgL@stKRIQy`weoUSso?9m)4Z0RuiEHSy>ZQ}sn56==2|d>Dlmst zZxxGJ{_fW-Lyg`n0|xg43{?S){I3K$PVpU@ur2HLrk-EQ|CJ3GA}25xS#S3V*zD`P z!D@C-cI1{n;cI_utP-eNd1=_b>XME#Ip6d)@Y|!o*Bo z!vw~Z30u>;`(8*)&XpEQ`LILCW5wyN?VhWrw6EUs%VX;2?YqKH&1m6X+ax`&t9p00 zciY94?MA1j=bP_X)xFke$7ZhAySTLXaO_;m;W;-X4>~~wpE?SzGu7l zNAKL_yL$g0=>zGvHgE6V!&GyCW6lAtJqLL19N_zNKtSf8kj+7nn1f<92medVIViQ~ zpv;|va(@mg$Q)9#IiwPENQ`Gsg9cmJhC^zcS|1vi4R{UUk6 z1isEjuDuJAI1h4uRw$WrkmJ&XBbOeSPgZ1mlX56vP1X9<6YQCpbeHy@nk^Bzy;Ptu zZBn6`eWOI|a+!E>L1O_nudM=4rb)UP@PBTQzxPezqXX|>p`&Fol`~eA*OneV#&&?e zQ07gt5AU_e$&ANX8YFBQSnL%1L>F>?xgwCgM>0lLa$T!?dCkeZxVJA*4ln^!(x8 zXv{-V#!|)PK(Tc?0;LP{Sq#OC7Dm0U5ob#kunsSNrz7E}BhVIjZtI=%T%MCl!k5xYMsGdbiOEZo4d<_yD!RF)62S4w1WDxP2xWQ<5rtyvJI zuvSLE;8I%fDW-?6EDu;7{E@jZMfQqfVvmjBlY>QUjCrpw%5COJ{$!}|)luNbLV1>h z^8Xm+?R^#47*9_)lK=W*$Yd48&w+|RCn^4`xytojX}=?jE)zpkt&pLUi{`>W?zPG` zP1z1fsgXWA{x@V?lvsPwuTk|>A?tT>?wC#Ntcllsnyxb~JbUenu-}71CPVwE?Rrh- z`j2u1lY)xVn$)rmscqKLC=OEBouXcSDYQXJV3M!K)UzJ!iJ85VGG`yloLZzgvq@l% z(vgV0w;YdYtz**mchP1jh}b(#dr{$qy`Qw16XVtf=@d=XIde(p{HAN}yHg(|>%L#4 z`{|I`i$!|&7xfqn*k3y_uX(_9;R&;y>D{ZfcWYx$H8b33;uXEm#Q0F??vo_*&RqS^ zJPf}M=`$}({3~S0R?Kibbp`ijgA8+lPqv0%Vhsy<7-Y>dUMhykF&mku38-H7U$ggt zt(md*$3UY+#x{pj9F0x>vnocYr80O=p64%Y>U&BcwAeIqvrtU254WQ^OMn^YHM4wS zbEb)rFKcBA4FnA0^o{P_wO@FBuE0G8hGUtB1(wSQZaiw<`OTbB*|OEx;m}bFg)bJ& zjZda5e$u=7-hrw9hgCJ%6|7FUTCpZttvvo9!7g@lu=V!OvAdZW_9ipzUo3Q}`S!lV zN|ujaDymY}ZJRDJZ{SX}y|LK#&STqSXI&rQ4T%&^!%pz?#TX@Y#` zz86dvUqrc!wylxLyL>Kbo88;V0*-uwOerUs4u-IP3}IN{DD%WY&P71PL_qw@(-r?5 z1X2Qgco~$xgf0z>(R2~eaY>p{a`S(p+?(@Doo${ts~g5^C0=luBE_cY&Aib?>y?YT zpzGW{_Ms)NK8sxI=jD7;cK>gDs{U+3#FuzxM&BmecPxqTY|p8zOb|%kB9rP;)De4( zuh9KzN(S>pzxpX2O(q_#DgrN;`2ATY*KP8&@QnwnVE_xO!t1%7hyH!YRrOku;q>++mBzd_J!~4 z9p5o6eAo7eoz0DbBTV3&$YoOnUz54_gcpA3Sn}YPp8D@Aeq46`UrYQuj`;bmf3Wo( z&!z+CJ@^$_OFzW$eM~qXAfOt!K`lrk)L822v;T6e*A$n2EUpu>7BkT(-Q2?}cyP}r z+ljKqUq4+|6PS4JMPFZez5UC^{qO7(Icyrtidh&;OM~qnUc8wm=rQ#ei{mSn#8;6= z1wvRE!bFpL)y@~zyxu?WwSZDsN~u8l)Ud?;zqq!B7l#^`stS}(4X=Lstgck3A=Jcu z@IqcYKGy#ye3qZ#eE;Ki9)=DB)weMM z2KypE=Ls&K8uc~o3A3Ohqwy17LAJML(QDR4^Bm;e^dOoo@af#*r;|hO&(Tj}KNz#- z{{ICbu?!m>7-smh@yuXkXb=!=-e%KioRQ$^Bq+$pArN@sKf{a`E=eg4)@2vn?Kvmc zY)Nuo>gA+hwXfx-;ej&@hRM4W92A^|EjR!XJZWnWY5d zazrjFm^BMChL}_Y9@yNrj4|bU-UYAY#xJ+FuZo=gtY(&Z@w=ADSFh_<{CDkFi(R!i z;>T~!WsICYOO@9b2^pxXCNL+gnUnS76r14#C5LtQiYyOE&%S5*V0z@PgDtb-nO=8H zym)5jF_H9=iBIRw=wW!%P?Qw(kwGlBCD3h#k7a{cvB5!=NqyTUw$2LQHS?(pzpM3u zscENXw#{UIwvlrxvq9xLZ~gr&#y*C}RW|z=pLa3#HNC!Ntza+Dfn@^C>x3N|oYq7f z?Q(i^qfe>(70W@fX0ghX{KiX^r`Ud1;(BWK>&0gO6#cVmG3%5QnG;$B7B<_v@7s8C1y8Lo^DKjBvs%RtELeD4T*P|wYPYCk ziAVmcW%4a}CNsN7Lu^Cx1#^!|R`d}C|D09*dQJx{4(~B2R64-QrQy-nowB8&K(Af#Suc}Z zm4+(+Y@US;LA=$;I>xh=6x-(%zvOa}4_RbcxqV7_o~5~RK%z>L#?`L2=@)XW+NY(x zVYSLw*siuKV{yNm)mit%s3ZJ>LQKp`%v&lmUzQ8bGsv7Rck_Mny>pFj;%jrI&L+fN zm9@^@dOdA-?)Lj_v&~mqZ#tx)WM{-Mhj&%mmst5Z3^E_K33A@)v~JKoE}C^+FWSs- z#!l6|lj_U&{4YAKfBcS*_J_O|J!kCOcNbo8SKnK5+27qZuV!mx%0xE{FWa((dmp-# z-OfL5TYk6v`QGyT_3U;P58KuERXpx@x2t?QJ$+y0^ZD&|RWFw>-&gf|{c*eMx7(lZ ztA4+q-M;4IarON*pU=D7*M7a8zQ6YS{dW7hpU;=?ulxP}xPATK@6Y%D|Ex|jI#?87{nI*can;5=n~3vRAXEr%pg+WeAi$Blim~tl^L5|RLlx3ocAcm zls|Uccl5b;i3p$E;vMdG-vrfyw{-GFZS0x;C6PhyN0P+x4(B^Q@N)u9UkN5m`_e1( zIODiwl+a|^BMGXOFWrNtP3jNkS?v2tg@HlkK&zF<2_F$pw_OJWSv!1Ah_MN@-qlH9 z+t2b$UtiK|#)+b-rA)~>j7yuvO&+i<_Bp}CqSPR==Ky!L_X76cYz(Og&L^(l9);k+Fbb-sU+BGV-EcJT{3_ zog@zM_EpX{k{-}nWnay=fO)mbGCNj*R&BKh z^Vh^IVN0JS&|;Lp7C51i1?Q$LP?d3D^HE^XS);%vm#{kTU0_pz!!F6_=&80$OEl7BWvtQ`b&^ z&?l6WytnNg$5iXJK8zKOtiBJPGlT@ZnpmcCRV~hRb?B=slXQb~4ym70LUr?FmP@So zn^tI5Yg^F7%zq=qXMKg)f_BCY3r;t$3l6zm^JvL6Pk!Y9Z?$lD?K&46>+&1w%dfk#*F3NoHb-2XME|Vi8*{{8D@OpULDfNy*7ubvE&I`d&rOLS_&heSvTd2bC@J^OSVPjxo@a_=#(4=^PRpX4~tER0VindDK z(KNYzXvQkbxxt&?RT(Op95yZy7up0q1aN{WZxD-_$WEthaWf++YZIsK7Z=}fK5X~p zuzqBNp1={k6|Ax>>iQB#^cb4he>p8Vc-SUI+UC(=`z1%bc!XuP9Cv1 zUtD~3{vQrdIT~bgG}z^6NXXI9l%ruKN5fl=Moc*xx#VcnmZQ-}j>cR$8vEpE+?S*A zEXNW=jwPxbOENi@>~btcXP5336~hfp>36imOoTIoj%96edmFiikC~s@V1tVBBHuaO zQVI<2JB}5ZxZB)5n0xCO>*+%VYj~YMaH?1wuUz8(q;qS1^zqHihuzNbS}HVHtT^5v z;_*Nbe2iX&)NIHxdQ6S&UnYOJaD0ZujHZ>dc&bkXp5(2a)fge!dV+!R^9he@4;r%> zS}ZSkgi7)l7`4bHv~oX`mXbL!bBU)>CEKeDeTfZoTLhX_J2e^fTDd$H2n=l4IS(DH)3xSDon8?qC&55oLP8 zsIfqRDWW+g!nR<|$sJQp-^*xsRcvbW>DYCJZ_by#8XndqHJqOc_;Ui(RWfpqUvyai=#q*!ZQZbc^BvZIKTiB^KE0FW?1eeKsvMk#42*&+q?tL| zS{_VxWNcpirf(rjL!D*E5}%IN8D0h#*d_(6clzLa--Vw!gXKt1Cx-%q^bAI^5}y-3 z9P5wtOIC1kXtXZ#V3#^^X8j8mGYQtfik5R<3`&H~eh~53OgjEez>A^bZ2iM!p&e)6 zcW`{!z72WD%5GwP-t#t}<3Wltpr1d7#i>eP1X#v1%GX|NJ#^x4h(H-fph zlhc@$;d#mS6c5&oYZz4xW^7LR-*z^W4rPNGlUp9JH(zKo_;vd89XCUR z^Hv=*!(uOr^>%bP_WLWagmoF+zQN37Av3$+jNglnvo4oInHc3BFt3_$ypJI?aPH-x zt=G7&a@cbyyY1z3lV!W%!PL7TXpsoRjU(;T6GF6Y`I`^;U)v&WaAE`VZeBfw2B{g% zJ0CPI4(OJgAn?avkILibIR-(Qs@&UGU(0rlxEOL#Re+-@BD6oFqrIb}aBoMCLC4%9 zz7qsE@3AyY4(Okn&?(7l;Id=tPJ@>9JDRf(G_L<}eX~dR)(mc@if%UD8=Zg7v>d&e z%ya710>0M)>mS_d`*!B|M-BepF(Rd==Up5B^WR>;!1a*v>T3@78~vs)Smb&qoLVEm zp&GPl!L`|EZ?2bhGwAFTL`Z(&7>IeZi?)0`Be+ zdseTAVrpQJKX4_ybL!t2Q_Xp=8rVi`2))yAM7;K)c>Pc7E)@ywH@p=smv2Te$T6_6 zF6Hh%DB-nr?@`gaAGR!5=6Pa8VdyXJ$&NpcUo5?Q{jNK|*V)~j9D4&}4L+)#YQ1~+ zY3%G9bG~d~6?uF2q3XTL$hp@l=ROL(_cZn1v(kIdTkpM?dhg}Zd#|?MdwulYo2&QU zKE3zu>%I4^_dkf<|EPNZlWDwv$^!P5PA01bIZ+E3iWHVQUb->kKjYonzF&KJ19mXv zBnkgf<@@_I{`QCaGY&AZaWFDeHJ0sc;dW>=m3%OLM`LY8qY{HKpF}gaT(fdUA8X!& z&$dg2tQLyA>JZIZDBiVDa+RXOVP4rsifTblwGq|CgZE z#i@NrN%zqrt`ADboDbbGP&Nr#{9wj~ojV%2Iv9;RA6u?V>`t0&WyUAFjMsKsr>I1O zzy?W!!Uo0z3^zR(gKjjMe05@#56gGuH$uYQt@1*VqW*~)(yr|jCUR+n{0e)do20(jnvr{28tS! zeb-Ho_v6^UiXrh`hsX&B{ew^LE2IU;t*V~YEnU2nv0-V*wIt`=OZzUU#$Do#=Tb|! zWLp}wRAd7Ki^P*z6E-ma_D?HP+qJ-rVa2lSS==RI>9ZTsbGXfI`Vxc}bbHTe$a>Jg zP}fkKy4MT_z1L4lSih_FZUHs94Cw(de^)`*2&QSH=PHN9jk( z7VeLGbF6IPak;mQ8b^Gs-!dvR)|IX5%P?SAp>eD%=Y$`JrUo;cN^=fdgZzqI@k330 z3`}e>NwWiTB?MZ0Kfk@smd6nA);TC=w!+&Mj|O9-cRM@Yy{zMuv}lZ!W3ZKI+G6~; z??pr1tT&7q{~24`vTDEOh%@D0e8=&`@7+_sj%RfXpWEe#Ov!sy_Li~X?RvHO8`kYe zPSWB&k$bVrL4s%Ls$HwrbRApwOKYRl>W*2jWo(wQyl8Ma!Lmngr+jw9j{@x-leBkT zVmNS3d*7$k>I^zF1PX=PJ4O3f?_9Nd`U(vr1ym z_dLdWPQ?`r+&>uE6B>9V{x^7ed^Y|5S*e~=HvgmC_Da8d2_?1#B_7ki==F7mo&Vzd z{)_+n&t~BtJ|-5}S*x9A(%oEU!^JPb>H!TIy199uiMJon>nlNIcuK3W!$l+Wd{rQiiSIOY0aJuVxLy^Dd;^8nySx7+cdbd;9)ZwuD!-u`@Kj=V+?$?5po|xc>D9L)B&Fsz`Z; zX?%N|&odc#cYMFbeEEV!sNA>dJ1T6i|CsUM=gtR7Uhg|rnZI0Z{%g|wpE=_5KSzCS ziC+J$N`J-gjSaJGId`r9b8G#-U+eD*G_3PJ`Rnio-V+VNGqUdN+t}09&%XNOjTIZX zyLped|CzDj&y5u;YAZO;e_MXTV5Q=Ta_-HXq2<4yg*D80@aM#Q?h5^%Ek9~@as0ig zpFN}F?^OAQY4=T*wpU(!&vEH}hlz*Ht%%<$Wz`HD7U?x~YEF1tr}nSK;9uX4+M6%_ zE|+gm=;(dk|L>)LN2EW8mqddaJA?O$U+d)?jQuz&=Kp6=KmR1;`_KP!4cG5iI#27} z#{ZbH;oo$I4o&7PMvaby1N)j-n|U5A_@H>CLr6VnO~yy1V?9#lMQ>hwR6a35$$gSe z<|ma?Q?$bUcmxs-Ht;c}?b5L*R%7sx)bTmMdElupE3=wQN#y1Q7Z)>ZSkuwiz$!Ig zmUTt+bA6#BOSrZ&?a+L1qrsC&NzUg%a0YX$6q`c8;U$ln8AZ(^SgbuC-P)F~Dp&I% z;DvODbPI=5BctOrLM%2Nv!ld-Bx3{k2vwIC54r zdd@Rzg~pd#*w}xBazrRPD@w@n97x!BqCrs5lZS&*@LYo?m-p?w|7)kcebKc_-bg}V ziBjQX{)yW98joEZ6_^7=N{k=49pq!aU^BW4y$pqIr$54VFV!oG|*N-i@C@jN)->%l5;CBRkk>x8hlh@wM+ zPC5^c3Wl~c#JN9uvf0mGP3vfAIFrr?7uLWQj|Gv*j1AMAjAaZNCj0w1hPV_eCS2@y z^je}anc0Fc=_lNNTLc^4en#cEDSL<_&2pgP+pjUjMqV1$UPlKKk)!D+sBoPm*X zb|TAN*U0_|n1A*po5Mm@#mEc7%nvq2=kI3~4=lBJP&vvFQj+DV=$RFe^tgou2`mK zR&AZd6Ds)@%#3%L#v{03 zv3SBK_lfmW_!3?^M=$6y-pqeBrqIRO`O6`O)j=t1ocz?e8&<8^#l^5@6VrmYwXApl zdlfl;@=P&0rM>)4(FS+_DJ2`dou7O?>Li_``=F8A&f;OKw4UxZ*)KcRGDyELWZ<^_ z#d5{RX=3!c4(m@9ljW3k7#!66w;Z@=tJ-q;(oXxOaTB&%F{}|VVwUzidO=W?;q{cA zn{)$TOWd88cE6ixgIFbhY{4?8!nf-Jq?l_O1K*3b8f#w!l;78Mk9M#t=AF=$qM@wRl;;m)U17FnIu zJgP05!FodEe}`c8lm=M^hr6AVnk*Rw9%nw(@<>v6IN9LuTSWy6#P-02W^TTX1EoY_MqpDicE*)AOIu`$ejvRam5UxlEfr%DIEV$z2t77PIi zM>6v~;$5Oj_cr;gZ)9SY|D)A(WXsZznL?45V$~M8cYL{6pTw2DN>g5=89Z#xR^1A z$9Kj_rd0-RJt0rEL~btS6IEhp6FAz!@Iu)yCym}Hk9b9Oz*BYkQi zF;_KYvDVdbvw{B6q zzB7q6HZ`=P;!D8k2F^qVF$YGOI~N%9WnVGLonYkLcA&w)Fk!aH$!u4i?uesC-{v=n z$O&H&W@49V;u4c!6k}Xq(^c@_!PecPO-kZI3)c_9O`?psVnqtKZ@yz?nB@B=iTy%E z(Ie4DiNs`=U%##&;0s&GaQ2?_KSgnG87J1-6Am__Ld|Ram{>JdTxE+`5F1hHuv=$C zn^VhzAf5SdKF)-?|qtQzIV@B zt*+oTk3=_1DCTNY`;v@p=;)gkVLt$r7?0+r+y z5~t}nu(lgiGCW_+A(>Gl*IFZaI_h8Yxm|y5H)*My^7+Itwb%ODe$K>Qky4E}6_R>1 z6&z0eI?^=na@88W6i&7#fzMUH&nz*JK7UR;(`2?vf`MkiEYEpu9u2uto^#BOIQwuh zD#|Zv)6!XEmep)L`H4@uXYj2{tOvKu>)-IwuRdxoW3J(r#ky}Zi$ACup5)j+>v6Db z;yaa_*RH>^s=5;G#i}$tgF!$~YNAL*BFBz^?QSB4Aw3&z-~I56L+_5QkebhdyDd}7 zd3=K2mzT3VP_r!G!* ze7Jp|zyHUPm1{pu-Mr_icuOa1*@kB8+or`@AuVUBtriwkvxx9CPdmT(_Q3_rf1m5Q zb6#A?`f0K8-j{y$R#(I?w5}{~RPegD(P@vvS3QQr=URVG@C5x^vtje3Hy4bouedgS zOV_o1n^$jr=kdHpo64f!mF?es=XT%sy`T5KulrtQ^k47CL2ql`2`V;^gxCK#YP|1b zU%kx}W&NKggZF)!w%_KN@%o=S-doA-TPS8w|! zS^xLV%lp1<+i&}>c>V9YpZ9&=_uuwIv;Lol!ux+*?Q&JOGVHjl9RKrJz1^4pp+Y~_ ze2C!*+hMnJ<<^Gk>L;(|ZvJ!QX=Il1XgdCMAIEubrhiEnBsd?#k-m=99;|k%v`|Q)uQOY z!1!O`AYYS<{J)28Umoy3Tj;hW!GlLhq3OsgiKHJt6P3T6;Q67*_=oZ5!}}s;3NmR& z_e5sK(uo}cQBEu(f9{KBF#4ToRI_7A(n<@P^gxs0(2-6@qk=|3 z(Pa`0PMRHe+ZYbm3mq_>lF-lK5aOpg$K^@9kV8Vz(*&VqE;4ESD$kN`u>^3b^6@?h z+>z{Pw*0ZJvuwwLlK*_n5;iRoI*lb!jq)82gnX8il({lgG;z#w6tZcNcUjIM8sUUWom3Y|d+K6k=%7(rDJ2%-^8Fc!hy) zPLuCFmX>cRj(d^>pDnib%@7QG;hdt;5yvQWV?p?t6;5-SdjH)QWOAqzI#5^UT7T>@ zPnJeITTcuhlb)EO!2&ggjE56XH9Fm4l)U7?dCrApg9giogG@hCru@rjXIjxvq}XWn zqWRi#cdZr=p#~X?V8@aNfWB$_fXk#xcrWNys_( zY{t3_!Ce|XVl2~dt(Y#xG9z!{46c<7A71h-S~=_2f+5sENlLDr@0cW)Ee+Sn-kg=ZT*!ep;&p4&W1cdm)@8lh_9?NrsBQaqf0tNd6w?9Y zeT#TMq?%Q&-u&yx#6yp!hiOmx_G0I<)y=Q64@kV6sHVB)+lei+R`V}<-M7q_VM$Z( zujkXgy-#PA-P&$&7cB|#}j{j^q2aQ&5wsW!kColeDBv% zp?@@OLCBfLrb`UkI~r8mlKAK4|MJUs)Or6%jO9g8<};y&2VSoHf8u$sWQJ?7Fl>Iv zAa1~L<&B&K(~(aMwL%O(KCRhN#w6FF#g~%2B(J0G$vXZ|>)!v9|G>oX*RA2N&;i*8 z>z&@@vwV5Kob3!7a{_yF(v^SlG7HxKO5?kFZO+-$wIbU0p0}KkT%pUbWUacwQLThR zqfcuYZ#1pfaxv&wAgaM4vA(Ift5LUOf%+X)w?D~N8Oaa5w10}R9JSq`LGcU61}TPhYKu$eIl7c=WW3QR>$Us_WANJl zdW>xPisE8M54+Ys6lyrCcVOxzMqY)+WU&|jGm{Ls8HARUtT^(;=X!}y{0ELEzmN(STImt_!;kIn5Gd@!9^=-`$0u zYb%35sack3_~A`D{G7VyTXdrf{8w$Y5l{TbW^CYn)R)KDr9d;R&-Lsz2j6+6vDKR+ zew+9{H;JB}U=@Gxr{Y_Wdq)zw9na2EnsJMPVauBOMH__wsGqY-%-v?}%g_)KzBTl} z{12@b+wxL7Z`OpzE~(Z!QMbRY+H}D|eoNltxg0YZH_mc&T%fLa=TceHms`7@OFFYu zS9ntGZ%f_H%JUbN|K1dF z?ntVTL*V>Fq5B`DpI;}b^l0|JM=IxzlzKmF^=YpPdf)ZYdA+_N&Z( z>~qA3@xno!*Xg?V3x%XDs+GT`i9d9GX)5%5OT0ZxN7k~55lKPowlgT~@a5RST5rz6 zeV}f70&91+|Fr0ic8<>YZ`Rpmr>hjX+>IDwzGgjU$(;VWc5-6-wr$P($_`xl(eXdN z^ZbLxmXx?fj9I(FLo%bF5HKIxTeI zw9wlP%m;d(7p1+n>UaL+%d#!x)j=Te@%eS&*@BSKR_59!bjK?g~ zgYq-)*DRcFEp*@bns-^k>RR3s+bQd-0{2%tM*rNSU$>>UiQ^Ze-yX{u`+pkv#0Xi~ z9eAB}>(OE7J(Wew4pQ1KH>DT^8yKhlTbtgsdbisV<<*-%#by3nw$fjuIQ`O|CpQvw zt~czywCs&E=UeM4M+d7n+AfCYYdWvh9B46SJhAS{e}-JgC;wi3mXO==Na{-Y3Z9ei zne8t=|Mhuw-9mNS7Jkpy&Ig{KIq+e%)u!VAeD@2&cdQdQq{k?*qMhB^MWk5kfy)`K z;)l!Y1Alk$rrA3%2pnj2=(S{E;Sy*NP!wTeS(o9cktP1L5OQ&U)`-w0{{e9ri2Qa%G9YbH#a^z2r7|t(fpIhiU6{<-f9j zv`&0*^PL;_4i#Dl#R?=weYhU2a!C;vtmEx*Wk+gon_eZnW@9UQHDm*IoKfb5% znB~Gf6B}e=Zx|k4Q}^VZ&SnOQ?ln%Fu3s)3l*qku(Ot1OSx1ZxZ!pZ^JYy34Lh@vmlgE`n-px%5jT2-|r?}o;w4iPJmP=Y1?lDRUy?zzR zFSw?c^#=2N;Ye6|y?5QMsqN_#t-dWx@r~N%-qvvEl7qB@QGevqJ`sjh3ARZd*QZ|z z5{{MWb-ku4z2)shXGh~H)1ufpl@y%f1(~ibP3-<#eAr>P)#*bCz9AmmImJ#VTFaZS zaw@L6;M=OhTYHBqo?(q{#=WZRt)6?Ixm`5Ap)PpH;zo!7S7*aSuT70gy7ECvDT)7+ z_4?=j=d5U1Q+%;jxS{>x){3Mq<-D0my}a)vJY0EwMbsi+;05 z>g5@R9InhW%b?416+}Z13o#uOJ1oX|ir?7mZ1uG$U2a!Bsg#;&mTk`zt~todY3^9A z-(31cddYz6OB?kBaXlH42eWK*E(B*T zo9(8-q#o0hARu5?C6~x*{k*p5Rw~b`uPqffRBvckh-CcvbiV)Qsag4M4O4So3feZv z$Uacq-}}FSk=@K=+JzYQ-R&pNY2JPvcX`?|lkU#`npCIwD+`t@tcvB$c2s)l zQ?81xHjCm|7?|`-KK7J#E{fVQfk(IFxSn^8lFUVoBil7p_}9E(6i-?_&w+1}ZoSBT zXF0_N$tg|j_DdE!9g8?-cd50vK}1FI?~23X>n2TITk=#pQPO*P2yb}zhh`1|rnXZO z4$^8msY|CNZP~S==)c~SkyH051nV6;!fl+|DV}au++Cvhz;LysZ*Jb?*>}G@ zGe6jADjRjsz{Q}K@xVsL_^3%i+%p>0gI9`|A1a;^x%-OE^i2O<4<^rgc!t~l_sr?p z&w}UwGkM`CI4hu4?~8tz#qyMM2Ld|%rYu@5qhZP&71*0MWwGqnjO$4&dR=uE3C{od z!ZUDI(7udD{u&K7vrwtvndhb~Gu`^qw{TYQ+;>x!+kSoN-zXKbkZ6G`Z|a&<)7Oy~XN7HDH+5}p z>FenI$NV;&5?xoib+x1ZgzMZE3c9ZUGY$yk8JuQ#;jmu(hr^9cC#Pw~Fig$ad4x4U zVEPd!!CBF>bF}omZ_4~D$|>2p#?F#kGb*i2f8O5LnSs)$S$P&Pr6@4VG)-!-t4Ltj zD(k?r>Y+E^4l_aK84a;L8(YmUOkPlY@&Ln?m(!GZ5?BgWt`YOBUitjo(Jk45PcxQs zpM4eeYS)daS2B!uxxMu>-}=<_{f)5Oja$HLlR-<9xvu3U2Am0O$bWsPf$K^b(}WkN z%Ptq)d9qEFb;*r`(F{CyKct!OD)RhbRmd90mj317#7Wu};(x?B@2Bn-wR_+0*t7D> zGFSGs5pDs$3>f&Ylq-J!`!+_+ph0HAL2e<1!~g50WkeXWEsm$Y{8(P!lkn+R#0F=% zp7y=VoO#kC3_SFVCOgZdYF6v+O~_GZ5DJKvopN;FkFD=G12-f!<|Hx%Zs@j7pO9v1 z9u~OoieZssLKEA9gJm9(4oOkv=`D8>Ynf&o-|gzt9enw&>eh+NWnODE zFFnN-IprZsLL*~A!)e`bYZvY9ZdA{3^7hyAYmAM~E?TFm>R`tj}ET+6@jPL(a}oWArLlfsmTi!Q|FD6cv# z+_Am9`)q@xizAy5M?;v}hlU+1l%;j^cW(0j@WxsF&kl|Y%$)xen;BCSH8c|#nClMY zuC1tMNKt5I3kzstj5%-2a}oHY|Vn^WT@G_gP&P{997uUHeM; z&!+P4v6(H_w;qQ7w%W5XuAupF)uYmO?X~O|8W&Dxy>2PNpkc-|tuH`wyCLtb z$4eQugc&e+*Ua0gCi9o!TcTxC!u5!=_fI^!W4D&!e9}J--K$5|FW_5uS?Ki7vh_^- z1+Upu8UOk|c#;1@uV7aUFVl9tF2CHbS9DoK3;sRoW48UkywK-YLcrP&e(%@lYl<-m z8699!dr-jg{`VfAZ*`p?lNcBy8qU4)F}so|`$tj8B;bA@w@{Vq?Ntr`XPwsE*ZX_R zqkZ=h{(p1mWn@10Ltx#mC-1)b2(X54;GBDo_3~O>t1~=j^_b2!@tp2^d#>Q!tsa)k z0nCl>A8VZ9y~)8BZ@|Vnam}$skIpO#ms@b_T|fI?e}-= z!qlyI1bm8J#DtbUZN@5Ap^zS~%a3k*Y&@;N|3hdUYdt^D(sPW5^~DSe=AP5bE_pB7 zy#A_QHxqlFc(neTjzXrN0{oNpB~$%b+b8mK`iajClwdEEy1Pn%y@5^l-7gje#$yQ# zVF$XZE(q59@-Nl^on0sL2zGW|g7D)e={pNqwk_n-%@pzeC?d=9C8&@g?BeyPi=rFI-$Q zQOeV3?V7;7Sq6$`4xppzrY-)x>BDs&UH-{V{B8@>j2?1ECFrTG|MVtMgq?wFtJCci z2GO+_epyP<~z@xp#uHvCx|Z+T!K~66Qf~ zJwSxn6E?m&RJjwWffRwSYuCK7M z>?E1nXYbtzQn|h9Kab{HE!VRquEyH=f_jCO{3zL$%;EROGX#J%jvgspQI_f<<*VNo7j96LksM=_1>}+DO{f5et7lIJ)2pQ z*MGGOai6`>Vx!RsrY&C6v)C$y|1*Rn-rg}~y+nyc>ZNafCkoamvgtJNh>1AQUVAg8 z&uwY$^`ryaq7;NBn7DV8-0ov=`)jC?c7-qdikoGydpW;*xrt40$-%l3+yB8o+f2TR zOcg&a%%XhN{^U%pjr7`xUjJqDh>|P)?>s`wphS=Q<91?4? z516j&+Zz4)YxH~5nCDYtes1+zxIUgaB!;op85@o+7Dw-v! zmL+L!OVa(8WN4ObT9$0NE!p;4vZGmwYgvltwiMrQDS>9Gp=GI&+frk{r6!uKNLnat zl_-$(Ev<0dY@wj3M-Fh+Y!f`}c3wtjSDR0UI0O3xv&{dC=S~XCeC(9L$e5XXO?O%o z!z`urjb_=AC&i8%8}l&Nt~nF2b*ipWdxWQ`-YGE#u?MkNRs>xWi@mi?_tLjTHx^~B z56k{&mT&!9>EqdK-Ul9SW{H=Rx+WaRS^PvF(NOj|#6U6-F{m zzPCuCEKxkoJ>T|wv3<8hVPW3Cvbs61gFZI-w7e|%>-4|$@*{q=>DdX>yY3w-)z{2$ zFfT6^Z*_UV!^Ox`psCBTP=I4$fWw0dPjjmYkR@2-_AG_WuG!NoPb>E(_-$wjgZ?Hpa=iXSRM^nQf6 zScEz~Y-vsk&0>|_=fse7gCWn=Yzq_133ri6>g}8koMkr(ukBEn^pwwMMbR7e2$mh; z3Nsm0Dr+;ZYsMT?{l=gf)R^S+Wb#E;CO#(3BNe)CHsfA2xAwmiA#bWmzO}Byvvt zQ3ff;=;%XiX$Q(QZcY+xYBx+_%VS~kV)VMy$dS(B>zKF1yv`4tdrv@ZV4Tx_%hUv zaqsgYy@IB-bDJhvH!9lgOcY^asc7K;lH4blbZW8(gVx`arbpHs3Cn`#ZkKdQ%W|08 z^jon_T60-N7UKf;GjkL}=3brq=*smwXT%TedN}9E(>o4s>_^|%-1OdN{HMXPNhYMJ zM&gJvr&aRamu?IzB;}iwPTZDem@rFm(M*m54+3=j^f(SFTv1xbyF@MRK$H*5c?l-1 zg32qCnGasBop#*H%`D@danpar6;5kqXElBoPmy8QGMc0KLv{jJ(lpyYifv5%X^YnP z-tC?IclS)&$Bx&Q3pyLxrOsAuHqv3f?LFO?$GO?Ld7|gz*}=)CF^^3boUuIQ(pBJW z9&^ZLnX)sRiiXGBZM`XLP9AYMbAdP+O9JiG+{9A=j`Yei+NC(&2)26q*qJrVtM$U>SO%V(Vs$I#xIevJ zEL9*Sspoa9piVV{|B+qK|PQiYj%VcMcfmi@I#&vzYs^dVY3H_%o?;zXmt_8$E^HDVQ2tDaX~xK$GH z{L|b=Kjk^a&O0pjz!VC z?`!mlbm}uSc^l~(Gf3D}2(V0-TgszoV$sa5z{Rf}Ws||d)R--$4}XOxN7lm~wiSZMWIlTU&E(@A_Y>U6ysRJ*-1QA?ds34&I=r zRj~%ij*$nN9xhVJvDo?RXY=#xo7=nV`S+Lo`uXhf?fw1s`~Uq7eR=*l ze?kKjpNB&Izop>`O5}NybpI&WzVd;_BDppnQ*d}g~5GcsYQ|RpK`f|ZTR{15S z;XaK=r!0yInYl%YL8iy?v4s1UCrMpuoC*z&#@8wydk7rMxF90l;d1G}s`!EflUiQI za->cPGTMHCL3Dy6n+%8Qg?4u48cPSBt6z>XPV3|`aP&Tw^U*EQWbcbfOw1mP!l9OI z1(W8KFgZM84dDr3>$9A9B)PvP?MM0oC#j|CPLeza!aZGi44fwWi5a9Wo0WGfda7*1 zk%J6k0TbD{mqhG5>gf8BqhU_wx+4y(@m>rkXBTWLab`8VlKFgr>eF4Xo%tEGR&-m7 zWlab?taWQ*-~qcY8B0`_I-KI0W_2=i+pWClS{##%*VXqfc9Q~$B0RLe{gx{?EBT%lC#NGw|dh43r?plFP%}uU3f&u{F&ze z)nbaX4@|d`n4>qV`xOTR*E6XtM;QXQu-xF$THmwe;IDgJ4huCS8XQhDEXZELpb*hB zfluG0fcZR!?goZ_O_K+$Ti7LiH=kwDiT>cM@Z(J5CH{{QM+A5mBwkb%4hc5h<^7ps z>jgt`tpjIF_0LS_jFz@Cx#$vYV$NXxCi##vpZ}Ti`*qVpLyp?;^^`3X<2k^1+;-Qg z^{49?8x9J$av3^Y2%IhA$2lv1-A;?=uWnR4d~%J+oPmR90>iB$vjyu#mN&m-G!*64 zKFFq66Y0o4rRQw2yy%3w(wl+Y53FXWa~OSa44T6Dj3H%Ch5)CKNxhRQhp3j#!;JpA zuZtag{y+WC%BjHO@_A}lNtIw^gQXi6`%H6&Kk-UG%Kv`5zdrZ@b4kF8zE*Al*1+EP zX%^X{vmTVFR|WPl8h14Ds5BTe`aEFN2y{2ot2lUO>Ve|E-*fg|nAX6jq9nZ3I`$RU zR;#L+3lLkp6Uvw;IB@$3G=;gm6JTRp$l)nr;~@G@!D&SUYuy4KHk(yKOPLvD)@)%G zjbLW&{2|T|^`KGakF#Wa$3ccW2dp1{JkzfH<{pE<0(PN4&TPylnC=7}U|{>x5F}

Z?<%p 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

eEQB^V3)t3GsDiDg%7ts7D|lEfBfT}?R=MY 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�+Py07Bl2D9-P?e5P6zmg|nl-Sj9ym9{;~9TbN9wcGM7P;z5@d?>l6>^ki_Ma&J!L$v81I zU0qqIT3wXtc;$J`gXaldsisv2Lf8)Z*3N4=s#Fxwcz4f4ov-OJQQWai8RZ-=5{jf9 zzo`EXWi`%XtqD3_lk~vEEP-W3bL}av`n~cLC_h#F()$?=K#HOq{ z7L{|ND(Bt*#+;M)jvkn{=A_n|)BAMJXsxN9$fmU*a(=IZyZ2vbDF?>E7P9_VzyAJIB`EIj4K~+SZIw(bF+ z-b1l<59Rb8slB^dwEDWyx<_{J9!E7iiE>~HI4WdtKx6__Bntz#&pOr_4d*&^ymmCO zX1oqx(a74+6y5P|*DHb7`&u8bb3I^`bN@emYtBsPnDUy7zo}ECL7EIvO}4 znw)hSSQ;1@b@UlC9F327^8Oci&n)1;eCDXdnnoT6?StELTum4mr!Yk8Ff!gaaA;rN z;!i&Nqq2Xk(wwz!ef*boyoKxE9ee%moc`M+o!y7tzkip1pY1(!K&zp^0al)aqFWe+ zblywt;PFgg_Na6F&=cxPFWY1LKMV3Nx5k zIvTjQ7dXZk#P=9*HgEX3?j1*Z%saL&p4(^MTzx-3rI6Fukhi_?zt92Z94#%~1D`fA z@ah&YFJ|4|)Wk1*L`vWQ%W2o6zZm46Z`}63YoT+D0qX$fx_eZh*BCoDBn$ugwyAAb!=S2K?zcf=YFouEg$^j{6!>>`FG};}c z1Xy(h7&O;tMRho{hHN$sH?~-?(oDGJyA(5v!FpDm24@bY&wcq>HK!N_4hUH=el}tf zT(fEIrVkRcHrRNtS*m3$Uj9jU`KO=9-fJA+EOG0T-T6+N%|`amH{1O#e!r{e*tLAe zdN14dPvHt%?6|ksUY_UreUqF2Tm8v~)xEvd&l(uIi_iSuP{>^HNkf>KQK5nDNdt$& z0b@=V<`s?62b@jseDMt~W=$!!zrE`FF(#o041667j24Z~0*p)w3>q_v4VHg4RB&W} z(kLd-zRA8P?S1K`vJ%PX*Ou>C&ai@kamyjsmR8U1Pe#W1!Uq}{&NPG^XJS6l z>hQ#wwc{|mdm%%`dX5djoHfRV3;KTCI$$a6VkN!RVZ}k#90t$do7K}x!%lxavtX-B zyouxTl@aM%bS|4YByS1t-x}*}l<)p!>$A*oZS^SoFWSe;?5CUN{XhIImcQKTvuWw? zO^y=^Ran1G^I>FcaA1=u^Wk<7h>y?j=jACmU~r~EbB6!| z%^@&_k#R>uM*sW#8D@+kjSX)c47a~`vH#9{b$fQZyZ`yEo8nA$@0-Ocm#ZajX>8tP zq+OAlZq{^uTg&FW*8QfD&job!zqd~=?})D`&i`SSUDh6M-t)VNfx$STo0~z$Q8>nd zc?U}pw~Ii2#k+G3VmBOhwlpg67i~D?%zB4e`-*v9bw1w`HcJ5psW0X~7r9uicFZ!^ zz+>@U%lt?9?Yx-uGL7G59nK|Pt4;q-`l>r$-+ud!S=)_T#J_jmFP?RLXYv2p7Anpb zGaqk_u-`G~_qV3^MLptH#a*nu(XD0NE^IZ%b)PFL{_kjdK0#r_cZmZ|EF6a<798Zh z(-hOtZ1=+1o?++QiuX)Q+B}*YrUtuO&A0Mg!ocWLHg9`HJNK3um(9H7c0@lej!Q0T zVXs=>Y&k2u=-<7c^P(-{R#(mm-jQ_p)5i0g+fIL*|KF;6vc+s^t8L0Ui>ga{xlb?| zFfl$kc=_v&3iZ!R<{#yAIcUMr!jr=w72qf((YSnnEB_H^)*sCCzHeT+xT<`;)imLT z)%+}LPXAhyTrqd{*22fTbm}W-PB)*UUo&6YX47tqjpkc6M*lu?x@?Pn#n$}=o$t$Z z&Hw!UpZ952_ogGwh1-_bc<258U$)y}$^pjh2h}J2u5hlN?aeK8lXH&JsChI?k{r9eaz3b@nbyuG6x^Vf|*6X{XCfIC{ zuDG_`^mpE$lha=vpKjhYz2Fhi9hr6s6XMJj}HP_wt*z7--m2Eb! zH$6VNPIJEH+rED#%;mA0?XSN!vSYS7thRk~eZAY}{jQJy+Y6h&d%f@fdK(884uQr4 z%#7@;Obi>^7#K~I6x?!_1w3$Mkl-*8m@(mzTR)=+lZAy5W1}I*1c3>HlTuGl_^5S4 z*lhAM*=h3jZ8=U48hB+cNeD_PIV5(PxrYjLlx{h@VFEjcj>0MfRz^1S!n`*p1RIX8 zjdX1L^6Hbe-^QquO|G{?-$t%WzFDLyZJy)3we;bkrL%=s-`pE{_t#Qsiwy~TGY^W% zy$;oWyjxFr`qR}j9^c(Qk-dKI?wQ5u|Ig2NY!|bgRg!smdEoM}y|YTQudh!$KFxOa zR);1w!M5JZ6UyJS$m%9t+3_tucA_#r-{m65BS$V6XuC|0V~mMEz*Tm- zn31W$kxj{?`{FL1&?Dzfm`i!iIw;nj+32C%pQGy`&L6$W;K-9#hKlM>y*HU@`<@9p zt-JHhrPKNcc{Y1D=`CpLGJmtmN5A;Yo`pvRH-0hjGyMO#d(sihmrI1t^R7H|`MfZ3v0LC`FzQNCO^DO!5rf;WAZA{-*~RC(MY|YU z`yHRPxb!>zi%7X(!Isd}&;L!Qhmp;q@!`zObvM&4D*fqiW~x}W;L)Z3b#LFaF!G(e zamme5dRGR6NyE*TjBW}WUoKzhH!GvnuEBD``MAEH&(8{+jEY! zMBX{VQ_XycD?zO-Q-h_$=}4mYKXY;I3kNc}GFq6d#o7)W^pWh~I4OSO$CmJ%z}l6! zeFWM)9FFudR54pHOGX@GTXk}cDqq7)rbzo6PG@+*BCzaXD~AOG zt3h^)nf2t$KVB9xIQ?Ld{ngPl0d$4=gk{&cUT*R4c_6<(CB^okRQS$3&ScTaEsl%< z7wiL6gev~;m2u;4;0oB(B5uR&%Obqhn9 z$p@xy8pniY>^s!N)tUZGEjseF){^ClnJj0HteT*}_drI5=B0`( zt8+`XskTcy2#F+h>nsvvi1kkQxK|2g-%RPDPXj0%QTT^JVRDwZxk3i(av}v;#IvgH=wu7rYO6O|K zG>SD6`p>lE;5Jb`?FE8Ee_3geOC^Zm7Hv`|Lr@2 zb77~3tiyk^$VV~L*A%l_Jb5a1f2N5{1C!Rm1p-p5l2k5yc&);Jdy?vAl|>6= zJQ;pPHpFTqZC#+4rmR$bGfHU3%GL$9xOgr$O@F6*CiC~E4^6L=7>;b5qu8iq%22?v z{Nr?0-HN9snLNk1CqF%V^slb>zn(iXhu`evid@d*#Kba#apsAs+rBLQ9OYciaESkv zuMtCrM(4yi1$)`A7S%jIJxQ~D$*IiGDU9qxqg>&;f@}ancJ%E%z6w$cZFn^Pn|n) zp2@O{bKkwb6d*39c#vE4{~`W)jE9ugr>$ofE)0*DZ+6ed`>R^zvFHOujVF)a)QEh> za3=TomRY;~qFE+g;Ls2|chErDOq+E=!5uYehWQOQqYc+QoKRB1`jN-*jN6+@7Tb6j zluwj-+t@Ko*zNK-#WH5W%(P^g_LMuXY?ka~cgQT|pZlUuB%g6X;>1H@4=#J(cm3m6 z_@#QWF9YjV_C((9hXhhPhrjk|b2i%k{KDUzPAalr z7Uj?Tys>*d-z~qUj=EV3AOAgk(VMs6|C!eJFBC&OUIu$IS-6xeVz6*^X@0rg7_M-OiexaAYn)wS@_r1GLZy9FD;c13;O3g6DZ4L zTfCl4)G4!W{b>dU!GH#~x|5|02e|&_{QIH9bcIoneSvt;Ip%8`0)JMomRc{QZ>XYB zs28=IN8rs*hJOs|2g}8;7RoBCJ25Pf zUGPxa^TCTdiS9M|W^v25ZBdc;ZI!?IQJyiV`Htb~B!&NrzMYj@dW`*tj-t3wh>3$D zvyqbOr-@Am6pp{%t7fEZTBLmPsW{_8*%C&+n0{r?O)9>hR054uLyJ@+H>t*cQcW~c zOD$5%+@zNKNv+UGy|hTZa+7-PC-p`njn*QK&P^J4T{ctKoH2hI5jgV1Sv)xWb!)T@$Inbp`yGZRh4@Om|_;HrkwQrrJ@^q zfN5Ky@s$Hi4huDZZc^n;VpcdL6p_TJ!oX7H%spqZau$P<+yh^aWSMIYY%{ps_6V7* zV)7MX(h_sX6Io)aH`(J(pyH+m1{DRNlW|^H8EU!pwo2N(3P3dY=NSJ0{aw~;1iF;I2^bmoQw)yqw68 zVB)=*=W$T-vn5uMN$OFXjXM}P6%x%ZZdS>@tQw)frPZja;-J|uS)--dM5=)yBtgK3 zk;z5D^8H3*g+_+D2bQOqO%^_}w^epv7s=>yu`V<)j&XK8JlXW}W~by&W-5loVha=_ z7%W}{TPV8dIVg(tH7gc1JhpnQSexJ)`9<%y@*%z^4m}023m(R-55&3{*lN_yL@eOw zS;(TJ&1AsF=F`|w)5yrysMF!VCUrpEOxZ2H#OUe*##s;D&6~xf4*VB6Hd$5X%7dUZ z6^#Y%^(JS$7Wkaq;uF0niN(P!v&8AN5Zi<)I(pBNq>NGvMA&pp{H@QMaV1?7mjH5wBM$qI)qSdm+R&s1kv(@cBH`Fdj;+)f9F44$w$WQSe zgO=1G4uJy}E(_S1rZ7xM;Hqk1FneI`+{9Y8z&!4NwNEgELFw`W2BxaT?CTN~7b^sC z9^iPCz;5jIWG2K&Xkf%~nO71Y>6>fhuLQ z*rZ_Vt%`P`{x?JK{tz+GSfb}=z+Mm>qy5O4_p02*CJ7D(MiT{g7X~JcXa5zX9C)3W z{cCZubI<(4UlO<-Uz zIFK^8LA8T{Q9vQ*>{itUkCKebl5dyh>%Wa%ucPzNKr`y03H!DHep4f-2J=}AY%B?E zCT3z6l1=!OH{XT1ja*$!r8wl0dJV1*n?2X?+R|;9SHAC)JmMJV`Hx3R9^CPTWu?kN|v$t zmQclI4Gazn%pBz^Ey+#>ENRvW5@`oSVivF;d%!F8$(V&fKIu`lOqtGv#VoTHu;06! z$GLz*Ygt$}gGyEdLtcY*Yy*QtYbmFLN=gI63I|0y3(wcr*$(u{a4;~7aW|>{u-KsP z8{fdNOhLsfiD$xMA*n~1n|q z!DXhvo2HP?uQWxzRQ*_(VvGduCW%_k1r?%;CLH`R^I?{@@A1v!Y44zV?|K{=e?Fmjr3%IHlI5+NG__}g=nNy5tQ=Fs1%vdHXXQlZIEte~L&iXxN7Jm|B zlTz^J%7pEf%0I3<2_>;FN|51mVl!jlU7^6+!!XzRFnhuwdA=)&u8UOieg@{2Xca^) z(QZ?0V_3jiRn0BMVE2R7YQfsOyO?zn7xFi)KIz2U^MGknLKlD2q_q|fx(nHI8!8uW zWA8ZFe=)(^b(ZRhTNYjl8XF|tSR2;0?{rAMRhK!dDN%}{AZod#b#uipMjpNb)&(p< zi+E4W(7je+p;!K2UyPeG=Rl)@B5ziriN^J!&AWm`l{6w2RGx6wI&e!%glS^-!}Ow? zYgiK&h$^jJ8_Itm@0y#__LGa4IT%C^oMT#Lp<-~eT=$THd6hI@5|7Ue)fVaL>DMgs zBA9mNs4S@7G`&If#8&(0N2XhMY(LAq!}|BW)aRR>XLr{u2;Rv+mz;AWH@PmxbNc* zF9T{%99mPx3FJhDt`Qp<9RzupuxvEg+5 z-R*`pML$cKof0HAO-t#mKF_MKwl*g1xPz2a8Hd?}!;B6$XWkW;`phbHK(y@v6I1oc zy$dalGl;k-hy_(H){Rv>B*rP@!LX?I*6P3iO_;0MLlPcv-VDFfJ0#Swoiyt3vew1Hz%Fymz zI-9FQw613B?AJ?->Q(&0p2%_>;Om&xm(HRX(ZHDXK+p5AxKsjHLW1|-dwloys2-Z~ z(e^NVlyR#14NtEBA6V;+EsG##{P2|7zX;yHhW8-?8~`#hJQ-C+_|KC$mWRFq`lr2c};NtPTe!T&(~1a{s@# z|Nnio|NpiA|IhvZ|Nj5a$kcG4k%e2zro&+2p;jJgs~Qf&MMpYCw4?TP7%o26D`Q>t zhr?*eiHR!SvurwzmY$lb6TPd3(|FmLnI_q{_H-IAKR4H=`qv*$lNA>hx^zp~cA2ca zwA5#|RV|n4sw*o)R!8maGF^RbZOrbfzg%W(Zfs0Boj2#{i9m_XIk$KHujMvhcW0*< z^Np?5AMzNQJDYy+DkvBP@=CGzIW#8eIv!+V=H@U?IKVl(!unorq~w9rw%ISM{_$9C zd2vzjYudG(UB(Q2tWm)QK7sE~2{ZF?{t>XekaUbe#(7#y@K(2n>ej;Nt7mQb^z_VZ z>+4lETXP!MM1OzAYgp=~&&4)n=iF+AoR5t!zr1?d_^hz!wfm|(e}R9We|~v=dq2PN zub1bpa>s}(Of1n1G&&&1{Lri+uQ$Zi<(v{_l}Ji`q9m)y9e zry?+=gHMx<(IeYxLB?DL#y=OOL{#`#&dy$Y^nf=D6C+#t;-ZvtQFDDCOy+g?3g z7qQ7RXX7zB>rks+IV%l@Q-?BN%v-(m#%!6!c}@War^P;;S;UlcdzQ?4y(d~u;03HK ziWzLe3;7g|i7_|+dbh%bDc}_Ym&GSN;Vuqo?KO<~FSXY*vG0jox1UMo%{mr-8-v54 zO5TP4kBY_XOy(<^FoAt#>n?Y^mf;mG~onopnHHPv)Rlo;$Lu4N{i|3 zr6}3!nb8ef{w~$%{O{N({@}Pn+>(edO;R?i4=?3)U2tai*2)A{0j{2e08M6theuyb z+o5PQ@AvuqWoi>@);-SBh(9RQKj@*5x%MbsW#3q02AYa>u z<}8+JocB47TZD0>8g5`$_;X;dDAR#}Nd-Rhb}io&+q1rgW#vPMydUz}q7OJ_P9!?l z6fkN0%w%b^XqKq@IJe1%Ax<~pe^SaE4;76==Ndwm%v!l&#ZmS$!Q5>|$sZp*I~AeF z)3ou8)P<~q5gf?z>{gf}@FnLxE8!po_iat|sfGql`I%rUG9cnHQh*j$&Fr zPwvcfz2@@Mj~^B*}ae5 z%2t%#Iqh#B&7s7$p^532zR@Qp21%c-yAEvG-1VNt!R9&Vw%eTrwn>lfO4Vk0$8d=( zkdevI&yKv%qE))m$Mn>X5(5>X3qJk&tMAGG7vnmS`Sm0>_uR=2tD+iu4>qQmF(1&( z5M!}l5xREO4s|KfrglbyvvU?29k#OzII>fziLXXBJ@lKEB8QW#)otCit2`J4C&Vz8I0|Ge`4I3ymLq5S z*A+Ln2{CNh$m=8^(qZ&wTQKua-2!Fh7;Q20smIU0EIzs7zrZa!iD`V*9}X*+Z43)5 z-*y^Y?~rCfnw@?|afGu^c>em0R9v@$Bag+*KF6B@GpB zE#$VSFkQ%|yk)UG?@JHws!LPWZCR?{`_d=7>hhd-TbA4Nz6$8By0S!X>q`ILS0Ssb zuCB@3x;mcsb;RkaYg^WBUF&J_JovbnIH0v}n1}nI(kNA+y{eMP-M#AoN zZJhw7;~{<5udFLupbS0kLIHBzMaOK0s0_E&SsUJhj=K;69e1%IYDz$uBD=x?rX{&= zYhFvAxlwn(vB$B2o97`{u0zv~>j|m{6B6zUJ04&=!rLgbB*kjyy6<}r?|k2rZL|BY z9S8TK0L~_l28N9u77b$O-gTHXFlb4%XeuZ)bsm2^Pwf7Vv-#%=nQR`k_cI@0I&!ut zT650BOcf3duY0pi1som;M{eey$5$%7-^i_TAp>{U0fwNS(~p>TxC$mrI2iM|=1t1_ z8L_|Ko;dFLn~7yb;|2eHc`x|1SuzWFbT}NiYV2KPL|^Q_|C_IGQT6NpykF(aIrcbC zsM0^k`8bV5P=)RJChxjWVphA)6>Df_va7K(#vi!N*zjo{U$+E{Ljzlp0uu*=ngMUX zVdn>dy*G}}doRlIhb@_BF32$kjn!9wOL)9+klW(G!0ll7X-fXS&oh&M&ShU_ zG>gB7i{k>9(#_NtydNGMax!?QcEEwb*rHBHB4A=oh=WX1{FM`%72Yz0IQ?KLIF!w@ zpp84{z-J+m&!7MEH=N%nE^A(Ev8Wt!ircO2RZId^`KkuYjLgXAxaA%bnAOfNs=&Yg zqT9!dphMhTgzA|B^Ia8ktuK_F{2IZi(QND?b+NrN=s$~s_XW^_Z9N-n8yky)*_)XR znV|=^9Vkvz%KZ?)`27IaW%U-rOW@Pm1d22{7``rJyR@yq$e<<3y*b&VExAxUBfP<4 z2IycmP6Ijn7Y#1#ZhXod5*BP51Q?qP*fKsaZGRw8z`^%x0sr3#WnH2SQU+{~r?Kf> zXja+U`b{lY(}CfIc%xxN+w_jkq{6o8)7$=UWax2Vs9aE9@S~wvBE(vN^|642(FVp0 z2iD94mO73UhDXdF0~r4;C|~AL%A~-N`+z0Kox%P=N6d4HNgkc)hihi8=sCSYWcG{v zxe^kp2?el|2S5je?9B1}y8px2zFJ-^9c$ zsF1tFfk9zGt&k?ev5tt|sT1uvr#Nn$ICn(}O9R{Owkb*pc`FXqo{%t@HJyRQfQ=)e zAmN3;HVytm3#LX_vhR|R7h_=3YGBT8VAvQ?WqGns*s{|$GSTtnwERk8vm2d-26?5L zc?XY8`KwXBDzNtO0#@+_Qv?#b>z|izyPn)Vi9O9SFZBNc_U}RrRwpM<)tFh}Idkeu zA;t@Zc4ab-H|nCx)Las{f)6k`C(T@%Im@*%SKNU$HI6-%%uhB5Z|$6YymOA-#`u#b=bSyM*86PEMa{XFJ?CD{oO``< z?#-2RZ=ald_vPICob$W`V^2!Vdzv}#l;ynVE9brL6nPw({)Th@$IjH3n)APA&Ohil z|NF}M($DKBYYNnU6qjfhUfLkRT9thN2xCVghoa{^PC+)-E~Z7zg0ntwM;s7XD8M^; zfl!12zpNGiR|larAGm8a%vb#-DsfEvZ(;rAW%0aHf^2O;?6U;8!fN&YR|zzJ&?`Qqp;!Uliw+!Y3s_VOdCv&&sl8fqfzfH#CHen`g2G<}_m?uIPVkH> z6EIm-X_h768NgN|AZZmPSd+kz_hGT)Eun;lC8~y;^8|SPy_Sb5nr$>$%Cu_2v7d`3 zeq=QJ6|+R@;MooIGqy8o3%tWke}_slG3b|0S6W34yCXuDyaxD zm@G01*_EUxlyBsuynL35Zr0NMUzf8bs>oKVxJ_Es_>ei;fJt~k5NC>(&m)!23!U$U zS8trPiaBwGI3o{R0Uzf~v17|{jKue*(HLkUnywtz>#8(plk7cAr~T=TSG!)-2F_@KqgjIc6BuSS2;85* z#g@Pj^nmTWl|U@R5|!7Siy0;}Ir6hL@Ua%MpP9g8wrrD1HiPc(O)MAJaxn7DT(CLl z123y0D_aAr*MiOa71psH6uJ!hIDM675Jo7GWW+~)kYv7*# zfNk*so*n-WEMsb9J(<9;IDvO(!IFLhfxHBU69ED@6Buqe2=xBmG0}P_+sDmpjePSC z@H~CMHhsa48x8{QvpM@G@SZc^XJc5zp~%g4fj4;dZl{HYGLH?dRg4%I;#d=mG$w}z zpE43)-IlP`(0H+r`DEi#gDBfz!Q+7&*cL9mnVqoZF*EZL2H^y8_XB*37pU$qQTD zcX6^j+|OVmz~pm)*>D%@!Y$Vf1RfUbf6m1a^ni0yf#w>8E!;H%w-Ok3ZrH8%!uErb& zDISK|2@F%J1s=tBbOV}6SB+#m0ubsf5o8WasRKk3!WIIC)N8?4-MHfHpJ}SC!=e-z#69I=< z6}f+C3#hEwZ0WnhwTXM>hfNN%b~86#w({K+XnkyAltA<9bu5Kz;&lYvZ*Pe$ILE?x zZpQBO;k?2nDee^|KGj#GYDFZzNO?4;TwqIIl~Sk}iGvUo24R%RIM5;G?zRajj!)ikH=V1h&6k zVPwlyv*70Jv+PrJ1+Gt6#<1Y5otMCjvo~kIz4^lCD$~L%tQW6*kh!}0>@BtpS0Zw6 zYa99;y>j*H79WO7K3dGaQMb2Ty>jx#l|a@5z6_79@h@Dy)`nqi*7a3~IJF;12!c*J z-!RkVM${BZ_YJJ~dGB4cW$;mmFurw3k|g6VEYhIA`$p?3+JVKKclJ$vMx)cuS?~Hg}&8_tgM~PXU6W>LRIuF|z}uLmAB8 z1Tr(m87c%la$J#Kbe+kOElQc~$K-D3BK=+g$yY`(TpJQT{Vz#X<|C=hfAM?z^7)oj&Nu%kbRcm~7-hRzprP zt#fP)x7g!U=K2ZD&l5QMfKwq`!0Yt^hK7Ul794bceUORq5Szjw)`gFQ6iQ>?y_UHc z$tu7+|LWC6rrQkm*k0WnwU||XU1@xu)AI(m4P|x$vyW_J-WaVRs%7$j!NuFUk4w|u zvM<~I^z?SYg*(?|3*2$oF+G8|WA%=o-K_4>{O2a@YI(r|513@4wV>e(QTb zHJf2&0RQ3#o0tQ4ohjhE_JMcx?OkjicI|w?^DlZgTjH_ze_l(z7rg5l^*}U=$sq1& zY24b0ah0dy-i5|9DaQYq^=Un;UgB5dUb9CJ`C@Xr*=GxBwQsO|%KcdR?A-_Rw(HD2 zBX*GMWWyCt+f8f}cn&mdV!FuczH0MI2mS?q0-Lj+aD4n?srxm=U*MVn{~3o(x3vTu zt+%|hec-uz^WqCzmiE4udjCzvFiG{9fJPWY{pMtjgGsjQg!VsW#1&zKT}*Nh=gBrMUbyLpKq31{gC{|Xzj#0L=C1#B zG=6WATUy#T7T@fp=8o)#WX^1xKVPbm{X)E-#6<3y2fhXf{^35zbu{7XG5vos8`FE6 zxa!!%xA*JZwg30FUZ|}tqsvYFRlUxQ1t;G1|1Wd?|MUERhn@fb@(VDq@To*xc;MK= zDXN!pbWJ6 zm!J90u`GS}_12Y_!7Bon`Ynx`ni{yqX>H!qTUTF) zZ%91ary6}N=fWD-^XpP?Uwa$9qwwjurP-!yZ|$o5`tIrN>+j|Z7OhW#w5&c^DEs*rWR`4L(ErFr{ zopXzSR(^STb$$B%FFzf{0<{FEI4E5E_D)b*Ai(g12#eqe?RB}?ZU z(A(O)JsBt1QHWl_~0={t40S zY$i5_v=h$V5fT|iZd#W^iha#)`<(D>20v~keOAkLKXzyaP8JWhSL87`+Zr$7#%dW;utN!*g-Mq5(#pBfqY`-#=Oy&#R%DrO2 zqu$Olg}>Tn#dn2euGxGoYA;9LhhJ?8!GC|T71{i+t#(|7%1grgqO_F{P(XdqeH{i#>gv9 zC2yj}qepkObW~%byfw9yzkGS8sjX^iX0YVGuC<$T+h#38bH(Xrv@M*Jit?g0v=nnQ zBT7s2O&zSlLf!NYv|{5TnlE1T&Q3Qs*X{4`OiGS*b+vSKFm1hZ#n4>e*3RPY-Rp1O zJlnowlaaBOho`f(wc({pXSDP+pFe-(5EhuVc%h?{`R?6YH*a1$Z{CcZJ2%_=C~N8{ z_U+f6a7a73LA_&}R?QMkBTJ>w9JRSub#nXF7v9$G*`r;%Of#iP{m`L3w{Bf&X{j@^ zF$=0FwRf;m*HBDO@b~q$_w)B$w0KTlRz!fGLtucDt&K@VWwCF5j;pJESXe;Qil&;{ zavfdOWy==ity!gOtZQj$xN6nX_3KwgMumL++7uV*;RO*52rz zl2CX2_{Wd0&Ye5qA7E0pbH~Eq=bbro z%+bd-enOvZkniKim5t}lojiHO+ShaPl)kR67T-9pp5FF`hH5(xtGY$C{sCUEUOkEJ z?p(SwCOIXxqr>0Q)8)*WJdbeK1q){7E?*X2UlZBdw0GZj*ZAm=P(M!(t9$ouJbijU ztuZC1GutJ|v2eqBGgpU()2FUozi4BtZEj(do{=eSt)60_HofZ zYt}A{E{cqd@U*itDJaY?%#BX0jQ8}kZC%q^I;|w2xS(S1p7IKJMu4oi^dvu>*VerC+^zK0Lyra&|>gaZW^2!`!(MFJIOiIg+t1rRe6(lBQ;# zd-uvpwr=_TyQQhQrf5=OUcPg0Z$L<>*_t)+j*+3xF%dO2o(mVvHg|XO_Hny&=W1NM zb#%04afypffOl|+Z&Gzabxj$^e+EVl8IKJM4mNWLYsH+{u<&qu$_a@r0v{J1?UrC) z#i(Go_;|nA&PIGU2X;dj3z2$n%s-)kCWObzs|Y`y*Tju+lQq+j`?DKenuHcC=lPmFeqpfq`ZJnB%HmXQ={xAXv~$^IgUB=fN+lowmKpdIP#SaE-gH?&~+3FSu#H-Et)? z`|Z{nX{+CEyHlnuT6M2Y``wNw)3V>~e6eixyIpU#y?(d*!!hmmd%j%De!us}v(@kS z{rUF#{eA{^oeu|C#B)9zgj^hG{^rAB0e78`M?}O`rW_FuU-R*pO!=FS#}(RjKAm`{ zRwj}3&+pm_2Q_831+Go9Tcb8`ob~y1)?)Y0S?<={S3WyAZAyu9Tw(g9_$;ez?S)Wo z!?~X?f7J?~F!g-bBX)+Y4laia?3T;7UX92;Ys&C2bo!kl30KcKg=I=lwmRkWvy@$9 z=8TLt+-)xV(GauU9h{ZG7Re&U%ZAmu4B4L%04>zX{VBS}w3U?fHG~ z*M}p{9-WSdtx9ZyPb$B^_(^8r%8Loi6BYM5WCg_k`F7|3x0eoQjlb;mnV>IX=lERT z#Ezj}`%2yS569O>zPiY0@NBO8$2fr*Or0wy{O4Ra{|}qTx@{A^8*~g8xIS>1U@6Md zD4FEhv!YCZOXx$>bSn`CA=9H>mlM_M^G6CG95 zyF|`iXp=ajxZ3RKq4Z1vU&V?e!vFa;?F-<2($2u~NWlHj;XuhF9n6}Gt}!&Ys4AuK z>|kbS<7qnDm=oBZuw}|>C9`8210HpASSCwcKXGg&&ru066^}=JpN?6aI}*-2^ReTX zj0sj+M z@&cZv8t$H_f@Xc1vchMnR`|(NVY@y}-O!U7loTS!-gsK!@5_f(7d~`2?tDJY?54-& zRZ7ePNxjMzjA?EaFTE#c1Snijo^HfG>GU0w%f6{CDaQ_M^4-Z(>~gon)8gRDz1w?) z)pwj+SR&#wSFYys#J4r-$FFJ5y1tRqr)XsmYk5-ygFe?$kJAoS69hN4 zEMe7Bca<;R)Xt=^h}-j}L%}S8*$1C!MV@%+rubQKhFQx}ox3Z2f;R=tp0s2oOX`#m zwZ#FIB3WeFXO`)DGzSLb4m z#^E!G+t#^RcU}>>6ge$IEK}v9cEW9=$Wxo1Y~U%(sa(g&aO1zwlC2t+x}GWC0=K`3 zD0ljDL0$-VG3&w97*ZzWQ?G&f$pb7Y#}R?+7c;x`{DJ5BIibmXjB39Cbe zw3F(GwJf{jC38KwgSLGXNZD0-xT9=mx4`R7Z*zjRJ8C!1p7zFKy29_===)#3IX(+A zR}PQnD0_5d>xVvZ#m{f`7#{qNZ=Mof$Z+pYZTO|z-!)-n5jP@1vyk`p`&=S=lBO69vX(=*EO%Y0q-2FqpoiV0yI)A*ZY6xX|2 ztYzF1wC5qO-xjtixj+R`ex=0SMy~!H=QxWbKlwCyR47U)%?%W9dfu}oN|{Tr)GMY- zC`5S4dCRV?j%l$1@$XAiw({|=58RZsMCZ23F}(?Xv(`?CPWIm?_$0&e2UGgvKG$-I zooQy)Hoi>_zm>KoUvyRA7Au_Wa-G++%I<_Z@JcX|J62+UF?&N zKKOf1@y9-oj{CiWwfZU#nJ1Rlg^CpHyz%?qw=Y~r_=`SHw6IZ=*5};oxG4MYQCBmA z|Ia#=TrSQ~J(i)kKr|c@Z!GbXdn*{6%(DICvrnEic3HE;S)V@=?*1CH z_lk)S>kH0{mS^~tKC&v_t?}Dw<+DU?@{G?m$}ZbE@*eI|duo#_5#XI-^D* z&7Y&nu1=VtPvskLXW&eaq@V2!`(Io(JNZtusCskklArIka(pS4cbMw&PxRzd; ze`=PC96g@3?s~Z@W4_zLdbwxytP8WbG?I8U1TMN&Gkmb+yCR@DT~PL-zh{f+wC@e# zKPosEmKuE$m>i~V!`Lw4x(J7b=#^#JKiP%9JQ3?|%xJrGX*yeBJ>SH_ z>d$qo7n_B}@>mvna|gz-91OEybk>?!$S>F^Y1kmI*y@mx-SJ4!ZAUuG!4~F+EoPHi zI2xTeH#%{C)L?IHGe05_J44WWi9ps0fsh*l2^s=P8UpzhX5z=&k~0MNq_uHP^kZM% zD*Z*UTB3#NVD^@+LY@C38rnT#*e14XOza4VXp7De40<6@8ez+HurVhv=KM0@yi%=D z6_*(=$`dQX)4w-gnBubHgmA<(o-GyvTXs~bDZ0uDhU^I!4tpUmV+nK6bRP`61N(F)LM3E-0}~WkwhO#cqZM zwvdPUJTFDLP6}vu2;P~I&*3S=G*kFro1kQ6-^L`NtR=!5J_!iV6qH_B;PhPZ@QI1p zZ4(1GPV&7tQS9LaAH~Tmf)ly_2Tt1c$X(u$Q%itNa)yA-Ou>DhiX;o$T@Sj8Kb-8~ zDP*xiX!XS@fre8ib(AigE>O`@8o|jB&+ftPI8{5a+@F)dqf;OuQ!r9e;^)RtHO4NB z!fE0Qr!EW@u2Kc|(EU&8B6hLY4Xq zt0R2^k7i7WoH@-?&Ei!CglsGTHah|21|CA&1W;FRf zk({4@(4TK{%wlzWo6yjShFvp%hISM-u{$!_9i85LOd@8gK%8la_puO@r$$_kVG^dn z<%|nFl&5nyhNLacjcf}tGwc#tD)7@Xxb5KrpGzgiTLcud1ejk5IjDxPOY`k@J$vztSaF5 zN_Nsx0q;`+9}Dv|F$+y9pZe*)hj78FbT+YgF~#JsOB4UN z3Rsv4mf+ z4FSWZ3LD1Bd=FP=ADgDPFoX4>MbolM@r6AcjtiZ)W#qRBiDnkFEL_7-kdpjN=s;P9 z>crK0rvyseXawe-})(XQL2IGW07uz zkQ|rLM=O;>%NFu{TrXF+{*$H{v$}wKq`>Cp$wr9<3XB`|9&XSQEK=E6r`eb<#GR!1 zQc$8>ST=nlXX9kfYU>wl1uX4?s?h~P9)0>73sj~Hikuc;-mxj>|E3~ccCSf0g}lve zr6hcBK6bHsSgP%~M4i#rw%b&BZ*sO}%G}ba=Wfy1HfBp=AaVc({awe9#ffqd(dtE#FD z1+|IMLetu}hdm9lDJ%FP{s_zZOi6+z_+cX^C3TCoZABY=N%d0`s|d z#XE^K{T4XXzHHa`{+8;U3sTGP}ytv2rW8&4#$p#fn8HG`@eeh*G_d^ zo-TOd#PZh~cGgm99EykDI3If6(a&46cY#pm-xJ+(jE4<$icM-<)pBQedBST>f@Y& zdwBjQPF5(|pgeJ!T;p`>hf`G?PwsG;F0Xh}XW?{KE1_CR;W;@ctv;R%J~?&2w!o~M zxMK-ZBm$>I?VK8`xyI;Y>D1Y${0>dk=sKw@IIr){>0L=PB2Vw@dU^WD8=Z{P3R5D_ zoLb}gcjuXNGP;+4p1EXm_DamzYc*$Y%sG2&&)GY7&ffcT_JPc~M>gl4#GHFpbMD2Q zb1sKw9{(vRx#rvzn|ZuS=TjZe8#%Uom~%dN(Y(1EJAeH-FLn4R!`d@Rtpa~f2`4-a z5UdLQ{W5U7<03;Y$^V@TxO;_Idj*#BEEYAt@Tey`@|3Zh;nK>5OZWuO$T#j1Q@pg5 z^^#cNQk}%pGIvjJwG!z6Z!-+Z-(zi^F&n^2V7n%2YekrSPY)UNKBv&J+q)A#LJc3z>W-NMOl1+R1qr~0m! z6x_h#7<5PM+7p>g|MrL~SqpUR$+IZDK56z&$;2tD>emfr_hs!CX_+f@+(*b|_cm3- zvZk{a-<()sHu1)k?ZOL|3*~U{Si1U9zwNnH-^<^eMdsHE&Hb(RLj2bL=hwvwcX2nK zpZoUoo$9(wVbP7eqWT@{O%I-5?>kSXM)03>#wY0mMjvl~-hCj2^MH=v{-Ds@ySw+x z2_C$(`}Wa0N8ETAjz=7BwiXC5*{V13i2Q%YyS#?|Z!aG<&bhlG;_xeuzBrx(MLCiY z!VH(*o_3xq+?6Bpd98rSPLV<%AuGxIFVCFhQ=A^M;IuyD0|Um(8V65`WtrGlo;ukr zkpJes&_2E1%ALY>4<+V3l-l=DW}fcFI}a7)9x2&9Qi*${R`*C_-XpDjk96)m();(w zK<=@T-D8uu#|_17QHi|z51HZ_`FR9+EiUqy**(!xWQtJ~e5oMXAt3zG;mQ9PPMyRj zv4%WecEYD0JWAD=g_6Y$E&_OY`}jNW`<5P}{PnaFwUh8{%D^Flsp1_uKZy6Y#FkgJd+{nl0_;#w~C1vpybfAA!JFRT-e_7{5fPB3D=z`J{284kQ-Vf>VO-qR*t;P=1R z;)ZWn4*r~3_g-@22e){k53w&<1$o#E`B)Y{ZzvF|jTi8_FZArfN1l(oERDaJ4}Rib z_?z|P52nVCERC<@>eo(x?`d-Xecy!lOdEfSfBbyLUSPp~f&Y9Am+uP{%l&@5fs5h) z1TN)3cGr4=s{sOs9(-r{_)CTHpGUsX#&-gH;ss_1{QuO?`7Tc2#k?o%hW|gs|KC4f z;E?<`21W-31~Uc^9v5sk2V%K6@KpaK5iy|?&mYb7V2btnvo(OnyHAWyS7f1pz^Mf? z4;eko1EmgSFx+#z@_ob0;EuHn3bQ)+8s;^!iqCp18TKY(Q|j4yuCv45Ms3TzyYK7{ zW5sndIOj%w+5X{*gCm#u(=(jn3tL*Ivakt9h&;S7xyy8tAcv&Vrp+o6HPJWLD26sM zd<#9J9`PmP(o)~~ZgZo)W?hqK7t~V;U-tjN0R|t}9#!+iT!va!tDuUk%O4)5zm&1x zm+?T3p_@Z_$>azP_a`Sst)5AIRSK)(oG82W#9ix(mX{J&4!sb4c&UI})jLl%{$I_n zuW#=kpC7+w#_UqoU;AF@?fW9NV%g7E5**eH62_j6J-aG7Hor3p&Y#g}F?q#IF8wtf zQjNO~uUWZ{g^63U{la4}d(rTejjrPHErxE>(xg448T=ewl^BJY@)QhTXcg=WdE;5I z>sU||>%#LQhnyE?ns~pM(>}}R#mQDRkrS&L??h%TP!ZJPIMtX|u)GhP& zXE!G#b1vJu?8XcAEioLPF1=Bly~=jBLc(Vn`xdQPnET(W#5mAZJatQ;yJRVgKf{xn z5PRR4ko7^(n*&wPx-rzPT)Y1l)5Lt4i5Ff@I_l%tY8n=qzI5xg_AL*28KiQbiY^JS zW;KgQY**c8$IQBDOGK*jrQ*o+`K@MAnah`Mi^^Vq)GRs|esN&oanr9O~8ypqoy&O5ZS`QttVC%bAac+x-*8+>wsp0#sCv|jrx(PO(5PUhY@k63z`rPto zkxJ9ApW2bWuw8A|qxqV%mMn>7U|?RXAk<)$wc@|~qz5~VR;}BWv3C2jsB4RlpL(RM zDsk$-q9wcCtaGxBEG<#y^8^vV`Od-o{G|3GcgvB$`w_ zraa$Q{a!suj=_ncA$IA-<7jXlvWj%P`hIBMZ$H0@$fx=XUu)g5kT+b;Iz zwU;@Jd)$B%>6s7Z1ySgKs6`veEOTPZ4v+pF~A52UVwll@^>I4ofY&lcJ-Wsg336@yNs zl^IWJo^eIj)pUYyg37GLLLT~3OODwc+&zVl; zQ!nM`SshvEefOoy70!lbt5R18n`DLE{o!MI^NXU%K~2AsO%werSVCnct_-`n%kA!; zOZLp1nl7J&<}j*0(SKpWX{Wr1xjUm|ZN2TIY&F%{jaS;H^PfEHRKcte|7eoM|D&3n zibV<&G*>jwXXey0lROk2>?N{cKC5!QfRl1X7|Wuiq9;tewWgisS~71ztFG+gOl6su zE2eY&6m$x!7J8;|WHZ;xmb6gLhR`F|cEq$?_L?Lr*uEP+m^r zSAv=`!v!4`GvN;A%a8WR?cqJ5@1_);$B`_>KA|gJ`sAg8^oh$ob+aS{pSto@ny$He zG~D_HvwS=H3|NWUxHV?sWHA*+zx?ZsEKBr5-s~>t-_bZjfE? ziN3N@wgYozi*~z&?~1J#+m+*XeS4}D-pwxEaM5+Y=sK3GemxxjO+GaC{g6^VAy&3!ZfoX* zH5+d51u8IC&&_IGVWHT_*1)+^H@C<<>yGTr1rAmgf&yIziYj|LHnS!G@H+f(93=#q5SO7+-#XD#pPP)322 zX)&=cqrU&DDvw^$-x8$zIfp}2{kA}akqX010ggMNnT#*}3Z` zt!XKTV4k6{(w&wQ|7LA9S2LRW^8d-kE&slXFSK!5Vj|$8$>PMBInCjYq7c93lFv*( zMPHalg?@2c@+E1dnv=-o=*Bnq6t~oOywz>;%`Hm#&GB)c>xz$m8hPZs-ygW(^hjUe zgG;jfe0dMugpaDlZ|eVZF!I|TnB;wvWB%lQwoJ>N1k`sMskd_Utc>a?D_XwGh_mw2 zzP5yw*NfIx2XQzvFjxh0>`mt2&Eexav%Gc^N4;0alHay{5_Sv+gcvTgJX^fK|HiI1 z3%kY$HnxI}z!NK+ED!idX~Y?6v?s0DUewW+)Ujh#$Kv9S`@0UbFIds8u&a^bVAl+% zz6~oLCRw)_G*7H>Z0ulf^q4qt$H9({u65BI|NkU+=yM*j|D>@yqhn%K$5!W#$%nMt z0yO7q+IMCg)cYglAHgyG)!s=8E{zQ<*LQU+5kAsiad5>37Q>c~B?-<95^Yii9maP! zPEGum1!4#u=}7>01XJ>k-Eprtg$-RA;VQjFTg-J0DD+N)-D#0Yk5)9T#xXm6NL z$L69AyDJoZo(xUp)3pqJ2>_>aqL^wu~^fyyMn*%i0iZtkEuUgySFGG?CRZaq;u!M z37a>)jTvjMROzhHvTk{EVCQO`Iw5O@6OGzuI8H9oIjzOh=yA01feu5%p&3UwN^bjV}mj0hVG+XA5L|hIH)0b zy7hn!1IO`4(j65q+Pq>qT1_}&?g%u_uY_-FB(St5%R9o{|J{F!O} zhAiHmY>_a*^LD>ARbtM6@0sRj3Timm?kQtQUpe zc1QfBOYXVP9*(UJmoy9csZH4U;)Sm>XglWZD(x7%d2Vx%pz} z4kLyWn^+b}?>;Eq-O(t*!I%-;A;}<t+c-M zzk_3oY*awEf$Wu)9VN~kdKnxh3KxxCFS~Zny?Jq4mq%kqhJg+5A(O2fzK1#dghSYL zw?6Nb3*9W&m9e$A!?f$c5tq3;qm<`QJz?5&W9v7@218K}u4E49tsx7PxBZsn&?@Cf z<>n65y*f)dq-%rO&W*F}wst(9aJloshVZ>twoSNP`g?(ZlwuFVJnPsFaVhz@sXHT< zcGSP-kek{eschIjfhQpJ+O*`bD+-NXd&4d?Tc}o>APZb>Zyp zeo0X={w*B;Umoe$Db3mG%eg5f!eZC4K7sw4e?-hXaHGY*YJouSL{-ic1wNa1oSRs& zt2cDs1YPc#zMUZ+tSgVW?br}GN4K*xg>$|tr)kU0xff6OF1WeTB5H?$wS;HTJce5f zuZr!CiRvoYy+y#WwLq`EVaei&k%zoF_AocBj$OLZcWLX1s3fbUoA!3B4UOKEE4`kT zVMi&?QE!g*t?l88Ir9DA$07*2R~UbxfJaA*Q+Y}boBEhn5B9U>cBeD6zl z?9}#co6&y#NXIo+hAFZg|1WOsxXt7JD7oXn5|7phyJy9Aj+uATJCA)iwDg`OPhZF0 ztsb{}7uepdz3Upo_hokMr9B<{N;uxQc77E;&cAcQohfHpSM2{C%<=cJ{r}>_Qg^x- zbq+kuox&31(Bk0LWwD$+MxC=peaZ$0eGv}v4HDCraLnXw@&Dv7FSJ8@&mnyl24*$} z7BLRic~N~1k4k7iTXeTW;Y8nqyNwwSCRH4im~+r^TmX!g?hp2DG8qtRDzsBJ}T+Xmris=0uzSo_Dw=RYculVOSU{)X{NYDsGB}3rF7)=k^WW zjRy`-lb;P3Sv0nle}&WN`(tU#fjNDKIbQR_~dk$E(@{jo9b`k-?d|31`9**9*&SX98;z=3FdKp zU~PDH^i=MgjxDF2e&FVei|g<&<5+*?NvDOj=RA%nt*%otPW0S38kZ9p8rPAS@-)iO zEhS}Dsz}G*si_%TIx<~4vRE4W-Y##H;Ihg%a<7#mzV3<8ln$#O5qq+{=+- z=TYy{kvgp-?HWf0TUsB-@lT>1_ft56#5gvjaQqL=b1$nop1Vx6vLvo;g?psj$ps>u zbw@fJzQwp4IkiP7bE1H~^-AXEmX66~9QAF!Wqutyqi@v5boi}HX(`C;4)AE3k=9mm zqO%~Qk>OU?mKTW!J$k1c?)uHfBu$v`yfL6Plp(uy z#;aBPUM1gKlXC3zL5}G5jB~9&UTx^(FbwNhyN+X<$eGr-&V^>3(`;WEKlD80q$$(Z zair(~!@u4K7G9foM77>vo)+?`ZNrV_J*V1N@L6>nJ$fvwZNrVOj5qBJFV*Hf7d>+N z)uh(Vrk&^AI8LfP?rO+r{PD8o%!GD_(~SY%GkbdWl}+AWqy7KNtd5;aR_|)zX3@;v z<@R=+80SN|%sz#8JqFJ%_;k#YOS-5K_i(mvi^iG5F&sxz?z9y6v|XOic*E+8YRtVO zxvmG#+`4t<_NR%b&nC~C(ey?7N#%ppSrHve{<5@Nob9T}Z^>}{y^iB28^f<>9M@cI z8tUG4-mtyn+WCjC^SWQhEta^p6KC(1aA-MlXdmo&pp$Q+cy7v!^HUxC+Gi~1`PQ** zS%=_s!F`K6oDaO2U{Kh-;M~Lwe*GuT_1-wg+b-hy^Ml#VHxe&DCUN@9Gtox0gCkG&%RiY(l!VGIu%{p&Xdh;!)G%IMFX z)0-f-zwj$lb7^D5WyjMU=4U&WN^;Cjlo9soXgXc$dHr&4fl2h;jug=j2itEc;bq$u zLc1M8radUhy1(AlcB>mJ!>h_GogE?bZj|Mn*Z0}Gb@GiX-7l_8o>11}P*$>ieK2o# z@@kH-r=K|%eP_H~+BzdtcXen#!y?hQ<-dNFxBLjr>+UF%zV^Snp)4%EW5dTU&HmrF z7lg^|;z(w1kn0F+T~X1!etkoNwVU4{@8^G|%54jN z&f0!{&h?+)w_KaY{%e8wuZ8Nr7McHA?EY&>_^+kuRZjwMESs;{p3B?O+C4E>I$4c# zmA}Z^^Bt?>01XWrUgQDZngYQl=BEg6Lj4XUTbIW~wo?${e05_N9lS&dCkI}Sv5NIz)*U-{#s zfY0s4g10x7Hrn5)Wk~qDYpaCj3C1&R(R+()xBBk6BmeKn>)My`9gp5?KkvW2FEzS% z)4!YYHgEVl3j*%68N~Ez)VFigwykKr=Ere%LE`z(*N?L{oVdH}vNOl&P+NC7j;rTS z&As>h11kpu6RVU|#s`H%jir2EjuD!QF3n;JYC;i$kLGtUiD#M22z=n&BCgLBa{Xe$ ziOKBhYBDn?EI!r8%g$x}LMhE>28ZvXBaz;!(o?VS`Cay4dlb;yp|tC@#Fm=}C2f}n ztKZuYfROJ>xB%(J>ZG1Xv$P3o#Cr5hB&=L#NmY?-~` z*+JL5|NoUlcoOnL_i_GJV#&E+5K+K+-r>q^QN!@8AZxzMlLh8E*nVNllCscA+S9mz zu|rL^P&24;IjftoM2Ujc)Ya^t-@W~9{^7x)c47Uz8i59Hoy0gQ?;QBTXIj?2BRx6nqhRbEaf^Q!9RI!y zm1B7Bs&d~^b8pK6M<%x=_rpJQvMzLFk-9NkRiHHaf)NkTmPn_EGFu)x$nINqF+*_U z!3IltFXo1hV<#u>IhI_pQ&`ApMizJ$K^JoK&-o)(98+OQ8yP)N)Fb1 zaX;bp!<6fu#*u7+|EGkP&b&8;p{IO;I>P~Xp@^tsS5*BH`z)_&G1+o5B(QjCJPgfa zGnWqi#jv5r%`@|f`U1{_Wdb4kQcq^)GQ26Cuz>yGCgr75qpCEQ&CJrers*s7B-82m zoGXt#H*%Q7x}12J!kDHWxq0Q((2I`kjtoo*jGk=~n`4~TXNhkpBzB`vsipE}*ToNWHxQe~AFihQ6(=1^1p48Y$4!5~na(%>NdIDaAMy?Kg$vM^b z>Km<{>jK||*hX5r*sPQjOgiv>N|n>GcGg)BEGoGja^KH+lJ0Wx_!TY&<7}6A4$tML ze1Gz=+urWyllnRVz3KH{Q|&qLayLw5%QcGq|J=xk!(qlG)g{ak%b71&JDG_Ia;kVJ zNWMP#dP$4GU)d*Rf}Rf?e=HYdT6Cl#v{B)on1mohkgCd|4}BaLQUv(KJ}B_?JP7M! zVi29jB6&oSkvS<%V1*i@j9Kh(>%>%ZCWSsN!N;NB6dXDjE-BP}S$ycjV$oNjshXNn97bh}h1}&-CUJVQ zGuH))zUO@6`ckTcE0W_#;G|7cmYH-*Olw>6Bak)Z!~f#@4jxC1Crxy1(Xw28qrl|& zstcb~;&i%o`5zfD&iha=$f*`u?ml!?g+OOr!Ei}rj`IDh1x!<~;dQ_A=mOj#K^1U`9|3T<8C_VuAaWpKyC zJ1h(`y(irL4)uFKeZU`FtKc&0*A?c{r>i1%-e*-@6uM&Nk=0=rFa7s8nRIPqg|PP8 z8;N1}ZcUwE7p$6rIawxT&EIw{K9 zk@G*k7N2`tX4$1v;b;3MZ9dpJ`TT{Cd*<7gZCYllo29?B_m`~Z)^&ehN5$WseCgD- zZQJ&)jZDe3yi=4dI5lEMehv4XdmP_&N`ACR@XnebQ!#D3K<4V=#oBjYLN5;7y!!6j zqV2oy{ne{DtbOm}r0sj2+3HtaUVZQDrtN#*)#}$g*1rGq()NAd_UhMtUVZ=Xr|tXy z{nc+^)_K4vyyF0yok5fEng^`LI}Y;I8MG+tJmmCmRW;kd=u{KH)$E|Cn7E^WXUqRj zY&JnVj;Prgc9~v^X%=NLxJn*Tb@qzMDvwenrs(X?iBv>4``)4?TaZhrGPm<1V z1_p^WLMoWTxfmIU=C4pWrWM#W?edyu zru(~3=LtS_@VYRWU5158g291(#i0({_cMi=JU2PGC{9Rv^GNb!$BFLe3IcK)c3$kO zE9t!xBc{*qav@`ebNj|iEbD(9P?+1t$;#ry>M?oOm1WO*mz-95(YV4<;m(0BVTJ{a zYtKk9EL_$#)qm~l*w4GPSIV7PxcL(UPeB56jN@U)MG6xHN)om5Uzl!LtowHA9S)I* zmkvVH7Kr{g2w+l5*Nk%pg&0mY1*j??!68ZbtwO((FW5(~28|E*4 z$oz4KR~s)waz5)#0YTQ|rt3aUHMV$~!g2gtTbI{;+q!x0+q`<~JCF6g@4USCUD)M$NHZkSoEn^@J-c|&zaiSP5N*1B3Y@aRMvHl^`*FoAmLwE z(`$A_NZRiHQS$4cNY~eG_115yCs(gKVClYMzwL*=t8cfwiPQG(En1?x;Lp?SZ)|^N z98Y53RQ=v%zxtW|b|2Y=`)XK374>-7{nmf_`$77Z%GLxGmjzAX9V<+Jyj!35lucV8 zW3Rpvqr)S|c^LxLtFm|OERRr%nHMG!AC@u6?Sj}6f!075mnAZME_ZsmeuRYVk!Rf} zo~FoR?dbA%=jj(u=AB?*Fe+qajB8CRaI;+LmSGc=%-HZow&m5$P_A8WKaa9;^SMM< z_CG8+@+?$=f0{B6Wg8kHV*zqryro zqLW-7^>DN=;R$d(62Qn{{I^qF?#O%2BgTqHx}KcnsR-iVmsrLdKY``s1d+~PDxD5G zoK7buznRcF%YlV)R%2v}V)zyXKLM`=D_E4Q6igToWXx6IQ&n*JAR-g?D6{mG}dcMO&-&SB+c;5q9c;p?yPpLgE_m&-EBE-t;t0(`@+9Q08* z;?CKU9P&8qL$Zs&qmVnjUNy=L0_W~MS&+li@=}t;`PW$m#||Y19l@n<&gsgvm`-bTJjU|bqTeyX-+e*6(}fiG1b=-=qAJ;<`t?Yn(c(d#1T`lH;07p*#Ku33DC!UGZqyftL8b zqY0~yNT{_KFP(3acsV5EvUAhZkQ`x#lHkP*4i=d#mXXWy771IM9=ARk>~!L(=O=lF zhO}iqS45OtyeGM4rm?DSyYFyjisKFurz2C`Jf1rQs5{-6a`w#?N1LN8O%L<>)cIAf zCY+dGSRfdhFd;uhF8qyB=!vOeCzgj*+}n9)s@n_E%6H2xS*JNHSYE$YA@iepqfl6C z?6q?n&Mo5!3hS7bEUMA+>1x*5?wg7UEpZu|FU1omHzt?1sT(Q|A?&pD0WYb$#1Y4kl?(f97fg-D6ZoGopIGuj(xbSVCp@0ZK$ zU**!hSAt>2%y5R-Ud5GD++uGw9_{zjoR%hYTy$oHjO2pAqmwKnC(m?Um%4H$Tg22f z)}^_uGgMnHJ!F}A^vJonnsfh!&x%rY>WKEaFw^md?$RTXVcl=S16@6MZ@-r>!|TPv_LKHK*3; zoZbe$IPln-Gv{>9UR!fEj`eAzT-c7~{BISUN>)VHJUz?z_BF4Y{WXu5k*EBMj&cj> z9@r(PAhotnLa9$DH~h-H%Y8Y;Sw}DC9lf@SCG1|u)wH)2Qt4)8M?bzj@m2T!O)i$N zt}bdj*18?hWiar#&eifsvE{Sle773iu$=hsp+Y?q;zN7p2hE62RBHL<%2G0E?UULk z4j1lw-jR3VP-hTGU-sw!eFqi=r$0hR@956kBX~tEJ={jkCE|sHi2{Q{ic`zlS5ikL zXFY!DwZM^O-Qyw^&!!X?mBmXd7C5#%2)(20*VE_tLzns1I>(Y@=|>hgaA;iRI>Noq zE!#xjWlmzy2hNg*3-a#dJ^A~fh-0C{4OKr0#nOm&A+w7GF^UW+4?hHOxa?T(z>%-; zBu<2_=VRJYSFR%xvre>kEO&g9FL_9>%YwCg2S-nVKL07j2^=o6PAwBfl$|s-_Ul#BR%3?^nnI^P%5ziX z!#Cu)YdmqWdXmlL;KJpi9OAS8#0C z`g{g8S&24D`AJnw4G#XBl6a5ANwvsreH*6oPKD7yN^M!9Q;Di+np&)DirfdsfMwSD za%uY>+lI5I`xO@^bxD@DnwKA$Ho-vLOxShzhpaY1`84%`)1z zW%Qe6PT!U}-z;nSwygDL+1s~e?>EaiUKa2>qb>J_L&`13ni;$;5n(+ua{iYU7Tlb4 zXhzRPi30iZf|Q(46`dmU?-4mGCkkeTwyd0?b|50)z!YAA&beEQ53ebj@3J_}b+*!x zgJrFg=N;im$S${jTYj7+>{aH8t2gI9y&1knYN6z<7;j?E|=#f{u>smK4GHiC-VeMVv^Cm0wi&kXKY{wOh zHN`*P3a#F?QToWi*?TU|jt;QsQa0Ff>PLjn>d=taJ z)khjuw_I+uyxF(2FMx5XE3(x*6~g5*SWXXaMj(SWKyv=ju z1(!?6%c@g#hT6Y>6}NwOkgyIF(BE9X<~!TMVh467nT0=-*ndU2)=IE!y{~*AX7@=g z1BMI#7s|P9cxP20=eHqjgYQoD7LM{G(-&ADc=W*`-~*rgks$6P{Mju6{;sZ9t(^=E z8Em@uHNO$-PYJE~Xw+sH#=>)Gb0LFi&GCPQmkJ7fPAqn;F=UX~6cJOS%73LO)8@cB zqh}d>en*PJ8ZK_(KEm$S;&#^n`~Af9M@KyLmpZW6L|&JcV`r-ks~dMs6{E#>sMReM=0t@V(_aiJ$*IVE@$;C6@g7#C-X> z13`Z_Tieaf-}WT@|Gua3cF)rHJnz1@rUeJ}d$UQXZl(qG*2zuT+)Q?I_W zSuQ@PyyE+8<^u~Zaab;2mEY3n*kBRa6ZLkzZLYk_gnQp6yepfi6elvrV)vi#yH)I8 zaBuGx{2uP0*=O*-Amab0^Bmup8y0Ri|`E|P; z%BOpo&j|ZI`JrZL%J#DMbe9Cxf7vYW#&T$(x6m3&TYeCW|6?P+Hc$(G{Lq^r9`CD2I4t4qvq8Owu-3L10S(&e@+ z2ncbTEMBjsyJOQ*mkEZRY=0wy|7V7-4&Rt|b=TDF@b&Qr+eEFWn~ryaX_ZYMrxYU4;}^)hRi8lpO_tbr#G$Qx5_`!VO#CTa!{mY-JGA!udXpB zEMIX?adq>tHM`zh^;vWt+|!(r;i0vG<;;7_rbVmumH!>FnxOoO>(YDmk0&+@*fI#& zWE@;Cb>+e~;Xt3jqoR>H7mwa7X#T%e_a}oxGT-}6S&OteCpWEGCBgk@qJn(zqC*QG zuQ|lKp?OEO$B7;V~zNu-7 zlBfKkO_zGQBDHziuN0gJa^+0AqTpp%^Wt)w(^-x^?PZpt4U)kzUl)Y&OI_Xc}p#dGOxbbZLe{-+$JhE?#m%KNSoD$~vAj`)>1ks(s&- z+vmE)<(H}b$#FXsP1c^;xxoLl&g#_7Eo~7mm(I+)m3d3WjAQ>s2~CaY566PF8WjU{ z!gSVmn{dBaAAWhun%U9bQR*9x2hGm7eoW8%?edrFZok|8@tj81#T);;wye-JVq)O< zbZ*tHW*?uGm)G+wJDam{g|^7rW9+FDi&{9VqSqV^-@WI zek|#dzx(U;#`AHm2V$-FD!dQ25@Sf+x@g_=CXM>O>PcsodrbLi`DuIf(hrp$7ruEK zU9bDGocY0@wyJi!btRtR?2)4XJ&cUMyYkjc&Wt`KvuI~~fq(c{>mX-74l&lO{$|-P z57v*f_D2I{0GLy7` ztCiW7c@eAIRSK0vmTD}tuu|z!*z#ER;|%wv4guYJ8y&+RO%i$I(Wi8_m_zk{$BN00 zYOE9WqEg)ct(fAb^>m_&;iCyL%{!%HU3X4m#^F;AJsTG!w587Qid;6W?Bvur zGg5`LI1YboIe9w$6^pX*>Sv~#okZ3t2+xlFnP!hW&Z$AXDOGNQ_43@p7%B7 zmj2tB{I4iI> zZ^~i?o;Y_$si28{Q_RlCxsTfu1Q;$`1N)C_bFT=oZr-y zP6#LNO^R5fuuWmA#Y9t%r2Z*iOkI0)JFKMGA{jiUsZ3#glkOPpfAn7Nmc)yU3{8d0 zLzX0QRfKpeMQpxxt!>)2t-Zc-0WG(eOxfnT>n~USUAB zUSAapraNmym=rU19%Rv7FzwB;7i@oKxbvxTFs#_|fd4`5iBio=ci)>W*>c_Vz4Nn) z)7}WR?0IkM5&3_D(3k&Qsk{F^U041#dcrp*g#)}d*E?=H-QV=3{NU%ii<@O1#dUc! z$X`3L-Z5!QEYELqWyTXMj(mHLH+fhbVo>w!@SJq3xkiFPao&27qJ~H8{BFlQcN)~Q zFMh~oJVQy2t;6p8wSIDjZ6cGWz>BB);wooYB#q~Ae@g3%uvAVEGoI_wdwDuo2&o!_$%*ihnb)Ed=*o1ALm#WqZ*fKXy^i(1 zvT;{-%~aVk&)9K-Zbs7-Q{}nmPAumZdNt+CErmyMDmNDkFle+)+FCflH)iQo_MfbdRgQuoJT(v41YN>j2_&UU|JZkB+m;}q zx(Uqe2OcslBWbQHTM@KUJd zDFesPP25893^LP|-{oyTnOgTz-ulTyR>?}oJejRKr|nVH`|vgAbxlqai?ynpe#h1P zb;a}2k346HsJaktm%s6{@GiDWBZhNw3<&{G9x(iWVeWowUs=0Fvi37Ok25oQ8CF>z zd8eD_asRVTX%~a}W0{qkQ#mh{f7xWM+Hk#d-uJvW%_9F4`}{fY@fv+@ej#?}-lLudryH z)|2-)Z>?9j@cx^^h30$j6n^Dio$}}^&mksHC5BIHwdL~u7MxSa zfJrVx{Nfi34Y%&SSMa&;HQ<9nh=Fp9fwF_Zj=X{$FV<^2tv$Pj?+wo)cJ3rL_X~=0 zdN1XiI4lqS-=wb^VZfNE%)yz&v2s0!asjvPi#Pwy3V!QV&E87gY=YABqYFLsMcYcT?7Wj=O3(C7Ic(bx$sc_ya9D}+tdoNC1cl>G@+&ure0-x| z;isOqUhx2eCAU1hw5hUevgxxXVy^-9?2>fh_e(O6uNU`4%a88p>Y(sA``s zAhJl{*2lL=AKx^sm;HP80hiJ#zDFWviW<#EI`_JSOV=rGd$o?Q>GwV*&C1T-B0-ND zF6>$6AiGUZb(_BS+H;!IH~opZq}>%H)^|yXkwKaF(Uwo#A2ywl_P)fP-urct5W|j3 z3NtQg@dz>eH!x(6=vQ#sq&@AmB2S~%+D{7CjFfLpQurjKS1YI{X`Fw=f%*P9xz$Q? zs>LU{n0~}HOBxsIis5;7H%#GGraG|C|aTPB5wShHD+uW@6_XN6;*6%r<^?BiFRXv8PGNcd2& z=B>*TJB`hM7H6hSGM(U~b1zFr-Q%D~lFHRC1&%370wMdq1pobaz=1o-VfP|O%OW6QH@EoS{o?!3#P4Z|-^(q2Z@>6`H1Yph z;{Q{`&)L;naug<=cv8Mgxk<>heAOe~52pe&w+1|8a!!S z)70kS=^u17$h9;?dYQ*=r$A5B&`{GwE-Oq9D2176C^soEW^4`1G}UHVsv^MT(YL4} z>}z=AR8ya;T9b}z-8-bnv{K7XRQrE}M#S8&k%?y)$ULf-J7mtoWYO|iizAVzVOga9 z6036@QAbN-b|yu1URCHi&6A+)Go$aXn8K(c(v{~8dp@67VQmgWE4mjCx#KBIX7Yk2|Z z_5$AT1%l>+Y4pC7b=<;sg@UMZZFc^zHry8BGc;&=jodUFIg9NSmleBnOnHJ z&m(@zBu4Y{(nhY2DThnzS<6%>m1b_YkLS*Mlxv!@x~#H%h0ABty6NFf+siw*HydnL z+}X72!Bp)mpW||84*2-2J*B;OThr0FzC$`X%3>ng0aMOZoZNrU<#5ZIij&jBgFZ^~ zGBIl&I=SGC?0=SLI)d!(SK^F)^Bp!Tp6RhWeO2+>Gu@fe)F|%Og#CAAvbcl3N$`Tk&{Qcb^d z-*?3peugg_6?@KW?aTkGlkjJglGRQoDdR_{-U-{)E2&H|zTF{U{_8@IprqNf3ZB(Y zwVaO{q??%cK4OmDp*SHxdtHff_GCeMC$5?s%(jL-jKUoojVJnAn(Yx_IIuxM;-~tl z4+;uD6|NXe+kA+Zae)w{Lf2^~A=#$MvQGSr4g8Uhg=L$1R)3r_ai{73bJyRlStKg| zQ~l8lg_2KNe8xZX1kdSAQC@XZ;YgsAXH);?MYAVPRI#hv>^4*9tkKM?kvhv}Ds&W! z&Yz+3Y@_0guezc`4$PV(CWhs4sK2Z=Q19a^YDgwYO{4xF4wn zD~a8z{82GUp~k4TwMgTjlFs&UJ=cwjuZnd3UDBPLuYX>M;gZpzNl8nNFPe2acwu6d zwp_4hsD!pga3klU-biQb*vUHAignJtSswge>p;crJmX~(t8~hQ8LB>;%RXAfm|(%{ zwET3_a?M9J$DQnqmF!#3);kJWSvsv=>vUnyt_^)wD=*&C`d4ha*T(~`&jhtmR5ql*MZL)%*dPnTuLm1?Ve-99yXsX=HkXH)R%L&4EYcD!%d z)p&GQsZz*v>mtS9>Mhl~56)g3HB~3!t5(|8uSRSL)IG}ZWGWGT zrGCvie7TZh#Z;|B)djn&W9~5NJyBBL^VP)Xn_|pVw^Z+4XIp(t*q=yqjog{cZ&Pqb!m#2#O4b1vCQMyYJa zVe2e0h9m`6r-b9;hxE;2G;bZYeQ@}gd{Xr8uUc_7NB))_dC3u*{lsm{qS)<+vNakM zo@`Y}x}$hw$syiD2e&sX&2!m*ce#SyDn*ya-8_pa(^fd^(!5Uz&ksZ;_nRM3*HYrw+xxw#i>OM}=dW zGS9Y*jf)~=nc{5JwGX+*%O$Dpa6M$Nta{14A!2FFgyW_{-!5G?yX^TWajH_1@iFZ? zZ9R2LRXbc@(LEp5(wwbxzZK%1caOsW~-*E+@<-vAYw|SYab1u5`eC};wtF*x73S55`^UTtd zA73M$T)aNUFxpl zy~90Rhn~qY9hrP6YvZ=AMIJ9B$%}H%jV?u zQlU<+aGTwOjlXkd|0|du=ejLZ`&_2>iIWQdZ~ar$STJMJqkYDY-mXr1XS^u)^1Q;w zVdsOJ^8WApV4n3h_{o9~E+4ltB_9mk{_)-i)%#T{?Dy3Fe+t)fF{uA+x&O26|Id#0 zUtH_Ic<%q=`~ORz{nya?uaWz|78)1F+JBq9Q^97tzh8MKew;pebnS> z_=;`EFUR@Q?oU*a`Dv;VVao0F=d^zF+4;AvCGLOey)U(>g_W;WyJ~v&nmLT1ivyW> z1z8jxDL7_xN#nja@ITtkfhRrKeL1&qDllwlZ({j0^M>$&b8Y8rZq3%vd8F7XBqOCV zBVZYpn*;lncL|x?{xHL3mQXV1AJ)PNuH3KmjF#L8d2q4KpWTf$;o*Yi8(X-g?RqRW zK04YXZC&@~N4oRLNk;R6B4#ErGgsoR;S} zDfcEGy*{Co;R$rK6#`}4U6kcofh>f zeUZbQxlLTI-h3jD9g-woED7)AI5NjIIFB=ZPSH8f^tnd8FD6w6?^L*8BPRQ3=G-Pe zuZ)Fla#@p(1SFEAMpf_Iq{Qc{?8UdFSnXHm^Hx*Q<4>^|sEwmC)>DH^oUngtwJ3 zpGR)*#PHq!{&9a;JlieA$Eb_Lh0n8}r^WvOpFL0E9Oh)v{3BxVJs;bJ!%a?l?q*{{y1pK#zHo208^07q=h7q*{KB7^EA1~nWY9P_QR7Z_ zf8DRW^X><6Fn>Jv%f*KwpvB2O!{pd;Cfzl4|Np%{WjFoC>Lj_7lI|J@_y5-{Xxzw^ zP~LMUEW<2JWW zg<1-ARw|tkJPp{x{f-e#WIvcLW8Kk|rul3t4KaJay$sAC+kn1l!};HnBIYd8tz3Bh9cP z@N7GeGe7S_C5A5!{f!w(3fUzmB-kJMRh+u4c+Q5y_%$bkHebsOW=D3{JC$c!$~^R1 z6BaFHW0L8a@ydlsvClc6F|bGIzlx{P%tH<~Tn!GU7dsg)ES0J66r8~1u=IXSr>e{) z-X@)9MrP0DPKOpwn8BB_>`#k_jr<`twi%0;T{^MEslQ9r?h%W+)x(pGNYNYr` zuJrd@q9AbLO^{+*fTyJ`(}nJyOTGMwX)ecZO{n8y>2_7+u;z5~2@yK7hO3b^=>4vR zn`By6F$a3P{CFX-J>ZLC(MpckfJ>o;d`ASXRiu`(ZQ6KHLtS9X+BGghyHCv6a#fk> zYDbiO(uM6z4GUNfYR38hUf3z8F{nePhoMNfEhGWqU^;@|rJ3aelq!vg7hd#)+%x8%qcO}hBripBC& zVqdXE5c?XlB~t92msh}QANV?Zgp|U3 zHoBPIywlcFwt(;C`{sO^c|6=KzRMnEyNIYPZY&UC5Rl4=V5mHHXWw)Mc{$Gxr9^*hhz_kEu8y5{*-&W7{#d|&2sC%kacx4QVhvhRxmTkT6b z^IezQ=Y3i6eZouc`dyco_I;HJvV9R|UUhAM+~Kv%dtbY<@4lI=QMPch>?;vTN9l8X z-*fhMH!#l(-}`Rr`dY?IN}2h;Zm|XkvdSd9FVx?&xhZ@@Gh;%!l4rtUlS|(j{>Xk1 z5wv;8+y67gGC;NDdG&pD`5y<<>%QDR?Qz`a)5ZyjDh$fTktbI@_`X&C2@_vI!*0fe zN`^BFxHS~^zVF=nbK;erZC)A;AN%wF@En=kE0Y5{nz>6k@rumJc3+fxPO@4g8 z^E~u}x6;$bmOLfK3J2zM^>s@{7cifGzsn)u0V97wBdhg|Cg~>*f0p$(SY05|*sR8!f%`;*ZvcaU0mIw$Ql^8f><_r7O{*_35Ks}QpKjhDze4N2 zxlpmPKq)hW)-hXaS}<%1X7E_hl=z~QxsffJfnAQF*7Qfq zB6ET47j4})GAoQjUD zi0&OHdRiBCt30%0Vzi%ikcBmXg}b5mW(CW-iV}tkY*7YG+6S1z8JO4$ST}13%)im| z+C%+(gb?$Qa;Jux6U%E1G^!Z{*q?UPMiunE&}cn_(buO6Q4Ux{C;DiqNkqx$r`21Ne`VSy(^!jeN$J{ zvQdX~^36w+JR~NYM(P@CwwbM*{7+B-eBlKjz6&o(3Sz&1|Jb&!?ccvPO>NbpycjJV zRmjB_I{NCSW(JQQ-7PK6Z@zd@-$1LszcVJvD=t1VKE|i@$`vhL6;Ds+JAPTOCRd)-o5qi-Rqk-uMMgwoi}fWk%jKg zotq(dQapS1z{@|3=1%NEovs?BQ8eDw-+55>uoN4|Y) z^2x~zudne4cg**5Y zSi7(`I4z*z^r_BHe|=MZcXxXuTZ@3=g8a2>lBZ3XKR+@&%p)<*FDor{&Dv!ZvnxVF z+zJY_Bf~u+Lfu=}w1$VeCsxMW+nW~VMdvPGdg4S*#oj%~jvZLGJa)#6$=9!!`1?6V z=7k$tn@ycI;r#gmOHY@=jq58a+)Jhv7Zv9?yXc38nMX7=c%&sSSTO75%bGubTCKdE8)0yKME?S^(VSM4jsgkW*K7VQW{ktWjLnEyrW$DuSx!u_ojwWl?#C!Va*VK5{ z)q5>mG~3(9t+zM8(nV>}9UW^I^Sp`b0ZD#ElM0iPZ13E;dgyT0u3f1ut-g2embGuu z>f5g!-dI;XziQvU^aBSncJE0qDt5VlzdSR`A-PdKsXC!%spj-E+BNg53kqFI%iOYa z9PLvT;lM5f z-ovqHc5Hlne1fvKn~YiG=|GFsElXsCKD%a5a_*M%-L>WA&bAkix(&{m zNINlq5^?N-TzJv7)ydf@LwyQoyRJ!csQb4SPbT@8Nh)UW9aX&27W(zs6VQbhszoxa zsxH}Sf;*qiNST(I7S6b+WTD^dxi6p1E;y$7+&wAH;`!W)XDgr2s{vnl!KU?ML5o&=EEV%gveFWzjL%Jl4dd}CC?q%F;Y(`Pf|ug;jT zhn>+!-+5`mrYI*?`8Dqj@r181aD1?8TgVZC`XvQb+=+KSKrg)L_cZkU&iLWJukyW) zfK!Uw-)yP~nkKS2+IaScM-E@PQj8rf_rLjk-ho~B%LR+6k1lj_N!o^NV1CHWaEZ&Y z_k(+$L5S(ai2RrD*G5lfDe%io)BQHnk*Pp$ZR-5mi~Y_kZ7<#^$mdj@pSoUxk=4M( zGvF@6o&R&cdla8GDRydRKCt~hd#r81Y!*#DfyagJa>?hn2AvCi$eyV8^VuAC(@mlC znFW41-%<*xdcI=$x?iu>Y=8Ib^@ihmzu#=Rp7;Chj_2!szuWWu-S77Y*!BN>I3k|^ z=i>?W^?yE{F@OK(^96VPzhADXODDMQb((jzG^6lIVCb($cP@tBnjf;w!QA}l-iNGB%Y3Gv_Qjz%J(V2$#yNQ!JRuz0osw8C#|9WO-&F9wHhnEu)P|DRlReo*7tPq!aG|MHkY@|mr95xFxg(#;bo&uE?lQi`%D!Oj* z!b}UgSx+iCAE}ri8pqwLZgMwyO^eIY6a$s8D36mpB@WYO z2r6n?c?uVAa^Dr9Qm-Sa;>h)K_KYd3RU5aQkk5^nEtr6 zB`1Z-~?#4?Yy@VV=mm;Z&TwOA5rZE2=oK9DZR+B#{P}Nwc6ggU3TgZ! zv?3@`tM!!orM8T#D#3HFhVKjtt#taTaA$Y7=S?B+i%)bGXlmX(sS|V}yzJ;q-h)}r zhq8qBTxwa)zf#-jiI&izYgZJCMLQDN4{e(H;<8_-ZAYB2(v1lpt}1kwawpu}bh9nQ zOs6iEBaHcla^sha8UeqfZ*ZhfP+0r5khgHQw5ZdSr~eB~HKv!I$Q67PwdBe*t+J#O z=jN^2KAojpeb(vR;<{|nXMIO^rmIeI(!UhlToAgFh4E~JXvy9F0M0dwetVSj2i;|s zovv|X?n}pg)*??Iqwq6?FCeV=)@ zhzg~CirS$vIh4zGbIgSGx!>nof8=1{{q%IH&rF3+T{^jvhf-hkEct)dCh&9cgFm8c z!gi`UxOr<=PI7z^_T!M0KO-tk#;}%I}vMZJ+ErDQ!8+U6oFA&uMF)R8F3~l{4|{X2yV= z-Wj|1XEB}&ewUHom{7eT{$NW4*SmuY*By_V~@X1(D1^M{k)xheg@HX$(rPV4f6?)SfuRGVw+ajyK{guBmNp6CDE8N4n+ zWO2O9OP!f~m%WXit?%)9RnWMr)yt@4qJ?df-pb$|HXi~Xay{9zLNWcs5xx^sn*YAd zWc0uA(C_=Mby&;K}P{qN(1{yk6B z{ePZ{wo?;4c<*WRBU__dS*@u3UeDJTow?}!^s|Dc*6!!ZpU-NyZ%KN%u_-}cY*Do9 zH`9fCUw2M-xb?Np)AQcm4~suJM6=qLCYX4=PS}1e=*BHZ68+`fQXE_q|Ezvi^pL z0!kJFx)lP>8UhwKgm@SNIRaal3LdgVMq4=7iEXj#b#dB?LLxdc`?FXQJ`;!z=Y6FEiXfg5dt$Lg!@|~7JU_5ogo-}txI-N)MWD*5jS<=k}j6U zGK-DvT#Z%wfyPHYvL>vE7Moaj;;HC~4uL}_njH&!cZl{{H?>aW5WX`*^utuqr4db@ ztU09~a*uZizq~3?R#aeB*r&+UXZJaYcVV)Dn#i9r!HruQHQWlOtq`&^6R7+q=#M5Ff~mic3dH^t z{GT>8R@6YnaN1=t!;F^#?wQkA7v|@0%w{;ybL#R$Uco#C#~D_NGd{5~lsV^TKg(k? zEHFX^bF*sgkAVEs-JY4MrHg0pp9r|eqMmsmJkDzRs4rqG_syo5uAyqZFDP72grEqd4? zoH#=$__=_0OX&(1g_!md=fJs!7fW*uy`uhC2tM8^bnm2a!%2b5Cri`62!)Ez{V-EC zMO-N7xD21f{2wA;2^U~_|&G`(glSb{LKlJ8pIw8m*Z*5CkfI{4ma>?|aWT8%;uq>dHYM{6Zq3h+5LqnJ=4&M+lp!cv zCA90MfcnlQ)6-k6GMW`1PS$z2lzCzE-b|rCSA>#or8-Io2dr4CE!95dMsQx6K(2*A z!7q{0tmRJXq8%@m)$NjSdMVPV5!VyZdG_b>-QTAsEnKnYzr}kTZ?8@?DWV4J;xYxf48+Z*_PZxE2)C}h1+BzmJ*^+t)= z8>Mz{l)1f8Znv;(f#|LeLgy6(&J~F6Rp8%rKwzQ(f7V1kdG7Vf0m2m(p!0- zFvThe=rsu3U|>k}7P@hOonZoFJR>Vx;8v!E+w>1^Q{2eUZOFq?xRpJTPpxq~_r$H- z7g@L$Zs#=QkCL{|PY_767LYAqWoBgO5o9>oAkgX{uxA5LRNxj)#_bFn*pzPz&G;?& zDM7HzS|B4~`}P8XuK@xj+PtiWyO;xaaUR^x`jB6WaWhvTPjj^Oo&^G}*-}Rg1m^B$ zb3Cw9{oyWdM>d9p-7Fh7F>T~Mks#oCTi_Ho!|KXKG=1hn_=Ps0ln(o+ZOMr z`7f|3K3bsMKwt#}!_@}@za|LGRS?)2Ezl;g|D(4+#{pp-1A*_+0@V%z)3_Ptax={4 z7W&D}!2D*nzTlcQ82~;t<@Vd67r+A_vn)mhJ|D|F4Bi{|NluAn<}gD8O5w==LuDi-%bY z4>Dam$db6{etBE; z3pkc0BV?WILKVME89lkcD6u1&+($1gX|v<2GrQ-ZP>Rn6VMqo~j zz`QpC`)hWpemuU}gFNgH&v#o3gvf~e<`$ZyBk=5xVCY)`Q(Ym?J$slM_iz)Unc3SEgeLAj!D@KbX5&?*iC3i#Ugx=Zm1p5Dj*mx}7Vfg^6-dz) zShhg0TUTJ6!xeX1fi~UiyB=RO4&3G%cp!?Gp*mobRp6!uU7b zI{Eib-$m9Pymzm}-n~|P_r~12xAxw>bNBAO|9|g3kiGZF_TH1&d(Ud`y_kFNlCZ2j z!`#dWfs;GU-|{ZIyJ(4H;-Xi3SIYh9Q)RS#JLCS%T&I`j!tZz=Ji0qAbK&9-;dN|& z>p1*`HeY-2{O^Omf9F{}TpFhFaF*9YWxR!>Nbb>5m@fHo9nu z{9N!zq34mtNA{gr!dJK+>qZ4~rF$_KD*ALhzWUcaxnRELLt&#l!IfN37_!~G71rtt zdhCu84qW#{q3Vh1!%XJ~Piz|3guGieIpnd%LL-p}!acY0FWkyyy#91i)>GAsQml0% zuU0)1KJ~0<-9wpqOH1wUmCSoybMJZGzvm5dFPiLLw8Xt=t9#M$f8L9(eJ^_Mz3BV* zVuIYu8)pwO2wZfZ$Y`khvR&`kta~r#{d>6}uRP}URt~{!$<{)%=DySw+`}EnwAfZ) z*It2))!aO?uQAM#hK3wEfyrdp@iS6S)&Ape(FI-al z_-an9z{@%Tb?pm(?Y{h2d4;3!9nZrnY>eO9b>1saWQ~d6P?CFHO8=_a$4e|5zp?}} zEhzZPdhvAT`S~++g=d`=TJTrkECcISJE8e=zjJ2YW_kFjE&uMp-V@#H@1DMUr+@$5 zOSV6!)&HC^|L3gzKj+;4Iq(0^1@gZZ+5cKnfBt9Gug>H5Soeh~#!db#yZ#%ma7CTK zkKSLe*9!je75Zl@vOoRzH1!7-AD``8zqERu=<}5i7&bU>wEuHD_z&;HhiB|po?9O+ zwoXJs?r*L6UmnK43jgDTl=*~~Mm)M9?|5r{p;O|l$NUvKe4_gM=DgIed|EGPqL;c) zbN2i7|M)jP))Mrvv+Ms_|DS=;;ekUFE3X{Z3ojNQX5l{Gar1>h%JB&z_6!e_HiURi z(~aHNA{qS5XO?O1y(2S&pZm?Tt^LO$6|%x<636rdCvK)G2+dOuj!Ur$c@?rMbZy+x zS)s4P*2V6vyBigv5!C2>;#o;nV28uTguDA%rNiIF>?(bG?`Zb+w+9u?l{uC$eA0}X z!hW6U2eSfG>t>F%Pg`XoKc$?SsvCc7PUYjc1%?cNUd;TqNa!s5!i%-SMP;(l-~Q*^ z+M0X+*xYEfH=Us+|JmeXeiS@9+I##-ZOqT2XJ_Zyx68%;DtUEvZT#_hvA@gS-Q8Qy zE+6-&;?vW!^WEpi{jK`;_U`_6dBlYm|Lgw!{rjKYz=4rnWrG7Vzl(t*t9Z%=M|SxZ z11C=PB^#W$^^X`h^X9%vSitb$lmhdWd4eZqPNGZY(Ci7c+%wq(ntXZH+VoN2V$k)&WD!KEPC!ll?TJ$2Qu;svG|Ixjk# zq%>FXg$p-bT^Px}O0*$EA!_jgOIEMY1)-Xg+LwCpd|JLBSu8a}qUl0J>Vjycu8>IY z^+&&1#EBdd(N|*U3cFz{TBS6#vBr`^q^W4?ikQZ-vl=lB*CfIhWePf_OIL|mu`#6l zU`)8*#HH%-pz+s>#SshwZaX>~IqtDZwnd!Tmek$;dP+avL7f+UjRA}cq}soDt`KhA zrh7tQYN#5A;LJQ$GsQ4bt!2w*iT@H^n168UOjWh*nlHrKS(PFdB>qb6;BDSubK*hc z9F`kOo&WWh?Rs@}PsoeIEir5l=C;_0c4W6$>8zA&aj`sc%8I|qWua-RPDg9!Ex#4_ z+B-Zw;<|oiu83kdQPKIbeU6PrR_m_~R)t5kix;S_;jD69cueq>h*AZ6Rf=MmxTeSZ z&J4*DF{^FVzb#VxA;)ptQ(5TGg2cFTv5QC3m)Dw#dprwMC{$pYy&$h#p5tlLmTfNt zZ4#zw+|a%C)$3=s#yXBnh9wi9DU`76Ix5Cc67x%~G>hH7W~Ytbis;T0@-Myz@xMwD zW;nBb#S9mrCSk?r%1(Bxf2&J{C@qFEE!@BvM@Yo{=oBz zFEEouFv@18!-E2Lqe+4lW{OG-uf)w;e*`FHt8_^7Pukx!V}*al<48VTA+8<=ennU5 zjxSt~Oq!N3GB`-j5E0#ZV%3L3jfs;vjQNb5{du1hnnglLPd=~QP;YHfO8s93jxL!a}JcheLGkrJ5` zf0S0ZcQ*(r-!eX7&h^Nrnc;t)!nq(1?ZlnFd8eLqaZKr)S>?27f(bKM?W9i2i=7i~ zCkU$@f5i2D+6~{TYnRow>U1zAx|}`raLkyp}T^nZM(8mzcte*)hc+_ zwJXcak7oLn?h2mw?aFdd<&*pl!4t$pju^8EHU-!=2*e$?vP86QzoF@^&Ya+?^IPrAA`Kei(>HK}=}MykS$iWA8Xc7^ZT z#Ht~(V^M&OK+k@I6rRNl38CIkx|w3j?61rdV0c*OHXvtc6vrT|DLea@A_^PQ|;XBpc@B7+|)ZI zb)CC@$9}8YvdiS7PgTCs{Z^K3d%r(@QLVd~<`8%NaL3cEu0B#CXmaa2`N znxTVzn!wcdIZjJF7Tjr4a&SA=ug~^rb<3f33(n}|u8#bl>c2yLvM}4tlRKo0{Ga>~ zxb!pSRHJv0?+lk6>g+R5*#0yMTh%jHq^xpT?6061$EFAtE<33%rNbekER@!IMsu>r zMB^z-CoSJ2>2h2|a{BD(r03mV{1siTLl({InBewvvQpnP4z06){Mnl(2TzUhSm74B zDme70_z7h-hC7`T^qD6rY}$2VdG$`c<{7^f7rSxX6)Li9ZOM*c`dREe#Zxd+o8_ux zV1&m5&j~4lDUrMfpE)d0)$MSInlRZ2pI_Doe~bcJVMB>`jnX{`vZ=W5(U* z%@??@n{j@3+!8C0ciUU>r_z$G|3nR%zs#7x5iD`|mw|tWq@bdGTbav$<86k`3;0v? zQaIk-5I;6$ZO%02g(=<>G+zmMs+@_FD3)d~dMeF*Q$ZsC9VY2Bs=cMP22?7j@W_#RcoUmVCc%EXzaVzI7=LFVGKk}hN zf3B;ayTDb?BX8WAWf@Ygm-XGtQ+!qJ@&3~C-CsY-C?A_$;VgB~u{)&pqrkzBt26xn zzk1dkb3wdE8bU7OOc}Z4S(uu)kfvu92a6Lc#%_Ssf~;IfT48gq=G6ecr#K zNKwLwLsH9P_726)2I;_v$$~FL!)AAAYpZo_ux;{akum8It2rn!r{m7$C5;c3Gzkc@ zw{*zdG3{C4IQxUSN>N8;Qitp14t1%6u8Wkk4=H6zbLidb&^O|kBDvUTSF`aeE~UeJ zS|Xf!3=aRF*|1=bH;0v%a=F*`=^2MxJ)GMwEbB6`YkFbGP_eDCV|$~4ip!(JT2D0G zojN*_IXpk@Tp-*rcQ)tL*^4U;JFH9W%MQtVO*z=J;Yja=rA-2A%?`Ux7N`X(sRlDK zcxFp6JUEbJbY$uz)u=36Zz(RZ4~`5Rdm0S{V>}#M8J5LM?P=TK+Qea#|J(HrGeg`S zj^rli`^-n%I}WP!bSBT?s9VL+qQsG@#E~t-v5C1M#k<3%#( zChcV{r@k<3IFX>ukihWSsbhWDskJ>lE3a_uI>og$sN>qBQ=8^+ufM}_U{{xj!Rc*N zc($D3*x<8a?i!9$i#T?aoZhpCYmZLn`AJ-Rt$Lb1c<)v5S<|uh%B8NWmpHaWt#6Sy zbExIa!Uv}(%~-q2;nayEXV#opdsnLC-Y?yiJA9f9PMuLXJAcNi{vDlsl?Jf&Zd~@dOUjw!@N8bLUS6JD zKDq1;j}HzfZyaXd+aKe?u|C@Ep+ex=h~+aPE_Qlc?8E{J7e?z1r6>D8jZ##98S(0zgBnZrUoC^=I9aWFqP%7mhDJC z5oF=(V8eT?c|!2XWDZ+V4r|sB^M#yNu~(WjLL4*2nqFLLl<>&P?9dP8&@k!n_H{Lw z%E@p?WOuM_%Y`k?JKTeJb_MoK?Q}j6m(pRG64J6`n=DVK#Ga!~H!j6zca$0hCNf@Y zthg$)_iBPFN8H=cD9L3_9>-fx1f}S9B(Cj9DDKdUHG5;pp;;o9zAKDj$Mlv9AxV=v z1im^4Y~|FAvCUWHaA9ruCd`pH`I>JCN2D)@l`2PhB*&gW4tY_IuvU(8RtDx0j{4s4 zwhPx=9)vS|xL)QvJyMm!yoKY@?x6n-t>M#tTx(^Rlm2@9yTp#(*p33xj=CM#_%YJu< zv@x`%3oO(5plGRmtNlWxh0v|W89SCA<*2^Ou|{_1qyx*`JXM=_ST;Sl(!?0e5U|@R zh{H*y zb8IdA7+uQTFze*i2^x0}`*s}h?KoC?t$Bi5^A4-_h@dm2og2J6UeDy%!rbs@_l?cY z91}!4+E`?AWjI28?lyNuPg}6Nx5N6RC&%t$j{kcu%QP;C>DaMn!G&8z%5Hm^<62fY zFzh(cA#pEax9wBgj%TGE(KUfFKKGg<;$E>fJbxS6@?&arqs{qHj`y{kS*aY`{~o)L zeB0IW{-oIZ*9C1`86tPAja_N5_YNb2QA$V9-F<)Ox;9O?(9vK!du!Jt(~g$X;LeCR z)uo{w8PY$pAG8J}^xW9{d-Xx{tCu{Fa29R7KR@Aavxit=O~?D4@zW>l`)@lxlQ|*U zh+}f#!yh;A*ly+EImXFi$B`<-vE*^^+thjO9SQ9-651|2tTXM9`?q7^)DG?5aOt#Q zzIB~{oICipaj10$c5oy%-(Y7^cqqJ&GthSdtCGVSfg8$l9siqa#Tz$VXiNy7apI_= zpH0_;d#xu9G+kJr(AHsjt-~m6QrC{xsvJ?;H<}eL+NV91cI5cM%J8+6rV zU#tv8t{nbfAFa}GbZ2Sk@J^g@;bvpQjf0|YEeuXG9y~r?%Hh~NJL`9fF<+<2k>r*a z4};VWHASR0WjwX0?l7@=+V;Sap}}$AYsH{{oSHQq7md?qTHJ0~amBl@L;H_f2`hu% z7o|*QXG0n1c@EPT{|ziU*kKjJk;QV$%Y-9wRgmWF>o4|lq!^{o{t;d1*70B}M}^w+ z)`CY(FOqcZmQ*FDHA}eEnRRG~actA&a4&l{$>E4+mrARhW7HAOdAX1OuRIZ&ch05x zLFC+yr?VC;?oR9MZ0p#6^+@A_jQI_*F29_cPdsm2kW^F0QLsncsU`mHL{VU4A*Ojjx|yxotP^{kcwLp3aXOZD%s=sc5aWx3Yd^`2bzrmNvZN$&dC=m#wmp06}`aj}iBxkTgow6_aZcrbltw*SCtD|h98 z{hYV=zP-KA_U?h$yN7D;9+|y+?Dpn`eZp;mdCdUME-A7h-_PtSyL`J^=@gS!Hx-)ku430nX_+B+qh}{<i{EG-c#AMr3wP7w`~C*d@xbAp6BE zS?OsvqI+lDN!`UcRh{Ev=)Oz399LxLG;<_gXJxn{%5gK+dj9qax36~G@#WYc&v7r8 z<9;pYYhI_e4^7+3tBdY;6#H|0ZJm2VljFNChugZ}KV$DUzo=Y)f6^b{j@Q{7|5a;r zWfD3x9`r0oZCvqSMxt6X$J3UKnx=wZO&k~Zf4|f&@vzGv@xcBGBFpx*Zm_#n{P4|e zyLYo6mMz?@6n0~hxKqoFnxcc-PK$RW>vQ}++s~oBk0aeaR*&tk&c?DDk;hm3d;NJh zZ~M<}PIxl6etYkP6tDMJ9;~11qxZ` zim!<_i?Xh7%6*fA3d39yg(^(7$+SRsQFOHmGvg`TG=sR7W zlXPchCkRj4&&a~xc}(VG_ofN!^WOcj{PN<`^5FIRZsj`{T?>C4`Lg1-$Fm2=C+p|` zv-$PqmA_i^jN)D5&yPlw#pVCE`}gP9_s{S7&2KVt?R_lY$SPH#(8Q^=L!mjZbYX0> zpqGVWt7ue(Vw+^v4#jrasvn9Sid_~;ovO1cl)5xm?NI90-StDM$M6*5!iycs{kFe; zC{J+YvQ(MqDpjd6$x~~m%4A=wpDI%Vy)0FyhDKGYPK(T1dF#JKbk$GQ8Hwwr9&oV# zb0L76>nOuSfwZasA#v^wOZB;>w>;%$%1Le(Vr4ZfQeV)>Wt96CILDqU!o#^PS9 zTay;D^ciX{ooolX@PbS7Wt7<(v#w+5lWf}@NKi|)*-*4wqLa`lDPdRrX@wy|VR)Z6>@*6aJbk~@|67&%!NECz$MBeBHqZ3^53h+FbP#zX{r;Hh?3zvgy@gh9 zUAD+&Ymd#@~;O>ZQ2+nU`>on32oD|7W;v)j45|C+hW3Wzjh?&@igW;plc zdbbTvqKIeI)1}Pj4}FcZ{J1t}SJI zFYKv-FN^=PmHc;ide2{cq{?UU=FnZQwkE%9O3-s@;bqt}T|}Be(&W0Oh{#4J2QdlR z`Fot!6^GckZm8eF?-nPhQtkL?;*wgIE%70DT<>U`^uK+&|3{qTCf+LtMOj!|0~y{r zw%q;iut#UJ)a&dUu>rCkiC64h=a^6UX_8XhZP{sK)nsd8!>1##vfXLVr@4&=6BPK~ z$hrPuoOCeoh}N^;54stg1;0FHFU#g&a;#w#4A5|C&ttrS4nD*>}G5Q!H2D&|(Pa?S0X#GLr0H-|&9jNe?o42g5b|u= z^GNArkH>E-A>LM-L#pd#ICMECado8>E8N!U;3;QrFcoR(HFfc1GT-FU#ItyAoM(!o z!VJGAgNbwBu`t+32c2+}+dSW-$WdJXlU!j5%VZYG7x4;4Cnwr4@&D8AymxM;z!8Bb z3&l5PxZJrR;O_8bc8LooyW*kqJ3a_0NgX-ke&yl$saY?&xD*rJW2!DR3QSQ@3OOOp z$Z&arh_awsWfOz7`^Clt6D8N&4mZUn?$!>cMJhX0UEQK4b(-+0sOFxq6KDvURut-D z9Xj7hp=BZ;N80i$f~)>JE#qv+(_(352+)q^ZgMi0D^_ z34Scyy20R<62m)2L7%K51*4_joO8S;EOcX;DzY&rh+An-5MRq;`BH8c=Sk-;TwBt= z$XF+f`-%@k%tF(e9huJe6zwM~Fl|d0QrSn(}yPX*x9C;@s;avUF+lhPAne8*aZ*ITXA+Nx5 zuG{5?^4q;9Sfqn|PG+#|pZ1cY&h)?YL|3uR2h`?G$WCMq+rd(9y6xa>r;=u&|7|H2 z^(>veu0?a6XtZxo|5w=bB3xi2S7xE+$qn^2JWo^?r*C65%r1W9EXTB}Wxdb7O*0r& z6m*Jro;InRF#WL3GsDR{&!pKI&$_(knd#=8XY=Ze=RDSVZh3jPjQwSyzsznIH7@tF<$^(!$nYyK;#?%TM7&%6m;Rr=Cuow9n*{$XofeiE9+O4NM$& zwY&_B_q?oiQnbRw_f_b0E4>v?zM2M%++mli{Fd37x|F2~#jj_~e11xd*#C-+!Y#T1@hwjj>@9l?($8?(^Kwd!F0e}XYU)L7@jo%^dAu4^y`u;?gijeZoXm2Ll9vkINvGvw*`=SKC?bKKP*xfPV z?e=L~laEXhFSNeHY%g_t-xrg4svP%iotzIE+nEF{Npen^<$5ITzsdrElbR2Yd$={3 zTvK-StqHW4EvRh1?@MlEf%Bq!6TE_2Hi}pN@|eXXc!7WVinV7t-f&JTyZl*B?R*I5 zt8nRw_svyiDcrpOmfPuf+l0vq&)(R6xyuyLqcBC8P1fUU{%V1%n^S&rS=KmqMGG8o z-~Y$BQs@@0wsi6HJt)t^7ds};3#Obld+TpAyJAi$*} z{=e#jGKFbLjI7UH?|I6ccjGw!PVmT0Nr4}l3)mJN$=W(Cd&hl;6JlOh!kjw-^4?yP z{c_FofP_lGkwVt;E?2 zKMw@-6n&T6@L}-xJ|N+>M?yGkp*M%5Bg+EOyoW6rkq-+MC4xF8w-hY=XB-M-7(R44Z8^!mhtu=O$&+jDM7!KB$yih};gQO;wnc_f zUIt1VF1Bj!bJejsuCvWmm&swbMN;dXMNU(qwWe{ohRpJfc%(13*lEw5iX~niC9{^# zlu4u@Q4&njzzILfN*;#q8MPg=-gEinUnBx!4J{*hoG0P*C<* za4R-pk#|h;f?k#t6)c+qp16Ccc*mr;6+H2(P>E%6cIim*Y*6u-pyImawp+%M*cBXMS`oAcBsuf^FeW!=Xl_YYEm3shVg zW}iFp)cZoJ+Zz?nf;q99T*Ce-doifRet8;wB4xwImbhh0wQjLS+MS8FVplP9Nj~Q? z|I9&Gmt{^qX^tZQm%2qX$0nq0*G%&=h~7G*CB2D7)9<$DoMlc+p1HRu`+S@2z2TYr zj%Dr_lyj3*k1TCTxYd#-=Cb@|n%fgKhLALmKWgp)+}?d`MSL##UC*Lsxolf|Y+GxZ zcZj;9$@8cR8IK-syQJq18R?!jX~hOgo(<0(4Fs+#tPQMlD7~g`wk-o5vjwjSOdt4EF^|jxA5!rZl-b zXn1&Ncx1eAc#-aCkl_)b=DUW$rQ^A4!3w90745TDq-^43*zw#wA;Wh^Mw*a@=bhUJ z1z6J0wdOP(4}ZkoA#|kw+<%w;B9@F(tc5}@lQyOIoI-kAptkHB;nA3ZxWro=j&p9t$d0s}jESpx;vVTRU%NKQqI}RQ!FJ=g_oM%Zn zI-_NF(#jZvJI7njoLIxw?zYlXCTlhy%XU`=){>Q88mqiFX!`hMI_tc2SfSx~LzAI` z%crenN!gJdfenkNN-wX{a(j^JvL$*)M27Pn<;g}`3>I2T;hhnv?G0fVIUPxo#HC#wiMMTO^uhtTi@?zrL^K zR+H|u3A+Eb9J!pvku1_IuaX8=6kRl_>^(vk)9qyOPTPSgpkXtCE? z`IE)+ATsx}sl2O)zS~Z|-$53y!v{jhDmgXBCX3w;-zdmamNT`V?m9?bKy zY5Y-p-_yc?!RLc(L;TNq`7U!V+(|g{-_3;~zJ*(}g|X;^YleY~LxJ0p0!N7i_l*2^ zMJ=rSE}YIsID=bwgpY8w8?c`L|K>5L9t+=*CxsKmGvysKRKqrY-{WgdADK#raz_)(X1L`N$|2;383wp4-CmFVAzw zMyC@OT}@fOSFvc=9Oh1AlzMxN`;g(gA{R;bBeLHgc)a+?_*&sl49n|SArW_$H=QlK z*XL{9oadI2|0vIhVNK8{%Nru`EE@bS{M$pFJBrkq8MIyd-FFzdHGFWeC}KI>azAof z;sYbc37^!HTmFd!IB%K3b@sSH|B>74HpMJGqGvrr|G)0Xg)Sc~g<@SyH{*ZN&VkqRoOgse}0wATc;1K{72-ISzN0>x|s4i++Od) z!f;>A#Vz|w^I8`hf3auqso7aKcnQSd1@af$ijz2Zxd%O+7%mMN)6eq9V{ zdKmKO>lU|wb$?x5{t2?^=5KUU`RefGo)yNw*o8o3^%J3#W<^I3;vWz1Pr{WpoSeWOt@D}^| zZElGPc1hUm63%}l@$hDu+ojGMOuY|?x-1At%0H6i{a@J3cbn6RE$$p9E(y7b+gno1 zSyK78`7LK*ewLsnTj=TV%{4&5B_=_(yd~SbC5O2oJ+#bIXVb?WB`$ZqJyb2rZD+}u zZ0yzU;xU~?fA%(3EfzMhBL$OP?i85?Cm%`mHg#7q_te=Q`9GI^mly|A1IIiTPOTQs zMG0K1Sh#m76dgUneQ#~vbvBnHZ$0*G*D3#g@z|GI>oVsTz9~CDNgfU`O>`+J-CBE{ zr8aoGXUL3j@nU)DZw@>b1(Mq%=9m3;jC`JYgjdU@E%_2(pNq-n?QT1^I<@?0&NnEY z{n6s6OUG(cmxw8Ovn@O{5`R4U?%=W|>PWex%+#LsqFx$1JXHRFme}6f7ro=RO`(U( z!X{P4%o0=X8^sNkVCkW9-jUhC*x}&qUps5=vw0{~ zRT^5wGW>F|uyTFS<~#j}+?NVBk*cNAl`#nq9WoS`|6e4|mA_(n>ZhonmCIG7mRYUd zzH9Y+zdglUZEC+7ruu&#J9<+andL^L$7Cf0n38 z)w5>)c5V6X@FHq`%MpHws2#hk=O46o?^(U?y-cRnZI3-k^ADZezgTjA@sW~atOw=) zEWEmW_W^Im1-GM3_8fk1?e^kyquQUN+OzwFTK8>i%_{q|w6Mml;AQj^>ywvfF1XZk zSTyU%+M2mDYus3}XYX2i=Dy_F=QfvD%A7a9ckch53;ebh#rIy6x4opk_maNtW%Iq4 z?QO5P@4ez*+xSr@&SY(L!rx+vxADQX^K*CkH0-_3FMWGgZuFGBu9sPA`)g-++WPFU zy`AmzfG^KcZgoCa>U-YFF4N6fjN89D^yojH>{ao(G&3dPx_AqB zGYgM!%l$A@hM4Wo@{hdvZtS+9;FYnL;AL9|k9lI6g)Rwk5}9$5y+@wUHF8Y&_i|sM z+kx6QZY~n-|Em5PyCztv{QtMK<_AZxkYv;+hZGCPlp>FgO|O}Z-)%IClK=N-nW5{E zeGlL3yZP+QwP$rq*!7+Hl*xP+hZ07E2@kZJ*g35nDn6WYYUeNIjoBh_%DE+*&uz<& zi3^T(%6LaCaWxP<-n+nsu_8&x!J}KwH!Wdj!4aR?=7rC$?3|qLKi|HQP1I^iM&M%i ziE5#{rep>$_h0Dd`^xFR{Bd*Uqjy_2f6!`J!%}I~^lT)ps$dwKqxT7jOkw^p?;58pqpw)*?~hsUR{-*W3f zHQ#nVmn|PYo_}YYdMi(HCf}sw1)KAJonP`HBFRycO*Y72c&jcLiwS05I z`7RIB11@2P2hB$9_dMM+T>MzF6)fI${5Nzv*;Li0;GwgrN#EY0s6aVAipgQiyb7PJ zUG5oCCl2w?%(-+@ePK_~DelU`z6E~^l8!0r2%h3+c-C_2k(z8|mA1N}@1YgOOTvOa zE1I)^;!!lwl`2x_VvHy{W&88Z<@5H8yk9gdcwVlY&>ZzgNXv+md6I&qyjIad7o8-= zbMIw}OwP@{vgC`NDl2d3l|WD3t5+U+*sRmc2{Aq8w#el6}KlB+-o<}7p4XsJ+^4=wOiR6&xYO3?eu!a&~oo#*qy?Y zy4UX%d%snREV-F`{cicg-tc>sFV|kbSN-v9`2E_SZ~tGvU(d)F@t~1Y@5X~>LBEKH zkP9yq`yw87YOcHSsN3*d#N%GecQ+pQJMu+7ndqr^^U35uKS^`8X%QJcN22QVpEXWl zNJyJnc+T=E3)`=U?X6J`8f@(?A8t0!-x1;PeCf!J%SXg=ZmhIZP z?{2;BU08OaV{hHRTW>aBl(Tpf;CUtUO}kLQFE#F*tZ4OJ@$)hnck);LUTDa`FH z&9=<Fx-7v=NLk}lWYeDBW`m6gv`SeJ(EbH!pf;NNBV!-omip+03+h4l#x{w?m5jO`Q!(4RzT6t1UO1kv^}y+eBUC z>)b5%2W8hbo|lWbzIalNqS}sUnRAv%7-aqGtqWfz(r5BtX2s?FUykqgY+ZlDKFJ>7mM*L}<4L_+=L2Ui_69`@m1ftK z3VwP!1Xe4iG<$eI;0(O6koDVBepME}t9h5~e-x_lwKXpE&3dtYevd(`?U%#_VHFcz z$sVm`n4#cU^nJFpoJ$t}#Kfv;9uw4zTHEcnJQ7{F<&dGvdCgheNx>yECW}fGDEhmc z_?0Jgtg+>Q;`P@j<>icywboov%R2H%_T!G_ta^-WL7GVnwU_rxFeS8kzPuaopCxnh zr=KYel_gJ<4Zj>+@ug6~d4WpEGX_!PS1OZbCN6e;a?NA5Op(T16VKZ(*gZqn1z9+j zBnGp2FrJmYXl^di@x&_PfD@NcpWuQ6s{KsIH=S+i-p0b9$NZQrOmFhc)`=-0ZDu|z zb_8m$F*xY)Z}OZI@LBzm${n{gGrjZeT4sw0I{lb6)2~$M*-YtAZh<=#T4wV;ovRb6 z;{EL8pT)1gudE=)Tol(CI5Cd47(C zQY3@Kw@q8uYR-^ry3(GY8N>fkC|f)!WRb~Z#WJP~K3UG{xAmqkyr4Hz+m>GBG=QyUuv(64#cOsCl_=~p$hvkz4PZLkph|hVrutb)&m&J;*nV$Yqxht1^S!&H@I-k)u!^K$Y(vP;xK;zaM z{O0!XtGCviu$?_OmsP5*@76c7$85J8?%D*X=dd(rq!+!;UmqQJILwRtXA+Zz(30D4 zwr$@x&ogk5$j57*d%o|VzRXq6>}Yp$pxOb!dFySNE^F4a@N5&7`&cIZY|^wTUAtB1 z75Rye&anwic0ltuH!nZkElXFZ?u z-1hs=^Nn&P3;E~1a5evRapJs^rTTMU`j-E?yil%mrT^Slq1%65{jC%8^;_FE=gO(e zYA$nEo;aj3v7^21Qe){>YnN^A{~NCaTst@^^bITT#}0Q5h6!xTQj*`=nokJ4wNEBrIEJ6AJ5eB*S;Ds29gtGizoYBPNJ@^g_%o!ajQ zCk*(QD%)o$Ypi+R@x<~HOW%%rN}p%!NtO1QuuJHOx7f+o&L_@r@8^5|o?kKNdb3m2 zv=fijR;hDHh17GmUtv~UF`dn6fxp1ZXqImrAKm>f?VFfVq@s}uaF{t!fe9E2?sYH`NweJ|7-b0^4s$NGbjl8JbH7Yf2UFQW``UFJMAq# zNn2zVZSm9I%JtOi-=bBkxXhRsR(APso3P%IBZ>Jx`=P&OOkWuoc+HyR#GF3MS$LV!T(~h=9f^3gC?UXzh z9b(a4ByYhaTjunU@6eYm=he0dDCSL2sQRGrKRl|HKyYHw3I+k*(3;vrFa? zui&9wX-vC0oObs;3R-gEz@7*E|0k%gC{Uh}uXb$1uQo+N#sqfGre9nW6?h61g#ra7 zFS5x#V!v&0=2*6}(&0T~r}wKl>(njUd#_uaiQ$dFp^bb>x(@mW#hmypnM7~;X&ibl z#H-9B|LFIJJoPJz!VkOl|MFJ)__67cw4joZ;3I)zChle> zp3m#Wa+|)L`FPfX$KGJWX1>R!XSfvq@j2cKRObl#`>*L&$s!@f1B!DOv2m`KU(9th z=;)s)9gT<-#RQ*YX>SZpEcxtpLG-r1#;HK{FM8~Pi~frp`pJ=`Dt<_nok=d2N$L4T zrR?tG+m0Nsx^$SsiR1gC0|keCgeIwW2pybqi06I2!i#+6pi5$rN?N*1tn5j@BQ`OJ zFJk|!|4tx4-T2JO3Z);5attN~srOw{IVU9D{OFfl6EFLtUkRTSR|qlqD60Q|CBzVO zP_1~9!UG|lx8A42Qr9swv$!)eyzz60Re?q4WDC{@788vvCmLJKyzJTa+0r_|a_MJ_*_*9wS*+$4TP?k8wKLdx z!)A-E!Iry=ZJs~2?lrcVKH28#W!p2w78i|eRTFJXgD)TBtXr}+qpo2}iBjgIMYfAS z+p<1TNb<8gxarEWWmyvr*)uaZFozU!h?qt9<_KM}mke=`zhYAEXD;%^f_njj$O3k) z2TcEq92l*(II<@>=wFdBo}#|MSJNznflEQyCxIcOgh6Zp6W0M3b|&_qEe_1gWz!zH z7A7z-H3*tC3QHt1`6;@~HwjgRxXwSTc%WS)E`*&e!PEMRb7h04t`lRx7tiZ?uC0si z)jV?bPhfCR@V*-2elSG+aIg7^w<|P482l0$d>#m~IQs4^QIJ{XoA2+_%5-lxNxP6j;>@wc54T>c=KUnwMc>w5-K4XwV1RZbrE zj=seQ+}dJA!7lJxu2@1GuAOM)C{U9_0CS8Idh7RuG-_r_c}Y9ouWdE^J8AUdUEN~87+OSLx=Z-g#{G! z=VdKk=o%mGAK-QG-i@bE@B0?y?Ag05B-GE)#(dM}wPxmqU%xgbBt)-SyUaZ$p$>d- z;kk1s%69H}`0!3vR!Y^u11C=&$<52ywrvCC)WVu0M~X{w&0HP){Y@S{s&sL+udXSJ zpU{_M~9z>r?X3tqp6KySawM5!dj0o7dv~)hSR66UB4I>ZgJ*J-lR#v z`lkAjqX}29UKU*x85`|WF}tF5O{m6K`7v|lTY^2#r9s-J~5untD1iPY>tQwdjGy| z*|L}k6S|z7^{!kg3aP0~oi+XR>7(g$XQzXYCfv0IHK{tGw9Kt%k2c4D21X7Uj|~eBHggDT#hlo%@Nheativ3S zjYpehrZ(&wSJ^2sD0p_Z0%j+Km8`n&^gJ^>v~__Xpv zr^^w~5)PBDux+`S&t_&UTPfDVpBN%6v~s29^EoBgGLswc*Qm&PRqBZ}&20c5P3ZR| zabbtrsuzpA*iKS#G~u^buh$=7(?&j;@Qm4Ofv%HIuitFB5|;gT>y5P4Z@1masuGXA z?&#I*{`isTJIDK%N<(&Xy}g;Y{ll@@DbuAddJE*KrMh1zSG!p)P{Pfq^Zo!!xWzG7 z{@ip`2KL=61qv8eL|n>T`PE~>AH1pdL~@35zqZHlTq#Kd?!!ivw~eh5e))Yg5-0* zUOiEJbKn=Psh|UXmHF^6xtH7z3)eiFZt3N4y!*C|9+B;wQ$=3I*57$*Yf6)#3^ZLYd39}`; z!>`o1p7uZT%Cp5e6I9G?CPo## zm~?dNTL~BGzMTKx%#Y+U8X7NIEqH(0)h#h=*K7IOD7s9O5WB$nq|<6)lGBY+foPi) zCzh9|MK_)}x}f27SMnE5iLo^&bb=3uuIdX)P$rYuvEvi5YA z=VG`ka%7P(<3)!H>gPTMd{Gy8eA~giDWFwt$pX6+4ljPD(`8HvOW6b?o!n+kY}Q?} zboa@ZE?%d6n=gncN{Mo~Ct6LL@M}trY-fg>T9?2wt|!ZPOD?jvK6JU&>BveR=T}Zs zqJ-8Yl_y}z`#_1lq*7xPB zLV;*!%=}`3*E~yRt=9H9rzI58rckEPCVC>7KWSHIVakS(pV|r9PA9tFTveEFo9Srs zd-4S(m$h?cJ2N$_Crs&Ey3t|hJ(pWyP8 zt=*F<{aj{#E8(=aKXk8cM!D+6;PoL7x&^+69of%pdBu^z$8;{o48`xV9QD3T3182I z8*ulXY_<-HXYqgQR=3!%LaJ!5x^9_5eUe9P?)G^ClU3%Z8x}g-$lP8nQ=yo=`h!Et z?g{;7PmW%X;p~0C`SJ2E7CQFJI=Wni&P6U_-5j|@-8mv>f+DxdcGjO0r!;9zczr9} zz>ke#im}tvsVSAGnG-kptXX5xzeDUelV^dx?WHM(jw}8v#^&jHUXc+qVn2E=;NWKG zeRn2WaJ%e@zNs)N)hKjNr8t9pn#YZ0?(_Mis+0{~vg^5p?oVaNQ!$b|!PY2bYq$r6ZE<(X4gEems@?( z{t6}vKe?`Wa?6|_&(fMQu3b+2w(PUVA@4Sm*;@Cvewx70aBo_QwBm(r9CPQsotSOC z8{2g6S=)KC^^nLHo-fny%vFwK-s8z{nd?kO9VZgqb0iH&iulZX7T%jzy)B>FEqCcJ;&vcm4=rg+ZRyhYWG z7v?E+`g!m&Zpdyval=l^(e{0?P)*zA@5;N?J>TbQYxnu7FyCL>@m29tudja!Q`HmC z|5>t4e|u9Z)ownY=XT)!gtz`j{yP1g=j_D!zwgTbKL-5!|ClrV=lP>FB`UC<=VIhP z_69k{2K9q=x)w`+d?=~^%rD`01=(?T7JVUHe^99t7x{E(QLJ&+2%&G-H&DmiI$E=+Axh?!sOH7BB zu$wm943X>^${9E8CW#28FA-!ls(a!tTzbQep~7oLiR^<(0vc+b)jI_0I2bB!c=9lK zzM5nw_WvP6njONQkN9X7cCkIIcorhS=q|8yMl!cx59h`%<;JAPA|gjT3O_lA z>||sJDi!#W7-Xy%ES=aZ*%-_g7%JNs8jxBX^1MvWRPersz>N&SkY{xftU(ttoR|aq z1P=Bt3N@5`*u%WAceZQ4;a5YAj|_QJ1%7AwoI2u9wRD6~3NV1;U9z;Zz|W?|`<0+){qB(X=!C-!h$^p&uTWSM9s7Ad56 zbJDFs5v@qY$^XqQcB|$eIXGEqhv5CMEujGiuDPOl`d`{L@vyeWh@sra-u7CHKb0yqN;g zp29_u0*|jvllwSLbW)=3Aog#C;&6xj9@W`^+JdAT07_wOv=ju7m zzRWp??P0B$;v7-Nx%(moj{e^+f99Lr!w3QHa?v|8=W;9N+fAOQ95^X!XZh|IHLf2E zR(cAna?XD@P2l_1JcmsJ&n1Q5X{xXUPUSl|Uo9|~ZF?otbAkOHVxr&e!@`A4-37&e z35s?J`Fk_v9a@-15`YPOg12+m|XINfvml6uo6nimt6O&98M?>_&u zjK6Wo*PX$p510O3RPL9oz^hnMv21buLRY_2#_J;lFS-locG;I3-$s;^SrxXS(EO16a!_czbGlfL@n_WD(_ z-ut!ofz-N3R_mTbt$S9r?!~NiuXe3_b8FqZs^;hlxsP3OFqd$!f*Qe ze^NR-ey+ES=oB&R)DY}is3FkSvZ455hf-ii&JoW=S2olxnaQ=WlgWGCu8Qc$gMOw5 zS433_1h2D*S6cQRyaP~X2&M9Zp!tsQ4~P4nI@z^k=b{^3lnR~Ed>w`Qja3bqUM zY40@aSS+w{5zoc-`i;B1zb)cRT&#L=;avAcY=w)24{l!4y*6@{V5j+fZ;ho^8@KQF zUVgVTekXT}Q{+yLz?E_vmperYO!_5wu6oavY{5-dc5jW=Xcz8PW?Zvomw?NEYh#zr z8CRqCEuXaJ+3bDYleWIPz3<)ceIKOvf3n{HC3^q2>is`v@Bg)X|DW6Y|NY+2Aaj7p z<^W5~0k)b0?hBdcU*zGqbD(<>d)-4Gh6!wZGW$yl)I@rOo&+3}*&`tFKwR?9L75Xw zyA=d<8ibZ!;M?>;Bc27#S=JVN)rAJqED$*_T$%aDgjkY9S?VTJ>TIRy`KGjeck z_^#K7-1A(Fg0*npO2<8mT)k4L#LvU6|bWj@Fum3W+~@i@EU5mv?H%oBOJE^?*XIH<=6 zv?~bB{vU9N-H@a2%?Xx+>?Q}9nH^8EPGn~(JgSy>lHtHfX2#==j>lYL1k7>->tY0| z)(9MN5Lm^)u(U^DXTXUcmyd`jp5*>`gembf$HD`OjHl!$vf4g8t#ObmZjaz{8-cYx z0wprM+>9qSow0v#K%g~1aM=Q(3jqTC2||%Mf^`W3sUOZhm?Lw~_b!8N2p10_i>idkzTf@Dcb~Bao>h5V%LMe*yb}GlGl<4scxL z6mewZn0S_V;RPAIl=nzJd+?dZ{j89 z#!IY%7Z^5hGCjN``oEE<^MW9It-!7TfdvZ$_-X|N-U?XO3W)FuiTxG)xJFQ6u7HxQ zK#I?$Uym=nZ4l7n6*SS6u+J58jTL&%Blto<$a}7!4DZ!1o6j=^9_9GREPRol{o?su zHUc`fSFIQF=7tD_pSi#>@v5Zbb>X){9yWr^1_CW>1pU_v{!0+J<8bYB@L6HOv-}57 zux;ed*A-yYWp6LIIo(${V#CeZz5?+d+*le}ITv0RJ9u+$u0XV{V0^5g$edG5AFned z@^N3h#mabFa^e-Xi&wj1?Za(vNlLu^QeJS$LZ_@CMt*Q`i1lY3~tQ z%E0h(t?)b@(HU<9FYgt26D#1L!?!p`@W1Q>wZz-+c^&$4l>}-YJe|$M&dB#yRy0*X z^n`)XtFsU8y?P+A@8O({cU3>1laYI*WcNrV?vYyEBaL~FwDvvHx%Wu#-y;LL$3}LK zP2wJ#)rs{5vdq>JkYBcfsgcF1Z+FE+k?iWn$D_mZmPyyG7L;w-=jQil$(CI0jgS51 z9t-XgU5f z{=N7g6)ssJWZw8f#&O3CzWukC>=97hD&iQmOzzdIsPH${#dDqur2iAt&f2vqZ~Hty zA$ub(#Sfd+4fkxFw{Lr#&`QUrItwGu|9-uiPwGzhn*`}M?Wf<&c=zUl-P3xAaj*CAFfjiWj-L1KgWUU1cJIH$y%%;l zr1nQ(;%ouUnEUDvk1-tJ=Tv0j+W25a%KL{^S6LiSALKn6R{krcw*Sp?4Wcqkwf{nm|zXC$}0{I34qW{+k%G!Urf9eCP z;wQF?pI9DVf&W~Mouoq4+0yHnaQu?oF{PEN3iFw@bbA|enfrZcz7vot-#+q zm$(=&Tj_sgI&ULbU@KmtF5B>!cj+;377@5lM?3i7=wJn^IELryNkhq?S)!uzkW zFT5sj@EY60&mA@bMZQAD_22*f`oh2Q3s2)G28Eka?~lxwdsFe?HVz%llJ{{ka()^_{J!4+n4<2 zOY=m#H8wIZIxKKt<6#riu?TqR)W$1o*CG-4$fZkEH}1%cz{hTVvbJ?Bl0i>ACaL<) zbD0_R)N2~}Xu{8nm}i;>`fWryn(#%yBG+CySFI_}&I!n0HOx5}c=1p^*Kvl9i6M}q z30bAX-b8FlJ*yWZRnpek|1f5jCH!c@+2Q&(wumS%NKrF*y<%@Gue{rwh>uCfdS%Zq zvG7;mUE=@M_Sl@r&uQo8+ScE@UA|nrF@WL09WRzIS=ZLa?r)Q=UiUwv!#H4FK}D!W z*3G@OkfRCvwn(0<>bz6oFMnjNeY;%juP;YVv&)@~%+@IDy0sE|G@<-j{vMXeyAOO7 zn!oFeqG0EN&rjdpKR!R+{`D_IRR#&wmgKfs{0x^>b}ZccR}6eKq0JimnK!f+X|T$l z;&S3Of3m@uzjRW;)>U>Y8(oC`T{bQjP=BT5Djwfr=qC9#s?be3|A?WxZ21$=(S$5U z9*XTMn>>{JU5q?cr>AW4RG;5se7|5;1|F1!-h65#xwzjnh+zc>~4KzI4G zmlQnImzwy9l?isVcFA2>F{Lc!<4KOjAB`T|9W4zS3^oiq9xI2)UrJW;)HEtxS|OK| zxMPNPSZ&p95!1g-(CBP@GQs0~BS)jhq_uZ4G`c(9Z1}b~N4n{lQr2Em zPU*%DMy}}{ZKh_irS(qJlrknqg(#W3v}W9Hw_(h@ofkMOT)9~OR@=fbiAT$n>d!DL z2(+J&<(SaMB-SC=DG;|ksoV8Z$wFt3TP&B`*cc^KT7LwbjO)E8!6DgR!N8f?81hUb zZnlCPhj_d4sn7*^Qolr(y0LRjTNtCKw(CWTY|%BvNy+Ql{zHc(r za#vstIjQmSXngzKMZMyyVirWG&8l5+OMI71gD=Z1Tjdm?N)7&QkL?;I8z#7)ENLxb zQ~1z!VWCCY>-Fz5zL&}Dy1VE>r^J)+v{ zcC47+rdD6I;Li5{Cx0ZAO-$lAul82^HOoCY`J?B!!1}d5%F1t|_Nq0lTII;nDDK$qBJyIw!Cnq(Yy^=PTLf7@lhZX#Sjx5;oftx$?q4U2D z6ZN%JdblpOsaq`xhA$Yi)2BWpGQPlE7bzFE)ikS zP>D2H&>FrpWn%9e4z9pSyc0T@m8_qfSbyZ>0mrhUSkW&j8m^HmQcPH6LXQZ&cH8L{ zmb7Hb+LlzE$46WvuU(q9{Ya`_=}zysZ6;by|MINsN7Bq5Z=a$RlA$OS!4WOd)RMR8f%4`{X;xP`l{y937?_zHBs_|k zTVs;ven0Zu`&_g1j0)rV|5-FVvr;6aZX8mo;mUAIwhY+I;jCyBkm1sNGGMaFQRVl6 z9w8=8Oo@No7s-EBb&cFKZCk|>O94kdd&gau9QnTJt8?;%F{n)bzav;dtf9j`a@S?; zHV-3)1!n?v4hJtX3SOeF*xTqA9J1_LvFkR=PA~CAvzLXL&i?Dz=RIYy=;eyztKwaw zYxTYetruF#lHi&hp*m^a^eyRY_zr5gt2_6snhSFXT&kFvm5@mT4pD!&b~fjOU9<@d!HviX9{JQ(qJ&>Ximo3Q_>fwUE8wU zH8(4Ccht3Q*S4;2&CN-*j=pv6+P3XSbMs1fN8kH)ZTtSC>5Pw+VjhT1R|;fyc($u4 zfcZj~lFdgnUxtZKyHe`Od3Mp=ha%^8-M8f|J7^tuG)60U_Nyz)olIA?c^Ij# zwtD1pL|fqdr<8rnol{*GtQM?VxLM^xY3COX+PlCrBvC#d$uGcs99SvhQGc ziGj0LjL6K~lwN7h`+-)^lky6e#4`l^|L8i+LQpAO<%Gn_jm||H6B;#_^a)u;91>e5 z;HTA+Ce-ZlH7{n%v7i0PTSPogxR?nj_B}bS8hPJ&$L$G1=YA>`%6ZlVPD<%`V5wX+ ztz)jIQR?i6ISQsS98K6!xzjpc=jg65vQ8=g(%jL~$UgC2=P#w%&fi@A)CfKG zJhGEFa(m3N>u)-a{65SS`AM3!D79+|AH(X)9oznI=RJ7mWuM~RZjXbE6CU6DoA*#& zGVY_C(Sh?1a}{5%^VqF^$+C<2z$4Xz7GBTJPWW?8`pJ*BPNs$Cxs3t&54K&A`>r?X z@jM$zWwmoZoC?-W_%ip8l6C&c6PiNrjXPLgFunZg@!&^MO4IK{JO}5yemO4Slbxf$ zpu%s(047Ncam{x~072 za@^vPXYthS|K1FHmQI0A31NqDZiXE8hP&lSx;K_vsr>Bo5M~Yf@7AUhJ7_7#p5>fJ4)E599JY$pJx?gF+?;ga7CHTNRcoZCKq`VI~*i^zsFN zd6Rmj6lawbM|IR8trVw@39F|4aMXU{^x(pp9UdHhCmA|_wCb50Uhw14v4R!V< zlDL*PaP>v#EX_J>71Fg(L9@SryVt|n`pe--1)2v0dS(iBF-3Op{5oeS+6tG5BS*UgR=;_`sVTzY9Ma);=4j%Sj(-W-(+gI2b!dN<=n&&v)fmCt z7QmderE;`&6aX5?Rc>9iH{SIqpF&ry!Io>02e51#qwi6A-KJFzx z&Zo7y%X*GiiyS|sU^lwOHApa-zxPM6=6@mXH&zDJR-WPPDh2=$LY% z^N8C2n~P6Kxabvob3Lo#?W^JG-{W!ek@S=f)7QpAo1!_VwDfB1S~%g&#EB`Kt`j%6 zX0*-vBR2KT#929QvrRbXJ~??W!*hP2=kJD-Q+^!pJm9J5d1`Wm*L99l3thNAGd1Kj zb8MK+;lFbKoCV^$vO5-qa4-~iOv>(D7Q*47CE9tzYYKyRyTHK?0q;(RgImsYY;ED# zq{6vdgkx7s$9A7iheKuz76yGBJ{=XO_BD6d3puRd;he?H;3>SlZNY{N%`W3lUJMNz zm6$tEuReWpa>t}M9r=NF3n>zGwbNnjdxW7iS z?Sp;$icJrFI9G-2=zk&69$>7Sw0V-}!tNV3eHpgjS~xBW8vgRK7A@+~f7E{IiFaf% zM~&uUYXK8(UElTzDpzDW%$WnvPCncE;M9Z$zs86QizLMMRqyXPaK3TIrnVV|pO_mY zMWz1paC$~_^s+E`M^9s}Ed-yRVx&&$b@!x6i?> z8k;r_-yQ|4NeMI8RBm=$+u^WxbDM@$Z^lKTt$sZfSLSfonzQb0-C))hAkntM>`)13 zKPvQhPZv zu8L-=cFxG=$ezoQca`&V4aWx&j%z;W{?A$v+FKCOnQ^6aLIiK_^{x{U6L;L`(Ad@c zwBvK7fA7^>W-Ds9jk&n{-5ML>Ab5mz<=6~8yuw^ z{~t-k)pG9EzLMT#KK;i-igDjyajI3~uwL3OeZ8Ll(~~+Z6dubx z;S9Uek;=l*d#FQnL9&%xM`jF%`~=1w6&;L?T9+dpKQc=0J8`)0hI4;FlERV>DzG)`ccvneH7`bqbVBTF}Nng;N;GdywRc`9AK z>h_7=Fge#XvyKK%dn$Ivb+(4~SBLe{a{9?np1uxno4$b8>xsZ?imzEGWoa;83Tfp~>NQYq zm72uxx=-N2_QJ%aldWOij-KGS-+#+0ra5w%8K)9C3aUGfpSfo9kt6IcM@<~Ziqa18S-0C8 z-nQ*{)30&ufAZOm8KQ6dw{bLya;%qqtG+O-Eg+)(Kv;-uM{es5o^u`M%<->E728+j z?l}5(>W|nyg^cbUncvR7d^As}#r56H$2@m`cid6yqO5W8GPfN7Fbq$a2)p&R0%+)8X)@%^_Oh(Sjq~ z0W%8r*t0Sm4COc!+QHD@!OLFApzxuyApgL!nAVOvX|aV1Br`e^-n07)UHQ#%^>@rB z2Q$Iv9m3Z+?(ufMW$Sz(%dtXET#8@#32)+_2Zg7fb$%7?__mfqgPlQhd52_u$NrdX zmFp9K*>?VZ%c*YLReY7>zjA&DlURrEsU;@-FPWYf>CY_qd*iuzyc$1S1GgUcdt0tW zUpaJ^7yEDeY=7QWux_q|*cWH_FD~I|Kc(Ii|6t$UfaKTe@|8Ux2zzG zL)}i@r~GNzqNK)xqZ2aHv{*{b>NrATIQ9HW9qYate|fe!;BkciipYEp^J^Ry(;j!P zNVXQ^unFU^*W-;ot{yYL!|7Rv^Sch0H2yBLvYe)r$sH>Xe(3b-E1PiWNxDwg!c%3J zoyyuZQWI-9L;ii6TlI8B*VE$rx>47(qEf!Q_jPQ~>Wt0P&glPM%Jgho5Jy!yhsC+_ zGhF5E5ziWquWhX7$gJZGH~&%Z^y7b<`MS!Mip$kMI=BDmKK`TU`j6h{Kl;A^=x6^q zLHy@L^`Dc>e@;#>sW$7m?e?=`PVuf6&!?4(Our`h<6g(RX+Hx#6>i?}b51{B+q=}B zj*QMaj=d=yi_ddZ-LCvDJgv8HUf;8f3-db6*c&E(`+42qrBZLli5iY+a@;p|pKar) z?of!DCEu|$yz|hyj{WZ{+ZfI@?fv!QLFW8*+za7CV= z@TxWA^71|omj2(@7QC7$aiM=_)~;vKyjMF|YXhqvXSKcfJzd~+>y4sLgV!mc99!!+ z6yyIKtH{1q$FWmR>0~;Gif{f5i_4s~(QO>JCfu(1-}@qa|Fez*aUBQM-dwKlwP0sB zx~_vmo%48I=cy3R6VHB6IgxWdjAPDqqnGM3EAu<=i~ZZJk=q>2aixsoYFgfz%-nN~ zoYUsNeX%B-%QdlmLT>Ac+O8Y9trz~a2VDDQ{--gOgY|yhS&MhA3>^^+Y(hF7A0`~M zW#bjn+L5{7P^*x-kju0VrDLs;MtmyC1Wk);6+z3HdLuU6b!jwQ8}ydzK(b?o zL@$qs_ry0Y6Ko>=Laz$P2F`ZxtOOrTxTos-r?;=a>pwWqB>w-Cl1Aqv{#k!jPAQ&9 zS3J}h@ii-(Q!LqV^2~B0gNXEm<*hl3`Gjx1TJE>-pIDLfn_s4HZfr`wye{{5S#GfP z!J~If3$G`)u{@R0iu7!zMS+IHGEyWzU_x{Bt`m z>c0E(>iXvV_y27F{P5l>#v^y7?%*-z+Q)hG!gC!LYl`wZ-W6mG4%)$!qQG#|$7OmA z;%LI4lZG8Zf9^iJ?@~WQCCOXmm`XxyhR%~SO4chg1iGykx(84|bKmL~#xg^n6euxR-6MTH^I?(5zD$gG{J|EI@Ry;RPR=Udi3BXw4# z+N{h~JJsS&da(FSel^um(a7WM3AK5ZuXd`>uYL4v+5AQ>D~*M%QdJt$<&<`<2)t|X zOJm7IFDuQZQ=>pf6K3twTt2tzm*$FvT~=Bvm(HrvTD5Z3F0IvTcm2{@v+q^{oY@{v^N~&vewynRH|BM(@Cw}I-Ad0&0fgNEE;&kNlGH6$;HE`yD8wR z?Qh*354(1UZ;|XZx?srMT6l$*HP%>f&&N~N`GHUUwlIZWxwKn<|KDHM6ZTfv83eG2 z7(RHrpHq9!hFOfCB^eJ3dfRNA$yY7f6!1#t3RAG%iG()K;0N3Xq(o-d82vx>Hge5% zo*QhUd_mWaebGChdAr8=+`6?rf=9dzjRSZX=FB#}=ql~|;vDx`V*%dvnQQukM0r#i zS>2;+O|O-y-kmDW?8taPq_NgF;6fzmXu_|%Ob!Pr>zlaUDm-nw{gljErK@+N&9AcF zt^NJC+^0%DFpbU&zTfLV{~<*X`c3?)i*^`W(_d)*lX9ueNrt;jXv&baJ=L zo=<13|J!`I=xuNN^=fpz?YEoR`)$A9t^RNO<6*bG-Os19>+OEMT)p4!_uJk7?f!f` zZEyeo@7LS)_WvSYI|MK^$j-56VAeRmD72x0%|?Mqc*Ox$xo*}!iHwh`g1X8?R%&KE zWDnTF&~U_XL$llxj#`yTEe{Kp)U#xAxbiuR^3Hl2BI?<9-6W&Fhul+Px>FgVI2j*MC4w5W>Otu(azYTb8KVYI+5)x-@mul!leJMTNMGwoUuDI_C1K zYg;#MU7Po}m8tsU%Ibz$;tRcwR51UX8NMV;dXdl(ZoT6EpiC>BQ5GdgVE zXCtZ~8+$(dt@A0M?3y7J>BkN)-mzD(9_NX*R+G* z=_RaNld{CXvdHqB$ma<@B1_nEGb&cjio5V<$|pV7vyvA#1>U(Mxcif#c!>&^C1aH^+_C;?(y1mL%eZ68hnYRDmwd0oF-MmvPqCdT5d7pac z!^~~FW+lDrSs=|2epZZO7Vnf&;iY%qFWa_E#yoDt6JG$*nFXPsopL3 z94#$RizmHno2{~%t#g~BSKfrFvs*5(6j~mYe`;aneDs8sdPhxjQ^A6SK6UTq9+&qv zC3V^SRS)dzhjK&FR4{X z`TK^#o_ne)8T#anFv%r045BAFu_Q+3Y@JJ>`J-f7a(7p6>%T zasBL!v1U>HkhzV$>F3tul>4g3I7F5mcy^R|!AE!gQ!hTQ%i4cnown|=Odp;5lWr%w zd~a3vI#C%vVdu6Z-z5d@e4o@#=?p&l>4ZARvU;cDirFkHnJX(C%Y6~#(@%d{;RtF z<$bWZWTBImNXsVO@_PgM?6g&$QSJ3En2o2{#@DJV;2hRha!E!EsL`|1JeVzGEV? z|Gng99E~#w5;S|rCl{O`Wy*fpwfle;E1iwThJ~Zm_uE z@I}zQK)}~$f}Q43*3=7ZjIJ_4Eo>VXN(Q#5|8@C)K*0SL5_aj2myey(dtctVZ zHDxd|jGG96G%V-aCGpzQWYUDQ=luSMSPh|)SmSC#{6vshGTEu69C zl0%9h1Ir~Bi6AxIBf6fhT3!>qTax@`61@`=9Zdo?C0q2oSgd7P^|!U?3mw%BaxoHf zF&1hON@6ja*&-{VY^-<0P|MZynUbC!i_!(W*E-Ab3IB1~TYT9%x;7YRF3uU)E$~u2r9Qayz^js|cj#$1sqRslm zPLIXGkHzuR5$8)T25l^^9m!D+i#<(Ld}CCM-BhgSbxQHIn6kPG`nm{dPE0nq=yc|> z!xKk_83AT`M>PH^xm{S|>*VSupPiNT-mi0?5M`?5trAu6r~i@ar2 zecwC`Vsen;RW9*4qMdnJHb9lZhuz*JRjkM*fG^eCBh|Yh)l;fVTgt^rFVO9aklTR= z{wYg@cd|tCxfr;q#Jy4p`SR4EVTt1p)qpokz5gs#Io1;8b;L#KsNts6?CXD&Wz(d$mydmfQ_d&KDBQKPbDfd|ywel$8(GXmZ^I-{g%!aPD^h(}x|kf?Hfi{tcu~)`!jor( z%Y^jc7aHydGMfJV_s~jZ)xO#4acoJ5&dLCRm;OIA+$>fGD`-sJ)lwtGGDYvGQ`<9_ z98K4lmEI+ps!R?=NvggU%Nv|nXY#dVG-Xcw)=_qCk>is|-ft#3URWw1$YNk9#xNnp z@aN({7A=Mll{xQNqJ&u8g|tHCv{L@Q?0MzNUH3AlvTebqminYNmpPhwMNiYN9bIxL zeNL5U_BNL+yDRxE7fnKgy@XgZ_*%>gF9#l3<=FGW$s)_=fkyPKmLiYzh#>d1buWVU zXe~`+;n7U9w|k;oaAaN9OQ#E~N)1>einIb}obbte<>B+vK_}bIB-_2`)y$U50TYBx zBwI86j@YDX`_IvK{h~ZE@4rjoKbGC!T!Ih1*mKEcm)Ps_SuV@$Sm$iIyqAl0E0e2n zoQB(%?5Rzw=N||Ta+nhIBs-^pga3%O`;ymfZmjE;UG_Wh!ZoGEtiow|QOnjYt&juH zPR!D5ShO;*XVKAr8Yje#o|JMqrnRPZ&%>Z6mlrM&?)t*QmT|Cd6=z@2iStsfax6M- zU*24}l(S~es!L|Mt93*iC8k{V(_QVLdo^zDYKt{&N;=od)?TmEz0tPzMxXA@X=`uJ z)4jE9?X7jXx3{gmy-)YfvD_sE^Y2`Hd*`mmG|?jwncjjmbN=1beZa>Sy3l)9V(6r! zZqcmoZXF8Ur?KwwH&&*19_a=LPBA=uY?b@u*njsGo=2Vq9;u3bcO@+^V9RYkmAeiX z!u@C5d%laMuW{X_u6Kc7Zk+z&B3N;H^V^nhJKtrt-3*#A^TG?g4{?6p8nZ4lFkJa@ zB#c%6&Y^Vy8>DW$aQ&o}e=92bw$G7mcU`}Dy}$WN`W^$r=S4A&CF{OTT6^?r>jP8P z7ZNNNd-Z=79rTYu$y-#tu@b87Z)FYP#N5zdYg?9H_?@}t)Ytcz! znd@}aCT^*L)+?7K$quVlw^ii?l)P~g$d;XM$mpw~_O#XJ*OBB;EfrE5XPhdm+~yMS z$pR%BPTEb`ZwY(L+$PRQNnzlNKO zhD%9MtJsm&YZ?09F5=aOsaZ?>TQnGMymEV`=sU;Q_e_qJ|M`htF3q!86trEH&VTS% z+2pxJb4gIE3-bYs)tUYhUmSza&rxbiGHBD5XPIx;YVfnjQ6e}fro?eULEr|H(1H?o z`+mdX76We<7uU%JJS?V?$2X*1c406HI+Eka^Kl~^YoKuJrhPAb7WePqV%_4bDVi><%l%l?f$T9?5?H?e<1qIwzEY|~_WvlRDjDgI`u;oDN< z|C^D6e?d5(>u%e&`!_^B9*y?XWx4+=*T=><*x+iyiEULEwq@Qv z_kgJ()K$(gB|lEYAc5g~E=ReW%Dde8ypR1{v+lDdaJm&QKVB^V{gr~j^qh5*Himic zi4D5okiC;dAj&+nCM?g>{9=H4wav{}NiJ_}&pFJ9b6YdJ{O-GHk}S_o9tc=d{wa{9 zqJ6#h67$M(zqko{zGw7b{cE|u?OouF2=5)+8W|6qTG(K)WPMOTMC;Ai_P~}`-&mUd zmmis79&kc0;EzO*%)yNBF7L`D{W~HZeIB^n@qO{J<&&q&TcMVk<1X)tEcSm`cb?(w z`)5a&6uSKL{eS1@u_OJb=QzHJbrjjTCE))2Mj3Yv%RYU-MZ7I#|6LbYPX~thm#3Q}u{Bqh+<~@ZWd-*Px2^Q`Qh^%9@rUk`{?d> z3+nfr=(jmJeb34HHm8>FIkn#A^!7cc_uHH~zUNGEi}(3I?rRP5PHZ^)-sXJx6pimT z7uaj}=op%MyL6_zh`c^38oubKY;7D@t@2z$&eS7P%P(YKFm<#rl5@0mFg3AZbE`8e z@|RJ${(7Q{ysN7I5!KVG_Om`~POo)dY4ks##p3Bp4}BIL?xW|Hy|{0rcIW)11ZD=q z<1W6+u9ijG{(`P1|7+PrYgHs$%7R$T_HQ=({{M*bi^kAm7DsuF$L}v%Ngr|YZ?Udc zcl1~h5Yggr{Kzx+tmmf#oHlRvHYtgXDRH}A`a1feyMN2vZ7lPi9ly(bK>uia?0vhx zB6e;pb&gNAtm0!|&37zlwZ_Nji^2EXJ-ok$)NBppssExb5Gmi9T+J$$WNVdQ&-1i2 z=*`z`2D6{mBA?dR3rm?L?XLIK+xAEO#rNy>|DNyv_ul^h_x=C>+dD7_SWHN8Y-Sf! z3)wLt(Yc*p(QS&w#3a{lal^DLJ0>Q(_scuBiC9ib@tmw4xGZGnq*U+e`iaM;SWZs! zC2%z1RI91~vqD#gZ%n(oYif4*`uKxwqSn)LA~&aBTo$@}T5k0A{BA3Oh$S74ysW-5 zE>7aEZfphcqY0nt$*6vqalk+>Utmw!jH1-j(+$(F)fgKd64id4CuTdVB=hoe!*a9V z4hd{m)+ZjHW;^?v>(wk}g`Qx@(S-Z=-ZgS@D`kt0_@a2Y=g=`@7AH=-xmBgFulMrJ zw^Y_YRv`4=%;u0(b>-*h7nhr_j7@wu;S9?$h7A$5wZFfAe9nIA-UFLPlNu{O`7SL1 z4<_y}-T?<$C71NsPutVM*Pt0SDNo_2)R}<8yq0U;9Bf*^{c>~ju@@JP2nYHY?%-#f zp{gn#8S+2ym}KS}!wvlX6)UIBII;QSars7`OR8eZfttq~`*L1b^tKiIpHN@e6LhLG z$;Y$lr&C7GvJ=bRTsp14bWPCGJxm$R$tBwO1~A8=eih>}&b<%4L5?-cZQV zgu#Knp;tpAbFW?vPwWl778!jtaRI}HthQ^hm2bbQ+wLl2YcQ$Ny>?^!tAq&=lTKJ( zyP2MOc){w_g=@b>fY+|JSM`9_u4=A|ZrYNuBBt*ct3%XeJH`a|);2+ndEJj#6YjOF zh~*Gy6=VFrATFEnS_yyKBnc0`wgTA>fmRhqt(zTpBr@;LD!8~JsYd_R^abV2?|xiq zl#PnePL?P-+%ZAz*o#N4zalbbH%e@Lk=mGKr*Xe2Oin|(HR|Jybf4|IF9iC{PJUb9 zIKgd}f?dL+M1|$tro;BP+l;?C!;f6rFTZst+XC~2A%sv*$gC$CXDJNVGDk2jz4L@7?-eAK#d7w4hB z3KLnob}w@O@BiZ_iZ(_d6IZL04mXl=PWeQEd{Lfd5OK7NLx^F|=*R}LYc+PQnR56jc?nzSe?U{}qKiqx) zdGa-LoK#%A$)n$7lS+m`hp`EpV6Yg=RH2v2&OI3uw&YHlrpa~P(~Geo`V>pH$HZA~ zdOIgXh&_pW^g_zDtI}uUla15Ph6szSX4Xmfn>>rx^O)lS!!wJgFlwIoaYB2wq+fPy z@SLY6=~WJqYp%_mJojzMbL)qa{*~t@&-=RNxvjkrL+!iC^M8vRuxFII(C}#T0@k%& z_JXVY8}&pMu$8`Wo;fL?#c0YxfvqoG+m$ZX1(ht6`1-=VbWvbkQOE)X)0dvfN#;0eRF4B$=cXq7ggos zzC&fg$t^4^7=Jtu=+3$_lgnXcZ0WUTw<(j1)-G8UuDU90`>W8czfSoF-+ay>ae##{ zMS+!3;y~=#s1QG$2SUybnnBm4A|khjYW?P6X5pG}gUMw9FY|^~0qhevW$u(R$VoUx zvCh63E_hA(=)n_{I3~$-yfEfcVmMfIrh!X1HtZFWm@C74nIhY|1vzo4tM0RY`MzIt+msnjER!~fEpgGP%+?4HZ0A=oW3On< z2}{&U z28KFbUaofbmL8tY_70XOPafI1bMx*!TTh)jdiCo0_Kv2*hxc8$aO(E$E5RYYVPOFY zi7`tb>gpIMmCVr0=+Jof?4h-rvbK(zp}C@WoQkKHi-wkBNT{EMlTzM9jke8NOYZCT z_jgX6+W+|Ry=BW6e)#YzIy%(a+Ehzht+*sNG)FBrFT*QV)yPuG-bYzoL$RCN|tZz^kAzTi-y-!O)W^TWF{v?gsWtu5X>JtuW_w3PLcw4t)o7S|`+HDuo=Fw)p&6+TI%G7DoXUv>6d(PZ>^A{{!w0OzVWy@ErT(x@5+I8zUY}~YY z%hqk%ckJA?d(Yl|`wtvEboj{8W5-XNJazia*>mSFT)cGo%GGPvZ`{0f`_A2a_a8ib z^!UlsXU|`}eD(Ux+js9jeEjtJ%hzw;fBgLQ`_JEh{~4IM&<;%!Q1+VRv2oGSZVBTo zyoV-jUUqi2Me!@lLz7}pZ9zLU>F%kmtFNz5Ksq!j_Vl*3x3?Gke|&1L_x5#ncUOFV zb@%l4_4lEtCT)0lxIeK@tK-h@ z+WPwXhUC-pe0OhqdwWOm>w9N+Z-0OPKr{5zq!W|1CY|56_xJY?k5A9{-@orKUx z(t~CJH;soa&_k0}JZzIGd-1Sc0di1=!PsN3L}#^WByp-InHJnpmk z_Tq8B1DocP2`*xpPbPY(t$gx-l8@QTCzAu*G@nih3CnysH6m^0(`hkfFP~0NXw!T) zBV`)o)TC##a<;vEHoM>$XQqv{f&c%_)2Ja`}Qbtye3SOv`$;a>cS$uU4(u_UhH@4ac-zui0`f>-E|l z&sM!&w+H*7NpCh^aMON^d}vbH>$lqL?c7Hgg{eI7v zYuWGj{&=?f{k}inUccYZz^?P*0E>9ehl3pIYd##}F@N*nuz7>T;HJ?uDY=86Vw83$m&u2`o=X^eE@qEqab2i`Kd_M2M zuKVSJi+JvriyrE0zg+S$fBWTffV=M3DzU#~`_ul;&0ru^;K>j~|;-)^K#&;52Y zWBJ-|w{o_>{dT+HxbF8mCD(Jm->rDQ_WQk>?{B}~Z(!H^@t{RK@5jRq^>sfU^_ai= z@pyu}-p?mf!t;JUosquo=d(HG?|wdC(60CE#ggfHzh16bzV6qnHQV3)dcEPe-tRYC zuIK%JyW{z~-|zN(fA{P8;rV~R-bi2n z_uHNF_kX`XXxIPu|HqT*`Tu^tSib(>FG@~LTEJ$0;viquhh_zyg&gi4hlFN*XwmRl z$Q6F#kl3ydtp+^{dD1-&OWpd=W^raAU-^l{a=$*bJMb(LX!kgxB=xbw!)KAu^b<$a ztUh)I^ehrt?r~Hr>SI^LnMGpTPaM^&`q-VovsmJ|$1$T>AA2%<7E4_}am;Mj$KHaT z#WK%5j$7UO*jI68vE26)$L)T7>~G*%qQLHX!b$4Wgbtr2O5!I^xLJLgIH6~Win`}X zuc%LxW}I1~W`6RdU)87olNazT)o}Mb6*TM9lodWpwZc!H3fuK*>V}@BI_aLLqi%hg zw&ToFz4DW%<9>abet>70LA&RfB&p9cPWUV{ntt+3n$_o-7kZYNEcZN{74>=6jWf&4 zwx2wkSM_=J1D@p;$34##&H6m&h0k)U>nG2Z?fN|TL(g)X=bq=QZhfBj)iyVr##sV@sSd{;P$pSsXy^<|+z?+O=nuZvw#UlvK6UEyYa>SABjm&FRa zD?Qx3E=`*CWr>FGO0V!!m!|Fdveck=rBAxoWJfB*EY@i zx+cSSb=37!*S78Yy0)Nqb$`4!T~~2-b=>z;*Z2MUy1s#TO#-|3jYCr3Hgx!| zNfJMOXl|^-+etRh?OCNL6A$Zfia_;K_tR~gUuoS zky$vyI+ue&EEn&+h&sT?qR_x(q0q>9H&7M3k`e?4GdBa2O7Jpz05R}7&toCu}e7I=XP+|!>FL2KVSMT>xJq2BorDr+<0O< zj3jub2{bG8EMRs{na&`(<0FHSLxbQ4i-Y%7Qw1LwbeNuK6mU0dn8feU!1AGDdtV5X zdQku~gG0mKhgU!K?tJr9V!PO>K)G1sfx}WFr#2n^*%{d`o zlEmKTz*ztK&vUc=JC84SImo*}p~Hyb0MDP&^(EWaFt~HiI*{{3r9N{)T^?#0)y z?;-8A4ecTUzRD?JQDLgd#|{aK3_Ub}W-_Ux$+jy8!&u~i2T96h?< zJ3GCmwmfmtgr45^-oB2A$RKMQGut3vGjqe&ub;GDxpMO4k;s`gWv@#A3@hvLO*}fyy zz)Y`l-=3Dsmu>8{;}finY)rj<+yY7pjO;9%ntd!hoEuJ`^7ZpLf1%*S$=sN(cKgtP zY11bwG>gMj4k(un85R^al!+_~zJmi+#G-Or!R;SIGRHI)k%MCGqp<=}0T z-I00taMthNEiQo$Q3VlGr-c?x)6lmtu3cE0SQ%ftsP^-h#-LRH^mg^DSBpKuT`j%c z3X5Dyr11kSYi{dd zxp{MP^Qxw;Ta%}p)P|h@*|4;scOUeG&-(f**pZ$O4#;!V`xtOMaAOh{m0-Ft;R8E+ zC%APgnB36MYR~pU>G^vyk|}o&7<`WC)V}Mcsdr%# zgNWhgmYe76>reF?lr&6gU|DyKr8>tYB%o9@7wbnxVMyrRof^Z5rSs zJ)h655c;~vO~c_BL+|^!KUGzkJQ$d{6kHrGa2QRP!f!FbiR+2d5(&u$PUnN9ZSjDap>xhgCN|@Pt*w$0JcpVXqD%gJKJ3lE^lSd?B?~3hJMt#od^VlsqDkVs zBVyTaHl9$+el$XG)|Alf~2!6B$-0~24m zN@B2G_XA;;GmJ~z9F7Tk7+%ki;7DK)@|p3U+k~OuBtuD>p-u0WOVg%#ZrCpq^+Nkm zz;i9rYmnCI?PaEpk}e7doY-c*zIWr!%ERr>qEZ?%@a@rx=ZBMqD$^Tt5Iei_Zb?QHx`$z*9 z6OYow7fBQKmdQCEQ4ZkYUUJZblk32_K#4y(PTpmO%oi9r<_mMYf8^F6JLe#;p%4S- zGg0vcivE??tS3LblwuOws8TK5bL-PQcUzvi_u$6qZt;D59F7d$H#}~r>=0C}NJw?m zILI9#w65@Dzn-{21M7oQV zor>I!kqA;?5G+V(y>PjMyUjqrZG(cUZnb3gqh-yr-mYn{XLb;ld9Z(;>4%Dw){od` ziyc!hn^1o_dd?%Qjva}KAHl8D&?Q@SQl4?iGA@?mUeqMQp~9WHA;taEMgAHAXH(7y z2hJrQj&a>gNM-Kq5NtbPtgM&oe9e2&0h2F^4ox`|T3TX6e(pE{Zk(F*T-!Hcs)@(b z84)XlZe(3??@@4M@SD&eAQrHr?@7P>%@fPa>|gF-sBmCNZfLML9@)N5b!pbOEh~K2 zW`&==b#2$Tts8oEyPFJpZ~Z^TCZ2I3H&1cRw0vbMvDez0}$#lyKh?6?9vG6~O zgX)=R1{0Zb<-`ZBRu+%ASVWXGTLsz-;u;xT6}D!+&p1}U^YjC@%_nw0Sej7N>vWIl zkCMRfN^9pe9|AC(+`^F$**P z7Jh+yoZ?Fl<cKw(pVOB#U z#zPyry;&HKyxMEbAfhX%>K)+1q{z-x#dx|=V6n(jhm%vR&A5FgH>EQ)91Q#`_DVx| z$>pU#Oq|!qq`wwv5}Uzs_~)z!&Zsj==L)8oEX}Xnvi{et!UJOKr?>CDQC9MJ_X)Rl z6Aq!4M1^Xp=Re*Vuq;Yzobh<~ZG%<@&Vs(=`s;GnPdK$q@O}5b=&^b+pBUqd)9);L z*x2?jV65f+*wZL+ldnl*y{J92nF@E`I7( zo+WWG;h1-O>uSEf7xQ$sD#UgAmK?X*eTRKR`!?31l9cM|TMR4A%s1>UvDnW1l6?kS z&W60alIi9rUj5r%c~^IW?+kPPN{#nwZ|>eRI};sXAX;6?ESDjCc<%#+k8TF{w&~q? z!Nhpx0;|!xK;E<*Nro98*qGiu#MuVkgV7fNc?@KwpB+^apaUem<^=bDZ^V--`q3Zwz)Q_HNHi zmb$;U&EZJnn{1EAw=OL++r(JFn=`pcVVQ&3$Nh=@@8=~eT;r(!|6_mSo3e_%3<>i& z84b?-;}T!Mt;~5?!$yX?vEY#8eh=Sv?gt$nC5mrZ8@Ro%=rbRzlXzAat58s8t~=?n zeyc!o!8V~I7kCajr0x~qX@Abg@qpV-g-6>=NLGPU!CinQjEiMqql|@s+=-;yX{oox z6iuFUuMFf6nGt9x&i9Co!SMk1!GtEBk9-^pxXg?icweZRhx%WCthh(C#%D)_!3EVX z0<{bbwa*L$o+`9jmzA<_;7xH82%cVgZDH%v0|Jf>eD_0JH5oYz3wX|L;9?16Zg3NL zxvb7em@6-w;dp`Z%7C~g0j>|1>|N91${fTm2E=jx2*`I4FN=t)T+#6Le`!3+VLpxz zTm{$4nG7qhnhF?fOWo4I@Q@*EMgxNxTl#_qh9?U;4<6v2uP!k6N9U||hQ%3rdJ&x~ z1-teHsC{o>xTz{&=+5WxxqNq;z>Nlm3m1|*DtZLBc)L2M_}=KL6=l0`!24nY@7)dj z_gndx65H4lc$pWr25e70@hy$Du$5hb@7l&>MRNgzf|3Atp{)n`6DDa|atnAc%+=s|wkYX>fTB7luhz~J7{K}SSl;e}{&@HFl@qz2 zKILGylv;5huW|zSvIX^TQ)LSS;`l6uTTkSPNHWx%tY@D&ae{@CEGL(|rNCE#7FI#N zXtowz@mUS(4h9E!&K69V7s(;WG;7h#0xS1!>zPsqZm3T3=-ku6Aj@FFUy;goaq`!K z@-JWfy|?=BX|E2+oO(ht^g=rSodUi`3tFQ&8Sbg|F)&O^`WgGwq3=k zZ}8UrpCOdkz>%*k5I2E)jR9Bxgv5%@x++eF{Ri4tPMBHzkoA~C{xelBch!uNi8FX5 zb$UJHMJ(sDDsZfvP?Yn%qxOm7BsX5WB{S!E3ar!=*x3;~dBQ>|t(K`bxV7CFbYAk+ z7cZ2GS|p>@&3dem$#6D{V&*nZ2E*yIjX4_G7<-(SdGDRJcz?U?7L$^bKNqJw%{`?q zaH%1e$+7Rgx%dnKRRz>zl{2 zg0_jwi3?UtSl<3~e%H&OBT)>;el<B+UK6_3eo28@kK_C2fRFq-Kjxc^KW(Ux5yN_7;m>@V$bI(Os7p2cdcUM4trw3 zlcC6)AvyO`!?YI(eAhfy3yN`Vu3|W?CcvMacj*G(DlLI!4bv_w@Tqujia8~GD2n-4 zCeMTmn{;P$rru(!p1_$A$o&3)1jB>}Yvj`O^1NC$EZOw*=q5dG&Y1;kT`Y81K5*G; zXdhAF6txhLtEw=(p}M)C`dQH=xmi;RO|~vi+xl!#BjLybb7^yYaQc`O^6IXJ$b8w{86z%eo?`_-?yY5_^_<LE2qlTrBFY;&Z^?-G*r%ET@7M>ivGliYu_yMjr-#At$%&@i=U(mg4vEipbfVs&BJZzwBDBC^JhX=g^i8o_7Jf zyy2Q!$BQI1IQ7L94b6*9r_biuI5S7O#J)Y;R(#)Im8q^V`@C!d3>^3`Etn=badpNI zpGDg6#U2MjLED6KLIaV9kiceJi3F`d6=SYuC*!2Rw$C|vtzj=2& ztb5)n{W&!*V~)^kC!TvB7CruWT*k1+@y>~5J;|p#r?GF~4~mkmSC}Z+DSe#bbauIO z@j|XW4-P$4JS8Q_^6tazS< zrO%2xs7u^&ytK;jn8Mr3UWJ!E4KG^D#>maxF16NQGFRQ{Z-9U9MXR}&#grL(69xJO zB_{_;au-N8Y?7R-$S{AR*aL2h!oB3BA~FEc#8#=`B9 zBWrLd^15PKyvXBgF1)hUy4UMsFNM98KARy@ayHew_X=J<;m9m#yVSnjUD&Dd3kD{tI-c+WZF{*qVjn=egyefP?l zxmP^)Uj9;h@5NfF2Y>JWJln9-_P*zx(e>X*py!dsL?ul}r^Dx(HD?*I%wb~KmwRpXC9U)=tR{9(7v8eD zr<-WC?rG7w<6E~Z?k|2WdS-7`+!MEduX5y`#PU52d3Qe`(stv&z4`C37tCk8rlIAqO zHuv$X*85UwuKvyCnLMv9^Lm@jyIxSfy@=a%bIGmaqI1^CJ^W(w;lQ)a|K(ie?3HeK z-Mh(qkDq_)`jSs<_p2G-2i4T|2;cwo?Z3(P3w4X9vOP0B{~^=%fxx}T1(QAt<~=we z@%f7KM~{vkw};OqHyifdox-YUq>^l;vDirGv60N7!lHur@1+>*oCT^F807jsTx5P{ z#lLF(T-&B2Pg&o)&(~Y^FfMpr?GdBWyJuAlCK_Ka)PI(e@6R0n{qVYHZ2gOCbxXwT zKXLYd(>ec5+%IMRzVG?}g;&@9Xqj)py89VxvPX6OC%3sjCb#@_?)l=I^0RjR=U0bs znQnX-^Vn2^F{I4LEUnorD_A(^u~~S&o*Dx~=R7SY1&c+@3|CdYiR%As%71&q_ow8Q z$4lfkOnv|T-;-~R{BO>m{llmKO(6e=n~wM7{jc=or+WN9@#ekltA743of_tI$pzYq2|IL^H~m4D*Uy+1AUzB4d7JaA}Y<&|@p zQIH_Us3*d7LcsArOEZhkHh}(sdxWhwJ-R( z&a9^@E9>&!)X(2e&o;}v#3QSgvcTzpLW`+kmdlHZ1@ja?vK)(;&=$zas{Od_;r0%( z!dWa<4KpGpFK1+Q$TkxQ5Xt(md+qD4tFqz03QkS>`@R0m=1Yr&&+WVZ>{f^URj!h= zW=md3>zZ#^bSht)-TL-gT~79DuKj0>ws0HpNOtEqGfWTqaD?CU3-96UHdh38Fm_sZ zJD$?obH?;q(v`wvMN1it9Kt-*wZ%jeEFRHZU|S=t=5lY4_4XWC@s4A^6^_@dyP+V>$8Xi@LgT>;rwy7UV%%Jk!J!;T+)><1vvWm26?dL z-}!t|&bKt=!o!5#t5?P5hio|>mHM|h>}80r=~YdBE@f6mmkFMyL&J*`I~pYt74-_l zF1iOXl?W)bHeLzVI%oN~I$)j8ZytfmVd5s=VvnkE6krW?jAq#6;haA6(@S>wBo*I;MxiA)t}SAz zom8w~by(K?@wNZUa9CoKJMM{~}-J@1+(2pr(#Y>7~4TYKoSy7c{e z`CCr>EE3F2kNej@UTo1UwaV{+fA`vr`y$=UtL$tKe+;>DO7&;)Yi%*x94GfD2Jvh3 zQ?LGd?Rn;($IHeZUiU*zOXT8i)V=*vqjHtM@}Kf<_Jk~*W%iv1*VeV)n%@x6s?B(@ zt0ph`{x=KNga3WkCvr2#zbG-a`ag}Qn}Ovg%PSWPr!EPWvQ4LD9H$&;Vox|&x;xs1 zCspF`j0g^HWtl|QzD;|+H)Pvoc1JuBC^_Jw`5{s8i~O^D>C%5}Csa>omVWfD)xmb= z`ob5pWdyrtI84)=(B!Fd|NgaO_P;OYH!#P{|K77gg{v(v&o}1rx=RrU`i@=<-OrS~ zHe<32`>lyxHO7zR_HRGtP$uY=!6VO}d`)2b+<=MwPZEUhhHZ1v63m_;lXOx`a`&lR zfyvH)R8&-N?pW)&vFEY!Z86PEgTB&J$+NF0>*z~*aRhzpReG(WC)#-|Rw-!O9vfAy z%uIncn+Cz28H|~Jg=dsfQf9!8^t|+6XvWneX=Yn@p7sA1H0{ovXXXbj{feetp0iox zzS-sgmNK!2oJ#`Tt-Cig7hk(P@B5MTRc%Lu{KljX1_5Yr}g?v{Qu)Ah7c+CuG zGrO{oU-YS+qE%qmv*2#gUJW z`lMO~&$@PHnfcL7ztUa7^S)hKZqJ$(&}tR3NbKqgch{_-sk=g!nO$A!-Pd^lq%<) z<{jI{ZSrO7`aqoyvtP5i)7uWMKX|J-{^A3k=@*?O{?AC@G-(MuywR0Y_~n5ds} zC^RGq@!nPO+$p*5$l8!Cl~Xh9{i`=-tt*=~MQMeeEtg~CEE5s-18eP0TI|vjIk27e z1oQU;LCp6rJ(#)jNA3o#kGGi?C`K4OXthoO4Sq6p>1nqZw0z`Z(P)}#Qsr*CX7+^( zSr_In5nZ4s|MFHz*5&@kM?}rEIlaF*O-{Kv=Y7uC?{_EMGuyuH%KMC}=!SR~C80yL zT!q{TcM_GZZ$G%nS>@k@=;zC_gbq3!D_LC~%QtD!?mwz$b($1;+NOn1-pafDm>2iC zUtGbns$|zzMt6JvT4jDLYO;QB^d1Lk=_~u$FXUbekeSZ7pE05@@V`NG=F106J$?s8 zmkE~4WMt;;7oRQn?VVGnb1$#*mVMTJOS-E6_!yLzoVnQZzNfv$Kw$p&eU@>XWdeV% zGIkG!jH)&YfJRl>e{OUtV`8ZEXqF3+Ghv){fu%{O>f(HzO^zHBSiQn`UFuz2d|Y?7rbxeui@HJnsP+|Vqpcd)a?MzWC;G}Jm#AZf}X5vGOf zrrvdFi2N~2gsqWrk-f#66zL^5mRfvs+;B#>@yZg;)&;C;K6~FZn(XGBv4Ay|+o>Vu zdlSRVS>6tJ4{59a)GfTyTqww><)W5l)cTz*ht+Xrp2)Im)2;fF)Bf-Hw$+B$vY*xd z&V*aGdw*Z#?&IEHswSN0rMNZs?mC}<44HNNt}Hs!^Kn_4^{&R~NsFDOSU3+Ec-Zw8 zKPZ!6;@skJrtx;}j77ItERLTj% z7QIQ=I+lxziy1uF=CI;lv{X#3!WuCTy_(zXQOpdWk=?--ph-YoBe6rSQoF7!hCzi|LU_c z1rr#{lJ7iV|7{a?zI*@sAGh^S9DUgQ>cNTUL9cE59(XPM{^Q*9$M4@y^?cwR{M5<5 z!8S*4!u!cF&-K|I&g^vj{E>T!>;wA)CU#6EKja%;%;+(>H2L4{rRlqNK z-rL4G<(ua6#0PAdKTL9Gu-)0k)+oR}X*XNu49n@wmXnwpvKLq`k>m(g*y;Xa}`$a7tFPOM>7*;Yf_%XP-+-TMF*v<5# zIaS&1zL8tXm$mi+9AUSaIbyaMNVKwcvo=0pN&nHh=JwHNkG5B9x9}TtBxSTEY}gdH z!&#0uFyUHI=V&-f_<9jyF#n zeITQ1G-U#dM(C~++aGqV*f?vg=E+lCvhPpIb6)h=_jA@f9iEA6rcXX2!#-=r+%@~Y zypo9!Tw<|WZH+QV)dLrX8!p8X9Ys4%$ye`ZzR?z-(ebr=|EwRUigxUr#lci^KzD5q zw?{{FazR_DLWh*b?#2`LT5CE37!EL5v^557VA{ak*ui%Hk}JaxR<6~ZjH_Eyy?qKr zIF8LZcHirO*$T$IVgpBk(^;4IG!^VlNMdKHXl-6_P*a41|Fuz+Lql5#zmEfhkTget z14Gdb&L9r9I0=rcIUY>~zBgpH{ckkkxc;Q|lR!tcL&JF^u5-%lO&kYfCwt^LFl1O5 z6&_kt^YTQ5p=8(N8LwCt{Yl&&{b`PEsxsfOiSE z%opFL1~!%hZA}~Yd~9leq0(lk$`&+(wOEAXf0V?=xieZ`$aEOAvKi@KHa@%QzDsaZ z04oavYu?Gr)ekt&32zT_V33@0!mPIaWskAd6Y-)#Ro!Aw%}*llj(DCCT%^Cm|6j;? zZmsiNi_RM+FDQvR@5w9rokhk%#pPkQ9k0~BYDX9Cv+FgR=6&W-b1+&mS!Lhb;w!~m zt+^}q=L&Gl{cYTsv6Fd5z=zpv1uWMVI2>i(uyYnigQrbHk-&k~9L=oVZC)#^p51B{ zHMQ~#mfEPz;65QpD|W-I3I`d{j#Z~wzIq(vU|}d#?I>eqQ2DBxY+=ge(7NPwbBqCN z!58}zJ%_cgUT$8|-lfB#Eu-I6vZqz_U{gX{n!uidfaCug10ve?TBmtPJz#N+eLU@g z%-JU{4VkPBMQbi6DmU1yZJ*+~#55*ET-aqskL~r>Q@z*n{7*5TnR?21?c!5a=67G) zd7nDBWuwyEyMlgeb#G)TyC>e%aXMoC=jNLf>1JaAw>LMVc`wA6F8AHSo@c>c_`@rn zm0|AYfW)_6leF1+MBAG@uFZ-4?{Zd#-eEe?Qt@>yM~abq0n7a+7OgK#$sTU^g;*ump4JN0 z_qvseRW%U=CfwW#6HiHO`tWzHz0Cw}g(x15bmnoK!mayn#- zV5pC%d=&4IxwRo*m&&j7lz(0-zj&_a1kOoQ=iXZKR{lrpsqk0ob62}GPGFlQ%)t}t z+Nf|k>F8R84X2o2uuXKm&3kk$pK3$6O+)DfcEuJIvAsJPjav!@4yj0U9Jv~J|5af3 zkH7~)K|*>#BJ-}_=VG<~pzHXzHIN>;NaSD*T=ie#ZTYn)Q35?FHGb49xwSH zV{~dotjp$`qO6kV7hR3KxYO_B*WQ5I^G4IATjyQ*vNCzHNU~kp$+xclzvfDn3r`L6 zw6(AcWz=1ss{6oSB*DXup(Mg4IHG;i-}SzG>>C-5ZYr6)dCfL&9(xYc$jBu}a~oN> zWmrXZpVo&O39>OnthheQXpPFmR_XuEf@=*|otKZynB~x8#PFMS8D%Zg2>QaYQ_8$gtX*0t$cTc!&w2NR}blFa6(H^Py zOVWF;-T!p+ynNJ)|7Sg~hHv$}uy1N_p67zzQ}g+zCGzf{Se&_mwPAhC&Z&JDSf>Uu z6}($8*`8sY{cq!UEgY{RG#u`CH80WAEB?Cnh-w3ik5%#u9|ni~XP2I?`Sv8eqjx;IH;%0;Pb#HD}Ys{rZp=gDM0)9?#Z!o zaUa;Ox3c$tn7#O5+5)x!hSmp+3`!7^a5Q?u-_@2UZa)0-HR(xT~aGIBhG?k(|)F zq`D>a!}XMR`OO?m`5KYWwpg=#U@N+@J5ihEUD2Mjiq_qJvox+eYmWHZT3QqIeqQnezWgUrJ*5fZy7v4nb^cwHKFZW zb%$Ts>5Cd$oSBz1zHSQfVD%{N4gJvMQ<2jW@ZAqW{NuOXfddJFtZ@fQCwNu2axj&9M9ymYePVh|&!vw$msg)YzQmVjSFXhEllH5Q zhVR(*{m(`9TCvGhvkukxG%;rWXv^Nwmf!I5lD<~OgmVhF^KKsh`~Qyp@>SRW-uwRd zKKs81;{P71|9fQq@3H&8C*l8|rvH0Z{_lDFzZcX0yHbvBG3zxW2PJ{u2OS_PI(3*^oO2>Mn%!}T<_^5nhf|C0roy<=vr>1Cy zZ_24O=x$(**x;aeLcxWP(Ta70Mbd;rKH^NPVtT%-vhhq;Rb*p0dF4UyQkKPDvL0Kt zuC0mMUi9|WSM3`cl8#T(tv2Ll5NChMQSso&aY9E!WJdau=rhU7jyxs*eNF7g*%nkW)``yx<+!z6 zA)nXkhe8YZNYDR2r-c=M7v27lnJK^_piq|~ptYW-GoZ zbDM5o8?nDMGV`yPGzS9&ce#Phn>B@GxZh&(CLJ$Q;Gn9xY?h z{lZwgnK8sGfSF-SHY>xrE_PjprA!|@vm^eUR#?X&e`mv`J$kVp)&$tc8eRHXSY zmOeb&{pZJ%>)HFjM|$pco722wCKnSA(}5Q)M$4CfV|{7pVl(^b28aJrJyRAOc=OeZedx-qQ4-vg2P~4j*otWtH1$Sjzz6Z z>jD&bGQ{|#GPF3pt*#R0S#TmjS^AZwU)SzicR4n%II3H8F+x?uLjttq^be1{0=KX0 zvByn{JS~Dc2NWHX%r?uZ>G3k{V00|Hv@VtN2qS~S9S4~cF6}S!{Y8#Ea9Z|5yES)% zy=+drxU%L+&!9<0`9>aME+wrWHwHwNH>#*}E@%>Yq0PHwid_8@x9u)$7d-v{OK@aH$I0cCm?pf#zxICqwPTkmFaDb|)>sEL*1Nc0S;6T&>ZCOe;aSkW{k z*fsBIz_QpabA@Ub1uvc+d_?im;;_A1VVieN$jnQrRk?IRe{!0Tg;j!IaYd z;Z)ZOl40+ z_3ig<(QjauIU8_c0mH-<`qj5@$FuJ5o%%?&v)=u80%P!wLw9dGGs+~IPrPG(P(}j^sq3cnI(&=6a4xTzk<|c_pk{7rf zq`4Rv^p7wyM9Q^_-_T6ym{fKyls8}T_DTcKr_)!)O-h*Gt@G4T_*O)%27}hRIZt)j zm!D?+vB|-#aDwlgo2M8StasRS=h0HHh*d?l>y5t7(RTZHv$Dc$*7CPeFG4p<`Sxlw zC>&alp<8_Obb^d4V}<~C2Wa79LgK8=ciJ3um_?`FFj+Gr{Gz}1?2{r-H^*>WUUgQw z93SwfVD;v;Z~xy+@epAxV0*yQlp1Az>l%ZH>oiuuE?!lg8;cl>B$(B%eb$?_Kcq!! zWnkwkt!uYC#g}~B#;o_@b`FO)gTawq(@pc-gb!StaIQ&l(-|(82TB~roj1=8EZkFh zTkFEsB%>A5HXD{kRWGaESN?d(-#v|+_dJ~tD9`wUn|ldU!o#g~UmOA^rkXM<@b5G@ z8lv--RXnu%yvQE2ZPK1ue(tL0=eb!P4$&)`9=!L}tgU`JTn1dh0(+lz@3UOO`iM2T zr}FutjMWZJd%0)X-|kF|eZR-~+nKNBVuqy3)7ri|4uKg7h*L-p;ID@5?u*G+Dg}^?h{7c>hm6 zOE<;~69jVK)Ck8p96qP$+hF!aQP_aPfj4Vnsz-$CCzt%{57TAKcY43Q={e1O|8lvn zlbHX1I=A2cpL9^OjmQB$E=Qa5y-pi4=PSyzC@@?~h`4oY?)@iA<5%6B|L5e*Cl6)6 z+9bGKoy+3pcj>7-d)Whr6XMHMS=5(EGF&(yZxPca!>lcGM0t(VQqChxY<#~=C;oCw zFi2EjV~S^Mn{_fUE=G4gJKMthna+(zC7o~lKd7oABfONU_h^%u1AkaW%;v_J;FaN3 ze}$gA3Qpuy6z`L3%Z&JVb3wRA;)jpNKISHhFH5|7uwhN9l+?as@BdEE)40U8YN71C zhuMsZa_mN;iD4wqTtp`qez@Whd)i6O>8I_xM*&qb#-jgmP*;SNvk zy*R@EqJeME0p<-8gQjpf#T{{-G|?$T#hppTN9c&CP5{faBR-QDTrE_>@1!_?JK^%- ziDN_~!y1pUH7UsqOPA>!U=mpBu%^*`D~nfNOW-k;P@^N&HVk|V=GJP6G|ynKQemlJ zWT-j8?(~HrENiKQNn`jqKF2#e231Z@Ck}APFv{*xnz8k2#G%^`YaDq(9A$M{BGXbG z4>+)kEK3x7mO6($ny)1~iy=nKC1Fu&^#O(n83$5=Tq5?V+Rys$z_jCR!XXEpz=J7X z&r*IRInHp8m2ye5TIRGyHDR8rBL}~?9!u7(R56uSUJ>S~D~{XoEz%l-DKFFo?S=308yI`tZ}6@GIVYSwi-{JGL{uc77@ORdxqo&%5l z5*mv*TDE4a@bft6@W#RO=VC{P6-*3{jvqQY!ZLb4byVA_Hfg*TxWd-mo0W#OAaY7m19{g#lq&%z;a`vD937+DUR)rcmx?4`d_SC z^6iy_gQHIjBd10q>w`uio)%6H?Fk%>8@(8qzBO!cYqXMMQPnxX+;M=#gF%9$LCWO+ zs?DEXEmV6o&uG>9Q!C?UH85x}%wMp2*QV9GwN^3|GzzV0V6ZqKY;%xl1;bRS21x-% zktzIJ*o6EQT6ia{TDfQy!-`egidIjq%ihtKy;JJQ&SkH6ZF{}@Q2HLfRkQgXRd_gX zeVjP=5l6?aZiXY=jwMW$ayt8Xj_i|QIkPHY!lO41FLY|=2{D{Fz^v2I&cvX5vqg~O zz`}qxd!KMK{Lx{M(2)^niB&n|$dc>4r-5P5X$KXJi(D-i{W7>r8XYurFUzsqP-B_E zkg?b-_v|N*OS{&#FFJ5(ljAw1Y)79|r!S8k8~nEUJ-<|?wwdd|t!-~FnXSDk=5kBS z<&N8GhA)$yB>unCS9|Bs(7>>xSIA(U1H&OE2BDSbCOBLXkmB?^D%WzYXe~oU?t>&1 z`@S5<482Es4UZnZb$F3`n(0wR34??MgYbzr3>V*Q;(EG3&1EGA!$pmj4?^o5HP$b^}BX{Il zobIhHMP+x-)ct?4Daql}k6x!KUN7}n1lAjDkTd)x#nSJymYb8|?!Srh z42`TE4IDQFxq{yaNw?^5G_c-j6q&P8WI@A92^V4GmSZjlX4IwJciA{A$dKX2QBh_G z>C5XyZ?E^~WBGT>Q0~1!Fq^?!zIAW;j&S;MyEH1tkD~sbT&;E zXi+X-C(pyv{|BSVIx-D6{Ge*ceqj@aBcdZu*5Vew1Ha=rab4UCg>Hy1Q;ayMud zG3W&6aJO%6>nqk-tgOp?z-4o~tAB>+abx}OMFlZWSTEdp#AVEIMQ5hc1g3{emb*3B z8y7jr1Tej9@!xG?^L-tY%>ni$Yb9Fz_O_HbPWZr@&=4AL%65gt@xm6C>O6CKmcZ{{ ztX~(~6r0+58=0z`22K9z@S)iGPq8D*7Kb$@j@!TZt~PaS*%~O_5-HxYFK&wqH-jU0 zi=*-uhlT^L=_Z>w7~Gi|R@Q9^$$se=U>X*`H7x)CSH<(2eyrM(5WFSvzG?LFFS26p zKi3#L{<$DK+1z!4}cngj6)_=`ie!}5GS&4v4 zv2fNzHJ0-GpOodxlKS5!nQzk+X5rv=bUfqyTFj-unk7cKC5HJxRdsoFb6G`qnK;{V z!5P6$H!kwd=$6xTnX+#Yv!+Xv^+6YxilXal{{LfkEMbuQV)pu9nWKuuB{i2;{T9A8 z`OYScZOz+@>YsNSyV#1eG(VqMa{qJp_w}1ij+k~9yv^IjSpR>s!;j}xe&*T2F5TQN zJ@PFdEIvB2R5}XmbmeYIVm{zj{^c{53#)U(Pp$^f{vBQVF8zy5CaC*Qd2Z16dP`$* zVnK+x(ffN20+oeFE^V@VtN-XywsyMQZly7$^Ve3%t?+|to(_r=$ zIwF;G%Hd6=lga_6DGoByEpz?V=cVs3_5Kz4e$y0gmbu%zC-Sr0*K=TIJ|H{8%#Hg1 z*NkQL%fC$GIIv*ep-XnfEBRfPZ9cKgeHX)?N=9wfSRNOlJ5JG;e>vRPW$a(MI@=_< z+~gILgMh#^#~XpGUUM&&FAa9u#k<>T4gZn)^Hpo_TP>IWIjej@4_Bj;_#!cfX0_A7`Hr zjDiyySY-}96l*!Sj8QbAft4YMU5D|4vfu^%gJ+DrPir*`d_HNRTm(>IUXPO%Dk|j`<<*3wF*%(zqI2_odtqjE6VvG;DNOlMsripkMEOzM< zvu^8&ShmPxGS};xHya8bdrs$658Ly@DA9YCnzY@Xn}V#fC9=!d?jC4!nz4X8xhchR zLfUx=4J$s~Dv|#UOpF4#M_xFZCZ6ij-nnZ^mProsk)98aO|_n$7rVRsbd;b2Q@;D& zn%}$rN=rOWIMn`9%5BbtS7(m)E4oj!nF%}6(}d^d@ww*rS$Hc;GA?s_+vnBHD$TwQ zInuK%_xAR}=XtxM%Jc8-*+bm%qP% zuwC4KUQH$FNYC*7^J=TVzkhgqy8Zk*@R6R^_s_4d|NoznC*S}hr_O}~%z{1v2U#U^ zE*xZ6>1{aNPLFHh*PL;_*FP$!Wm>5meJ}&E;bLphIFPFn9hD%OM8r<_%Il4>f zZ5Hz0x<#kq^z1!HIK*Tx-f1z232;mmojC1D;3gyGuBBoo+y+njcPAVOcGo|YblKOU zbc*mPXF<_IFRk-jt!+$7CyTsK%e0oPH8@_g@{&hj^%e&Apgo2L2_<)om)OfyF5y0D z)|)ZY=8uj7-=3nCS0~sXR@%xCZ0!_!)uoZQ?2zllQx_-BHQ0J4V%wypnKwHuZcg&p zQ}XocmUPio2ZN>hZYoa?OyfNx7_)O#*p1?gsUH^TC|POnSnt`BJVzu$biBl)Iur;Lg-0-b<*q5+@SzO=e z5Z`&Wu*!rAf3cIv(?z?S-JOpGb_fTGdsV&c3)*>Pg~FbSJ3J5vI37IZwD6=qZ!Hqm&iQH|q_4nlqVi7T^I7pO(X$1N zFJ%0W^NZP*I{RGzA6q;z_+zZQDWkw1hCmS`n-W8Jec8pfd9ItqHoq^aJKVD7*yRfy zQY+`OMWh`v`E4`V-=o5$Gko6nRtCL4Yc8>x z?-yqaXJy;_hQLEcQcj)mTjomqSD$vQ)y3OA?eq!xWKjdOxYzSH4=)R#t zX4b8OGby`tgf}c=)XJK`87r%-e6}XdMQP&snlwN6)l3d1m7cx{eIJ8wJxQ~jdvc4x zo`<~Wc1StjPiSx1v9Zc(ks`yPFPi!b9xdSf$vmr%(J;iKscmAyirZ$4f$p~&7nY?6 zZAohHh%Gr7yzJBpWwTp>4SvE5SD(Z?DL?wpYS7jqY&bX5SAC^&LdN0JvIomu%vV}^ z>`^SuIN+h7e96!7VDLPvMd}Pbzu2a%3Q^RlZT9{ham7h?YsmF0f_|2(7XLUpXttUJ zFXblJ)*0F=g@;b)m!w>6`LJ0m?`f`6-0SoE)?HKC+{>Y|PE6>Dn8QwnguEbb0S*Qk zWq*bhxr|B@SN)U1eN+#$l3> zip#xb8>YY{UMsyUp;<#H=1J!+{a}M;S(#-v8c(_(`FgPLV&Dn<;wbQQw>(44cGolS z7=?7(SOn(pp1>)+=uq|KB$KpBt=#4ksm{J0?S@8=rL>>yG4AHbV-z_4?^a)u1Dk`u zg(oNaZiG*1J>>CYh1*G+H7aA2_Jf`;KQulVN z9aqGke33BTn$`1Q*0yc7pB`vg9To~Zd$H);7EcaY!9RK`rSp9{mS=5vl3*^)u$S%e z`u5m{K=!N0C0BlP+VD0l)cW$x>RTx$Vob@7pCzwsE}Pev!`qOdpK^=Ka=X)pwYh2S z=9gH_EfUpu4|^GNF*H09n&na`=zqFET&dIbX-l`DzQp3mg5|HbaoWZC9DB$=fup4_ zf%hm=h>h~b;y4!3qK|_I3sQ z%k%1;bQRJf{~dPF-^dAa z|E_3L#)rJf2OE#yeC)Yj;8?p#{cr0neVcfWnf1@To3`Hgl;-N^kHr(#aRyeuEq7fp zUC-rv*E#DMzvb#a&Su?Y(%>Pnt30qnriJ15Q>hkX{u?c84wY5+d34_4|6ST{^Owu= z^3!DBk48;J$; zP2^*^!?yMR6Ah&kD;XTp-)%epzvPI72-Bol+$=kJ|97M*Y8j}UIxes#H(Th@|CkH? zB};Z*>3wtS?N2j)hG~vbN>1TD`idL{cSM-pFg#!h{_rhq1AFub*5-i!P6dDVeBjPh znp1a%+b`f|R62i~3PYAc%>%y;3<=^l{AakV+im3J+{Uu_#su!!x;2XqYV0`>9K?6D zMCJ1(X>@!eXfcpy7~Bz1@}BWuW<0z8v&(j0qzgp{T5p!=$rIa$w~TB3(v(T zi%c#qzQDq(aFBbKg9r;h!#{rkric9h9!w5%6#MTGzUZKsbHA{jCf^OM-zfp_wFLPM z3x#)jt87X2E@BkBz!39)#Y*w|LjSf6KW}NR`n5nXK(Ss%kU_@F=bM9=<7RbsnT>2bo0N}SEN@U(jO|mD7CK{Mbj<0H zu(DH^!O2pOiOW)&_k_H;lb5Q${3v(wlboev(V=(z zNhf%YYu8_RA{ge#r)k6|+T`c-NaFt;qb`|Fx!nqi+KGo40-kCK)t<_zN;<7)xJWsf zwc^7i{|7=hRMzXQf1(mlG%==~?aC+SIS#W`Eha%s1<-{LKCKfzUs%e^)r-k{o%gnG%>#%jzw$q0 z2VW<1YXh-22~inMws$Yv?`3dUz1i7zi~feCX8)bO7`RQb^)fL~`QjW};<}NUO~J%0 z#>6Pe#4hcNVbB!ULKF8=li0ix_u4P+jaQtE7{wACk2Zbrm}ufTwZwDg7SFj~JQtdH zEiLg{xy5Vk7q5*b-djt&cW&|C`^Ed9iOiKnwKfjX7wF5ls6jV6A2B?+> zHJSv9Pt{hM8f01;Y;O`c`v9Ae0_PUv3J(^xO$Yo1+ZnVRm~9qv222f3G!6UC$HUOT zH^ou0u7R;7lbywZLFf>(Ug->;2mW^*6hjuU$AyMXEsgyD+RMMtf#bmg`3(*XcN}I^ zIWVaxa50%iFdtxGVcy})7Zam{u>$Ccos1$IWTBAD)KP}u$o5f zHD!&NswkJhDB%#xXqIq2ltC>a(B6UJheD|0@i=a$e|tii8NB&f8kktNCFy<(_;N)| zY-;#rheXZ;ahyhqdqUY5R78C6(^)^|C&}T#!$8`y>VOS+%ktRU)apT7#tiD|CNpB92^+tI4D{ra7u_Xu`sYplygpT$Y(u}%DX6^(Y)AnyY-hTOc4wW zRbN@d+_UfyV4 z(OO>7xxJ$Id&NZa%Bkg*Gq+dH{a(4yylQEA)ynNvYrj`*G_T%TUcGaB_1^E*2fwRY zE#W-8z2^5h_ndOQnkOCsD#A|J^meVT%~W#JV{|>H9X{~a&ve4G4KMCw0(=epTcfB#U^U-Rbki$in58y+?_|7TnfR`f88 zFQO^dsWIQFWjDK{VN1~b}hBbp0u*!YzwW>x6=l?d*A5VLqmyZ7g46RnO9W4*JWoB?T$^_5ScrkT8vMQ=GDcxon}+`ic~dW1){tQjXlnG-7I%&k4-B zF`?2zk>_XU;vW;2Czto-Rtc#038^>E^Ho=7(%qX7X7IA;hX16KJ9>nbI(#J_cxZ%f zZm8aIeqw<7jwF|QP6e%Qxgvm&7BYHi>0UjmlF?UEBKcg$ekG2_2v z-^6^0NppW%iFhh%aJ9wtGh9)b%*fC#a)`H*&p#bc(V--7&z1(PLbDj%9Szj9&s z;dwXGX63&8TB7-;N|RxgX1fjV+$)|l&s75dw|!!7HuBAQs&AP z%g*0u-DkA?e>8W|qzy&a^xJ!02g$$QpO8I!w&cp`k{j5gSIR~%oNu);yZNtA`!T0$ zyc%IIwgc%GDK1V#x9C>k7LG4A) z>7I4m9EzWMzA($%MHS}wpU9p9-90aFv~>DzTgG5P!@F9=*|V0;W>}+l*(PtbaFPP& zCxuPxc1yq8y>-&x6V@-!Nh|-~#}(uC?g^9dI#r9;N{{YtsoM8-*S_N4`$CI%7+Or^ z{I%cz#t!yB$C8tO7&%qlVo+pyKU-d3QJ{YYo1rpa(vLaT--QmDCma0CNmotlf1Mz) z=et6?j{Z|VrJ91o&eA_e0{gZt?cX=^$iAa0M&D=eNR>H|`A0=S`uJTN<2(apvkQNY z?D)^+lqY&n1QYFMDn#A(d-_~=7V9|^J8}2B~5NLdS=k)$_ z3O7#w`6R|rVBNm#^9*k39imoOa{rw5j5W5{sO%8<(#%n0b*0301H}Zrk5;$Nb2iMo z;ILV_X-mcf>HiJE6@`jV1SJ?1mM%9C4HxYHKV==iq>RAz-O}Z{Vs!HAWxh!@iaw2Z zFCNi4AF0@rIP)Z@az@7FLwe^fteJQH_q~fOeO#ARG-E|R{hXY4soaA*_`~emJiiun z{(Qta`>gxkJGOR43=&a##>Pu`8-8Tbdm8joCFb8Amg~1!Ef^ClE^DeKhS@(I9{*Ci$Ko(~sy+7>=JlJ|vLaPB-BbPYBm4h~MV-^D-W}h2Y~{aK zU*%lvQ#(HY(}dbRwf>9e{x81&zXaNU4Xytgx&LeI|F4PvU&Wj9xE$kRP}ri@{Ox8E zTU`SOhx2#gMZWPRiqE$ACIA1SpPZiVkk9xaUf22O%|{8n|MeEwD+*mzl@R;6wcbc8 zfzfXI&$;uBcK!c--Ralwq(9=1e)%s7JYDwtZoT2U1bwljh{N?pkK_$b#WO71ulLUW z@Aof%8JQXmG_r6@*>o5zJk-h~ZB@fzxadfyh<4PT4#UOAdS$Gu{#ZaCl2y6 z>4>xxZhCNLS-5q@-&dgzFRo!a$gv^w@pH#D5tUL$v^G5To>21o*4}RO_4oGH{QmWq z+hW6mgDu?Bc5?!koDg7|cSK~yr#5NEDWP8!916M^PcexwXmT7nD0<4t$3kGk1MY*o zRTla?6hsvttFu0Id7yKkQEEF&qs@Xf2QJNEUCS1nnH|jA+nZ;r7H{jZ*!%12o7=nV`R(`p`T6DbZT%H94#=`rG}*9C5E4sE zFyP>3_@Cn_pvrBdaEL`{#!@y%1&#x)LfTKh9TDbUVK9N0i{n7Ekh%{Whtuz`;TO0q z9SWS3tTrexD6_s)V32cAIM~5#!EvCmFqBh-MS)3W@`EN`I}L{x=9vaAlYOH$G%#q) zI1!)2JhQb~px{q)D?^^Zm1Y(p7sUe=Y`JO*jRr~;@w4;xai-5HI_H@_x9nbIU>$>p z!U3T!-YG#`z8xxunYnA&59E6BgfuR6;51PT@Zy-zBv63Am)B&WgCU1P zn?nr;!xYZ5LLzb8Y_+c$gn45X8aSC16&r+E34?s+~I@ z9LiU^t$l!#_3kgTRBnq04uvdJ<1UD-kZw7o$d@zW!rNdWZH7e*HoMc?L#-)jhgT z+Sv~t_{*`Wb;3a}20IN8K9e5?{~0?R6k-;LJ5E^PvRAMr;e;oLD64vdv9f}?~~iQW1 z{81tts(#0WB7bsN`utdw6|wz9qkvBr!vaB7;iQu-Ggvv5g%60n>X;$?dH6tXL>I&@W@X?~#7 znYoyUHF1Mv6qia#!kVcLU!FF(t9mh<6X7r^RG+}2vw)>On8PAflOdV$r5T$x$7Z4F zr>*<^XYk~%aF*w~X!VwX!Rds*;?$jf3@ZN>7?^e*WfD_hQe|iq@SGH2s`%68Uu_3> zio+q9pbZV3oGLa>9v-qW4qG?{9J%>VByjZ$sOq^ea$6Wgf4s%Pu$A+mt{m%156@L9 zjVT2@0xMR9b~DK_UJ+Tq_Thm234?{+ObeL3HD13i2)L%I!)3H9MqN&s>-vsUrRz$b zdW)qeTujlLvY2V6qoBoO$qRF?bSC7uaus}L&|ToIP#$`MFVA_V(u@bCnk)^RyHpr# z=N#e*lvZ_2Fj%Pf?d$prnjC5A>2n)R#1@D&2&Tp*sA`_+Gmc>hiDo=-de^J6?R(y? z&1YZ4$+*TL=ER&6Y&RSl4Put?DH}LSI&d^R;G3@aKea&5`OpQ%Gchlc1ugT6)RpeG zPf=vE{js+4eD}RC%dT@V-AMEJ*DUdE*LG#e7qjD^tiJc>Rr&ruPje*>eUPwS`Fy|B z&4UW3xEa(e92uHFa5w(ue#qfnaj1r;p;bTUVfNVuBg+nlDPkTE1-dJasLa!D)9+cU zP;-chH^V_hCj61a>55|}>o)f0_dJ$)U2)vz-NycUo+k?2l_y;EHcjmBd7`3SdD16u z)8zR)Pc^(NPlc@8GZ|)7}Ck8(1Che7HbND{1UT9!5 zHcsJZ)nHKKT9kJ1iKKpYoyUCTPtUtpZYgW*3tM=*=Y>o7Yu?gz|6QD4cZr0C2e2-WbQ7By0}Dd>uiZw26y8p{QVU!;wrLPUj4iDrqBDjOuQ)D z{`@ZG-S@oLTYkz8=B~c++HvbD%}K9!t61yL;4@n{ckaB@%dEE~7n*Hc-}`o-#B2t$ zjm(iOlUfV9tvd`P%O%PRIsd=mxmGjxMCZ-5g4xPTZc0uwW4Mr$-}z*=!tQ4;mb?Fb zSIPY6$X~r34*zuC=V;eFlsDWa9-$}@=Fp^2sBysI&7GZ694%~R0xolT8@ZXb{JzH` zUwM+h_EXt&%Lja(J5O<*dpC*y$WvqY%7vNdGN*lxe)g`f^lb3I;<@s3o~y9`I`==Z zu4EB^?Gv8-U6)@U%3#=XP=NL15r;zb_6qLVMN40=NsX6Frv|Gd8_}8*6xnncn$_b4T1mLE9V$AOmNGaR^F^MvDvz#MLD9yS)#i3 zM%&_udY2h3JTE%mT>sxvd7?c+qu_mb{_2j_2kuRumUk$g=-7Fppf7?UjGaN4ox$Wl zO?pIgrbLfROR3e3wv`!Ok}KK+B07Gw6^L^5F3{*bx1zoJMwiTt_Ei~;O%c_8J9;;9 z^k$TIN3ZC9`66}C4Ymm%*qRgsdf6FPe_;R0!BZ;6`}GI=V+Mv99X(73J6EbtxNgyU z^G9c0M47roi@U{yyX9p$&+`{%^xfy^7TnpstGxBg^DgV@6Mb%Uz2cbErN%YeebV9w z-LVOUEE6ZOKH&MgqcEI(!hQD+PR@3tm9=~`TEccrDF4xX!=l`7NBQdXR)NIq2OUZ4 zuGg+w-fNZKEiXCApEK>47-w6+|8$}4#u}07kvk{pzU*fTEMySi@YbBB%+XTbF~Rj@ zu|VhK(;3rJEvGydpJMD;Rm9OMx^hacWJmsw$-bOZYa_F|E;8;;U_bSA;)!joztaRe zB6GV|%(z!B_@bkm{pXAh&Y5+YGh^C%uTGj-9WwLF#hKGNXN9RvEH;{D@nztI)ts|8N+uR|sBh7ny}fhx&Xu!wpPaq-tno@UMyG@bW+ z<-FG?174n-_nve9OJyNn17RIS=lROwA6L%*&1uQ9;J+l3fq+{9%T5(ZCPju92j_FH zT5$W57T*KrX%jfoH!w*w2r*1hV=YqPUbRr#O84L=Mr-Awxf}8tFR?H!)RH*5P;=Fy z?}@Ao0scoz^EEdc{n@<8G;8rk$AxSSEb^Bv88=9(YYF^gN;dae;u|liV7Rd}>*4 zmEgzAEDtAX#(6m>yjoV?wVXdtt3QzOuJIxXSBAh{%PPHAw0a5HC$I=GuuoH9v|wN; z4p=yUvBb{Q6;o#|_urt*z{Sw6!2X&|;ij{FbJohmraSM60U(`tNxjsq4k^4{sCl4dt8zXmJ6~hFyNeXEZd$l=NDI&pXAIMv*{nVt-f|EEg~|#a>LqdVa%n|I_E|8GK*)6 zm*uc3^oubv?|Hz-`;dzxfTK2$kTbp+uB~PH`|>S@smx-u+R4NhL4{&R4ytMsTLGJ z&9kaX!0+_N2F0x^vu7N1Vq(Oeh#_dnsJQxBvwlr`ulx_EI;M`)s{XtY{Y4xr}5xtvFY@P5kdv;iR zs`cLN?1}R=GD|IYbxH5N`+L3WjvYPG>6x!L#BHy9)m=LA2e(Nc0CH>kluaZAOly}r|oQW z6=eXnSZ@Uhr7P&=i%h&eNoqT%=2RStu3JWa{ufC zfhZk;88_Hi7|VW2XNB$A$NFHu3(EnEm({)xcn>bfQ(n%^ae!x61JCyW-ZKn4SQjBlCmI;OCIs$lV0gbFulmmMdYKdK%O%w2$ji7gyb<8JdV%}I0`3YP z{@7oK_B`OKpTo!Dz&p?D{~;CuK7%udlXND3aqBkIY;u-4P_eVI@@HkSc<}RNre91BK0&C@g$~86uN7rm-t3H!a zvnA_JW2?bdb{+=M$>0|@DqZB}p0mmK0qAh>E5N|k<59eK#u2k)_wnW=-~ubB|#Rg7%tQ067L%rRwbOajhWEKvGLlA2^pMK z>J>ZgbT@jvXe;K}_gK2A#(jqt@0o;aJN8NoFT7C7P{3n7nTtu0W1)jb(v72$mbEMa zwX7G;&hM5tiA_JAAiy%=SkBDGHx2(8))xr0*sOn~w6(#Tn?rz)v5k{Mfv1L*i^G9$ zq72U-24SX&SEFTxVtcnT*>0NQcp>&Iw;iwW_XdW^2g3Djt{Dm*-|KKusgak1f!C*E z^82!ur7tRPl;3c>+i7=a`&Nk~!4aEfJ@)Mkzd7Ca=Jec~`e)NLI2kgvFS7`+^*8hz zY%q>=C}lms)zQHHO0DQ`#Rh&~2F?{dEEBnF8*cCH6kE~d-w8M4l%Kl`D=}3mU3}0 zaJ_b8cwWn2*~@TRS{QV=cfw(%iFe;S9PyU<-@WF?-Y4ZZHm$iYu9;D}a-v7)rE<=V zPj5{0Tk&8{>;|#t9f#L!+ZmAFw;<1DNoCYb_MHh_>(}ngj=0SnSR1}(AKS;Z3<(d* zZ(rfaEAE(c?@0{5xU9>{Ih(|I51H#7uVH0AbAjg{Bg4anb1aFEE%qHaqi|0t@z7IV zhT69)1O9Ton;UDWc&>)~q*CF%uLY_6 zCvZS_`=Q*TrO~IdPKO(=aAn7eI``ycxeHZiA zaumGXu}gsGytTm6-%pr69t!M}4A#3`JNI+G*K!t&dJz zjI+C$AJibHeu~|_wd!WZlz%s*Bb#bYK5(yjmX~+wqTbs?F^2VF z3?+Up!r=^yAF!(P2rt{4w_ibEmijy1-JL420uvI>nw;PBU;0iX z{;G%1-4ywki}BfegM-{x9e5V+xxnoBmAzkb`5nfC4|v!8yH(_SokieUMeggQzv{Jn zYne7~T&mEQuU*xB_Qpn^@`95$D(=tt5?0@N zPL%(-&x0X#8fRl1^Hv3c0~Rk>K779a`bV7l&&l>heSK_Bf7)3VoS!mp*QADX)|<~Y za5J;z25z3PPEqj2YoGh!j=z5<{{H?={k;#jmmI@he+Eujp4j^rHpyP(Ft}(eE__yj zGcn*3yXF*6%PG~I71lp5>SfnIynW-*>>KLypYoo&NKxWpi2!<(dnnGVc<(779 zW3&BKwA5?r?u09OQal$Xh&5I7$;-*SnDokFLo9b2>+7l7k<%0RPSUNOq&|SK4!5; zz>-~liNWD*Ow55hxdQiin}|i1d~}sao>J&0mA&Pon~c5miY-jLJXEK07?x;?S~GOG zN=t9`bTxhars=}cwg-+4Vj9v)%ccZbeK@7YPA&(5#=<*0pZQL$l;08i18eK9#-FY*}2iiS95 z#!d)NXcjGtNa{BIcH<1kuf_anGhM&UNc(-`iBV_;=lj)1@_GYrn+aAJZ&bLma{2b0 z^1C5NMJ_JA5|dKMx+S*a@znCTs@Ge;$0hGfExj73QGpi+ycnml9Ll=5vu>_S%(%Uh8i^k|#KeRi;exHv5?}B{-}yby{@U&(s;o(<;+u zWpDeLHmCSnW%|78Z$Hx)G>cVbEb2D{O z<(t3#%HD8TtUBl7j(f9mwp1@%!SEk=6N@S z7-wx@6uz*Kndj7@**O6{`>!5k@iaIsl@!owrIOYp`lXAX7O@yUNab_C5?q*%D)XcL3rB)!5%o{KzA>dbPO5Z5`6&5~oLzt=^DfP{A~hAz_#Fj)MwXFB&VBCG2X_VBk2+*vR}qok4NN0Y)Z)1L8_6+0%?Z zGnJTlbFh41nSMZ#>7qyj^OX;)z%|4*kgxGt+^{ePfl z&K@bAo%Gr8%Nlj#_n8wUH#E$SxY6MKz|&7*&XO6&eV!T3{&^-tFJTs&prid_P1fB{ zE^A8)IIuJoG*%pI=(v!w%w;7f11m=Z)9sXJ+aaZX8Kw9$CDZKteGJ}(m!qe|IEzKl1?%GNhe#hGnpHEd*2QLs|naeeO$ zlM`u^PhaHNbAVA?qKQMv!15$l!=`CR-*^UPF&GOla%l-L#BZ0r@$TC;1+$0-=9+{~ zmpO^75*B*t{*NLrbWPi`%vD!l!hxvkhs-Abnw^^~zb5+quW38as_K<+Gd;S{7sjx( zH`g&L=eCQ|b=A|n?+UuBg}9<64of{Nc*#<5eb2kEhAv`xz1)kgZA*(h-7&F&VOqlJ zXeI?#UyTl)WB(&<7+e?_yk?xT-N?c4VN(DnlZT@t!^Vb#x?+6lnT-rWiPQA-4{DqJ z&}5KEXkk5ZK!K;=08>tafV@HQQ3eJ%<`#tp#T_ZLZ|Qol9{ZWLevbpg<~806^p&%M z#93JRBN(LpE_E8sNx97S@e9)iiRY%5Z=S2r>zL<%sfqQ^PnFxR=Oy{}H1O8ycbw>?e2{6s9CFhECYZV8PoEwg2WU`2tUMueVPf#eZF33Mg@uc$?wj zz3ce2V_TN(_00}z-nDsg8RtU(P4CKrt7^WS`?8aDu0+W0lskHc+b6${5ir(gI6Kkv z$5hE3sXfVim=g*Zgb&1o|L2{7~hY4=4P9Fr6n3`JV_nGzOqu6jF3 zmSX{H+|7#P;>GO;a8imzY z>{;I+vBKMS^@CE&GpT;X3^(pDTU_7i-LZDYn%S+3nSQiHUOD$|E_*P;G>guw>!UtR z?v9<$u%U@TZTgHI+H5bJ)OTH+D0h3Q`QMj~_9w5fzZY8fKZe0Eej}^W`;s-qF|RvL z?(ycTuh=|8?+Kga&lIox!gHxH-=fr*r4GuZNj~r_;nX<6$x^^*=E%sPrSDT#Lx4O ztgzoXTkltq-HX|FuQuE5W!|dgpw|3h|KtMu<^v3j1`H|^w!0e~-afW_&uqU>yW`_# z^Uu2(z69^T|9k&;>(1Y&_lvyQ_nv#d=wwGmkNv_fTDwmi{AtZ8sNyJG!g-m~g5ibn z#4a9X8%~|sw%R32buO5RBuwVElGVGpx9PSMs>8 zcW~F*vqSsN@ozWf9(dd8Z{e&EaW*n>HVHZ0q~XdiV<-0khV~i{9)W#qDf^{@8rXj{ zv@tV0+wA^hqDS+G2D2DL_604syqk45xvf8Rtmy^AhfVIAKO8^xKf$xWgxmLt5z`kJ zHT=FJX%ufj(rcU zJp$i&-sswLdNVg$_Zb0~(@i&;X6kf!d}f?}qH%)AjwJ45GhRC|RxnDJa86KKuuJ0X zsS{^+Ni<)4x&PK4UyIu(14BG6#PBQ<@nuvv8-B)hx`*Ep56ysTOT`7gxBoaW{5Rod zOK_I?z;*8nmte@g$qv5NF=wyUoW0)ZyZNx+BNLAMCfy%PI6v!XeVgMuo#Xtj4*#Ps z{1|`usSEosKG=Kw!TFjV+v7d~=MS!2w3?fhtAUMyfyva8IYIcFw9Q->kD#2x$~&x% zytu&jwaepo`{Wl4HXgnV3tDC`Hm!WUrzwHydWqVBZr2}6tQaiTu3OD55Zc4LqABSM zm(12~kIhUQq#f_bSU>*a!|>vQ%+_xG41d{No81mxn-eY_@mRUbxWiI_fy01<%l6WR zlFrmyi)2l^1$8e9Z*>=qwH6EY|J!)6eO91>ZKuN8ZevppVb_bV8-pcHJB-$LTjll` z@?MzyU&7}YN67R9AJ*8Aor(+({saaUxlfVsF}1ewXJ(K-ec_zX39~aysVBUeBbwcf zJKUGKvt#VxR|H~(tfu=Kr}h>u2JO7Rp}}YU#C@*1CxwQWUXBoLh>Q(CY|N2y_G;|g(CI5| zt63SIUkY}g6dLe4EJ-)w$Om&V)25$-0Zgepv9@8G147*XMr^&w$RNIu^w8B=Wj$6lvHX z8@*9Cn&C(L%SX&g3XI$qE&0q0YpzDE>)rTh&b0}9Zhp8FIqz%a`iM0q3z)b!H0WAI zA6XEzS>Vo`yEo_ky~!-xB&@*vq1d4L#_egfk^5O2odvqIEj z*Qlkg7gbgD^eS$xczS*Eid(DC-kSC{dOd6O_S)#?g1g)nx0b}-l5-ASZ5qwDh5G?- z+z#2hmu&A|*?YrDHsJXGin#5n%Kfa7??t8e&1#&aD!?P;@#b!a$4BGbjvxww-Bi3YmYVZtB_&RkZ+rQhscQ1H0$LGzu|I40o`tMUI*Bks;gV)S?*;nt(mw`@7rBMY6R*QHl`Vtb6fsoyv}`~BR< z8!xgjMl>E};MVI=5njMxJhR72f>HRtMzijwWSg)aBZ-uw9L+Yu4XQakya~+qeLT)> zf+7jc5-%3(OnPG9*W)1fgwvsXJ!TFP_}P2n!a^wW!2W;_uSdSX)jVtByQRq~%Vr%C4)=+CcJ2hjpUHyhW-~MSctgZ` zv##-EEK5v0nU-StEQRm+63%A7b0S5@dSoS7(vz9g1sWVDOf1fuQ}nMVo3FQGTTe;c z^Rl}1q@C#%jOm4Z8I5i|k_pRXIv5@;I-#>VJwP*q(c(qRKdA<}jIMPr6n?O9XEd;N zG-+HhlE2{VyYofQy%&9D(zRKUKe!j#0Tc~D=bGkveOnd+3uTh z;+kvPBg4J--bDU<6SoAX|A79{4qx)k>@`^X8V-n@oI zq70|nddm1Bb}Ka08!#KMP~G+Kjoxj;^%n1*=)Jw6Cmto4cl3W^?)ipy25SXwTzh-- z-@9dQjP1AdGm2Qvi`Fb==Iv-) z_lWDAnhc}==jC=RX;MubLi|DnXXkmbN$lX1%qV_zE8eVq?n((OtIy5%|Cccyap7dT zQJ`nZsU+~|t9 zhV-k2mUl+#uZ*f+qEVnx6!f^{qS)oI;+*X-r8}1KYDDU8)zD+;vYxN^vvYrrQ+U=clRTkEUvF{m<7k@IrS_rd9h1-3 zAAZJZpT1|D3aWUoURmCm@J8Kl@%O4vUv=NA>nVI|TfbaqZ+UC_&IS$j)n8r8P8zybFW~Ks8-SV-THi`(1Zs61}5DV)+^sHTeZI`)2h?| z|6XMY#VNCpM0de;pp*SQ|J6jTEn0q zaah!F%H_VwTjE*U%Nd&+eziWmv->y`gG4!}0>gwL1||*Wv`H5iufHEB(!egERIWZ@ zig<%@#Fo_mQ4CgD9pCS9uwBei3fY>msJU&2PPrb(gkO7CT2$;3?-p99yCkW>_W8%A z8?SFCYl;;VHh)<7Vt!ru>bk5~RoV&y4JR%!GcYi*&E*hqII_U8NlYkDk>i1P49vg>(po8CB>%w1uG)put zE^_Nv@?BM;d3l-Ne5YQmQmw12!qz99T~(@meO=uCCSL8bHJ9``V-0+~1-zZSg;G^Y zIKvOHGpY9qte7Cc>8Qfl?a}g4;o-`;nL=3_oC=E@6yxQhjV2VhA8h6nH{#(6TEd`Z zA9!SKjp{;{CT*c}{}VV=6cw6moA*tt(0ItvRwHC2bZX|4vvYeEntYji!7$|{lLm9b zgn$EW_v|H=LLzpWM>9^7I9K}e*Y_`TGs~x^`26vHa*|=w4v&hCuKCto)$dyDL+oz; z`u6_u`Stbo|Ns5_&n&T^fjKDEDaK%ls0<(HO^3?~OgD_eW0N>0ILA%@di0i`>kRda ziA*ZbWEgaG!;_rqZlug~%FGPAkT+lT34^l;SAZ0Qo5~YTXRnMC!nGR(x5NnX@HWoQ zQ||N-NLKvkvZ(X)Psa&yoT(F4JhX%^$}(_sB{)a%-%`3bDJm{gpyHtA&m|0jLJn=6 z+H)t_$uUp~K{NovJ{KX*686mtq4No`hW)Kp{?iLywY#_&V+ zfP{3J$A$LJzgrq+o%Wrm#BecDY)-lUJC<1tMp7<|dt=@mxWH-46qz32B$WANr84i) z2+?IiPhKu(@=<(R#KFfZ+or1dE7d7cYvzUZ2mIU*%-qZQJ98u3#)Gc2bPg0O-{Ex8 za>dT)i)OFe^?K9ob-OFr3}!Q=Pq{gpJ$J8YxImv%)xwe~YAFpai5$@q9#_vQh_oM9 zbX^sA?bEER9^*-F7xpqSqzkZY`R6fz&(RypUQb=|?}_$SZe{l=MVzM7b*4qdy%BS~ zSu3)Z;j)@!&=H}9KDjd)4s38XQVBB3o9i<5_y2X5yp8W}x$N&O`?Z!ON2h^_S1N>& zjZgK+QD2q-l?K;8VK3em0=m7fI5`#B_!v2^+Qikc znx%EYMRyI21BHGLtgIeRN&+G*ib}>$w$Hc}XH~;^7Cxh-<+M#PBQG)U`*^dVI}FN{`S_RAmR8uACD`~-}9+PXaY+o|DFZM z__-YvmTnLT`N+~4IZ0Ntjp4s5lgOuk0nf6SEFK)@ERb=$z)=_&c$7`qrm>aFej{HS zOTmFgbM`-n6|EW=5+oTIEV{0qsN(EA!1_eB;o6O^LLtfjE-@+vEh0MV<_tgN|Fd{F z-1L2|{yy9D&$ICTzdc#_PG=qz@%g|grm@iH=k56aA{q>DGT&F5aX<98kZ`zGQ_#Y# zq4@WW`ZC1|B_4(iuBH17)`wM&<(w=k3NVh| zd(7|9s!=ckFa&uTf&e6;$CKk>Y zU32^=JxMZ1S7k`J>~i~$r&vQnyAWq1^F74|^MjUi<_Z*BzH}Djs9okS{Ly%Us+5Lf z#e)MaFC2vfd!Bwc5qc?hk;zi6SWWNfsAW7o2Ut=oZu^@ZVB`95F5RtBozcpG$?C!t zO^uF5&KDOtS413y zwG)jRem^qb|Ld-P{qNWJ|1((}V3IRv%>I`7Dtri3_HDZ9tkhDII0zA*d6`mkyyROG3!dh-t3&m(vK~UTirA4 zuYU8G3Uslsm9oZb1Y4 zgYVoq4U0S7?mX4^pTVBfacH?xO`1XS&HedmpXR8pNi$oWd89nAc&@Ten$dKPb4~L$ zO|w7q^eKxcgBk+^|A*5oObw1ojnDKMbpEV#HIF*v&2V7Nr<(g-#y>9gEc;aC@SypH z4*UK^=f3oZ+dlLy|K+LNW;*|B%S%pUMuvnBUlvraed1L8;{qq6gDb;?7FG+XOC4(4 z7=CfTVi9&Z=fCO1#`v=@&FXg@%vxl&Y55)*LxwG9zTe%parfOMBL1R9d`IJ% zRel|UI~KGyFZ;F6Tj9Viaf6Z+{%S_242BDb?HJg1D7-7`-@S9OUFj@giFd`*tM5){ zZW7zlz{>i(()-%IZwLAB2DyndT$&oEw9MM}4ZnodlPLyYj^yuk30huNchP+jhsgm> z_SmY+^Yu!m*)Ry$2ejS3p7CSB=Rb^c|1%EoJ1FQJ(og?fasKbs&G)L-Rm;9JFZ{esiae-|@dvmR(TljFd>r&rV@+Nq+U z&!k2E4BIiaM55mp~3j+t-SLO zd4_w}-}A6?q}(g=c<_N!f`_Y>=aUTok;8r&O&qV{*9p3CGtFTTTEHm8!X$T#>0Jvm z(;Nd%SH3d|ET`u4PGeyB!XPJdR-ovhP?eLg-Gf?9!T$;ZVhl0|U$8zr@aO&^&IAA6 zvM^VOu^fsQb&6$u$HJDC;8gHHphfyd!4D}#fuK%;~Q12aRzY!(HE5Ju4{d^|jjcSO9}dmY&Y z4)6ptvOW=GEt%bUrY8^`C!ycQ?nk{7LDCy#8bjKlaqoP}uis84%3^80h2?socH1z~i#`8l<9ZOO#6+LJWcyK*)S(@_JXSD~PWmd4|ay8^WN_+X{8Iz8bvOwI? z*qHLZ$+vkAh^8?L*KqujNY7((sC%bgr+JZW!U;u>Q1Mx6Sz*g>?0H^$^uAEb^QJ#( z4P}odc$PCXFd9lduT@lM&`5VOcpi1`RI#7Ss*TTEH>o-LEv#TVP_}AT$25;ly|(U2 zFW8P`9GuxvUi4h5H@z-5quop`Loc9Ys#;@edfzOiw5XL$nQAp}XEPZv@XUxi!07Ow zSz%Tm!=c)(Y{DGe8&%H;$UIKiagIgBW#fhe3|kl&w={JwVPKrW@UC#>bhhQQTs*lS zgn#Y15FgRg{pf(Ez=5A4G716=v!;1uZO~--H*xa0g!y$Z8xpVN@Uhk9_NsokHM8vE ztV8MyJ2V*%Xl`UUFlQSB!<|eS#sl-XX4m`OnpT#%j8DUHj?2uguU6}|%ba}0pm8xn z=eWEkV_j#~l2h?BbXP2&%CYR<%gHRS7BD$1G`hFY?>?uB7K1_7X4Th46SS5Vy_z`d z#Fn(z+san2{q^!g?y99muk)^Dt?PVQRFgQJz{0>F#&dwZV3yz$28JgLd`lR`9?g>y zc(g>dg(;>%W)1`A1cw}Qrk`1G zlJ8A9Q$(l0+KczDi)Zoe)_rqcul+8^+ib5j3;}D7CapPE^oFw{hp*+$iEj?|ZP9C| zaa_8VwT_8lf#{v3>V%M-FOrANQdD~&VrY@ogZ}Hndz{~LDT zvz@?Hul!%9&IBa9Uo-FRKd;dL&#sFaInHz45a6?6!?xVciUW7#^4*jSK6Ay2dbqHi zaVSZ7&$>A0yAaEdX(~VOP5(KoV}hBw6c%;Sd7B~CBIb%*ZB(w>y~HuB+qTc8ZC1xNQPm;CeftCd1s4se}B|%HdxSGaPywH_V$GW@=;toOtK{l zPS#56ch6R2c2LqkuJm}i@@x+kb9L3(Z&dfM=VUMZD|bt?`O~3DV>9&@Gyfu0>3|Eq z#rnnSR_k+}ER0QrTTb#G_@R4T=6Sf(f&&ixCNIi9sjtudFQxsZZmnUp>@B7zIgH)% zOAMvOwRIToG#!q6mu*y#?ehK$-+^lep?iewiz8!e(}?E z7`&HfZT_0$7X8j-)h#BGv%3n_U6>Deibr_=G1+a(!T;gbp;skWopjs}8+mk_Z1XMF z`#�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

*(qtRZOL4U_ZmV)qq z!Hj2TFi8bONEtMC?KxKQ^lC=|;MhUMtv~;QH^441)eWE_6*o!X+l=<7hAHcxW&>*eL z@M-t#%}bcMb#5*0jSybI%x2MKd*s%#+FQJhW|n@E_6gNZQdJrJ$Ao|!8~Dydrxc| zbv7KhcsFd$!-mX8hMP<8Ufmme+SF%#Y2>A^w>tzP_wJ2(qw7D%;?9xQyGNHE&M%4S zR%ke(D&V;w=A&=OoRx96O9L((z5j=IukId3rWLofOy+1R2v}&|5i)FON@%=RdzbOW z{r`8JncWiZ@ZRq-2>;H?8EYBszSiRtH%s3g#|aq^p7(O}+}Y1Q?IOpt`-fQ)|BEKR zXT4*~lfb0-KtwO*U_zv@TtjN=9if=}3=1NUDomKYG_jVYlUc2S<=TCfut#UB9n}>Y z3^WcqTFCsH&8UCWZsLXW4{Kx9+aBfaeKb+xQI|oO&WsQ-j!N8k@~Wp2)X-R4uX#p1;r0e{?Bvnsfpha z?voRE85#H;nYYSJbmL{Pxj0$)Jy;yp=$>G&6ewU2IH_1KvxV(N*|t}! zmn}GOSuA#EV!lt~Bg;q39wDtSr?o|fH%<##mlv{WndoM>OznT7QG(N&CS;T?&B*DQ z8rdlveex<}K(>XN#44Rr3<<9-3bSqgy|#Uq{Nwj4i$unaaxq1^4;U9TElBiM{&2;n zgHep(^%fomDGP6=gci=2=`(vy7whFPS>&uqdwZ=+ejhi(vP5V9CynX>EM6uL*Zq|G ze`jBO@5J2CS93Qsy1sn5Z*F9Zwd}hsiW8=H&a7I~alh^Hx0NpI1>c?fnmc=D?&0LX z+t1$KTPMO~*r>jtdGeQcM;`BA5qRiRTmQ>@Z=aOC{eJGrjoq_ve|>Rw_ItB;dw;LX zKYRK8i#E`uTlPJ+=Po*5R4(}QY%lZu_h*6&{_}lcZ!Zvy*~hUQbndarybs*hKkz;; z;5hq%kNu;7_(!on9|X-m3cD9R)BY%u{!y&F(1FK>dD2J8Ud+1UNFN%&{U|DR0DKbyCIwwV6ea`|Vg?VsiHKU-h_Z2SDP-S^M- z>|Y$}<<#xHSs%pC{LrMH(YLVWlau`yh5knM7yheQirm8+6#T!q>d&x0U*aYH#h?9a zfOzRw#gbK5u1HMa?9d2stN*mwrc`nL1w)I|UglpJ9ZD6#Oa0$}j!FL-`2A}tFU}1wFMR&J?)!Ib_3sud8F&?# zCOVWe2{5r3FmI^qoMXfCpM`^or&D-l0>i`xW^u&^GY7`gVhwqL%t8u`hdU>?>Cb4? zuPA?C(U{(%!olP_y|Z1V(ZC=%YGP-^d$FS_3_0Z$9n&kOh%>NB++M(6m81SM&#>J2aN= znLTBFvz>x~!2;$f@?N|8e|=MZ-;vN1;P7jTJ9GIQ2JH=uG7}nRO)o2Z*~D1EGFP2p zKRf3E@juf!TEAs8ZhS9x>if?>ox=aG^>bX`{+sbY_1@>dCDm&VyVo2oFV~W2@I3Ds zE5anzU;A$M-?r<2I}8|9eZSrB@7TM)cE|I7@4nYb@>fXAV36Gp@9yj>|NQRl@9$Zy z-i$mN2Mt~`IB|)EbqE}AKEz_f=8&jyq_V9))mWfmQca={50lUm)y z6z4qUvHh~eSGvO4VtRSv!~h&pM>r(#XiW<>S3}W`zwQ z^2{8Q0z{Z~9E6?qc|Nq3G3$tnvv8lRY>#7hahlGaRj;h1#d_7h5xh+BhK^;udXKv{G%#MK5dJtyiO}b+;`p+^M_$Zq;wy z9S?s!Q)O)A5jeh#Gc)vH(94Mv0yvl@oUZdTH!O^0;bt{FAjR!y&>+Ax<$@58vBViC zRpuOr6+2%jMQN~3p7ZgTbP~^oL+;5u2Ar{%|Ee>1w?*i1#xfnTe*Zt{>pgD`F2)ld zm0NjC=e$c%znraK^v3APx>VUG-Us&m75b2WfF(qLf%j8q!|GL&b+3Lpy=vC(1I#NY z?abTFyl1xV_1NmarZ*D1ZKv%>on32oD|5B&?CD%F0uHJs*-sA!@fpk#D2%!=^%%pn z4D*9dxqcoDLYkZl-UN24`<-mgJ3Lp9QNyP&gjuFw!9fP^8kS^^62Tva-pmgK9GQi3 zW_`a`JKM`a)y|-hV`|a-kb}8AX?d|{n z{d)WU?CIV&qCdUctN+FN9@_%*J1g}RPjJs^nUQW`8JNh;SMxwD=!3%F#>RTl84YY9 z44W6G>P0epFvcn+T7ZgF5rgTR1_g6&8>*Bq`{lrQ#o4$mU_$-m#D`8XH|)PKzE_@V zz$nm|(fU|5zp};nj?)wa2K5bj3~CCO`I|GE6!ZES45lQ$;ZSH6(okY@pD0-L$DM)U z(E6S<8)d1>6-$0^+}N8}v-noaWQOj8etCNyEAC;t&@p?h4+DEh98>>_N&jjT10|wP z$gl?-|31SzgJ-29yKqqxCVXA!N9$0!{S?>X_J?goaCAQh|!j(fx|&aS@PY8jK%b7wKF^IjLqL{Vds#99j<&v4&Q@B5NKNC8{u-1lQVwtq!3BR2JEIbbEiVZ9ZC5lXL4bL5zH$>@vY2Z*hkkv3PX^OIj zgQC|F#tc{QTm65ov3cy!E4#fw$(*g(DL&F6MUjs*ycpJ` ztm?k|rtS%6@C9apFb0Mx3=SJDT6G$jbsjKsFWAIpXVA2Lses3^1=~`c($YBvnAggr zGEH7^^1eVt)N?@xrj~#hmRgNtg_;D-~nZ83zqxHyL-xK9aHwnmv|2Xt-ZT9&FEsvteL>j}e0k#e8VTqRd&sQ>YELw1A+1E*mxd|*> zr#3uqIZ}B}Rjq-EPcY->iY!fu8^uvv0W+=}@s zrkKUS%*B@&VYhte)pd1Wf8Wu09eH_{DU*O}&$*YTG2&Ynn0QTLWjfI8E#G;4SDU=^ zGOGs1A5z!O)tPNkjDDRNJo_wD#g=8Bwz~gwX`J${Y&HUVq7y>jpU_}98lU^^fbhBxt;yQ=`RXf7 zzWcIk_b>|aMKE)2nfrmIN0HmU!Eu+Q-lvI^Ydi()El<4;|1@>;o~L^CJ2QjyKF^%a z`^;>=<+6sWvTJrm#>|zt}NF3x-xk0tFZl6 z*EX;Fy0&=l>$v|`HxBE4+c2gtTbI{;+q!x0+q`<~JCF6g@4USCUDr@vE` zKFm@+!S*A#X>WGNeW{0=r~F(SXqVID|NCX|{$B@H9>|)rU)n1omSfLMo3;E8b>F>b z`*Y3S{@3dMng-0ymv(2?AKM^_x{QMZeOvV<-9TeALD_4H{Jd(ozEzz zaL3hwVbesWb$5TSJ;t!9?aSHoEQj1=Gv-gTS&-%OAS*6>j_$|Ecm?(Pc7=O@0vAl=UiVJU6B>oLy%xze>W5UC~5f8=r z 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
PUH8jfzW!&r>#wOV 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
*eE4I7rD48;-Qcb$2Y+~b^t!&clYmrOFb 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 V{{KH*{X@PV4FVF4k%Aly)&OMDFRlOp literal 0 HcmV?d00001 diff --git a/plugins/z/img/mit_license.svg b/plugins/z/img/mit_license.svg new file mode 100644 index 000000000..1c02079d7 --- /dev/null +++ b/plugins/z/img/mit_license.svg @@ -0,0 +1 @@ +licenselicenseMITMIT \ No newline at end of file diff --git a/plugins/z/img/zsh_4.3.11_plus.svg b/plugins/z/img/zsh_4.3.11_plus.svg new file mode 100644 index 000000000..f46d947d0 --- /dev/null +++ b/plugins/z/img/zsh_4.3.11_plus.svg @@ -0,0 +1 @@ +zshzsh4.3.11+4.3.11+ \ No newline at end of file diff --git a/plugins/z/z.plugin.zsh b/plugins/z/z.plugin.zsh index 209edfea7..a41a4ae25 100644 --- a/plugins/z/z.plugin.zsh +++ b/plugins/z/z.plugin.zsh @@ -4,7 +4,7 @@ # # https://github.com/agkozak/zsh-z # -# Copyright (c) 2018-2022 Alexandros Kozak +# Copyright (c) 2018-2023 Alexandros Kozak # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal @@ -52,6 +52,7 @@ # ZSHZ_CASE -> if `ignore', pattern matching is case-insensitive; if `smart', # pattern matching is case-insensitive only when the pattern is all # lowercase +# ZSHZ_CD -> the directory-changing command that is used (default: builtin cd) # ZSHZ_CMD -> name of command (default: z) # ZSHZ_COMPLETION -> completion method (default: 'frecent'; 'legacy' for # alphabetic sorting) @@ -99,20 +100,30 @@ With no ARGUMENT, list the directory history in ascending rank. } # Load zsh/datetime module, if necessary -(( $+EPOCHSECONDS )) || zmodload zsh/datetime - -# Load zsh/files, if necessary -[[ ${builtins[zf_chown]} == 'defined' && - ${builtins[zf_mv]} == 'defined' && - ${builtins[zf_rm]} == 'defined' ]] || - zmodload -F zsh/files b:zf_chown b:zf_mv b:zf_rm - -# Load zsh/system, if necessary -[[ ${modules[zsh/system]} == 'loaded' ]] || zmodload zsh/system &> /dev/null +(( ${+EPOCHSECONDS} )) || zmodload zsh/datetime # Global associative array for internal use typeset -gA ZSHZ +# Fallback utilities in case Zsh lacks zsh/files (as is the case with MobaXterm) +ZSHZ[CHOWN]='chown' +ZSHZ[MV]='mv' +ZSHZ[RM]='rm' +# Try to load zsh/files utilities +if [[ ${builtins[zf_chown]-} != 'defined' || + ${builtins[zf_mv]-} != 'defined' || + ${builtins[zf_rm]-} != 'defined' ]]; then + zmodload -F zsh/files b:zf_chown b:zf_mv b:zf_rm &> /dev/null +fi +# Use zsh/files, if it is available +[[ ${builtins[zf_chown]-} == 'defined' ]] && ZSHZ[CHOWN]='zf_chown' +[[ ${builtins[zf_mv]-} == 'defined' ]] && ZSHZ[MV]='zf_mv' +[[ ${builtins[zf_rm]-} == 'defined' ]] && ZSHZ[RM]='zf_rm' + + +# Load zsh/system, if necessary +[[ ${modules[zsh/system]-} == 'loaded' ]] || zmodload zsh/system &> /dev/null + # Make sure ZSHZ_EXCLUDE_DIRS has been declared so that other scripts can # simply append to it (( ${+ZSHZ_EXCLUDE_DIRS} )) || typeset -gUa ZSHZ_EXCLUDE_DIRS @@ -129,6 +140,7 @@ is-at-least 5.3.0 && ZSHZ[PRINTV]=1 # Globals: # ZSHZ # ZSHZ_CASE +# ZSHZ_CD # ZSHZ_COMPLETION # ZSHZ_DATA # ZSHZ_DEBUG @@ -143,15 +155,25 @@ is-at-least 5.3.0 && ZSHZ[PRINTV]=1 zshz() { # Don't use `emulate -L zsh' - it breaks PUSHD_IGNORE_DUPS - setopt LOCAL_OPTIONS NO_KSH_ARRAYS NO_SH_WORD_SPLIT EXTENDED_GLOB + setopt LOCAL_OPTIONS NO_KSH_ARRAYS NO_SH_WORD_SPLIT EXTENDED_GLOB UNSET (( ZSHZ_DEBUG )) && setopt LOCAL_OPTIONS WARN_CREATE_GLOBAL local REPLY local -a lines - # Allow the user to specify the datafile name in $ZSHZ_DATA (default: ~/.z) + # Allow the user to specify a custom datafile in $ZSHZ_DATA (or legacy $_Z_DATA) + local custom_datafile="${ZSHZ_DATA:-$_Z_DATA}" + + # If a datafile was provided as a standalone file without a directory path + # print a warning and exit + if [[ -n ${custom_datafile} && ${custom_datafile} != */* ]]; then + print "ERROR: You configured a custom Zsh-z datafile (${custom_datafile}), but have not specified its directory." >&2 + exit + fi + + # If the user specified a datafile, use that or default to ~/.z # If the datafile is a symlink, it gets dereferenced - local datafile=${${ZSHZ_DATA:-${_Z_DATA:-${HOME}/.z}}:A} + local datafile=${${custom_datafile:-$HOME/.z}:A} # If the datafile is a directory, print a warning and exit if [[ -d $datafile ]]; then @@ -161,7 +183,7 @@ zshz() { # Make sure that the datafile exists before attempting to read it or lock it # for writing - [[ -f $datafile ]] || touch "$datafile" + [[ -f $datafile ]] || { mkdir -p "${datafile:h}" && touch "$datafile" } # Bail if we don't own the datafile and $ZSHZ_OWNER is not set [[ -z ${ZSHZ_OWNER:-${_Z_OWNER}} && -f $datafile && ! -O $datafile ]] && @@ -265,7 +287,7 @@ zshz() { if (( ret != 0 )); then # Avoid clobbering the datafile if the write to tempfile failed - zf_rm -f "$tempfile" + ${ZSHZ[RM]} -f "$tempfile" return $ret fi @@ -273,16 +295,17 @@ zshz() { owner=${ZSHZ_OWNER:-${_Z_OWNER}} if (( ZSHZ[USE_FLOCK] )); then - zf_mv "$tempfile" "$datafile" 2> /dev/null || zf_rm -f "$tempfile" + ${ZSHZ[MV]} "$tempfile" "$datafile" 2> /dev/null || ${ZSHZ[RM]} -f "$tempfile" if [[ -n $owner ]]; then - zf_chown ${owner}:"$(id -ng ${owner})" "$datafile" + ${ZSHZ[CHOWN]} ${owner}:"$(id -ng ${owner})" "$datafile" fi else if [[ -n $owner ]]; then - zf_chown "${owner}":"$(id -ng "${owner}")" "$tempfile" + ${ZSHZ[CHOWN]} "${owner}":"$(id -ng "${owner}")" "$tempfile" fi - zf_mv -f "$tempfile" "$datafile" 2> /dev/null || zf_rm -f "$tempfile" + ${ZSHZ[MV]} -f "$tempfile" "$datafile" 2> /dev/null || + ${ZSHZ[RM]} -f "$tempfile" fi # In order to make z -x work, we have to disable zsh-z's adding @@ -294,7 +317,7 @@ zshz() { } ############################################################ - # Read the curent datafile contents, update them, "age" them + # Read the current datafile contents, update them, "age" them # when the total rank gets high enough, and print the new # contents to STDOUT. # @@ -620,7 +643,7 @@ zshz() { *) # Frecency routine (( dx = EPOCHSECONDS - time_field )) - rank=$(( 10000 * rank_field * (3.75/((0.0001 * dx + 1) + 0.25)) )) + rank=$(( 10000 * rank_field * (3.75/( (0.0001 * dx + 1) + 0.25)) )) ;; esac @@ -756,6 +779,26 @@ zshz() { [[ $output_format != 'completion' ]] && output_format='list' } + ######################################################### + # Allow the user to specify directory-changing command + # using $ZSHZ_CD (default: builtin cd). + # + # Globals: + # ZSHZ_CD + # + # Arguments: + # $* Path + ######################################################### + zshz_cd() { + setopt LOCAL_OPTIONS NO_WARN_CREATE_GLOBAL + + if [[ -z $ZSHZ_CD ]]; then + builtin cd "$*" + else + ${=ZSHZ_CD} "$*" + fi + } + ######################################################### # If $ZSHZ_ECHO == 1, display paths as you jump to them. # If it is also the case that $ZSHZ_TILDE == 1, display @@ -773,7 +816,7 @@ zshz() { if [[ ${@: -1} == /* ]] && (( ! $+opts[-e] && ! $+opts[-l] )); then # cd if possible; echo the new path if $ZSHZ_ECHO == 1 - [[ -d ${@: -1} ]] && builtin cd ${@: -1} && _zshz_echo && return + [[ -d ${@: -1} ]] && zshz_cd ${@: -1} && _zshz_echo && return fi # With option -c, make sure query string matches beginning of matches; @@ -830,12 +873,12 @@ zshz() { print -- "$cd" else # cd if possible; echo the new path if $ZSHZ_ECHO == 1 - [[ -d $cd ]] && builtin cd "$cd" && _zshz_echo + [[ -d $cd ]] && zshz_cd "$cd" && _zshz_echo fi else # if $req is a valid path, cd to it; echo the new path if $ZSHZ_ECHO == 1 if ! (( $+opts[-e] || $+opts[-l] )) && [[ -d $req ]]; then - builtin cd "$req" && _zshz_echo + zshz_cd "$req" && _zshz_echo else return $ret2 fi @@ -852,6 +895,9 @@ alias ${ZSHZ_CMD:-${_Z_CMD:-z}}='zshz 2>&1' # ZSHZ ############################################################ _zshz_precmd() { + # Protect against `setopt NO_UNSET' + setopt LOCAL_OPTIONS UNSET + # Do not add PWD to datafile when in HOME directory, or # if `z -x' has just been run [[ $PWD == "$HOME" ]] || (( ZSHZ[DIRECTORY_REMOVED] )) && return @@ -899,10 +945,10 @@ add-zsh-hook chpwd _zshz_chpwd # Completion ############################################################ -# Standarized $0 handling -# (See https://github.com/agkozak/Zsh-100-Commits-Club/blob/master/Zsh-Plugin-Standard.adoc) -0=${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}} -0=${${(M)0:#/*}:-$PWD/$0} +# Standardized $0 handling +# https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html +0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}" +0="${${(M)0:#/*}:-$PWD/$0}" (( ${fpath[(ie)${0:A:h}]} <= ${#fpath} )) || fpath=( "${0:A:h}" "${fpath[@]}" ) @@ -926,7 +972,7 @@ ZSHZ[FUNCTIONS]='_zshz_usage # Enable WARN_NESTED_VAR for functions listed in # ZSHZ[FUNCTIONS] ############################################################ -(( ZSHZ_DEBUG )) && () { +(( ${+ZSHZ_DEBUG} )) && () { if is-at-least 5.4.0; then local x for x in ${=ZSHZ[FUNCTIONS]}; do diff --git a/plugins/zoxide/README.md b/plugins/zoxide/README.md index f326effe6..45f77bdf5 100644 --- a/plugins/zoxide/README.md +++ b/plugins/zoxide/README.md @@ -10,5 +10,8 @@ To use it, add `zoxide` to the plugins array in your `.zshrc` file: ```zsh plugins=(... zoxide) ``` +## Overriding `z` Alias + +You can set the `ZOXIDE_CMD_OVERRIDE`, which will be passed to the `--cmd` flag of `zoxide init`. This allows you to set your `z` command to a default of `cd`. **Note:** you have to [install zoxide](https://github.com/ajeetdsouza/zoxide#step-1-install-zoxide) first. diff --git a/plugins/zoxide/zoxide.plugin.zsh b/plugins/zoxide/zoxide.plugin.zsh index e5658b8f0..25d2e8377 100644 --- a/plugins/zoxide/zoxide.plugin.zsh +++ b/plugins/zoxide/zoxide.plugin.zsh @@ -1,5 +1,5 @@ if (( $+commands[zoxide] )); then - eval "$(zoxide init zsh)" + eval "$(zoxide init --cmd ${ZOXIDE_CMD_OVERRIDE:-z} zsh)" else echo '[oh-my-zsh] zoxide not found, please install it from https://github.com/ajeetdsouza/zoxide' fi diff --git a/plugins/zsh-navigation-tools/n-list b/plugins/zsh-navigation-tools/n-list index f25db8f60..a852b083a 100644 --- a/plugins/zsh-navigation-tools/n-list +++ b/plugins/zsh-navigation-tools/n-list @@ -467,7 +467,7 @@ while (( 1 )); do elif [ -n "$keypad" ]; then final_key="$keypad" else - _nlist_status_msg "Inproper input detected" + _nlist_status_msg "Improper input detected" zcurses refresh main inner fi diff --git a/themes/Soliah.zsh-theme b/themes/Soliah.zsh-theme index c3dd6af89..e297fe9ca 100644 --- a/themes/Soliah.zsh-theme +++ b/themes/Soliah.zsh-theme @@ -5,10 +5,10 @@ ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[white]%}" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%})" # Text to display if the branch is dirty -ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}*%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}*%{$reset_color%}" # Text to display if the branch is clean -ZSH_THEME_GIT_PROMPT_CLEAN="" +ZSH_THEME_GIT_PROMPT_CLEAN="" # Colors vary depending on time lapsed. ZSH_THEME_GIT_TIME_SINCE_COMMIT_SHORT="%{$fg[green]%}" @@ -36,7 +36,7 @@ function rvm_gemset() { GEMSET=`rvm gemset list | grep '=>' | cut -b4-` if [[ -n $GEMSET ]]; then echo "%{$fg[yellow]%}$GEMSET%{$reset_color%}|" - fi + fi fi } @@ -52,12 +52,12 @@ function git_time_since_commit() { # Totals MINUTES=$((seconds_since_last_commit / 60)) HOURS=$((seconds_since_last_commit/3600)) - + # Sub-hours and sub-minutes DAYS=$((seconds_since_last_commit / 86400)) SUB_HOURS=$((HOURS % 24)) SUB_MINUTES=$((MINUTES % 60)) - + if [[ -n $(git status -s 2> /dev/null) ]]; then if [ "$MINUTES" -gt 30 ]; then COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_LONG" diff --git a/themes/adben.zsh-theme b/themes/adben.zsh-theme index c2fdbed23..cc097057f 100644 --- a/themes/adben.zsh-theme +++ b/themes/adben.zsh-theme @@ -79,7 +79,7 @@ ps1_command_tip() { command wget -qO- https://www.commandlinefu.com/commands/random/plaintext elif (( ${+commands[curl]} )); then command curl -fsL https://www.commandlinefu.com/commands/random/plaintext - fi + fi } | sed '1d;/^$/d' } diff --git a/themes/agnoster.zsh-theme b/themes/agnoster.zsh-theme index 88854eccd..c2a542163 100644 --- a/themes/agnoster.zsh-theme +++ b/themes/agnoster.zsh-theme @@ -96,7 +96,7 @@ prompt_context() { # Git: branch/detached head, dirty status prompt_git() { (( $+commands[git] )) || return - if [[ "$(git config --get oh-my-zsh.hide-status 2>/dev/null)" = 1 ]]; then + if [[ "$(command git config --get oh-my-zsh.hide-status 2>/dev/null)" = 1 ]]; then return fi local PL_BRANCH_CHAR @@ -106,10 +106,12 @@ prompt_git() { } local ref dirty mode repo_path - if [[ "$(git rev-parse --is-inside-work-tree 2>/dev/null)" = "true" ]]; then - repo_path=$(git rev-parse --git-dir 2>/dev/null) + if [[ "$(command git rev-parse --is-inside-work-tree 2>/dev/null)" = "true" ]]; then + repo_path=$(command git rev-parse --git-dir 2>/dev/null) dirty=$(parse_git_dirty) - ref=$(git symbolic-ref HEAD 2> /dev/null) || ref="➦ $(git rev-parse --short HEAD 2> /dev/null)" + ref=$(command git symbolic-ref HEAD 2> /dev/null) || \ + ref="β—ˆ $(command git describe --exact-match --tags HEAD 2> /dev/null)" || \ + ref="➦ $(command git rev-parse --short HEAD 2> /dev/null)" if [[ -n $dirty ]]; then prompt_segment yellow black else @@ -117,8 +119,8 @@ prompt_git() { fi local ahead behind - ahead=$(git log --oneline @{upstream}.. 2>/dev/null) - behind=$(git log --oneline ..@{upstream} 2>/dev/null) + ahead=$(command git log --oneline @{upstream}.. 2>/dev/null) + behind=$(command git log --oneline ..@{upstream} 2>/dev/null) if [[ -n "$ahead" ]] && [[ -n "$behind" ]]; then PL_BRANCH_CHAR=$'\u21c5' elif [[ -n "$ahead" ]]; then @@ -161,10 +163,10 @@ prompt_bzr() { done local bzr_status status_mod status_all revision - if bzr_status=$(bzr status 2>&1); then + if bzr_status=$(command bzr status 2>&1); then status_mod=$(echo -n "$bzr_status" | head -n1 | grep "modified" | wc -m) status_all=$(echo -n "$bzr_status" | head -n1 | wc -m) - revision=${$(bzr log -r-1 --log-format line | cut -d: -f1):gs/%/%%} + revision=${$(command bzr log -r-1 --log-format line | cut -d: -f1):gs/%/%%} if [[ $status_mod -gt 0 ]] ; then prompt_segment yellow black "bzr@$revision ✚" else @@ -180,13 +182,13 @@ prompt_bzr() { prompt_hg() { (( $+commands[hg] )) || return local rev st branch - if $(hg id >/dev/null 2>&1); then - if $(hg prompt >/dev/null 2>&1); then - if [[ $(hg prompt "{status|unknown}") = "?" ]]; then + if $(command hg id >/dev/null 2>&1); then + if $(command hg prompt >/dev/null 2>&1); then + if [[ $(command hg prompt "{status|unknown}") = "?" ]]; then # if files are not added prompt_segment red white st='Β±' - elif [[ -n $(hg prompt "{status|modified}") ]]; then + elif [[ -n $(command hg prompt "{status|modified}") ]]; then # if any modification prompt_segment yellow black st='Β±' @@ -194,15 +196,15 @@ prompt_hg() { # if working copy is clean prompt_segment green $CURRENT_FG fi - echo -n ${$(hg prompt "☿ {rev}@{branch}"):gs/%/%%} $st + echo -n ${$(command hg prompt "☿ {rev}@{branch}"):gs/%/%%} $st else st="" - rev=$(hg id -n 2>/dev/null | sed 's/[^-0-9]//g') - branch=$(hg id -b 2>/dev/null) - if `hg st | grep -q "^\?"`; then + rev=$(command hg id -n 2>/dev/null | sed 's/[^-0-9]//g') + branch=$(command hg id -b 2>/dev/null) + if command hg st | command grep -q "^\?"; then prompt_segment red black st='Β±' - elif `hg st | grep -q "^[MA]"`; then + elif command hg st | command grep -q "^[MA]"; then prompt_segment yellow black st='Β±' else diff --git a/themes/avit.zsh-theme b/themes/avit.zsh-theme index 1279ea919..0e39d9077 100644 --- a/themes/avit.zsh-theme +++ b/themes/avit.zsh-theme @@ -11,7 +11,12 @@ $(_user_host)${_current_dir} $(git_prompt_info) $(ruby_prompt_info) PROMPT2='%{%(!.${fg[red]}.${fg[white]})%}β—€%{$reset_color%} ' -RPROMPT='$(vi_mode_prompt_info)%{$(echotc UP 1)%}$(_git_time_since_commit) $(git_prompt_status) ${_return_status}%{$(echotc DO 1)%}' +__RPROMPT='$(vi_mode_prompt_info)%{$(echotc UP 1)%}$(_git_time_since_commit) $(git_prompt_status) ${_return_status}%{$(echotc DO 1)%}' +if [[ -z $RPROMPT ]]; then + RPROMPT=$__RPROMPT +else + RPROMPT="${RPROMPT} ${__RPROMPT}" +fi function _user_host() { local me diff --git a/themes/awesomepanda.zsh-theme b/themes/awesomepanda.zsh-theme index 85036e4ac..000697397 100644 --- a/themes/awesomepanda.zsh-theme +++ b/themes/awesomepanda.zsh-theme @@ -1,6 +1,6 @@ # the svn plugin has to be activated for this to work. local ret_status="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ %s)" -PROMPT='${ret_status}%{$fg_bold[green]%} %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%}$(svn_prompt_info)%{$reset_color%}' +PROMPT='%{${ret_status}%}%{$fg_bold[green]%} %{$fg[cyan]%}%c %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%}$(svn_prompt_info)%{$reset_color%}' ZSH_THEME_GIT_PROMPT_PREFIX="git:(%{$fg[red]%}" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" diff --git a/themes/bira.zsh-theme b/themes/bira.zsh-theme index 42a70a018..f909afa62 100644 --- a/themes/bira.zsh-theme +++ b/themes/bira.zsh-theme @@ -6,10 +6,15 @@ local current_dir="%B%{$fg[blue]%}%~ %{$reset_color%}" local vcs_branch='$(git_prompt_info)$(hg_prompt_info)' local rvm_ruby='$(ruby_prompt_info)' local venv_prompt='$(virtualenv_prompt_info)' +if [[ "${plugins[@]}" =~ 'kube-ps1' ]]; then + local kube_prompt='$(kube_ps1)' +else + local kube_prompt='' +fi ZSH_THEME_RVM_PROMPT_OPTIONS="i v g" -PROMPT="╭─${user_host}${current_dir}${rvm_ruby}${vcs_branch}${venv_prompt} +PROMPT="╭─${user_host}${current_dir}${rvm_ruby}${vcs_branch}${venv_prompt}${kube_prompt} ╰─%B${user_symbol}%b " RPROMPT="%B${return_code}%b" diff --git a/themes/bureau.zsh-theme b/themes/bureau.zsh-theme index 698aa2ff8..e87a594cd 100644 --- a/themes/bureau.zsh-theme +++ b/themes/bureau.zsh-theme @@ -15,6 +15,7 @@ ZSH_THEME_GIT_PROMPT_BEHIND="%{$fg[magenta]%}β–Ύ%{$reset_color%}" ZSH_THEME_GIT_PROMPT_STAGED="%{$fg_bold[green]%}●%{$reset_color%}" ZSH_THEME_GIT_PROMPT_UNSTAGED="%{$fg_bold[yellow]%}●%{$reset_color%}" ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg_bold[red]%}●%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_STASHED="(%{$fg_bold[blue]%}✹%{$reset_color%})" bureau_git_info () { local ref @@ -67,6 +68,12 @@ bureau_git_status() { } bureau_git_prompt() { + # ignore non git folders and hidden repos (adapted from lib/git.zsh) + if ! command git rev-parse --git-dir &> /dev/null \ + || [[ "$(command git config --get oh-my-zsh.hide-info 2>/dev/null)" == 1 ]]; then + return + fi + # check git information local gitinfo=$(bureau_git_info) if [[ -z "$gitinfo" ]]; then diff --git a/themes/crunch.zsh-theme b/themes/crunch.zsh-theme index 8278661ab..d86ce1e4a 100644 --- a/themes/crunch.zsh-theme +++ b/themes/crunch.zsh-theme @@ -1,15 +1,15 @@ # CRUNCH - created from Steve Eley's cat waxing. # Initially hacked from the Dallas theme. Thanks, Dallas Reedy. # -# This theme assumes you do most of your oh-my-zsh'ed "colorful" work at a single machine, -# and eschews the standard space-consuming user and hostname info. Instead, only the +# This theme assumes you do most of your oh-my-zsh'ed "colorful" work at a single machine, +# and eschews the standard space-consuming user and hostname info. Instead, only the # things that vary in my own workflow are shown: # # * The time (not the date) # * The RVM version and gemset (omitting the 'ruby' name if it's MRI) # * The current directory # * The Git branch and its 'dirty' state -# +# # Colors are at the top so you can mess with those separately if you like. # For the most part I stuck with Dallas's. diff --git a/themes/eastwood.zsh-theme b/themes/eastwood.zsh-theme index 88134f8e6..31e24fa7f 100644 --- a/themes/eastwood.zsh-theme +++ b/themes/eastwood.zsh-theme @@ -1,5 +1,5 @@ # RVM settings -if [[ -s ~/.rvm/scripts/rvm ]] ; then +if [[ -s ~/.rvm/scripts/rvm ]] ; then RPS1="%{$fg[yellow]%}rvm:%{$reset_color%}%{$fg[red]%}\$(~/.rvm/bin/rvm-prompt)%{$reset_color%} $EPS1" else if which rbenv &> /dev/null; then diff --git a/themes/emotty.zsh-theme b/themes/emotty.zsh-theme index ba0840950..0fea7d916 100644 --- a/themes/emotty.zsh-theme +++ b/themes/emotty.zsh-theme @@ -11,7 +11,7 @@ # # There are pre-defined different emoji sets to choose from, e.g.: # emoji, stellar, floral, zodiac, love (see emotty plugin). -# +# # To choose a different emotty set than the default (emoji) # % export emotty_set=nature # @@ -95,7 +95,7 @@ zstyle ':vcs_info:*' stagedstr "${green}${vcs_staged_glyph}" # %(k|f) reset (back|fore)ground color zstyle ':vcs_info:*' max-exports 3 zstyle ':vcs_info:*' nvcsformats "${prompt_glyph}" '%3~' '' -zstyle ':vcs_info:*' formats "${yellow}%u%c%b${vcs_branch_glyph}%f" '%S|' "$FX[bold]%r$FX[no-bold]" +zstyle ':vcs_info:*' formats "${yellow}%u%c%b${vcs_branch_glyph}%f" '%S|' "$FX[bold]%r$FX[no-bold]" zstyle ':vcs_info:*' actionformats "${red}%K{white}%a${vcs_action_glyph}%k%f" '%S|' "$FX[bold]%r$FX[no-bold]" red_if_root="%(!.%F{red}.)" diff --git a/themes/essembeh.zsh-theme b/themes/essembeh.zsh-theme index 43d4093b1..50b3f7772 100644 --- a/themes/essembeh.zsh-theme +++ b/themes/essembeh.zsh-theme @@ -8,7 +8,7 @@ # - prefix to detect docker containers or chroot # - git plugin to display current branch and status -# git plugin +# git plugin ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[cyan]%}(" ZSH_THEME_GIT_PROMPT_SUFFIX=") %{$reset_color%}" ZSH_THEME_GIT_PROMPT_UNTRACKED="%%" @@ -35,7 +35,7 @@ if [[ -n "$SSH_CONNECTION" ]]; then ZSH_ESSEMBEH_PREFIX="%{$fg[yellow]%}[$(echo $SSH_CONNECTION | awk '{print $1}')]%{$reset_color%} " # use red color to highlight a remote connection ZSH_ESSEMBEH_COLOR="red" -elif [[ -r /etc/debian_chroot ]]; then +elif [[ -r /etc/debian_chroot ]]; then # prefix prompt in case of chroot ZSH_ESSEMBEH_PREFIX="%{$fg[yellow]%}[chroot:$(cat /etc/debian_chroot)]%{$reset_color%} " elif [[ -r /.dockerenv ]]; then diff --git a/themes/fino-time.zsh-theme b/themes/fino-time.zsh-theme index c7e2d965e..3f9360ac5 100644 --- a/themes/fino-time.zsh-theme +++ b/themes/fino-time.zsh-theme @@ -12,6 +12,7 @@ # Also borrowing from http://stevelosh.com/blog/2010/02/my-extravagant-zsh-prompt/ function virtualenv_info { + [ $CONDA_DEFAULT_ENV ] && echo "($CONDA_DEFAULT_ENV) " [ $VIRTUAL_ENV ] && echo '('`basename $VIRTUAL_ENV`') ' } diff --git a/themes/gallois.zsh-theme b/themes/gallois.zsh-theme index bb97bfb17..3fc349072 100644 --- a/themes/gallois.zsh-theme +++ b/themes/gallois.zsh-theme @@ -1,24 +1,140 @@ # Depends on the git plugin for work_in_progress() (( $+functions[work_in_progress] )) || work_in_progress() {} -ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[green]%}[" -ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%}" -ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}*%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[cyan]%}[%{$fg[green]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$fg[cyan]%}]" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}" ZSH_THEME_GIT_PROMPT_CLEAN="" # Customized git status, oh-my-zsh currently does not allow render dirty status before branch git_custom_status() { local branch=$(git_current_branch) [[ -n "$branch" ]] || return 0 - echo "$(parse_git_dirty)\ -%{${fg_bold[yellow]}%}$(work_in_progress)%{$reset_color%}\ -${ZSH_THEME_GIT_PROMPT_PREFIX}${branch}${ZSH_THEME_GIT_PROMPT_SUFFIX}" + print "%{${fg_bold[yellow]}%}$(work_in_progress)%{$reset_color%}\ +${ZSH_THEME_GIT_PROMPT_PREFIX}$(parse_git_dirty)${branch}\ +${ZSH_THEME_GIT_PROMPT_SUFFIX}" +} +autoload -U colors && colors + +#export VCS_PROMPT=hg_prompt_info +export VCS_PROMPT=git_custom_status + +base_prompt="%{$fg[cyan]%}[%~% ]%(?.%{$fg[green]%}.%{$fg[red]%})%B$%b " +custom_prompt="" +last_run_time="" +last_vcs_info="" + + +function pipestatus_parse { + PIPESTATUS="$pipestatus" + ERROR=0 + for i in "${(z)PIPESTATUS}"; do + if [[ "$i" -ne 0 ]]; then + ERROR=1 + fi + done + + if [[ "$ERROR" -ne 0 ]]; then + print "[%{$fg[red]%}$PIPESTATUS%{$fg[cyan]%}]" + fi } -# RVM component of prompt -ZSH_THEME_RUBY_PROMPT_PREFIX="%{$fg[red]%}[" -ZSH_THEME_RUBY_PROMPT_SUFFIX="]%{$reset_color%}" # Combine it all into a final right-side prompt -RPS1="\$(git_custom_status)\$(ruby_prompt_info)${RPS1:+ $RPS1}" PROMPT='%{$fg[cyan]%}[%~% ]%(?.%{$fg[green]%}.%{$fg[red]%})%B$%b ' +function preexec() { + last_run_time=$(perl -MTime::HiRes=time -e 'printf "%.9f\n", time') +} + +function duration() { + local duration + local now=$(perl -MTime::HiRes=time -e 'printf "%.9f\n", time') + local last=$1 + local last_split=("${(@s/./)last}") + local now_split=("${(@s/./)now}") + local T=$((now_split[1] - last_split[1])) + local D=$((T/60/60/24)) + local H=$((T/60/60%24)) + local M=$((T/60%60)) + local S=$((T%60)) + local s=$(((now_split[2] - last_split[2]) / 1000000000.)) + local m=$(((now_split[2] - last_split[2]) / 1000000.)) + + (( $D > 0 )) && duration+="${D}d" + (( $H > 0 )) && duration+="${H}h" + (( $M > 0 )) && duration+="${M}m" + + if [[ $S -le 0 ]]; then + printf "%ims" "$m" + else + if ! [[ -z $duration ]] && printf "%s" "$duration" + local sec_milli=$((S + s)) + printf "%.3fs" "$sec_milli" + fi +} + +function precmd() { + RETVAL=$(pipestatus_parse) + local info="" + + if [ ! -z "$last_run_time" ]; then + local elapsed=$(duration $last_run_time) + last_run_time=$(print $last_run_time | tr -d ".") + if [ $(( $(perl -MTime::HiRes=time -e 'printf "%.9f\n", time' | tr -d ".") - $last_run_time )) -gt $(( 120 * 1000 * 1000 * 1000 )) ]; then + local elapsed_color="%{$fg[magenta]%}" + elif [ $(( $(perl -MTime::HiRes=time -e 'printf "%.9f\n", time' | tr -d ".") - $last_run_time )) -gt $(( 60 * 1000 * 1000 * 1000 )) ]; then + local elapsed_color="%{$fg[red]%}" + elif [ $(( $(perl -MTime::HiRes=time -e 'printf "%.9f\n", time' | tr -d ".") - $last_run_time )) -gt $(( 10 * 1000 * 1000 * 1000 )) ]; then + local elapsed_color="%{$fg[yellow]%}" + else + local elapsed_color="%{$fg[green]%}" + fi + info=$(printf "%s%s%s%s%s" "%{$fg[cyan]%}[" "$elapsed_color" "$elapsed" "%{$fg[cyan]%}]" "$RETVAL") + unset last_run_time + fi + + if [ -z "$info" -a ! -z "$last_vcs_info" ]; then + custom_prompt="$last_vcs_info$base_prompt" + return; + fi + + if (( ${+VCS_PROMPT} )); then + last_vcs_info=$($VCS_PROMPT) + if [ ! -z "$last_vcs_info" ]; then + [ -z "$info" ] && info=$last_vcs_info || info="$info$last_vcs_info" + fi + fi + + [ -z "$info" ] && custom_prompt="$base_prompt" || custom_prompt="$info$base_prompt" +} + +function hg_prompt_info() { + unset output info parts branch_parts branch + + local output="" + if ! output="$(hg status 2> /dev/null)"; then + return + fi + + local info=$(hg log -l1 --template '{author}:{node|short}:{remotenames}:{phabdiff}') + local parts=(${(@s/:/)info}) + local branch_parts=(${(@s,/,)parts[3]}) + local branch=${branch_parts[-1]} + [ ! -z "${parts[3]}" ] && [[ "${parts[1]}" =~ "$USER@" ]] && branch=${parts[3]} + [ -z "${parts[3]}" ] && branch=${parts[2]} + + if [[ ! -z "$output" ]]; then + local color="%{$fg[red]%}" + elif [[ "${branch}" == "master" || "${branch}" == "warm" ]]; then + local color="%{$fg[yellow]%}" + else + local color="%{$fg[green]%}" + fi + + print "%{$fg[cyan]%}[${color}${branch}%{$fg[cyan]%}]" +} + +setopt PROMPT_SUBST +PROMPT='$custom_prompt' + + diff --git a/themes/gnzh.zsh-theme b/themes/gnzh.zsh-theme index 1e6c4e93b..ca62320e2 100644 --- a/themes/gnzh.zsh-theme +++ b/themes/gnzh.zsh-theme @@ -21,7 +21,7 @@ fi if [[ -n "$SSH_CLIENT" || -n "$SSH2_CLIENT" ]]; then PR_HOST='%F{red}%M%f' # SSH else - PR_HOST='%F{green}%M%f' # no SSH + PR_HOST='%F{green}%m%f' # no SSH fi diff --git a/themes/half-life.zsh-theme b/themes/half-life.zsh-theme index c4d785126..2ad84ac83 100644 --- a/themes/half-life.zsh-theme +++ b/themes/half-life.zsh-theme @@ -89,5 +89,9 @@ ZSH_THEME_RUBY_PROMPT_PREFIX="with%F{red} " ZSH_THEME_RUBY_PROMPT_SUFFIX="%{$reset_color%}" ZSH_THEME_RVM_PROMPT_OPTIONS="v g" +# virtualenv prompt settings +ZSH_THEME_VIRTUALENV_PREFIX=" with%F{red} " +ZSH_THEME_VIRTUALENV_SUFFIX="%{$reset_color%}" + setopt prompt_subst -PROMPT="${purple}%n%{$reset_color%} in ${limegreen}%~%{$reset_color%}\$(ruby_prompt_info)\$vcs_info_msg_0_${orange} Ξ»%{$reset_color%} " +PROMPT="${purple}%n%{$reset_color%} in ${limegreen}%~%{$reset_color%}\$(virtualenv_prompt_info)\$(ruby_prompt_info)\$vcs_info_msg_0_${orange} Ξ»%{$reset_color%} " diff --git a/themes/josh.zsh-theme b/themes/josh.zsh-theme index ea051c58e..df59280d7 100644 --- a/themes/josh.zsh-theme +++ b/themes/josh.zsh-theme @@ -15,7 +15,7 @@ function josh_prompt { branch_size=${#branch} ruby_size=${#ruby_version} user_machine_size=${#${(%):-%n@%m-}} - + if [[ ${#branch} -eq 0 ]] then (( ruby_size = ruby_size + 1 )) else @@ -24,15 +24,15 @@ function josh_prompt { (( branch_size = branch_size + 2 )) fi fi - + (( spare_width = ${spare_width} - (${user_machine_size} + ${path_size} + ${branch_size} + ${ruby_size}) )) while [ ${#prompt} -lt $spare_width ]; do prompt=" $prompt" done - + prompt="%{%F{green}%}$PWD$prompt%{%F{red}%}$(ruby_prompt_info)%{$reset_color%} $(git_current_branch)" - + echo $prompt } diff --git a/themes/junkfood.zsh-theme b/themes/junkfood.zsh-theme index 01fae4b95..e3b746c7a 100644 --- a/themes/junkfood.zsh-theme +++ b/themes/junkfood.zsh-theme @@ -3,10 +3,10 @@ # Grab the current date (%W) and time (%t): JUNKFOOD_TIME_="%{$fg_bold[red]%}#%{$fg_bold[white]%}( %{$fg_bold[yellow]%}%W%{$reset_color%}@%{$fg_bold[white]%}%t )( %{$reset_color%}" -# Grab the current machine name +# Grab the current machine name JUNKFOOD_MACHINE_="%{$fg_bold[blue]%}%m%{$fg[white]%} ):%{$reset_color%}" -# Grab the current username +# Grab the current username JUNKFOOD_CURRENT_USER_="%{$fg_bold[green]%}%n%{$reset_color%}" # Grab the current filepath, use shortcuts: ~/Desktop diff --git a/themes/michelebologna.zsh-theme b/themes/michelebologna.zsh-theme index bb86d68db..b13b2caf1 100644 --- a/themes/michelebologna.zsh-theme +++ b/themes/michelebologna.zsh-theme @@ -29,14 +29,13 @@ local cyan="%{$fg_bold[cyan]%}" local yellow="%{$fg_bold[yellow]%}" local blue="%{$fg_bold[blue]%}" local magenta="%{$fg_bold[magenta]%}" -local white="%{$fg_bold[white]%}" local reset="%{$reset_color%}" local -a color_array -color_array=($green $red $cyan $yellow $blue $magenta $white) +color_array=($green $red $cyan $yellow $blue $magenta) -local username_color=$white -local hostname_color=$color_array[$[((#HOST))%7+1]] # choose hostname color based on first character +local username_color=$blue +local hostname_color=$color_array[$[((#HOST))%6+1]] # choose hostname color based on first character local current_dir_color=$blue local username="%n" @@ -66,10 +65,10 @@ function michelebologna_git_prompt { local out=$(git_prompt_info)$(git_prompt_status)$(git_remote_status) [[ -n $out ]] || return printf " %s(%s%s%s)%s" \ - "%{$fg_bold[white]%}" \ + "%{$fg_bold[blue]%}" \ "%{$fg_bold[green]%}" \ "$out" \ - "%{$fg_bold[white]%}" \ + "%{$fg_bold[blue]%}" \ "%{$reset_color%}" } diff --git a/themes/mlh.zsh-theme b/themes/mlh.zsh-theme index c059bf850..94718f8f2 100644 --- a/themes/mlh.zsh-theme +++ b/themes/mlh.zsh-theme @@ -15,7 +15,7 @@ # To customize symbols (e.g MLH_AT_SYMBOL), simply set them as environment variables # for example in your ~/.zshrc file, like this: # MLH_AT_SYMBOL=" at " -# +# # Settings *must* be set before sourcing oh-my-zsh.sh the .zshrc file. # # To easily discover colors and their codes, type `spectrum_ls` in the terminal diff --git a/themes/mortalscumbag.zsh-theme b/themes/mortalscumbag.zsh-theme index d81a7ca06..c9994c0f9 100644 --- a/themes/mortalscumbag.zsh-theme +++ b/themes/mortalscumbag.zsh-theme @@ -1,6 +1,6 @@ function my_git_prompt() { tester=$(git rev-parse --git-dir 2> /dev/null) || return - + INDEX=$(git status --porcelain 2> /dev/null) STATUS="" @@ -51,8 +51,14 @@ function ssh_connection() { fi } +function _toolbox_prompt_info() { + if typeset -f toolbox_prompt_info > /dev/null; then + toolbox_prompt_info + fi +} + local ret_status="%(?:%{$fg_bold[green]%}:%{$fg_bold[red]%})%?%{$reset_color%}" -PROMPT=$'\n$(ssh_connection)%{$fg_bold[green]%}%n@%m%{$reset_color%}$(my_git_prompt) : %~\n[${ret_status}] %# ' +PROMPT=$'\n$(_toolbox_prompt_info)$(ssh_connection)%{$fg_bold[green]%}%n@%m%{$reset_color%}$(my_git_prompt) : %~\n[${ret_status}] %# ' ZSH_THEME_PROMPT_RETURNCODE_PREFIX="%{$fg_bold[red]%}" ZSH_THEME_GIT_PROMPT_PREFIX=" $fg[white]β€Ή %{$fg_bold[yellow]%}" diff --git a/themes/oldgallois.zsh-theme b/themes/oldgallois.zsh-theme new file mode 100644 index 000000000..bb97bfb17 --- /dev/null +++ b/themes/oldgallois.zsh-theme @@ -0,0 +1,24 @@ +# Depends on the git plugin for work_in_progress() +(( $+functions[work_in_progress] )) || work_in_progress() {} + +ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[green]%}[" +ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}*%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_CLEAN="" + +# Customized git status, oh-my-zsh currently does not allow render dirty status before branch +git_custom_status() { + local branch=$(git_current_branch) + [[ -n "$branch" ]] || return 0 + echo "$(parse_git_dirty)\ +%{${fg_bold[yellow]}%}$(work_in_progress)%{$reset_color%}\ +${ZSH_THEME_GIT_PROMPT_PREFIX}${branch}${ZSH_THEME_GIT_PROMPT_SUFFIX}" +} + +# RVM component of prompt +ZSH_THEME_RUBY_PROMPT_PREFIX="%{$fg[red]%}[" +ZSH_THEME_RUBY_PROMPT_SUFFIX="]%{$reset_color%}" + +# Combine it all into a final right-side prompt +RPS1="\$(git_custom_status)\$(ruby_prompt_info)${RPS1:+ $RPS1}" +PROMPT='%{$fg[cyan]%}[%~% ]%(?.%{$fg[green]%}.%{$fg[red]%})%B$%b ' diff --git a/themes/rkj-repos.zsh-theme b/themes/rkj-repos.zsh-theme index 3cb452335..a9fe1a9af 100644 --- a/themes/rkj-repos.zsh-theme +++ b/themes/rkj-repos.zsh-theme @@ -1,7 +1,7 @@ # user, host, full path, and time/date on two lines for easier vgrepping function hg_prompt_info { - if (( $+commands[hg] )) && grep -q "prompt" ~/.hgrc; then + if (( $+commands[hg] )) && [[ -e ~/.hgrc ]] && grep -q "prompt" ~/.hgrc; then hg prompt --angle-brackets "\ %{$reset_color%}><:%{$fg[magenta]%}%{$reset_color%}>\ %{$reset_color%}>\ diff --git a/themes/robbyrussell.zsh-theme b/themes/robbyrussell.zsh-theme index 2fd5f2cdc..cfecfc892 100644 --- a/themes/robbyrussell.zsh-theme +++ b/themes/robbyrussell.zsh-theme @@ -1,7 +1,7 @@ -PROMPT="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ )" -PROMPT+=' %{$fg[cyan]%}%c%{$reset_color%} $(git_prompt_info)' +PROMPT="%(?:%{$fg_bold[green]%}%1{➜%} :%{$fg_bold[red]%}%1{➜%} ) %{$fg[cyan]%}%c%{$reset_color%}" +PROMPT+=' $(git_prompt_info)' ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}git:(%{$fg[red]%}" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} " -ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}βœ—" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}%1{βœ—%}" ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%})" diff --git a/themes/sonicradish.zsh-theme b/themes/sonicradish.zsh-theme index 508611830..db6170969 100644 --- a/themes/sonicradish.zsh-theme +++ b/themes/sonicradish.zsh-theme @@ -1,4 +1,4 @@ -#!/usr/bin/env zsh +#!/usr/bin/env zsh #local return_code="%(?..%{$fg[red]%}%? ↡%{$reset_color%})" setopt promptsubst diff --git a/themes/wedisagree.zsh-theme b/themes/wedisagree.zsh-theme index e9e9d6ef8..358891992 100644 --- a/themes/wedisagree.zsh-theme +++ b/themes/wedisagree.zsh-theme @@ -5,9 +5,9 @@ # - Place that bundle in ~/Library/Application\ Support/SIMBL/Plugins (create that folder if it doesn't exist) # - Open Terminal preferences. Go to Settings -> Text -> More # - Change default colours to your liking. -# +# # Here are the colours from Textmate's Monokai theme: -# +# # Black: 0, 0, 0 # Red: 229, 34, 34 # Green: 166, 227, 45 @@ -28,7 +28,7 @@ PROMPT='%{$fg[magenta]%}[%c] %{$reset_color%}' RPROMPT='${time} %{$fg[magenta]%}$(git_prompt_info)%{$reset_color%}$(git_prompt_status)%{$reset_color%}$(git_prompt_ahead)%{$reset_color%}' # Add this at the start of RPROMPT to include rvm info showing ruby-version@gemset-name -# $(ruby_prompt_info) +# $(ruby_prompt_info) # local time, color coded by last return code time_enabled="%(?.%{$fg[green]%}.%{$fg[red]%})%*%{$reset_color%}" @@ -53,7 +53,7 @@ ZSH_THEME_RUBY_PROMPT_SUFFIX="%{$reset_color%}" # More symbols to choose from: # β˜€ ✹ β˜„ ♆ ♀ ♁ ♐ ♇ β™ˆ ♉ β™š β™› β™œ ♝ β™ž β™Ÿ β™  ♣ ⚒ ⚲ ⚳ ⚴ βš₯ ⚀ ⚦ βš’ βš‘ ⚐ β™Ί β™» β™Ό ☰ ☱ ☲ ☳ ☴ ☡ ☢ ☷ -# ✑ βœ” βœ– ✚ ✱ ✀ ✦ ❀ ➜ ➟ ➼ βœ‚ ✎ ✐ ⨀ ⨁ ⨂ ⨍ ⨎ ⨏ β¨· ⩚ β©› β©‘ β©± β©² β©΅ β©Ά β¨  +# ✑ βœ” βœ– ✚ ✱ ✀ ✦ ❀ ➜ ➟ ➼ βœ‚ ✎ ✐ ⨀ ⨁ ⨂ ⨍ ⨎ ⨏ β¨· ⩚ β©› β©‘ β©± β©² β©΅ β©Ά β¨  # β¬… ⬆ ⬇ ⬈ ⬉ ⬊ ⬋ β¬’ ⬓ ⬔ ⬕ β¬– β¬— ⬘ ⬙ ⬟ ⬀ γ€’ Η€ ǁ Η‚ Δ­ Ε€ Ε¦ # Determine if we are using a gemset. @@ -61,7 +61,7 @@ function rvm_gemset() { GEMSET=`rvm gemset list | grep '=>' | cut -b4-` if [[ -n $GEMSET ]]; then echo "%{$fg[yellow]%}$GEMSET%{$reset_color%}|" - fi + fi } # Determine the time since last commit. If branch is clean, @@ -76,12 +76,12 @@ function git_time_since_commit() { # Totals MINUTES=$((seconds_since_last_commit / 60)) HOURS=$((seconds_since_last_commit/3600)) - + # Sub-hours and sub-minutes DAYS=$((seconds_since_last_commit / 86400)) SUB_HOURS=$((HOURS % 24)) SUB_MINUTES=$((MINUTES % 60)) - + if [[ -n $(git status -s 2> /dev/null) ]]; then if [ "$MINUTES" -gt 30 ]; then COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_LONG" diff --git a/tools/changelog.sh b/tools/changelog.sh index a5cc468f2..c4b26079e 100755 --- a/tools/changelog.sh +++ b/tools/changelog.sh @@ -106,6 +106,9 @@ function parse-commit { message="${match[1]}" # remove CR characters (might be inserted in GitHub UI commit description form) message="${message//$'\r'/}" + # remove lines containing only whitespace + local nlnl=$'\n\n' + message="${message//$'\n'[[:space:]]##$'\n'/$nlnl}" # skip next paragraphs (separated by two newlines or more) message="${message%%$'\n\n'*}" # ... and replace newlines with spaces @@ -157,6 +160,94 @@ function parse-commit { fi } +################################ +# SUPPORTS HYPERLINKS FUNCTION # +################################ + +# The code for checking if a terminal supports hyperlinks is copied from install.sh + +# The [ -t 1 ] check only works when the function is not called from +# a subshell (like in `$(...)` or `(...)`, so this hack redefines the +# function at the top level to always return false when stdout is not +# a tty. +if [ -t 1 ]; then + is_tty() { + true + } +else + is_tty() { + false + } +fi + +# This function uses the logic from supports-hyperlinks[1][2], which is +# made by Kat MarchΓ‘n (@zkat) and licensed under the Apache License 2.0. +# [1] https://github.com/zkat/supports-hyperlinks +# [2] https://crates.io/crates/supports-hyperlinks +# +# Copyright (c) 2021 Kat MarchΓ‘n +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +supports_hyperlinks() { + # $FORCE_HYPERLINK must be set and be non-zero (this acts as a logic bypass) + if [ -n "$FORCE_HYPERLINK" ]; then + [ "$FORCE_HYPERLINK" != 0 ] + return $? + fi + + # If stdout is not a tty, it doesn't support hyperlinks + is_tty || return 1 + + # DomTerm terminal emulator (domterm.org) + if [ -n "$DOMTERM" ]; then + return 0 + fi + + # VTE-based terminals above v0.50 (Gnome Terminal, Guake, ROXTerm, etc) + if [ -n "$VTE_VERSION" ]; then + [ $VTE_VERSION -ge 5000 ] + return $? + fi + + # If $TERM_PROGRAM is set, these terminals support hyperlinks + case "$TERM_PROGRAM" in + Hyper|iTerm.app|terminology|WezTerm|vscode) return 0 ;; + esac + + # These termcap entries support hyperlinks + case "$TERM" in + xterm-kitty|alacritty|alacritty-direct) return 0 ;; + esac + + # xfce4-terminal supports hyperlinks + if [ "$COLORTERM" = "xfce4-terminal" ]; then + return 0 + fi + + # Windows Terminal also supports hyperlinks + if [ -n "$WT_SESSION" ]; then + return 0 + fi + + # Konsole supports hyperlinks, but it's an opt-in setting that can't be detected + # https://github.com/ohmyzsh/ohmyzsh/issues/10964 + # if [ -n "$KONSOLE_VERSION" ]; then + # return 0 + # fi + + return 1 +} + ############################# # RELEASE CHANGELOG DISPLAY # ############################# @@ -206,10 +297,17 @@ function display-release { function fmt:hash { #* Uses $hash from outer scope local hash="${1:-$hash}" + local short_hash="${hash:0:7}" # 7 characters sha, top level sha is 12 characters case "$output" in - raw) printf '%s' "$hash" ;; - text) printf '\e[33m%s\e[0m' "$hash" ;; # red - md) printf '[`%s`](https://github.com/ohmyzsh/ohmyzsh/commit/%s)' "$hash" "$hash" ;; + raw) printf '%s' "$short_hash" ;; + text) + local text="\e[33m$short_hash\e[0m"; # red + if supports_hyperlinks; then + printf "\e]8;;%s\a%s\e]8;;\a" "https://github.com/ohmyzsh/ohmyzsh/commit/$hash" $text; + else + echo $text; + fi ;; + md) printf '[`%s`](https://github.com/ohmyzsh/ohmyzsh/commit/%s)' "$short_hash" "$hash" ;; esac } @@ -272,7 +370,12 @@ function display-release { case "$output" in raw) printf '%s' "$subject" ;; # In text mode, highlight (#) and dim text between `backticks` - text) sed -E $'s|#([0-9]+)|\e[32m#\\1\e[0m|g;s|`([^`]+)`|`\e[2m\\1\e[0m`|g' <<< "$subject" ;; + text) + if supports_hyperlinks; then + sed -E $'s|#([0-9]+)|\e]8;;https://github.com/ohmyzsh/ohmyzsh/issues/\\1\a\e[32m#\\1\e[0m\e]8;;\a|g;s|`([^`]+)`|`\e[2m\\1\e[0m`|g' <<< "$subject" + else + sed -E $'s|#([0-9]+)|\e[32m#\\1\e[0m|g;s|`([^`]+)`|`\e[2m\\1\e[0m`|g' <<< "$subject" + fi ;; # In markdown mode, link to (#) issues md) sed -E 's|#([0-9]+)|[#\1](https://github.com/ohmyzsh/ohmyzsh/issues/\1)|g' <<< "$subject" ;; esac @@ -415,13 +518,13 @@ function main { # Git log options # -z: commits are delimited by null bytes # --format: [7-char hash][ref names][subject][body] - # --abbrev=7: force commit hashes to be 7 characters long + # --abbrev=7: force commit hashes to be 12 characters long # --no-merges: merge commits are omitted # --first-parent: commits from merged branches are omitted local SEP="0mZmAgIcSeP" local -a raw_commits raw_commits=(${(0)"$(command git -c log.showSignature=false log -z \ - --format="%h${SEP}%D${SEP}%s${SEP}%b" --abbrev=7 \ + --format="%h${SEP}%D${SEP}%s${SEP}%b" --abbrev=12 \ --no-merges --first-parent $range)"}) local raw_commit diff --git a/tools/check_for_upgrade.sh b/tools/check_for_upgrade.sh index 734714c94..1cc193bde 100644 --- a/tools/check_for_upgrade.sh +++ b/tools/check_for_upgrade.sh @@ -9,6 +9,7 @@ fi # - prompt (default): the user is asked before updating when it's time to update # - auto: the update is performed automatically when it's time # - reminder: a reminder is shown to the user when it's time to update +# - background-alpha: an experimental update-on-the-background option # - disabled: automatic update is turned off zstyle -s ':omz:update' mode update_mode || { update_mode=prompt @@ -91,12 +92,37 @@ function is_update_available() { } function update_last_updated_file() { - echo "LAST_EPOCH=$(current_epoch)" >! "${ZSH_CACHE_DIR}/.zsh-update" + local exit_status="$1" error="$2" + + if [[ -z "${1}${2}" ]]; then + echo "LAST_EPOCH=$(current_epoch)" >! "${ZSH_CACHE_DIR}/.zsh-update" + return + fi + + cat >! "${ZSH_CACHE_DIR}/.zsh-update" <&1); then + update_last_updated_file 0 "Update successful" + else + exit_status=$? + update_last_updated_file $exit_status "$error" + return $exit_status fi } @@ -125,87 +151,145 @@ function has_typed_input() { } } -() { - emulate -L zsh +function handle_update() { + () { + emulate -L zsh - local epoch_target mtime option LAST_EPOCH + local epoch_target mtime option LAST_EPOCH - # Remove lock directory if older than a day - zmodload zsh/datetime - zmodload -F zsh/stat b:zstat - if mtime=$(zstat +mtime "$ZSH/log/update.lock" 2>/dev/null); then - if (( (mtime + 3600 * 24) < EPOCHSECONDS )); then - command rm -rf "$ZSH/log/update.lock" + # Remove lock directory if older than a day + zmodload zsh/datetime + zmodload -F zsh/stat b:zstat + if mtime=$(zstat +mtime "$ZSH/log/update.lock" 2>/dev/null); then + if (( (mtime + 3600 * 24) < EPOCHSECONDS )); then + command rm -rf "$ZSH/log/update.lock" + fi fi - fi - # Check for lock directory - if ! command mkdir "$ZSH/log/update.lock" 2>/dev/null; then - return - fi + # Check for lock directory + if ! command mkdir "$ZSH/log/update.lock" 2>/dev/null; then + return + fi - # Remove lock directory on exit. `return $ret` is important for when trapping a SIGINT: - # The return status from the function is handled specially. If it is zero, the signal is - # assumed to have been handled, and execution continues normally. Otherwise, the shell - # will behave as interrupted except that the return status of the trap is retained. - # This means that for a CTRL+C, the trap needs to return the same exit status so that - # the shell actually exits what it's running. - trap " - ret=\$? - unset update_mode - unset -f current_epoch is_update_available update_last_updated_file update_ohmyzsh 2>/dev/null - command rm -rf '$ZSH/log/update.lock' - return \$ret - " EXIT INT QUIT + # Remove lock directory on exit. `return $ret` is important for when trapping a SIGINT: + # The return status from the function is handled specially. If it is zero, the signal is + # assumed to have been handled, and execution continues normally. Otherwise, the shell + # will behave as interrupted except that the return status of the trap is retained. + # This means that for a CTRL+C, the trap needs to return the same exit status so that + # the shell actually exits what it's running. + trap " + ret=\$? + unset update_mode + unset -f current_epoch is_update_available update_last_updated_file update_ohmyzsh handle_update 2>/dev/null + command rm -rf '$ZSH/log/update.lock' + return \$ret + " EXIT INT QUIT - # Create or update .zsh-update file if missing or malformed - if ! source "${ZSH_CACHE_DIR}/.zsh-update" 2>/dev/null || [[ -z "$LAST_EPOCH" ]]; then - update_last_updated_file - return - fi + # Create or update .zsh-update file if missing or malformed + if ! source "${ZSH_CACHE_DIR}/.zsh-update" 2>/dev/null || [[ -z "$LAST_EPOCH" ]]; then + update_last_updated_file + return + fi - # Number of days before trying to update again - zstyle -s ':omz:update' frequency epoch_target || epoch_target=${UPDATE_ZSH_DAYS:-13} - # Test if enough time has passed until the next update - if (( ( $(current_epoch) - $LAST_EPOCH ) < $epoch_target )); then - return - fi + # Number of days before trying to update again + zstyle -s ':omz:update' frequency epoch_target || epoch_target=${UPDATE_ZSH_DAYS:-13} + # Test if enough time has passed until the next update + if (( ( $(current_epoch) - $LAST_EPOCH ) < $epoch_target )); then + return + fi - # Test if Oh My Zsh directory is a git repository - if ! (builtin cd -q "$ZSH" && LANG= git rev-parse &>/dev/null); then - echo >&2 "[oh-my-zsh] Can't update: not a git repository." - return - fi + # Test if Oh My Zsh directory is a git repository + if ! (builtin cd -q "$ZSH" && LANG= git rev-parse &>/dev/null); then + echo >&2 "[oh-my-zsh] Can't update: not a git repository." + return + fi - # Check if there are updates available before proceeding - if ! is_update_available; then - return - fi + # Check if there are updates available before proceeding + if ! is_update_available; then + update_last_updated_file + return + fi - # If in reminder mode or user has typed input, show reminder and exit - if [[ "$update_mode" = reminder ]] || has_typed_input; then - printf '\r\e[0K' # move cursor to first column and clear whole line - echo "[oh-my-zsh] It's time to update! You can do that by running \`omz update\`" - return 0 - fi + # If in reminder mode or user has typed input, show reminder and exit + if [[ "$update_mode" = reminder ]] || { [[ "$update_mode" != background-alpha ]] && has_typed_input }; then + printf '\r\e[0K' # move cursor to first column and clear whole line + echo "[oh-my-zsh] It's time to update! You can do that by running \`omz update\`" + return 0 + fi - # Don't ask for confirmation before updating if in auto mode - if [[ "$update_mode" = auto ]]; then - update_ohmyzsh - return $? - fi + # Don't ask for confirmation before updating if in auto mode + if [[ "$update_mode" = (auto|background-alpha) ]]; then + update_ohmyzsh + return $? + fi - # Ask for confirmation and only update on 'y', 'Y' or Enter - # Otherwise just show a reminder for how to update - echo -n "[oh-my-zsh] Would you like to update? [Y/n] " - read -r -k 1 option - [[ "$option" = $'\n' ]] || echo - case "$option" in - [yY$'\n']) update_ohmyzsh ;; - [nN]) update_last_updated_file ;& - *) echo "[oh-my-zsh] You can update manually by running \`omz update\`" ;; - esac + # Ask for confirmation and only update on 'y', 'Y' or Enter + # Otherwise just show a reminder for how to update + echo -n "[oh-my-zsh] Would you like to update? [Y/n] " + read -r -k 1 option + [[ "$option" = $'\n' ]] || echo + case "$option" in + [yY$'\n']) update_ohmyzsh ;; + [nN]) update_last_updated_file ;& + *) echo "[oh-my-zsh] You can update manually by running \`omz update\`" ;; + esac + } + + unset update_mode + unset -f current_epoch is_update_available update_last_updated_file update_ohmyzsh handle_update } -unset update_mode -unset -f current_epoch is_update_available update_last_updated_file update_ohmyzsh +case "$update_mode" in + background-alpha) + autoload -Uz add-zsh-hook + + _omz_bg_update() { + # do the update in a subshell + (handle_update) &| + + # register update results function + add-zsh-hook precmd _omz_bg_update_status + + # deregister background function + add-zsh-hook -d precmd _omz_bg_update + unset -f _omz_bg_update + } + + _omz_bg_update_status() { + { + local LAST_EPOCH EXIT_STATUS ERROR + if [[ ! -f "$ZSH_CACHE_DIR"/.zsh-update ]]; then + return 1 + fi + + # check update results until timeout is reached + . "$ZSH_CACHE_DIR/.zsh-update" + if [[ -z "$EXIT_STATUS" || -z "$ERROR" ]]; then + return 1 + fi + + if [[ "$EXIT_STATUS" -eq 0 ]]; then + print -P "\n%F{green}[oh-my-zsh] Update successful.%f" + return 0 + elif [[ "$EXIT_STATUS" -ne 0 ]]; then + print -P "\n%F{red}[oh-my-zsh] There was an error updating:%f" + printf "\n${fg[yellow]}%s${reset_color}" "$ERROR" + return 0 + fi + } always { + if (( TRY_BLOCK_ERROR == 0 )); then + # if last update results have been handled, remove them from the status file + update_last_updated_file + + # deregister background function + add-zsh-hook -d precmd _omz_bg_update_status + unset -f _omz_bg_update_status + fi + } + } + + add-zsh-hook precmd _omz_bg_update + ;; + *) + handle_update ;; +esac diff --git a/tools/install.sh b/tools/install.sh index f4ef16a0c..e3613a28b 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -63,7 +63,9 @@ zdot="${ZDOTDIR:-$HOME}" # Default value for $ZSH # a) if $ZDOTDIR is supplied and not $HOME: $ZDOTDIR/ohmyzsh # b) otherwise, $HOME/.oh-my-zsh -[ "$ZDOTDIR" = "$HOME" ] || ZSH="${ZSH:-${ZDOTDIR:+$ZDOTDIR/ohmyzsh}}" +if [ -n "$ZDOTDIR" ] && [ "$ZDOTDIR" != "$HOME" ]; then + ZSH="${ZSH:-$ZDOTDIR/ohmyzsh}" +fi ZSH="${ZSH:-$HOME/.oh-my-zsh}" # Default settings @@ -84,6 +86,10 @@ command_exists() { user_can_sudo() { # Check if sudo is installed command_exists sudo || return 1 + # Termux can't run sudo, so we can detect it and exit the function early. + case "$PREFIX" in + *com.termux*) return 1 ;; + esac # The following command has 3 parts: # # 1. Run `sudo` with `-v`. Does the following: @@ -160,11 +166,16 @@ supports_hyperlinks() { # If $TERM_PROGRAM is set, these terminals support hyperlinks case "$TERM_PROGRAM" in - Hyper|iTerm.app|terminology|WezTerm) return 0 ;; + Hyper|iTerm.app|terminology|WezTerm|vscode) return 0 ;; esac - # kitty supports hyperlinks - if [ "$TERM" = xterm-kitty ]; then + # These termcap entries support hyperlinks + case "$TERM" in + xterm-kitty|alacritty|alacritty-direct) return 0 ;; + esac + + # xfce4-terminal supports hyperlinks + if [ "$COLORTERM" = "xfce4-terminal" ]; then return 0 fi diff --git a/tools/uninstall.sh b/tools/uninstall.sh index 6a0e7b4c7..6e3df7aca 100644 --- a/tools/uninstall.sh +++ b/tools/uninstall.sh @@ -1,3 +1,15 @@ +if hash chsh >/dev/null 2>&1 && [ -f ~/.shell.pre-oh-my-zsh ]; then + old_shell=$(cat ~/.shell.pre-oh-my-zsh) + echo "Switching your shell back to '$old_shell':" + if chsh -s "$old_shell"; then + rm -f ~/.shell.pre-oh-my-zsh + else + echo "Could not change default shell. Change it manually by running chsh" + echo "or editing the /etc/passwd file." + exit + fi +fi + read -r -p "Are you sure you want to remove Oh My Zsh? [y/N] " confirmation if [ "$confirmation" != y ] && [ "$confirmation" != Y ]; then echo "Uninstall cancelled" @@ -25,16 +37,5 @@ else echo "No original zsh config found" fi -if hash chsh >/dev/null 2>&1 && [ -f ~/.shell.pre-oh-my-zsh ]; then - old_shell=$(cat ~/.shell.pre-oh-my-zsh) - echo "Switching your shell back to '$old_shell':" - if chsh -s "$old_shell"; then - rm -f ~/.shell.pre-oh-my-zsh - else - echo "Could not change default shell. Change it manually by running chsh" - echo "or editing the /etc/passwd file." - fi -fi - echo "Thanks for trying out Oh My Zsh. It's been uninstalled." echo "Don't forget to restart your terminal!" diff --git a/tools/upgrade.sh b/tools/upgrade.sh index 596a59302..d7016aa44 100755 --- a/tools/upgrade.sh +++ b/tools/upgrade.sh @@ -1,4 +1,7 @@ #!/usr/bin/env zsh +set +u # disable nounset + +local ret=0 # exit code # Protect against running with shells other than zsh if [ -z "$ZSH_VERSION" ]; then @@ -12,6 +15,23 @@ esac cd "$ZSH" +verbose_mode="default" +interactive=false + +while getopts "v:i" opt; do + case $opt in + v) + if [[ $OPTARG == default || $OPTARG == minimal || $OPTARG == silent ]]; then + verbose_mode=$OPTARG + else + echo "[oh-my-zsh] update verbosity '$OPTARG' is not valid" + echo "[oh-my-zsh] valid options are 'default', 'minimal' and 'silent'" + fi + ;; + i) interactive=true ;; + esac +done + # Use colors, but only if connected to a terminal # and that terminal supports them. @@ -70,11 +90,16 @@ supports_hyperlinks() { # If $TERM_PROGRAM is set, these terminals support hyperlinks case "$TERM_PROGRAM" in - Hyper|iTerm.app|terminology|WezTerm) return 0 ;; + Hyper|iTerm.app|terminology|WezTerm|vscode) return 0 ;; esac - # kitty supports hyperlinks - if [ "$TERM" = xterm-kitty ]; then + # These termcap entries support hyperlinks + case "$TERM" in + xterm-kitty|alacritty|alacritty-direct) return 0 ;; + esac + + # xfce4-terminal supports hyperlinks + if [ "$COLORTERM" = "xfce4-terminal" ]; then return 0 fi @@ -164,17 +189,23 @@ fi # Update upstream remote to ohmyzsh org git remote -v | while read remote url extra; do case "$url" in - https://github.com/robbyrussell/oh-my-zsh(|.git)) - git remote set-url "$remote" "https://github.com/ohmyzsh/ohmyzsh.git" - break ;; - git@github.com:robbyrussell/oh-my-zsh(|.git)) - git remote set-url "$remote" "git@github.com:ohmyzsh/ohmyzsh.git" - break ;; - # Update out-of-date "unauthenticated git protocol on port 9418" to https git://github.com/robbyrussell/oh-my-zsh(|.git)) - git remote set-url "$remote" "https://github.com/ohmyzsh/ohmyzsh.git" - break ;; + # Update out-of-date "unauthenticated git protocol on port 9418" to https + git remote set-url "$remote" "https://github.com/ohmyzsh/ohmyzsh.git" ;; + https://github.com/robbyrussell/oh-my-zsh(|.git)) + git remote set-url "$remote" "https://github.com/ohmyzsh/ohmyzsh.git" ;; + git@github.com:robbyrussell/oh-my-zsh(|.git)) + git remote set-url "$remote" "git@github.com:ohmyzsh/ohmyzsh.git" ;; + https://github.com/ohmyzsh/ohmyzsh(|.git)) ;; + git@github.com:ohmyzsh/ohmyzsh(|.git)) ;; + *) continue ;; esac + + # If we reach this point we have found the proper ohmyzsh upstream remote. If we don't, + # we'll only update from the set remote if `oh-my-zsh.remote` has been set to a remote, + # as when installing from a fork. + git config --local oh-my-zsh.remote "$remote" + break done # Set git-config values known to fix git errors @@ -203,7 +234,9 @@ git checkout -q "$branch" -- || exit 1 last_commit=$(git rev-parse "$branch") # Update Oh My Zsh -printf "${BLUE}%s${RESET}\n" "Updating Oh My Zsh" +if [[ $verbose_mode != silent ]]; then + printf "${BLUE}%s${RESET}\n" "Updating Oh My Zsh" +fi if LANG= git pull --quiet --rebase $remote $branch; then # Check if it was really updated or not if [[ "$(git rev-parse HEAD)" = "$last_commit" ]]; then @@ -215,24 +248,30 @@ if LANG= git pull --quiet --rebase $remote $branch; then git config oh-my-zsh.lastVersion "$last_commit" # Print changelog to the terminal - if [[ "$1" = --interactive ]]; then + if [[ $interactive == true && $verbose_mode == default ]]; then "$ZSH/tools/changelog.sh" HEAD "$last_commit" fi - printf "${BLUE}%s \`${BOLD}%s${RESET}${BLUE}\`${RESET}\n" "You can see the changelog with" "omz changelog" + if [[ $verbose_mode != silent ]]; then + printf "${BLUE}%s \`${BOLD}%s${RESET}${BLUE}\`${RESET}\n" "You can see the changelog with" "omz changelog" + fi fi - printf '%s %s__ %s %s %s %s %s__ %s\n' $RAINBOW $RESET - printf '%s ____ %s/ /_ %s ____ ___ %s__ __ %s ____ %s_____%s/ /_ %s\n' $RAINBOW $RESET - printf '%s / __ \\%s/ __ \\ %s / __ `__ \\%s/ / / / %s /_ / %s/ ___/%s __ \\ %s\n' $RAINBOW $RESET - printf '%s/ /_/ /%s / / / %s / / / / / /%s /_/ / %s / /_%s(__ )%s / / / %s\n' $RAINBOW $RESET - printf '%s\\____/%s_/ /_/ %s /_/ /_/ /_/%s\\__, / %s /___/%s____/%s_/ /_/ %s\n' $RAINBOW $RESET - printf '%s %s %s %s /____/ %s %s %s %s\n' $RAINBOW $RESET - printf '\n' - printf "${BLUE}%s${RESET}\n\n" "$message" - printf "${BLUE}${BOLD}%s %s${RESET}\n" "To keep up with the latest news and updates, follow us on Twitter:" "$(fmt_link @ohmyzsh https://twitter.com/ohmyzsh)" - printf "${BLUE}${BOLD}%s %s${RESET}\n" "Want to get involved in the community? Join our Discord:" "$(fmt_link "Discord server" https://discord.gg/ohmyzsh)" - printf "${BLUE}${BOLD}%s %s${RESET}\n" "Get your Oh My Zsh swag at:" "$(fmt_link "Planet Argon Shop" https://shop.planetargon.com/collections/oh-my-zsh)" + if [[ $verbose_mode == default ]]; then + printf '%s %s__ %s %s %s %s %s__ %s\n' $RAINBOW $RESET + printf '%s ____ %s/ /_ %s ____ ___ %s__ __ %s ____ %s_____%s/ /_ %s\n' $RAINBOW $RESET + printf '%s / __ \\%s/ __ \\ %s / __ `__ \\%s/ / / / %s /_ / %s/ ___/%s __ \\ %s\n' $RAINBOW $RESET + printf '%s/ /_/ /%s / / / %s / / / / / /%s /_/ / %s / /_%s(__ )%s / / / %s\n' $RAINBOW $RESET + printf '%s\\____/%s_/ /_/ %s /_/ /_/ /_/%s\\__, / %s /___/%s____/%s_/ /_/ %s\n' $RAINBOW $RESET + printf '%s %s %s %s /____/ %s %s %s %s\n' $RAINBOW $RESET + printf '\n' + printf "${BLUE}%s${RESET}\n\n" "$message" + printf "${BLUE}${BOLD}%s %s${RESET}\n" "To keep up with the latest news and updates, follow us on Twitter:" "$(fmt_link @ohmyzsh https://twitter.com/ohmyzsh)" + printf "${BLUE}${BOLD}%s %s${RESET}\n" "Want to get involved in the community? Join our Discord:" "$(fmt_link "Discord server" https://discord.gg/ohmyzsh)" + printf "${BLUE}${BOLD}%s %s${RESET}\n" "Get your Oh My Zsh swag at:" "$(fmt_link "Planet Argon Shop" https://shop.planetargon.com/collections/oh-my-zsh)" + elif [[ $verbose_mode == minimal ]]; then + printf "${BLUE}%s${RESET}\n" "$message" + fi else ret=$? printf "${RED}%s${RESET}\n" 'There was an error updating. Try again later?'