From 29bcf615e645b6430843626c0a3069b6e9189e5e Mon Sep 17 00:00:00 2001 From: Connor Johnstone Date: Mon, 14 Sep 2026 14:54:17 -0400 Subject: [PATCH] Sweep every machine for config worth tracking MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reactive capture missed wallust entirely, so this is a systematic pass over ~/.config on all four machines: every entry that is not already a symlink, judged on whether it is hand-authored config or app-generated state. Shared and identical everywhere -> common/: lazygit, ncmpcpp, neofetch, matplotlib. Everything else differs per machine and goes in hosts//config/: gtk-2.0/3.0/4.0, mimeapps.list, user-dirs.dirs, mpv, swaync, swayimg, bob, pavucontrol.ini, zoom; plus beets, bottom, glow and mpd on system76; fastfetch, gh, uv, traggo, tiling-assistant and xdg-desktop-portal on the work laptop; inbox-tidy and llmfit on mainframe. Deliberately excluded, all verified to hold live credentials: the work laptop's Claude OAuth tokens (~/.config/anthropic/credentials), the NAS restic repo password and hetzner.env, subsonic passwords in subtui, stmp and termsonic, mopidy, supersonic, the Proton bridge env and the LiteLLM virtual keys. The ignore list now names those shapes directly — a bare `password` file would not have been caught before. Also excluded as generated state or too large to be meaningful: GIMP, kicad, BambuStudio, OrcaSlicer, calibre, LightBurn, obs-studio, feishin, libreoffice, VirtualBox, FortiClient; and mainframe's dead X11-era leftovers (i3, openbox, lxpanel, lxsession, pcmanfm). --- .gitignore | 7 +- common/lazygit/config.yml | 0 common/ncmpcpp/error.log | 0 common/neofetch/config.conf | 864 +++++++++ hosts/mainframe/config/bob/config.json | 3 + hosts/mainframe/config/inbox-tidy/tidy.toml | 99 ++ hosts/mainframe/config/llmfit/filters.json | 1556 +++++++++++++++++ hosts/mainframe/config/llmfit/theme | 1 + hosts/mainframe/config/mimeapps.list | 3 + hosts/mainframe/config/user-dirs.dirs | 15 + hosts/nas/config/bob/config.json | 1 + hosts/sctfw004/config/bob/config.json | 1 + .../config/fastfetch/config-compact.jsonc | 75 + .../config/fastfetch/config-pokemon.jsonc | 73 + .../sctfw004/config/fastfetch/config-v2.jsonc | 112 ++ hosts/sctfw004/config/fastfetch/config.jsonc | 128 ++ hosts/sctfw004/config/fastfetch/ubuntu.png | Bin 0 -> 141008 bytes hosts/sctfw004/config/gh/config.yml | 17 + hosts/sctfw004/config/gh/hosts.yml | 5 + .../config/gtk-2.0/gtkfilechooser.ini | 11 + hosts/sctfw004/config/gtk-3.0/bookmarks | 6 + hosts/sctfw004/config/mimeapps.list | 6 + hosts/sctfw004/config/pavucontrol.ini | 8 + hosts/sctfw004/config/swayimg/config | 149 ++ hosts/sctfw004/config/swayimg/init.lua | 148 ++ hosts/sctfw004/config/swaync/colors.css | 19 + .../tiling-assistant/tiledSessionRestore.json | 1 + hosts/sctfw004/config/traggo/token | 1 + hosts/sctfw004/config/user-dirs.dirs | 15 + hosts/sctfw004/config/uv/uv-receipt.json | 1 + .../config/xdg-desktop-portal/portals.conf | 6 + hosts/sctfw004/config/zoom.conf | 3 + hosts/sctfw004/config/zoomus.conf | 66 + hosts/system76/config/beets/config.yaml | 9 + hosts/system76/config/beets/state.pickle | Bin 0 -> 47 bytes hosts/system76/config/bob/config.json | 3 + hosts/system76/config/bottom/bottom.toml | 317 ++++ hosts/system76/config/glow/glow.yml | 8 + .../config/gtk-2.0/gtkfilechooser.ini | 11 + hosts/system76/config/gtk-3.0/bookmarks | 6 + hosts/system76/config/mimeapps.list | 5 + hosts/system76/config/mpd/mpd.conf | 419 +++++ .../config/mpv/script-opts/subs2srs.conf | 326 ++++ hosts/system76/config/pavucontrol.ini | 8 + hosts/system76/config/swayimg/config | 278 +++ hosts/system76/config/swaync/colors.css | 19 + hosts/system76/config/swaync/config.json | 35 + hosts/system76/config/swaync/style.css | 201 +++ hosts/system76/config/user-dirs.dirs | 15 + hosts/system76/config/zoom.conf | 3 + hosts/system76/config/zoomus.conf | 81 + meta/base.conf.yaml | 4 + meta/hosts/mainframe.conf.yaml | 6 + meta/hosts/nas.conf.yaml | 1 + meta/hosts/sctfw004.conf.yaml | 18 + meta/hosts/system76.conf.yaml | 16 + 56 files changed, 5188 insertions(+), 1 deletion(-) create mode 100644 common/lazygit/config.yml create mode 100644 common/ncmpcpp/error.log create mode 100644 common/neofetch/config.conf create mode 100644 hosts/mainframe/config/bob/config.json create mode 100644 hosts/mainframe/config/inbox-tidy/tidy.toml create mode 100644 hosts/mainframe/config/llmfit/filters.json create mode 100644 hosts/mainframe/config/llmfit/theme create mode 100644 hosts/mainframe/config/mimeapps.list create mode 100644 hosts/mainframe/config/user-dirs.dirs create mode 100644 hosts/nas/config/bob/config.json create mode 100644 hosts/sctfw004/config/bob/config.json create mode 100644 hosts/sctfw004/config/fastfetch/config-compact.jsonc create mode 100644 hosts/sctfw004/config/fastfetch/config-pokemon.jsonc create mode 100644 hosts/sctfw004/config/fastfetch/config-v2.jsonc create mode 100644 hosts/sctfw004/config/fastfetch/config.jsonc create mode 100644 hosts/sctfw004/config/fastfetch/ubuntu.png create mode 100644 hosts/sctfw004/config/gh/config.yml create mode 100644 hosts/sctfw004/config/gh/hosts.yml create mode 100644 hosts/sctfw004/config/gtk-2.0/gtkfilechooser.ini create mode 100644 hosts/sctfw004/config/gtk-3.0/bookmarks create mode 100644 hosts/sctfw004/config/mimeapps.list create mode 100644 hosts/sctfw004/config/pavucontrol.ini create mode 100644 hosts/sctfw004/config/swayimg/config create mode 100644 hosts/sctfw004/config/swayimg/init.lua create mode 100644 hosts/sctfw004/config/swaync/colors.css create mode 100644 hosts/sctfw004/config/tiling-assistant/tiledSessionRestore.json create mode 100644 hosts/sctfw004/config/traggo/token create mode 100644 hosts/sctfw004/config/user-dirs.dirs create mode 100644 hosts/sctfw004/config/uv/uv-receipt.json create mode 100644 hosts/sctfw004/config/xdg-desktop-portal/portals.conf create mode 100644 hosts/sctfw004/config/zoom.conf create mode 100644 hosts/sctfw004/config/zoomus.conf create mode 100644 hosts/system76/config/beets/config.yaml create mode 100644 hosts/system76/config/beets/state.pickle create mode 100644 hosts/system76/config/bob/config.json create mode 100644 hosts/system76/config/bottom/bottom.toml create mode 100644 hosts/system76/config/glow/glow.yml create mode 100644 hosts/system76/config/gtk-2.0/gtkfilechooser.ini create mode 100644 hosts/system76/config/gtk-3.0/bookmarks create mode 100644 hosts/system76/config/mimeapps.list create mode 100644 hosts/system76/config/mpd/mpd.conf create mode 100644 hosts/system76/config/mpv/script-opts/subs2srs.conf create mode 100644 hosts/system76/config/pavucontrol.ini create mode 100644 hosts/system76/config/swayimg/config create mode 100644 hosts/system76/config/swaync/colors.css create mode 100644 hosts/system76/config/swaync/config.json create mode 100644 hosts/system76/config/swaync/style.css create mode 100644 hosts/system76/config/user-dirs.dirs create mode 100644 hosts/system76/config/zoom.conf create mode 100644 hosts/system76/config/zoomus.conf diff --git a/.gitignore b/.gitignore index d02d49a..1a73c22 100644 --- a/.gitignore +++ b/.gitignore @@ -28,7 +28,12 @@ **/hcache/ **/node_modules/ -# Never, under any circumstances. +# Never, under any circumstances. These are shapes that have actually held +# live credentials on these machines: Claude OAuth tokens, restic repo keys, +# subsonic passwords, the Proton bridge and LiteLLM virtual keys. **/credentials +**/credentials/** **/.credentials.json +**/password +**/*.env .secrets.zsh diff --git a/common/lazygit/config.yml b/common/lazygit/config.yml new file mode 100644 index 0000000..e69de29 diff --git a/common/ncmpcpp/error.log b/common/ncmpcpp/error.log new file mode 100644 index 0000000..e69de29 diff --git a/common/neofetch/config.conf b/common/neofetch/config.conf new file mode 100644 index 0000000..cdba4c6 --- /dev/null +++ b/common/neofetch/config.conf @@ -0,0 +1,864 @@ +# See this wiki page for more info: +# https://github.com/dylanaraps/neofetch/wiki/Customizing-Info +print_info() { + info title + info underline + + info "OS" distro + info "Host" model + info "Kernel" kernel + info "Uptime" uptime + info "Packages" packages + info "Shell" shell + info "Resolution" resolution + info "DE" de + info "WM" wm + info "WM Theme" wm_theme + info "Theme" theme + info "Icons" icons + info "Terminal" term + info "Terminal Font" term_font + info "CPU" cpu + info "GPU" gpu + info "Memory" memory + + # info "GPU Driver" gpu_driver # Linux/macOS only + # info "CPU Usage" cpu_usage + # info "Disk" disk + # info "Battery" battery + # info "Font" font + # info "Song" song + # [[ "$player" ]] && prin "Music Player" "$player" + # info "Local IP" local_ip + # info "Public IP" public_ip + # info "Users" users + # info "Locale" locale # This only works on glibc systems. + + info cols +} + +# Title + + +# Hide/Show Fully qualified domain name. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --title_fqdn +title_fqdn="off" + + +# Kernel + + +# Shorten the output of the kernel function. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --kernel_shorthand +# Supports: Everything except *BSDs (except PacBSD and PC-BSD) +# +# Example: +# on: '4.8.9-1-ARCH' +# off: 'Linux 4.8.9-1-ARCH' +kernel_shorthand="on" + + +# Distro + + +# Shorten the output of the distro function +# +# Default: 'off' +# Values: 'on', 'tiny', 'off' +# Flag: --distro_shorthand +# Supports: Everything except Windows and Haiku +distro_shorthand="off" + +# Show/Hide OS Architecture. +# Show 'x86_64', 'x86' and etc in 'Distro:' output. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --os_arch +# +# Example: +# on: 'Arch Linux x86_64' +# off: 'Arch Linux' +os_arch="on" + + +# Uptime + + +# Shorten the output of the uptime function +# +# Default: 'on' +# Values: 'on', 'tiny', 'off' +# Flag: --uptime_shorthand +# +# Example: +# on: '2 days, 10 hours, 3 mins' +# tiny: '2d 10h 3m' +# off: '2 days, 10 hours, 3 minutes' +uptime_shorthand="on" + + +# Memory + + +# Show memory pecentage in output. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --memory_percent +# +# Example: +# on: '1801MiB / 7881MiB (22%)' +# off: '1801MiB / 7881MiB' +memory_percent="off" + +# Change memory output unit. +# +# Default: 'mib' +# Values: 'kib', 'mib', 'gib' +# Flag: --memory_unit +# +# Example: +# kib '1020928KiB / 7117824KiB' +# mib '1042MiB / 6951MiB' +# gib: ' 0.98GiB / 6.79GiB' +memory_unit="mib" + + +# Packages + + +# Show/Hide Package Manager names. +# +# Default: 'tiny' +# Values: 'on', 'tiny' 'off' +# Flag: --package_managers +# +# Example: +# on: '998 (pacman), 8 (flatpak), 4 (snap)' +# tiny: '908 (pacman, flatpak, snap)' +# off: '908' +package_managers="on" + + +# Shell + + +# Show the path to $SHELL +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --shell_path +# +# Example: +# on: '/bin/bash' +# off: 'bash' +shell_path="off" + +# Show $SHELL version +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --shell_version +# +# Example: +# on: 'bash 4.4.5' +# off: 'bash' +shell_version="on" + + +# CPU + + +# CPU speed type +# +# Default: 'bios_limit' +# Values: 'scaling_cur_freq', 'scaling_min_freq', 'scaling_max_freq', 'bios_limit'. +# Flag: --speed_type +# Supports: Linux with 'cpufreq' +# NOTE: Any file in '/sys/devices/system/cpu/cpu0/cpufreq' can be used as a value. +speed_type="bios_limit" + +# CPU speed shorthand +# +# Default: 'off' +# Values: 'on', 'off'. +# Flag: --speed_shorthand +# NOTE: This flag is not supported in systems with CPU speed less than 1 GHz +# +# Example: +# on: 'i7-6500U (4) @ 3.1GHz' +# off: 'i7-6500U (4) @ 3.100GHz' +speed_shorthand="off" + +# Enable/Disable CPU brand in output. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --cpu_brand +# +# Example: +# on: 'Intel i7-6500U' +# off: 'i7-6500U (4)' +cpu_brand="on" + +# CPU Speed +# Hide/Show CPU speed. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --cpu_speed +# +# Example: +# on: 'Intel i7-6500U (4) @ 3.1GHz' +# off: 'Intel i7-6500U (4)' +cpu_speed="on" + +# CPU Cores +# Display CPU cores in output +# +# Default: 'logical' +# Values: 'logical', 'physical', 'off' +# Flag: --cpu_cores +# Support: 'physical' doesn't work on BSD. +# +# Example: +# logical: 'Intel i7-6500U (4) @ 3.1GHz' (All virtual cores) +# physical: 'Intel i7-6500U (2) @ 3.1GHz' (All physical cores) +# off: 'Intel i7-6500U @ 3.1GHz' +cpu_cores="logical" + +# CPU Temperature +# Hide/Show CPU temperature. +# Note the temperature is added to the regular CPU function. +# +# Default: 'off' +# Values: 'C', 'F', 'off' +# Flag: --cpu_temp +# Supports: Linux, BSD +# NOTE: For FreeBSD and NetBSD-based systems, you'll need to enable +# coretemp kernel module. This only supports newer Intel processors. +# +# Example: +# C: 'Intel i7-6500U (4) @ 3.1GHz [27.2°C]' +# F: 'Intel i7-6500U (4) @ 3.1GHz [82.0°F]' +# off: 'Intel i7-6500U (4) @ 3.1GHz' +cpu_temp="off" + + +# GPU + + +# Enable/Disable GPU Brand +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --gpu_brand +# +# Example: +# on: 'AMD HD 7950' +# off: 'HD 7950' +gpu_brand="on" + +# Which GPU to display +# +# Default: 'all' +# Values: 'all', 'dedicated', 'integrated' +# Flag: --gpu_type +# Supports: Linux +# +# Example: +# all: +# GPU1: AMD HD 7950 +# GPU2: Intel Integrated Graphics +# +# dedicated: +# GPU1: AMD HD 7950 +# +# integrated: +# GPU1: Intel Integrated Graphics +gpu_type="all" + + +# Resolution + + +# Display refresh rate next to each monitor +# Default: 'off' +# Values: 'on', 'off' +# Flag: --refresh_rate +# Supports: Doesn't work on Windows. +# +# Example: +# on: '1920x1080 @ 60Hz' +# off: '1920x1080' +refresh_rate="off" + + +# Gtk Theme / Icons / Font + + +# Shorten output of GTK Theme / Icons / Font +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --gtk_shorthand +# +# Example: +# on: 'Numix, Adwaita' +# off: 'Numix [GTK2], Adwaita [GTK3]' +gtk_shorthand="off" + + +# Enable/Disable gtk2 Theme / Icons / Font +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --gtk2 +# +# Example: +# on: 'Numix [GTK2], Adwaita [GTK3]' +# off: 'Adwaita [GTK3]' +gtk2="on" + +# Enable/Disable gtk3 Theme / Icons / Font +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --gtk3 +# +# Example: +# on: 'Numix [GTK2], Adwaita [GTK3]' +# off: 'Numix [GTK2]' +gtk3="on" + + +# IP Address + + +# Website to ping for the public IP +# +# Default: 'http://ident.me' +# Values: 'url' +# Flag: --ip_host +public_ip_host="http://ident.me" + +# Public IP timeout. +# +# Default: '2' +# Values: 'int' +# Flag: --ip_timeout +public_ip_timeout=2 + + +# Desktop Environment + + +# Show Desktop Environment version +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --de_version +de_version="on" + + +# Disk + + +# Which disks to display. +# The values can be any /dev/sdXX, mount point or directory. +# NOTE: By default we only show the disk info for '/'. +# +# Default: '/' +# Values: '/', '/dev/sdXX', '/path/to/drive'. +# Flag: --disk_show +# +# Example: +# disk_show=('/' '/dev/sdb1'): +# 'Disk (/): 74G / 118G (66%)' +# 'Disk (/mnt/Videos): 823G / 893G (93%)' +# +# disk_show=('/'): +# 'Disk (/): 74G / 118G (66%)' +# +disk_show=('/') + +# Disk subtitle. +# What to append to the Disk subtitle. +# +# Default: 'mount' +# Values: 'mount', 'name', 'dir', 'none' +# Flag: --disk_subtitle +# +# Example: +# name: 'Disk (/dev/sda1): 74G / 118G (66%)' +# 'Disk (/dev/sdb2): 74G / 118G (66%)' +# +# mount: 'Disk (/): 74G / 118G (66%)' +# 'Disk (/mnt/Local Disk): 74G / 118G (66%)' +# 'Disk (/mnt/Videos): 74G / 118G (66%)' +# +# dir: 'Disk (/): 74G / 118G (66%)' +# 'Disk (Local Disk): 74G / 118G (66%)' +# 'Disk (Videos): 74G / 118G (66%)' +# +# none: 'Disk: 74G / 118G (66%)' +# 'Disk: 74G / 118G (66%)' +# 'Disk: 74G / 118G (66%)' +disk_subtitle="mount" + +# Disk percent. +# Show/Hide disk percent. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --disk_percent +# +# Example: +# on: 'Disk (/): 74G / 118G (66%)' +# off: 'Disk (/): 74G / 118G' +disk_percent="on" + + +# Song + + +# Manually specify a music player. +# +# Default: 'auto' +# Values: 'auto', 'player-name' +# Flag: --music_player +# +# Available values for 'player-name': +# +# amarok +# audacious +# banshee +# bluemindo +# clementine +# cmus +# deadbeef +# deepin-music +# dragon +# elisa +# exaile +# gnome-music +# gmusicbrowser +# gogglesmm +# guayadeque +# io.elementary.music +# iTunes +# juk +# lollypop +# mocp +# mopidy +# mpd +# muine +# netease-cloud-music +# olivia +# playerctl +# pogo +# pragha +# qmmp +# quodlibet +# rhythmbox +# sayonara +# smplayer +# spotify +# strawberry +# tauonmb +# tomahawk +# vlc +# xmms2d +# xnoise +# yarock +music_player="auto" + +# Format to display song information. +# +# Default: '%artist% - %album% - %title%' +# Values: '%artist%', '%album%', '%title%' +# Flag: --song_format +# +# Example: +# default: 'Song: Jet - Get Born - Sgt Major' +song_format="%artist% - %album% - %title%" + +# Print the Artist, Album and Title on separate lines +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --song_shorthand +# +# Example: +# on: 'Artist: The Fratellis' +# 'Album: Costello Music' +# 'Song: Chelsea Dagger' +# +# off: 'Song: The Fratellis - Costello Music - Chelsea Dagger' +song_shorthand="off" + +# 'mpc' arguments (specify a host, password etc). +# +# Default: '' +# Example: mpc_args=(-h HOST -P PASSWORD) +mpc_args=() + + +# Text Colors + + +# Text Colors +# +# Default: 'distro' +# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num' +# Flag: --colors +# +# Each number represents a different part of the text in +# this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info' +# +# Example: +# colors=(distro) - Text is colored based on Distro colors. +# colors=(4 6 1 8 8 6) - Text is colored in the order above. +colors=(distro) + + +# Text Options + + +# Toggle bold text +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --bold +bold="on" + +# Enable/Disable Underline +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --underline +underline_enabled="on" + +# Underline character +# +# Default: '-' +# Values: 'string' +# Flag: --underline_char +underline_char="-" + + +# Info Separator +# Replace the default separator with the specified string. +# +# Default: ':' +# Flag: --separator +# +# Example: +# separator="->": 'Shell-> bash' +# separator=" =": 'WM = dwm' +separator=":" + + +# Color Blocks + + +# Color block range +# The range of colors to print. +# +# Default: '0', '15' +# Values: 'num' +# Flag: --block_range +# +# Example: +# +# Display colors 0-7 in the blocks. (8 colors) +# neofetch --block_range 0 7 +# +# Display colors 0-15 in the blocks. (16 colors) +# neofetch --block_range 0 15 +block_range=(0 15) + +# Toggle color blocks +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --color_blocks +color_blocks="on" + +# Color block width in spaces +# +# Default: '3' +# Values: 'num' +# Flag: --block_width +block_width=3 + +# Color block height in lines +# +# Default: '1' +# Values: 'num' +# Flag: --block_height +block_height=1 + +# Color Alignment +# +# Default: 'auto' +# Values: 'auto', 'num' +# Flag: --col_offset +# +# Number specifies how far from the left side of the terminal (in spaces) to +# begin printing the columns, in case you want to e.g. center them under your +# text. +# Example: +# col_offset="auto" - Default behavior of neofetch +# col_offset=7 - Leave 7 spaces then print the colors +col_offset="auto" + +# Progress Bars + + +# Bar characters +# +# Default: '-', '=' +# Values: 'string', 'string' +# Flag: --bar_char +# +# Example: +# neofetch --bar_char 'elapsed' 'total' +# neofetch --bar_char '-' '=' +bar_char_elapsed="-" +bar_char_total="=" + +# Toggle Bar border +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --bar_border +bar_border="on" + +# Progress bar length in spaces +# Number of chars long to make the progress bars. +# +# Default: '15' +# Values: 'num' +# Flag: --bar_length +bar_length=15 + +# Progress bar colors +# When set to distro, uses your distro's logo colors. +# +# Default: 'distro', 'distro' +# Values: 'distro', 'num' +# Flag: --bar_colors +# +# Example: +# neofetch --bar_colors 3 4 +# neofetch --bar_colors distro 5 +bar_color_elapsed="distro" +bar_color_total="distro" + + +# Info display +# Display a bar with the info. +# +# Default: 'off' +# Values: 'bar', 'infobar', 'barinfo', 'off' +# Flags: --cpu_display +# --memory_display +# --battery_display +# --disk_display +# +# Example: +# bar: '[---=======]' +# infobar: 'info [---=======]' +# barinfo: '[---=======] info' +# off: 'info' +cpu_display="off" +memory_display="off" +battery_display="off" +disk_display="off" + + +# Backend Settings + + +# Image backend. +# +# Default: 'ascii' +# Values: 'ascii', 'caca', 'chafa', 'jp2a', 'iterm2', 'off', +# 'pot', 'termpix', 'pixterm', 'tycat', 'w3m', 'kitty' +# Flag: --backend +image_backend="ascii" + +# Image Source +# +# Which image or ascii file to display. +# +# Default: 'auto' +# Values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/' +# 'command output (neofetch --ascii "$(fortune | cowsay -W 30)")' +# Flag: --source +# +# NOTE: 'auto' will pick the best image source for whatever image backend is used. +# In ascii mode, distro ascii art will be used and in an image mode, your +# wallpaper will be used. +image_source="auto" + + +# Ascii Options + + +# Ascii distro +# Which distro's ascii art to display. +# +# Default: 'auto' +# Values: 'auto', 'distro_name' +# Flag: --ascii_distro +# NOTE: AIX, Alpine, Anarchy, Android, Antergos, antiX, "AOSC OS", +# "AOSC OS/Retro", Apricity, ArcoLinux, ArchBox, ARCHlabs, +# ArchStrike, XFerience, ArchMerge, Arch, Artix, Arya, Bedrock, +# Bitrig, BlackArch, BLAG, BlankOn, BlueLight, bonsai, BSD, +# BunsenLabs, Calculate, Carbs, CentOS, Chakra, ChaletOS, +# Chapeau, Chrom*, Cleanjaro, ClearOS, Clear_Linux, Clover, +# Condres, Container_Linux, CRUX, Cucumber, Debian, Deepin, +# DesaOS, Devuan, DracOS, DarkOs, DragonFly, Drauger, Elementary, +# EndeavourOS, Endless, EuroLinux, Exherbo, Fedora, Feren, FreeBSD, +# FreeMiNT, Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, Pentoo, +# gNewSense, GNOME, GNU, GoboLinux, Grombyang, Guix, Haiku, Huayra, +# Hyperbola, janus, Kali, KaOS, KDE_neon, Kibojoe, Kogaion, +# Korora, KSLinux, Kubuntu, LEDE, LFS, Linux_Lite, +# LMDE, Lubuntu, Lunar, macos, Mageia, MagpieOS, Mandriva, +# Manjaro, Maui, Mer, Minix, LinuxMint, MX_Linux, Namib, +# Neptune, NetBSD, Netrunner, Nitrux, NixOS, Nurunner, +# NuTyX, OBRevenge, OpenBSD, openEuler, OpenIndiana, openmamba, +# OpenMandriva, OpenStage, OpenWrt, osmc, Oracle, OS Elbrus, PacBSD, +# Parabola, Pardus, Parrot, Parsix, TrueOS, PCLinuxOS, Peppermint, +# popos, Porteus, PostMarketOS, Proxmox, Puppy, PureOS, Qubes, Radix, +# Raspbian, Reborn_OS, Redstar, Redcore, Redhat, Refracted_Devuan, +# Regata, Rosa, sabotage, Sabayon, Sailfish, SalentOS, Scientific, +# Septor, SereneLinux, SharkLinux, Siduction, Slackware, SliTaz, +# SmartOS, Solus, Source_Mage, Sparky, Star, SteamOS, SunOS, +# openSUSE_Leap, openSUSE_Tumbleweed, openSUSE, SwagArch, Tails, +# Trisquel, Ubuntu-Budgie, Ubuntu-GNOME, Ubuntu-MATE, Ubuntu-Studio, +# Ubuntu, Venom, Void, Obarun, windows10, Windows7, Xubuntu, Zorin, +# and IRIX have ascii logos +# NOTE: Arch, Ubuntu, Redhat, and Dragonfly have 'old' logo variants. +# Use '{distro name}_old' to use the old logos. +# NOTE: Ubuntu has flavor variants. +# Change this to Lubuntu, Kubuntu, Xubuntu, Ubuntu-GNOME, +# Ubuntu-Studio, Ubuntu-Mate or Ubuntu-Budgie to use the flavors. +# NOTE: Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu, +# CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, android, +# Antrix, CentOS, Cleanjaro, ElementaryOS, GUIX, Hyperbola, +# Manjaro, MXLinux, NetBSD, Parabola, POP_OS, PureOS, +# Slackware, SunOS, LinuxLite, OpenSUSE, Raspbian, +# postmarketOS, and Void have a smaller logo variant. +# Use '{distro name}_small' to use the small variants. +ascii_distro="auto" + +# Ascii Colors +# +# Default: 'distro' +# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num' +# Flag: --ascii_colors +# +# Example: +# ascii_colors=(distro) - Ascii is colored based on Distro colors. +# ascii_colors=(4 6 1 8 8 6) - Ascii is colored using these colors. +ascii_colors=(distro) + +# Bold ascii logo +# Whether or not to bold the ascii logo. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --ascii_bold +ascii_bold="on" + + +# Image Options + + +# Image loop +# Setting this to on will make neofetch redraw the image constantly until +# Ctrl+C is pressed. This fixes display issues in some terminal emulators. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --loop +image_loop="off" + +# Thumbnail directory +# +# Default: '~/.cache/thumbnails/neofetch' +# Values: 'dir' +thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch" + +# Crop mode +# +# Default: 'normal' +# Values: 'normal', 'fit', 'fill' +# Flag: --crop_mode +# +# See this wiki page to learn about the fit and fill options. +# https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F +crop_mode="normal" + +# Crop offset +# Note: Only affects 'normal' crop mode. +# +# Default: 'center' +# Values: 'northwest', 'north', 'northeast', 'west', 'center' +# 'east', 'southwest', 'south', 'southeast' +# Flag: --crop_offset +crop_offset="center" + +# Image size +# The image is half the terminal width by default. +# +# Default: 'auto' +# Values: 'auto', '00px', '00%', 'none' +# Flags: --image_size +# --size +image_size="auto" + +# Gap between image and text +# +# Default: '3' +# Values: 'num', '-num' +# Flag: --gap +gap=3 + +# Image offsets +# Only works with the w3m backend. +# +# Default: '0' +# Values: 'px' +# Flags: --xoffset +# --yoffset +yoffset=0 +xoffset=0 + +# Image background color +# Only works with the w3m backend. +# +# Default: '' +# Values: 'color', 'blue' +# Flag: --bg_color +background_color= + + +# Misc Options + +# Stdout mode +# Turn off all colors and disables image backend (ASCII/Image). +# Useful for piping into another command. +# Default: 'off' +# Values: 'on', 'off' +stdout="off" diff --git a/hosts/mainframe/config/bob/config.json b/hosts/mainframe/config/bob/config.json new file mode 100644 index 0000000..45f1831 --- /dev/null +++ b/hosts/mainframe/config/bob/config.json @@ -0,0 +1,3 @@ +{ + "add_neovim_binary_to_path": true +} \ No newline at end of file diff --git a/hosts/mainframe/config/inbox-tidy/tidy.toml b/hosts/mainframe/config/inbox-tidy/tidy.toml new file mode 100644 index 0000000..e80098e --- /dev/null +++ b/hosts/mainframe/config/inbox-tidy/tidy.toml @@ -0,0 +1,99 @@ +# inbox_tidy -- archive stale unread mail out of the Proton inbox. +# +# Nothing here deletes anything. The only operation is an IMAP MOVE from INBOX +# to Archive, recorded in ~/.local/share/inbox-tidy/archived.jsonl so any run +# can be reversed with `inbox_tidy --undo `. + +# ARMED? Left false until `--check` has been compared against the Proton web +# UI and `--dry-run` has been read. --check and --dry-run work regardless. +enabled = true + +# Unread for longer than this many days is a candidate. +age_days = 3 + +# Most that will be archived in one run. A backlog drains over several days +# rather than in one sweep, which also caps how much a bad guard list can move +# before you notice. `--max` overrides. +max_per_run = 250 + +# --------------------------------------------------------------------------- +# Interlocks. Both abort the run rather than archiving; both exist because of +# something actually observed, not as theoretical caution. +# --------------------------------------------------------------------------- + +# Bridge reported 1249 unread in INBOX while the Proton UI showed 646. Resolved +# 2026-09-09: NOT a flag problem. The initial sync finished at 100% and the +# count did not move, and the messages were spot-checked in the web UI as +# genuinely unread and genuinely in the Inbox. Threading was also ruled out +# (1249 messages -> 1247 RFC thread roots, 1026 distinct subjects; no grouping +# scheme reaches 648). Most likely Proton's inbox categories showing a subset +# in the badge. Unresolved, but no longer load-bearing. +# +# Backlog drained 2026-09-09 (1180 archived over 5 runs; INBOX went to 14 +# messages / 0 unread). Lowered back from the temporary 1400 now that steady +# state is one day's mail -- at 1400 this interlock could never fire, and an +# interlock that cannot fire is not one. 200 is roughly a week of arrivals, so +# it tolerates a holiday without tripping while still catching a runaway. +expected_unread_max = 200 + +# The correspondent allowlist is derived from the Sent mailbox. If Sent is +# nearly empty (as it was mid-sync, at 11 messages) that guard silently does +# nothing. Refuse to run rather than sweep up mail from people you write to. +min_correspondents = 25 + +# --------------------------------------------------------------------------- +# Guards. Evaluated in this order, before the archive decision, so anything +# uncertain resolves to leaving the message where it is. +# +# 1. \Flagged or \Answered (no config; always protected) +# 2. protect_senders +# 3. anyone in the Sent-derived correspondent list +# 4. protect_subjects +# 5. no Message-ID (could not be undone, so is not moved) +# --------------------------------------------------------------------------- + +# An entry containing @ matches that address exactly. An entry without one +# matches the domain AND its subdomains, so "chase.com" also covers +# "fraudalert.chase.com" -- which is the case that actually matters. +protect_senders = [ + # Deliberately empty to start. Add whatever gets archived that you wanted + # kept; the log names the sender for every move, so this list can be grown + # from evidence rather than guessed at up front. +] + +# Case-insensitive regexes tested against the Subject. These are the mails +# where not noticing has a real cost, so they are held back across every +# sender rather than relying on protect_senders being complete. +protect_subjects = [ + 'fraud', + 'security alert', + 'suspicious', + 'unauthori[sz]ed', + 'action (needed|required)', + 'verify your', + 'past due', + 'overdue', + 'final notice', + 'court|subpoena|jury', + '\bIRS\b', +] + +[ntfy] +url = "https://ntfy.rcjohnstone.com" +# Its own topic, NOT rent-utilities -- that one is a monthly message worth +# reading, and burying it under a daily archive summary would train you to +# swipe both away. `ntfy access bot inbox-tidy rw` was granted so delivery can +# be verified by polling, not just inferred from a 200 (the `bot` user is +# write-only on `*`, so polling with its token otherwise returns an empty list +# even when messages are sitting there). +topic = "inbox-tidy" + +[imap] +host = "127.0.0.1" +port = 1143 +starttls = true +user = "c@rcjohnstone.com" +password_env = "PROTON_BRIDGE_PASSWORD" +sent_mailbox = "Sent" +# Cap on how much of Sent is read to build the allowlist. +sent_scan_limit = 3000 diff --git a/hosts/mainframe/config/llmfit/filters.json b/hosts/mainframe/config/llmfit/filters.json new file mode 100644 index 0000000..f666e28 --- /dev/null +++ b/hosts/mainframe/config/llmfit/filters.json @@ -0,0 +1,1556 @@ +{ + "fit_filter": "All", + "availability_filter": "All", + "tp_filter": "All", + "sort_column": "Score", + "sort_ascending": false, + "installed_first": false, + "search_query": null, + "providers": { + "lgaalves": true, + "ba2han": true, + "gbueno86": true, + "weyaxi": true, + "bytedance-research": true, + "nasiruddin15": true, + "koalajun": true, + "aisingapore": true, + "anwgpt": true, + "nondzu": true, + "BAAI": true, + "roadqaq": true, + "harvard-dcml": true, + "anjajar": true, + "jackrong": true, + "onurdemircioglu": true, + "sankalpjha1": true, + "joaoffg": true, + "prithivmlmods": true, + "leaderboardmodel1": true, + "aehrc": true, + "idea-research": true, + "trevon": true, + "yurg99": true, + "prashasst": true, + "dfurman": true, + "dvruette": true, + "genevera": true, + "mckerm1t": true, + "whiterabbitneo": true, + "rasyosef": true, + "duliadotio": true, + "yousefbahr": true, + "eshmo-ai": true, + "lm-provers": true, + "contextboxai": true, + "argilla-warehouse": true, + "mratsim": true, + "pankajmathur": true, + "tiny-random": true, + "pretergeek": true, + "maykeye": true, + "opengpt-x": true, + "nos-pt": true, + "ilsp": true, + "calamitousfelicitousness": true, + "goodbaibai88": true, + "hitz": true, + "intel": true, + "johnblick187": true, + "jongyeop": true, + "mtgv": true, + "nytopop": true, + "distil-labs": true, + "inference-net": true, + "mantis2024": true, + "browser-use": true, + "muscaria": true, + "ozertuu": true, + "swiss-ai": true, + "llm-blender": true, + "ncsoft": true, + "alexzander85": true, + "davidau": true, + "gy2233": true, + "paloalma": true, + "ticklingshell": true, + "wavecut": true, + "wenchuanzhang": true, + "lamini": true, + "xlnet": true, + "xtuner": true, + "cookinai": true, + "pybbb": true, + "double7": true, + "migtissera": true, + "abhishekchohan": true, + "khazarai": true, + "ordenwills": true, + "akhooli": true, + "techxgenus": true, + "shahriarferdoush": true, + "gsai-ml": true, + "sciphi": true, + "vohuythu89": true, + "castironmind": true, + "davzoku": true, + "jetlm": true, + "jxm": true, + "deepmount00": true, + "libraxisai": true, + "muxodious": true, + "knutjaegersberg": true, + "georgeuwaifo": true, + "plezan": true, + "rishanthrajendhran": true, + "thunderbolt215215": true, + "ystemsrx": true, + "squ11z1": true, + "Upstage": true, + "sweepai": true, + "omni-research": true, + "hweri": true, + "jeonsworld": true, + "hotdogs": true, + "activedap": true, + "mewaeltsegay": true, + "rrivera1849": true, + "yaojialzc": true, + "t1anyu": true, + "georgesung": true, + "m8than": true, + "villanovaai": true, + "yukang": true, + "Alibaba": true, + "robertgshaw2": true, + "opceanai": true, + "anechaev": true, + "tomg-group-umd": true, + "paudelnirajan": true, + "tex70": true, + "girinath11": true, + "simonlee711": true, + "dahghostblogger": true, + "cncl-penn-state": true, + "lovedheart": true, + "multiversecomputingcai": true, + "junaid008": true, + "magistrtheone": true, + "chrispalmsprings89": true, + "ucla-agi": true, + "paust": true, + "erwanf": true, + "abhiramtirumala": true, + "sentence-transformers": true, + "candan77": true, + "bharatgenai": true, + "lightonai": true, + "tanganke": true, + "selode-ai": true, + "giux78": true, + "xenova": true, + "adamlucek": true, + "hkust-nlp": true, + "rdtand": true, + "suayptalha": true, + "tushargoel": true, + "jenerallee78": true, + "lightricks": true, + "gratefulasi": true, + "jackfram": true, + "jarradh": true, + "pucpr-br": true, + "neural-ice": true, + "obliteratus": true, + "openbmb": true, + "vkatg": true, + "selimaktas": true, + "lmms-lab": true, + "lukealonso": true, + "varjosoft": true, + "adeelahmad": true, + "openvla": true, + "biomistral": true, + "maximuslee07": true, + "rhymes-ai": true, + "smcleish": true, + "wangzejun": true, + "combinhorizon": true, + "twobombs": true, + "openthaigpt": true, + "kurakurai": true, + "logosnodos": true, + "playingyoyo": true, + "facebook": true, + "luckylobster": true, + "numind": true, + "stanfordaimi": true, + "cyfragovpl": true, + "anjoe": true, + "croll83": true, + "polygl0t": true, + "sakanaai": true, + "mmnga": true, + "undi95": true, + "jinmang2": true, + "haoranxu": true, + "tinaxie": true, + "jaygala24": true, + "zjunlp": true, + "laap-ai": true, + "wynn747": true, + "22jay": true, + "alibaba-aaig": true, + "justindal": true, + "z-lab": true, + "locutusque": true, + "lukebailey181pub": true, + "minlik": true, + "goekdeniz-guelmez": true, + "ethzanalytics": true, + "liaaron1": true, + "omi-health": true, + "agentica-org": true, + "tartunlp": true, + "yifanyu": true, + "ai-mo": true, + "sarvamai": true, + "ollieturnbull": true, + "dengcao": true, + "catalystsec": true, + "naver-hyperclovax": true, + "beetle-humanscale": true, + "distilbert": true, + "ethicalabs": true, + "vmware": true, + "lenalibon": true, + "tenyx": true, + "refuelai": true, + "iqbalamo93": true, + "iker": true, + "baichuan-inc": true, + "nicholaskluge": true, + "sao10k": true, + "kasimat": true, + "etsien": true, + "open-thoughts": true, + "lumasik": true, + "jsfs11": true, + "orionllm": true, + "qqlabs": true, + "42dot": true, + "magpie-align": true, + "humain-ai": true, + "karakuri-ai": true, + "osaurusai": true, + "m42-health": true, + "thesven": true, + "dreamgen": true, + "northerntribe-research": true, + "veenn": true, + "DeepSeek": true, + "hampsonw": true, + "latitudegames": true, + "jangq-ai": true, + "monsoon-nlp": true, + "kylehessling1": true, + "veriloop-lab": true, + "histai": true, + "henrik3": true, + "mehuldamani": true, + "miromind-ai": true, + "stellalisy": true, + "arkoda": true, + "alevnokc": true, + "vikhyatk": true, + "casperhansen": true, + "bofenghuang": true, + "ascendkernelgen": true, + "abhishekcr448": true, + "minachist": true, + "open-machine": true, + "khairi": true, + "wwtcyberlab": true, + "maidacundo": true, + "fuseai": true, + "ai-forever": true, + "junhowie": true, + "aazurez": true, + "boboliu": true, + "lewtun": true, + "vikhrmodels": true, + "almawave": true, + "abner0803": true, + "abacusai": true, + "flwrlabs": true, + "guangyangnlp": true, + "2imi9": true, + "ministral": true, + "mradermacher": true, + "norallm": true, + "ggml-org": true, + "haykgrigorian": true, + "nvfp4": true, + "tongyi-mai": true, + "avitotech": true, + "muverqqw": true, + "rombodawg": true, + "shenzhi-wang": true, + "anakin87": true, + "unbabel": true, + "zdy1995love": true, + "l3cube-pune": true, + "monero": true, + "xinnanzhang": true, + "jackf857": true, + "pleias": true, + "danielbrdz": true, + "palmfuture": true, + "mconcat": true, + "igorktech": true, + "cminst": true, + "cpatonn": true, + "seallms": true, + "ericspencer00": true, + "liuhaotian": true, + "tjunlp": true, + "cccczshao": true, + "kmkrworks": true, + "nova-vision-language": true, + "coherelabs": true, + "silma-ai": true, + "aletheia-ng": true, + "gadflyii": true, + "sparsellm": true, + "roendar": true, + "vilm": true, + "thebloke": true, + "rmanluo": true, + "walid-iguider": true, + "jorgevanco": true, + "kisti-koni": true, + "jdchang": true, + "oobabooga": true, + "axisquant": true, + "state-spaces": true, + "stas": true, + "densec02": true, + "decompute": true, + "kmhf": true, + "lightseekorg": true, + "shisa-ai": true, + "maracatu-ai": true, + "empirischtech": true, + "fredithefish": true, + "florence-community": true, + "occiglot": true, + "nn-tech": true, + "kanocz": true, + "bunsenfeng": true, + "patronusai": true, + "kanishka": true, + "chentong00": true, + "projecte-aina": true, + "biomechanist": true, + "fdtn-ai": true, + "flink-ddd": true, + "openmoss-team": true, + "radheneev": true, + "steelstorage": true, + "thelamapi": true, + "elinas": true, + "rghosh8": true, + "anrilombard": true, + "medalpaca": true, + "typhoon-ai": true, + "aidxteam": true, + "alexwortega": true, + "kirim-ai": true, + "vagosolutions": true, + "dnfs": true, + "poedator": true, + "ketiswp": true, + "koalaai": true, + "alibaba-nlp": true, + "pytorch": true, + "yahid": true, + "concedo": true, + "bm-k": true, + "calderaai": true, + "ghost-x": true, + "ykarout": true, + "thisisiron": true, + "tucanobr": true, + "opengvlab": true, + "xiangxinai": true, + "hcy123902": true, + "Community": true, + "sophosympatheia": true, + "kengurukleo": true, + "kkhya": true, + "speakleash": true, + "arcee-ai": true, + "tildeai": true, + "mrm8488": true, + "bytedance": true, + "hit-scir": true, + "0xsero": true, + "emirkaanozdemr": true, + "OpenChat": true, + "inclusionai": true, + "berkerdooo": true, + "philippelaban": true, + "colinglab": true, + "mistral-community": true, + "samsungsds-research": true, + "sicariussicariistuff": true, + "teichai": true, + "scottzillasystems": true, + "modularai": true, + "novaglow646": true, + "bosonai": true, + "asselab": true, + "bullerwins": true, + "pjmixers-dev": true, + "ronigold": true, + "trelis": true, + "jinaai": true, + "graf": true, + "namaa-space": true, + "royallab": true, + "mcgill-nlp": true, + "skywork": true, + "valdemardi": true, + "dphn": true, + "wang7776": true, + "melihceyhan": true, + "jet-ai": true, + "epflight": true, + "ravichandranj": true, + "inceptionai": true, + "bounharabdelaziz": true, + "ibnzterrell": true, + "apolo13x": true, + "ramblingpolymath": true, + "marin-community": true, + "isotr0py": true, + "fesalfayed": true, + "llm-os-models": true, + "discoresearch": true, + "numbersstation": true, + "choonok": true, + "pyoakum": true, + "reaperdoesntknow": true, + "ibivibiv": true, + "sakamakismile": true, + "yuyu1015": true, + "mookiezii": true, + "essentialai": true, + "evilfreelancer": true, + "hf1bitllm": true, + "line-corporation": true, + "eustlb": true, + "namanbnsl": true, + "newstar": true, + "alwaysgood": true, + "sombra-x": true, + "aeala": true, + "anouarelidrissi": true, + "beowolx": true, + "moonshotai": true, + "1bitllm": true, + "open-bee": true, + "flagalpha": true, + "decruz07": true, + "llm-lat": true, + "benjamin": true, + "cmarkea": true, + "vectionlabs": true, + "languagebind": true, + "kejian": true, + "mbley": true, + "nik9999": true, + "ramikan-br": true, + "abcorrea": true, + "espressor": true, + "harborwater": true, + "BigCode": true, + "context-labs": true, + "poolside": true, + "nina2811aw": true, + "blivioniag": true, + "cahya": true, + "kernelpool": true, + "pfnet": true, + "neelectric": true, + "fairdataihub": true, + "opi-pg": true, + "afmck": true, + "sudo-0x2a": true, + "huihui-ai": true, + "sapienzanlp": true, + "sensellm": true, + "bineric": true, + "suhailult777": true, + "kendrickfff": true, + "martyn": true, + "0xvoid0000": true, + "zigeng": true, + "rlhflow": true, + "kakaocorp": true, + "elon-trump": true, + "santiagoc": true, + "codefuse-ai": true, + "bdanko": true, + "mixedbread-ai": true, + "redwoodresearch": true, + "sejal-k": true, + "lunahr": true, + "gordonhu": true, + "mjf-su": true, + "x-izhang": true, + "tedgxnhh": true, + "abhinav-anand": true, + "eryk-mazus": true, + "mcult01": true, + "olka-fi": true, + "ai21labs": true, + "rachneet": true, + "shadowml": true, + "sonoisa": true, + "titan087": true, + "Nomic": true, + "neko-institute-of-science": true, + "holten51": true, + "mjpansa": true, + "severian": true, + "webhie": true, + "stephenlzc": true, + "zirtech": true, + "kamilamila": true, + "katanemo": true, + "norod78": true, + "gitcat404": true, + "c-bone": true, + "lordneel": true, + "shunk031": true, + "supralabs": true, + "warshanks": true, + "ybelkada": true, + "w341e": true, + "onnx-internal-testing": true, + "codingmonster1234": true, + "bigscience": true, + "nytk": true, + "simplestories": true, + "stratosphere": true, + "abhinav-hf": true, + "g4me": true, + "thkim0305": true, + "syzymon": true, + "novaciano": true, + "abubakaraabi786": true, + "xuefengli": true, + "llmfan46": true, + "shieldstar": true, + "ucsc-vlaa": true, + "azure99": true, + "withinusai": true, + "ethangou": true, + "lco-embedding": true, + "crumb": true, + "devhunterai": true, + "babylm": true, + "sail": true, + "thu-coai": true, + "dutir-bionlp": true, + "arafus": true, + "clause-bielefeld": true, + "gitmylo": true, + "mistral-experimental": true, + "elyza": true, + "bespokelabs": true, + "iamjb": true, + "voicelab": true, + "duxiaoman-di": true, + "abeja": true, + "618ai": true, + "mtsair": true, + "neuracraft": true, + "nex-agi": true, + "neuralcrew": true, + "pleisto": true, + "risys-lab": true, + "clear-blue-sky": true, + "cointegrated": true, + "henk717": true, + "mideind": true, + "pthinc": true, + "turbulencedeterministe": true, + "brunopio": true, + "rohansingh2612": true, + "tokyotech-llm": true, + "ced6688": true, + "babylm-anon": true, + "contactdoctor": true, + "zed-industries": true, + "0xa50c1a1": true, + "edp1096": true, + "maziyarpanahi": true, + "yanolja": true, + "sakalti": true, + "dhruvil237": true, + "kirili4ik": true, + "vamsi": true, + "ssmits": true, + "amd": true, + "shreemj": true, + "raxcore-dev": true, + "nickypro": true, + "dealignai": true, + "ruternorway": true, + "bartowski": true, + "eslzzyl": true, + "kuleshov-group": true, + "carlyou": true, + "cais": true, + "mikkkaiikkk": true, + "argilla": true, + "redhatai": true, + "cybermotaz": true, + "bearzi": true, + "humarin": true, + "relik-ie": true, + "zassa": true, + "zero-point-ai": true, + "mkurman": true, + "arliai": true, + "garage-baind": true, + "gradientai": true, + "techwolf": true, + "bezzam": true, + "habanoz": true, + "jslin09": true, + "madras1": true, + "starvector": true, + "primeintellect": true, + "cyburn": true, + "ciocan": true, + "mlx-community": true, + "zyphra": true, + "abdallalswaiti": true, + "allenai": true, + "eekay": true, + "aeon-7": true, + "pku-onelab": true, + "mudler": true, + "muse-bench": true, + "osoleve": true, + "bgraudt": true, + "dogukanvzr": true, + "intfloat": true, + "lilmeaty": true, + "caiovicentino1": true, + "mbzuai": true, + "minthy": true, + "explosion-testing": true, + "prawinin": true, + "telugu-llm-labs": true, + "audcor": true, + "ragavsachdeva": true, + "turboderp": true, + "pruna-test": true, + "vector-institute": true, + "jerryzh168": true, + "tourniquetrules": true, + "pranavguhan": true, + "fedir-ilina": true, + "aiteamvn": true, + "cjiao": true, + "lrudl-workshop": true, + "infly": true, + "liautoad": true, + "anthonym21": true, + "ridger": true, + "armgpt": true, + "kai-os": true, + "etherll": true, + "idea-ccnl": true, + "carsenk": true, + "ducanhdinh": true, + "hcompany": true, + "jetmoe": true, + "llm-jp": true, + "mii-llm": true, + "phonsiri": true, + "ricdomolm": true, + "uniswap": true, + "claudioitaly": true, + "openhubresearch": true, + "katuni4ka": true, + "elliott": true, + "owkin": true, + "aijuud": true, + "huggingfacetb": true, + "maple-research-lab": true, + "lapa-llm": true, + "vishalmysore": true, + "mochiva-team": true, + "oxdev": true, + "nbailab": true, + "nrl-ai": true, + "republicofkorokke": true, + "opendatalab": true, + "txn545": true, + "TII": true, + "pursuitofdatascience": true, + "valiantlabs": true, + "k-compression": true, + "anserwise": true, + "rei-xx1": true, + "trohrbaugh": true, + "lyon28": true, + "atbender": true, + "bytedance-seed": true, + "dbmdz": true, + "convexai": true, + "rafacalifornia": true, + "tencentarc": true, + "cckevinn": true, + "0x7o": true, + "vikp": true, + "bg-digitalservices": true, + "optimum-intel-internal-testing": true, + "universitytehran": true, + "e-palmisano": true, + "yunjae-won": true, + "shanchen": true, + "allegrolab": true, + "aisquared": true, + "hbx": true, + "nebius": true, + "sensenova": true, + "acon96": true, + "breadlicker45": true, + "youssofal": true, + "littlenicky55": true, + "majeks": true, + "h2oai": true, + "kquant03": true, + "aeyeops": true, + "ai-sweden-models": true, + "iquestlab": true, + "llava-hf": true, + "fredzhang7": true, + "inflatebot": true, + "kblueleaf": true, + "meditsolutions": true, + "kristaller486": true, + "enfuse": true, + "jondurbin": true, + "dtestnyrr": true, + "jacopo-gab": true, + "tvall43": true, + "ysmao": true, + "tqiqbal": true, + "zyh3826": true, + "deephat": true, + "manjunathshiva": true, + "huggingfacem4": true, + "abaryan": true, + "aifeifei798": true, + "juierror": true, + "brucethemoose": true, + "coreworxlab": true, + "nmihtrug": true, + "unsloth": true, + "zju-ai4h": true, + "Microsoft": true, + "llamafactory": true, + "tacodevs": true, + "deepcogito": true, + "gghfez": true, + "mlabonne": true, + "aws-prototyping": true, + "norglm": true, + "sapientinc": true, + "thehouseofthedude": true, + "freedomintelligence": true, + "dervig": true, + "gaussalgo": true, + "sartifyllc": true, + "lyf": true, + "henrysentinel": true, + "vandijklab": true, + "webbigdata": true, + "jiosephlee": true, + "babylm-community": true, + "surajp": true, + "liminerity": true, + "quanttrio": true, + "eleutherai": true, + "flowaicom": true, + "peft-internal-testing": true, + "kyutai": true, + "rinna": true, + "vicgalle": true, + "lumiopen": true, + "psyche": true, + "liufanfanlff": true, + "xerv-ai": true, + "nvidia": true, + "saminx22": true, + "sasa2000": true, + "koboldai": true, + "bedeviler": true, + "0labs-in": true, + "surpem": true, + "thudm": true, + "scottgl": true, + "cjvt": true, + "azurro": true, + "unfilteredai": true, + "TheBloke": true, + "chrimerss": true, + "lnl-ai": true, + "hengchang-liu": true, + "datalab-to": true, + "nlpai-lab": true, + "openlm-research": true, + "prefeitura-rio": true, + "swordhealth": true, + "NCAI": true, + "duoneural": true, + "openpipe": true, + "sparse-encoder-testing": true, + "langboat": true, + "epfl-llm": true, + "stanford-crfm": true, + "ebircak": true, + "Mistral AI": true, + "ed001": true, + "gaunernst": true, + "thanhhoangnvbg": true, + "timpal0l": true, + "kyujinpy": true, + "utter-project": true, + "antoinelouis": true, + "wowolf": true, + "snehangshu511": true, + "k-intelligence": true, + "btbtyler09": true, + "ai-isl": true, + "cuongpp": true, + "hypaai": true, + "ordalietech": true, + "solidrust": true, + "guardiangate1775": true, + "vrfai": true, + "sometimesanotion": true, + "trevorjs": true, + "ajibawa-2023": true, + "cyankiwi": true, + "yasserrmd": true, + "hugohrban": true, + "realtreetune": true, + "dhmeltzer": true, + "hesamation": true, + "ibm-ai-platform": true, + "intelligent-internet": true, + "tinypixel": true, + "torchllm": true, + "meituan-longcat": true, + "ai4pd": true, + "cosmo3769": true, + "dineth554": true, + "swap-uniba": true, + "weiboai": true, + "alsandeer33": true, + "neuralnovel": true, + "dicta-il": true, + "qiyinmiss": true, + "lhca521": true, + "nthngdy": true, + "alignment-handbook": true, + "applied-innovation-center": true, + "gokaygokay": true, + "kormo-team": true, + "anarlavrenov": true, + "NousResearch": true, + "chromadb": true, + "lcu0312": true, + "sh0ck0r": true, + "rakuten": true, + "feanors": true, + "smalldoge": true, + "wisdomik": true, + "iffyuan": true, + "pushkar27": true, + "sorry-bench": true, + "sociopacific": true, + "zeroentropy": true, + "ziaulkarim245": true, + "teolm30": true, + "cazzz307": true, + "admijgjtjtjtjjg": true, + "hmellor": true, + "thoughtworks": true, + "ceia-rl": true, + "smsk1999": true, + "tribewarez": true, + "zhangchuheng123": true, + "mikiv": true, + "momix-44": true, + "aichenkai": true, + "financialsupport": true, + "ccssne": true, + "n-bot-int": true, + "goedel-lm": true, + "1038lab": true, + "baebii": true, + "cognica": true, + "m-ric": true, + "komeijiforce": true, + "alonsoko": true, + "rwkv": true, + "saisudan": true, + "svc-nai-cci": true, + "ttimofeyka": true, + "amead10": true, + "codgician": true, + "overcastlab": true, + "salesforce": true, + "teknium": true, + "m-a-p": true, + "deepparag": true, + "trillionlabs": true, + "optimizellm": true, + "minimaxai": true, + "catherinearnett": true, + "yerevann": true, + "authormist": true, + "gl198976": true, + "dotvignesh": true, + "crataco": true, + "lorenzodemattei": true, + "sagorsarker": true, + "ex0bit": true, + "naphula": true, + "gritlm": true, + "sayhan": true, + "manishthota": true, + "fxmarty": true, + "p1atdev": true, + "prem-research": true, + "pygmalionai": true, + "tri-ml": true, + "llmat": true, + "perceptronai": true, + "skytnt": true, + "tiger-lab": true, + "virtue-ai-hub": true, + "fromthesky": true, + "yosef-samy019": true, + "natong19": true, + "yannqi": true, + "akjindal53244": true, + "malteos": true, + "seacomsrl": true, + "descript": true, + "openai": true, + "username5577": true, + "cartik": true, + "lorbus": true, + "staedi": true, + "badaoui": true, + "novasky-ai": true, + "defog": true, + "codellama": true, + "arkohut": true, + "beomi": true, + "cultrix": true, + "huggyllama": true, + "skis-ai-research": true, + "arif-butt": true, + "alpindale": true, + "stepfun-ai": true, + "sunbird": true, + "taobao-mnn": true, + "yam-peleg": true, + "chwan": true, + "dream-org": true, + "OpenAI": true, + "mafgit": true, + "beanapologist": true, + "rahul7star": true, + "longsafari": true, + "yejingfu": true, + "summersigh": true, + "saylortwift": true, + "t2ance": true, + "aysunner": true, + "moadata": true, + "openbuddy": true, + "c4tdr0ut": true, + "neuralmagic": true, + "xiaomimimo": true, + "ibm-granite": true, + "shibing624": true, + "instruction-pretrain": true, + "polypo": true, + "artificialguybr": true, + "invalid-coder": true, + "optimum-internal-testing": true, + "pearl-ai": true, + "vngrs-ai": true, + "kbsdjames": true, + "kekmodel": true, + "monologg": true, + "arnir0": true, + "bramvanroy": true, + "steelskull": true, + "ten-framework": true, + "mu-nlpc": true, + "torpedosoftware": true, + "chargoddard": true, + "ilyagusev": true, + "Meta": true, + "generteam": true, + "bbarn4": true, + "clonebo": true, + "jeffreylau": true, + "lkhl": true, + "fblgit": true, + "paretoqaft": true, + "rednote-hilab": true, + "tuguberk": true, + "ahczhg": true, + "devio": true, + "tzervas": true, + "linq-ai-research": true, + "danielheinz": true, + "mayaph": true, + "orion-zhen": true, + "zypchn": true, + "skt": true, + "yunconglong": true, + "infinirc": true, + "yujiepan": true, + "quwsarohi": true, + "gustavosta": true, + "turing-motors": true, + "kaitchup": true, + "lasimeri": true, + "uss-inferprise": true, + "secbone": true, + "agentlans": true, + "freewheelin": true, + "robowaifudev": true, + "coder3101": true, + "kalpeshk2011": true, + "cpagac": true, + "kukedlc": true, + "jphme": true, + "evolai": true, + "sammysoso": true, + "tencent": true, + "asingh15": true, + "bigatuna": true, + "cobramamba": true, + "greatcaptainnemo": true, + "twinkle-ai": true, + "intelia-lab-uah": true, + "augmxnt": true, + "fancyfeast": true, + "hpcai-tech": true, + "alibaba-damo-academy": true, + "lgai-exaone": true, + "meragpt": true, + "zerofata": true, + "ai-sage": true, + "causallm": true, + "pomni": true, + "bullpoint": true, + "gwkrsrch2": true, + "armurai": true, + "hai929": true, + "leondz": true, + "likewendy": true, + "echarlaix": true, + "chompa1422": true, + "danielhanchen": true, + "felladrin": true, + "ilyasmoutawwakil": true, + "quixiai": true, + "saricles": true, + "spitfire4794": true, + "prometheus-eval": true, + "mcg-221": true, + "sdadas": true, + "zipaltrivedi": true, + "jiminmun": true, + "rajpurkarlab": true, + "csrosex": true, + "neu-hai": true, + "kurmaai": true, + "den4ikai": true, + "openrlhf": true, + "toloka": true, + "opensearch-project": true, + "libertaidai": true, + "vlsp2025-legalsml": true, + "yuhuili": true, + "perplexity-ai": true, + "happypatrick": true, + "corover": true, + "nexaai": true, + "chankhavu": true, + "openai-community": true, + "ruslanmv": true, + "ryzdfm": true, + "okazaki-lab": true, + "unstablellama": true, + "nightmedia": true, + "mesolitica": true, + "vishva007": true, + "snowflake": true, + "mrs83": true, + "rudyon": true, + "openonerec": true, + "astromlab": true, + "rubiellabarta": true, + "demo-leaderboard": true, + "nm-testing": true, + "ltc-ai-labs": true, + "mergebench": true, + "bccard": true, + "hugging-quants": true, + "lightblue": true, + "ubc-nlp": true, + "ludocomito": true, + "bllossom": true, + "adept": true, + "failspy": true, + "hitelcy": true, + "anthonypa57": true, + "gronlp": true, + "jiangchengchengnlp": true, + "dllm-hub": true, + "petals-team": true, + "resilient-coders": true, + "snumin44": true, + "ytu-ce-cosmos": true, + "nlpark": true, + "RWKV": true, + "gshasiri": true, + "grimjim": true, + "roystar": true, + "hiroshi19781111": true, + "locailabs": true, + "ntu-spml": true, + "rzoro": true, + "vaiv": true, + "yhavinga": true, + "bertin-project": true, + "breadai": true, + "cambridgeltl": true, + "nexusflow": true, + "iaar-shanghai": true, + "s3cur": true, + "riolee": true, + "lzw1008": true, + "mssfj": true, + "openaccess-ai-collective": true, + "Cohere": true, + "cloudyu": true, + "onnx-community": true, + "maxjeblick": true, + "cyberagent": true, + "cheonggyemountain-sherpa": true, + "equall": true, + "final-bench": true, + "ncbi": true, + "axiomiclabs": true, + "corianas": true, + "grizleeber": true, + "arnomatic": true, + "mihai-777": true, + "joshuasundance": true, + "mlnomad": true, + "mmaaz60": true, + "second-state": true, + "szymonrucinski": true, + "barryfutureman": true, + "maxcurrent": true, + "pahajokiconsulting": true, + "timinar": true, + "harethahmo": true, + "xlangai": true, + "rexeed": true, + "canada-quant": true, + "danggia": true, + "parasail-ai": true, + "rekaai": true, + "baffo32": true, + "i3-lab": true, + "vladshash": true, + "HuggingFace": true, + "cosmicproc": true, + "shoppal": true, + "menlo": true, + "kurtpayne": true, + "cactusfriend": true, + "heegyu": true, + "0rn0": true, + "hishab": true, + "jiunsong": true, + "ninedaywang": true, + "fla-hub": true, + "byroneverson": true, + "pszemraj": true, + "apple": true, + "altomek": true, + "qingy2024": true, + "qpieimitation": true, + "silx-ai": true, + "moondream": true, + "teezee": true, + "wangzhang": true, + "ib-ssm": true, + "lomahony": true, + "grayswanai": true, + "hyper-accel": true, + "snsfl": true, + "alchemab": true, + "list-cloud": true, + "harley-ml": true, + "my-ai-stack": true, + "lihaoxin2020": true, + "engineering-group": true, + "infomaniak-ai": true, + "jiagaoxiang": true, + "yacht": true, + "kmewhort": true, + "zhiqing": true, + "max-and-omnis": true, + "dreamfast": true, + "vectorzhou": true, + "internlm": true, + "nameistoken": true, + "marketeam": true, + "rico03": true, + "mediatek-research": true, + "dbddv01": true, + "doradus-ai": true, + "jessed": true, + "jetbrains": true, + "sakonii": true, + "ksjsjjdj": true, + "redix": true, + "berkeley-nest": true, + "p-e-w": true, + "uygarkurt": true, + "batsclamp": true, + "baidu": true, + "sanjiwatsuki": true, + "brain-bzh": true, + "janhq": true, + "locuslab": true, + "insait-institute": true, + "nanbeige": true, + "stelterlab": true, + "winninghealth": true, + "vihangd": true, + "zai-org": true, + "tabularisai": true, + "mlfoundations": true, + "aubmindlab": true, + "generalanalysis": true, + "orionstarai": true, + "qcri": true, + "frontiersmind": true, + "axel-datos": true, + "octomed": true, + "oshkorinova": true, + "psychopenguin": true, + "jiayi-pan": true, + "bingsu": true, + "thhaus": true, + "baseten": true, + "amazon": true, + "01.ai": true, + "chimbiwide": true, + "kerolos1": true, + "kojima-lab": true, + "rinnic": true, + "s4nfs": true, + "ista-daslab": true, + "amitbehura": true, + "linjc16": true, + "genezc": true, + "fpadovani": true, + "indonesian-nlp": true, + "Google": true, + "5cd-ai": true, + "chunity": true, + "henrychur": true, + "lordx64": true, + "boods": true, + "nicklas373": true, + "qnguyen3": true, + "rl-research": true, + "castorini": true, + "konstantinoskk": true, + "stefan-it": true, + "superqai2050": true, + "aidc-ai": true, + "anthracite-org": true, + "tomergamertv": true, + "treadon": true, + "aaditya": true, + "adaptllm": true, + "empero-ai": true, + "friendliai": true, + "kldzj": true, + "uukuguy": true, + "ibm-research": true, + "lex-hue": true, + "openllm-france": true, + "artples": true, + "sauce1337": true, + "w601sxs": true, + "chat2find": true, + "jedisct1": true, + "openresearcher": true, + "xcuros": true, + "abinayam": true, + "t-systems-onsite": true, + "unicamp-dl": true, + "xingyu-zheng": true, + "yentinglin": true, + "isotonic": true, + "lingshu-medical-mllm": true, + "ddvd233": true, + "phamhai": true, + "Stability AI": true, + "aviralgusain": true, + "felprot75": true, + "xlabs-ai": true, + "yec019": true, + "kitsuvp": true, + "lilarest": true, + "samuelfaj": true, + "kasper-bankler": true, + "ermiaazarkhalili": true, + "chujiamo": true, + "chujiezheng": true, + "enzan9": true, + "bounthisanh": true, + "eth-nlped": true, + "fav-kky": true, + "mii-community": true, + "djdeniro": true, + "opendataarena": true, + "mohamedrashad": true, + "WizardLM": true, + "brian6145": true, + "rev124": true, + "t-tech": true, + "tiyupi-ece": true, + "vilsonrodrigues": true, + "hyeongwon": true, + "mixtao": true, + "nyu-visionx": true, + "servicenow-ai": true, + "voidful": true, + "worstchan": true, + "farbodtavakkoli": true, + "yuwangx": true, + "carperai": true, + "yu-mo": true, + "bsc-lt": true, + "0xbonge": true, + "automerger": true, + "manycore-research": true, + "nanonets": true, + "orenguteng": true, + "ilia2003mah": true, + "drawais": true, + "louismuk": true, + "outlier-ai": true, + "deepseek-community": true, + "gmongaras": true, + "sbintuitions": true, + "Liquid AI": true, + "ruslandev": true, + "finnish-nlp": true, + "hf-audio": true, + "beetle-fineweb": true, + "reducto": true, + "moxoffsrl": true, + "getonit": true, + "deviad": true, + "dity": true, + "winglian": true, + "razor534": true, + "taeminlee": true, + "922-ca": true, + "cstr": true, + "itstechuse": true, + "ig1": true, + "axolotl-ai-co": true, + "paddlepaddle": true, + "groxaxo": true, + "princeton-nlp": true, + "stanford-oval": true, + "star-ga": true, + "ansulev": true, + "dizza01": true, + "hfl": true, + "pawin205": true, + "nexveridian": true, + "nilq": true, + "cs1090b": true, + "gf43hhd": true, + "LMSYS": true, + "prothamd": true, + "datajuicer": true, + "cerebras": true, + "nectec": true, + "kaist-ai": true, + "flax-community": true, + "omalve": true, + "principled-intelligence": true, + "singh8898": true, + "stephenjhardy": true, + "countcandy": true, + "wenbopan": true, + "selfrag": true, + "axionml": true, + "natfii": true, + "yiwenx": true, + "chandar-lab": true, + "titanml": true, + "olafangensan": true, + "acrastt": true, + "scut-dlvclab": true, + "kgrabko": true, + "leon-se": true, + "postbot": true, + "alignmentresearch": true, + "lsx-uniwue": true, + "np-cr": true, + "tommymir4444": true, + "toxicityprompts": true, + "ar4ikov": true + }, + "use_cases": { + "General": true, + "Coding": true, + "Reasoning": true, + "Chat": true, + "Embedding": true, + "Multimodal": true + }, + "capabilities": { + "Vision": true, + "Tool Use": true, + "Audio": true + }, + "quants": { + "AutoRound-4bit": true, + "GPTQ-Int8": true, + "Q3_K_M": true, + "Q6_K": true, + "AutoRound-8bit": true, + "GPTQ-Int4": true, + "Q2_K": true, + "Q4_K_M": true, + "AWQ-8bit": true, + "Q8_0": true, + "GPTQ-Int2": true, + "Q5_K_M": true, + "AWQ-4bit": true + }, + "run_modes": { + "CPU+GPU": true, + "GPU": true, + "MoE": true, + "CPU": true + }, + "params_buckets": { + "3-7B": true, + "7-14B": true, + "30-70B": true, + "<3B": true, + "14-30B": true, + "70B+": true + }, + "licenses": { + "tencent-hunyuan-a13b": true, + "tongyi-qianwen": true, + "iquestcoder": true, + "minimax": true, + "tongyi-qianwen-license-agreement": true, + "wtfpl": true, + "cc-by-4.0": true, + "apache-2.0": true, + "gemma": true, + "hyperclovax": true, + "openmdw-1.1": true, + "deepseek-license": true, + "cc-by-sa-4.0": true, + "falcon-llm-license": true, + "llama3.1": true, + "exaone": true, + "llama3.2": true, + "llama4": true, + "kohaku-license-1.0": true, + "openrail": true, + "plamo-community-license": true, + "qwen-research": true, + "tongyi-qianwen-research": true, + "llama2": true, + "llama3": true, + "modified-mit": true, + "unknown": true, + "bsd-3-clause": true, + "Unknown": true, + "hyperclovax-seed": true, + "k-exaone": true, + "mrl": true, + "nvidia-nemotron-open-model-license": true, + "nvidia-open-model-license": true, + "other": true, + "mit": true, + "apache-license-2.0": true, + "deepseek": true, + "minimax-community": true, + "qwen": true, + "llama3.1,gemma": true, + "falcon-mamba-7b-license": true, + "jamba-open-model-license": true, + "llama3.3": true, + "bigcode-openrail-m": true, + "cc-by-nc-sa-4.0": true, + "llama3.3,gemma": true, + "nvidia-internal-scientific-research-and-development-model-license": true, + "cc-by-nc-4.0": true, + "bigscience-bloom-rail-1.0": true, + "apple-amlr": true, + "glm-4": true, + "health-ai-developer-foundations": true, + "nvidia-software-and-model-evaluation-license": true, + "lfm1.0": true + }, + "runtimes": { + "vLLM": true, + "MLX": true, + "llama.cpp": true + }, + "filter_params_min": null, + "filter_params_max": null, + "filter_mem_pct_min": null, + "filter_mem_pct_max": null, + "download_dir": null +} \ No newline at end of file diff --git a/hosts/mainframe/config/llmfit/theme b/hosts/mainframe/config/llmfit/theme new file mode 100644 index 0000000..29d4807 --- /dev/null +++ b/hosts/mainframe/config/llmfit/theme @@ -0,0 +1 @@ +Gruvbox \ No newline at end of file diff --git a/hosts/mainframe/config/mimeapps.list b/hosts/mainframe/config/mimeapps.list new file mode 100644 index 0000000..169dcfb --- /dev/null +++ b/hosts/mainframe/config/mimeapps.list @@ -0,0 +1,3 @@ + +[Default Applications] +x-scheme-handler/claude-cli=claude-code-url-handler.desktop diff --git a/hosts/mainframe/config/user-dirs.dirs b/hosts/mainframe/config/user-dirs.dirs new file mode 100644 index 0000000..7375b4a --- /dev/null +++ b/hosts/mainframe/config/user-dirs.dirs @@ -0,0 +1,15 @@ +# This file is written by xdg-user-dirs-update +# If you want to change or add directories, just edit the line you're +# interested in. All local changes will be retained on the next run. +# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped +# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an +# absolute path. No other format is supported. +# +XDG_DESKTOP_DIR="$HOME/" +XDG_DOWNLOAD_DIR="$HOME/" +XDG_TEMPLATES_DIR="$HOME/" +XDG_PUBLICSHARE_DIR="$HOME/" +XDG_DOCUMENTS_DIR="$HOME/" +XDG_MUSIC_DIR="$HOME/" +XDG_PICTURES_DIR="$HOME/" +XDG_VIDEOS_DIR="$HOME/" diff --git a/hosts/nas/config/bob/config.json b/hosts/nas/config/bob/config.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/hosts/nas/config/bob/config.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/hosts/sctfw004/config/bob/config.json b/hosts/sctfw004/config/bob/config.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/hosts/sctfw004/config/bob/config.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/hosts/sctfw004/config/fastfetch/config-compact.jsonc b/hosts/sctfw004/config/fastfetch/config-compact.jsonc new file mode 100644 index 0000000..94187c5 --- /dev/null +++ b/hosts/sctfw004/config/fastfetch/config-compact.jsonc @@ -0,0 +1,75 @@ +{ + "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", + "logo": { + "source": "~/.config/fastfetch/ubuntu.png", + "type": "kitty-direct", + "height": 10, + "width": 20, + "padding": { + "top": 1 + } + }, + "display": { + "separator": " -> " + }, + "modules": [ + "break", + { + "type": "title", + "keyWidth": 10, + "format": " {6}{7}{8}" + }, + { + "type": "custom", + "format": " ─────────────────────────── " + }, + { + "type": "kernel", + "key": " ", + "keyColor": "yellow" + }, + { + "type": "wm", + "key": " ", + "keyColor": "blue" + }, + { + "type": "shell", + "key": " ", + "keyColor": "yellow" + }, + { + "type": "terminal", + "key": " ", + "keyColor": "blue" + }, + /* + { + "type": "packages", + "key": "󰏖 ", + "keyColor": "yellow" + }, + */ + { + "type": "memory", + "key": "󰍛 ", + "keyColor": "magenta", + // format: used / total + "format": "{1} / {2}" + }, + { + "type": "uptime", + "key": "󰔛 ", + "keyColor": "green" + }, + { + "type": "custom", + "format": " ─────────────────────────── " + }, + { + "type": "custom", + "format": " \u001b[31m \u001b[32m \u001b[33m \u001b[34m \u001b[35m \u001b[36m \u001b[37m \u001b[90m " + }, + "break", + ] +} diff --git a/hosts/sctfw004/config/fastfetch/config-pokemon.jsonc b/hosts/sctfw004/config/fastfetch/config-pokemon.jsonc new file mode 100644 index 0000000..2b4522f --- /dev/null +++ b/hosts/sctfw004/config/fastfetch/config-pokemon.jsonc @@ -0,0 +1,73 @@ +{ + "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", + "logo": { + "height": 5, + "width": 10, + "padding": { + "top": 1 + } + }, + "display": { + "separator": " -> " + }, + "modules": [ + "break", + { + "type": "title", + "keyWidth": 10, + "format": " {6}{7}{8}" + }, + { + "type": "custom", + "format": " ─────────────────────────── " + }, + { + "type": "kernel", + "key": " ", + "keyColor": "yellow" + }, + { + "type": "wm", + "key": " ", + "keyColor": "blue" + }, + { + "type": "shell", + "key": " ", + "keyColor": "yellow" + }, + { + "type": "terminal", + "key": " ", + "keyColor": "blue" + }, + /* + { + "type": "packages", + "key": "󰏖 ", + "keyColor": "yellow" + }, + */ + { + "type": "memory", + "key": "󰍛 ", + "keyColor": "magenta", + // format: used / total + "format": "{1} / {2}" + }, + { + "type": "uptime", + "key": "󰔛 ", + "keyColor": "green" + }, + { + "type": "custom", + "format": " ─────────────────────────── " + }, + { + "type": "custom", + "format": " \u001b[31m \u001b[32m \u001b[33m \u001b[34m \u001b[35m \u001b[36m \u001b[37m \u001b[90m " + }, + "break", + ] +} diff --git a/hosts/sctfw004/config/fastfetch/config-v2.jsonc b/hosts/sctfw004/config/fastfetch/config-v2.jsonc new file mode 100644 index 0000000..cee27fd --- /dev/null +++ b/hosts/sctfw004/config/fastfetch/config-v2.jsonc @@ -0,0 +1,112 @@ +{ +"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", +"logo": { + //"source": "~/.config/fastfetch/nixos.png", + //"type": "kitty-direct", + "height": 15, + "width": 30, + "padding": { + "top": 1 + } + }, +"display": { + "separator": " ➜ " +}, + +"modules": [ + "break", + { + "type": "os", + "key": " DISTRO", + "keyColor": "31", + }, + { + "type": "kernel", + "key": " ├  ", + "keyColor": "31", + }, + { + "type": "packages", + "key": " ├ 󰏖 ", + "keyColor": "31", + }, + { + "type": "shell", + "key": " └  ", + "keyColor": "31", + }, + "break", + { + "type": "wm", + "key": " DE/WM", + "keyColor": "32", + }, + { + "type": "wmtheme", + "key": " ├ 󰉼 ", + "keyColor": "32", + }, + { + "type": "icons", + "key": " ├ 󰀻 ", + "keyColor": "32", + }, + { + "type": "cursor", + "key": " ├  ", + "keyColor": "32", + }, + { + "type": "terminal", + "key": " ├  ", + "keyColor": "32", + }, + { + "type": "terminalfont", + "key": " └  ", + "keyColor": "32", + }, + "break", + { + "type": "host", + "format": "{2}", + "key": "󰌢 SYSTEM", + "keyColor": "33", + }, + { + "type": "cpu", + "format": "{1} ({3}) @ {7} GHz", + "key": " ├  ", + "keyColor": "33", + }, + { + "type": "gpu", + "format": "{2}", + "key": " ├ 󰢮 ", + "keyColor": "33", + }, + { + "type": "memory", + "key": " ├  ", + "keyColor": "33", + }, + { + "type": "swap", + "key": " ├ 󰓡 ", + "keyColor": "33", + }, + { + "type": "disk", + "key": " ├ 󰋊 ", + "keyColor": "33", + }, + { + "type": "display", + "key": " └  ", + "compactType": "original-with-refresh-rate", + "keyColor": "33", + }, + "break", + "break", +] +} diff --git a/hosts/sctfw004/config/fastfetch/config.jsonc b/hosts/sctfw004/config/fastfetch/config.jsonc new file mode 100644 index 0000000..dfbe1c8 --- /dev/null +++ b/hosts/sctfw004/config/fastfetch/config.jsonc @@ -0,0 +1,128 @@ + +{ +"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", +"logo": { +"padding": { +"top": 1 +} +}, +"display": { +"separator": " 󰑃 " +}, +"modules": [ + "break", + { + "type": "os", + "key": " DISTRO", + "keyColor": "yellow" + }, + { + "type": "kernel", + "key": "│ ├", + "keyColor": "yellow" + }, + { + "type": "packages", + "key": "│ ├󰏖", + "keyColor": "yellow" + }, + { + "type": "shell", + "key": "│ └", + "keyColor": "yellow" + }, + { + "type": "wm", + "key": " DE/WM", + "keyColor": "blue" + }, + { + "type": "wmtheme", + "key": "│ ├󰉼", + "keyColor": "blue" + }, + { + "type": "icons", + "key": "│ ├󰀻", + "keyColor": "blue" + }, + { + "type": "cursor", + "key": "│ ├", + "keyColor": "blue", + }, + { + "type": "terminalfont", + "key": "│ ├", + "keyColor": "blue", + }, + { + "type": "terminal", + "key": "│ └", + "keyColor": "blue" + }, + { + "type": "host", + "key": "󰌢 SYSTEM", + "keyColor": "green" + }, + { + "type": "cpu", + "key": "│ ├󰻠", + "keyColor": "green" + }, + { + "type": "gpu", + "key": "│ ├󰻑", + "format": "{2}", + "keyColor": "green" + }, + { + "type": "display", + "key": "│ ├󰍹", + "keyColor": "green", + "compactType": "original-with-refresh-rate" + }, + { + "type": "memory", + "key": "│ ├󰾆", + "keyColor": "green" + }, + { + "type": "swap", + "key": "│ ├󰓡", + "keyColor": "green" + }, + { + "type": "uptime", + "key": "│ ├󰅐", + "keyColor": "green" + }, + { + "type": "display", + "key": "│ └󰍹", + "keyColor": "green" + }, + { + "type": "sound", + "key": " AUDIO", + "format": "{2}", + "keyColor": "magenta" + }, + { + "type": "player", + "key": "│ ├󰥠", + "keyColor": "magenta" + }, + { + "type": "media", + "key": "│ └󰝚", + "keyColor": "magenta" + }, + { + "type": "custom", + "format": "\u001b[90m \u001b[31m \u001b[32m \u001b[33m \u001b[34m \u001b[35m \u001b[36m \u001b[37m \u001b[38m \u001b[39m \u001b[39m  \u001b[38m \u001b[37m \u001b[36m \u001b[35m \u001b[34m \u001b[33m \u001b[32m \u001b[31m \u001b[90m " + }, + "break", + ] +} diff --git a/hosts/sctfw004/config/fastfetch/ubuntu.png b/hosts/sctfw004/config/fastfetch/ubuntu.png new file mode 100644 index 0000000000000000000000000000000000000000..f54657edf4ad8e70f0ea8eac0fda1fa9110e4782 GIT binary patch literal 141008 zcmeEtRaabHux;b+?(R+?1b26LcMqOG&;Y^REx0xAPH=a(5Zr+B-B74NS*gLJS^~+E~~V4;0MBI8C^FJ2(|zH z4Ux=*N(2ItgJdN{HNIs1?fe=?EuDS-a5Fqy&sjg&h33($rv~=;46jF?r!NMXCm8@D zY52ldQyWOI7{ya>f3>JnUrW;GxsP%|o!LBY9>8ld4H6TBbk7xKmk~Pv*~wPcpM%@L zZD&+Wu@^5?>wn0`fsX2F6mjk_`*fFx^(>k9!CuC&g22I*Nc4uWB6At7LbhvCrQAP5pgE<9aRv%5V z=xSD1oVA%r5S=o2Bz~@WjxJW}b8vFH_OA}HkB37cF^8IB>eiS*XjK`kSja}K!6vXM zyKQ)ejE5VXXF7L<|NHk(y!9EmFY8y$FSE2}j(NSgg@q7q`$bR~9)9JhOx?B3s>jU$ zLYn95@A3(!Y_}1g!pHWnS5_K~$+}O&z-J%nkZJSA)^?bhS~@OkxM|yXSU( z!mQeMh486PoXsnB&%9G+Y{_far5row){opPDXNF8x$2FJMlI zpT%YR=NN}#mS$2tyv#APh0ta=e=#V6j(BN)URIpcMPu1FlTPU-@pHFK>-$=1fZ?lZ?`Mf z`Uk5XJ~X-p>kS+!xKk@U2eJ=2`nY9d_6w6*|CHSneZpQE`xEEhOmIc9rv;pNuQoQ* z(+N8M4HE4eRBG9$|1?c2fCCPOS9I8d(+XtN?I$QOWl!*lOKBG-6eMA%Iqr?U{jK;!MY`hh;rr7r*2N=XN}*uClckZnd>1s#{GgpMqs{$oeU7a}DJkM_Eu`u?efmHTnrs0fZnN^%H zaj&)4^kZQBymU$TqK6B!LW&CI0i-wTs9eZm(3qgrDBXEO)beum!`b=${U^`!-_hQk zlVXvkF_`aB|49@Hya3iFYBot|q;$Gi7}9sp$EEUE$K(;wo3ew5no~9hek(4qB)TtfzoRg3IKsjr6 zg)x>|mZ;Y!!*AoC33&npx_n_0J`qu0m+zAbctOX8V;mz0xUs}kmk$DJW!PF3I)UGW zHk+P?6cgiqmd=+)lZolhJCYUh8VxQccayehr5uB&lO|TBC~Ed)?2;ih zZtTOcwA#e5P!yYL)KN_c-gC$gGUDmiNg>9|V~RLFYZ_HgRa?YpMLXemu>CDk;&mKT z?+MX#7=e`FTsKa0-HdR@&n+Mj1t7l$SaW=QoO<6Jzu5PE?^P*(PElnmnU5sU(Bnqd z+HO}MSIN^425li?ng@!xnS5R6C6goX!4=m~AfPBR;xbm}^Hm`GLA5?9^z;{}NUaQg zuB#w~D43M^(`OTllf}xXFz$#53iA<4F)%4r#WA(9VI=!DZUw*C1U%Pr)!-*>N|de= zF+R^6mQ-pcyq6dhG_;*RJ>N?;7#(KJ()!-9hu9Q28qRcNTo%1xwX%6NiHRP?W$N{j zv=&Zam+EN{!Np>t@0#QHc+~87@tsWIdm28Ngx`~RxzT>fPa50yU!f$9FO0i!Q5mMF zRV!(k%p5Lf?n;{!4BlVfwv1rhQ{!1bOmT5>d{WZE>uW9~mQY@a_wB`hX<#9tGTDU38=gW-cHohu!Gq0Y?V%+tOA}sUYex~#5 zudfH$&2}kW#2;PuNW#tPmpkA2>*HS&MC>3n&4fs)`l(oQA@_u?9_&RQa{ zo~lXgCNvl%_jB7Ku-Yw9zLdCqZuHGIh!^JK3if@vtzC;VMTK~eGU(xhE1f0>0zQ8J ziCQgOCLYD{E?qy^u$)6G$}tqur68uskb?+n#(d7lv^phAbX_nfSgTUc^|-8r6{a@G z&}+lvyz4MOQptH?$Wu}|@^y;Wxt&-k^Stx!H(rj9& z#xM8A@PLHrSH!n(=sH4kQr-1cR@vvOVa#=f~V#}^#tB2U+D|c4z+Bmqg*}9~(#k zI|<^HPh~yzIpE*?n!#$_7m8wE-G0{QMfSSD>&L5hCO^^K{c>vTyxG-BCUP;auH4B7 zyeNaGStS@7%Bw<lS zY`PhWLNp2e=cn)O3X^loRwzoFughYT)|1O3pW^yIEvOEC>4YcNvg|VtCA%Gmy>V;* z?uQBISMSX(UvU-6qkltWZ!f#MyTNrjGukjQjgdOPD*kw5z>K#qGVdt4|E@f3z1IG~ z&K@u_A{!MOTMwjZ==TSu03LK^W+rfQQpw%Zvnk5nma1w9Q;ShJy2$k)$+bj@JxET! zu(VX|iPy30_~hiI6^Oq{h(Fba?Vd-`JiqU|#9Lv1n7{DOrW8=A4t=}3JAXYp_XA2y zPT1VnX>l|`<4UcPu(a~hRLhkhOv9L8b;V(yEA(6vvuG!aB-g;lRD%x+{cZq?0|dY;V4yy&-1hWpj&F_`#~<*uUjX;J8oX%gV|aKsQh4 z-ET+a@Wtr5_2p`#h)GNs2pk6Fi!96X5J$W%0mHMB)z)#;`CPKTr1<#1=I612OQH&1 zKs{<>A0L4S3a4}`JpNNofyA8ir;v5UVbNg z{=+~aA*ox#C}DAAp0XT-7$%L)u1v?notO=&h@=K(hX}s`8@;w!XbuGhb@;z~hX^3d z94%0v?70#Qm|<*eZ0vuT&7JGb*o$v)Ik}qgcv*iaXVxZ5ipx)71hvM*#9ZDi8Na=r zot<4eHg9+`IAZO6`8?Oiq^Fl1i)BP7?%#deSS<*dYXn|k6n>nE&6$Qo5|Kn=HH911 z&MgiJ@FrAURTtKgzePVu#`(GDSCUx8CJ7(-p3xX_kkQb982f$uexM%#G|_2uw@s8s zPZLDXM3!^MFmGecZC5g$gU+4bfTJl)n&wOaJABlCzAh2=B>;5;|G>HX;;{*1;;l@J5HM<&^Xq8qL(qp>w4c*nfv;^Zrh*NbO+@&Ho-c=~qz1oNI9E zlZ6>ce=_|kjn8(-X2MV4d88Ekg4cR&#T6_06}}yPw3Qq@+*(V*Q_?#VELo)Lpns%LZ-_a zN+`qHQCNmEf_P~vTz@{TAFz6??K{ym@>dztVg4{5;Y)wy7Z4Ee0Md@ohfkkAxxfEH z6Py-A)o|TZXQmk}m|oUoqkF;}q;LYl$IJb?szR1oIU({XyDvx3XWE8q|GNXxO50U;Xr@kg8P@OntyFoO8px(~iL)5~vlhP8 zF`SQ1>-P|wcb&l>sT(Ub+YemBQPVx)tg>%qT27S~Ur7bNeBLe*emO#Vx;-W8IPZFL z7kS1`vW$#ik#Mt};cdEhN0Tza0OOkd-uS_z;IsY60qh860`#;W|k6Cc~fq&WX zkf%2_6i#}~$A70&OS>-{j z7|4T zmrDdUIp=hB?j3BFJAHT}nfD7rVQ{aSenfyhS;$1FOJ#EU8zE&ok{cbO(ep*jz~i^? zh~fdr7fX#xMo(t|*ksu!+j;%^$#Q#a<5F=Vyh^P6veE8!K8&R-Q2PJ?(dNUS?`VX1 zFf?`ZO}ZJx}k6}+(?tuMIz4{sxBTGHwKLCOPdIAhViuocfM#E`4sYOrOc3wozMRFWeakq;Y^lAvq+rQVGE<s2Ph!!2D|{Y?M!{A{EBM~?sNLnTlXdY|;bk$uyXP$ss!%WJaJ4Au*U zo2lbpwX{(@$vuvUoRM=N@&$5mRs{grzdZ}*Y%2^}F@dL5JXq&aIQixy}@Nn59NNFQafz9@Dr#}R#j zYcN!0tsUj&r5#-%io8^*fTITQCQxweb)0LuR2&w9umFytgihQ=vl>DTk~3l^Ucv@} zVZ1suIGA1767w-wiDc9m4V_ei4=Nr-GDVwS>`U2&PFI-5Ib|VURRFLR@e@=FouG8} z#h!D0#KPyM$F&$D9#-e98?MRi#OtpOlxJ5Pt!@W@BH6lHULFp9`kx*MzqMlMshG(R z+2)0CBmGNEvcsgKkA5dU%U!-cV}5{i73yC>^ov~@YxAzwbx#hckMxFiU>nnV6qS2S z6uSegQghQiNSazW*(fCbE$TaW+5zg;*p%?w^PG>5Po$C|3*4k9+`cF5T?=30m< zaIoJi7N+q9!;VuFOV7NqdhX!~3%-}4{S`I0K(FJ(DF!Prm@cqGj^fJxdjgS@lT)D- z?Iy7w(FF4y?xGQ*!=rN@i&!E?&wSsl0141^xx$3Gc*9F${@1y1V9%4ndPVKXJh<)DEMM}Q{-tVGP(+Im|( z$fadlj-+60eHuZ0V)kQ#0&@9!kmQTsNoBK<%hd#re{OSg^ZMw-Tveov5Ho|DOXP?Y z3GnzfQOLPn{&-fuzhT_G@Xz2Ap~5U2f_BHhZ}>+$#nHztBK7d! z-I!OKcCTCk4Yc?c(F;8TVqIceL8m< zc=)V2dHZm--s*O-pl!VI)Q_d?;C;XKBXd3UxX3W{Eb4;qJ{z_N$|k3qu&0SI6Z>Snx9WjrA8#Ym~ zxf~s2J-eUK=f#&u4OFq&jH0jOG07nj+l-4{6nQDflA#N0Vh83;!r5N5%e@Th?ytPKy5r%f`ZZ~ZIU0;1fDlz+z?x}Zxota4{%6MVlQKfYXIRf2Oo?lEat|0> z5Oz`0fAx{e7)!Ik`qGm2qGK4*=LBX{Suy*j23g-6$LT~-kZyI}?{1Rh)Ep^~B_dM+ z%{NqNtOEGrK?-X|xt32(9W{_QNLVZJrE!6|@#-=1Q^(30-&y$|+2{9+y248E3iX>Fh#eCnC#ykG`D0E+Q9Y1*i@y|nu)fe|6 znVnv6+@c>A{k%>-zm=qkT#j)JM|)znlDG4evM{K^Ba?=j97A_&^|(4 zTXP{;l!&3R*|QLg=%kYxsD(MjjmSG)Lm69JrVeXOm3ud)X*)PTYLi96(H6Pd;2e0! zbB<_Eu#@uqg!DmtqQA<>N{K003%otSv-xdcFq(+Xu*M`1$9{nkmU(hkBDT5CWWwr2 zPHeHf^ya*O+@8&3e?r(~zf#c#`Bd8c9%SJ-*z$sTRj^_=&-gi8FU$&yPxT4nbnyeA z98S3NH?(uqeHm!(YiyC!YFV)~<9~qx6{?xmd^^W1^v0uV_JiWIpOiYQK*_TNqs+|7 z$xMZ`w$XW=t@E~6Pvzu2owc7g#|ppRUx|ewfUr3I&X~PuzjUt0SdOUO48e8}HL}4& zMny%vBbm%6*hpRm3^5Y`u>p~-evoIzOX5R)rVbW~vt)&qP(C-*k=ZzH7)jpVaozhZ z@A$mc%UMY`(wn=6!&5`6+iJDuOi(~W6ExzY@liPP2=C{w@urE=^NrBKd-mOHXmU$^ zN`#v8dCVW5&1CE*t=q5i?^!hA9J^~yQU`GevYV+Yw?k+f{b(BBK0h)Q1>10;N1^2L zeT4q|jbx$uV-M3EdHo}^#ZrazR_{ri(Kkd1#)YJxez#|}EwAH)29oJ96M9V!y0J;K zPdC;6FF(mSbaz9)3n_x%ypGGe+SDCDm%({YBwkPZUrF2A+G@OS?11}>0QY{MQ7NF6 zgkRi&7j+wq2j38-Nq=%w(DF{PNzEdvMt(Uc7e4oXMA`2$f~mUWGMh=e>Mub2naE-+ z!;5W`JwM*%Xn+zZ?TyuE7uTf4Vi5x>l}g1QV%}8^QYs zeTAQxeREg<%mV27e&J5khe?rIohXk=TZ2^c2U8v`reIuVmhwYvWM129G98UY@OFvN zP1%?ez%$1hYi6ktz*?+7SGH~S2CQdZk6%oz2tPPKlO_v4!_H;qh`s!Bn*V_YY9v%> zNT7kH#KSj1A_EH|92j8Wqz(y5L5^*lNY1unXeYElml-ln?k#2A>D=O>=fK5}gw*OW zDT!|d*~jx=30~k;I>>*4a%)zg2~YPNT>-?-Kbx&YI@J&<`lN+Io^3Sm(l*9{?X%MuIL7(ER=o%Ohitk8yPo3WxB1x z+v^hk(~%eZ>y>}+HCc{`Ru%yxedi`h-ns1sPFhT{T0Lx{jjYoWtn zT2tkp@nAU@sq0n=lJFE&TWg59=iCN7)8LkyZyF~T8;P^?g}o;{BOizl)dD{r{}|o- z%EvLTfKghuhjC7~ZfqR)+`B)xZ1xlq1x-#)_VONN)!Q9RW}5?~fE1Oj47*(M(U5Ob z8G&2?0bZ?2kr>Zsi>%GeJ#><5SmOl=-zQxJWs_2^8*VkDap7~D~u)n zv{Ool=s01}svS)3mluFt+=eTE+lE5IWv0Koy~SOtHBhyx*Jyn@)u|~=ic4k~?|9{p z5`1P$Te-v}6n~;%N;D;OtgJn@L7j`SfY^vI`}wy+sUtCwM~+NA7L%%}XvA|vRH8Rx zm{^1*a|b^^%QH*lMe*T+Pfmu-@cZAkyZjTZpFcJ`(aBx(er)gC!!ETy{+}0MXkguG z#pmvfoT$Ar{AMwa7qP7Sq^6sBRuJ?dZ>FkNoQytYJjpk-XMv&Jg!?l(3Iq5 znBI=y95b11C?*FUzd83NiF_CfjOT!t8c=z!;mH1=tl1ssVyqVU z9`64J!C3u<8vXrcSN4}~ek8GQ>WLo|FUvw6wYHwRt`gze>Cz*EST?MP{?Ya#ZItr2 z=UY4@L`rQD?-54q-)_8otPh{+z)Q`Ob3rS?a|V)YfC4K;OH0dW{Bo>)?z0twXOyHC z!;rd#onL}dNr#+gR)?;*X;SPG=Q#dYwe}vi7$$fWZoT3I$tQl1NEtBcYlvHE*4vd~ zEu)}es9|}AD-hp2m^%0nTIKanTG;#F&*zb!1_etP?vl#uBJu83$z#=;d`yZ3F=Yp& z1Bab&SmwensPENd&!Nd7EHufVGN=g*7Ro4<*|Oj;Vz0cV7%gJq zorHm_N$^awY$EDS2CgM>2y>gBSde|6*f?&l{H1OtHmUH5APKo`n4%Ex5v1A6P7-K~ z=`ks`y6lTM5+otjBGFg8Rhs%Kx0#hCYT!j@TlWwXe>SDIp*W^eoNk717$??${BCkh zUaoH}wpX;7&*2J6$0_L>liYkMJlAXA9Pnh;aj}gUFgpVzdEuR8ZKIXV%}rq?)<6uU zXj% z7n-q+XxA>=#bRl68xC6w(<-QI7iVVTJO2bBO|CcC&UL*!-6aAR+)RKy!M&HM&>k7SAnZfeeZuD zyW|baLc-=%erV)*6dUiv%g;4vELrvshn?`E<(>!)iQ9<>Xd3S ztF+4x9o~vi7ddHqg8#UJKL+eh`|R_TCe0h-;}LmW-e|{P#xvfL1ND#`SsPBs6|20B zuFv=$L=<&sXee#hbrIXk*ce;)Gh^=&(cnCP^vJ9|KG0c#Nxw0a7&}QzVS{{<~x*9>lr{a6){dG6vdoCxiiA<;9`rV>8@Z@(&>aow6-0WgIVt* zyYC~3ya9Tft}y6z;=U$&+}M;@q2uyhXLjT18YykNfU&KPpPyvS@CDq7TmLYJZ$`PyZ0Z48Z{ZpvklB= zt-=!pIs2MHI0hW1R3YicqF zW5$(-Z@-+r_Y1fVJ>Pu*M?33nkInxfalnk@VDYHU=c&`oHjQ8RjQ!eF=q)@RWW`2t^sA7jag<%W z_FZgMD@~3cjLk02-Xe}RU*L9kb!Dd{ z&?kbRCzeD$J?*#UJ!FL`>1|WHdVJImvk6zla`-1+sY2)PZ@CNxI6rU!9sEce1@-^1 z=|OZ`t0uKesx?vos_zWp1fg(^2UVK8$e7fGI7d$Sq-8oXoT@4P@>L=pYaY_WwGf`POAHM zRFv9v$7K94IJLmde|`m|R110l}tHQhQ#5Hzi?TN;l{t7_SV<(#{F224g*YjQq=^=`3`&#g8n z;HRkfL)l@+?MHV5KPa^jOoM$wV-I=-Wo7N}S+R&u`B2E?{AxtXZzJ9K$%p>uZ1l3U#bd$w*v^Y$cwTUy!vaWF+%v z7)!aa!`{g_ViuD3{kgiOy82bDUH98puaDJl-sZH4vLq2Q5k#Pb3N0r>P+T-0EonC% z+}rD$*xp`A;HbtIgK|-W1DyC8&J|MV;a_37Pu}~v>S|0j+7is)#cD1~`++bJdz8>;us9!_<6=7>UQPQ}oktK7Y z4kwbA)g*8r3q1>naG*_eO3RbNgfU=nlzYqdcV*>^Ll!$W7GWL)P8Jn$`drz`nm{Xa7ia)=b=V46X64`CpI??ko&UfV=6u32LXkUmRmP|NrzUF`YzFNhj`t`v! z%z+|mLaxy{E*l)e#Nf-Ad@1x^PTvDf%}%b5AGK89kX8*#@xCplFnYIAe-(w_GHBW7 z3xQu^wum1fwg=SuAwk)yo?u7wR<$8@PCZCEs=n5$IypK$Q>dj0&|B_Y2 z#;~Etv*G^lgQC!B}kQE-;M)b`qcV;h-P%6#VR>i_+p>AQReZQcivER^a3tlmh8#k_Tcaml2OFFVoaK7h1q zOhiPKi8<3>pawq^r)C$Kj4cMe`zDoH+}O_Ewn?t#c*i3)WF8$IT{~}DcBi6`sYZ*Y1I;;sno!{b7rWqecWNKipX}HTZ&`#rWKbMVa{sl2Dgzy zf!Ra3rJLo6$+}o|@2QKB~%M=t(C9LYfM6Ko=JFS?yM-xtSgn-fxf767_J&YupCjzocU>CUUNMHQ^Osjz0R*6%7whdDuI zpj|^9O#jfe>H7-wiF}p}y?m{zoP<_k6%+Vp+UA_+RoCkOm!iBb3&KmGNl|5!L*>^g z9OmhqAB!5m3#P3=WtM58UC^d5w|UNIV4x0;!sklB;2;&_P%>(yTE>joh_}Mqcq~W;ZgDxz!@ac1c!WOj>-$qc&BNX1w(W3-8NkgVX^Rxr z7hi>M9^h_zct@pR+`WC6iS;8DGzO+k+zU^=V`%BarK(Tnh&1o$O9W?%z4 zP5VOK&VeK~)h7HbD?IB`CA#`CwYcMk(5k5`XzTn1r8ws+w5zvV^s1g}_^`+KVM4J1 z_1!MW5wK)>Q^T)O``-(?_Guq)L{V;ovSQcu@<%FZDjd1jMWy>C@~IW*LZW8pcr)GG z6(1IHqE_=5MAJs1`L|!2{;~x;4ukCUjbRBr?jyB(nUeA+TPq#^Wh=|! z-MtkyI|F`ZBvQZoEp5P^L$~nuRooDfX1hETuhu@fY$3+C&UP zv}Y@0sl@oU(_ma%xsIOJ!PQ$+jjRz9U6(@56rmE#nPS~jC)_B^M}wp#Eet6}##+%z zmswt-1^Wn$^-b|3XLDEN1(IsS4+q>2Y zPTHM2oQZx6r#CISqRwP51f4`}G(m+!`+dO&?=C~1tO2?6p>Xgg`4k_zvo3iCiV|A( z&Lf7X^($^b?nYWEC148rimM2Jl7?ObyJAD0Vila{RCp0pmkaMbFNtm_-AtvLn}A_T zQP7(HCkz#VTRX9K1JsM~ipv#SGnN8>aKq_47eqNuK7m?mfGEM*lIF+g1KXe(_r!k( z+_XER)|MM_HoDb;$O;A7S~%_)=QH|_CkrATK?#7J}x>Z<<>Fl?iLw_teWA_ zQxy9U+v_gAtpW1jk$VQfhWY`+HnAJvS=FjGidHN8DypY#5dVd#^dd3|Q`egyt0E~O zg2}v7uj9+VQUBKi|JTi(V;jwCrt;MZCSbJ>Yd=kQ;ohJ=ICsKBqtHZw^3FT@V(>o% zapxxX@VoL+Sbg+*Y#(!Xpz@3a1JvlO}-&na&VW2 zm6;JWTvIYtB&0MwTPUHdKZ7d9*WV-e)38@zSvUJ;$o^%li~k9?hF2Gc(oT&HjoKcm zeK?6-;OtXU3lTm~Y^Ku7=J31P=8S@ZqDYUVNgiBEg{caWFDv7LoPrZuG@u3k!toM( z3E0T-_hsH`?tX<{BVu-THYnj-Ae`x!`cXw|mBw>&O#5i$XNIhNcxyYhlDVTZw<*E9 zar>&){j5T=w-$5RvmR<~*|6X&!Xco1F~6pJLt1dG7MsXCL|*hZX=1^$Qj_6MlX4frDuRfkJmsKWrlNSeT?m8i@Wt-}mYZGiPl2xf-@>P1Hl@vw}| zOh$~Uzh!6W>KPA)Lewwg4$QJiqc9D|MaX3L0*t%gqmZ=0=qdI3G^~fw+yhPq$R%$*Pp(NoXXBS>O*MB3d)h^vk#o@hD`B z9MMvQ#f71SZU&z(04Oj^PuF4|U$bqHZ>Z98pb4Ydqb(N%LSJs?4qGm$4xg9FDBAb` zULf>AC%jr4XnW7{W_PQVX`FXlO?Lag>zFX?ltsiCVo|aTCBf)eAVyI6E)J*^OxXyE zbR=@z0bIeiXB&}vl_|?~p}ZRJ0FngE{Nw_aZ1|l@fwGieqV!d+pa{+^ z=@KLn-ekEOgD+bl=Rlx#d)p_hM}8j7{Ti|%M=0Rbth>OHpF$S>+N<1W z+(I03RW0?fIt3_PC1Ng`XMr*$6dl;X7rmaUOLeJ1G7lGsk``K7q3gN_RQ1OSVGg7{ z_w+$!F2hoS3jP&OMDK+UO3yC-Ghj9GVyQ8!>y6dmdU>1l9G{T)hvH0+@(1*moR^Jr zzdMF)#)`29G-GDTwB4VeYVS^87@wUb@!K~{qZ-WUbSui1HGXe zlB@kDM72s*B0JAelFC?>FWhqo(=Xk(nLSR1iAz-5muLxd)0NZJS_FF; zdn{;L&(&Rj6qLH#XxCp_*h-Z#|cx7nNDd7qFdY!ms+TfWUzfv z0JjLGDf0)hsQHr|G$d@Pioh>9y&${guZ9$*8u{5;MLdA>m1W?1zyNk@SCb|02AzQd zbSRk&BMUykQKgyT77%;ESrMo^;mN%!_$fXVLKe7LPminzS8*OSBHH!gIt?HTIB`aP zgq%S4)4Y`I2FfSETX9d=^CbkD9BSUPJH*6}_;p)7?)b0f*_8OXb5_ml`MVCdn;<{= z?O`wV4lpO8Q8j3ATQq2yLQT%2*y(pSggP)lu0#wFBLJ8ro&8NHHYbPFqJE|S6TPbf z5>sA@xr*qio`I$2xF+eAo)yj16(1mkU!wS5@%X#BseRMTvdO<`J2Jp1MkpTSxcOUv z?{lFKXs^6cV9{OTC|nfWNrkm?p%1w$P4M~}+&gW%3VNrQ!R)mtA@FH}--|5VR#+@Pk&mDef;H=YlK#PG;>z{^Z*Mu z0G(itx$ot*sWguR$$Ky39_25mT|wlT6U96Z%b!>8y5C-`(Fb+8(Id**a@qphP$aoR zpn|{VvS%c5of)#hPEbaszmJ7VX9EV?JTMqZQW@LjQ8h~Q$)J7 zFlH826us*i(#(~Eo6kzYd6RHut8D8?rB`KcR&7717K{-J)!tD#duhX|KUtRSN>IKn zaJr%H@V-<258(D%{q0yvwoDSi@51$zdGX&SIY0!FXZ`D3wq)ebdZk5Z(5u9KA9VZ< zG?Il%p_4r^VAV!pLG_+_qu{%c&&94`?Yfwh22v$jU{hCDOymz_K+7(MF+{9Kry9hC zB1K3t&Dy|5jjfepuL2*hP6>w3r4Od}$&e}4-Y9h(A0hdSnQiuEpIn6yL6Iz;V_QRMxh_G5Zx8VA|KY9OdPW2a*mqee#e zXO~N&bWA9-%!1Bp&Po*@zkG=)O!-4)+pQM>RFP49+ttjt0k97*K>&9+5bT9 z`0)v{p^0kR7{b5DHA(0T65sDPiZ267Cr=o7)v460hVl%8&PJf;oB_ZWmG;#hE9jpo zl|_t_f1eyysUBef`qYb2=RanRGjf~`t{$$R02g_qJ}{WH4&=1}SBymr zy$bi5c26SMQ8SvxmRT+4Pc0q`cHDrVU5^u)j`to?$$<4W7Yt^)Ra$s3ZQAd^H2s@g z&8)2(3<=I<)**q%b35w*6n)lbaQ7ovnMSwB3cTcD-!HVHQ*F9Gv1$G{(An(Ks~eV( zyApCdyBj^8M#|jmM^sA~EO!|*rfP28?~=Yk!(8|YJ}HUxKxLGi!R;LZ-O?*~wVVgA zVT#1Eta^7{$q~8F_U|MsHC0Mj4_3}r%a)p&uAFj*WNpkqf(ML{+Ho0a<_zx!>x#1d zhqLP7VH}lDZ{O(+{h*#h#tJSmB?M?>E1E}{k{UiE z8z=I>IDr+US}3o<`%aKofdZSR(Si@fm`Tn5Z%hcP7l zsPr5QA~vmc%sO&1FpNJj^u-j{;^uLIta;)vV7C7*NvP%(6hOVtT>`UaM^)+v!H+#y zpkUi=w(w~HX(Z!NLNkHp(70tl=sL1;GQZJlI&pAQ90D(bOxCUvb`(9h& zb)OEtm^La>Ngw4f!)39HU?FKtQZp}13}&onO0wyn5> zvLU#b$3+c6J4JP$ZNOnFDbyQqiP93OIi+s=`1$`;j6SF2Bwp) zY_pS=v%!l!569KPsVun{znP|8wxr{Z4Wq<+a8OuC&uZS3g9Ehb^Ef!eM!{3!qkrJ< zyqtbkXW@&!m&nEb-yqx6KsrwF4>^MBF#8YN*wPE?q=viCS%f zyp(>`?ebEi?04a!$oTa#RhU+6wa#E5-eLn260qHxT`t|3KG*u7BctJ0XStXm2;NJd z@tOzDN)fD0id1~`W*a0o7qcuZQ%0h9G-QWVT)mOHflt&Pk|5YBSrdgd_EoSa@Fi^% z;(nAGB94Tkj7)aY{}gU{&6VktXGFb{qVNa-;fm5|gG~#w9du+%wO`o{dWMl#?btOR z&h`)r{^?{}DOWd5E%+s`dB?0}yel>6poHV)=`A1&zmZ>X^F=Uts#!=NVDM115U)CD zvmG9=w7dEnY72Jy0pk`c01sh)eIIs#oL3JKgC|KWV$rsWVGb6PPo-FJ4t75&I(6V8 z1cq1toAMD4fdOdW(cz(pva<5us8i57nQp;H2|(+SgWsaU)>-ua4&p0J$`%Wo{IBj$ zbmz;K!&G*mWIBS|oPYwkdPAyDz3~tF-6{iU0BcTfQ$CDJzeJ=O(4@h^>RIZOHjYC` zi%h%zF?kiYTE*@VqLDXugKGlQRW3_)hiKR~TaNF5n#3j~e2GI$`cD7Q4~e@JyjsLw zA0qE2+u$K_Cl(ijMNwR7%Gow~&4_;z@wLvW>+yeRy2_|3yDoT1>Fy5c4naY>L%DQF zH%Li$cSyHLBi&sW>6DO8>F&PN_wcUu{eYjW#d*#-d-m*^Ii!)9qZxIRuRBY>5pe*X zn(8CwOa(`N>!pjRyG$`847i@&+=^=y#p!nvlsLww6CO>pk=YLc`3GWtelNX^wo4eY zOovDo?)%du)G*79sjP zfHh1!5{k3)ZPPHiFGN_#5-)I=w!B`_RmZ|*krNSB+IuevM6QwlRQ&e+0IjCk*3Beb zL-ZoO;mu4)4OFgzy1zcxv#lQv+b_XOlR^CEP(YM{OR=P0}BS(d(Ij_75qfwh(49ZDx@Bi-YM3h*yUB` ziXhgd!MaoZzI_QbG(E()CR{uh1e(n%PO2T!DL4zxxJBvx#8@~=<%msCkn{l*0&r66 z2_g@5A`i06$y1emy`nb-CU{L~vJs0XY(#!X6aZ=VX0S^u1N5#KWImYp6cs9jlZe2U zG??@2dxoRw+f~u2G=bpH3YFQFa|J;|U(3n1ez5dLAInN>yluOZotUIvZeR=6S2Px@ z@kBMNs5N_A!!&lSpS1+sKa*hQ&R@Wof=rVJr?|AFKq2FP&zEyRens}PVcUtQUXid&uE@bBB~1AU zKu1cS?Tz&p@_=vJfwCk-Nb`0SKBiP{TO)q5H)a?X_h+F*Cej;OlZtqGQ91l(GGyMe zZSIUe{uFLir9)-q=&jpE9*uaaS^P_r9$B>3et5gIL)dYsM!)z9QLK{jT&b2*{|MTq zwG23!%SxDegWPLqk(luI=GBRNf0qMFDL=6w9=@u_Srdm$ z{oQku@Fq@lYL?pt{7j7TRDnS|E~FFl_g%Q%yJ7?da#(osD_Xal`qEfdEm2-~)u`xi zUSg7!L|6*x#0<795_Q|dm8lpdfm+mgcw^i#vlI&}Zx`sZnvO_HB}=^WHk?gO&vP0- zdQq+$&n~{t7ho$;GlSouGXur>42l+_iz~$RK3-{pXy&kWVt$;awXA-Z8d-7s+fN?F zlE1Hq!N;&9b~%e9ijdmVMo z8^A`s5F|=(fS;z8L|h+Br>j)co}J%qrF8+UsVko#MreQ8|67?B-Ntgwj5L`3CkpG4 zT~`otJ&#c4b=rryK zfZ#7QN?SOKb%9GuOjId(4P7{Lbpmr~@K$GaX226nW9|X^`zk;(k^XkhV41vx^fLZ! zZvh(ka4q0`;IwZviMs4B68!-6R~{sKY3xx&iO)(jX%t~UNMuYL$7lw_EczgT+-A3ogI$CTmtPySXSXZf;-B?3Uuc;=C?o8+{%W5#ps6)f$9}e(#(qwj#_n@D*a&QHwIl^3?ws7*f&2UW^Ecdz zKzvFXZJ;ZrNLMpztlJi3AO70;BDDHx4O4~i1tlg3S5n%-I zY6Js#Sw#pnp81+;W&u^1k$OfsRMsNEnS^FrqQGgWTdk>8Ijnq4l#c|sasch(?=40W zlOCl0&{xW-{|t1{^Jao*H5Oo0k?3Wpzp95zldJG)QnRSW{Y{J$GlZJxy`;HyWNocl z<5Oib&K5{=zWZ)yO_T9Cx1?iW<5Ha|Ww+oza(J_NdY zTzuk=e*H|I%Sj8XIs4Tz8Xef;qNQ|>i*);5`@V#Ux?u!j{=oMLJYO&Nn?>(Ze)j(4 zCn^try{ z1;z&bwB}5`u=Ex(^=o7VU_=8T{ttj59ThB8LEd&;IAUm#{z1uejB^DrfW^&ubxnlA z=MhRaK%fY*4n`d7-m;UN*h%fAC?KdwbAOZp%!NJY)5u?Ol++UhC{8J0{%u7l6uzk( zRKfbLmz&JucvMVfg8k_}hk*sZXs>u@a9Ennf@)WJn8_7Y`=3=w7Dij8 zAIU6Mkd^1*MKtS&M%uLW&@+|c8RlrZ{XL(~MS1zo85Lka8XI^rX=!+o9u}|Xh4CtY z)vx4)WOMife1x-}$9D4R>*D@QQPD{1YYRNP&1diF%ZDRG#O5biY&-_eJW|hI_>ce@KG^-!1P7yQ#P6vcK(v0Q32djQ4ZsKA7~< zoKM}GY0pnp0n#fZLN;xp&K8()Frfvo#O1|DlZUu`U-AbVnZR01&gAjtj;D9~SS0At zjf45$Kes8>+pmktEy*3mwbJcWwG;sY`?-Lt?(M;H{n(>}x;SC8tQwWV;T5c5?qo>? zRE!OgwYP+-Uyabilis*fJf4sNHa~wfFrZ7DcI~9lV}Z%hmjH}~fINVzV}loo0fTi& zWf9}}hAQ`{DLh5oA};tWBX{^i&lKZ@!mk>AzB;Lm4v)441{ zUrZoe$LYyivqGog?A0_b1&DjrOms|{+^Dl~M{14ZJp-G$uWNvS5Ht*o+AiZo!1~Qo z1;87iPQg~c$!eyQ<-d`a{)%ZHj=+-d`xe#jO2+Rh_lsT2Htd{dGS$CwK1&?7x7W<( ztBb)A1}{XvdyD1E4ytt-OuM+R_ckl>sUN?hJAOJ>hi3KGBK@M!fz;^6lh~?e#!SF| zVsI?SOF*-fY+jg}WM7WljyKAeqK{Iu;Fx0hEOQcl8TaAZ=5=bJcH8a1XD{;UqU<9V zK}1W=id{uH$#HY|m>Vo?$sb|BFbC_4SUe`#O@jm$sV1Gts-pJlZ(GL~%v_veCK&nT zBnywOcH16u(5M++n|DE$b~~P$VnXLKLM0<7q*5YE-DCgFW$uv3>&{@J%?7>wPiM-C zP|~;?(1q&}>N!tBUo~#Xk}M)>(_VU^BL{a#CY6e;8f6!lhdd^$vu7$FM%$-WR$^9H z_3N@7=Jw;=l#r;CW|%|HO0vt5QhWBX#GR>haeh6nJumq^Tm>Sa4l`G=mzl9D2v(Ab z=B+|dO)$N2|8fW;%OZO=*{?nIc&6rg6z2jVLRuXkIwN(m_HuS+vmI8iC)1!MNRiS5 zMNBlsGXc>#yztpKD@cOa1czpqfN(12QIJFWd@45IeP{seKE6Fz`GK_LXULf&IaWy$ zG3&m9AL7Z44aeS0+&M!4u8?7f5Ov^?ZJlD(X3!LszY^PLd#wDN3!%QOz`el z$rBKM2bk73W4#HJKSAD6Ha(N=IVxV>+)vq8MHKu>;VOoxEz8l$_c#Vy6=UJV;avaj zIP)T)ZL<~%J{^D9%>+DyIu)Tnc%D7sI*x$LwLb2;XUK{8geMbu?rP@nG=!n^)Wp*> zBX!(p5y%PSu?IFEt5!8=zh1}y96g8)C0};~f2rOJ{Nq6_DJHKC4~BLVb~-$Htv#$Z z>^m>IjeLf}d_+KbcO$>HIK+-?DCN!He1uPC0*1zs&}Tg( zf#3}V-fq$RtGr}cjxTWWe|VFZN*{Y_g9kx8_RlaTBKL3LY2k8eK0`03*P`yB-UuLE zCxmtHaW$Q%jsm(pcQ!`;a_chf_pN{@*n!f~B8#%s%*f9i>IoBeb59V}r`w^AN#S!f znHr4s4&O^XD6&Vq9?2O?gPJZ+)Gb}D5eqh55fO+HNlQF4OK2H0==Dl9ItfR0+-=> zm;4c?PEHH#Uo=nU!@Lxhc#GgKrbGTYH+6dlNbA&IP(fwrgf!l&3-aS?p*3;(>?|qt z#Fy__%Xe>=NHg?H?1RSuvOP-{QiaMjTpM`hUI3h>oc&3blLrBbs?HhxakY>BDgKB9 z#4C-+b<@?v33z?{bBt~!sLo-cC7!*nQzi-}t!Nckv0BO^q!gl9Y>|1^j*DGlYN(Mo zu3zeIi^MX?W?KF^9jvU`pLWcYO|vzKS`sEq!1imw!V`@q8$}ObZ???!MDIEdbczM{ z_t~wf^+0y-w?w4!?&Bc6AHiEmv-q!>3NW zhE}g>mpn*iY56kG+D9c}4`$p7w^gJm1GAq)K$gZ*4DYA=mffFTA-qutV}|=8r-qi~ zDcA13Qpci_#WU7gT3U?Sk|SI!bzR9zzs|VA+EBj`5L)eSUdiK>oZbPqeeJT~J1`35#DxmymL;hm z$`2VPJ4&0{*r2^y2Rrn~x#WH;CgzNj29r!P7o@x?lbi-k81GPndL(%jC24{A1q2#_ zPRge^_+BD{ON(o#3pMj*a^VTD2=XWc{I5Di-3FY>8^ph&=&&}GYUTZBT?7;dJ-3_e zkhIz6owpow0#v?hC)xy$wr%5VmD2v33G^XqkcN%Rl|PJd59*!3VzW_O(9i!)3i4PImO4|28 zFY{vl^UTa{GoszB9TA1X`{NE;DL`xBpwYnT@vS9o=TtvB0f zIJ!0{>WkNf2RkyJ_Ja|Xi9h*Q^E6b{qZEP(k7s3PeRueUZX0SF^KIoq91N@fz_0BFVYRZzb}rZ!cMA$|Hti?}yO_ z33mP8DwBqPF2C(8M-6DS3ZjvwF(o!RHL<1aCxz-EJ0)GFs)30~#2Vj6ogB6W^m(}P zqJ#c$o7N@nQ3@fIYAEYu)}3m`?55=+^2~ zUhLySNw4A)jm{F1% z7dhR^yv4BD_z1foh`xd6WSByCybxT(ng{R8#A{so4!rh^fd+Z8<7IEtSkNB(fj2x? z4Az^|M$u0bb1^1A$aD)NvA5GODA4VBII})^!$rnrM!b0L?n}z{w!+9%bznm9A_MV5 z<&msvK^?=SU_IeNH)}%tx3@i;A*7a-_3cj*51d}7say}^e&7F`{Cae5psd2IWyD0R zx1V@PYhY<{12%H?O}ZInU12p-hOa!IFVDRLZpZ|gNY;mdf=Thi(l5t|l@_HwOUJGz zj*gD&oew8oq3LZPPq57HAP34AH#H9rZhR-!05r^l{q+j?Ebp&AoS8B?sce7BLK|>F zB?Q7zgU~v*vGC`ll@Z`&iHHMt=FL~g4O7QE2|BeY=20EXyAX{e&F1!fueub8 zW9<6M7IYKJ2REYDIcEbu;yo9(E*{+w<)vk9c&AY4>hj;Oo9znm5V72$31Kb~I);Nw? z9FLib@aR)F^asjB@~AGFnceUW@Dm!xVedUqOr%n%1wG&^4p+lWov(@Q*Mz)o$XbA0 zGX1xC>`a2JJ*GpzI_qnptx=3bsR}pgu#Jw7ryAgim0Fs+JAu?LBcBgGgA z#;;}s%*+X)tH^BB!=S+t0ozysa-~4I*zQsH&JMFGC?(2R6C|3FdkeKw^xYSs7IMwW zQTtAOhInGAUo|K8=z!MdyeYv)_y-R8>~fsSB&vJ?Rz&E{#^ZY__>4jx%|^|Zuz2)7 zPy&4NJ3^y7pX{#rfoHZ1&E;@YQ~ZP*MsP`vn*+zxroCwK=U<(2OQo!%dE6hrLsLfL z&|-?qB~z?AbO_|Xg4dW5wuu7|6_HEj*jrMg4wTu z+dJ{2$m$p`?o7T>L-_KA39(k~snEw1wNCbzQqJw7g4W%66X!z=r0em?K*HiSad4*y z^rx4AjK*H<1t*+it&=lq7^_0&r#*7K<1s4o$Pl#7h`c{&4%6wp7ur@gKTNPA+905# zxq^a3aHv>+TB=?a%91R9@#-^#n=spzbM7~vDF#ea)p;f8#1aY1?iXnVzRUk# z3xKNs_){qDSFy7&JlBrQ*enL>RvF(^=&f2sZs#>On%_TFBF}NX;>snoJv#Q%naO#N zcZ;XbOjm2}2>V-;oF9m0X)?2VH*iHnH!lw3qbp!%NPIguOh6P~6b0`KU&Ov~q)Lze z`=}^FOd;{GLJ8_hyBC;Pcq(|R1=q?gALsa8fq-wb*Z%l+=j26Zde&aTrAI@pe-42( z(HwvtVyE+BSD27U=L@3R7CC(TqMP>me~}0&3`k$ZRwx}sDK}8nD1BS{6Mv*(`U0Qg zO)cIA)#Tb$7ln!V%+IoT3pl@Z!MoEhI8t(2t^lE!Fe*+pYO*)@ z^$BZB%cLo6@|JiSe!@n;`n0ekb$?tknC(lW;mh;WYekhTG_98RP@S@C;u037FpCOS zdHbX|(SHmkjna^_WnBzjytPKk=z#VaJoX9l+po5_hJWKc56fXGxG)n2Nx$qJraeZz zdXIKh9w+`ORRR7Qq?Y7+jL! z9`x3$QOhFFXRhK4zkY=V%WJ+01tTeIU5^*am~p%yH$#)6R+4muM$b?pg91=ri<8ha zn0~QsZf?#uf1~w(p9t?x#e%J1}rhLEN1!(G>+haJt6Tc)5^&>ObmyMAs15?LY>lQx;iFD^LBh%s0k{Ln^ zVngUe`vpO?&qkf)Nh`+mP3pCc9s@pr>LPE@DZv8+WQ(YmQi2QfS5F&c1ljkRyp_$! zKx>g>E~t_k&r5UKp0`arX{lSoDdme;VwZ z2R(Qz+F+JW{ZKZ8?MjJ43g|Shjr>y$G&vR?(Goo2u8&jmxmy>R4q^FNoKYVp9m{9r zq2lF=a3iF>r!8|N#g#2c*S2kO^)hi|pJ+3)5xEDVel*L@4xr_57S zPQzmtEBj-(sACsmc;Z|YVDuBIpF)XK1M!Y%I#}z$8uFGNt-p9BMblRnW@#6z;ES66 z32UHW6jAGakVU(Xf%kbIzb`Oc?1aw&v^5>SUbbe@clOAB_w&FuXAo6K>enTO9~!y za!0p)D=syZB{k~zQkDjJ`RZ!G;FJ(X^3otsU3U;C$oT?OE&qu%vnwRNYm|LIg5x3D z@tXw()K`!B+)Qk9joU0Re()Sex+NYqM$QXOqRE?RGyBnum)(Of!81Qj4;%k`fe@@b zj@g;-MYz2a+(0MQNZg-K5peOOBYmBUQ+=#r#adC1VZ&~PX9i{RFFw*sZhwnDm036FT+Exq9)}2| zR-^Xm6oL)#%|R-&H}I`b+9EPyWIXvQCI7aD68Ek>C!G~q917vJ3V$@#FWI)WSRz$| zM1z>){_^6}aHDCUW9T+$lOKJ&$b{TyLL7h;Km#B`7zcS#@(1XG*T*If;KXEODZ97U z9)+PY`l_eAdsJNWLD4Fp_69WBPElRBLRI+ik8Nx%y0X$G@1^!sI8ab!9n4ZJsl*R5 zYN-aNrKU)JPk0GO*R;I|9ei;Mux`-p2(?K-D3L=LnqaJLv2r%>!QNv<;)AVZ1yka1 zS`^#+F_f0g?jBjCJS3_laV-1^dhGwHskRDp4g>ze$-7uwu@c<>r)&Z!ssOxpu#h|c zl3e(&zG{LabCs$Km#CNcy@@|hj*8e6nTo4J1+`gXvI#xiL?Ec8bcOsqk7A-+gzarY zG=WFWBABoI(4)^t&#w+V+7M&vEEnWW%vYO*BswS%m9vAjsJXTi@WQ{;86%w!9cHN_ zdzp;&y~4qE0XgU1_R@5?!14Ubs4;G?APpa!wB_PEygT0nU?3gCD;BIb1#-p#o>aO} zg{fW{{5gZtxY5hN3US1Sb#Z!hhSPst$>%`zbPbUIWDwC3z0l?I=pf`- zdt`B#)jSVJf1fPV6~NrXO?-{bCCcxw$jG@CJ3v=#;mR8HU|=mb%cqHi7i-Fh6?{$1 z+V>6>pNjGx#-D%Gtd3OID!}A-U6(C;; z@=7{yv+~PaBWe!Z3&7!vuinNHnyyd(q1#n0$6mgx*;s|7Al7=)k^XV7O;(EoBTLEL zKP`UjQ?5_Xn>e)C?8%#z*QL^_(C`650bRew&6w;^JYFI{jQ-ef<{?ipInS(D`te>F z=qepmNLo@IbpRI)_%GTZxBtM8cZ{bo=qU?*D?f#hd`gA>Ay#3TrXQl99sVAb-7Vt0 zeX4@(`2Ne^Km1yyTDv${e6{Y4tD-J;ib5d!MK+!Puzep^|2p0N1**ZMjtyfHSwkq- z)z3E0=elfFi$g0g88h-d*=&>b5d3vT+l22e`CccK8ya>4gG{`FlrQ@`*aiwuK-ob! zrZ<=C(f3L8-FQmh{I7W@G_?`4f4UWt(0;3Aes|5ISbrVzp*`#AFb43FH`858tp9G& zq{unq)R2j+#peTbZI{J{R#>h4vgv?H36q1UF>CZe?($N#Zx`dfq$?{*0g1ggu&DVx z&|05ip|a;K-A`3G(te9|5P+$g{ashXeT<4>Qcq2eF?k+A9Bm9FVsqmXydCM=qx3~r z7#E3-k6FSV&a_&~&CT7pySuBVaLNF0#&S8PTIAD%4M#}Y1~z!d1znH2fVA3?V-orE zg4de`o7gajZe>(DKfKGb-= zLC!AV2HTVWI~PM2R2eB`!@~i!J?@U5jExFGss!#!nZUw-YDWqQizoxx364@dWnu_k z>)&QJ6tmcN(du_{`S_XejZN?(t);#Ti;maN?&WFa(`ezu;@TG@=NsXmzF)rKiz!*f z<%@<(ZwYQi+ZfFq7U8C**-E}edLzLmL>k*9pu8_>-@jldWM_~wZfX?uB1(QodM(zU zej>?Um4qc4VU9}|SCQj#ZAv^z~HVmmDC3HAB=M^G}WxX{7BO(E@R$G~_mB{neQ zjz(B}O5xZGK4uBhpc1|3_e(XUK|DM_HRB-Iqa4-CB3)8~YmPWOIx zxLHoZZN#uird+RTu55%0t>(9Cs{%Ncjoo;s%mCmfi`{M*Iw_dCLZGQ?74eu%Kyc{{a`c!o_7V6Cn;X9GJ!TC7+u<8tk(#;+fEkby2M zt+@bKF46O_J=~`28+Cw5m6O0I5se?(WH&<+YS)Upe7Mm|_@Zgb5IcX9XmC(saRCk7 zA9mc-;T{<(N+qsVXl!a(W%%B9epJvtlpv*Cl;^xiL+<#gH|5^(FN(WOYRg~IXda-z zAg}n0=XvzSG}MXG@STUuCJG3kwVBuNo+W0L;oGASAHXlo#2*ym(BWiH`pD z5>KL&!+E>t;PIhU7`D>*!C*%2*iRi{qfTwVlWfq@i06tS*6=)?vc$r&ujdbl2)mHx zlP}vc7vk}1r<%D=r5cjbensc?^NtA z`GT{k^J1X!=hy&7N@4J(7`j*Q@8I9_Ch_Juim2(Hs{5^U`kQ1FhIUJHwW`#`*c0Og z47zM_j*Q^BFiJSMK>~BG>ur%<=-T69x7qgJ{c)g{E?PHam^=PjVCA9rKuhuEbJc2T zmUmDerecBtS{6F4Oh%8H+u3JkkS3zdOs;LU@2#8P?e43ETmg{{uD?>HJ0R9eZ`AMf zH10FG<_Vw40mMP>Pr1^atBU`ZSnAUbII+*v+7rDXk4E;lNs7%{d)zxWEf-XYUL3Ab z{PKzx3J^Ha;Kf-zqKB=Q=>Ez>Q90uP3v48e!$pO6I7Qs8IyG8t*}WT^YnowHJw6`| z1I!>{ePNKO+2p1i?i$1hKKET-DL#>ylb;sVXVaLID=%c8VK)GOgQVS*Z!KI5i=KJS z@KUP*Z!^Y?3d{OYKSRb1`nJ_8Tf;!2Q3k9BK>+Fmc+KUNs|kkgWXY1S&3yi4_?OlU ztk(~+i5Yvslk5@@o#`Va%}h^I`3=*{b`y@ zW|H#NAeH-wdWzoc;)~p8-J@DZhx#PcPogP#4+p5g<&NJFvxK_P39LTYe;8obTBdFZ z4C4hwX5h4qNMXAw_1exhqBv4qwF=@Y701mPed z8FEXvC~rf)2VQ^0K(@jMGTI#;M6rALy6t#8(<|cKT5F+xzZ)l_)~8?bYF{~z)Z-oB zv$=*KB?IUV61Do3^hURaN zjhn?Xy|^78h6}N^s-2lR&IbYMW?M{#X~=}qmNmvHraXObD-_N!v8nBs(B;w)9X_q zgS4^jy`$vCJ~gA7A+CRw(aVoq(aEeF((PLGB$!lQr!}ex5fR8XYn?(+c3AI^t$O2# zP6n6C9k75e_@ShXiQM&bE>`7 z1w-#d$*uWaE-D#jDh5feE@V9$iWlm)k(gsW))57o)>`VrQ$=Df=Uueab0KZz5DI7k zh`v6LAj%kfb#g08g>m8V{i-KTP}hd)ZNA?YXyQ=o433zi#r501!0a&7&12i0*Fa@) ztHb{J2AOA7NAzldP@3OarsYvP%Il>uJJXck`i(Tfv#z?*@wx`~gL<6VVt(rljpF07 zpCmvm3UGYfU>n;WMh(A^Ht4V)8ekA$Ae!1G1kp3Plrd8FH;oM=gx{$OJ~A;k5YI!o(`%A@cco-+puN)DPpY!PEF&XD8{88>eepsYO(b3pW8H zHdSD-vvz|K?FSXfsddd4D2>om(XWGNAnf${Irwzy?QpWX!?@Pjcq8$$b??OWL;S&< z3HUa_g%%XL-?HH~ma}oUAT&vvi61fF@%`N1x)|Y*0bYyoHW&_}do6X*vNrvUM09Y? z1wKK%FUYME@G``b8H@T^4PDQK-^&&@>*F3pT0rJdc2>DED9U}@Lf%xp_zfH8&M-RGd^!sD|tTU{i)bk zN?G?`wyFvq$j^!wD%Lkfm&YtUtw-(YHwgYVRxk=2A4^>aVnLICkH?ec3w27=GDyJ0 zIds}A_ZB?^{Q_TR6V{ofWUYYNAd_6#O!wWLJI0nQwFyza9g9Ot%eKgdQ+;%$<06`Vj7 zyT*)km=xCJ2WGcFS*;LFpsXQUOFVx^^m0{YxYsXOuIv@hre5qFnWAOfKWFp<6vw+H zn_&yoe2JGmm;voLgRGyq??zWYRd%N>B&WjaTBFy&ytvb-y4a+`4)q`AnyE&_-`u2n zp_hgDVm{@+neaGQzQQ~~c(+s>U4<}n&?10x*sw=3+k!^;nZ(#dX@=SQu!&me8&Suc zzKZmdePjD#wsxg!+)4=g;X0cySTs#Nmzfmn26;@8$1?@6 z%ud>-6STb1O7{AlNkd&5y=XF%#w3yZ(R|Itzg-p3f2<^xWNZNGO& zwm*K!rO1O# zC3PLmChvWP!QOJfI@3!-xgn9QZ(w>y+BB@8MPuh|n zByxJrL|jc04dB|57nbpMUaqshT`2jH^4xl3cLaI)`*LU+NL@2Od@C0=TOq8`XSWF) zE_ETgpWrCId>bU-sk(jr6Wia{U2$Q-)<9ao2d6{g;SG0)ipFAgu2KrsIUV&OM^?N= z9ZG=HcU#s%y#J7Y9Pr8`PzcCDj*&Ux31KfKbt|PXB$iLJ_D{3ptDc7ysl?;!IHJYQ zk(J!XHs3ISJ9}>|ZY;-sjzRG~T)b9-gn3%30+Ij1?r^vs&ZK;ltvrULN0KPk>`p9Q zF>Y6MVP1lc>XS@4Q4qB6v}=Ccn_!ya{D8GFNu^gj1P7YEYjOtHl!FAhF1b7o4Rfv5DqR$LX{|F zWbzVcVo5Qt0}S~Qd#s-s4W@#$VP_zt4Pw?jll1<4B|TYTC(WDR-Cill!>E+JZs#ra z&ZZzLo*lnCC16@e5l0cdzz8pTD1Y6MNb0c7{o@N?je!4^V_4CTK|}f)1UN=+6aI;C zJWc7N8*CcKZ)J28AKcuC8(Sv|Ovu&KS!i*A6Z?`UY(kkc5oNwyvGQDG_Bjk^zT@i=8sSEHZJ_q%er z()U}qS>n;xAD+ATV6~=b%PV;C+!mno6n(v0R@rK;kWsXdA1e%{@u#CXfZY>g#TCzz z8!Vrwm#*>kb{y5IGe-v^HAY@5=_?dTBx>fGn^%kt%8Fn2!?10#i2D|Dq!nGl4X0zr zxsB#@`x3OOG-QgSvCjxuRPIA*kinncT1y%)D0$Mk&Qngk9Yy?B;`Thlgp!{&ii4j1 zNrJ76z~F@HMFi+h#SV)EUm29Hq+rpeGv>qbBIO*`Zs<*lUdm3*-85Vpbn5hr1KnZ& ziOP6mo^IBHwfUM}()bfZ2!&J=a#}rwLPgH38dOEfxU~acPsbfbf_J`(k2Fd|o6*>)Bxx`e%Kq1vyp_7a@Q3>V9Vab#Zy%nL}erdF8SZBz8!@blbfK(Ck;$D%-*g}RmAY`3GU3( z47KkG%w55Cr_J-Cws8(atZ>~Bke*E5a9zegdavf5Sp=#+VxG8kc%mLI!u^7SI+g2* z`}dEEHhkYPn={^Pj1AB^CR1?P8Ae^o9yfb1N3GLxzY{bZQOr(%Mtdi`{fAcaj4qdA z+;Q`d<9MNN^Q)pmnRJ3~L==)VL9dUlKOiJ+9uD!@>d{c;C{t9ojqk;xMG8it(i zQr@$B4q#-&1+t--S7RkQ3##&~T89^6P@4})ydR!t9iq{Eoo1!Y+daxapyE67 zS5;$YL)ZaVnE)d_fJhr-F~;vHyCPf-8;v3~NTJCR2)L*8A^-bwhTyF44Zr7tj=oMf zx3gr>$X!)V{ymH$s7t3WvpQ7FSwo2a#g}nJXHjc@B(tF?aX$l;>hORkFh=NE7`#cI z_qX{e>5&M?x5x;5AKCg$J09Vi+tk2*=MY9gd=EsLe=Rx^K8I#NPMV=5>;gIj;P`tfmdad8O<3k#$8xZtC~`8MHX`GeTTR%?>mUfTfEHH$Efl?IKQLGpuEO2x<4) zOS#=l!La?vZ5z+lpv!n!dDN8PiP|G_ZVz6mhs(u-QPZxfN%utyzxO3xIKtbZd<3*1 z_o;j2^A*FQ;>aY3e}b#S5WjTG;LuZy6bRE`ovG3yz`@!q1kNU%b%oGDeBk&L`g1M@ z^@&X%H=%Atlhf-L=J>6$oyXm@Ouq{SevUi)^T)c;e|w&1}=9Xx%E)*?MHf*=YFP-Gn~K5ZqCX!3=N3NeGE zI`_3-+L`Zf{>Ho5Pz?FeTk#Ya^ezccHP*IE{wwqV{)+AB@}-oEyEBBLy+5^fv`x$J zdw|L1QHyHeLF<_1+66Y)OOi*-{+q`)yT#Nta%Te%nD+O#MNlVrOJcCuABN~G8OyG@ z+L469B-mFh^fzwakmFRFw3*g#IoPZUcrv%%72rSF#6;f03(wE(l-_xTCFa2}0R?kDw>_xN2 zGy!<_yhfu;M@mp$w?L8$F_hAjA&Cv(IwJsyX7&r&O2;^?c8ZCRT0?rmJj!2^RK12s z3+)%{MEPIAdgOba1z2||;TEJyegQkqj^J$U&XLQ36qlNXxs&c?FHsNNvnf~t%6klR z$R$6p`QQqCY`-LFb{f54Jls?9vHb9VJI1GT+KL=AVh?`4vq>VffcQM(vJG6%*3yv58xniEvcyK5rnaA;^jQ9OEo&>1?#tWGk z7Yk;f`$UX5A$iKo_x-Uldjw|us7H-jo3E>3jUq;AKVrac$XSGxeamjoh`^E*U;bm% zFmx}h?ZVwko@0-$rTpxp$fPC|MWo&Rslr<5h1kfeKNzn361vf^%$qHM$&4b9}2sBVftY({9x;ku5v zSbhLicQ{0ybaZ2SBonJP9XGA*^tAeH&nkKv^bhCXTKwEKUC|-@O^)S*y&(I^Rq30vxfev6AJf*G~^0BcoQT(3w&;tG@~C^~N<=i#0U!u%d1|?hdd& zW!rf?$msVRH9eC6BPg^JR=hyEeS$9-m`lom@Uhqm%z%t48eo*Dxd!O7`YwJ}+>82EE#xz0kvUpSJZ{d93pRQFC4M#xtv! zMzbPgZw7ZYL_G*WEBB>(%(N9yXUSA(jBHmWq00PMLg?zfA{PX^Cihk;w2ZYmTaIc+ z_+GsQYQaN&ACLy+9E`eI9}oGvphp}ZBpMY0{q?xG?6+Zq)lnAP^vsz_*=l%Zg{bQ{)=bSSKW++v{ zOnTG{k4fV%1ASpR#6X~^`N$tWN5k06oD`_Xw44{HhHWQpUN{+^69#X- z-bz8sN{a9u45uS61>CPV2j+?$Z)(5itC*w9J|%f8GLY@Cj(DHoW9&UkH=g&oI=Kay zp6pD|Jo_KUgPho%ygDHBld~dYUV*qy&0P0D1$c)H{ZmI#u2D zf;$tjMy}xXoL7e9iJrDaJMmd36!q9QN3^dD=lyC@bZj3bJVRV=is2}+5R$bkD&w~n z48>datjAHN1wHRqs%bkoFkusn!tIF%ypAurf&Q$9*>l6#tZg#9D;Ng1I}8NTF4JB^ z+MYgQ)X0urYq=rd=1?YP!b5Z9qMh@82HM(E0K1#lX@jFsg6X%43-)=!KQTR@*D2`j zvQPcz!HT;3o1)7=rm~z^S1+Bg(c;Nw(Hl&pr-_9#FPS}#I4by8v_@`|U6#spm!}P>T<@_OBDCs6lbXFd3;vE(3uDYk3`;ZAedzglW1`OFu*KDgj1m61%dkSXwcZjIM`yQV$q1< zdM(kL4tIZs5+S}ZJhbr)93K6#crK^K4fEbLy%8&T1qrne-mH0!+Z z{~l-IPv3)X5_)i5?e1wrfH|8w_r)cBgJ~mV+0t;y{J%jg$?Z-xyC;j#?;umeG zfFz?W>6YsM2<Ko;fY(f$CdOjj5=>ciYtBh0 zRSxVHMTrXiL7g5I$QVu~m=dy(kD;2-z=WPv(6)SIwMoLt+xV<1NUR|-b{Td>;xM{}(qk0nk(GNUdf z^+}m#KBs0|Dtk(q^wm0PLHSv0wllpDXeN7l&p;;=23dM2FTXDQN!pJ*&pkGHa|Y>| z7kfIoJ6PA1n6*Dn3}gW?dCl0E62S}M;9~Vr2Tfez;F%T?qfUShpK{mbuzxUyiHR1q z{C6;W7FCXkEa4MA-~NE>C9(sk>e+&w32cJkw zc8)rV`SQe~x!WXbQ@&+HIz)^VW(ZT80;~yefVD% z7SD0#1Gtn$3LPVse^|pI{#ej_yrbsab)8JM(X6y?P1VWVn7#tFvIvCs4|YXcd-2?R zgxxwkYK7Eji=Ij~z*wd+3+eoFaladRo^N2OMLL{SbZK@i7r>d7j<7&j|9d$M(qNmH z3Suevo%~Tem{6tf22MOp;Cmh|Who=vO`3_A`m$}JEu&+B2bZr1@p$&ih8dXl`rz%Z zjV^_nG?q`tP#;7AvwFS(GmIPuW+vI4YA;i&uyxdRI7JN?tC>kac9d^wN-65$0|g5{ z^tZx+9;KrR?KB;UDNLg|*H;(^?KfO8cbJF}iz#Ve^&V*A$QY}qE08&pXf)G=fmo{ES=yMOA4fi-F zf;kDN$^tCcfs}M}CxP@PBT2R80gMt{Y0UOXSzKBK<-mS0+rbY;H1I@OMkC;G5L1E2 z4YT9R9mCjG4b~Gql9>}@Fu3Slhk%tUWQSW~-`Cu{PQI|gosgwK=yciS3EiF=Elz)U zOB@})Wl@}!D%d`E4fqi?<*EUex@BeO%M@=>9v4Cx$!@73Fh2_)Lmooj{MR&A>zCrP z=_S=j1aD)3Ppp^A)wQxnT88gVh*D^e#-^9^(Sv(aEYnL2Ea*JXS>N^_gMqV(SAy#MlyJm8%ECGL8j;Zu;#oU-6l+DywSnq}FhCSA5%A5C26Q zqjaOi3^g#>?6;$V6nr%>%rtBfjqb_wM4ix%`e6&z`ymzBK|L|L^60%C*Ni|xcCMxu<2h4V9o85eaRm|>ZEzGUNsEt^6`Zs)cX z;H610gqoEK^<{b_{QgHIzjJ8$9*KvAA7xyrLYFASdBQr2$r;@`#3VAp2Kn%btVnY= z_A{}QFmrQOlz&bX)1_3QI(D2}oOOQqjGrk82?=(W7jc&gVq!vnEB2h6-wkRnTzJXL ze-XzG`8DWNI+EIwfJMyZRP^Yzh4x%)u`~S+P!+(oN>A}@EA!_~CV|=P5Qxd+w!0X;A8f$_4PJ!8RFZUG66k5O@zj>DHp7p)-&3f%2R=+=O ztPh-cUlpn}y-fujiQneS*H1ohBB3*&(NuVSH0g1vVt&_4ien0`72B3 z@w}Lsl5O>0cY_i%(P2t~X#FMP@W$V6d#sP7n2W-y)BR(sbwd6E690sC*X4CBRb*?| zZl6a(c588rvMuqD(=`o7mb|)s3+MZr!c7#~XFE08iuF*`Xdv!u@`gy5BM@B9q|kn1D9sZZsQ~NlU%Wo8{-~w7B>Rj_PynmS^gjWS@(H?RK-VgxJvTgTU$2QI z*wX56slgqle}l~58^(AQSLz|>ZnYFM z)XNg@g2aUKQHp`yCw44dJn_^n(J3TCe0s2Onf5rP0^pY-!R0|f zeJKQLY>inW_ygKoL}ogCLE>r45`I4rQbTW?jp~AYX&ovP+DI~>Qr1~6y_%}RiI$Kz zSC$@#8I8WIdPH5~Tesb$tai*+-rCF$@nG~R-VxVV=5M+Oy&-Q??RtWgTl3|o=?`Em;p1mCA1xvv%;BpI z#B1Ia`f=KIiD24wyC5M(&HB8uL_G5%;3wtThK9MYqCu)4%Y_<^`RAqk@E2>Ld z1ochqTL8`d4rXycg;$0qv|SH6q9+qh1K~(7IZ={n3_%=X7buu*V2?2&$!9%wq2^|K zyI9W=x_C+x{To&%;tJmaY#ai;k(Gi@6Z9*FU3%M9r|9X3gO6x<`bZhp&ksphdj?2BJ-10;<<*j81qev>v2EgJQ2vcJ620A=5IDLC>*XjA3rky za-ZSW<$2!w0E2tUI0Kq{ux=0FQ$5v$baGgpONi44@-!ySFe# zWH08>3>@aVBOrjnY=@VQBgIP*bXhZXph=h>oi+_VCTu!qT}C#YdGw&s4)zy1m= zxi5*T+3ScIMd?X&ZUPO)7FlB5${2&2_N;#oV05=&XlPSC_U zVL8g+T5i^> z0{cx_>LsF*y8C$$Ec7e-Y7KPZ_!{F_Nh|vw=p_Yi6Z$iiue6;3l;A8ad|C_)UA#M2 z<}25PNjT{_&&wkRB)kE`i}-?!7}&4#y>|(=ir%D@-zYwO7!sdIx0_U+9h>~$F28hZ zB$7b-wf;Vbd1cOyTxcM%%jJ?l@ZK-bu2%9ARUfYX1gW;ituGY;?xB=T*#0fk2qqWQ zN$z8~eQ+PcG%74e^E__NOO?b2XKRmwL-}VInsD_~4M=bf|455va0phwe+u;#0zXMN zGXFCYj3eX&sSj=MkJ)T1}P$a?dFb&!*CEc}qj~7_Hb6AYAJf#HJzB7yNIY_l#xHaGc1Oie0aWkC-iG zofPN^UAd7xvY+mZ8c4kj+V|VrCH>wAs%&yJVB6>z_428feZQd z$gTS~Bp`YDaBQQY%rdJJ8e=6ifp~o9Z_fu004L>9l5WLG^CB%{0i&A(v6DbMEMVzM z6ZSZiw5LgMKpm)xN~9QArr=g>kS#s3@`uXWnyMF*r027nS-|KKi5 z%w$X~UZ3OK08g%ydX^&3 zTPla;Xb4Kujr)SMa(S}#9o9xDl6jXYC-`P&>yMNXs8qGU#>t6IRPN_XfnH}jqKs#` z=2ND=xHzqcq%E3AF;}0s#)`_Gjfy`rH127`RU|>W2<@MPJ8PW>P>8th=YxtmZQQVx zVZ#osyRyrDxUGkBNNZ1ux1zb@u>M$1F$Lxc^#~<(T;&zeFHGegiyG!K)^TRe{1q4yd_ctPe>iZ zw_y5UQxH)-3CeBc4IzIW*d9mWX_%qE=2iJW>!^v>T0-Z=R+-%4B8>#Wk;0+l2SKw< zke7qk$Ur$&SHqW}5TT^deDVT#RU6a966ta3q3uTnU5F=fRPu}rD6SD;CF&eraQ#F1@^MZU68cO%ry+etbEi?~qnJxDQT3)}2;dk0uS zS49%i`xAfuF!t2mG5q2x6m8C=+1(u{2Q1i&ud89n3^PG&rW^yg5(3I)6c)%OEbtp* zr-(2yw+7?RgnyX(SB1q`3Ae*~tMb=BESx}108$W6q=JDNRU%!T&VKa&)d?*2<+NLC zby2a_U>JD$0~X%yddFAMNvzc3ix<-oNrk7&#USIWd66ZPI@f^nL6R3&uE(U61o>M` zfwm44lPq28D?5p9!>bg+6fGFa+THEi{ea@fQA&6`)94W#D8d77b_|fKZ?5uKCF&F+ zNEhL?c<0A#hEHFl=6lR&WzwT+NF5J@WJTty=-J~T{*GtK3?df4xYyKpxOFBZvEQI{ zA&fs&!oo1BDn6&0IYokdg9$bS8Ji<1mxaR*t>k#VZm3v;)c*+fQwNQ(Df$Cd{u%W>Gj?hH>1ut#&8#VkZ^WY0+ff2w@()A4Ey7pdTB8Aavey24T-Dc3JV-*4e zl)x@Ca)8i*(a7j{;88`F-z%yg)5#Hl-x~E zx{qk8qVonf!Zb=S?Ao2QW0W~*>R4_2z}CLtGnr`68EWN=sN=QqNt~Tj9;gM7Ez+iX zVizzu=Jb9;IW*RZFs$)-S1*)ybHEMk9*W@zQrK|E1LS!-(k8;Pu8>S0D$p>q(zKgMYL@2 z&*0X;rPfLo-QOL=!fkS~j~ey}T3G-aiwO;TRaN7usiBH^QSEyO z%Qvo)`mekjmIC{BAm1e|+@x@bQ}aD%L+BA$Nl5gwzr%qH?2mOqkV1uT?cAlJpRq9^ zpjj8HAWIX7kFNGIeluE_VP^3G2IzbgO^27?c=qLpJ}`!iG%*wBx$c`C-dl_3h;?2G z5K^m{Uk34MT$vadwaxeY%An7A2FD74WN|i>BjpKb-v@ZLr~FUtP6RBD1ApCzW;f#ZFyx z*g7TuGqo$iq*$G!|EC3r&z0QY4ArN@3Hx6t4{;hydTdeSl?z`O^rGNb=eNPikg7AV z!JAe;8Ly7|+-_RqBHaZ!JDywcYL8xh} zIBZESr2?OoF$i2`XEsjTULUK5pfVJYt6Gwjl1{{e_SczUYk>me?*%S>9>x=xW!{l8 z@l2pb$LyEp$`_BK5UL~!sl4k`U>UU0EPkkZIclQInXpEJg~lgz@0eggo6>hY;ib5J z61eW5e#D&;J5=2C=-q?}Sj5Dkkped+%fAd&P_&|snZMO`cE{?g)IgUW_>5^^3LY80~Y=7>PQ4MCq;S>%ZeOlNU zN(s$AiJ(EmYg#IpL_@c)8COabl@rv?F9CGYoC3(Yn(B%f8j{aLrbTm~a`e#&)ATu# zCuF%A_M0*F`ePeT$ymypHPeXtfO>@Z!L(SPz&VOZ68L1@RpDM5O#YEJI zF*q<7=7qlmor!u$0bbpguv^jQzt6ABDnMZ)g84R zj>h(PlqFyZmMEluf30AuHRsze@2cQ4ozEYadis!C4ESV2`)Z)No|DSQau>lNZR$}O;8I!9>`hzX>!)LVaNRL z`_6hIm2X`Czr!nK9m@KP#6Su(kKME-s0KFVXz{mNv9yzI=Pa-^hN3l6j{UQ>Pnb4} z@y}rq8i2_Kjt;^#E=1KLs25=LoKR#ms~3r(KWpkPvaYj6E0>U4M1#+j!eoNvlKf~R zJy{;nyvf9A9a?;8&;_B)B;;(jC4plW{}J|G?9e=!IVIi)F{f<2IZDu@U2P6Rd{4cXb8Nr z)i&NR1#Bp~pJ@KmkYpDrmmMcjoE%I(TXUN^sxt8(LCL1-RkPgorGJdmEqF~Lh9e`E zN%vw5JQp}i20e_tFbvH|MZ8pXo7iTnSh}|9t<8_GUFAm;o#+UdIjs)*U90l&d6b_D>`-k$LH`@NdY!{tnfP8NOgDre~i1mG1GwZ z(!>O_vFB!CU+&E=1>w#E;s5#(&D zWCMn`Qv!E`Tpa&JW!?G+YWmO!`-`Rr`*=)5M43C9(yW*pd~BhT^(fqnv@3+zGdCe( zNY&@R|1`-lXt>27pzuChy;Jrb70Y}rw=Jwrpfi{5nGTQ}~-*kp_gfU$YQs@1j3=l?YR8B(bfcX2)h;P}X zXMz4WN-a{ee0POEV%htb^^nXCM~z=Bw2I98+t6@`!z?~<{;0CPyhmiN^B$k= zju9AVB4I|;vsPdzU~ro6*$_F{i}WL&h4rKMu|$ z?+ZTQ=qo;`g9|_TtlF!bq3TwLwD#>eMwS>nxdY^b*KoU{fTv@#t<5YjilkgB5p>() z+zKPpp;6e^YL!425+9Rb?{dbGX@sbwwd-4Hm9uE}WQrlZ;DrsZ<-#!I&>nsU3-Tt- ziJ7RoQt}(%wd;LYdnd-Mj_qV^UI4#$hkSvGD;VNIl!zwkJ@NF8euO;(uN_}0_VlEC z>c9(qg(>iO@IczYVpFYoDCkmRmidncG~u?VvWbN8LFv;s$;l$uXEWEB4w9y~Ef4A( zWAf(0HSxizBW~ZtTs+yJ@X?sp5d87(1ax=)M@P4CgU7q-w1@l7BWYvl-P7L%MCLU> zSeySWqO&_)a3r$g)&KYf9{Ry4+mYdEArmg|tHbsvJ(McjS{tY%4NBAeT;Hi6r7V>4t<8W@rw4TwQ#7p~`Js!aOLZ7JX zj&#_oZM&3BJ5l5NRzHlG{X880KN73KaMm(}9RQz1wx_N50{IS(`gO|kfTl|(RPOJK z5KC68S;IhH=GeO`RVt(>H}QNR+{W>bh~DZ%WVSaB3Dcm+zFiG^y}2{O9eq-DV z87@WkIU6ag8WO0|L#OMGqs*qPnHZ4$>aY9~7MlTk?@=kYfqjbj+zYA~HYOT)8M{q7rAEBucYU4-z!r$lmYL*TnAAZ}Bf7{^&R<$-|>e%8jaSru^0op|s z!3KK$IN}qN^--wwd|`WfGSVA#eAoOLn(7HHa?+$_U5fXP@3w_ z*^&np8D1r5b8MoBrZ#ID)&UtOCe7qQ9jfXiWl~elp%@C2ex$saj69z`2WES_{$N5- zp@z|mnZYj!+-C7VAlWV3;a3YA_ ztLJ1|$yjM4nSEF8r#E}cYS`4OETZu__H_0wf4}3JmGg)Fqu=dK_`p`l;msUH>sq^` zP3pmn>+0$d!^6X+*>Holon%mB_d zf+15H8!zE*%U&5$1T* z(!9kiHF;>4cI{@|JgV*g|AFz0gTeY0@P4$3m?y$EXu))AQAdnjP@0g8WB1*2H`0@& z?UtNeOmymvnAfzaokfBFHKnNm7piOQ*6($Z%LAu?D{16NJ+YS+W>j+`^#;03=qxh=6(ps*A1@PF zS7E<9u}BQxeOv(9!}zF>T(9?6w|HACAdUj?bW4wXeslY-8)R6e`K^(UY(xoa-9`(W zm1UgGLjRXI4&1#=arAIB;BG0FD-E*k_BS66J0`!i^?EFv5o zNfva3CdPqH%(0i9Y)nYzJAU+&W$-p3{C}nVJYPU=w?Xd71!%hyOuu~KhCnx{Cq1hj zdIQr=sE`&L40TXqqWZ_m!z&)!fO2~KJ#buFe!2d{j~YY4O8)^eOU&h$O+9jZT<~bJ zBzs9Vs1at)MT?O_zp+wZ6)AX|B%dDztjAsgduS&x^F|eZt<*68{8f>Mdn6tF!zYP~QwO$e5dyHBDr}0vNx7eUe_l2Y{HE={*FV1qX>W zax68nBJe_A*m;x1`aapzvnGm+phJv@r@7EYa!TMmoal)*L$-Z)^ci^ePHcdq`pp|b zgo0T|!SMZ?+G8ePVlNv~+#{UE7o!Fvqxx*s&V?U4FSs_R!JLBXUx=V)$k&%4gZ~zr z56-8f?iRQceYn|EnQ-ZjNNQZ8m_$c@fOT7t9G*}Dl$OuI>0IYrDnM^(M$b!6IjM{H zI8j$>jLI`c0aq>6Z^yJCrSW9A0^20W$QX5MMhKECd@bxz-)1RjWvk|!EdzAu_@OL4 zh5}NvZ3GE6tH$BdPqpvt=plHk8okpP0^Php$}qJm6>a z-Y7m4eI78mUj)tYED4$nZYtkV=H>`GoQ+>c>;t7KMT#TjK1}OtUxiD)V8* zYHgptM2Nk;FM7<-@~tBj0F?&ff6)Cud!1R#6oCjcegSH z^0~ULh*+mPw6gD4L*0@G5QR~+$SO;x2RpgyPIWRRwYQ6Hy1sVd?B|(QJ+|MY5@xeL z@vgluvSnYIgxBNm#L%y#7wBPsXf3m;V{#0x{YiHK2dkj&t(gg--wvpIn#0vor6q52 zmi<*(IQPTi_3%ibZGv%LXWT57LC@4CpRpHYpCAcS4N75G)B?qXQssIx!;IXnND>a< zs#n5wd4u=HZu

ijE&`2+s9||LP2)-!qM&K>jkB|z(d-=*0`&H>vUCVMIiYV1BI^) z%JH@mT=nl)<36=}Z}6D<^!xI9GHG zj&Gl4)h*`YG{n&NVv9k(hhqXlrx{GNx{ge(w(TVS(v^W-=Fl&l&=+A;MkZqfp95y% zL#W5IT~2hAn>u`!E7j05@gV#XtqB#qgtxH64qCVS4&E2Ld^g&EHl@YJi3K^2x`>0uGHD4-F~Hssvm%G$+`(ht;uk-QL!6MN z9@P_!%|4;WxDo+%Q(7Jfh5>^fuX{M(sD>tyla$tRmAA>_;ExFHh;zX$4il_VCWL~c zVp)LPyfU5wlaZ2oeLs)12CBrG@R2H>`0H3!UgvhgqQkFU(IF-cx)WZ^2+e>sbx{7=B7uI}oQSk;MB*A@eGd9 z8u!(LWW}7Ay9(68bwr~FlGD7xhfc)zRZD!3uGGVk;f+oSE>kKE_d_7gq*!W7zbWV5+GK1){@&iR^90cbU9u^sU*1z~kbkD(l)#!w-vDC|-coW=p zobNR02iQY>*If24-EjO9Yzfk??>`&o*t;7auqH$Fi9YTkVthkmsPHQTa#*sc~-i7fh9! zU5a;^SGEQ*M|?*FEcavN-s4o=#Mid(g$}YZ76=2CutrFa1y(V7o!I(F5$wC>R;r(* z{tj4(>Zda#LrJCA%O}$PE0xssqjG2YA&dE#(xu5J(Vvf+9VL_m<=|7m*atTDt!=w6 zlgYK06ShT0#-gkK9n8n=>lMR%-mlXP{XnIcK!Ve+OWw7opRE08|A}}&m-PtVX_CKI zwWg$PNpYl+r+lJ*Gb=UFX)GC~{gFGUjpxk0t8Bluj2N|A+d!-5f%D>M_s_F&uzAK~ z;X$kcAvJhih?Pyu@~7_#uiZAHkJ|t&M5SoT>*!e<$6ZF6EpjNT)AVpHFj1!9>&T9p z9>^!*Zv<#YN}+NOZmm+)!!fQ_)t^42145oXq50s)I5)6-%Q0L{XzXTG^YWWN0|kHn z6&53`zitpiV61s@x3Ien5zDM-3ppk^3XX-cmNDmWChaj}C3JWEMUX!kj|YAvWSdWR z!hy$%jCrKER*VUl8kp|8@bAi{fS2VFXDyS@k=siDo*W!ySES2m1@iXu?V58Ta=@8> z(9up4FD+=-5;b~9zw|~1IIfJPhPM7?!`PM^Nx8psWEBX$LcY(nznl~7jQN?h`x)7Z zP1WM^@Ih=Q-kf+1Q8&XqdYLyGcnMfx7dVVAcjEZh`-WZ>7jQm3+C3mF#})>bzk@Cl zxP6_T&!CvwuZc+dCey09w8C{u)>eg171;e*hSfus3Ua!kSlpA?-Q0MLU>8r=g7m?- zjOeaXHKMAoLfD6v1mgLV8;n6gu}%e(n;lan)(TQ5JChE(6P>uRRwU zb=JJM6d;uKqQpSNVwoAfs#lA)u1k?}tr-s_aQVLOT)*mO%fcn@)!%>6`UqKbu8$CI z7`$Ya)K&P^7t##269qO@)W#!ew;NGKHzT;+)1&wFA3yW7kcG zZ6eBe9@J*ad)$P(B-YHHMn~^KXOxqoJ1TunTIwzZreHlgKT7 zYVaK?E)N9jd2bWWHD6~Ys<%BG!ts|v=HY2|oi_Oju99o4F<1p7^p?GR84x&d3M7LK zzaP@Yhd5A1wHL}@KT6YLtKnIkAa$@U9F_DaCmRYL6K^N>e_jo$@cW#e6>p(VBu4XN#q}X}pzR!gz?cV>Zr7J@NLON=S zk@5tk}fJmDPG>kps$3!{mhCFj8FpGe4h&dW9q8zN}mx&|dP z`ZD&ZG?u3+(?zfaeBUlU_k>jR}A24@b|xw9!Wdd+R3uZRZ765ZMIY!e@A0 zP{u-NqhhL>)7Rw)l z?gqro>N^|eyf(}p4Jx(VbzW`OhzEWq*tifzMLg`(Vw>#Tsc=)$aC$TgSmH<@iT1w} zR1br#)GykC$7vfcdwWG$UhWJ^G6CcnH8$VUxY^=mK0du!oLE!aA0-&@A^I36VnPA0 zU(UaNwJ#s;>=?F22mp1hUx82R??WhAwJzf@S313zV38S#E;Lgrr7|b!(0-|KzfwwR zK{w3d%0JQO>Z=1!l?!M{B+$7#Fogh3f1=XL6l%YhQ|$=(@$DY5j>%*LYdfBteobeJ z6xAA2rhO$hjEa2K=$tv` zZ9G`>J~rg6XoElY%8Q=P1M#_EulPMiyo!Nn?wo+|B$d@2*DydOZoHJVcEdYZ%0^}LMe-CSI>EF4BotDp7f+B#lA0-k$2|YGA0cavK7^}p7UDW{3;Ats%QyACCXmE^~W z()fPSwwq0KzbP_c%R9t+vEJgHZt*2F5cIjf)^to)rrval?&%8o;44quMnbkB6qsEZ zjp{)k_dZeh2#vdyF9|G7UPo=^;lr)_%`6H$+#^Ol9 zJ8B-Mk?Y zMW$8vPX$%mfJFe=EKTOzt+w7!1y<)^42eRewo?R`4ZY0RrpjTdcgXPDg4X0zQW=FN z9IH9Mu)wmpmgo4Cs+wh_eZygcn6v!vp8Tb!JSQ+{bsR9%bAFf4GcHAO%;Y>(EC7iW zvI4RVtOl5U7W3!oU^(F-@x$zkC+iav*&FcCiH;&Eru0 zSA6&Puuu@r*iKhEs}!Zp%V6YhWsAR7EuSHAmc#I6a4C7SXFzht7{OmqPlRn2$^?rq zN~TbmYX*zrxq!SlkyHJKaI^X>(ry-?S;;fG^9PuKisfk)L3Y zOE~-sY*H}Q4?YHT%A+Od8_OlOHc``2zUp7OLL#N<HA(m8scJA||cYFxRT$#`WjK{?%$uSlG`@@gTKf8(4`_VyLk zJHY+ml<+yh3;#ITgy|2k%t!_rW*><{FvY1dR&mP&>xpGr6uFe{TfDQ?*`}T;`Gm6v znY$CtF$oB9aTl)0s!lOm+>b`Z>tlrXD*wC}kJajwOVckQr@B?GAY+WXOk_PyJr-#5 zPPZW1omz;Qvd549>$;qx>GEU8VzzGk&aqk;e%Iky2^N>t0Z+^#5n@_VV{)sB(^W@Tu5{XC!VG6;!?GGv_Q z3&I9XIAtD8cM%U-Z@*bK$e5Xmf#HBPjG^4JoZJ#H7=`_$G^XCaLFg;#?p*uN`pyL>g=&F(ZN9k}4itA^I)tK6TsmKn9b9_M$YL$>fC zBxwh)2MYxDiW2l(JDcS74!|yaH!D|loFYho z{`ny{^ZQ@EpTcD=-*Equpdkzz0WA#cYq%MjT)Lv?=20|~7CWU6 zPoXy-Y0Ec4)=^)vrPS77R8Jr_?-=R_CBE8y5#u0wz3x#8+_(fCd2ECsSC{bQidhbY8mx|GD;B%J;-jW#dHVDOQjHO2P^$9M8TRxHiw=!%TDBZ|fjG3nT`> z)|}=o%?HRmVs&Lxz&Z4!J1#4G*sITW?$cn^rjw~-N}cjw9E66$TR2sWpZXnc%Bh7o zapLV_R|sBS5d^NQ9lJRB!TiZ*Mtv`k$BiuT!Z=p6U{SUfOiy%36|aH5alY-U`$eCD@)f_X~Xy`9j3d>w zDUm}yr6`%GN9m7`DgOxB z7tb&TBQm4PG!xeG;nZ!w~= zkvv`!WSi$H$fIPx<=3xqf|OqcEXt0b_Lq%?{6*j+rB%Ysx)W-S>${u2xq)tNtmF;+9!LqmFeC;l&^J_Xh!G0)Sa z4p%HXc}p(V0x6LePu761tZSAX22x_CmFh@_WmP={lks{>u+s-f0aN!EMIXh(1#FTp zoBV9gO!z`y>55VQTq zuZV7MkNZEmE_xB$LfjNG`C?hol?KW(+WuT_528c)Ub|7Bll)gzNH%EpAI=ngFLC_` zb%YS_@t4-VpWDuMqw{rha&nSuEc$JE>#8+_-RdwbZR_^NA0&CXx;F3|Z6gK2kJc1L zQgh0)s`wK+m3;+8{@I+DCS^L~Db+#kY^BSf%s>R2NW4+<)8V_I)k8>+Wj&wGd+^+_A$rd*UyKTV(3U=s-#jp? zYpn1+@p?no6Td;HD!1`i#X)uVS3}ZH=)L)`SHi221+uO^B@m3M_he@s)mR1i<;!fq zdR{b76U|+h6vG#)bD8zQ4@lCKN||oa+oz^g?m<@)COp*BwDUUSyuHzEB6Hg!s+dFI zS#y0QUc=y3Y)7q}=AwT!Ux;Ng-go~ z95GSS{O7YDYz|JB=}sJ8Ektu_-f-*1R0APV2}IQ1Gm8>Wqn`(W2F&4A?1uk^_rPsa zaz{-EDUs!m4Vxf?3!}H{0n{(&}VuRB)F1=UzWZx1$0*QvE4m$-zWmu2ONpMeq`nQs4&3noU zJpF=Q!i!%Ih)H?Jz-9eDwIRO1gxY&N_f?JkQFaWf_`r_W^#7yjo5S*a-~XR%Tg$es zWgE-37M8K>TDHwCtktsZma%Ht_Vc@Ye}3QpI-b8euKU7yzI4)5#TK_c(pH==GjzAK zMrI`6(HQj;SOAYLveBkVJ5Ee7>(sSBkDo;57fT?fGP0c_i}kg6Y>Wzv3}85NBASXv z2Ri&!t5E7N1>5rNNm6FbkcIF4uxsXPv1@lj=EL*NKGoSVVk4A~N;2S08zWRYI1b1K zd?7p>k~*t(jpNE0B)^X>OHuF%-}@_EA#~3ixB~n3f zySdn3IDx0)`yI!P&;!+z$kj8QVKYL_T5`<|zdWs#D@bfw(*OL6rqQE_mj}lOym3=s ztsWYi5G#vgIPo$jQ;Xr&lhkBS|>z_)hi9uJh$;%r}8lRK#k3KZz?4hXGkEU|A3Q zkKs2zvqObLF!=*Sh*FX%Tfq9CcrQ{WN92^pG3zQ~ma#%xIl@Rzbh&jZ*%I&L2T&1c zVKFfJa4{gZ;*-iv!Wi;D%=D3B4Xc@R6V7n>2OFo=hvKoa)L~sWE-||#0*zvj1Y!G%^juv#0!3kaOP7d2i zbdkPn!RhzY&Q^}*Fi>VwyQ$v>puTS-_KY9=w8`7k*R5JS5xY(B`TgTUvKFj#{%&WATP-2S#+ZE8N`gqLb3d>v_G7b`;riIrX*Z4Qhw_C8m|qEYCwz)Pt44L=O{zE=DCcsmo45y=@v z){_U02mg?Rw!cQ#%f#(dE)L{q1WaaR1_U>!dP9LoHJQ2y%D87cAewancsb?q|zoy7G9s_fpm-fSF>btkB9JgMsBlh;`R59W z;k5DH4+G$jRe?+$_w@&mJdv}M)88xTnC+uv7R~qSN38mM1|0N4|I8Sh9Swm=YImL?MzJT`I-CY&2bGF@ ze+A5FX>+DluLdmx2wAXOXVQz3hnhp>GL8`)KN1veb2RV$FU0TuQyJ-ou_3u^_SyHE0`BBWO4k+6y2fv*H z(3@L~qNl7vLM3KtM=e6;xj)s>=6yQRyy928p;Cq9tID=uZ{o(aI*?6CNN1bV%6sMk zYL{Z`xni--=^rD(3?H%y9BBVO(AljTiJ5PHxsW#G*RNKWT5mry!d`TQ-p2rz4nsKy z0&fTNKCI6AH-iRebx$lCW9&^wds@b)xCpUTcDlPQoH2l$``SC8Q|vx40Z_A0SJkXx ziwnhiDR(gXvyU+%E^P{$Qw^dNomup$N7gf z`99)*9V0LYZfOZ07H(&1c1}bmymjs~&{D_#5D3k5DborpXOuz( zVfd522?Lb1&4;D1rwvD&T)v>Ko6i?|Fk5>8mSXA{<(XNrY<#`+SE*zlVRx^FZ&@Xs zM(nWv7=PWisIeY zd9thn``0udhe3RHs;r>e|-ykcl^adBpdFOB>=RaH}BRBvu(28o2rB&)^XNL+pBbT)ea)osJ?>9BlL zx6x_>bHt3lM}g>P_rK><{hzo1@L1$=l_*<&3s;=a#eO6u(AW|=h9gFKrv2$mfdTXIz1g+%5K-~2=3Sl{uXOuz^Oz>bh$OjHaD-KhR!1`*u^%h}dFQDdjm!mzu&UWtfen{0ZT1MeO z6Az4}yzfR-hC)?sZnA_zPY2!ldxtrXIn17&2-*KLWLmFLAzsZ|`< zV(Iem$>6)YZ|~3)MdMSoi^Erlrh3i^B*8->c+aSXoMHKU$j;AZmn&RHzm25)_gT@E zRF1wV3^1ft?H7A3qtF?9rZ2@N_Z*W*7J8xsvV#JkIDs}VHw*H(BGc=Om?0F1b=jpV z(t~MVh*XL)g%4#`m1X!Od^jidtJ&+t&D*OLAoJnVSbL9&B%LmS^{$a|0+b)D#tAPC z%@=UEJ;z5dFF8lvcBDrx{3(xI zh1-NH7ztyoFljK@FCV=^#vNmMp0Cuf;mIDR!lHj)`<#Alsyl87?dXnR5lOAn2x^*^ zwudBIc}9i39mr3Wqa)X9?KeK}d+lk`czEe^UNkjiYeN39byjgwL4*XS3^v687-#k4 zuw|!3Hgs`O=aa&PBps)z61cH^#kbHO97p0cE`l zuz6UGJN;&WXtEW7-wJZ(xCbT2slR93z_hA?)<|MBqNhmIcxx-|rN^gBG+%3;P)wj~ z9{Q8UGd9Y4logg)%DCdUdm>>ua!#Z=O3ssDjoVoME^AZ>fgQa{oo)gyk}rIouttZh zR0Y`0!?4UNI&L`#yZo?hc#v1b*)g^N3}aTSrO^Ff?M2&@dM3#Tk53pyd*0Wj&2TqK zK%-TanlWNG-;>QPxq#@^LFg&oh|y@>iPmLJ2CJ8cR=);SuM5lQ(Z}fV)#J9C@jeJg z!DJjuV#(XL(tX>$H2a?ot2qAYgn<}<7%TeSGhS|!At$9^B>3uKG(b=D{lId*W>SN= zZ=T><2KS@<8HWtyDK1l5|HA({2QVTBM_pCK{I{x&gz#67* zxHoZrd17S>R@3@_#1n`8dk2%1)f)_h1fs%$xoo+T)!n|ZJ_yOr24&T^UyatO1Y9M1 z)&W_F-zGFCcHxq(L?l_>pT(l@XYyQk=TwN|8Q*Slhq*d6gpwo8o!%;KK}T3PP+Uby z2UW&1s2p(?Jtb%uCeL95rk(&y0VqZ) zfp*}T07b*cmMok0XI#5gV@a>OrZ1ipHSloV6!9-t%>bn?zMEbf)uST+W+$nsy9Qrx z4KkVvA`nG1-$RV-DnZgiEEs4)fV#eB&xYY!WzW7V%e=7CtS}9#SWqQntJ1+xiW@N2 zOKaQmxD8Hi+qy>%!ZE|5arNd-i<9`xewhmnUHQ2WV_rVAcoF9cBA--ZEA~n4S9*{i z@r+;+urZ3dY@Th);IhOlu^kab(-GFf@h3HG@k0mjRV>5R$=LOghYx%%CSF7FBcJ!wpeDb*|F z;+bWzu`kqP(l}KnKheW&NS>)_@*f3*WZn-QOoPBJrTPw10kU;7cZ5YYu)h4a)>3^Tp?=< z`{2V-Dfv8*|L)>@HKH0-2eo9e7ciumYgnB_?&7j0y!L1Vm-h@Jbh0(uTnn@s{i73%7Ypl#ztOu~qR5?0P!s`(Qw6!h|K;^z@xWpPbAgUrz5HsBJP={UrI z5ztD)W15*-C}V2#msGAA3x0J%MnkiH)5)ZI7hUEgD=I0Oy1R3k(kMcGq>2^z zrBF~x(^l_)YR}4I)b16Og|Moaf-qMwH`A;t`55lYcH8JofiFT~Z;>fKo@u;W(Az3& zdIDj=*K|NkPb3xVKa$$gSYFYUAvkRQ~$tmUSkv zI_ePOkFgxqK>50mt=j%zR}8MqIeu^gJn>-8DWU6dlR9ARS$|J%Hk{BDd;`9DMn=Z) zOFf62EWo+()7tW6XXND#_J$$Fx!6<00e%+SE7x3@d1`7iCUgFP*PG*((O zH`>3>jCR6jwB*tRaI+Jc&k^ z$@-RBF!gE;HlQwz(Ih>o9JreDo<&Vh)gYdS&|%;h=Y^C7q#1cH{Y! zwI2{T?Q>CCp68S6W<-meW;XqAO)|jpX_$pJSy2EZaE~t2Vmplte#`qq+wb3TE{Nap z%@q}671w-r7tLcIW7$c?jNV8Dzc@T)+1Gs%<>OoWH_GdXBS+gUX)qPCxDaFF4nF}U z2r;ZANq=qbS5B+TLPNav?bxw2>BZ1ZOs^gRAk3zz3}RGAK;$T3(3p~yK{6}emk3m*eR7RrNm z_2pl_kT+&>ax%fgC>8m#=~QM;BUiSPX7xg*BGXT_5Lfqz2QEFnj4BlHmy@N-v)x?_ zDH@l@wP_ch(=7K==d{K3gpFqri2A_7etJ|@3kF<-NX5py(w!4~r+5onQrC&+)E2~uy&0cs>T=$A#dl`ebbQAaH)Cc8S53x<KrCH0Q=6ilLb~EhS$G6)>%_)C*wzEu;*Al#OS#f7yGa zbIKTQlMtIS0jH%09p~m5UPp{=bvIqaW{t{=<%{xC1mw7QmIFWNAy#=6ASEti=jKa< zlHzz~WKU&XE!s$;Eh$zsxat2>|NZ-SP7b`L=Mf@Nv#BlJj2=Y(dRnaO|MD3m#MVO~%tH zNmGnp(+YrdscK_3Kbn9VBN%k*<8A($N@kI&@H}W zEp#=%A>X#ly#Aee0eNU;%OK}J7|QX5-WIG`=Vy{TTP)DDsPJ%}=oe+5w1Yr|kiiCC zF>~x@+IoZuyHY!=CHRfot0$?gF5ej$XEDS7DC>8=eMqV6oQM|X-4W#A;0V|PB8?$6 zN0?1_UnE-MA%=UdPrHT8k%tmUfdKR43e?PY@c$OQNsoE{_%@TK82$%;R=|@Y7}*7; zpc80oq2}i1JajU1`LfIEnB2SponCZZHfjHS0$A{~JnmtCpk>A>Q_VI3Vlctf0%u$V zazj*u27~C8Vk(Lu4=)$qdT-C0om#LOozh^fz-Vx$OUmD7dagSMDL!vppshS;J*FJ4 zUkP%#Lbh{$BaRc+|Eev~Py6Xx=LoAYsq@%(cO_(XYy9HOrOGd)>?N7kvsWIe%yax= zT?G8m(?V@%8dCvS3#Y7PRf^r=7_n|a-WTaLA0JnKPkZ!r08$C~KobnzRyd|~m2$^k z5MYXta(||@Az6=D(Pu4ude;doIcJz-RXR$KNb^`Y(6y!&=xOC2xJO-D?mb(R?oA9| zL+eW)Q6gyHW|Uk4a+~KKl`7%6*phwzPW_(_%iw09Sd<#fuozl^EoOVI1I?B8EE&vG zFW7N&qFE&|WG4I4>@%;guOFPBt8n9RI8H&vNNvRE??DXzSXy4kTYLmaBH!IKeWz9n z6O#gkJ*hxL%NhGs$1!((N{LTA;KZ8|h{doevV>y(TzX=}qkjE|1g}go z0Bpn(l2t7tI-6aSQWp2kM>?M~KPFh5eNf%WrF}XsU!YZ$;isEVK)s&2-xYV5-Wg$I zhTYIuDVGQ^9i4Z|H?J$_MfYzB#lRj0WY{o3FZ$TIqP6h}^|~98+DrHq@Z3agOX(DQ z%}8GW7rrZ`&B6lyKq!^CvV~Tn$#=S3$xVXeFz)Z@QPzPsS;N^zKfPI=Bc)Atb;?*b zy+mO@fT6t1^b=Z%Hw}M(A$dFV?0QBFlIxE@odZ?H{vZs(HLsz@ze!{tBrq?OojPsb z6$UnSJjqzjDyJ zY_neN+{?kaqS)9SSS?yOT?QbN-8Ww`6#e$WP-qhJsMM0#CyHSfPDqHBKZ|L^9~W?G zBSabf`yiTcL;BVvl#-8*r5bK@rs96JP0lt^b%i#;qpHJQQX!+q=l0(0kro4$xo&6V zR=@ZK-K=+1{}ZK5c<)mjopB&3&}+wD$|ZA2_u@E(u=}1^bNp>`%V-(68`^G0v=cNM zys;Pk2sE#ReC!S&zV@DhgN+;DGd)8C*i4Yl*^g=I{ZpyV$hBTe;Cdo!abN}f?B*61#! z#-GTyEv0Hsu!x0MvzDmIC{%xiL?Rw(qERgB9s}`hXC69CX(E~Qi$faBe3^km#D`@D zG!mDeLM8<8_n*4$`>?Tl0EiDD*rXS0NrOfEzMw^239{V}d)3+N5I_6NDhMWD3w6&3 zJ)qJAzIbrmIl}d(LF$MhJHNsx%sg+^7r)b%zurcd_<2jn>EzE7I~ z_tM}<$dM^yd+(8ezOzKE8=#wW{ZuFs5zkGCvcFesJ2^Gq0xPRllNa$a8Z-SoUEYl- z)uaB6&n%S{yzM(DOtOW@ba-R%gJ@jdJczWI$g7ALRku~$L}ur6QV1O{OHZycG>2<# zZ^a&JpBL|yY@;XDs;;09e{-dclM8|sV{VrA$qz@~x>Lo-s}5OT>FXGpK~>*lYOZ_7 z1T=k`8;Tubqbblki{3%{!VI9-vN@T&8iH1_LqhM}^>fdrAb5-3Lmq_o0!6fV)Ou9IEKIhW1W{qO8S-*9iri7YL79Y zJu@M%bQBZ?))&mjLa}twrl@5~A888z6tPEt3?iVd<*R+HK&o=49D!4|>#XiL7xg5549RN3iPULrI(mFUWGIJlkRJx1;gFc> zP$BE`6W)59=FXnzm#eBn_(_sX9rlN^ z#RjJBJUX|LpNtI~uiCkGJjKW~NN5B0NGA;sEF+TqdBN>~%RnfdDaE2=n}UlY>2b`F zQnDhGmXm;KNk?&Cu4TOFc2C3DuALgM`uzxm`Xza_s^?bczLVp&ci^T{BXJZ+2gi%H*%%=0CMyMif3b6>kA+B`fwJQ^Mz zrl0gq2Aaj|=(Vkk4`;}qb2D^K1l&g@t&;v{pC%w78K~4K$1I3e_9Ig+kvu3X9&8QG zx$YkxM!!-Ni-tT%q@a2pPAs zc;0TebwpM?L!FAKEQ*C7JNY+X8R#3X76v0ZN;_SvxHu)PLkOh(8rc%l?|834{@@v` zOMbudgaJ70UoaRrp#?0~zh zh&#n36C3mq*}4QrQk)DG$F2eTN}6@Q)g(#M0g8$KEc(#8X$W4fFt2)r-7tJMI~+EQ zi-xc$sDv&E!7>A%0W;!fy|)+IVAmy(U3ZJee)(EoNb8tS0%`{W5gmw9v56#%eZef#3Q%ouPLle0kWM zXHv;PYeIcMLJb$;YPIOs7OZhXnQ@~^sbI(e0$KjWBfwhF3CGpzOE~x--~m2XV{|2}$|0>2PVSY0EV*Yx67lWp9~e>gI* zzTD6u->!$FL^n9l>mTVVmPs%Jj5fsr)=6@Mz%DCyJ({NnFxQqi37S#a2V<$}=NUR& zg$Kp?0fwfh%qhP;QB*WEqQ-3dQu@GEdJVy~<0J7!K%Vq`Cj+vK-oYg*?K%sI9VmFI zAX}mx3HVIOtZ5YQ(fV1c3t3b0>v#+~H47I?Pn^1z5al?AOcYIjto2bkmInI17(URh zN?xy%WV~!_n%#_n1*O4r;P9yO&e*{XUUV&5ax@{Q{jqH`!qvFu05nHo;0NsBF zr`wIRIwd|Ev%iZ)05c-MAWmhZSI6zI8a?o1v$P?$rs5q#eBXe}-6W2y_bS+4VT9Ca z#mz3w;|#(X!+&@nB@}!sZ@xDeYFT#RDK9GgXc}~+lCCO|4rN3*;$dH z6KynCu9^v;{{MTATJQtR48Xe=&?2 z{;Top1ywFasggr21Y4~+_JP54$Wzy`x$CE?G?qVPb-VGeb^Q*i1WrHnq9KXd`uIFK zP<1AJc~mHQbSdE{B}%Tym-xF~{a(`aF4u!Mx0>mb>feC;^^PoUk6?9r z$pNJof{}_SqCJb$Wdo6_ZWl(YrG29QFUYsMF#jm zWlDUac=5k?ct8mo&+SBf;RZOQpaOB9{gJEtQ0>Ws&%H%~cM{J0cf zU+1eoGvW@^hHXxdpse%Gu*!T=3E(V{!}=`r_-yO^P*7a{Q7C zhgW>2I((*xH+7d^gvS{t*yw7cmyr}WC;Oq6A6?nZR}m!1y^5p1t4W=XvjJ*xXl=Sa z;|9#IR6NQScN9QDMBa5}1_)EhyS#AP^8&9KX^^$W=+H$PyY~Y$sTn@p#{D9fl=SJj8(B{Kt!rpH|a-p#v0=)ev zIgLCaN>zs02fa+_sKWRSjbw6Rzc7rSmAQAxGRJgVRza+SEKTO^uic$x^2sX!zaDin zGw??SIS2;QG_A0)7@z0{L*s0rW$p?+yi{Ilbi+4WKt?*O?RgLn9U%bMF9UP~FE9#Q z_pG6dE$E<-%`Q*?xJYvILK_K?!vG1FAGm` zYG@G`W9k0yro^HnT4gQs?5^JvS9B2>JftnArZL*b6JMByR`yqg>+_;pe!mB{$vk1- zNe>|8;9WjpvC+>HRxg2%uFPjs7`#dFMn|9qDw+EbDAycLDaUuyg@Z<0h2+YkTes?vVjXqJd*>aFU5=# z%}v=6D^byYewphMr1wd^)c)a0_wv*wOPj&QQk~k+gm&)(R0y7^12=%Bkax?K{>{vf z@szuFyZm682NKW2+oXL834voy&5IC6KImoZjPGZ68;8OIp|^S=?#@bDt$JW|Vb#n- z)vuwTld*qodbju?DP z{c}VE?j6hCypO3;5RtRoSQa89Y@z#P%PS#ql4}eLl%k_wJ1y8Q3-*sjsW$)LM zAEkfB1liAc><(kZ#>J5Xr7YunD#&;?aP0m9QX6UfT%nPCd(Zp%VmFW`|Ng@Jqq(V~ zq_l8YVgsIWJw;fri@_#fZ7~5n*N=4XK{?~sW~GxgO=(ruf8u!7KOeWYG75&kq7WN6 zV}M>2=8lXj`6m1<3@wf9R^iprbqIcA=Q5FR=#RBV)20>;74rRvQSHo`ah=$6sq>w~ zXGEyV2v5gMTn;=ER2mZIinv1l<$<6$hM!i9vzI0x~h^AEn<;QN?yBo()B(2nC zoRs^L&eaLh{So?=RwUx8*)!;0jP?!cDpE26Zx!CNkM!+BV`mi`3gHP(llSyev*9E^ zrUm~R9;iP+=e>Mrm4Cm*b)t%f4~dT;rPw@m(vrzNyy}y?7=rA8B#@QS37DLfOmxHK z)^?VfR-h1mA!kJxBtM*#^F&?O?j#ym|KQoS5z!E3uj-@yw0a_``&TuNLf$EA9>wYeb%}Xn5YU z2yEAHaL(%Sk-|!#@7)RiW9yXvnKOhY6D;HBipHDO67zkAkUxh@Kgc254l6M{7Yc8hx>Esy(Yb52 z&b!HnwI-M=EPsV(qyd@ygIf8_d2>iz)myxwm`tKJ9J+}Z2DL_H#2+WFnV+pW9Ocum zO0Kj{5~EAAiyu*Qbm$O^~F&-&i^U$eLtxz=ivj3>E% zObx*5$E&tgD$)Wi41MrD5e4#dK(Y)%I-l;U7H~EzbP7YSlel!$c5RRO}Xt`<5uHyA~lHITmO@z$7zbq&v2c+;hvuU12 z6wypw)i0UD9FM;cP9FR@Y%++Jv%N;Hl5R?OKo#&jwFIKLJf8T1FEP{x?m+S_V;w_t z4zCUKzxDE^uZKkn7IKE}X0Il0IOFSq{@rQ}-OZf~;Mq$zEym@-K+TV7A_$2w1 zI%ViIA0u_zU9WBMBnfna zfY+A&p)xRLb|E{+@9)dXD$U7sp+vbT_;D&w>&fsdn-1H3r@X_I7_Ms_%!i=Zj!_Gz zcZS9Q9U&NGiXTXm&*e)cj($6a8Hi{ho(**rsZ*Cqo9DF+765qKigC&bxWRw+f1|T2 zD1%;A2bDVV%^7zRP?)*;mm{T#nmxmXT#}un2;@aDVihx` zmvIMR^l_}H!*q+eb8+Uo6&sB_qzNYUm0+hcLR6f#6mvKfZ`rPJZAY#mBj-Qgg`1ZH zo^_-`lOOH^uXWR1T+?;YG|2LV$>wYgra^-}h5*+Bhw8kss&IW^;rB_0_36VaG7u92 zrOlMD<2$GL9Lo+Zj-D&x?~~(ZlnQ{QISo2?YJ<1lAvgW-Q2edB=gG7xRwr5jiSn+W z432y$VndeLXGl{lxT^lpwwYuu_4*}uH7n&a~fq`|+2Rwq^o zKH;#z-_C`AGI>QKrc*~C-~CT`XEM){thrGskf4$AHh|Vmw170du^b1u#@_wE2c7%H z0D7O}>1!w!!yc|(jnnb=bo|_P5ytw$jAf1Tu~Fxz+wZk=hQt`|#je22mK5#kQrwVC z3s;f%=bj}4c=b#HSlKGSd>2}_i=`=HTCGzT!~l5U1srLAl2}_`&A6^tM`e1yrwRe2 z%HnW+rzFWfrVK|xkmUkJVi1z0tSw9ky$M&;Xh!uCAs4|VA0=^kv3nMrj-29NTrde@ zup+XJA?MCe>YqW?o6NC!so$Z?kDQ+mpP0TSH@Phv4R#ly1Bpm#tG5ijmulq-RqGd`1Mb>ugO+q}cv|Uq1coc%k;bbr4}|uU zf2^WyApQ#`D{ADl&}Z~y(I+@btYXyw&+GLKGdJt6$uH8XNsee}c})L1M?jIUb7?d5t>J^jT)Q*d4x6;)?S- z3MGBYCa$}1rWO6J@UI6T67f&iOL`1niea>p>~^rK>P-bMw@-wB<8j0;KPrxsoM3`9y+8&R?0!jGxKT!`mqE zN;(_|7Xdx=i!{^2ZhnFLGKyXK%e7;D?gvmXS)`HgX|pHzAp!i*#W6^OZ=M`^-T>G>}XD$2ll8h<`1_+G0CbR*lPQw6>omd1}AtriUie(aj&Rxe&9q zof=8V4LATGo#(L=x5h*Du*Jl~2EWY(VbI#{U>m$FD)z}b3B<$vVlpuU;Z=Eg)Jrh9 z!o){9S=I?@S_J2$P_!WZDLNWGxr^Q}axkY<&_9u$wDt`F{avzUo04%_CInbis>Zw7 zNy$^64@xR#Py685k#n%l#Ss;@ggg1_F`=<&1dz7H_OOem*0!ho-Op5cMWOHT768Tj z&tE3bUt}g9smvXs-9)H+fV%NJH8|sLHHBIAO^1cnhs>&eaA-)adO`g-TaKpjJw(Q} z2PhTk5@BrqjQ$NGWNjzVU{ryqF zXUrgbMok_BAcc|ydO|?j)4q_Hic1v|ss>DX{Wnngr&vH8iZe6q>(}aQ1p3VaZaTas ziE+)yJ6A)ej}=#`1RM*;G`5l{jq?%Xoiw8>mCv892!fU%vX}jcD=7x-sXC5C1UI>A zIIV%=qBz>+h6)t^PI~@+-cI##y$4b53V&0t40UZqo>FjH@u2N0%un@KIz@^zCq(Qi4k|2YYyjv|Ln+jUt zl$sBPEm8ef_-4GXGEgs`Gyit@#;luMuZGft5?etkAcyqf&uEA+fA-F+rbTZbqKfWc zc%*IRD*1l=Ro>l}2loq7oU=x z_R33Dh~s|dfvQ+OK?SLgid7;>@nk!$0(JM3nVSrh+QBq5vXQZW&UvcihEla;Fm{Nkh>4s`M>ODTH2}qF_q8p{GPCyh%^?mG;EK z++-+p#+zo7UN>45KL+md>hH{u$f(x_lZo`TkI*9yWJdPD8err;d-L!bt)EdXpo>+6 z{)*)wE_|Cg`_B$@MYGi1$v zF2*(~y$Mzq$(Q+|%SE(-6?sAjfey(8D!^nqb;_$=u-gG(B_FHny@~2{z%bGcSL5f~ zbkpb@w1-*iaBgOSSFd^W5vGA|noKN`6IU9u?IPLz&juw_LCLq+nNPDI7G`dZB1e=Db?2IKlGpv+nh(lX1tIW#X4na?$=^J!llB&WSS!e@UMO??RKSjsfi^bOsyyUAbnm!Tm5+vJ3peZ{wEU#iQlA_KEKDo6b-^_^80!?T z19f?0fMJ7B+pi2tsqzE(qRRB8JL3Nxv+}pMfSdb!%IpcfEf|;JOtB7oZW9n0W9c{|xhn_} zgs47>N-hZ(#B#gX2r#wH_iJub#Y|u*964+l@S*6L_`-X?)~L zKFwm}J?*PAGuN`K&XKTO-9uh6QkOV{-l8JRq``3z6c|O+Xr-Q$Y0^R#Qk__A^R9-k zt#HoVK8Z>`hv`t*oCn8vtYGHZ~RkkXlq?zG?M54f(@I)hY_bLzwczLt9Yf@}O(wzes`UW>N*4MifaUc*kDy z>91+WhYwdzYu&+x$HFQj0 zFBAnN=8yJ10n_{73r6Trc(P!!wHp?qza-)64EKr;aTXUAe|2^d=^TXc4C@1lR#?4I zg73~UnzV;bp%hra6BRQyTy?+C+K3=xq40I?>dFdhej<_A`0J=HZbwcNLlwkE&vqUk zjRC_h@JUFNcz>3=8_>h((&u7x2@A(fPAX#~!t6-HNm>QU@6d{m^BtVyPJgt4Fan{c z%9p;Q)eh%J3)ShWiKTsQns_(qf%av}*dNK}nn8{Ve?T7#c>Lhw4&@Y*aKt5bU1ZV*92q(Qp7 zq#M4&^Ifk$_~j*@bMAY`T5GTU-N`&D93sfD+iw^GUIf|FxLThkS@?EIRUsjL;uoQV%b z(1tSNnAhrkXb8lO!_6r`(d%0&rVydK!A~@`+D=PLn|sD_kXUsp4ePuwtQ8YvelTn$ z2G`I(LC}#iMf)q}!l_Lle&^_Wi62%Kcy_#!DAdtE3L6O05cNeK7+5K!Mo3FrP_8-s zxW?LcCqS8aQ5g>CF3VhB&tAm|tfiJdoO7mig+hlc^TYLr!7(-C6ISunL^(g}4d3P9 z+ZNt8{N{w`v}5(wazd_-+mH%eI0E}gop?9&e>UBw<0CFVUN%xa0IM!fQ3#Afc`!_2 z!1^*%*@rRZLl-q`Nha1q({a{x24x#pS0W@NB)MK4D0BUP2{oT4wR9BRizorsO2Em5 zJXlXrCwrrSq?-*ZA5T*|MVfqXPCM#tW;n(lcdHmm->*FS`e%-Wx^HM_$L8dr#f%|L z{`wT?jpO8qLO1ZejvsMrgRC9!Sm=)|)WjM2%PhTfuRHPG3qKqLp(ltM=U=`Mz9^JtRA1;iyP zYVrJzhnvcBbKWBsZy(haElg#1YW!p?UGB`tGS{^L!hNrDSkz^3R?AUOIxc}yJ#jA5mtwGk1F43!nvz=dJmo-(q z6fsWB1u4eKq4?$~l@`StP;_;TBIJ@`R#ug)EL0r;G5N8xV>xkOlr&zG0~7|X<74ON zyx!j4qtnwQiNQthLZ_5PcWNQm+`YV@-ePlVn;W8egC7A3zn1RV}(~5sU z!6aNX7a_kj<$Sqg8Ek*imskYQY0yncogwAIkWOsqS*s<3l95s9$4!+YX}^KRa!!zd zXTKh9plQ5yb?w*+$UQr?0Xzp^hk$!$L_h_M(VVfZ#~pX^olke2Pjd?k3rvuKseJtR z`gWGtDc{=5-Vzvp$^+}T5f?2vfUTBYVu+cWpu3^}Jva=8k8J7SAaGX$M{jyFN=VBb zQ=A*9jn@$rvN=MVIABJ?u3u;RaC@PskD{H_gv_d-EcsA(Q6(`SiG$yaXbntjf5}4c zDUQ%U_co!CnDTd(Ed=&6`VwR&Rnr^CCwqJl%>?lZwYG-5PU5xQ^oJxTst6;Za}g(3 zU!nH0>Be27JDWwk<%Wg;AK2etrsh>I&xqXB{&Lu5RHdv%_gbOd!X`fzNcOH#cR0|2$qmjm;=^syEjj-%Yp3ragp9xrBUl;Vfb{x7< zVlMdbU%JlE2XFw{yui!L%P+|uxY`nvf!J`2;y|)D3G73AcaxKo2Z^d;UY4srLfa|% zZFR>F`ro2?R*JqKRubL`{+xCswlR|xsO00(bmRA)C|6zQMP7*~dvHs9B ztqQTGU3l6xA5j{vLP~~BnBxiG3QR{E1%*Hro02_Vak}aJQMkAPk`1bf;4x`i5 z={w>|C_nIbT^fNe_#Q-fc!F0~S6!F2pp0K(@Z@m?#Z6~&pa$#TbmrP6HpR=I6eB?p zB2q%Aw)?odTvAdp`>eh^zr1vJ_*?xh0!wMvV}{^g{**7_C?Y&Z4Klws@uPK-0%uYV z738K~*Fi?{BgIhWMdxGop92;@QH9{YzX-KW%ZTdogGsQnhwFdJsKII2Ipe8>#wI={ zRQkvIkv6m@bEX8~Xs*o{!2C1sExubCbRcA=nne9!t(1GW{#Js4(q=;J^d?R9Z&kp< zJ|3Vb9=`hX`!_aSlD;w~O=0qRDRvHR$QP|XX&ZEel=_la8$WY6{ctK_Q>IW(qW>aP zR&nWQBZg6X#%?IIhG>+VMGCQtsXyIoucQdo$J@Jw-+rMfr0^I~xdW%I13`Si==rAF zvd?MTL*h7d`GGq7lqf`-oaG;V4A`TBH=3Fxhf(hct-9jJCouh#wDKxLWA{cv4jC72 zY7RVvCebIqC9>npbr?|GzJp6U$4Q>y3bT#4402Lq9x~Z3g&mbWf?id5(|uRe4nhArJ_d%@TCoQ5zB| z1VU2&b4Y?|G#kpc8#ii(D(6EW!Hh8#NqLjY{Vu`&8DGDai#(i9NCATenHl_c`s4JO ze_gP=YW*v!X(imd-)~IY$`;xnP;4pyStp4ZjXIs3&Old!zH|IYR?;#n;*d?+2d?BQ z?PmUc9jH}LwTi%YJ_Z+H1x~O8F2kqswygfM9zNmNEsO! z9a0L|8$$1Slg)1Ko0gi-hyNvV(gGo{j@3?`$bv|$clE^rn3?=cBAIZ^@CZFFobkQyEIm%5j0 zRPon}O{^QzR{ARi%_tBx0|UdLu*cEMqk{w6pR2Cx*%K1?+<08 z4bF7mv2Mq{P{@7oC9|AlPmZJRk96U5qu81aWm$XCNc>qMgtu5a1Q8Fxpn5$#QUC2W z$;fVr5WJ)}zny(>1tW?WTsz_R6F%<1+DVHZr&mpONZLVSq|;7ZfMp!qAj3+lt#Ef% zzjz~Wop`_CwVf&M^{*R^>TXb{<8*OgU_g?|5nRAV*M?e@`&f#u6*LF+iAjIAQYz`+ zC0&#jRFjr@yaL@f<E?Ddc$lsVJ#zvm?a#(rGg-6@z; z3X!|$UQx?g|C3=r!|9`+G!^6G;yOF19l>=6{#d$wi=9E*`I^9zosITW zxW{XDn*vEGQlp{_vJCO5wH2g3&T`!26&B;pfREY4G+ff0opCC~C95P8j_ zWZX1>N1^zQzU~J`GOs##B-(D<&do4#Kbv9XC03R6%#?%F9ZHp?#VVo1U%y`I{dmEf z1$`|v>z4IcVgLJHPX7}hz>MdUjHgxY>?p?%qT zXr{fj>TdqGn~N_=FzdjUmX^_p2^USLmtwwTQ`S>AcHKcJy7kstzr{%4^eZnwD*<|- zw--9p0k1$%5C8zYD$}VlzH4Y~Ka4D^Y_X>NEIxp%J}|u+TX}U?vY9vW-#eMKFVGM8PreHU|!@Pl8eJ2}Z2f>6#JVnKFpLj27-E~pIkCMu9s z13T7Vr$nT4! zpvRH5KePykSn^JyMH-g!>D<|&7W==}*VGU-K5)nvHNrAX$c3pE zRF5D&lhwO3ho5?GMFLv%0U8P~10b4r@87>S_Ik!O6lO_+Q#(B0SNNo<3g&brOc;OC}bem-hx z$rxbWh=7HI0II6VLX$lrEYOVT)Fl;QL`ad{neWj1o{LN6LFp{_@rRehm*Zi4IPT%;4NC4^jxh{E*g&c;6 zZ+T*Fckn}O1=rSutBJ;jq6W5T&+-}kkZ_YW!VvKniI`AxO#fi9$P3<b6)BO#0WS$3|}uQFUl5j8m*y7iFqC~O$~zNY`par-Q63>H3aJ9~_e zj}JyaG_cxDu5khX7(S3?FQ(T8evD7-b?b_6wP}@25g7u_5e%~$1~D+8)UGm)0bT@~ zZgm%&1tl4}Yo zs%&lQG9#0U^}#BKiPj;LT89pg_+i>wM`q_T6)F2gk`2HJ#O@rOVq#r_ju26;K1s$5 z^4Y@K;5#j{%LgYleA9fsgI0x42sAVIcJSC_uat7lIQ6`jicc1weANG81?Eh~uFV2& z(=kt2uc~~JFf&Yoa*FV1(c3_SQ&gXc$C`+mZkPW3`$rR!!0Lzc2RnD)fdw|G$7Bko zHPE>onRD6Prz0{1nn)MGq*KH~q~QMxv4<2GLt^(_y$w$B-q8_%4rVwK`QFz2Om~m^ zm3EI!fS3TO)0=f~3;We`mgo{$qz=#rQY`)Pf_utp6qN5-0C&+1VALw!3Uv+;o8ES< z&Og;RwBMsr=^DLxPWKygD*}iqUeH-8sY>wgy(#5l;d__Z*+<7^pd2oNrjsUvLWY1f z(35bUe;LJuSX(deHNH$AlbWA*ra0vguiLM3m9$MNp|&Ue7=1Q&)*2A>XJ|S4$8;)9 zYYr7U_n*g&#E?I!`Z#CLk^jzP$!ptBN=oVzfRsaKn+YLGL;p^<^maQR`{1mZm5SU- zXFS5f8P5sb8;UUPK#n2_ciW%-*4Ri2RGLgAQT^LzOOkIfig}TcZ=2KTe+k5m$YDx9 zoK&fJ!cuZLjt>NO#!Y&s-VY}#Y3a=nOJ28n=G3{eR=Mm>)A z3;nO3yGRh^DY8*#%ri>Yi(Jp6vQg3pbKU=G0la!IcD#o#n6fUM%>ZvJwNxHCFQ>-D zo6$3jG8Ih!r$DsVo}QMLJ8}3B6Tc4%mH7G=RkRB}1$KsdMJO_^#42nizSvN(4s#~U z`Mr-Bw1^0UrrLf{2w4(dSy}lde*i_Pu2og2w?|!ELE_UVWoV;by271w!l}v{`eY+$ zRiOtivMt?&vGny#5-bIj6oL;1y@CzKYL#hM7`1y}ls;#}`OQ?5j?h#e9)Cac&9i+L zypK2hdjR>7>wf+Ax5(p*-y*kuzs1fJ`}b_?0x;~ADITa_v9Ky`GOe42D7xW$#YlwH zy~Nw^R}mSJW%(%>A1_`=AmRn^E0R6}(0P;KaYf^Zh1=RVqbB6s$=$&kjiAjl(n9mb z`t29l_=p}0PQN}MH?7AWgIOAT)TRdKbLa9bMujT*SN-|5};RsO& za4+eboYd5K26{sa&xuwY5P%o*t_Kw;dm8B7PMaHxz0vhAGU}`^D=h0XRKeR(;xvb0 zgDz~M^?UaC0k^_Negc<=^H&GJf+o}~z+H+Cf^O(OYi?lqI#J?1q3QUD?++W9P>RxQ zL^Dzj$wChTAPP$Ff>U!__A!(mwi~(bCP&7;yhJjiLnh=n&n*y(rHwUu+jH*;7N3-) zZc!b1G40IQmd1XkufGA|_!)8P2|LZOl5!t|5j6tiNDV{r2K5+eC=ckTy<~q;4=(c- z6E*)WWaCLUPsWHGyz*E$8GZiI1^9bQ0)Ridoguj?it|Oxp454MPDlHKeC4$m^iic` z%rbw4r9dML2EQ03-iX(far-(kY|Q?0 zutib+F>QHE{cGTxlAuJz;ML*0PAg#3c}xu9KVyp=T{cp9+yX>g)b;&Ajeul2WKE}ckyOew98)3tv{&p4&;eU!X6 z61JE;bQZz_W&{YEHDEtakL8yJpCVRtl7!+-d{8kz8pFqLQt4Vf!Q9pX#4D(OD&4yg zW@>0DmVx>{`4g4*&Nq|8rS`k#?(XhjOeJLn<|2G($smvz!A!~Is3`etjs>@BZ0tJA zDDdXyw+FMe+h0yoVbEWR_d`!fDqeF)LdO5 zoKMSPHX!#gUpUUH#xnbRa(ZIOMt+hW0R@;{o*4^*Zug}QNkRcSTl2m*a_ZsXLGc-b z2bR|)SBbQfFDtllXIBsJrKY5P&5!|*V{18F(@Ozysm+K_>NgiXmPtjXJ;;qhxYY$h zDd|J2M|VfipO$McOIuPRidN-oiM2MIRt5S)NV!b@>2C;Rz9>cTA*Ir1 zt&%jfnR1!|gEAr&5SEiN+s)Nsyn6L2!kV6iYt=r|F!f8bCVXKy#AdBF5=bH z^pOw;i^_wBs&cS=X7@9XkcEWQ>57XJ40hVv-Esx9DgM&Q%B`Y2HqFCj6R;ue6#CC1-j{| zoOa4wwK`e_7)D>@x6sS=L?wYlGONZa|BJH!nxsx)5fNW9>ndUhr4BLE0P&A@Z7mw) zdZ&Vd)|M(uXK0>ZLbG>!)^p-efP!^7A!{pxja9VoOmRY}EK$r%vE@a0qZQ}O1Nr!y z&Ja=^{0nmW+7i#(Bv=(9C#0=^73g}e`)G$yuHRe;>E~)Cz}(U6G5lx0o3k!obzD7A zk(&6{Xe9LR2dCl{Xm`KZ&Ir2-v}Fdr(UI}!`3;`DC15cqDXO86(#)%muCD*xY~U17E%i7EJ>8!P+|cV*lppck(34fjAL!H2 zAe-gk>QzYmNm8exg4pd)myR4t+-&3Jw%pCcO(e$ETZeN;&*9p?kp}B=BeM1leCvop zc=Z`MGODatdeH0rDB~KfwX6;Wmz5y{R{Rj%{QT!NuPW))=v3NP%eUNqLj-jmv`k5G zTUs z-GLbl2zn8i!7Ry8#kTyU@d0_}F7J5!WJ9pR$G@fr3A%dJ11D&oTlZTpelrF@eANm~ z%LrU~{A%%;*Kt3=BpPW)4jtx{DJ&zE^dXi0_KJ4iqU32yN+CxG z!x9`iHd*d}+>wpRdt$k28>^Si%1^f$;bDCk6!@SkiFsqG` ze}Z)?u)Bha54zyNQqaVy!6nm%grKdhwV0GZ1U*_2qvCFDj6wMl{9Gxho_?F>$@pi#gAWdG zfg*qAdOY9DeTp%=E@6_h;@=+K$2-Yzg^dNajo+@GEKbhY05_j=yMR0S3Gajb6VDgn zHqw|~j2z>rUK>qU>Lz)`>U0oolmLs-d(+6H)ZE=L-@tsaXQK_SucSNRIis)bVLHR}Q)mY4HYR_yyC%ovYabt$pB_>HCyn`s7cXA)0A_h| zW=);YY{E$xt6yr4Hj1{})1+U5$bKE=pN4e=y}4xoD4Y-x$cu=;IGArdE?!q)F39^v zWZI5y39xYeo3wn=ScH^F-gR}6!7S1_%w-56&J!7JF~S%bGRR^e%6#=HQ|h(5vhoQ} zWcl4dL#jJ|xh|AuHWIUo=pCZmiH>BO)AdKsS@k#2t`rpcWCL7+zvC=Y4>pIx`c00j zYrbO34>iC`YyqqRU1SnASP;&=&JNbQ1tjn2trT|kAM>#hbSf|>_ls4dbH%)WE=1@q zUf5`6d12QF`mMf-xM=8OUcMh7Y$e^!#z3BziMW` zc*<5yoSQocU>*C`o&gXU<}RV$-MR@CDIXu7Ayx}og|$5nyZwQCT0~7f@wY_rST;_Ah>Wq{T;m6c_Obz|CFN5~J`%C{|UK_@i~$MCq2J9UKUg z#1DG?qZ2(y?MKoOU>(kY6mJ#GloGeQBMDqtpau%Q4|Ac8Jfs;NY@q2Ur8$)eSK^Q6 z><>9|fv~o*i#Vli;YAz$SU=>_yL-vH^XtUNJl3J`*|fqvj*j8OpFt>}SM* z<$L9i5LNHJ2=jj7D=E#0tGLmKoHMz&*uIkexSPFH@3h_ru22#ZgHH`|ex8>ZX832Z znvrCCtx+X4T^d)Po?ymj>R!T{4jjhGFg$_-`q3|0(ucr|ih6K}gqp2fgM*&sqr@(` zOijo_q;kJ2XFfT90Bt{_o!x2{^NVIdKwAI{lcRJ<5Ds_(l(9|g>r_wIjV#H7*8pvZ zo-3+7ZOr=j;rCSMPHkbztzM#-8$>?1qPtrXfK0DL3NyzY@CrctL}1b;M8c_elhHva z<#j(%2;#T{#v888mdu+t6@$@UEgj5^kC%J2t-nfb-&J-H>Lkt*yY9wYy4lJ5EQW$o zX;z#y+9_)kXlZUluu&`+@9&gM*YB_fKcc)hVtp^Y2VoyxgTqpTQ_Rwo|IrHBSxTfN zeV?3~s;5pIa9whrw+mRp8`<;%1(pG_6Konp z169k(fbNpsV|6Hn-^E=X)x*vJAaq>?cttOzIqR-3Lil6MlI#l8GmC;+K|yKn95;;; ztDe9L`G)?9`Gz9pRVMPxF`E0p;IW|dhCEwE63n|J39(!w>5t$#Hh`jm9s?udz|G?l z5_6^HUp4Q-a#XqrtfJyO)H)&I3sX8K?GK{IUL(nDJ{D3wV%Z~G&ds(w3YehZzkh4m z*slKsZu=iqQGh5KfmBoum`O~LS=3iBBF9CU7uZRaky~>a;xVpu}i*+a%|pYAqOIYT-0sFT6Ef^NVb0z8~{2 zW>^s2&D>UmMm*eIeQWFm^{t)xa50(f(WM;Q|nlTQvZ z%lSB8i6*hnZ$Ljz5Ji7w7+d-WoJ5%%cpv*L-`xN{8I_tWFT!uJ#mOyiaS^n*TD55t zOm}^~@!~B#j;4QimPPLf=-kv{9_VAtTk>L$QczH&>v$C<5f%}dW(L)Homl`d>DduQ z^m%?&+s{k1Zf%r3%JdzVP()zGsoN@GQ9^vfetkAeylzfKorF0qs?Sx6yHN#n zVnU##j=RNU|7w8Q=o(5-F(HI!at<>tM1UadY)r92j~bcFfZx6EG1b!v)$+I{Z=rR4 zdI!(wck_Z(N#8QYDtbPloSD()>wfktqC6BAC zV^*th2>~@dyJPa3euE;E&^bClb(%COoq7fx1st@6@3t}=9zW0^2T`M6oB6Tj zOP)QyCkhz!S)>2w6CRaVn+ZA>Otj5va znBV*u=xP%7prp?_#Y&eEQICE0#)Z?@I=2d-Jn~mV)jCFQQ=iaKQ7@6c#KBa;N5eih zk4w$D`@AoOXlvKh0fPlxA|lZMP6#gb_9c8n-gsBA$QBnWpDT0q!~EN2mwH!dbu1h4 zQ4gN@J+M1Hg@vDWn_djos4-GuTqWRsyyUkrXH(U#E=@TVLlM^meueq%AsCTOzR+OGYBI z0$$GN4<~KtoeXl{k^W<6kk+n6n`G>UPSX;CFN$gSP=ZAd4x}M{}m8*4^I&0h^Re0eaQ@ zgA)W?!oBP3>q#JPKRh{8gY$$DjZh((gsjqyRR3ZQgbx4u%TQS|dc`0xT9y5-=SgjH zF45{*vuuc~1$|p@?*7rI8QyUc`}q7#Z-7QXg=X!p3dE>e!{Df(#6_(sY&B(y1{u)O z!ABN-whFmxn76;v$g-%7$Rq!k>vVnZA};b^fwT-xH9Y;e>3kEO_H(uVhFVJI-E_ALwKILa4hW}LX(m6%_T-{Iqim-~fJQejXwb=2~?nH7_0ZWZW0(**Q{sSb<`Q3Eq5~J}A+nje3+R<3zN_70%anYj zXIn=^#8!`h9ypLLo9b|DEnZdjwz0LfwbPJ8H9{UIS5iw`nXTpJPM7tO)P~dEHZ}Sv zbsw9Ytn3@0(gi5b_nU*s{bt-tzCMGnB8N>G(X$6VeWOGfCOvdBS0UJO-VjZa_UIih z7LbcqR#ql~ZyuU$d)V5Rvn7XIoDOl$P@?N%5V6dwA* zAp}I8cDJuEs02&5konGY#STbHysnhC?rGoWQE0xX5~KNxLfhN|gn*|Xji+0aw!Omx z_1+#2&QA&_t!tjML&ld!*7ZX41uqF8UmkS#M$AKqEWbCJ0qW0I_d{p@{r&x(NMhFa z)KRI#Xa*tI#xG`;*tRV^@v&|b^ycL9QMYu?Hu!D-R^Ltl5)mpy2?GOz27vDfm&ynX z`XJNcs;|6^W}GN-J(llL$4li8e1JlV7}<3k2hW}&;MnxNGr^IW^5-DVaT8#~Z_S%v zt_d=!-(vfC`jSThl2y^5v`7weFy7FA5_B1}lEs4=Jpc}gG;nCY;Pka>f(K%SH{aiMq4;fga`-2X z7ac!CtpFe`0H$?I%kuq>&PeG$;PzX7%~yW@mtKo2Gk01vg8tcxsw%EG?JBFygFU@| zc)lYaQ%U|>{M_Uq4RSKdn>&3#yuxPU)Jq(|9@1|IAa)PG#2-)gLDbnJ+knN9BFDcU zL$eo)Xtsi21RSbjcLV~R)>DKu`Yt!_f5N=Hyy{gmlpx1Nw;4ZcfP&WK9@?Weh2k@_ zhpQVA81jF;78A(Xefb_R5$t%M z?{YBvC7aqDa`jbxDOh{xU4_tfLQr{9!gJ+?-;Ck)rM3>>^m82?_b5}1t2 zvDC&mHadzQ78X`*IY#@e|4$sC&KMS2cSbp0|mqU{qvk1j!^ge8r_}4L-v#C>%FCmEX@EhYZT39 z5SN2o+v3<&zDPE@|L2!)xw!-cK1z%TFP+2&ye1XHLXUng z@hD6da0@XH+!RE8DSQAnuhoCa$mrSFpoc*R{%eStO4eTpU^Yb4C>B2e`X`8q$?_Ut zV!Nq&vyz?^hQ+k|k#tPZ(3HhWO*Or)NnH6^0^R}a1m%(r)2vVWr4Oc~_>yTgl8TCk z#w92i-Wx?q8IfW$wU3wR<1waxB0zLmgQBLdGzrIOZ$KYrpfc zY$IT|{Zqw5+Zu6|;2BWrT@iyuXJ_?vt4$@*h6T2}XK<|^-wHx4TU8X|@iv;~Xhx(6 z9rJdbg-GsSzjZdtg_USd74_XMU3CB#d#+wJ0V}y%f|xcU$-VJXQ{6PQzYbAAig3QX za*?;+x=)yus`hPW5R2eJ3&wmgSAAzH*xxl{%E|KIW&&KYHU8f5f;w3@4d)Tla94^$ zD?#;8^-QswIGO&}UV2AkeLbI%VE*~MB2b&4Fr^NWpMiXxr|l)^lhy5Ax%pAq3X+;_ z`3>~zt*4+f(vlH)FJmQVSYNH2ICWM^4#`!7B*WJBO#m-QdTcAD(}4s8`zm@&FcEiW813#$3#+vN$h-7 zO8nvZfboEubvkdSwjal+9>xlUh5<@?9N6L_WO#9e$j{*%2u9`qaMA>C;CxLnjW+7F zpkO*cn$21n7#J7aUx)(l}$X`j1XDoFWh z!pi&R4LmRq0l2Ln1`@!iW@GmaWSuB=x*g}%l+>*D(k#j8;gfIlxSMqov*{T``a|R; zbuK&Zj_y{0NN|-+k@Kwmp08@ZoJ%dKLjvsp$zgAIw?;Fv0#2(x!+{YuM8z(iz0s9g z$%;cNZ^I`>t$CxYq?81lyBL9`YpTy8r~Mk((pFPM$@!Dgu9=B7Q?d^V^ZpqKh~xYv zrbZv>US-T+kO5P3tRELWy77w*#@DsM@t!+D62t=573aw}}uj2lo9 z7i*V&;l#nl2991<*6WQkFQhupG+v}{W^jRwRRwagdQ@9A<<8v)y_6)0zvH4Vq_l2Q z`LdJNeFx8?{C0r%-IkQLWAS;om@)C~CD!>WHADnT0mkekGD82=vzw$j2E0Tc{Wqz~ zN*(!Y2D6_M=qjH(OKNj0P}5<9J-moIW-+u^gk`Y>!ylg-PyYZ`q~mSgYWtC5pG?O5C+q_VbPZ3k>Ud27RFEt zaEw^gwzQ|!u%HJWJac~@|AZ`2s>N?M5`CVIjvtR~K-PdVcO6)z{rB?@uIyqMYslxw z$X_51?ZQ9Yx#r9vUFm!_YJj{Im;g$G<(}WC?lEV+nX9u(G|vqrG%^3tFqf6MDjIAA zdal&dlnRf7usE9j6=v9b3y+>=aU53_ejv~m*H|j1N)`V60Z0f>0&p4-9jGtArAV!G z-=%+Jn{P(qj0Y&(7F#`phdQ(XmO}yC@@6pT40C7meMtcK(1<#(>jwVD{O;wD;XOkUxALx*e2zysq8D83(d1)H*;iLQSEROc*NUaz`t<(q;whZsIlD!bnNF9CnqPX z04#DWXXg3$KIkt&Fiu#7Gb)lHhc|FUfa){>S_Aw3oUlPw@Z`~f;U#qZyj)stra6=x zIq2-f{Cw-)PJjW zQw8QSipKqSeuo`>&tT|c7$9S~p=4%jDrQ)2>>c0+lr5|ai;b99NzdFj_6wp}%< z#D)(g0fJ3Il;OLA<)VCSvAQkK<8a5%YprSqJI(|!D~novgC>g`sNe5AkE-2%cf0^=3n|6YKjUO0Y9COm zdfh(%7Nfh%Lm%8#!8Zk6#O*3kO9uMMCw_K?wqCcqs>1FE5`cOf%4`MI3MoPd<0M3u zw;nc4LS*;8vwg<<=YY9o&ta7)pwu2F+m6ahVL4d}kU+q+WSDFLwqAymohj$stqyI# zoR>rmU0)IFqDAm&^LAG2NzJdBr2`ETzVZw& zZY#7SU$uO^_MDJ@ZA9LuIlXETRGTqB1; z%s3rP)d?^Pn>{!X3;Y?St<5@qDqj`duZud6?LZ>BU)Xa=+V^~gx! z2e|qU;G=Cn2b7HIa=qH0$?j!-LwvGeQJ4Q{!-px8hpGDPyM^r|APfoB0WwCTa?Vj_ z{)@b!SsiVTI31Q`;Ksw4wV{9-#4QpZO{YVP=)h0*rS5LT1b(WRlfX-=DWc@a-n{25PD+d?h-W$%KEu$tec)1)k}l=epiU}nG<=~?Kly%&9Qka$F| z&?E+U@;p zt#BoB;m9#qw1313&z}AcB6BJ##dfA-yAf4=%#6b8EbOZP1#L=_z0JzGc(9lHykqt7j1 zB|F0C(00;S1*k_plA>rk&Q!U@NnamMlIyp7^8r#zmR{(p8Ol87K2! ztOiSR+_1$5_vD=wd9>I3=;Vt1+;ifRjGQl0V?RBfe$+|-t}gfCJyHF);4hSaqng`C za>TrmV@?Huxg>SrCNzM`>~ChFma3;lhTwcdr=qOoiHm9JZB&fxJ=>;in`%YSsSXUj ze9zy|$^hP*o}LZ^Y(n;Z>h)y`V5{9*%0S!);UiXbbcor|wXt$e4x_M{s)7*Q=uUY5 z3fMrv@0jsRVFGfq`h=Xf6|=&MFR1sFA5{E5xa~5Rku?!IX{lnH1;StM^)VP>Nt`%f zOW!ClHeG53=9k@YU8HUFWg8uTHGDVAS!MD;4)2?FHFAzr2upV?;KS+XqN=L8oc%DH zZPX5M8|H9IO+F;(Fi4Y?dWf;c=NU;2OFA6}W`ibXu7H=CIOT$kpZMJ|rFkD1{8)W;)`ZYC{accj9wD((}2Bsm<`KSPcwOuq_F5G2MD9Q%suZ47I>iFC zr23J|a=q^fnhiO&I)E?AC?`$S+0&nxxiN%`+trrBRScxexoX-_&!OPDd24sp9v`U9T>2g z#5OEx4(=s7w)S7dC`gphYn1s6v*Xih;-rM&zXA#I11oB7kf^S^EGA^Mo@YBd;6t0P zPkq0z>PUjUdR)HbXXpf+9Vgm#0a?>ZpyOEaS5J4s&{6{5$(adhXF48^5?N=ZhR1@v zrcz7(+BS>GP&62ij>;@yRk`!63riBIF#?#dw>2!j(z#|{StsqWk46-=Ik9G3!D)u&j^U!bZNlI zuYYWvc>#xzCdIzlkl%n!1*O^zhFA_OF=J`z>|EwnU)d8B1FfXnGTksZ>mZ#fTV!Tt zZiOrZ|18kDDt`gKAW{=%C?aO)==~(H^KKaVF#Sy;gSy=7=37N^gK>(~RvXjP8oT$jj zy8-AKlw-(2NvU6_jPz|c3|2B(mu2L&>a}u=aj(xJO*ow{@zO4{w1Q1S27wUa?7Y<~ zFZ{SZ_Ypx$CtrNL2ZLx~>>edaKrZV8j5Xo4-xVS|nnW%C*H$=@a;iTdl=R^D*CS*b z)L?y46Xlt48Ex)5A&{dP%stmrg7YcG%<{Itbqn|kH>m+PsWbLKR*zxz$Cco1?!qXb z|Cf*y7A3xX1*losX8{%HZKkltqpU2+MSb$sOWIv}BeI`IcD8*PdHx^nUw*zlJUFOp z;0KI5(?U%PU|gnUx@_sa{w5|=z&f`KMCPMDFQ?&*j*rW_y+bms#8EOxZB35rX2=GN z#9e?22GAPo)>*3mKGJ~6w6ZL0f7Ymt7$)tT!Us-2yTT;!qGV+u6GA|+17MRF9BeVi zDeE5hP?}B-D@b22>E*!7M)c|g_~hz0f@HO)bfo6I9JrfvX~XyH)eTk` zle@JMEK-i2z^6nANtIMp3Ta?=%dqELwAdW(Z0$<r`~nA*h#u~2u6 zM7F4VcrU+-QQYQfu%rf!@ZEq9^CC)iUQ$nD6i@PWI)^E~HS}4=e!Dj!gfRF6=5Jt6 ziDBi{qe#xPDp~P8)y&hnS_*y434p!Yy#dvRjp2uU6#=W?ZUiHVHV5`#<7_HrQX|(f za@b(sN3pZCS>Qd3Mc^A+1?Te#S-{!4@Jl9?g*cp(Z?LpFVNigl$Z2h*grEbSSMLGr z5>yR9{I!2)-Wggo?e+F5vff;&kL&hzr{E(38XQzcU@O3TM@M|12x2526=DVf(|M3@ zYF)r9_)yB-g+pDJO|Lcz)qR-9PHxr4sI0DYa`W)WYi$+g;#4S0w(#0&^Ohiyphswn z7OZwTIcAw5YZk+Z%hYw+q>jl<4gM^i^%3u6$kNTTBfGzq_F`(l7d0BlpywAC^~fpB z88)V?B6kc!Ks^!vc#%(kyYr(Wy%&8qqEpa9%Xo}V#1la<+g7nr&da{&&n zUuBKLFL5fzpEm{mMkl9D`s9>NPf?s5ox-*>0Qcrum{xE_W&sRkuW`VC5U!X;R zA>L%~2uV+5IKNx56}^;J(^~?ma8lr#sSX?NFZl0?v#FXPyl@JvF%Wq*_oT!Sc6!ID zD#c4b`--rFi*-c(4#}in+s>-#;fBlRhUW6!_>J|%Hd1>te^sMC=`jBX<4(W{eU;BSJIdy$?PXS+N)xbqHu#&^|&&&zgl8bkn)5TxUg&p=J zz*7Fa-Tun6{BY!9QVTc)X^F&ItduA`c%SV$d-z?Qd|44^l`8qV)Mi2u-(FQ7eUR15 zF|c)$>r{KIyy5Zs&}-=;L-SZ+bCcp@;$F&~N6b4B+-2Pi-iEvJ$^3fx=a&cU=>VvF zEX+FNH*jE$PPOeUH_(#tWsasRvs6a9@yXvFWc;;UsKner3S{kE;4IqaQ9lzYaj4PI za_yR?mf94s$o)3krFgdLBXE>15C|9$O$NY1U&O0+^EWdl6H@^+wQ5%Rgq8O=zI1Q? z5KhBJ_d$IQ@aRT2>-N0&zCA7DoAwue5a8kHm$GnnY2 zE~a;N=EA_u=(qnz(^W@B-F$sQT0o>bB&3Ch?(UNAMH-|_8l*dgmF|ue5J_1|y1To( zJKpd9&UrmY{}X2S&fK|k?f zfAmo3?wTaU?b-_jSR8dYZ-6VB%`g~8z`vD^y2S|kwB*q3@Zj)_FOtBSO@KZ~iMz+c z36a^~z=3NcFm~)B;MaZ4O6Zj9!0t0Ys1k6|&oDY)W7hj$1Y6+`_zpzVsW}};TgzkK(>)~!Xy{4vyLrGPYvVK46 zegX|i7pSU$YO9WCnocP}ITE-a&|-U)pA&D}r=7@BX3w~JKwZ`r5;yL0wAerJzEqo!26V`pNj*dE>{-%Q13z=#VD>X+2F+?W54L|5Zk|ZMKrEP1blS#fhjlu1 zRn3yb_;F!2TeV0>R zt5W^M`@v?uV?qc{;^P?I+EQ?ercSz*aYMFvs0x-FesxY6s6_a~KAfTV*at8BeXc}o zqH_;+yXop}S($^iZs|9%|4|SB)c+B}eY{KvV(#vuyEc+A7VEp%v#S%~?QvwOrhj@6 z%l>-ar7TB#PMTaSitTR}&K1JS%>^fhh=>gp!FYVIB}4qR);P$8c6D}J_-Alnc-~PT z{lX^LEbG zM8ttB>CU~|qNq2=!WScI+QZXWp3jQp2bqN!p}0z9BgBYnQwPICg|<(C8ZKI~+SBSB z|7XD$=PgBMkw2W5N}AeF)!$RKe!IUl#Cf%Bo8%)8u1XOnLBaSMd8&6eckW?h(EkT6 z6xnD2dkHtVZpbS;Ss+e%q7Y~oWT}Rl%`gKnMyB=W7Re;BDT5i?9D=aZ_K*+;p>;JwOJHx)_%Ngd7P|I_dy?>e#5tMh|(L;d%0v~7H&pP;=Q@& zw%A;sox3*O*98Xzm!VoTcKmhfKqAcCZ$>Ve@9y!+gJyy#0~JUz3@v(|@1NutYXB6F zGW2PiebjR!lEEL*A_?IppTz^7*De9+O9t<{`l>%R#U{NZj?DK@1DT=V6jo{L~ zzt-f6yXcoMX3ss`D|BaeHg7|m7Sb_(f~=n8pKMdsBN6m^$xUpWq*c*eY$p=$&=>1L z?N1lzvtKfbwmm&4TC~Yo5Ba_bVDd7DI^pmm5;kHWAoXG zP25dUU264xLQJnBin%dI3uhPntBs6~avM-LazHCmkq4!EM_gv;fM2YYTW&;A5|lLp7O>+`gR+-WR+8m&qUa)kf+~rZL^esncqY!%|T8 zpEiPC!xNT1v`(GB2U=FJv1&?%A zUR!4A-`1=4r4(x8nA=^-kQlic&*lyi8Yh(pYQ*EhcY`x4#-t6GvT29MPK!TJrXV31 zvtTml{+JM0-`Vc%kUbjV<>pgY6BiFdHm-rMPJyp&0%2B&9U0mf7eu?|-k8YGkx$6V z2XkO5wtaP%ffthxyRmb7wzROWYGRuHYi2@)@uz&O`DF>9{s#qoOQRP$jDTjH)LbNe-3;KU4c*|*8 zdBVf$E1Mq|@V(;Yzpw2vbB)HiY`y;oYMz-ZoTwpCW5QZp$D9@ah+ba#=j6e{f+Sh2 z?$j{qAj?tSr+#XcMO3BD*M40}zBZ1u-NoK|R|@6b#*RLc0DJuO>Q95WxoTovDE9BB zvEWsHQ}?j>O=G4t+Js~^M&*&CM|@{iBng!>R9!Y@M#U1^UyC@?W0Vr^`}Xe3Zol~V2GRFFlai)H<)3x0QGntPud#qbMQwhmV)wk`BBzz+=ML%YbH?$ z)g)eV^@!IcvG3EHixJbQn02u-#R#zCzJUd|bFeKjZ-jY>x+wZSwim)p2&&c9?&juP z^n90FbLNG%z6wSJA%2jj@*F^V2NKXMp{~H^vMg3x zex|i82(~^1MYg#cP+dq{eHlMzVjPVLu*awfbb3vxr$n`jQCqJJZHNaYAwSnI>1D*Q z-ZB0{IP9wQzn4h3`NGh&gTE3#Pf0ckH|7Q}w@7{rVHsWFsp_R8m_g;y&r(zgp*?Jb zhcy7yXi!K*@)5b0n0*x0KS(apR*MUoV0L$p3T9B`>W0TC|E6dlLHkN?u1XTdJ`>2# zH`FaN*>|-j$I4DPC8j6Fr*`4eAXQGL=5=S{?AcE887C}IQ8#1N@7}3o z-4Lxw4*Lh)vbcrYu`JTMn4Yv-e+5#m^>euZw?7w=S$kADMr8`YC@;L8HhFS$fjjZ1 zZ(nH`wuGj;=+(aFyTjwC6R@?tS=-3?Q);Y} zuuiCwMKxE18-8j>Er&w(c#Um{+#Acq1KFiIs_9vfgZCFjkN&}s@FZ)-t{-3r`1YT8csy+3S?sfnlH)(m5SazX zBJy?n_rs|$FjOJeF=Z(^&|_Ce%6+i>qR8h)XP}O)Q&6n_wwG%E>+cy6MwBtmQ<9Gp z9fneY!_6xQw(W3g2x?M%5wz73?15K(^n4{tY@XYKtF zTSS5Q1Y*wNMU34jFR~7ntZRhUte}BLyq#I`$b^s%<`ELNjKHxw9Tjmj*9ZF7`d%~7 z$y+(9F&z7R+rdo+Jq+Ye$Z@C5{(DkyHV7l==jLp4Qu#N*imFCW>7j7MC8p{ITHyke zGdBoQK8Y@c*{y!Rh)X9lDMez+9#19QUq{pgxP>DZ5}!+B$zwlp-ojD^n2{FW6CPI{b-PX<8GpJqYfNiD=fw4EZe5jx2%Nto}Q0Nzt?f>Bfc-!-OAMfV`m}Oi_9D z-&{GI2U13)Hn-`6BEv4xn7Z>tBwYmqMaK|&snu8Y{NUznysHpJ29AVeQB-(slt7gb zstU2e6)nojjvlcT+^1i>9c^P8p%SQoYbrfqge!tzH_B%?@&TjZ6rn(3>W~#5EqsZy zX1kBygg@DwRlb%F#QPVoDwQxChn2_Mco;F%2Nm8ZcM$Z66{Faz>&(1}QnMIv8Xns$ zu-f-V5MXkrFrae{2g(d&K)lVKoZ8-DjuEIvJcK3Q)Hrt~8OqyK^tICys)G!ZBz4AR z4x}F6m3`O+T)e@Ga$+?n_Q^5me)$X=*@DwuJ5Zr6_g(ipjy)ota)%~ zj>u}t3hhJ2|KS|Z5`6q1WV@lR$2OE}D~9nj$)9>w^olTdS(P1(i0>%2!R_9$ zSpKfldI1pmbQ%($;Xu(1m7vBkP95s;lm<4*bDzM3f~Vx z6f?87w%%|BMs&gG@ATjzzgY_ZN`lvhI8|H;0u^<`^_INnde5kk%hms50p2PcS&6PF*TXARE13KRBGSBZB*sJ(35C+Jy|t-w z6ywoCbO_J5E$Bk%{CL{Y&7bmI+1FL$6(0<=d!@x}-kR^%Zo3-m=n#g5hpRdSYOxTE z&(5MywFLye_bM@!R>YT}r<%3lo6X_=GAbrrlznbPZ*bA8(@AFN+%HFA&Q2f^s72!|Sft?#=K}xfHkYJ|r$G5+;aBP3 zTZPV4)AR4Y@LfUy$(UhB|4Wi=(ShCWZmA+D6pDQgUt0s0+t#UNN#oH=}$_p6nYwi%AWks0Js>E*A zb5Aya4AybnKR95zYe%z(h=^{xG&MV|cOu2Pzz6mK_GNJ}x@R$~q5+MX#R&SaVPipldevD+^)|e1z*D$ccsJx7K3pA@g)}_+p@yLV zZpNH9cQdDmO>gs3yCs-nIW6bMi-)!L)O>*I=jT_d$<&KyPW~S(q5$6>9q74v zk@A_ibJl^SWSCur=WNliQabU(;>H2}Vw$BsB^-|vqf_r$EnreqRsEKmUnc^fFiT%+?QQ|b51eukVSpWEecuXs3t#aT8Qkt!&c|k&Z9(F2z z=m@Q$@8)k?cZDIRdwXMRjVT_-c9Vd7C)xeeuIOuEjN%qk1oD2=kJ@|`yH1GBq^$`T zlkYIL{p9a}fxTR5l@#%lDo4LVp!3P#hVJ1HV5Tv`OwaR*ab z^zs*^mjwBonM z%RWH!HXkhy{`9cqD?oN5*ZPa?db0sy9dZ!dyy`gvFD@2&suisk`H zoo*kB0WA;A6Q)fZ@L*3diu*GSD*Cb9Q-8!h)W~_53fHO9=SH$Pt8RNZ$WlyY>3>!qQO(0l%N7MV6GwpB zk4}&j@5=>1YB%Wn;XyIq{WWx|S0>F}c;LuS9Z9iL#_a`=`tlkEVmU8L>N^M! z0Y5U)Q?dj4u1TFKlf7IP;hjVh8mrsdS2nswlS^i_j50UAc6qhZo>suj9ROy}D7rN% zvNf46j${e)BJKgB<=areuLb&8L$4F^V{Z^OEJp6sCGQut+p*XdD$ny{u;^VdHUOLR zMX-H=05Ta_fSS+noDjh}QthAuOobP-*5>J97P@i^2>yINtmiSlR1-xHocL;Sw@2ru zuokR~*F^HLy!yQS6*lMUeJ~^V3 z=9#fCA9~^35BkT#KIkKm;2Lm4-yu&((Z-b_QuXJNqP3T-@+Z2-wOOZcuP@KxFGr&WZM%`n8`7o;NgzgoU zHOr~0q!hCRXq*!63jmo&$a_Z5stRe$50EM~{+}QhD|I(Ztvs)k;@qIj14*6b!br3R znjRVaC%0bmZ-(vwI?kc_tP_J5qFY0A2Uml4A3gAhAz+^H)Kp;4Da9RlYyRI#-Vw?7{hu6#w!?s z4dr1bTXDK-VaDe!hiOUS2}6L=U^ajuy2gWp9ox%)grHW;G!fBTz$z#nN_%JmmrC_@ z7jo*UEP|#x&JzmPsAK={Vf#Uju2^g57KqTQFVpTf7Z;Z+0I=8`G2q)z2hRKpTNbQ& zne#slOyPR}YmylpOOh`o@sPauja+PN3Lr4RH5A|kfbd8MDp&KJw|YzfT=6h0XVUnc z?2Q-H4N!Q1y!VS{MQ@u%pa0Ut)G6%f*+BfqcdqE9E`yPRc&&IPIj=ulhniqwW1Ibp z!f*0*kbINLFgx+cUMdU8S(Z8_B}q|_TMBr6rfh?Kn=#U^>U|nYGiq4?DEpig094Vy zHSXm{|H*V6;m@E5csk#016Cb?+s;C*DxkSYKOnz7qUTy1KE=?_LA5BDm> zkf%C?0rj_AFGmLXG06Hc*O@y9$uX#b)&P$i@MDe;YD<@UVo7yG0i_SefD_joA1N?w zvkkzMuo2+uxxdaR9Rcov2Fr5HF8_VWPsW)fBg zLO;~P!Tl{6T4F9gNN*3*@3jOy%mD)A9k6eiA0|P<3Z&|w59e($FMP#Q>u1p{>0BF$r*qj?K`geZ2zp3r>(2j+>}Mk}J3ZSpEcpq><*HZ#Xc5_efz0a;J4y=InG#Vr0y#;h z7y|!3j3cYFf`^c8(}ti2jCu!J{Qoqg!5q`fO4qpq8!76hfG+qXpp^Y{1@Mwt00y6y zyOO}3xNCquALn$uXZ3S@dwC4Z%+;YQAH0rljVkFWA z3V+t@^n3wM@7BX1M06LRo7cfcI~eXZ766#-3OE*eSqqMOkk+Gn&TCUo$xG6OJvf+} zxdwo)%7Hmg9>7+;2(0?|DU4HoII&WmxXAqQUFY7!0U6FkRs6;Xl{cr5$+PLo@ryqI zo#U@}*&Zl^@njJLdtjW3Q^pG}=3@wrJ06KS_ROvBe&3}#0MG4(6pegN9A=4*-MAEe zZlh;lkOd?cN0=J`6!u9Oz~WuU0Nr)2Dqd803s7{v2;lsRcMBYdUb$i`>Ykg^U1h_a z@v#>Zy|pzlfrC@k>Bmm54$qZgcj{{gf`S6} zW|#tU1lS(PM)LsNfC!vCs0R>o`(Kv?_eq2@LGtbSmd{^my-{Dw-);Gyk5VszyF(_u?o0JdY@VDqcZ z_aMy#5EU{3sGKsNvOe0t=caKc)btCq=9CQ{EjxD|xV|OsAX%-m8XX3<#cT@jm?1sY z(q_BQ&`Jp{k((J%DbWZ3Msq8g#?OHlFUVg`<@JJM42_%t=9^K$>G8P*e;T6;>mAX5YGT?^ce^U zsE1QozrsZB?12^6gF*iHA!;~^jppV@fV6b02Q1nEf0m6u#Z$5$!VuC9ybsRwtg?#a zXAGRkQ7+qLLv5}A728JJ(QIMh*fqHX9X9lx72EMhm!Vp{b)0T{u6b<;{06WFow~v> z%?$q75krq^2UCGtte(r`pOq{5{7p!UuiCe4+p|r8OATADoEuk+J9qmAbGmBDD?gqn5C8TVY>Pq5Xra0Khr|C|f39zH|`g zX#ybwo`0scwo!B+SK!c7bab8%_Ox&ZCc*Q{?q(7=mB8`4{dUrPSj}8gT--DG(Sp6q zRy4}I%C=$g8fN=yZ>~`JHw33N+;7GEunG+5vpnlm0p*kWt&U9O^VA`ocpS@^YPzrb z22i0&SK@uAxk>mfyErWS%WZxv|LW4TmkUDasSz=_wYAj;WWQoqHu46_-zuQ^vVe~= zM56{0iW#=Z-5Ne{%ZY$qgHGJmFzH^Ofbfg~;i9 z2Q(?XUIDUfs>^Ya172P;^}YIAcLhod3-sydhA>!xWwPAt-UT$oV*NL^QB$dPl7#5k zFT1AdWbI$mO{UZHN+^IfXK}#SOFte}}U~N~!TWE(kp$*1A7Ax%+es`aOVCuXkZV z0iHqHF!H_u0P*<<)Yr3#>TyCqHBNX6B)g^le)-+nv$7si1;eKC@$o!XgFlt&85tGA zKtyECZw~Ts^4Ppq{U49PE8kZAzyRO9*75TWC#f#`;f>q$_QJy}uCem3LK@w;MY>u8 zR2OU-I+S#iFH|p5+21f$CWWCumA2{X>be2DpimCRWe;3+Q91qq4Tiy+qj^_Y5|wXK zcjJ5?Y0eF7{2XXRjPCy9pa5WVb+l=1{RYrRM>--8P?>NAtXyMo8C0&^(ted>ERn_{ z%gEF+(B4thiHTRf^Qy1Cz{_RBfp=0Cr~wbc9E6Ypfd)-X4(!Lmw<26@#=<%znK0+8 zAmF@@t1W9Paj|6`-2pBWuROG0CoM=eBT@Jc+8-ct-07^6>DBv8n z%1~tIfBY5nh=26oZ(G=T7y&M1!{2}@(0I973e(rm`~n1w_R7l2v5vq)hLtlsUPK|R zjefWl9sR~0Z@dB*094v?c|VeyOiX&2F>;}Df&6$O2ni>OX~RB{T>lOyn2s8(x%16n z`sGnvxBMMv7Es~HOd~3kz$wWwmH=GbR3qLM&&|{y4<&+H;D2=5^Mv@~9N5(OPSxa` zekC`f#Ox=&wt^OeHhR$qFyD_SpkZa`1(f4McUuQ;YpmtFw*|AEfCXCKFy(!pEMVnU z9P$nqt{5Q605SP5`BBSpe)yx7NWgz+{n-l?!Z$z#Cwa5h;CWf5`J4XZZ;ye(h*-x5=Qw0;u5weKiwu!bQ!%~wxTAUiW(lkA-J1mR0#G3oGzMaD_mVHfYh zickkw>FyBNjE;PBNfScpLoXq}lrF@+0 z_3%3jrd)d0*+u8ww&z3KxwrU-CaGw$ySsZ2_Mx|7(i~qHi@fUN)u8D=4!CvCR$f0& z50<%uG_fCQdJ+75lLWQYURxfnR^xSWx3&`x9>;*>WToDpa?(IaJLt&pXUr76YB3F9 zb2bATxB=FhI0Ouz!U4vD@!bQ3N}QVLvx27OvgmW6g(;`?!yEb7$N`OAPSP^bXxv#V z>yBcQ9^*5YP|JYHG*I%G|AYNQD(-^bZ_wo z4d)_zD|J(O;pzrvO0aCX-0Q)o-!c9gXW1k7*N-r&=L|WYQ?B5rPiif|x_Fh8mATCt zedtI{TU@%EPdQ1FHj!j*TB;yI)Gy+`kaOb4 z-htN<;fjCJ>W0NYyX&9Uw;cpbtE(+Y5YUPFD7y{}LoW$)W`fG2eh17nvdIc*_)X&~ zMO2S<(w>(nAr+7|@7b5v-PgbJmk&1pX98 zW4Z5-dzKw{AKOn>j!UDSS*2tjJQyFF#_nnzlP2VS_*v5OR&RVwMa9^G%smazmeH?z zs5%f{-cms-2p;i7O;_UYM(1&pWhcI24W<8Nk(ffqrgiXuZa`Nw#oDQu!X`zt7ZfLl zNS(`uqksy333gRZ%Y4TX@g>)SU$Q;1)cA~m)m!CNGJ9pevjQ5vb#eK0Bl%O}`EEP9 z&-=3x7Bj;tu-uk&gb*&9_jGlllOk}aS%eOUyzr;{KS2%wH;>mA>jQ+b7_*Lj1mmt8 z6MMM)3#qFj`&~`Xa&x51u4J_Mj_hTQP@2Mi(y4S&j$d%sNMpc5(I@L8+?8|Y!z9_7{Yd}1fmi38)AcyEIj>(pk#Drd?0`2IPpCn$OJlvk5i z#`pQgls5LOq(UUDvlaBeg@@7TM%mezZqF7$Kbk)ta9`7zZqeOp5!Fb`~uAv?ygkO(uU}&K+FO7AU!MZEot?qP=dKsTgr=`i<;EsArQ8{PI zvnxRUd({hLxd~USB=jFRr>E03zTkOBjwp9F4~`5#ETV z)^DzB3nPM#rZ4?D`94=p`kN9aCc|k&0=s|bGiONOAqJPm zvPs+b-`VtL2tcuDFR}X*4x&Ryo0A;oSMgd)406nNCA&if2|uXdfvjU1FSYtI9Y@_r zySloDfkTKhw}-z?vcrLy`FH2Y6Czb%6|{}*Ya(%lY1ynFXZ=00IFyIYq3)1DPa&ni z?xHt*kWyE z8WzeB5Oh-0m5}9eIiO0tG3PSz@BH{8A?tF{cUu4M(CWjf0{es=yp&e`u<)$?I- zF!rIyl0+HH68#SRHeKI!wBIY9#LJtqoJrF*R@9`ER)p59^oKEUoWc%Vb;0`NrcQ4V zD|k( zu8z|1(Is1R)oev&e0q2>fbReiv(adVQiMIozS}G%SKIs{0rYLiLyai~Sle!d;sS0V zpI)~Ltp8rTZDxqG%t&6zl`EMLLXcShzPdNc#M?av`Fl&g09LFy+8i)5;ziJ9r=gXBF*BM~8npOYKjanwb~ySqwiJ)kc)z|3>@e9N>)^>8M)xUV`bZw(&AK-o+Q)oN>lu&W@R2gz5Y3%U@OV-ElHrX2L!9Xgp=fta_=_Mx&MUrv zESAI{gFtWk%*%A^i3ER4Y`H~kdcG`$%f?AIa{~#Fg?G`HKSgh_c5?j4dZD+xL`%LD zG7u=n2SQ^c4k40%%Dr)MTI2WmsQ9wz3y!TpO*tYVCri%SVY=@TgMn@pQPWXZDNc~q zj|U5DI0~P~s#)ia-q(nk!%;Br$h*>5Wz+rRS6tfy+@`v}4rD-DdcXR_(kzQ*dU8(r z<-}@L`mlX)Z-hejwwt5xAAfGe3Z3EyjXqpI#;Uq6I9plYeg7S`=*bQMXpV4w++`Jy z`_C--b)TX~)*Cophen-`9s^=Kly`w9+3LSOy4h{E$eg45YxebDq?S0wbEn9sM;t@P z&kn2R>={z7M3RE5;oq+fK9kzfuBR-sSq3~QXWsSmes{PhM4e@@{N%Z#5^j<;gcmim zO9q_n}*;HoNXQuKmudW_^P~R5-}`FJmq_2l1P~h zC5m40Z#W7O#Hzw>79nOQ=K&o+>`(|m{vem{jdET3?O={G4)$};B`1A1| z`_t0ltOWeJ~SVk$H@pjj#)lXurTw5m(cCw4`BHzqA@yIVbLk_H~@6c zb(rSVc&=kj?x_$u?`I`^4w9qG`7&_4Z29Q4Ut}smsGG%UXd*dpf{N^n2vLTvj3bL;X1H3#*gXW-UXI&2QM2`X(3iU)=9;TwpW&je{2B#$>VlM{^0lh; z0Z(VY$gp1n=|5+~X^W%|r>>ps!X#A`ewdfBo?CvjCJS4^w`Q9zFz$^C+pxYd0U7 zDI9kXdiswb$A_$I7fPuZunYh8r15HMlpXvK3HHC0Pj!%OF5zYo$XU1w*=aaE&>?U% zWjZ}8tjDP|(9S_b)RU$MG>*sLRpS|*gty(|@#n)4nQ)87|Cr@X+ka93qx$irKZY!a zTqzxxwIJ_*4X?nqW>5b7x4MV1uX9${s8zm-<0yL&Bhr-Df8Dp?Giw<}`sU3G;rPlc zXLFRHeBe-+QRq&}_(W1Kp62h$GG=oT+uYuvb9FiaS?rDOE>LgA>wQ2^BJ>#}xBlH# zhfo04CS0-DWJLijLI@`oXvPH0I@%8sNV5fujjW4IPhh?`Jx)he6R!gV*a-v-40; zTFyLStg;-$cb9fL;|L!ziFLl!sF;Yw~qHI>jsW|MDTECYj>g{CTygfan z?WOZ=H79$T-T39M(QlM8)!>sOK^h{8`af&m(mljIiF6jP)s99%w)aO>5-~y1 zR|lhaWLoD3E@5gI8ycS-tOzqf_&^!wbd>Rm7%uXfGv<9yyvap0|L_Sa&vT`@Hob*E z?-x~hWU&LrWe?&7g8<@yag+$5p#}PYzQyRo&D5XGEUV*$6b2bhNzTx-2_6Y7yF|0a z!Idfv5F5^f)chCg?+@-8eW&v_$Y4=ZA@UbkPr&&#%A3zMMYqE2^7%a}-9C5N@_z8K`q`?m8PYUnxW! zqBD!m1SELp4bTgGIP?NE?tSdl=gbdO~8qZ1&Mvx%&BRH)NPv4ZhK9oC2e!j(&HMC{_OG_>r%sjiAjZheOQY03er-nWLQ-1=^zq9zFg5*QCw6!F?X)s*8e zkXJC9@)e*1jo*^6cMDl*q>X)#+<>jX|KuO)D)m^;iBXL5UuV)!!TEokb1itC&=&n9!bvS+y znUOFbXU1t)Jm5Tn_I0uR_{?NVgT^@NB{R|rwmJA|`NK-ul>J3mnt;7b@u9>k>9^A2 z*<#o`{(#SK%#q(v(ZQ}1Ag-&Q9`_o)doT+aXWrr~7!rruX|*3R#7(*0=iw!@Yp0qH z_M1S`NP)&>-&Cif`~x(cIyhG!q1B^ut8U!wKX z(-J;Tme2dI7Q5+FJg(@S0oil-Xr9kqRokfJkVp^^O9j}2pL2Q@HSAp1e=I--nX=VF zMo#WMW_8p_99NP>`Vi!dbnxr;2Ojr~9)A#lGEqRC&64{TCVV92YrYX{40{io4pu zSpU7ItlV+GJ%D_+TPuQX!g-m^6*g?{k9-MWKy+SDDl4;Y*~HDH%S#5 zg#`>BuIYk`py6@XYyWM42QVjj47r_q;3t|;%VWxua8zjaWSG(j;RcP+c~k6$L29`5s?F}ylupfy)5 zm~WPp9y=d7LSLKkll`6Vl>f#Zec>_KpO~0&&-Wy| z`M2b2dStxnEi;Rz5d^fak`<{@Bq&|C{ep*6w$EHtv~4HMjRrpH#q9ql%oYmvO+U?s zwyVU?_^oGuD;7Up=zOh!zZMu%^JcL<@uCUm$J3{nRpxq=(Wi6Q~dsuvlUA`If-e=5(BBQL-7?%*Z*i#SiP~$jeJOQo=S~D zjD-jO{opeZK3jd1EBKA9c3I-v4WB?SmL%JV`o=xA8Mmf?>$xvI2XkSz3LCKOL~L zhfUI3&YSo58EJ`>6$zF7p6d>7J1q}M0nNNIBSfgz0%{skP;EpK#CNguw!`8PiJz}2 zTJ*J%;iNF@*As_6Cm<|06(k(1%y^arpDb})M`hn1mAz!8PC`CJkuWp;$L;*k%8yLd zVgy_~xI-^n)Nd>Kaj(xAr?uCezDcHhIGM#A z7SGiVH~zYPmUN?W=IyO5on!XsP$|T_n@R4<>~rzpnKkJpD9bQ(TlpP^_lv)pf|iFup`!xiGC*^OAp zjOjz=e(m>YT+qu?e~wENVguXtA(w1 z>_(9j(IEQG7Ym@tD1P{_#A$=!HRPX8j`Y{n%RRD%_>-gaqonLad3kyBU%P$0bzho1 zw~w4N?>bgZO}4#bjNJuoyA)lJsX}uPTn&v}S6s>L`qba0b&eqLmb|3L*cWp_N~`i; zmT{%b^RaG3_23*&0LrB3J-9KKNa8_Oz+%xxt|8yFI%{=8sXO6A(KRS&-n$5a=*F z1m(by(HzKcRi%Nx3(U;TlbcmN&DgyPklMJEagCZ*#TXJwl<+-jPeijsF z_oY(|!%XflN(`mpN};-B#bI zPzgzlv}CZz=XpaiJg$ubv=q%ZU|kRDp=|-y0DG>*n6N*fn4O(0;B~0LrCo*H*0cg% z+yfz6I|x$-FR}&Nv74@kGJI;def+uj=*QCb@YOAzLVfhL<_oUR{utf&o;&dckk$Lv zV?@YWH})&V@U;O)<8u;~LA+O!O|w|f`%Z6Ykc=6UoB0Toa5SDT9NxnYZ*yMZxn>;)jY(FCOnP(qAP(+c zxsiEw?Ee56VCIaiPO=?}XP%v$c|ZbgRrW9z4F62yWI7VkU^D4lEbvCxNYD44ap-j; zoM_1#o@8jyQ)8Ex>*k2)kysO6$O71m6wI%iyMf<31|DWlTZvXQOM<$X|9)mF7;QRv zADMEx@vB8dufK!?sgLuZBgfFy6_T_z&zGnv$G*rj)(7yu!6zqNf6Wl=+Rr^ zz+raxRhduXsJd|QgnWC6%vtMJZHxRrn$9vPj;`CnA-Dv0clY2BAh^rml7V0e1eoA1 z!QC~uI}_Xn_rX25yL<3E?^kvI^uMmD>OOPM?!DG}_CR?w%%g-b$bnCD73;Ch9_3w( zNi5Y9$5t&7^CxAAe(2#ZDVj$dAwiV=&L0Is<`rLPabiHKE89B(TnojfMbtX2Tev7= z$4?<#%?bS@B#&v{E01_m?*e;?J=VvFJtji`T)Z0ne9q%CyJK3Hd76Y9vS&gM(j>Rh z_^|oD)(wPKB`RRUw#+g5awSi^p_9E%yw>yJqJTUVRvl!^A%%g_aeUMA z-FIZ`7A%?6KN63@3K})wfKH4tG@SOlPXgrJFYj7n-r>Xv*N^)www&jAL~g37e!^k5 z=ayn$AX?J%&)2S3bQmn=T;b&o30+J1k|}jMGnUz#kpNY#q(9b(i>CTHWe73O=bbqx z-{zw4hW;e0Rf^)jy=w^Ke8I!+Eg;r+Vhow^qLKr*z>j@wEcIe%kJ0wobRO&00-2i5 zAw~K917e(eQ^k0{OmIKVfby=#ji5!inC3V=W~@Dt{T`#QBZAz`hsNwJ&y1$IhfzFC zbWDC2;F|%xSerXA{oC|N=4D6bowBDRIf+79&M{H7J+b3P6n|{!%na?5Hhtavmmgf@ zpTp^U9{vPx@fJf%u3vbIZOz{Wemm{yI*NuZ2F#e(mv1%ypx|F>qFs+ ztR2-aACHDk^T@50k{3aV^PBm)G=LSh?xP32Am?qA_(<%w8^J8rm%+bH4+MEhi}48c zXbPy;B{oC}m9(zw#}k{Kb0baeI8q z+`h_jP#lMO8>g-h)fJQX#bF|N=|lXYHf)Bu4O1aKojox%oq}XFEthB`p)hjnJeb2E zVyeP^aA)w1h)*y(`h+Mf-CHI)8Ipb)$G6_gwy$OivpMG7E?pPL)?OR&txY}Ly6s4M z3LZKs;rC}s(*jKxl((XBICK1i-lNn!W~PZ4DOsb6u>+6998M9lvfnfDClUQdruz8h z+soexFW&?&v;wj8J~~p=Nd%cvJB_#xS_kH>20H4&IN1T(E>R~);3S5p0CHflM2s`O z2dm~e%H4y?qhlZrAo0tKh$n-QxfMss+Uq&D%lcbHw;fUbJh_FX;uRX*)nGo^Z8%BP zx-%8y*|YS2H32rile*HK1j8kQ@;mTJJxo7Pule`PMKgRIBt)L)f|rGLeF$V8U%K|K zq>0ly)5cmz?Pc;bHhA-HL6Lmb*I)`;j(Y#XbZq+$ocPRxKMxOc0x49dVU&5QjyM&r z9?WcThq$#<;WfR8ld_Eujl&(icp=1!Y@Y1iK&G$fkGXPhA0s8(=B}R|AFME}-{>c> z4JSYfhmoRgthbBjTz&~DbveS27MH04apdvAi=w%E^>QE89%k-MGESOq>a6Jy(m3 zqg2V=ohFJPHG|>*RE2*KHVvu__LGHFuAOK(MYne#pJ5?6u1-{CiN|vdla7$S!oo#_ z6EF=23)ZGx`|JBX$~PJjN6lz(E>LRQ=Vl1<&MK{IbBF!6m)H;~0 zhDUp5qK?yZpH?wKUiISz?qKA55~zlk>F#)hvVsU|KJkI0`vOtV>|{xlCPcn!loE$; zaBZv5eHr=Q{IaNIO88ZcCEX>xUIFLd1A$r!n^U;2dXYHO0!LtK!gi2vq_`FUMH!;j zV~CBPL;tUrx1>5Y$pPyWkBJRsHq{O1eVE$MO7Bi72jf~5VWVz<&%$T?)+y;dRAn0! z-V{H_gjG{J{Qfonu}v8F3dh*wusP0-xPp6|qum!#nCU=&!A7`(1Z{EJ$v7RqhpN}e zh&Lu)xw`kSi(8(6z@ZGhosTE}K%_mJ2_$nIAeIIbA)c z^ktOmkt5jE+)ojYcLB`KyK96Wg<$r1V z>m=@x4q{CTU8BeJL-F`g42PxBV~r$NwiNn}a*Si9uvS9iBdd8NswR$h@Bh+5suqBK zJ=dM1lo*F3ZRPHEpx^V|dd>}-iC4e6W1{s))F%e}8jceU$6=Df@bHCa4q%TvcrUeB z8`3gfHDOlw31G&_g8cZwT+K@*)Ii|0X(lNkr)mN>Z^fyE>5$iVuz zCT70U?k}8K6GP90vM4XFFHSY*G$c>IQdhSDmyRJN2*7H!qx<~pvo%>=e|h}5s-_)s zbyH#T8)J6j4JI2=1JR>hr{^LJ;n*(9?^X{GVQ4!3)Z@7$$hrGFhu2VACJusS~?j+ zBK1Z3tra^8f_mJcTurTJ{vmqYfH$mZrpwoHrMq2f@X|l zXZ_nu-h`|>%Y_9566tq5!G6uo`RoX+v zfsD7OjBcLf0P&okMZ`_`(j-u)Gj*Qzxp!Iyvl3;}8Cxucv$xlPWqvOvzW&-lS1-3q z$ME%?ay;3#=EC?OTrASQh^ayB;jmqzVKUaiae3Hbp5babOwc5W!8ObrA%HgRuhIi^ zm(P4}e`L4#LBlM~x|W$Kd8b6x#J|t`6|H?MlP;!oK)|mvb6sG;IYUzE^g5zwN*XYLtaQQ0KV50zbs);{`}5+}yfU>V zB$;I;zr&bDxS4nOTGEGrm2Q~J^&3<;JkM#xisVO=fKb%0IWo;0!%e6PA`@9Vyj0Gy z>y)q~3P6Hkt$(P{?Ek$0y-8x77>pu?^`MWVhI>I}o(qQ`VNWCB8fRdHFDpRM;vNv@ zbJUU<6_HkFhJN>>R-EXtLmksc4IuMZ%B7;XV{NBeYbr!;BsqOY9}P#qi-f6QJVg^7 zAjLYyxj>}at|D{T8c>s5PVs~53&c3bSRpgJWbN}N;lk(bP+ld%0;oo##stXoC@Qr;b*Ms=Q3N8TsL2RnKurbpA=k<-X*V_&K=9Ph_f!B@&pJ6D35978=TT&YO}`im?_p-baAB*xNsEsn6y8l zd>s1tfpKep*EyPYMuvTwGn7s@hSJFrN`C+Qe;Q6y@cQ#`B*|j=yIx>uyL$Lq>JDy| zqYA$aVMTGROHtGNRRwZ=NS<#bA&dWtaZNVvkX%7bp)*l>OnngfG_|4?1eb%TiMy-> z?_-**`|y-SF9(EQXzQ5g$Q~&efi$`B9hCAr`xYguYL6wC1oDD3O!G_M#L#8GG zDX2>cgp#FB>LWf8j>{tuML7)}wsa!>^HJ z`J#_BuM5ApSMXNAH}XkIy&bbd%~G*Q_8l_3DQXl)iSqReAqT)7C=4*aBl`TPvtE~r zCL9vcA@evDexw_bXKHCq{)--RD}tn3C4W8Y1gH6t&RSyT!WEN3^1miYxiUKsh$CcS zNa1^?|Ds?Xzf|m>anwx=S;+%ok#$**6JoiT$QvL?e9y|11k0i?Oo;?i{9z^~nq4R- zAc@9O+VO#mb06hjNXJl}dN*50YA&qp(Ki{EygDdvv47#JPW~%1W9*hpG-lHUio7pa z2d(h{^L8?6SImKQc8&7IgllY29B3T4X$@H!I{8^sK94EFfs^T1xa z($R5+BMfJI)Gt6$-M&+3%*Vn~hPxQ4RuqE_lQvmsrD39HO6lU&BhQBnQR4q5&{%CRZWWW1Y#noyo{S zaX-;vCZ0*M;--F`qOe{|lxUq7zwDXx0YoSBBIork_LRvzD>0 zuGx~=3X&G(yn1|ge~W*3B+oFxbfW=+ey|2Eq|)H$ZC-@@OvPmX2Mk-FWWxH^Chhpo zUAVGUwbT2%uQ07H!|f?0yFXQsK8e2|sc$(N0Az)oK8;2r$(8lF^s~TAk~VpQ65AK7 zVHNQf#;*!&wC;FI2t7_3QB(S8{>HgM_bepJ1}-tua#ilvYQ1bBa@>Dx;E%LEDtU_T zSza`n_~F1JESUBwy9sMME=GS+4OFV@v7A3t^2At#D6r~rTKx5t>=zMMOT?W*-X9R? z(}p!50$jC{!m?tZZRn2d-SRnv3hq61(w)r)o(^poovIupq0h}mx z4`=<{j+_8Wea9DDxbDIa=65^?(& z-!18*t@_`*NPBohF5O#(CGT_V^e?9wM8c~4?xOnL3(o(VQER>w2d)Y21s7>v8Dh;a z?QwQda9#vl9z!^Wr)#fmIcYUHn(1j`wz-C`gj(tUJPIA4%G8Kq_9x z@&eE8JU(f<&zX0X@fNSY6gSv>*PPHq=?f}RV6lO7V99B)pR)dnpdh&4LK$~CPWI>X zR>v2`%kpPLh20H8<@nG4D@uRuJ=*z~vMj#1Mqawcb_V{}hFn$4bHndB-tec8SP*~W zY2=eWyr*JK+%kCd7(O;?R-TO0E;@+ccbBs)jY!4SZzcLYCN->L$wAh0Wk+4IO&(M0 z-Y<#Qu*u+$U41}*g5AruTy-Mnb_>l^x+Y5^>wZwRe)v)`F*E^Iw7fv`53%!dkkPuc z?lflom3OR%l8PVk4)}Fm-Cdo-F)83UwWfw8zOBB3-@1&ellG?bI7un@k)*-#k;#Fw z?$WxIrpRH++1G|Op@~RL(WU6ovaoQ_wbB6Mi^yi5W^jXAb$>>D38eg>x9SZI} z)c-zH9-)W9r)k8C$-~{H-z5X7BD83;tW+a_G|Dg66)xw~zt}kTjQT3grm-c`ek)bE z%EaZ;`$w^R*gM9~C=M0Q(hcl=lOKBow%9B9yg`*z(93`=pzYQ2R z>kC0vIa{3u$KajJ^`%%U$&R!}3MCHpkw;bM9zGE~8rKhuY!p4gq+U;N!0xSO3=+4H zieX88;^A@p_UB7pBA*h^GjN7R5Su`34R5<+qMUjIdQdKzj%IW1x(|GcG4U?GK+c&T z<0Caa6r1BWAi0@J@j!=Jk~46rrV;TL87$P{W-JpFIkL1mRn5VXQ?D(9hVt3(oS12o z{PWh%)*iJ?trCA0`*&2$HI_afv1e^{ePMRV2L1GH+x?kmnhhOSwB zW3=O(G$&7ec9Qg8Z!hQbW2#kzg1ik%=K}rL@Wi!wmgIz`Cw2U7i^MYEl3)fT6sGFx zdktx!+;Tw9XFq=&kS1|maw-ocSe6OGK5%XOck)d_^lez(*D)-y1$WI8KKfASJIu&; zmj^F*<><~pXyQqlMF%QqbT&|Tx31Mz$Fom$KOB@TyeYbz=1~Y2e?ovclKZd6ugqV{ z8sipnU{H#6o^*zdHT^MfqKmMIx`+LzN~uTa5P7AjSj0fYN9rT^xGYTN)(-|2mr6s6 z=5dkNpVPI5)n-|Wuh~|-CAd|mX-jCxZ&;2G4gxo6VY!G$>EXO|pqZ-J2_LHrR z>KHM18FBaXK*~g=nbM?d?VxYXy(w@8c&lr?`K&0W(t?a{=PZkBR~Q&{A$tT}lOxoD+N_x=_l^Sy<(4B5vXJ`I_hD+qR} zh-vfnlJ$AojTj>Md3A9#G5f;OKM;bu99-XOHJs1qF+gK!5i{H!%_Z;N()s5(plVt9 zXk;Y2ftrQ^!>e3YCSSj-U>`DK)gz;3iy#Hk>sc?u-PyXTV759G;KR&|i&M_fX7Psj zO3;9#K1yXaZH&mAd(bHl4rtYvfKl_Yl>7W@4&)VDoZd|yI=ALLjDCv=wcv^-8uAUE z`_4*Si@SDq*?Yh_F6^Vz{evZwkEG>0!Z6pgLitDMv6?9{M^3p8Kqhu|RFW0e#6UDg z)dSS_l_tGn!v!$_C=)}z=WOAB9mEr@ExhV==hb~6U?grxT3LY2FJ z?BP8>PkSjleLa^f&!3=%#p=ow=kuZGWWe7Emq<6C5V?{geF>}j^}UQUkP@BW!fI%B z0YZ1-z41yB&8;=~=tvG;An=pN1kAZCfU3s4{-lHhiTLdJNMHQu(vS0{<&6J!S6KhmKS-d8bte%1EC(Hm_{7Hc_4U9a zE*d~~6^0=zB=u0{_>|!{dR&LZGf8L+sp(_+q5!maDso%|2_(?fBhI0#P&{!UT*|?M z`sx6^7uog(UUyBfG#^sZ+~knbmR-}k+q97EivUvI!^|2O)AC3kZ44CeFg8p;&02QL zugMdVzBBXP^hU7&*ePp~(mNt3*GG@eP1Mb5ov7u~eM3=)j_B?}KZ5{4V~@ofBLdASEo?LI!%&&6WRh!y-% z@o&M|_u+4L>d5s1n4VbjVtV2oWem5YzV$;rN`@#Q`NI)|!d6L#L~%FP<->Z*wss2T z_2j>u*C3$M6AC;{<(f_TZqvY5w7aA*8r8D^M>P`*&F}s6yoYaQyiRNA`=!`6j(uGM*s{y+=qK+|;6>L(Oy3!({RQ={_Id^Eu(X$m|TuiDp zDWtMo5_eVLKPoXtw zHHkl9I;F!;9vaEIWhwe1pYFuCiinhEGWU=sB)iWYI`E60DL{5Yub=Jrf9Z~3;_nH{ z&J35XZ7s4UNZ@WX>m_`s7PkN4f_t1{h@=*Nr-XPWd*)|BUWOyFg$}Q5p_UFfS7oH- zi@}t=k_{KnID7S!$sXH~yDyI9*$Pj;c$8@>d>^zS#UOPn7Q72a7^`B;<4u9=yW+U~ zT^sO*WU;8LI;obUZYcRRa^#tF@OW9+F!cx5ynLw-a&W+=g_hS&J%v zFjV!q1`U=Edc3Or_VQ`(%Y!AnlKuFM`kC=TnzD`Z48Mv>s3RyQ4FC4@X0zs)mrSiP zmexB-COw)(v_N?$tYF*49c`D)W?XA?chmy=z1pNqr{CWtCz2@l5_=(*!o-RNbl~jK zqUu?LrzHg7O0hF{iB{sHU`_jt+h@2G?s|DQDpmbe3W<}!VLLljKDOeQ^#t4^n6^k@ z&3k>8EY=Q*2cmYrwkLTVWnB0krc||`=sP%3T@_bs+)`T*%aE>VD5bCKo9!?B<}M&J z?ktX`yfN7QF*y2W{`ASx{gZs)R{quG^CYEFeX-Uf$|6Ur@8M74FVpVU44}WI;zYyb zb=x%Q=I$@A&~cX3$E)&84SZ@o$t05EgcMdsIM=|L^@h*dxR$(0wuz!K9z+mcKF?Lx`O(ZTm6NSHv zc)H@L3T?#3#+Tn7`eMxWJ$sZdCYcGbyNu!h6r*t+f37Q#MI@`6eWhQB4(p)DXfy$- z2<9)@+7Q=Xvt_kzvZabZOoqgWJKJwBv|vFbu9_lzbZK{k42s&#nwQ2fV<$W9T`E3U z2lSryj_kS^mVizk^j^SWOSi7)PIY_75>E79h6{&~q$j^ri9I=6;rLF-QQ7*uvY=Mv++TEJo8 zvW8Ib0RsabM>#gV979mM@zAE~Y1>fZhUNS4N(B_Neujqy+>WcY&)+LaJkW1j`GB>{ zHnt@nz#LzB*;$6QL=Sa##5%RN4~H~!uPqns_o(B{OMM2IjC?8M8LUE8s0c2UuB>;Y z7?JI0=M8mYg&O0N`qAGdBpR@N9E0!9VAe~&R$J$jp5RIzUawL-N)?AMWm(qTwpEb0 z*khwX<+5wRfLU@acRA1!6v9^?$9%rcbJ}qchI7!-xv0IoEXS@9WSuj>{Aq}Nikd=& z`pS+D;2gpBN_D%OO_ChsiCwZ0farXEpWN{Bg7e-M@ay0g5o z^{7|%0BAI^ZJxT$nG>E61WmgW6mZd2$QG`yE$ptjF)3zKi*`=hxi0yi)cO#4 z7Fj~BgIa$jjE91v#;itdMYN04YKnIw04t0Kt}Fi1tg&hh4lMMId_WUxh^=nS-+9O1VYlAWY}RR`U#(7frJJdB=& zo3P3bl@5q+8h^>3KV;Dtoys6EzP7-!JaaIi;rCxCH1##3Srrj_oSeB{&nOl@rW`~@ zHVE>q9;*Tt1WGJEPO;8J56=vY)=!?wn9PsJrdhM%l|={dY~LE!=Et_|i1x5tAC2f+ zm^ukN`-Vr==c0IH4R;L>AO28FLUS)O-qT<~cOkT8suq8;OU_vrTibbvCcwPW0p$Du zKtr(ef1OaYKYCT=xJ$D{ED#e@TR_d-(Qm~9DwxAIbWH z@%iXRsFS`EDYxt`2wRm|6h`fVxk;SYJVwIvpI#o^eL^|w<(*(7<>{K{J+j8a?O_pG zR?<3+4FpuH>=5>7_xSsGBymK#R;;RA-K<{`9|l02m8nLiquvjs z(Q>EiuRH3+mA04PHt`#fsp(d$5S4*!8w4U{GVZ5oU!s^5|u<}RUC z{#hl~w6`>b-j5HJ27mtbcBJvM_$}#{#q={_*a*IIo&x^9%AeXh|Aozc=7D9fuk{mO z`oryh+F^d`!!1A+Whx0E0CzA!gFxOeEg)(pt#zUFuC~Gd?w1}l(E~GIYQ#=7PIsCX zg^gZFQqc|}FywpiRaq1{;oAg=DVUz9s6+OT5O!Xzah5M*uhdtfKbM3D4ERRUcA2x~ zHy!?fXmf)1WrttisbYd0+u-JbVRrAd-`d~&`d>=jpfWxk8 zTE0Orws{iV#-Ifh|N0pBr_)e7Y3wN7Y)iKHRDPsfE`DV8L+Dw&7Yd_Zf>VOlqs>@CO?ZBjwTmqN)9g2!tiR7_5_B{=v-?Q4 z2tO2F`19_DfS1KGb!P5$D0)PWUomTEhHvqDGs@{Kk1tOBT@IWM=#C3*cS<8h^Kv!7 zIBXKP);Ezmgon8}4>m*@W|iOo4V(`tn>cbMI}%Ae>IMu3!$qV*}zr{r*hM_Zg zu@h|G2J<+^eRka#Y*BWQ;iaW&u%uCMQ}Gg*@kRMf)T3N}C(^05m^)eiV@Zu!WJ|9q zcVY--J`USV28D+{Xp+8SN*&VeQ}hnJnsVi(g#(lbFmZhuxZ_FD2RyiB%de=i_mW|j z@5^dR7>4>j?n>>j$c=h3{1!=eE5Sox5v6%K=sd_&uX^`)Bse6*T2H%np+(hbbmvD= zVa`iWJZ$nj8(+KQzJEc2@A0eDmc`yhUsU+(%kOYp=t*tG>nh_-34YwGD&?B~&w)Qf z8b=Tq>`vgo!_Qu6`?P+__gbeO=rg|<2i-(GnyJtrBdLfY`Ym*L?U{nOk!Xz?jOZWt z9-B9^$K&3VpeiR{HESmHXwzpG?nhG3*u>ApvGvrDGdYr@k~kx+pzrY5mt(q5(H$Qjk7zn6A-e=O{HyvD#FpsS`V zFEef$iVFj2eB2*kFLbiJgu0TQHmys-lA0&QCWK&Y;w4X-qY+)5L8A&$c=`P~5mZWG z+*s|h3psKOto^2z)S?0vWf}5ll4^b!$Np&d@TegJw0<$Bg!pzxf&T!TH_-5JHb=IX zM<$E^q61Mu=I|tU?;)0ea?Jj{1?+DB?gL9->&F9m36bkxu#h;~(VWnKJR2BYgS|n5 za2!+>vR6#e)oX$*lI0BfT{*>C8FV=SU7UqhAfj@6z(_>=TT^Tzla@ z=Wa*B0f-lo#`~ePqU5C=a=s|tj?m-iFqK+=dM*y4xJV~`??c6*5&NK0K}Vcur7Qa4 z>3{7L&kyci#xkMfno))S9RHT0GPq95Xaq$VTTg3-Rr%*Sp-1e6(&|}W<}b^^Z2PU( zgI{7h5r8OgH5M3VxdtR)bV^pVQpL=orNtTs;}HK5PDxH!c{-Q&Z6P*^Ze-2l^aFY) zcEPkEur)nMY(9>iU3`IPL_qZKIp6el64p(8f)p7dQG98DUbB+zb;L!AiXy@)XlVr7 zHt*_%;PCq9#@Wf!Qv@P}2S8ifYpud=_&s+k0|Au#l((ZS0@+W%-@%BUCKHgv)8WxW zt?tJU3?_puw_RD0yICi*O~}#H_=XoZ5T)@EK0Ig%Q;O-Kou-sfYAHgg+{pZUSju|D z1MMZO`Ihd`Yw)CI{B{t!b(^T}?n8H$Q{cB*2<;UgqW1eA$zzs_L2P6gHkM_xJfO+z znOOwXp6!tpqrh;1iIFG3jZpgSt4@y*NOJb5*kcA{hX8ugwaPnbG8A00MF)q~C~(#XoOYifK*0K%Y^fHX3^YlvD-gtSKT=ZsxZ`-8 z=q@=?;R{I0ZT)ecH$`8xDhE@2MkefTDzOal-enf*jW;JnUk1L~&mR4}OM>nMEXub8_`3Vu)&q zEDdCHCMoBjlZ;HeGh_q33wSjsm?_bu`(6<=8q&Ua=5PXwi}!~eLViPsIG9ZczY2I+L((dRtsD?`He(_O zl0Fi{klGiGL{q+A5=)@7Kv`W%kW;TKpVhob{9LX3kFl>|-82bw1d9cN%|=nWjVgO* zTd=j%9_P`WeHli=<)`BPAhmt8uW3sz&QgV3`QGV_u>fkZ>+azbK<Ni%hb9tqj^h8owEiIvnyGO;u=BJ(@&H@Q0qKy2@*o#w~HfnhR zRYR^41lFX^Rmv1yL~P>lS&jQ^#C~T^5Dsb*5D$g{SAH3)eu`Bls>Q{=wy>ZLquy7y z053~=iwW@_=cudZjj;$KCFElFV5h8Tpzk<~)aU)&5kUkmyZ_Vw_aMw4>(wVqCi%Vn zHYhbigw+dyD>Y$16)Maf_cEPfq-5orj5+Cgv)3*ZduIfO`O&rVVOplLodpI=^0d#R zh1~pEh0S>g#4MhEJjseZwSH|WttvWR;2QY=maZI05Z?55bZ{(YK>P z7~?}H72wsu2y3h&>)Ln0{BOC9^luoIyza79F$1;9xv3q843c;uac9gKj)4ET9BR)8 zWQvY`Hx0}ZK{QLnlR`Ig(yzwcEvgbb9=Z&5trhI+|32;o-A-4X7)NaG4t*X)-L>F| zOoiHTcRlS~IF2P{nizI;cz>`-9N7%{xiQX#EWO`Qt9-Asf3JP;QLwWi+!~{D*+x;D z6{v$z8+jJ)HYt9gloutd*))5ZE5J{>nRmPZlK&Rpa10b-FPSh*$^Vr6v^^fYbn0?` zKEfb1{th9nK)O`Ml`6$aB4ypxrXxo$$JqW%4~H7QhzYPj2b6fxi9D&F5`JbBIST2? z*KSn#UJ0$YQ%J@$!eL)a!aritSu8vnS1A0zZ!XQj|MLlj!s*HZy|6S|-^>0}`WH&? zXA}SV01CNj3(_@G(vLqh$#ULfchvBqa``VE1U0d=1Xd^t%>7XCI{YK*g%QamhI1m= zsF>$6{2>oiu3SC?^*y3N!9PiyR;DO8J!&CpmOejIc1yb z#i)TBR>|2gH?V%)A6FyL9TM{F{Q7C`?VkAP%Sqb{exzzLex{68kP`;XNi%`ZH6VBd zk^d~h&ub%H&?$-;<)xGBui^xh)jVh-f~?Yoa<|=k>AT-2#BA_cE?zmuu zIXcr4ThP`9B3!V?J{zrde;4!`K`z2ERI-Sr_Sj~qUw2PGT~~kMv&Z)mLW7=M`!Y7c z)yU*GMfV<*{kc{XMC1tc_o6HW-VLwIZ-J<3dioD-x!hSOqq}L0aUhqj*VkmdMimPj z2D^KyM>XkA!JW&pZm$TiFiO>g;`Ol!txDIAab;L+4f#;$~q>}J{f z0234*n$U#`TlX~4vJ54B_C`u_To*c+~s(fD{~ zx?f^&SG!wcFq~+lDCQT>NSM%5b8(!r4dYy6)Emj@M$!;~%xw^nbnX02*FNhbo=?uB zPo^0w77kZd=K>POrs4_S!FW@5otd(GxBwDRwa_CTBXT2loRSM|7tJWc^sbGT4-wiB(7zG1?k8M+X_Q+NwD2l2dEaQ49V^(NZjUKV&!9(i zBhFR^F?*9om`;hVHwgJN5G9{Cim^7|@y%g}N<8*11H81V#fmUZ%hH3c**ny~kl(U- zBIN<|UX|z-h&Q~)4k|^H1rvwqdVAG+op2LoyCbYFng_omr-yb3k*wH{v;I8);xNop z%NQ$%Z`(J>LbtN*3v~iy3i`pzz^%P1cNw2C4lls3bDg=qO5Cl9EyZj>h+cHgFQY{E zzrRDJ35t`%m4c@Zi*^t*6rzH3rLK|Jyzd< z@`=kq#Z_#Vi?xqqKO^jdl%_UUQ`xB5HW#VKT-wzjK6N)YD?&ypNQqoz)ulm+fWC%M8`ch^w{r<1h4$aVBS-C2e#FjH{i}@<6Id!VR1NF|x@YHMsp;X{$Z`V)- zDB*U@`7Zb8u1GAlYQbnrBoSibuOScj*Aaiy<-tUfUxywoL04y~8jE$RkjYd@h;GQqEvJDn1Udkc^tqt8!zlwbxm1>XEcK_3h2!HlINmxgdo>gH!GIw_IV26wuhM_!sNBA2bt-Ey zsv0Q9Dq>pBu+%ZhKli$A-(*$Kv6-SF{D4h}fe~y!1m(XkS3=?KCw2RO1&23DMa+R`1(MEUlPCAo48 z5g#4Vv?J>jZ8fAB&qUFeo6T~$i*N!49hY}5tpS$ViqHY=e*^OCD1MdL=VEPRHOS$y!coOCed=#>6f(R`^Y0$ZbAbcpUH*6} z9jhn-a{h$2GF?jB=FaMwmR1NV z-Z#Ssci^N8UvI-t)8E(`c+l}ueAy&0aJNJXG7{-9`FT0qivi*Nb#=!<>~}Qy&SRYG zRBtw`?bCfDnBC=JY`rezgT4SENpBqAc<*p}j83LTO}wGYR!Y8tQ`sjl)A4b4!g{%B zyYod{zov@C$NCM?f8fG8O5*;{eWrL|M{!zqN}3@2xQ>M8_z!1`!m;hJaz)0(j(W@) z1OaO^(c~H<((3m4;EbHlCm&+xi)A?ihtjzM?|dLQ$hxer&Z zl1Y5;+>NwuNFGpPq?F}jXGL84n1@3YDMkvp_Bly=OL(s8&NoL_-ST-R<?zJ8jwdh{A%O?hAH&A_vOmU^8AxX@P}Y<&gyTW?N}P&?(bNRrjg%IsXg_0|mE z-@(37g~j2cV?BJ<{n%3#7tE{lTp6oiY>8U zPrre!?u<6)^n12@s~eq+Feh!S)4rj=`&=G(Km}K_bo6;SCF43TjUnaNH=WPI^y=A3 zeGNtSSGjaUHc#cZ#hcjHLUQEA!KP&xGhG6K9FitH*0&Knx^J+_ACHqTJf+sDI$Z)j zKTg8doFMfKzu+hnX%H!CpLP0G8{653!sw4a#4m?#nx2=ax!JD_lMWilhQBG#|C;II zDUBy#Y>CE}$up>nB$zpl>;I%ga7b2j@H1q@gR3*vCj4EDPTK0k>Jfiq$ER^F5fM+d z9v%PG`QB}(o~vR&Q0Rl(5jFV{x;wbvy8Uu>h{Krl5Z&5JDg2Q)q&oIlomvmYLi4l| zAZ4BL8R19{ey$yCx)ZuCdAjqp>t{|LYwYm1=_4~K?gmY{grAb1`)=~o9+4>q598Uf zk~VTP!2jrFaCUHt z=GrwbBXAAjtW#8=%;(!u&P*d{uua^ivbPZIre-`i4$hEem zI=Tbh$LO#XlW!$#+^u1jNBFKv)M3b$rUzn>Q@&7V?@AwIPoQOECDD{bl-gBU0 zRDnmEH)HGOc$JK(1~(+$_@SaEK}IZt&|;|hqrHf{OQZ^W&nH@hr)Bc17Z$k~GM_Vz zO!dJB&p0N>+)+sSJr$87uP`XHquAXtK}%3UUC!j3{`r)YaoOOkT+`=+!b}IFkLcQ+ zUr;Q&#&T+7+hlxQn96OUJh$_kMDEHHdKZ&{_0mG2v~7zV{MkR|m8s7chO*FQ+owj@ z!#Yn*lGJ*PIH6soAnX1+@Yc7{>4SQU7y8bTEs}IuwZggeUo{(<;8%?EA3~Cy-DWpk_4@q@@`Vk5>8_C~Ja$@-2gLrO0Z|Du%Pn#*q8_@@&65+op z_MLZ&t{vDklluN>2)>+;ZUx4Um(A504w{SSnbYfrX|AUN$f4%==#9*ixz$y-UTkk{MDHLi{df}dvtji8UO7)@}nqu6`{0SdP3?vn7s z^vQX6r!?^i1DO6@$;8mj^{)SW=L7uMapZTW7IQk{xMV7BBE@6Q4wNn4wp>r zTb)7D2GzttHb(TKJCm#~CBv1z$h|z?S2bJ578Cv47h<0afV5fSc-X|Asdlg6gU z@069by9;ADzty?K9h7D;cbv-@_>qh%N}_x zJUQiHFIoQUqG8o&F-i3jruD6z-$<3v)6l)OyxtBi`W?YcAw64D_h9nwgrbW4MjbV_$hcXxM(bc1v$jXZ#KGr&+o z3^05*?^+*ge(+<~%-mO;v-duAbEY_t_=p!+zpS?LfPixTAZ+P>k)USqY-w)!=N5c9 zNjyGokfGb)V=39avblIhgoW#o*UT8l<-CUV z+x(kj8Dg2iAE~H^drOpE#rr}sz0oIqIvh@33@+D1B>;bTMQI}hpzW3x#H`x(uEYtS zVd{)K1()TVZ&8mOq?q6h`19m~HJ1*vl1lRR82!zFMO2kyPB-*4L-rrbHR@yNj;--3 zgpyg1<{h54vNP)sJnFrsJhaPqNVj#2X}gTzf9Q9Q#*(+iieEZ*Nb%E+u`7DSR+<@Wm|eXVvx<^_pj;++a>gGhmz)W@;Pb>(5?JW0yQ#af`RU|8LH2Gx32lE-&k3 z<~!n2NH70&ozNHEHo`i-f5GXzd^8JlXJgwvFFJ6ZTyUP-(YmKy`Td_xw(3C*+9C;) z8yR0#9+^+9;t?TTi+%e#`O?qpl+u>d!I2vPw%yO>D}jW2ngOmCN?Z2EpZA$4w*=TN zGqUrsVT=TtescnJmcJ#y+h}|*ElgBU#-l}Z@90}pMr)dlkQ=mx1^DmI<}OBArx9_r zgxauM`$8%U_(Mm>;cOYOhRDgH$I0$dpUquJiz3u1m4voSJ+$BPjULyhS+>^b0f+Y3 zgfz(i!~Xr`?4jvW)(eZ|s4l^FuWpiH$~@dk=Hjo9H5;L~?R}Iq*f0#;ArND3!~$Pq z>!2U|*4BW6G`}y}aVF!Gt(GP>Smtb;B3A5?itB9MX;m=kI6LO|KjiTngV?9yn#Ars z7pfe@0%BQ+c*C8+$Mzqi|Dln7es*FQ6){!&=-V7(OY+_OAB|aDS4Xv~y42PsqDT^| ziAipR=roQuEY-G#ACOX=>*tN2PXgO$2zY{UTsnI(WVO9y*MU;f;~e2kA=vh?11q<@mUve1`vc=>fj?RrIXjgu z9gkkl5m|>C&czWU#>Ko|s;9lQ_gxHs_qHhD%boOv60`g{o0<=4gdC}_GK}MtW`u({ zJIrV*&o|>ov+%b5g$Z#*0%Qg-RUK*0h1$rDJUzZdQ)MPr?mn6r)E8 z#Y^=qxMK)ZKCwIMhm$osdP{HQgO1lA95EO1f~?|8#O07TKK(Tkc=|oIuD6|ZIzu)E z$WDbDo^Zg|{bCsX)fodl-gTP63eiz;Vo-o#DIk77X7%zO1PuxHb4dssj;MPp%_-lO zG2_z9)BEO}M0eL)4^^4yqiO&9ZSanRN*m45r2(-LDpiACxVpJ1CM+nZe|~z(s#3w) zEc#@X>E(`5joOBI(XNhz^)po&RUTH+6;2nKSy>Q*xc_Ex3UA9QK7@QDjLMWVLRd5Y z5i#cJwCJY?MXxp$N{SeXz-RX_GBsQB8>E>C&Dn&9u^YUSUy-r-Ox#AsQW$9KU0QaW ze%O-4ok;y`Wr7{Xde<y+ejm&Q^t-0rRg&hn06>;1o~*aLCTkEo(1eEf&d zCDXFFBHz_xoqyVjk1OQ-gb);Rwh0(N@bUorFaBR-MeMG&8pR<$%lNVWiQD%}?yx6i z=HU+$2)+3_M?k2Nt*_mcnwa(AaJWV|TWgNItTswH|5s4Y?P1v4u+I{Ld9`p0@%?dx zxSift>?qZ4j+?2yc{-9&@ zVhmUNB}53YnO<=2DB#X-#n?h5#fhMPaebb?jsouY*QL6QH`H8nuEn)`Vl9Cz&moes z@jKdP%CmJ;*`rN7{xy2PkCe}m*hIjT%hY1#Et3Kb2$ccXIh%erD^>;TWkw}>mCcd% zGb2Y2Lo)-%N4I$&+zeFSOVA0lI65Ey_mW4!U`}6|6*7c;i0RaR@VrxM1hG2DbUH@~ zv|Yc^iRH4s$Z!oSrF}A_1?2g-Vdrdf;qPS10(c)Vu$~&TzWaCl_qQXLl@`<+5ExsvI$g(*A$uaJp;>gH21B z5ZKF)ba%cGiza;`n>SUK36Qvb_(r((|G5A?hj+70w{_z5 z+#*mE+eDCB{*b?mUPF@T>1OqZHZ*E4;;6LHjyc=b#=I{D_)*DBgFd^^!kyjhbxsGp zR&wiXA5mr4gvlgQ&75_idKJ>9a%>`+GI#)2)s4u!2H0J$(MdImvvKofyQ9jYM)b=B@<}9;mAkM91`qWD1wMO-sp|i0X57%PDjIH%RNjyB^Q{^PQ~{awZIV=u`wm zMZn=4^_?}3f9%3_TBP7W_7}kDPbvyZ0-tmidMMDR!D?Jxt6p3L@|d1=2r{7Dajt@5 zip^J23ri#9hW^!WQw%vZI4y#CMMdMy#(H|q@IW+!D5Vp8#Z+J2M|IOU3GMMH1YGtO zXJ^%z&R5H`tnITTS-Qlom|8aOzdMeq<}y3+%yP_xxQz~y2=AtjayW6iqM_+)YAaCp zTv0R4p)?kzgyM#m>Fx=d64J}1RpclwS{to5GGQ-$#$ZC>45j7BCGmm(1F{g-4WM_9 zsYNI+&OU*Fhc zTAqq69a<^15l`H7(2^LziaDygTg`Sf=*@*UJWW1leUL^*URw=Z>4BUheCO3 z@t1>BhR3`y{FY;djGNQ<%CL^CY6eHQUonrOB>wJl+*5z^DqKKvTFub#t52JKf_X}p zCR|Vt*ufcNeFwGm#a8MGUpYr0#ZxDzV9@F%;>KU26eu%ElCc|skLYd2hC=>r@E;Ia zZpE|A5eU`j;Wk2T(`1{911r**hk5)237U;omndCLGoT`$qN$M`l~XBNt72ObZR4wj zMJMz|LaFy98iu?U`Z~I`1enmeo^jCiXY$zXkMzu0U|hO;KNbTRGd?z#D3LHO3YEJ{ zo8^k6NArU?{5u>G$=P=l-l{3G8L(IN4k7XBuyDcsoF$Hhd!CWboMIU;fXjU?(wywB()G|Vpjwb_*0 zoV}X=kdhCIyp<2#-A|xc&)mwk6~Q*tx)2}oGWAnayv(~8iAybEYaXvH#vb3s>I*sT zl}-A^z6_^olUQosxw6b>F&Jfw!DHK2S&o~Kd?($1sto2q<<28taK7ttDwCEGZg2e= zgwhrl29#KoTt&r6@qU~pWd5o;bk*vP9H@!nt-;fRaV;creMYqU1AZW-Jmkqh?Tc6* z(p#BY1szbPvDozl`(Y_8=rmf;`kBi6Noz=naHSJt*5mqd4k8p7pWf<-JhlIUn{DAY z!}o$s^TQU4kXM}gE34ifge$=zlSV)r&g0k)LQI`(Qrc`7$Q|~6iC)ynKvyR)_zxRJPCv0VL>N+C)zs-KCU{+155?VBeN;0I%sOmo9VrpaV>rS?Ygi54 z1=o}7R!F3=ulcwIMDX%UYE+8a)EUwGA4(aIA`5q0xUA8F@s&oT0_Y7f-b;O=_iy@H zDR#mAGu;C}y-xb@QS3*3LI5dXnNa)Dc^%ey5EpQHMJlFfuI4_OcM7itoQWKDKD%1$ zxpM0^E-4a0afufGXom>zrA#Q(;L)|lcBET|qicwe2F|AQ8mQumNPj)DY`)PL)Vzu7 zWOG>N&ss{eG|aPs#Eow#J=&gV?(-P7llTu1uYQNYy{aRLS?wH>a34JS;GQ}?+$c{F z8G5X&l|Mf=nUV=^-fhl7l2ntT=Jz0FtqV~qQnW=hb9|<#`U(8u2bo=DAx~4E&nrm$ zWbR0e_&Q^=H(y-cLltskn24&HNtD(Isd3K6Ij8=zO;Gl*MTCKASzV{6fZ@-c6#ftU z8Q7(r>2I7-OyfgN>2yqP17F??2JY?x5<8)=RaA_z6VeNug#KXKhZ6&He?@zs7sJ;? zYADG^PzHleX){jNsdsNs?IqH3aH2sf!Kc|4SvSj^=|*J_%)oO@o3)gfs^S-U_l$m! zr9_c`X!%tyzoh3&q(n4aEKa?+Ot{mdM5nD9PloJmv9z`C)Z?uGn$?^)=q2jZ-~ooV zt`HgDqTYRCuY%b4eND}fTBCslIYbHTBk23+sTlNS)??u@@wgMsDVKxFRm!qqG27t3 zU-&(rBhnp68Q()CE)4(3g1%8VE;OpGwhM4%W<1=T|H4)s)#UM|yxPLooK$Nwh^3;FDH;cg_l;v|#2@<(MDU+1!+bb>` zhB>$*->B@Y)UTrK>li32yaG%gk1^PmvnPJpu|Yd3s_@UE#Gr|TCRYfIfC#majwL)R}IesubQXMC@* zf$`}qN)mG=bNSYW2}h=)Vt4h*hb6lOXxY}TdE!?uWFOdtEC1s?S89GBQY($`R{FF| z9MXv+>)vkAEs3gIO?Y}-kg)fs%3v&O1=2iJ4*I(vK?U4&_2${BM%#Zj*RuC?Z>Sa%@S=F!NKeR?QLz0K3}S zKABl9yybCA;PI;NrqY9(+yq8@QWyg{_{r_PXAU)P%W+@d6-G`C5hL2!e17~Y7BrY# z!+HB#mE-b?elh+m#McAO6hcD`)w{PwIwqa0lz5}!r6L;dG75b=(FYaTN2djcug@aZ;zAoAuI%Wpr;Ho%))NgWZNDqtKOTDwHM{% za?hKOpaAlRsRk^2x|?{tthmw|L}OC*a-*?Sie=Hk4_W6i9H4d>@hgh+TlmZfzDKt8 zM}@yi)|aQBe=o5%djx8iPb3=tXRE<1E$w}tLbv`Go=*R*(Z*J1ODudAYi_y+ko9mO z%C3)8QK!*FBck#_CyIMf{+MOCDrKZ)uqs6W(_6lzp>)`MRY$`(S4>sQSleD22(U%} z3!ZYmZ48v{^kg}yNbprvsVHV~-pajq{S*Ntm+T#|Nd-K#jvIIW^*#HIf1~9vDS(<8 za{4qi_xxBO?L2}>9C-ds6Z^LKZ=jS2Khlmx_7|FX%`Y7$`pLtn0*b%KrM8Z~?4ZRUjul*k5{(-e-t;4uOn z19)*&>nFDi*YjUiX`&1G*kpA>-Pi#8VIQK=D+4Bidv7l3824JA|Le>Tef1zu?j*elfLCb06a3vl;&wOasmO40R{<9;yGdpO*Wp z%p%tnZ^tZT7>RKJ_v^`H(l~&3vbSH{2DA(0wHzx`(U11%$in-4Dt*(Er25C(FnvoX zhC-Ih%Ef5S+;yX-;=m{v5CMNmVl=rD6?dG-n0Fm`HC!AYDYU>R+B3M!`&yBisR#aL zDVfU<_@bSx&bBVFUVUhOgKW0VVisj(je8#b;ylCZpKSJ@nKz(fD}` z)k2@2L~%s{j*8R!NfIKGpDImLAXcNln!L?dt*H3|8}H5+YwD%9t3f@+XTT^1LcmK@ z`RBE%w5BR(v;OEgz5)&r| zCd_{|3GkBx`8EA-v)c5W^w$!*&6%QW0x)a;i&k3BU4+$+&JbTIZ2GbSNgpiht>w`+ zn;(#FBtfx2jjKr0kBG0K-f(nq58%L;#{`$@X3CfQvCV24z0!K!2xZ<5P84lxiEks2 zadyKv=)}Kr>x0qcpreGo$&@`s zmSjx($Bc;q8?cneErR)h(N1r7Lo?aKRC-B=Y42U|u{{>mRD(+^*PQxUF?ppH1JW;a zX><0zx1A3$Ukv&v&LGTQ76?F0^UKN|AdW+~^2ueM7r*dK=b~*i90768r8i)U;%^Q= zVDnQ($JuQKeE)s8$&d(!NKU}=<48(ag5K7uiI>;m0ZhaNgH1NzQsEVWIYV-`T0Fwp zIkXE`6)?kXo|LSBa7V|d`2pG(&2Ub0LEl-QUEkLjk|y@)uVMBAamYBuV*GiCkmydY zS*<<_|3jy=fm(Vf+BHhE9u;&I>l>=`@Ar-|h5wvD zZW~IcV#5tRZf6f)6~|G{*CGWo#iUIeuq3RhriW-~*-pR79O-btm(1Ozj868ZCmZN= zX9ICx?N-xmLWgksA44wPO|w|9G7R^7+f@Y13Z7Lf`b^%gtX$7s<|mZwcX^uZj4-IJ z+@V*adKLy8ApL86$DZ!Q_Fy#3@Z;cV1@OgZK?|$#N_W!ZhF$m%(mKF-R|aqwN=4le zP2NIn10dJvnI9TP-*#pcTC6veG?}pg@zcwVu(d!WAmZ(HTzgmSn-{GRY#B$Tq{A`` zF;3bt{{^V(BcG^pLNx4uENr|=>42!eg|DBK*H1iB<0#d3XiAlG3H|BV&66_Uah>gV z1Aj2joZi$_=Fo6F-17JD>S}Zt22pWI2@PhE^HUmY1ZR4f>}@n$bnf+sAdgX9h9H$` zZ=#_52LCg=z^ih;-s8#RQ~}Hm(4dIW|1#mgLP7cfP>Mf?2zr!-jvf_y8Z^j*UDW+G zdo!4WG7W>hhZ!>>fDKWxi?}mC2jW7;QsusEP1kG?%X8$wR@-g$Jwk)?eY<&q9faU` z{>(&tO|RCS-XG8R0YEC36A)zrGDP%W=C;DBdyKA68Bx4nKAsB-`7}kGs7EW}5pTJ} zOfk6fT({iZ2AEpz*_n-^lM? z&)&!rz+{uJhpa|@-oS{OG6RJEp*kfbPTGqvR8PpwJdS2TyFnIBM*q%Ee`wfa(ATcS z5K^~qx!|YQhcC?e8{P2!(3z?vUkN!GFnZ0+1nv(Hit1pUk{5d|1$ofdd^iIzQT$sd z3?oSe+K@2@9*UQZ&Q1RWXjB`e;}Zy-!d!J{*8} z3#G8Tn@lm?3p-lTiB|TBbM*bRH=#I%cs{2#((JT=Bl7G%UL8QoZc1Lx?gC%#9JBZw zjjVPQG!b?t$MRhb6R2{95j^eD&i_NRt%xt;bVBG+zuj=ymkEH_go`2Ktf8wkVyZME zXRTZVQ7xbt@e?XwI4%F$oBJI6*#8>4$NPPs_PaFQ_aN=-k)^5}%%dw_8PqS7{P3Q? z*Ch8^(Sa<;IpQmAG?AuNxZ!l;W}KSvmG`-~dgF$EBwVfszH2{R*(JVj47yf38uXP0 z)v^?{ou!QHt2vg$kIvdSjx@Rv#wBrA-cd@Jnd9_mL)xjbt#?CtTHo{S*3U_YS%L7ci?dgB9%DX7RrSgi|@XIGTD#jg{Gdil| z5kRIJaIN?r$SEP4k07rr2g7e``>PSV}&Yu=g*@WX8bsCu~sq8etR{7Cq% zOnuW22WEY9@(+zkFhy-{5lFvQ+B*fsw-MC?AKJ*y3U zfvW0qCz8zd{i`Q#zRA{fSCP)AJ(}cEtappAKX?a;HnU~WK>Y&J1UU8J< z7Z5jSgDucXcaktAsiEWH%sn56xq@m{TdraoPoM8LUxwE$ULhr@zE z3o^Z7OfLD5ee+3%G-Y54cfbcjzI%;%>b{&+>Nq1o5;r6Xaz?jht%in_eaX4I35Eh; zkCVkJF1UX#Qy(#`X7UYlqm#4 zoTyv;Ed!mJPU2Z*(00?cDrVb7yNM-C`MJ=+h&zc`*s$h7Xm7ExOSEfj8nRHbo?}C7 z)aJ_=(w2_xl84+3dH?VPfdt)1{f}EUB}-6Hm#}U~ZGEzv1RsFjte`~A`VKg+qN8r- z-Oxi;^D}|4YyTWRN6`&yo|CBz_JZ~K`Q$t%f8{er=8E!)ANAPuODXu~TD~Xt z;@A5AB@li8Kwb#%F)qWSn>a%|bBVl4Yd(+n?b({=RZ#?m&-vCs2txWt*mFRVW7gK^G0SOq#^6(WQChj@F@ z4>nkbxsco2{7UT_-9EpE!M}h123KZa1%FWXOR%$s_|6wn=xB%8w0-+2D}|-S*J_lf zWOKut6jX{;f0A5Y>%;c3N^@##$);M>^ACo^W*iyc`6G0>zwhB_u7m+TmH%-6Y_0un z2?T*g6R;e#wY2P6N^a8XxqI&fe^n=UhRlmCnBXigD?N+YI5k2iy=(i9L0%#!WI72| z2I{>wlL*kX{!%XbtR>=#oh++-Z-_5IM^)i-_j41tN9jA-F|@;En}%%(4|5j^8f5EP z>IL}uBW+u4Qw82|Oa4582ojqeot&W0YnCL5N#qlAzSoFlQb9Qe#0UoFG<0L&ktMs5 z%ZwELbQ*xjF7L6(|CrVM zbjB*6tY>Hf^fId&7fx%^Hm+%?>cjYA?6Xd5S~VJ9%4MsU=V#Nf5c^y35m>hd@R%6v zvN-~aTyQI;#(CQN4Mk%$TqSi6kz%b0JlwLO&Q>t3E<&dP)`;mB7XBaY42<0JjnVsh zLGKZ9Vljj~PLFajGq+fD>J1iGSF;PMdpNnKtyiwYcohFTX=HN5eZzqq-Vu~kZf{_c z75kgJ4veQNe7U;rx%vFx_E1Cu9I;t!+>r0x0n$^Jwxc8X(xvmaPMv;hp&H}sHkP`j zeB4Q-?@&RVM}bYG_Rik)0?rb<_iB=5$Zom*Okuh%V;fT1PJv3*18<8sswao z*J&`)WW;ZBcIT^UkT=rkb(T}iT}V|{P-VH+oHUYyZn(~f`1V2S9M3k|9M*z%`OjaQ z6gZ7b%c#t97~Q=Y9;xOw%Gh)TB=^kiyoUP}3k@jCtIm>&NEGdFmdop)3> zkMr+;jX=vLU@Sc}o7ax;@cQA@?Rbq<37*^L*F5q|X-_#=ewpWC38c3v_PikGpX@5S z-SypjES?;(eKX)Oy5p+B(|@<#29np)XTy=^lfzU)2BPusLg=el|jMn?vJ zVzN~m`ENj*`Vcl{(bF>s4fcxaF>Q@O-0Jo?6XfLLQr83i!R@L;kV5?~xP_L9qQzTa zv*kdam#;&{>tIOVv>Mw-&%k#~ma!>?qilmh$&s$*&b!aM?RWfYvUOe_3SJ%#QL*0t zhsq8YNyae-r^GQjti(d4a}g|oC|=Uues{mpY*n*t=((QkCt9G@uu$9QoPrFfubg=9 zpIi-BMH_Vd`vLP{zYd&|Z})eH&eJS$GDE#EC@2Iqtry4)Kj_llbgcoqfwFiG$~yZP zuXkeD&tcP^eb-cG_OW4m3d2j)FUvuJF9ee3IKsW_JbgD1i1IN}=&!eUtiNdVR_qB4 z4Gp6Z+5KEb#^=fX)JOdOPVD6@NU?On{af$$q@<*vsPDO%SBz-rJjj+d73bp3tpApx z9j!EM(G*|5wkoedl*T(jopPfgGkZ zmDNtBW=7#?{VR}=FhwBzR@5<{>;H2Bpdle4m72^c8XIG=z_MXntk{3**cM@sq5dXAf!|fD?|J9pp{fXE@h|XM zDY>qVbo`^lEKzk5)81*`GdAyLtZkgYOv9Md-XUSC6bG*dSCpS$7Yg*~bar}%LUj1! zca@}#AqLquRrg&?iS+xbR|y>?&mgVM?(;5CqmGfcMLVbqp5!oB2UtK#VK1kxwzcoR zDJrAOHGMa${pe?k4gPEphubH&G&{>!?l{$(ryq!@DgdMDO>p?{=eMbYKRNAOjyuc& z0{rk`j~MjB9u!BNLij)k`o^Hrh3$LyQ=G91)q?!1TPmk`H0@p^S+Wz>e%VHB*2}Pd`iR-6{T}jN&>kYf(3j|y({if1CK05YXj+SL9jm}M!uX*6P zRC+7bh}i}huK$s2|6^5MlLb1`{>`XFE;b>v(|yuW?xRdgSI<4q)uoqLHO(_Mvrq(H zP!;RleFfOiL$Q~K1AuUy!c%G24*xl&yZt=Qvfvn&wKaCH_f z$QaExPP>g062pUL?*N0P%T4=B?JCXGRzVcPUKe|Sfq-n$BnUShk0;SYZ1s+JBE5`B z1_V|C_QbWJbfVf=tinUvVVZa-3Xh?@M+EKnFQA-?n4Em%;(`M}s5GUaf-C}uF5uo! zwu!Gglj!u!80R!{D5O8^Qyk{{KzD^q9M^ghg^oY;4HmrP(~ojn%HZ^}!8sx>vb zlt$YwZ?v>w6ZyqJ{N28rw{;%MqN3NLUkaV4{PO%n1w{eBv+2#(P3T`s{qM)~Wv&50Ndp+#L1mFFOXQ|0;Eq+l zkdnXP4%gb8eKmTYnJO072XKUq>-*h={uaR4(Y)FPv;tk{>8XFd!A?K*M~G`&rfYJq znFon-mZ?80F%JJN^!mbtNepDjKwfzPg1B9;QNw{t=MFGJ;Gqa$fS8jznX6K*&Z{Q) z46?Xxh^pDQONM+Z6wZG2kmuKGsEhIO@e8vAk+w4Zy7&*YI$G~`iOqujh*;7TAU{wk zy!@P;oZNuGok+pc9>b?nHez{qG#eDJUpH?uIal;9f-%_|Z%a<}{h>2R~T6 z(79Jbhw*LPe|>Nl*e@5@WYhT~Uwv-oWIeSez%cT$3GJGtM#-YY{@r+?0JHKNtufsc zOwFTuP7<=?`kLmP`riP9nR%M(f0{D0n$8tywwOwH_}yL9J1oGSG{fZ=EG?ftgYl0C z8twXOqtcgHw%+5iiqq@ulzXP6VC*2hh=jsSXs*8O!f#^^xDhD!D0hz&*T8_@;=akQ zM)o|U`}Uu{K0N_uC5d0p9kIa%XL(;$v1vY$gTQ9ut3kl!^Y1KfGtYIPbq*Y4Zf@=h z0DkQm2L(XpeC?}y)oU~z2~O}oHR~_`TZIu>Zh|M9pS-67;V{%83UbSv#7|U0$~l2N zUC)3Yj)8i!9l-d;pRKmqiCyOpvdN`UX=~k+Z>VBu7j`^_dopJr;^N~#-F`}fG8&-n zT9g6z+YIl=Y(8d8l>uP)uh4nN?q_G{NpM!wTa8SFZ>tg$_)=P>)NNe@I*>XT3^vyg z_zap!q_vtzrgQz?|9nfvM(f{ymDcdICo2Y>TfoD^8$t`@B*tOIy#tgfZ5)V8r-A?d zc0_@_gTvWQZg&B6v0}rMx)m&P_pkX9_6QF20Ln~4hfO)DJ@^l&f$ryBQQkE!W`F~I zc|G!f>CWqmA#BG~?D+KPj4yk_s$Fylb`=d}A2<_Fz^xu!L z!;pf6L`98!0LSey=qX20k0LmHz5=igj|L#==?$C}uz8B2Putip`tJwkC$bkuyP9l7 zk(DgmUFNvTLG!}>Py6iHPZtqleiY)*fVuYvF7GP)I3CTN<^X8RV%l3TkvdQfe@_mF z?wg&@$FY7R?Mu7uHR*F@;!sCa(LVz0z_q>g?Aav;2?Bp&k1I0)autraN*;2G(K`tC zs{<^`qL6F=6_>I5A1jK5P^!%UmujQQV#-LufW%BiRaJEivTWRcR9#cA@3iL7-n;L2 z;tPOO5idYj;m-Nw0No!R9{#CX9c)!h{hkr&4N)W83^B$I>0wVRz={vcbH3}hn+ycU z{7wmvkr4a&r=Sf~>Ch;zeP;9&qJMiuGSS{}Bkz0SH*&FDMnoJdt>QCx-9m;xr}bjlcZHFWW29@zAY>lv|r@_>R1Guw%m)SbE) zCJ*GJGopbHu{O2uwsLoYuL8oBf&O^4rj3!v7=&_P!bP{z)xhCXEaC9V7P?hHLtx zS*Km|`VbbdUfT;WvY-Q=XpNJaWo15)wS2hEzn>#a-}(j z*M1pZDlp##cs%6;?5_XiZ4eZ2@YARNI7WVYlr)`ycJ#_5hf@2GI$G=zw(`%7HG}g~{dq)_Meg zl50AAY+JK^5A!@l;hLIs0N64E++mf?zc=C9oO(E%LqN5U$}&LX*iaJzgnPF0YPB2% zbfEu3Jt1QWlwuEnnQ~-LQy4;fX3UHW`8}xDp#VnPQATTvG^@+KHU&`M3={%tFzWHT z929#<5%UIj+HM9uF9-Tp17rv%=melS9*@J-lS66z#{r+`DEb->j|+DBM_&Co2+sVg zzW!?eMHu^&$NPaUwWo*I3m^VD0xK_c^ZSh0i=ShaCaE+rYBkSjvQO!yVys@6WYIHl z9J^4&Z;NBtP9AP5#Gd;mPVAyv|KKp;>6LhJPgJC|0(yYhUFXd6uXbs2@m_#?6acu} zh;XBVbXYxPqF`j;P4)!k)cB;y zbfR>);;<`Nh3*_~V5;^0b5I&PVaypH00GhAR$e#z;nf-4mCeze!F@OVBcCVY0DD#S z#7N1=@YcQzcpP)j2rtxN-ChWZj$mXPQ7naMO3 zb`2n4;Sc(%6R?Fy+2PRy4R~DJ46uDAdWHW!-vJlXD5w3idTC{4rSkzafx10(743KC4S{*ra?ulKl$6n;z6A)n#Mfv({%s zM8uFttZ27xnLX6OH%*yRNCCfx2v+?*nm*>=@B%Ym|oIpVU+{7-UMmiiUSh{^> z)Ej_9{vv%xMNcJokNPz}ZkC8*c0dL;*bD;rMq0vFYErIcd7#Kv8Piiq9mzgH5*6y*O61UalVel9cd+y?U(Y ziUkT_Hx-*TF^IqR+VO2x9?!cSum9G4z58)vqx?7@l@^JNYqMp(pFK>oz9Y_|opej! zkbic1dTP*Ysa%TPpx1193H0z}dv`>OfG;~epUf~y3_AzI&bMK(05i&fS6I+hugLIF zTp*(jmDpjz(19WJ2fueLds8d<6KJ*hZuEp_{cFeoq`b9FJ}8-0koW{e2TBh60~Q?? zrxmCL7YYuhRTQAT2|k*|<-7(>bB#7NTmG>%ZZr+cyp+5a$cscee{~q|DJj_>LwMFb z&~xLM_#RVwZVd9$%_j3(fBdqn`uJ2>`Q1XEo2!5psURT03Sbo(08p*KI}Uz!Tlw<7 zyG*_6=A@>90?8X6VLa$#aM{tn(h?1Ig1r)m)3dh8h1|PKdE`>5AS98lGz8l~F9)ip zTwEsii?Ta<8M&~^=8B4nYXCpshOqM#EWEJ+>UedGMRb|dLRA;!Lw*+FCx+D(-FJ^S zAn9Fp5Peg%{ago5?s#`EI_R}qX`a`{M2*`LIM=_0iY`S-E{`3_PxXuzJgGF{iqq}p ztTdN#YvVr1Trb_O&B$5k@TCIE6jCG=kk!+~=vGwo$!(tS{^R&CQKZso)7jZs9dH(L z+gZe~S6CM_zi##izP#Q|OuL)1&8lgMQ?(uR*0Po+X48_N$Z}uj!LxUptZ-JZ8HRv3 zvhRI7)X;M^IiOypN#DpuTp$kRj>>aO#(zKdpN;~}FBSBIdKrcJRhB|E^|d?Ib+qq8bzyCPQ*#HrsZ-Ow&A==(h&z8$E8 zYV7_qQTx%WV_tT`#{718P*0dneLkr8?cjhv{BVSpNF_{=>{yNkv&R&H8dK)PL}m?l zdrNsuFfq(ewKc5xLB;W?0!i~(#i2f#Ag!Y#yT^9@1f3AyzuAD~UnGoqz+L^Qf=2hI z@jWw15hB-8!G>%(E~~pZVW^a?uQcWAM%QiJ5v`xLnNEs|Tg~4}Y#UT}_fJj5W%(L? z3tmzVH1=tWmg>1`DEs^cu}76HR-pzdU9`br)&(&OIxP)dP+5kzEo_2~Xgi(gOZ1$F zGGRMTL)a`VZo&6Z7dS8RH(i-PyR~f-P4(1;u*W) zCbTWoJd?9Wu^z8JDrNQa$i^2AdyYH{P7}j~M>`4cTc{axE^PL5@BI3fmhJh*0>?ou zOxW3}GVt??<+o6@khkirxwTR#%y@48Iwcvll;lilXn3hxA6Fv|zD&+*Nlq+BI;tm2 zJ95rqYU*!lLSx&onVU4kqHAecpbE4}lY@gfchY)ueJy88eT>I4s~Pp#*{jT^R&hp2 z63H#>dFE=kd-o1Z4|Ftmh~n9cb6Re#{??BQLgdw|qem>q^-&GwOGNUXJ2Cn$(o`cl ztCmv6?yXv_S{$NGXEohrfobSUo$v=|XnC{qz!f}AD);%t>Cm$$5PcdE5{6UTAa}8D^#Sf;|hL7)B91zKbw?pk|LEQALs2*u5g58 zq1Xxanrb2lJBnuIrkh>NVoQkT$t?DTmxqPxi<}|Dx>aIKT?#&AH%s3GCF1dl{flfi z;RcDcgc5Jd@TdgkqjQ&A8mO{Y@886!;su5e$SkU;Q_`Q+95W142~GCVu0 zR37#^#rH9Sg>GK+DO>GmAb2}yx`ljc*P18Qg*I(|fiS+Mh{7O_m+2m$;>VnB{zhnCwEEhZ*e@?V zY$LErX&xIb(^EC_T$BZ<@0}y64z%`D(og$)R0FM6!B+TrT%fqx9&P<71I;b+*Rs|* zvZkCr!pKhWQ>b~%TtyJbLl2rx@v9aiV`%LQkPzcKQe2=jtPC({=90cCE8x-2tY?9U z#Pzui;x7kky&#*?*WD;8DY>*Vm=~a((o8ZAYsR%w9e&s)y-Yx>`fwRKsl|+RzTWUnNSa%9}S-xi`L~5jp!uIXR>E(sW-c*!_>UgOS21 zKBxLjdG;dTJUu$eJf^66*Okb*u4iu*)y_ipCr+r3Iz=29WO8HpIoqc;fDb}h_fN_= z&zNq4ZKCk)q$Z4(T#I}W?94e}9_Y|TpKjwmH%`eXp;%JjlS}B_MIWFO)nA^^U)eZc z3Kjqlh4UXKUw6sJR~gI5;s2>1$ykIcaqbzOj-yaq+vaV6$+bwT3Cro=hg_r~aZ5=xcT>Y+qR$gP29zPs zGn8Ft=w+AIa7NQvF*72e|DSI~s8w8&Wy2wNvdiKQSP*YfTiAiY&)(KQ2P)zX`}AVs zPUHP{3#ay19^X=GcAncN6lH{9g~rDB6Xhgv{67897yAhzjg6uYRDxHea;hWi8Io(= zI}E;Y%Lf)NS;6&J!37e`Q!6t)03gVePF-ct{Ub_;X%Bdhz=6TZ`!|->Dc+PR-7FW` zceBBpNH>(XzEn86;+oFXJ@DmdiEl-26WqQsRqbmJb=PH!G%SAXz*7g-9tlaXiZw{%szIZ@B3JE1l<_rI{e(Q-{|gyM8Zt&Uw6 zX>~Qdt5o!gq9Zv_6Z3-tRmjxtp@RQJ8|ZU|w`L9|t}wkvMeVNr(akDFDVu183C zi_y$cn2Ujuv}W0pSVe_1*DJpo*3Opc{7_4AFLr0NAQ#Pg{CbW`8uJUw(y0GNpRiXG z3Kq@0E_9oW3iYL0=S#{~p^QUO{W*&V^4?+2Lpy3x*xsX2R*ss2JX6yIm7sT^nK`;M8-;ml{;nMUR3P$=-CtZ%~WSxQ04&t)+mWoy!e8=X$IWJw5eu zjwz99W)P_xc92Q9E1O1|rlI7%LzW}&;nC9AJfBZQCTu{gly>Bkm&n#vd#{it7r}aE zEFM`~&HRA&5obOdJgi#HS?4OG`K!qHt7`Zpaz$9}1c;3`Rtq9U#3~*8lo1|(@*i?} zefVK<|BBiqYz$GeOD(O{EU%`+cnYJvI75>>7HJejA=Ir)*RZPOGHbY39jg2T+pl`q z{?UdI6A-+cCd_sEe$Q0DGHj3Pyz$0F+-i2r!$iH>fHiUKWwMjkM0bMiPlv4usw!9dG{=PP7BXJP z0*KaYhi$>0Aj<=eAOl%wF@k6+ zV^qJ7S06{XKytzJF61M`{j-WFINAk26>u{8T=C_OV3+&-=DFFLBiP4M&SIja2y5gY zsc9mCBiBbHn!@w_jj`0hzyMl3e7E0QzZ-%-YSMu$ur;9mM3Qe38KucNm|=8tfN*BM z09)4DDj3g|pHYBA@7|+#YmYM&R*Uv}&QYPHMky2C8f?qX*>~F~=x{*u*iBhn1gzjj z)X<)$ayE8SVsek;^ZMyEU zPf8U(YLYMJ_c7+Y{oXjdt$h+6JmLRUJT29F2%ohA6_Eq{lt_HoZaO2^!0Q|I$S`JX z$AaN=7gz^-L1r2xb#{Omq!m$9$+R;+X`5ShCLs{-G#Bri))$s-8FUB|C}x&rQOhV%({0^AEKpX zcu{Rz`jc~CG(Gd~(_3`LewadhZ7tW)FSl}=0M)Te|893e==fny zF`1=mF55@WkVS5@xEQW5262zS%HHydv~(8@F*EDI%rm!)lGP1Rqp$w=)cL`J{`q)bRUET4t>K&%x()K<(je-FmuyLu~VNB#6XRlmzqoIGDh=AZ>M-T}06Ek__+s=b9YIs0no zcB~WoeS4$TzN%u1j;?MmsNcJ^w)uMC?|A=M1>cWnV zaQRV^hH5j<)m|K|f!=cIc%BZ&B<*3$qx0A+5Zh-31cTB{MOLl z%&3M(CkbfN#|aB)6bj|KR>}}>_Igva_uHTu=k(-DvQ8Z!)rf}T{5zEQ=L&&>@YgWw zAZ-D!ocyCPhm^6zKb%mj70LYTN?>7G2xk^BikR0Y6;o4FA0)5LxN|+`#+ICs!&d?d zXVxUV&dme+Ap{#uU_k6mcB0|gt_)rLUZOug5*jV;a4et!wdDa&hWWP4eMRyiXP2Rv zS^=i1_?WqRWBmN!xC3trK^||8Q10#RWxhOuQVaKZlOSQpj7&~udsL3)D>Y3-Kk#LT z+Sv59;(cEinbsa@4ekNs_AtXT+-rwlsIhl7r_sGy)v9u|>G_*-v7iOgR&n+_2MgBecqeu$Jg2#txu3Lc ztW)ibTkx1;)By>vIpRfcnOk<%6W~MsjLtfP`t4VTD3UP}=T{uwsinnSPnFl{yUsEn z`4%I)8nc17{KEL>t6x3p>+_SmGzUQ?pf2!~!v{OG`O0<)e9Um((5<7Ld_92< z>|XYWNtn8Mr^iL0p^XQ9_}T^LqxgjV;0^A?Sr6NbCMP2Z z|F9H62(zBwu`3&9t9Zr5{O{XH9f#y?hK7a<^CCEfLYW3s+)fwN$K61>EQzMGct=y@{1~`^iL_(0{~Ad5TgJ9 literal 0 HcmV?d00001 diff --git a/hosts/system76/config/bob/config.json b/hosts/system76/config/bob/config.json new file mode 100644 index 0000000..45f1831 --- /dev/null +++ b/hosts/system76/config/bob/config.json @@ -0,0 +1,3 @@ +{ + "add_neovim_binary_to_path": true +} \ No newline at end of file diff --git a/hosts/system76/config/bottom/bottom.toml b/hosts/system76/config/bottom/bottom.toml new file mode 100644 index 0000000..0f86c4c --- /dev/null +++ b/hosts/system76/config/bottom/bottom.toml @@ -0,0 +1,317 @@ +# This is a default config file for bottom. All of the settings are commented +# out by default; if you wish to change them uncomment and modify as you see +# fit. + +# This group of options represents a command-line option. Flags explicitly +# added when running (ie: btm -a) will override this config file if an option +# is also set here. +[flags] +# Whether to hide the average cpu entry. +#hide_avg_cpu = false + +# Whether to use a dedicated row for the average cpu entry +#average_cpu_row = false + +# Whether to use dot markers rather than braille. +#dot_marker = false + +# The update rate of the application. +#rate = "1s" + +# Whether to put the CPU legend to the left. +#cpu_left_legend = false + +# Whether to set CPU% on a process to be based on the total CPU or just current usage. +#current_usage = false + +# Whether to set CPU% on a process to be based on the total CPU or per-core CPU% (not divided by the number of cpus). +#unnormalized_cpu = false + +# Whether to group processes with the same name together by default. Doesn't do anything +# if tree is set to true or --tree is set. +#group_processes = false + +# Whether to make process searching case sensitive by default. +#case_sensitive = false + +# Whether to make process searching look for matching the entire word by default. +#whole_word = false + +# Whether to make process searching use regex by default. +#regex = false + +# The temperature unit. One of the following, defaults to "c" for Celsius: +#temperature_type = "c" +##temperature_type = "k" +##temperature_type = "f" +##temperature_type = "kelvin" +##temperature_type = "fahrenheit" +##temperature_type = "celsius" + +# The default time interval (in milliseconds). +#default_time_value = "60s" + +# The time delta on each zoom in/out action (in milliseconds). +#time_delta = 15000 + +# Hides the time scale. +#hide_time = false + +# Override layout default widget +#default_widget_type = "proc" +#default_widget_count = 1 + +# Expand selected widget upon starting the app +#expanded = true + +# Use basic mode +#basic = false + +# Use the old network legend style +#use_old_network_legend = false + +# Remove space in tables +#hide_table_gap = false + +# Show the battery widgets +#battery = false + +# Disable mouse clicks +#disable_click = false + +# Disable keyboard shortcuts +#disable_keys = false + +# Show memory values in the processes widget as values by default +#process_memory_as_value = false + +# Show tree mode by default in the processes widget. +#tree = false + +# Shows an indicator in table widgets tracking where in the list you are. +#show_table_scroll_position = false + +# Show processes as their commands by default in the process widget. +#process_command = false + +# Displays the network widget with binary prefixes. +#network_use_binary_prefix = false + +# Displays the network widget using bytes. +#network_use_bytes = false + +# Displays the network widget with a log scale. +#network_use_log = false + +# Hides advanced options to stop a process on Unix-like systems. +#disable_advanced_kill = false + +# Prevents performing any actions that affect the system (e.g. stopping processes). +#read_only = false + +# Hides the kernel threads +#hide_k_threads = false + +# Hide GPU(s) information +#disable_gpu = false + +# Shows cache and buffer memory +#enable_cache_memory = false + +# Subtract freeable ARC from memory usage +#free_arc = false + +# How much data is stored at once in terms of time. +#retention = "10m" + +# Where to place the legend for the memory widget. One of "none", "top-left", "top", "top-right", "left", "right", "bottom-left", "bottom", "bottom-right". +#memory_legend = "top-right" + +# Where to place the legend for the network widget. One of "none", "top-left", "top", "top-right", "left", "right", "bottom-left", "bottom", "bottom-right". +#network_legend = "top-right" + + +# Processes widget configuration +#[processes] +# The columns shown by the process widget. The following columns are supported (the GPU columns are only available if the GPU feature is enabled when built): +# PID, Name, CPU%, Mem%, R/s, W/s, T.Read, T.Write, User, State, Time, GMem%, GPU%, Nice, Priority +#columns = ["PID", "Name", "CPU%", "Mem%", "Virt", "R/s", "W/s", "T.Read", "T.Write", "User", "State", "GMem%", "GPU%", "Priority"] + +# Gather process child thread information +#get_threads = false + + +# CPU widget configuration +#[cpu] +# One of "all" (default), "average"/"avg" +#default = "average" + + +# Disk widget configuration +#[disk] +# The columns shown by the process widget. The following columns are supported: +# Disk, Mount, Used, Free, Total, Used%, Free%, R/s, W/s +#columns = ["Disk", "Mount", "Used", "Free", "Total", "Used%", "R/s", "W/s"] + +# By default, there are no disk name filters enabled. These can be turned on to filter out specific data entries if you +# don't want to see them. An example use case is provided below. +#[disk.name_filter] +# Whether to ignore any matches. Defaults to true. +#is_list_ignored = true + +# A list of filters to try and match. +#list = ["/dev/sda\\d+", "/dev/nvme0n1p2"] + +# Whether to use regex. Defaults to false. +#regex = true + +# Whether to be case-sensitive. Defaults to false. +#case_sensitive = false + +# Whether to be require matching the whole word. Defaults to false. +#whole_word = false + +# By default, there are no mount name filters enabled. An example use case is provided below. +#[disk.mount_filter] +# Whether to ignore any matches. Defaults to true. +#is_list_ignored = true + +# A list of filters to try and match. +#list = ["/mnt/.*", "/boot"] + +# Whether to use regex. Defaults to false. +#regex = true + +# Whether to be case-sensitive. Defaults to false. +#case_sensitive = false + +# Whether to be require matching the whole word. Defaults to false. +#whole_word = false + + +# Temperature widget configuration +#[temperature] +# By default, there are no temperature sensor filters enabled. An example use case is provided below. +#[temperature.sensor_filter] +# Whether to ignore any matches. Defaults to true. +#is_list_ignored = true + +# A list of filters to try and match. +#list = ["cpu", "wifi"] + +# Whether to use regex. Defaults to false. +#regex = false + +# Whether to be case-sensitive. Defaults to false. +#case_sensitive = false + +# Whether to be require matching the whole word. Defaults to false. +#whole_word = false + + +# Network widget configuration +#[network] +# By default, there are no network interface filters enabled. An example use case is provided below. +#[network.interface_filter] +# Whether to ignore any matches. Defaults to true. +#is_list_ignored = true + +# A list of filters to try and match. +#list = ["virbr0.*"] + +# Whether to use regex. Defaults to false. +#regex = true + +# Whether to be case-sensitive. Defaults to false. +#case_sensitive = false + +# Whether to be require matching the whole word. Defaults to false. +#whole_word = false + + +# These are all the components that support custom theming. Note that colour support +# will depend on terminal support. +#[styles] # Uncomment if you want to use custom styling +# Built-in themes. Valid values are: +# - "default" +# - "default-light" +# - "gruvbox" +# - "gruvbox-light" +# - "nord" +# - "nord-light". +# +# This will have the lowest precedence if a custom colour palette is set, +# or overridden if the command-line flag for a built-in theme is set. +#theme = "default" + +#[styles.cpu] +#all_entry_color = "green" +#avg_entry_color = "red" +#cpu_core_colors = ["light magenta", "light yellow", "light cyan", "light green", "light blue", "cyan", "green", "blue"] + +#[styles.memory] +#ram_color = "light magenta" +#cache_color = "light red" +#swap_color = "light yellow" +#arc_color = "light cyan" +#gpu_colors = ["light blue", "light red", "cyan", "green", "blue", "red"] + +#[styles.network] +#rx_color = "light magenta" +#tx_color = "light yellow" +#rx_total_color = "light cyan" +#tx_total_color = "light green" + +#[styles.battery] +#high_battery_color = "green" +#medium_battery_color = "yellow" +#low_battery_color = "red" + +#[styles.tables] +#headers = {color = "light blue", bold = true} + +#[styles.graphs] +#graph_color = "gray" +#legend_text = {color = "gray"} + +#[styles.widgets] +#border_color = "gray" +#selected_border_color = "light blue" +#widget_title = {color = "gray"} +#text = {color = "gray"} +#selected_text = {color = "black", bg_color = "light blue"} +#disabled_text = {color = "dark gray"} + +# Only on Linux +#thread_text = {color = "green"} + +# Layout - layouts follow a pattern like this: +# [[row]] represents a row in the application. +# [[row.child]] represents either a widget or a column. +# [[row.child.child]] represents a widget. +# +# All widgets must have the type value set to one of ["cpu", "mem", "proc", "net", "temp", "disk", "empty"]. +# All layout components have a ratio value - if this is not set, then it defaults to 1. +# The default widget layout: +#[[row]] +# ratio=30 +# [[row.child]] +# type="cpu" +#[[row]] +# ratio=40 +# [[row.child]] +# ratio=4 +# type="mem" +# [[row.child]] +# ratio=3 +# [[row.child.child]] +# type="temp" +# [[row.child.child]] +# type="disk" +#[[row]] +# ratio=30 +# [[row.child]] +# type="net" +# [[row.child]] +# type="proc" +# default=true diff --git a/hosts/system76/config/glow/glow.yml b/hosts/system76/config/glow/glow.yml new file mode 100644 index 0000000..271e9a1 --- /dev/null +++ b/hosts/system76/config/glow/glow.yml @@ -0,0 +1,8 @@ +# style name or JSON path (default "auto") +style: "auto" +# mouse support (TUI-mode only) +mouse: false +# use pager to display markdown +pager: false +# word-wrap at width +width: 80 diff --git a/hosts/system76/config/gtk-2.0/gtkfilechooser.ini b/hosts/system76/config/gtk-2.0/gtkfilechooser.ini new file mode 100644 index 0000000..8f4b507 --- /dev/null +++ b/hosts/system76/config/gtk-2.0/gtkfilechooser.ini @@ -0,0 +1,11 @@ +[Filechooser Settings] +LocationMode=path-bar +ShowHidden=false +ShowSizeColumn=true +GeometryX=3336 +GeometryY=579 +GeometryWidth=1008 +GeometryHeight=692 +SortColumn=name +SortOrder=ascending +StartupMode=recent diff --git a/hosts/system76/config/gtk-3.0/bookmarks b/hosts/system76/config/gtk-3.0/bookmarks new file mode 100644 index 0000000..db3fbb3 --- /dev/null +++ b/hosts/system76/config/gtk-3.0/bookmarks @@ -0,0 +1,6 @@ +file:///home/connor/docs/revolution +file:///home/connor/docs/lightburn +file:///home/connor/docs +file:///home/connor/docs/canonical_app +file:///home/connor/downloads +file:///tmp diff --git a/hosts/system76/config/mimeapps.list b/hosts/system76/config/mimeapps.list new file mode 100644 index 0000000..d6a46fe --- /dev/null +++ b/hosts/system76/config/mimeapps.list @@ -0,0 +1,5 @@ +[Added Associations] +application/x-compressed-tar=xarchiver.desktop;org.gnome.Nautilus.desktop; + +[Default Applications] +x-scheme-handler/claude-cli=claude-code-url-handler.desktop diff --git a/hosts/system76/config/mpd/mpd.conf b/hosts/system76/config/mpd/mpd.conf new file mode 100644 index 0000000..d63e472 --- /dev/null +++ b/hosts/system76/config/mpd/mpd.conf @@ -0,0 +1,419 @@ +# An example configuration file for MPD. +# Read the user manual for documentation: http://www.musicpd.org/doc/user/ + + +# Files and directories ####################################################### +# +# This setting controls the top directory which MPD will search to discover the +# available audio files and add them to the daemon's online database. This +# setting defaults to the XDG directory, otherwise the music directory will be +# be disabled and audio files will only be accepted over ipc socket (using +# file:// protocol) or streaming files over an accepted protocol. +# +music_directory "~/audio/music" +# +# This setting sets the MPD internal playlist directory. The purpose of this +# directory is storage for playlists created by MPD. The server will use +# playlist files not created by the server but only if they are in the MPD +# format. This setting defaults to playlist saving being disabled. +# +playlist_directory "~/audio/playlists" +# +# This setting sets the location of the MPD database. This file is used to +# load the database at server start up and store the database while the +# server is not up. This setting defaults to disabled which will allow +# MPD to accept files over ipc socket (using file:// protocol) or streaming +# files over an accepted protocol. +# +db_file "~/audio/mpd/database" + +# These settings are the locations for the daemon log files for the daemon. +# +# The special value "syslog" makes MPD use the local syslog daemon. This +# setting defaults to logging to syslog. +# +# If you use systemd, do not configure a log_file. With systemd, MPD +# defaults to the systemd journal, which is fine. +# +log_file "~/audio/mpd/log" + +# This setting sets the location of the file which stores the process ID +# for use of mpd --kill and some init scripts. This setting is disabled by +# default and the pid file will not be stored. +# +# If you use systemd, do not configure a pid_file. +# +pid_file "~/audio/mpd/pid" + +# This setting sets the location of the file which contains information about +# most variables to get MPD back into the same general shape it was in before +# it was brought down. This setting is disabled by default and the server +# state will be reset on server start up. +# +state_file "~/audio/mpd/state" +# +# The location of the sticker database. This is a database which +# manages dynamic information attached to songs. +# +sticker_file "~/audio/mpd/sticker.sql" +# +############################################################################### + + +# General music daemon options ################################################ +# +# This setting specifies the user that MPD will run as. MPD should never run as +# root and you may use this setting to make MPD change its user ID after +# initialization. This setting is disabled by default and MPD is run as the +# current user. +# +#user "nobody" +# +# This setting specifies the group that MPD will run as. If not specified +# primary group of user specified with "user" setting will be used (if set). +# This is useful if MPD needs to be a member of group such as "audio" to +# have permission to use sound card. +# +#group "nogroup" +# +# This setting sets the address for the daemon to listen on. Careful attention +# should be paid if this is assigned to anything other than the default, any. +# This setting can deny access to control of the daemon. Not effective if +# systemd socket activation is in use. +# +# For network +#bind_to_address "any" +# +# And for Unix Socket +#bind_to_address "~/.mpd/socket" +# +# This setting is the TCP port that is desired for the daemon to get assigned +# to. +# +#port "6600" +# +# Suppress all messages below the given threshold. Use "verbose" for +# troubleshooting. Available setting arguments are "notice", "info", "verbose", +# "warning" and "error". +# +#log_level "notice" +# +# Setting "restore_paused" to "yes" puts MPD into pause mode instead +# of starting playback after startup. +# +#restore_paused "no" +# +# This setting enables MPD to create playlists in a format usable by other +# music players. +# +#save_absolute_paths_in_playlists "no" +# +# This setting defines a list of tag types that will be extracted during the +# audio file discovery process. The complete list of possible values can be +# found in the user manual. +#metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc" +# +# This example just enables the "comment" tag without disabling all +# the other supported tags: +#metadata_to_use "+comment" +# +# This setting enables automatic update of MPD's database when files in +# music_directory are changed. +# +#auto_update "yes" +# +# Limit the depth of the directories being watched, 0 means only watch +# the music directory itself. There is no limit by default. +# +#auto_update_depth "3" +# +############################################################################### + + +# Symbolic link behavior ###################################################### +# +# If this setting is set to "yes", MPD will discover audio files by following +# symbolic links outside of the configured music_directory. +# +#follow_outside_symlinks "yes" +# +# If this setting is set to "yes", MPD will discover audio files by following +# symbolic links inside of the configured music_directory. +# +#follow_inside_symlinks "yes" +# +############################################################################### + + +# Zeroconf / Avahi Service Discovery ########################################## +# +# If this setting is set to "yes", service information will be published with +# Zeroconf / Avahi. +# +#zeroconf_enabled "yes" +# +# The argument to this setting will be the Zeroconf / Avahi unique name for +# this MPD server on the network. %h will be replaced with the hostname. +# +#zeroconf_name "Music Player @ %h" +# +############################################################################### + + +# Permissions ################################################################# +# +# If this setting is set, MPD will require password authorization. The password +# setting can be specified multiple times for different password profiles. +# +#password "password@read,add,control,admin" +# +# This setting specifies the permissions a user has who has not yet logged in. +# +#default_permissions "read,add,control,admin" +# +############################################################################### + + +# Database ####################################################################### +# +# An example of a database section instead of the old 'db_file' setting. +# It enables mounting other storages into the music directory. +# +#database { +# plugin "simple" +# path "~/.local/share/mpd/db" +# cache_directory "~/.local/share/mpd/cache" +#} +# +# An example of database config for a satellite setup +# +#music_directory "nfs://fileserver.local/srv/mp3" +#database { +# plugin "proxy" +# host "other.mpd.host" +# port "6600" +#} + +# Input ####################################################################### +# +input { + plugin "curl" +# proxy "proxy.isp.com:8080" +# proxy_user "user" +# proxy_password "password" +} + +# +############################################################################### + +# Audio Output ################################################################ +# +# MPD supports various audio output types, as well as playing through multiple +# audio outputs at the same time, through multiple audio_output settings +# blocks. Setting this block is optional, though the server will only attempt +# autodetection for one sound card. +# +# An example of an ALSA output: +# +#audio_output { +# type "alsa" +# name "My ALSA Device" +## device "hw:0,0" # optional +## mixer_type "hardware" # optional +## mixer_device "default" # optional +## mixer_control "PCM" # optional +## mixer_index "0" # optional +#} +# +# An example of an OSS output: +# +#audio_output { +# type "oss" +# name "My OSS Device" +## device "/dev/dsp" # optional +## mixer_type "hardware" # optional +## mixer_device "/dev/mixer" # optional +## mixer_control "PCM" # optional +#} +# +# An example of a shout output (for streaming to Icecast): +# +#audio_output { +# type "shout" +# encoder "vorbis" # optional +# name "My Shout Stream" +# host "localhost" +# port "8000" +# mount "/mpd.ogg" +# password "hackme" +# quality "5.0" +# bitrate "128" +# format "44100:16:1" +## protocol "icecast2" # optional +## user "source" # optional +## description "My Stream Description" # optional +## url "http://example.com" # optional +## genre "jazz" # optional +## public "no" # optional +## timeout "2" # optional +## mixer_type "software" # optional +#} +# +# An example of a recorder output: +# +#audio_output { +# type "recorder" +# name "My recorder" +# encoder "vorbis" # optional, vorbis or lame +# path "/var/lib/mpd/recorder/mpd.ogg" +## quality "5.0" # do not define if bitrate is defined +# bitrate "128" # do not define if quality is defined +# format "44100:16:1" +#} +# +# An example of a httpd output (built-in HTTP streaming server): +# +#audio_output { +# type "httpd" +# name "My HTTP Stream" +# encoder "vorbis" # optional, vorbis or lame +# port "8000" +# bind_to_address "0.0.0.0" # optional, IPv4 or IPv6 +## quality "5.0" # do not define if bitrate is defined +# bitrate "128" # do not define if quality is defined +# format "44100:16:1" +# max_clients "0" # optional 0=no limit +#} +# +# An example of a pulseaudio output (streaming to a remote pulseaudio server) +# +audio_output { +type "pulse" +name "PulseAudio MPD Output" +# server "remote_server" # optional +# sink "remote_server_sink" # optional +# media_role "media_role" #optional +} +# +# An example of a winmm output (Windows multimedia API). +# +#audio_output { +# type "winmm" +# name "My WinMM output" +## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional +# or +## device "0" # optional +## mixer_type "hardware" # optional +#} +# +# An example of a wasapi output (Windows multimedia API). +# +#audio_output { +# type "wasapi" +# name "My WASAPI output" +## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional +# or +## device "0" # optional +## mixer_type "hardware" # optional +## Exclusive mode blocks all other audio source, and get best audio quality without resampling. +## exclusive "no" # optional +## Enumerate all devices in log. +## enumerate "no" # optional +#} +# +# An example of an openal output. +# +#audio_output { +# type "openal" +# name "My OpenAL output" +## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional +#} +# +# An example of an sndio output. +# +#audio_output { +# type "sndio" +# name "sndio output" +# mixer_type "hardware" +#} +# +# An example of an OS X output: +# +#audio_output { +# type "osx" +# name "My OS X Device" +## device "Built-in Output" # optional +## channel_map "-1,-1,0,1" # optional +#} +# +## Example "pipe" output: +# +#audio_output { +# type "pipe" +# name "my pipe" +# command "aplay -f cd 2>/dev/null" +## Or if you're want to use AudioCompress +# command "AudioCompress -m | aplay -f cd 2>/dev/null" +## Or to send raw PCM stream through PCM: +# command "nc example.org 8765" +# format "44100:16:2" +#} +# +## An example of a null output (for no audio output): +# +#audio_output { +# type "null" +# name "My Null Output" +# mixer_type "none" # optional +#} +# +############################################################################### + + +# Normalization automatic volume adjustments ################################## +# +# This setting specifies the type of ReplayGain to use. This setting can have +# the argument "off", "album", "track" or "auto". "auto" is a special mode that +# chooses between "track" and "album" depending on the current state of +# random playback. If random playback is enabled then "track" mode is used. +# See for +# more details about ReplayGain. +# This setting is off by default. +# +replaygain "album" +# +# This setting sets the pre-amp used for files that have ReplayGain tags. By +# default this setting is disabled. +# +#replaygain_preamp "0" +# +# This setting sets the pre-amp used for files that do NOT have ReplayGain tags. +# By default this setting is disabled. +# +#replaygain_missing_preamp "0" +# +# This setting enables or disables ReplayGain limiting. +# MPD calculates actual amplification based on the ReplayGain tags +# and replaygain_preamp / replaygain_missing_preamp setting. +# If replaygain_limit is enabled MPD will never amplify audio signal +# above its original level. If replaygain_limit is disabled such amplification +# might occur. By default this setting is enabled. +# +#replaygain_limit "yes" +# +# This setting enables on-the-fly normalization volume adjustment. This will +# result in the volume of all playing audio to be adjusted so the output has +# equal "loudness". This setting is disabled by default. +# +volume_normalization "no" +# +############################################################################### + +# Character Encoding ########################################################## +# +# If file or directory names do not display correctly for your locale then you +# may need to modify this setting. +# +#filesystem_charset "UTF-8" +# +############################################################################### diff --git a/hosts/system76/config/mpv/script-opts/subs2srs.conf b/hosts/system76/config/mpv/script-opts/subs2srs.conf new file mode 100644 index 0000000..cd67003 --- /dev/null +++ b/hosts/system76/config/mpv/script-opts/subs2srs.conf @@ -0,0 +1,326 @@ +### +### Main mpvacious configuration file. +### Save this file to ~/.config/mpv/script-opts/subs2srs.conf +### + +## +## General settings +## + +# Anki deck for new cards. Subdecks are supported. +deck_name=Italian + +# Model names are listed in `Tools -> Manage note types` menu in Anki. +# If you don't have a model for Japanese, get it from +# https://tatsumoto.neocities.org/blog/setting-up-anki.html#import-an-example-mining-deck +model_name=Italian + +# Field names as they appear in the selected note type. +# If you set `audio_field` or `image_field` empty, +# the corresponding media file will not be created. +sentence_field=Italian +secondary_field=English +audio_field=Audio +image_field=Image + +# The tag(s) added to new notes. Spaces separate multiple tags. +# Leave nothing after `=` to disable tagging completely. +# The following substitutions are supported: +# %n - the name of the video +# %t - timestamp +# %d - episode number (if none, returns nothing) +# %e - SUBS2SRS_TAGS environment variable (if you have it set) +note_tag=subs2srs +#note_tag=%n %t %e +#note_tag= + +# Size and name of the font used in the menu +menu_font_size=24 +menu_font_name=Noto Serif CJK JP + +# AnkiConnect server address +# The default address for a server on the same device is http://127.0.0.1:8765. +# If Anki is running and AnkiConnect is installed, opening this URL should +# open a page showing the current version of AnkiConnect. +# Change this if you have changed webBindAddress in AnkiConnect's settings. +ankiconnect_url=127.0.0.1:8765 + +## +## Toggleables. +## Possible values: `yes` or `no`. +## + +# Use FFmpeg encoder instead of mpv encoder +# If mpvacious encounters problems creating audio and images for Anki cards, +# setting this to `yes` should fix them. +# +# You need to install ffmpeg and add it to the PATH first. +# https://wiki.archlinux.org/title/FFmpeg +# https://www.ffmpeg.org/download.html +# +# FFmpeg encoder is unable to create audio and images from remote content (like YouTube videos). +use_ffmpeg=no + +# Automatically create the deck for new cards (see deck_name option) +create_deck=yes + +# Allow making notes with the same sentence field. +allow_duplicates=no + +# When mpv starts, automatically copy subs to the clipboard as they appear on screen. +# This option can be also toggled in the addon's OSD menu. +autoclip=yes + +# Possible options: +# "disabled" - autocopy is disabled +# "clipboard" - copy to the system clipboard (e.g. uses xclip) +# "goldendict" - send the subtitle string to goldendict (goldendict-ng). +# "custom_command" - run any custom command specified in `autoclip_custom_args`. +autoclip_method=clipboard + +# Command to run when autoclip is enabled and set to "custom_command". +# If empty, nothing will be done. +# If set, calls the external program. +# The following substitutions are supported: +# %MPV_PRIMARY% - primary subtitle line +# %MPV_SECONDARY% - secondary subtitle line +autoclip_custom_args=/usr/local/bin/goldendict %MPV_PRIMARY% + +# Remove all spaces from the primary subtitle text. +# Set this to "yes" for languages without spaces like Japanese. +# However, if mpvacious detects any latin characters in the string, spaces will not be removed. +nuke_spaces=yes + +# if set to `yes`, the volume of the outputted audio file +# depends on the volume of the player at the time of export +tie_volumes=no + +# Remove text in parentheses and leading/trailing spaces or +# newlines that may interfere with Rikaitan before copying +# subtitles to the clipboard +clipboard_trim_enabled=yes + +# Add media to fields before or after existing data +append_media=yes + +# Remove text in brackets before substituting %n into tag +tag_nuke_brackets=yes + +# Remove text in parentheses before substituting %n into tag +tag_nuke_parentheses=no + +# Remove the episode number before substituting %n into tag +tag_del_episode_num=yes + +# Remove everything after the episode number before substituting %n into tag +# Does nothing if the previous option tag_del_episode_num is disabled. +tag_del_after_episode_num=yes + +# Convert filename to lowercase for tagging. +tag_filename_lowercase=no + +# Lets you disable anki browser manipulation by mpvacious. +disable_gui_browse=no + +# Play audio clip automatically in background +# after note creation (or note update) to ensure that the audio is correctly cut. +preview_audio=no + +# When selecting subtitle lines, print them on the screen. +show_selected_text=yes + +# For convenience, read config file from disk before a card is made. +# Useful if you change your config often since you won't have to restart mpv every time, +# but reading from disk takes some time. +reload_config_before_card_creation=yes + +## +## Image settings +## + +# Snapshot format. +# Do not switch to `jpg` unless your computer doesn't support `webp` or `avif`. +snapshot_format=avif +#snapshot_format=webp +#snapshot_format=jpg + +# Quality of produced image files. 0 = lowest, 100=highest. +snapshot_quality=15 + +# Image dimensions +# If either (but not both) of the width or height parameters is -2, +# the value will be calculated preserving the aspect-ratio. +snapshot_width=-2 +snapshot_height=200 + +# Screenshot (yes, no) +# Usually not required. +# When making Anki cards, create a screenshot (by calling 'screenshot-to-file') instead of a snapshot. +# If set to yes, image dimensions and quality cannot be controlled due to mpv limitations. +# 'snapshot_format' is still respected. +# When using this, a custom sync server is recommended, e.g. https://github.com/ankicommunity/anki-sync-server +screenshot=no + +# The exact image template used when exporting to Anki's image field. +# Adding data-editor-shrink="true" makes the image smaller by default within the Anki viewer +# on versions 2.1.53+ (equivalent of double-clicking on the image). +# You likely would not want to change this unless you know what you are doing. +image_template=snapshot +#image_template=snapshot + +# Similar to image_template but with audio. +# Normally, the user doesn't need to change this setting, +# but it may be needed for audio files to be playable on AnkiWeb. +audio_template=[sound:%s] +#audio_template= + +## +## Animated snapshots +## Animated snapshots will capture the video from the start to the end times selected when using mpvacious. +## + +# If enabled, generates animated snapshots (something like GIFs) instead of static snapshots. +animated_snapshot_enabled=no + +# Animated snapshot format. Like "snapshot_format" but for animated images. Can be either avif or webp. +animated_snapshot_format=avif +#animated_snapshot_format=webp + +# Number of frame per seconds, a value between 0 and 30 (30 included) +# Higher values will increase both quality and file size, lower values will do the opposite +animated_snapshot_fps=10 + +# Animated snapshot dimensions +# If either (but not both) of the width or height parameters is -2, +# the value will be calculated preserving the aspect-ratio. +animated_snapshot_width=-2 +animated_snapshot_height=200 + +# Quality of the produced animation, 0 = lowest, 100 = highest +animated_snapshot_quality=5 + +## +## Audio settings +## + +# Audio format. +# Opus is the recommended format. +audio_format=opus +#audio_format=mp3 + +# Container for opus files. +# It may be required to use a different container for Opus. +# This is the case on certain computers or devices +# which are running proprietary operating systems, e.g. AnkiMobile. Using them is discouraged. +# ・ Ogg/Opus play everywhere except AnkiWeb in Safari and AnkiMobile. +# ・ M4A (iOS 17.2 and probably even earlier) and WEBM (since iOS 17.4) play everywhere. +# ・ Opus in CAF can be used with older iOS. CAF plays only on Anki Desktop, Safari and AnkiMobile. +# ・ (iOS Lockdown Mode disables Opus support completely, +# though you may try to add an exception for AnkiMobile.) +opus_container=ogg +#opus_container=opus +#opus_container=m4a +#opus_container=webm +#opus_container=caf + +# Sane values are 16k-32k for opus, 64k-128k for mp3. +audio_bitrate=24k + +# Set a pad to the dialog timings. 0.5 = half a second. +# Pads are never applied to manually set timings. +audio_padding=0.0 +#audio_padding=0.5 + +## +## Forvo support (Rikaitan users only) +## + +# yes - fetch audio from Forvo if Rikaitan couldn't find the audio (default) +# always - always fetch audio from Forvo and replace the audio added by Rikaitan +# no - never use Forvo +use_forvo=yes + +# Vocab field should be equal to {expression} field in Rikaitan +vocab_field=VocabKanji + +# Vocab Audio field should be equal to {audio} field in Rikaitan +vocab_audio_field=VocabAudio + +## +## Misc info +## Various context information that can be written on your cards in a specified field. +## + +# yes to enable or no to disable. +miscinfo_enable=yes + +# Field name +miscinfo_field=Notes + +# Format string used to fill the misc info field. +# It supports the same substitutions as `note_tag`. HTML is supported. +miscinfo_format=%n EP%d (%t) +#miscinfo_format=From mpvacious %n at %t. + +## +## Secondary subtitles +## Mpvacious can try automatically loading secondary subtitles that will appear at the top. +## For example, you may want to load English subs alongside Japanese subs. +## +## Secondary subtitles should be present in the container. +## But if you manually set secondary sid from the command line, mpvacious won't change it. +## + +# Load secondary subtitle track automatically when a file is opened. +secondary_sub_auto_load=yes + +# Language of secondary subs. This is your native language or a language you know well. +# If you leave this parameter empty, secondary subs will NOT be automatically loaded. +secondary_sub_lang=eng,en,rus,ru +#secondary_sub_lang= + +# Hover area. +# Proportion of the top part of the mpv window where the secondary subtitles are visible when hovered over. +# Possible values: from 0.0 to 1.0 +secondary_sub_area=0.15 + +# Visibility state +# Can be set to: 'auto', 'never', 'always'. +# If set to 'never' or 'always', secondary_sub_area has no effect. +# If set to 'auto', visibility behaves according to the value of secondary_sub_area. +# Default binding to cycle this value: Ctrl+v. +secondary_sub_visibility=auto + +# Perform two-pass loudness normalization. +# Parameter explanation can be found e.g. at: +# https://auphonic.com/blog/2013/01/07/loudness-targets-mobile-audio-podcasts-radio-tv/ +# https://auphonic.com/blog/2019/08/19/dynamic-range-processing/ +# MAKE SURE TO REMOVE loudnorm FROM CUSTOM ARGS BEFORE ENABLING. +loudnorm=no +loudnorm_target=-16 +loudnorm_range=11 +loudnorm_peak=-1.5 + +## +## Custom audio encoding arguments +## These arguments are added to the command line. +## `mpv` and `ffmpeg` accept slightly different parameters. +## Feel free to experiment for yourself, but be careful or media creation might stop working. +## + +# loudnorm IN CUSTOM ARGS IS LEFT FOR BACKWARD COMPATIBILITY. +# MAKE SURE TO REMOVE ALL MENTIONS OF loudnorm FROM CUSTOM ARGS +# (E.G. SET TO EMPTY STRINGS) BEFORE ENABLING TWO-PASS loudnorm. +# ENABLING loudnorm BOTH THROUGH THE SWITCH AND THROUGH CUSTOM ARGS +# CAN LEAD TO UNPREDICTABLE RESULTS. + +# Ffmpeg +ffmpeg_audio_args=-af loudnorm=I=-16:TP=-1.5:LRA=11:dual_mono=true +#ffmpeg_audio_args= +#ffmpeg_audio_args=-af silenceremove=1:0:-50dB + +# mpv +# mpv accepts each filter as a separate argument, e.g. --af-append=1 --af-append=2 +mpv_audio_args=--af-append=loudnorm=I=-16:TP=-1.5:LRA=11:dual_mono=true +#mpv_audio_args= +#mpv_audio_args=--af-append=silenceremove=1:0:-50dB diff --git a/hosts/system76/config/pavucontrol.ini b/hosts/system76/config/pavucontrol.ini new file mode 100644 index 0000000..d67bbba --- /dev/null +++ b/hosts/system76/config/pavucontrol.ini @@ -0,0 +1,8 @@ +[window] +width=500 +height=400 +sinkInputType=1 +sourceOutputType=1 +sinkType=0 +sourceType=1 +showVolumeMeters=1 diff --git a/hosts/system76/config/swayimg/config b/hosts/system76/config/swayimg/config new file mode 100644 index 0000000..85451d7 --- /dev/null +++ b/hosts/system76/config/swayimg/config @@ -0,0 +1,278 @@ +# Swayimg configuration file. +# vim: filetype=dosini + +# This file contains the default configuration. +# The viewer searches for the config file in the following locations: +# 1. $XDG_CONFIG_HOME/swayimg/config +# 2. $HOME/.config/swayimg/config +# 3. $XDG_CONFIG_DIRS/swayimg/config +# 4. /etc/xdg/swayimg/config + +# Any of these options can be overridden using the --config argument +# on the command line, for instance: +# $ swayimg --config="general.mode=gallery" + +################################################################################ +# General configuration +################################################################################ +[general] +# Mode at startup (viewer/slideshow/gallery) +mode = viewer +# Window size (fullscreen/image, or absolute size) +size = image +# Sway/Hyprland only: Window position (auto or absolute coordinates, e.g. 10,20) +position = auto +# Sway/Hyprland only: create floating window above the currently focused one +overlay = no +# Use window decoration (yes/no) +decoration = no +# Action performed by SIGUSR1 signal (same format as for key bindings) +sigusr1 = reload +# Action performed by SIGUSR2 signal (same format as for key bindings) +sigusr2 = next_file +# Application ID and window class name +app_id = swayimg + +################################################################################ +# Viewer mode configuration +################################################################################ +[viewer] +# Window background color (auto/extend/mirror/RGBA) +window = #00000000 +# Background for transparent images (grid/RGBA) +transparency = grid +# Default image scale (optimal/width/height/fit/fill/real/keep) +scale = optimal +# Initial image position on the window (center/top/bottom/free/...) +position = center +# Anti-aliasing mode (none/box/bilinear/bicubic/mks13) +antialiasing = mks13 +# Loop image list: jump to first image when end of list is reached (yes/no) +loop = yes +# Number of previously viewed images to store in cache +history = 1 +# Number of preloaded images (read ahead) +preload = 1 + +################################################################################ +# Slideshow mode configuration +################################################################################ +[slideshow] +# Slideshow image display time (seconds) +time = 3 +# Window background color (auto/extend/mirror/RGBA) +window = auto +# Background for transparent images (grid/RGBA) +transparency = #000000ff +# Default image scale (optimal/width/height/fit/fill/real) +scale = fit +# Initial image position on the window (center/top/bottom/free/...) +position = center +# Anti-aliasing mode (none/box/bilinear/bicubic/mks13) +antialiasing = mks13 + +################################################################################ +# Gallery mode configuration +################################################################################ +[gallery] +# Height and width of each thumbnail (pixels) +size = 200 +# Max number of invisible thumbnails stored in memory cache +cache = 100 +# Load not only visible but also adjacent thumbnails +preload = no +# Enable/disable storing thumbnails in persistent storage (yes/no) +pstore = no +# Fill the entire tile with thumbnail (yes/no) +fill = yes +# Anti-aliasing mode for thumbnails (none/box/bilinear/bicubic/mks13) +antialiasing = mks13 +# Background color of the window (RGBA) +window = #00000000 +# Background color of non-selected tiles (RGBA) +background = #202020ff +# Background color of the selected tile (RGBA) +select = #404040ff +# Border color of the selected tile (RGBA) +border = #000000ff +# Shadow color of the selected tile (RGBA) +shadow = #000000ff + +################################################################################ +# Image list configuration +################################################################################ +[list] +# Default order (none/alpha/numeric/mtime/size/random) +order = alpha +# Reverse order (yes/no) +reverse = no +# Read directories recursively (yes/no) +recursive = no +# Add files from the same directory as the first file (yes/no) +all = no +# Enable file system monitoring for adding new images to the list (yes/no) +fsmon = yes + +################################################################################ +# Font configuration +################################################################################ +[font] +# Font name +name = monospace +# Font size (pt) +size = 14 +# Font color (RGBA) +color = #ccccccff +# Shadow color (RGBA) +shadow = #000000d0 +# Background color (RGBA) +background = #00000000 + +################################################################################ +# Image meta info scheme (format, size, EXIF, etc.) +################################################################################ +[info] +# Show on startup (yes/no) +show = no +# Text padding from window edges +padding = 10 +# Timeout to hide info (seconds, 0 to always show) +info_timeout = 5 +# Timeout to hide status message (seconds) +status_timeout = 3 + +# Display scheme for viewer mode (position = content) +[info.viewer] +top_left = +name,+format,+filesize,+imagesize,+exif +top_right = index +bottom_left = scale,frame +bottom_right = status + +# Display scheme for slideshow mode (position = content) +[info.slideshow] +top_left = none +top_right = none +bottom_left = none +bottom_right = dir,status + +# Display scheme for gallery mode (position = content) +[info.gallery] +top_left = none +top_right = index +bottom_left = none +bottom_right = name,status + +################################################################################ +# Viewer mode key binding configuration: key = action [parameters] +################################################################################ +[keys.viewer] +F1 = help +Home = first_file +End = last_file +Prior = prev_file +Next = next_file +Space = next_file +Shift+r = rand_file +Shift+d = prev_dir +d = next_dir +Shift+o = prev_frame +o = next_frame +c = skip_file +s = mode slideshow +n = animation +f = fullscreen +Return = mode gallery +Left = step_left 10 +Right = step_right 10 +Up = step_up 10 +Down = step_down 10 +Equal = zoom +10 +Plus = zoom +10 +Minus = zoom -10 +w = zoom width +Shift+w = zoom height +z = zoom fit +Shift+z = zoom fill +0 = zoom real +BackSpace = zoom optimal +k = zoom keep +Alt+s = zoom +Alt+p = position +bracketleft = rotate_left +bracketright = rotate_right +m = flip_vertical +Shift+m = flip_horizontal +a = antialiasing +r = reload +i = info +Shift+Delete = exec rm -f '%' && echo "File removed: %"; skip_file +Escape = exit +q = exit +# Mouse related +ScrollLeft = step_right 5 +ScrollRight = step_left 5 +ScrollUp = step_up 5 +ScrollDown = step_down 5 +Ctrl+ScrollUp = zoom +10 mouse +Ctrl+ScrollDown = zoom -10 mouse +Shift+ScrollUp = prev_file +Shift+ScrollDown = next_file +Alt+ScrollUp = prev_frame +Alt+ScrollDown = next_frame +MouseLeft = drag +MouseSide = prev_file +MouseExtra = next_file + +################################################################################ +# Slideshow mode key binding configuration: key = action [parameters] +################################################################################ +[keys.slideshow] +F1 = help +Home = first_file +End = last_file +Prior = prev_file +Next = next_file +Shift+r = rand_file +Shift+d = prev_dir +d = next_dir +Space = pause +i = info +f = fullscreen +Return = mode +Escape = exit +q = exit + +################################################################################ +# Gallery mode key binding configuration: key = action [parameters] +################################################################################ +[keys.gallery] +F1 = help +Home = first_file +End = last_file +Left = step_left +Right = step_right +Up = step_up +Down = step_down +Prior = page_up +Next = page_down +c = skip_file +s = mode slideshow +f = fullscreen +Return = mode viewer +a = antialiasing +r = reload +i = info +Equal = thumb +20 +Plus = thumb +20 +Minus = thumb -20 +Shift+Delete = exec rm -f '%' && echo "File removed: %"; skip_file +Escape = exit +q = exit +# Mouse related +ScrollLeft = step_right +ScrollRight = step_left +ScrollUp = step_up +ScrollDown = step_down +Ctrl+ScrollUp = thumb +20 +Ctrl+ScrollDown = thumb -20 +MouseLeft = mode viewer diff --git a/hosts/system76/config/swaync/colors.css b/hosts/system76/config/swaync/colors.css new file mode 100644 index 0000000..24513a7 --- /dev/null +++ b/hosts/system76/config/swaync/colors.css @@ -0,0 +1,19 @@ +@define-color background #121412; +@define-color foreground #CDFEFF; + +@define-color color0 #393B3A; +@define-color color1 #8FA47F; +@define-color color2 #9A9DB8; +@define-color color3 #B29C9E; +@define-color color4 #A0B483; +@define-color color5 #C9D9AE; +@define-color color6 #70FCFE; +@define-color color7 #AFF5F6; +@define-color color8 #7AABAC; +@define-color color9 #8FA47F; +@define-color color10 #9A9DB8; +@define-color color11 #B29C9E; +@define-color color12 #A0B483; +@define-color color13 #C9D9AE; +@define-color color14 #70FCFE; +@define-color color15 #AFF5F6; diff --git a/hosts/system76/config/swaync/config.json b/hosts/system76/config/swaync/config.json new file mode 100644 index 0000000..380a4ee --- /dev/null +++ b/hosts/system76/config/swaync/config.json @@ -0,0 +1,35 @@ +{ + "positionX": "right", + "positionY": "top", + "layer": "overlay", + "control-center-layer": "top", + "control-center-margin-top": 8, + "control-center-margin-bottom": 8, + "control-center-margin-right": 8, + "control-center-margin-left": 0, + "notification-icon-size": 48, + "notification-body-image-height": 100, + "notification-body-image-width": 200, + "timeout": 8, + "timeout-low": 5, + "timeout-critical": 0, + "fit-to-screen": false, + "control-center-width": 350, + "control-center-height": 700, + "notification-window-width": 350, + "widgets": ["title", "dnd", "mpris", "notifications"], + "widget-config": { + "title": { + "text": "Notifications", + "clear-all-button": true, + "button-text": "Clear All" + }, + "dnd": { + "text": "Do Not Disturb" + }, + "mpris": { + "image-size": 72, + "image-radius": 8 + } + } +} diff --git a/hosts/system76/config/swaync/style.css b/hosts/system76/config/swaync/style.css new file mode 100644 index 0000000..b29676e --- /dev/null +++ b/hosts/system76/config/swaync/style.css @@ -0,0 +1,201 @@ +@import "colors.css"; + +* { + all: unset; + font-family: Roboto, sans-serif; + font-size: 13px; +} + +/* Notification popup */ +.notification-row { + outline: none; + margin: 10px 30px; +} + +.notification-row:focus, +.notification-row:hover { + background: transparent; +} + +.notification { + background: @background; + border: 1px solid @color4; + border-radius: 12px; + padding: 0; + margin: 5px; + min-width: 500px; + opacity: 0.85; +} + +/* Urgency variants */ +.notification.critical { + border-color: @color1; +} + +.notification.low { + border-color: @color3; +} + +/* Header bar (app name + timestamp + close button) */ +.notification-row .notification-background .notification .notification-default-action .notification-content .text-box .summary { + color: @color7; + font-size: 14px; + font-weight: 600; + padding: 10px 20px; +} + +.notification-default-action { + padding: 0; + border-radius: 12px; +} + +.notification-default-action:hover { + background: rgba(255, 255, 255, 0.05); + border-radius: 12px; +} + +/* Content area */ +.notification-content { + padding: 10px 40px; +} + +.notification-icon { + min-width: 0; + min-height: 0; + opacity: 0; + margin: 20px; +} + +.notification-summary { + font-weight: 500; + color: @foreground; +} + +.notification-body { + color: @foreground; +} + +.notification-row .notification-background .notification .notification-default-action .notification-content .text-box .body { + /* Notification body */ + font-weight: normal; + background: transparent; + text-shadow: none; + padding: 5px 20px; +} + +/* Action buttons (e.g. "Reply", "Mark as read") */ +.notification-action { + background: rgba(26, 110, 207, 0.2); + border: 1px solid rgba(26, 110, 207, 0.4); + border-radius: 6px; + color: rgba(255, 255, 255, 0.8); + padding: 5px; + margin: 10px; +} + +.notification-action:hover { + background: rgba(26, 110, 207, 0.4); +} + +/* ── Control center panel ── */ + +.control-center { + background: rgba(10, 14, 22, 0.95); + border-left: 1px solid rgba(26, 110, 207, 0.3); + border-radius: 0 0 0 12px; + min-width: 500px; +} + +/* Title widget */ +.widget-title { + color: rgba(255, 255, 255, 0.9); + font-size: 15px; + font-weight: 500; + padding: 16px 16px 8px; +} + +.widget-title > button { + background: rgba(26, 110, 207, 0.2); + border: 1px solid rgba(26, 110, 207, 0.4); + border-radius: 6px; + color: rgba(255, 255, 255, 0.7); + font-size: 11px; + padding: 3px 10px; +} + +.widget-title > button:hover { + background: rgba(26, 110, 207, 0.4); +} + +/* DND toggle */ +.widget-dnd { + padding: 8px 16px; + color: rgba(255, 255, 255, 0.8); + font-size: 13px; +} + +.widget-dnd > switch { + background: rgba(255, 255, 255, 0.1); + border-radius: 12px; + border: none; +} + +.widget-dnd > switch:checked { + background: rgba(26, 110, 207, 0.7); +} + +.widget-dnd > switch slider { + background: white; + border-radius: 50%; + min-width: 18px; + min-height: 18px; + margin: 2px; +} + +/* MPRIS widget */ +.widget-mpris { + padding: 12px 16px; + background: rgba(26, 110, 207, 0.08); + border-radius: 10px; + margin: 0 8px 8px; +} + +.widget-mpris-player { + padding: 4px 0; +} + +.widget-mpris-title { + font-weight: 500; + font-size: 13px; + color: rgba(255, 255, 255, 0.9); +} + +.widget-mpris-subtitle { + font-size: 11px; + color: rgba(255, 255, 255, 0.5); +} + +/* Notification list inside control center */ +.control-center-list { + padding: 4px 8px; +} + +.control-center-list-placeholder { + color: rgba(255, 255, 255, 0.25); + font-size: 13px; +} + +/* Close buttons */ +.close-button { + background: transparent; + color: rgba(255, 255, 255, 0.4); + border-radius: 50%; + padding: 2px; + min-width: 18px; + min-height: 18px; +} + +.close-button:hover { + background: rgba(255, 74, 110, 0.3); + color: rgba(255, 255, 255, 0.9); +} diff --git a/hosts/system76/config/user-dirs.dirs b/hosts/system76/config/user-dirs.dirs new file mode 100644 index 0000000..7375b4a --- /dev/null +++ b/hosts/system76/config/user-dirs.dirs @@ -0,0 +1,15 @@ +# This file is written by xdg-user-dirs-update +# If you want to change or add directories, just edit the line you're +# interested in. All local changes will be retained on the next run. +# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped +# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an +# absolute path. No other format is supported. +# +XDG_DESKTOP_DIR="$HOME/" +XDG_DOWNLOAD_DIR="$HOME/" +XDG_TEMPLATES_DIR="$HOME/" +XDG_PUBLICSHARE_DIR="$HOME/" +XDG_DOCUMENTS_DIR="$HOME/" +XDG_MUSIC_DIR="$HOME/" +XDG_PICTURES_DIR="$HOME/" +XDG_VIDEOS_DIR="$HOME/" diff --git a/hosts/system76/config/zoom.conf b/hosts/system76/config/zoom.conf new file mode 100644 index 0000000..d05fc50 --- /dev/null +++ b/hosts/system76/config/zoom.conf @@ -0,0 +1,3 @@ +[General] +initialize_flag=1 +random_key="iWXNyZBvOkqtifCZhpYbhHkKdWvhAG7CjZekjmmfcd8=" diff --git a/hosts/system76/config/zoomus.conf b/hosts/system76/config/zoomus.conf new file mode 100644 index 0000000..c8f9471 --- /dev/null +++ b/hosts/system76/config/zoomus.conf @@ -0,0 +1,81 @@ +[General] +CefOsrWindowlessFrameRate=30 +GeoLocale=system +SensitiveInfoMaskOn=true +ShowBiDirecSyncNoti=true +autoPlayGif=false +autoScale=true +bForceMaximizeWM=false +captureHDCamera=true +cefInstanceCountLimit=-1 +cefRefreshTime=0 +chatListPanelLastWidth=230 +com.disable.connection.pk.status=false +com.zoom.client.langid=0 +com.zoom.pt.settings.closedcaption.fontsize=16 +conf.webserver=https://zoom.us +currentMeetingId=82199284629 +deviceID=28:A0:6B:E5:A9:C0 +disableCef=false +disableUsePasskey=false +enable.host.auto.grab=true +enableAlphaBuffer=true +enableCefGpu=false +enableCefLog=false +enableCefOsrIme=true +enableCefOsrMode=true +enableCefRemoteDebug=false +enableCefRemoteDebugPort=9222 +enableCefTa=false +enableCloudSwitch=true +enableLog=true +enableMiniWindow=true +enableQmlCache=true +enableScreenSaveGuard=false +enableStartMeetingWithRoomSystem=false +enableTestMode=false +enableUnifywebviewTa=false +enableWaylandShare=false +enablegpucomputeutilization=false +fake.version= +flashChatTime=0 +forceEnableTrayIcon=true +forceSSOURL= +hideCrashReport=false +host.auto.grab.interval=10 +isTransCoding=false +legacyAvatarCacheCleaned=1776020340 +logLevel=info +newMeetingWithVideo=true +noSandbox=false +playSoundForNewMessage=false +shareBarTopMargin=0 +shortcut_as_global_ShortcutID_Screenshot=false +shortcut_as_global_ShortcutID_ScreenshotIncludeChatWindow=false +shortcut_as_global_ShortcutID_ShowHideFloatingMeetingControls=true +showOneTimePTAICTipHubble=false +showOneTimeQAMostUpvoteHubble=true +showOneTimeQueriesOptionTip=true +showOneTimeSmartRecognitionCoackMark=true +showOneTimeTranslationUpSellTip=false +showSystemTitlebar=false +speaker_volume=255 +sso_domain=.zoom.us +sso_gov_domain=.zoomgov.com +system.audio.type=default +systemDockMargin=0 +timeFormat12HoursEnable=true +translationFreeTrialTipShowTime=0 +upcoming_meeting_header_image= +useSystemTheme=false +userEmailAddress= +waylandDesktopNotifications=false +webview.debug.enable=false +xwayland=true + +[AS] +showframewindow=true + +[CodeSnippet] +lastCodeType=0 +wrapMode=0 diff --git a/meta/base.conf.yaml b/meta/base.conf.yaml index 24f755e..bcd7573 100644 --- a/meta/base.conf.yaml +++ b/meta/base.conf.yaml @@ -25,3 +25,7 @@ ~/.config/starship.toml: common/starship.toml ~/.gitconfig: common/git/config ~/.ssh/config: common/ssh/config + ~/.config/lazygit: common/lazygit + ~/.config/ncmpcpp: common/ncmpcpp + ~/.config/neofetch: common/neofetch + ~/.config/matplotlib: common/matplotlib diff --git a/meta/hosts/mainframe.conf.yaml b/meta/hosts/mainframe.conf.yaml index 9689a68..400da12 100644 --- a/meta/hosts/mainframe.conf.yaml +++ b/meta/hosts/mainframe.conf.yaml @@ -10,6 +10,12 @@ force: true - link: + ~/.config/bob: hosts/mainframe/config/bob + ~/.config/gtk-3.0: hosts/mainframe/config/gtk-3.0 + ~/.config/inbox-tidy: hosts/mainframe/config/inbox-tidy + ~/.config/llmfit: hosts/mainframe/config/llmfit + ~/.config/mimeapps.list: hosts/mainframe/config/mimeapps.list + ~/.config/user-dirs.dirs: hosts/mainframe/config/user-dirs.dirs ~/.ssh/config.local: hosts/mainframe/ssh/config.local ~/.config/git/identity: hosts/mainframe/git/identity ~/.config/paru: common/paru diff --git a/meta/hosts/nas.conf.yaml b/meta/hosts/nas.conf.yaml index 0ac1471..dece73a 100644 --- a/meta/hosts/nas.conf.yaml +++ b/meta/hosts/nas.conf.yaml @@ -10,6 +10,7 @@ force: true - link: + ~/.config/bob: hosts/nas/config/bob ~/.ssh/config.local: hosts/nas/ssh/config.local ~/.config/git/identity: hosts/nas/git/identity ~/.config/paru: common/paru diff --git a/meta/hosts/sctfw004.conf.yaml b/meta/hosts/sctfw004.conf.yaml index e374738..565b6d9 100644 --- a/meta/hosts/sctfw004.conf.yaml +++ b/meta/hosts/sctfw004.conf.yaml @@ -10,6 +10,24 @@ force: true - link: + ~/.config/bob: hosts/sctfw004/config/bob + ~/.config/fastfetch: hosts/sctfw004/config/fastfetch + ~/.config/gh: hosts/sctfw004/config/gh + ~/.config/gtk-2.0: hosts/sctfw004/config/gtk-2.0 + ~/.config/gtk-3.0: hosts/sctfw004/config/gtk-3.0 + ~/.config/gtk-4.0: hosts/sctfw004/config/gtk-4.0 + ~/.config/mimeapps.list: hosts/sctfw004/config/mimeapps.list + ~/.config/mpv: hosts/sctfw004/config/mpv + ~/.config/pavucontrol.ini: hosts/sctfw004/config/pavucontrol.ini + ~/.config/swayimg: hosts/sctfw004/config/swayimg + ~/.config/swaync: hosts/sctfw004/config/swaync + ~/.config/tiling-assistant: hosts/sctfw004/config/tiling-assistant + ~/.config/traggo: hosts/sctfw004/config/traggo + ~/.config/user-dirs.dirs: hosts/sctfw004/config/user-dirs.dirs + ~/.config/uv: hosts/sctfw004/config/uv + ~/.config/xdg-desktop-portal: hosts/sctfw004/config/xdg-desktop-portal + ~/.config/zoom.conf: hosts/sctfw004/config/zoom.conf + ~/.config/zoomus.conf: hosts/sctfw004/config/zoomus.conf ~/.ssh/config.local: hosts/sctfw004/ssh/config.local ~/.config/wallust: common/wallust ~/.config/hypr/colors.conf: hosts/sctfw004/hypr/colors.conf diff --git a/meta/hosts/system76.conf.yaml b/meta/hosts/system76.conf.yaml index e35546b..64aafc6 100644 --- a/meta/hosts/system76.conf.yaml +++ b/meta/hosts/system76.conf.yaml @@ -9,6 +9,22 @@ force: true - link: + ~/.config/beets: hosts/system76/config/beets + ~/.config/bob: hosts/system76/config/bob + ~/.config/bottom: hosts/system76/config/bottom + ~/.config/glow: hosts/system76/config/glow + ~/.config/gtk-2.0: hosts/system76/config/gtk-2.0 + ~/.config/gtk-3.0: hosts/system76/config/gtk-3.0 + ~/.config/gtk-4.0: hosts/system76/config/gtk-4.0 + ~/.config/mimeapps.list: hosts/system76/config/mimeapps.list + ~/.config/mpd: hosts/system76/config/mpd + ~/.config/mpv: hosts/system76/config/mpv + ~/.config/pavucontrol.ini: hosts/system76/config/pavucontrol.ini + ~/.config/swayimg: hosts/system76/config/swayimg + ~/.config/swaync: hosts/system76/config/swaync + ~/.config/user-dirs.dirs: hosts/system76/config/user-dirs.dirs + ~/.config/zoom.conf: hosts/system76/config/zoom.conf + ~/.config/zoomus.conf: hosts/system76/config/zoomus.conf ~/.ssh/config.local: hosts/system76/ssh/config.local ~/.config/wallust: common/wallust ~/.config/hypr/colors.conf: hosts/system76/hypr/colors.conf