Complete OS X Setup

From clean install to fully configured.

Step 1: Init Environment

Temporarily Disable sudo Password Timeout

The sudo password timeout is re-enabled at the end of this script.

sudo tee -a /etc/sudoers > /dev/null <<-EOF
Defaults  timestamp_timeout=-1
%admin ALL=(ALL) NOPASSWD:SETENV: /usr/sbin/installer
EOF

Disable System and Disk Sleep

sudo pmset -a sleep 0
sudo pmset -a disksleep 0

Setup Required Paths

if ! grep -Fq '/usr/local/sbin' /etc/paths; then
  sudo sed -i -e '/\/usr\/sbin/i\
\/usr\/local\/sbin\
' /etc/paths
fi

sudo mkdir -p '/usr/local/Caskroom' '/Library/Caches/Homebrew/'
sudo chgrp admin '/usr/local/' '/usr/local/Caskroom/' '/Library/Caches/Homebrew/' '/Library/ColorPickers/' '/Library/Screen Savers/'
sudo chmod g+w '/usr/local/' '/usr/local/Caskroom/' '/Library/Caches/Homebrew/' '/Library/ColorPickers/' '/Library/Screen Savers/'

Set Environment Variables Permanently (after restart)

Details: http://stackoverflow.com/a/26477515/1959421

Create /etc/environment

sudo tee /etc/environment > /dev/null <<-EOF
#!/bin/sh

set -e

syslog -s -l warn "Set environment variables for \$(whoami) - start"

CASK_OPTS="--appdir=/Applications"
CASK_OPTS="\${CASK_OPTS} --caskroom=/usr/local/Caskroom"
CASK_OPTS="\${CASK_OPTS} --colorpickerdir=/Library/ColorPickers"
CASK_OPTS="\${CASK_OPTS} --fontdir=/Library/Fonts"
CASK_OPTS="\${CASK_OPTS} --prefpanedir=/Library/PreferencePanes"
CASK_OPTS="\${CASK_OPTS} --screen_saverdir='/Library/Screen Savers'"
export HOMEBREW_CASK_OPTS=\$CASK_OPTS
launchctl setenv HOMEBREW_CASK_OPTS "\$CASK_OPTS"

if [ -x /usr/libexec/path_helper ]; then
  export PATH=""
  eval \`/usr/libexec/path_helper -s\`
  launchctl setenv PATH \$PATH
fi

osascript -e 'tell app "Dock" to quit'

syslog -s -l warn "Set environment variables for \$(whoami) - complete"
EOF

sudo chmod a+x /etc/environment

Create /Library/LaunchAgents/environment.user for GUI Applications

sudo defaults write '/Library/LaunchAgents/environment.user' 'Label' -string 'environment.user'
sudo defaults write '/Library/LaunchAgents/environment.user' 'ProgramArguments' -array-add '/etc/environment'
sudo defaults write '/Library/LaunchAgents/environment.user' 'RunAtLoad' -bool true
sudo defaults write '/Library/LaunchAgents/environment.user' 'WatchPaths' -array-add '/etc/environment'
sudo defaults write '/Library/LaunchAgents/environment.user' 'WatchPaths' -array-add '/etc/paths'
sudo defaults write '/Library/LaunchAgents/environment.user' 'WatchPaths' -array-add '/etc/paths.d'
sudo plutil -convert xml1 '/Library/LaunchAgents/environment.user.plist'
sudo chmod 644 /Library/LaunchAgents/environment.user.plist
sudo launchctl load -w /Library/LaunchAgents/environment.user.plist

Create /Library/LaunchDaemons/environment for Terminal Applications

sudo defaults write '/Library/LaunchDaemons/environment' 'Label' -string 'environment'
sudo defaults write '/Library/LaunchDaemons/environment' 'ProgramArguments' -array-add '/etc/environment'
sudo defaults write '/Library/LaunchDaemons/environment' 'RunAtLoad' -bool true
sudo defaults write '/Library/LaunchDaemons/environment' 'WatchPaths' -array-add '/etc/environment'
sudo defaults write '/Library/LaunchDaemons/environment' 'WatchPaths' -array-add '/etc/paths'
sudo defaults write '/Library/LaunchDaemons/environment' 'WatchPaths' -array-add '/etc/paths.d'
sudo plutil -convert xml1 '/Library/LaunchDaemons/environment.plist'
sudo chmod 644 /Library/LaunchDaemons/environment.plist
sudo launchctl load -w /Library/LaunchDaemons/environment.plist

Restart Before Continuing

osascript -e 'tell app "loginwindow" to «event aevtrrst»'

Step 2: Install Software

Open New Terminal

if [ -z "$1" ]; then
  osascript > /dev/null <<-END
    tell app "Terminal" to do script "source ${0} 0"
END
  clear

else

Initialize Variables

function init_install_path () {
  if [ ! -d "/Volumes/Storage" ] \
    && [ -d "/Volumes/VMware Shared Folders/Storage" ]; then
    cd "/Volumes" \
      && sudo ln -s "VMware Shared Folders/Storage" "Storage"
  fi

  if [ -d "/Volumes/Storage/Software" ]; then
    INSTALL_PATH="/Volumes/Storage/Software"
  else
    INSTALL_PATH="${HOME}/Downloads"
  fi
}

Install Command Line Tools

function install_command_line_tools () {
  init_install_path

  INSTALL_PATH_XCODE="${INSTALL_PATH}/apple.com"

  if [ ! -d "${INSTALL_PATH_XCODE}" ]; then
    mkdir -p "${INSTALL_PATH_XCODE}"
  fi

  if [ ! -f "${INSTALL_PATH_XCODE}/CLTools_Executables.pkg" ] \
    || [ ! -f "${INSTALL_PATH_XCODE}/DevSDK_OSX1011.pkg" ]; then
    cd "${INSTALL_PATH_XCODE}" \
      && curl --compressed --location --silent \
      "https://swscan.apple.com/content/catalogs/others/index-10.11-10.10-10.9-mountainlion-lion-snowleopard-leopard.merged-1.sucatalog.gz" \
      | sed -n \
        -e "s/^.*<string>\(.*CLTools_Executables.pkg\).*/\1/p" \
        -e "s/^.*<string>\(.*DevSDK_OSX1011.pkg\).*/\1/p" \
      | tail -n 2 \
      | xargs -L 1 curl --compressed --location --remote-name
  fi

  if [ -f "${INSTALL_PATH_XCODE}/CLTools_Executables.pkg" ] \
    && [ -f "${INSTALL_PATH_XCODE}/DevSDK_OSX1011.pkg" ]; then
    sudo installer -pkg "${INSTALL_PATH_XCODE}/CLTools_Executables.pkg" -target /
    sudo installer -pkg "${INSTALL_PATH_XCODE}/DevSDK_OSX1011.pkg" -target /
  fi
}

Install Homebrew

Details: http://brew.sh

function install_homebrew () {
  sudo chown $(whoami) '/usr/local' '/usr/local/Caskroom' '/Library/Caches/Homebrew/'

  ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

  brew update
  brew doctor

  brew tap "caskroom/cask"
  brew tap "homebrew/bundle"

  cd "/usr/local/Library/Taps/caskroom/homebrew-cask" \
    && curl https://gist.githubusercontent.com/ptb/2685546c5fa068f0506e7040726aec41/raw/701f76b37c1039c7ab39653cd428c7b1ebd9305c/13966.patch | git apply -
}

Create Brewfile

Details: https://github.com/Homebrew/homebrew-bundle

function create_brewfile () {
  cat > /usr/local/Brewfile <<-EOF
tap "caskroom/cask"
tap "caskroom/fonts"
tap "caskroom/versions"
tap "homebrew/bundle"
tap "homebrew/dupes"
tap "homebrew/nginx"
tap "infinit/releases"
tap "ptb/custom"
tap "railwaycat/emacsmacport"
tap "vitorgalvao/tiny-scripts"

cask "java"

cask "ptb/custom/mas-xcode"

cask "adobe-illustrator-cc"
cask "adobe-indesign-cc"
cask "adobe-photoshop-cc"

cask "ptb/custom/enhanced-dictation"
cask "ptb/custom/text-to-speech-allison"

cask "ptb/custom/mas-keynote"
cask "ptb/custom/mas-numbers"
cask "ptb/custom/mas-pages"

cask "ptb/custom/mas-affinity-photo"

cask "sonarr"
cask "sonarr-menu"
cask "vmware-fusion"

cask "ptb/custom/bbedit-10"
cask "ptb/custom/blankscreen"
cask "ptb/custom/composer"
cask "ptb/custom/ipmenulet"
cask "ptb/custom/mas-1password"
cask "ptb/custom/mas-autoping"
cask "ptb/custom/mas-coffitivity"
cask "ptb/custom/mas-growl"
cask "ptb/custom/mas-hardwaregrowler"
cask "ptb/custom/mas-i-love-stars"
cask "ptb/custom/mas-icon-slate"
cask "ptb/custom/mas-justnotes"
cask "ptb/custom/mas-wifi-explorer"
cask "ptb/custom/pcalc-3"
cask "ptb/custom/sketchup-pro"
cask "ptb/custom/sublime-text3"
cask "ptb/custom/synergy"
cask "ptb/custom/tune4mac"

brew "aspell", args: ["lang=en"]
brew "vitorgalvao/tiny-scripts/cask-repair"
brew "duti"
brew "railwaycat/emacsmacport/emacs-mac", args: ["with-spacemacs-icon"]
brew "ffmpeg",
  args: [
  "with-dcadec",
  "with-faac",
  "with-fdk-aac",
  "with-ffplay",
  "with-fontconfig",
  "with-freetype",
  "with-frei0r",
  "with-lame",
  "with-libass",
  "with-libbluray",
  "with-libbs2b",
  "with-libcaca",
  "with-libsoxr",
  "with-libssh",
  "with-libvidstab",
  "with-libvorbis",
  "with-libvpx",
  "with-opencore-amr",
  "with-openh264",
  "with-openjpeg",
  "with-openssl",
  "with-opus",
  "with-pkg-config",
  "with-qtkit",
  "with-rtmpdump",
  "with-rubberband",
  "with-schroedinger",
  "with-sdl",
  "with-snappy",
  "with-speex",
  "with-texi2html",
  "with-theora",
  "with-tools",
  "with-webp",
  "with-x264",
  "with-x265",
  "with-xvid",
  "with-yasm",
  "with-zeromq",
  "with-zimg" ]
brew "git"
brew "git-annex"
brew "gnu-sed", args: ["with-default-names"]
brew "gnupg"
brew "gpac"
brew "hub"
brew "imagemagick"
brew "mercurial"
brew "mp4v2"
brew "mtr"
brew "nmap"
brew "homebrew/nginx/nginx-full",
  args: [
  "with-dav-ext-module",
  "with-fancyindex-module",
  "with-gzip-static",
  "with-http2",
  "with-mp4-h264-module",
  "with-passenger",
  "with-push-stream-module",
  "with-secure-link",
  "with-webdav" ]
brew "node"
brew "openssl"
brew "homebrew/dupes/rsync"
brew "python"
brew "ruby"
brew "sqlite"
brew "stow"
brew "terminal-notifier"
brew "trash"
brew "vim"
brew "wget"
brew "youtube-dl"
brew "zsh"

cask "adium"
cask "airfoil"
cask "alfred"
cask "arduino"
cask "atom"
cask "autodmg"
cask "bettertouchtool"
cask "caffeine"
cask "carbon-copy-cloner"
cask "charles"
cask "couchpotato"
cask "dash"
# cask "datetree"
cask "deluge"
# cask "disk-inventory-x"
cask "dockertoolbox"
cask "dropbox"
cask "duet"
cask "exifrenamer"
cask "expandrive"
cask "firefox"
cask "flux"
cask "github-desktop"
cask "gitup"
cask "google-chrome"
cask "handbrake"
cask "handbrakecli"
cask "hermes"
cask "imageoptim"
cask "integrity"
cask "istat-menus"
cask "jubler"
cask "little-snitch"
cask "machg"
cask "makemkv"
cask "menubar-countdown"
cask "meteorologist"
cask "microsoft-office"
cask "moom"
cask "mp4tools"
cask "munki"
cask "musicbrainz-picard"
cask "namechanger"
cask "nvalt"
cask "nzbget"
cask "nzbvortex"
cask "openemu"
cask "opera"
cask "caskroom/versions/osxfuse-beta"
cask "pacifist"
cask "platypus"
cask "plex-media-server"
cask "quitter"
cask "raindrop"
cask "rescuetime"
# cask "safari-technology-preview"
cask "scrivener"
cask "sitesucker"
cask "sizeup"
cask "sketch"
cask "sketchup"
cask "skitch"
cask "skype"
cask "slack"
cask "sourcetree"
cask "steermouse"
cask "subler"
cask "time-sink"
# cask "timing"
cask "the-unarchiver"
# cask "tidy-up"
cask "torbrowser"
cask "tower"
cask "transmit"
cask "vimr"
cask "vlc"
# cask "webkit-nightly"
cask "xld"

cask "xquartz"
cask "inkscape"
brew "wine"
cask "wireshark"

cask "caskroom/fonts/font-inconsolata-lgc"

brew "infinit/releases/infinit"
EOF
}

Install OS X Software

function install_osx_software () {
  init_install_path

  INSTALL_PATH_HOMEBREW="${INSTALL_PATH}/github.com/Homebrew"

  if [ -d "${INSTALL_PATH_HOMEBREW}" ]; then
    cd "$(cd "${INSTALL_PATH_HOMEBREW}" && pwd)" \
      && cp -av * /Library/Caches/Homebrew/
  fi

  cd /usr/local/ && brew bundle

  brew upgrade --all
  brew linkapps

  cd $(cd /usr/local/Caskroom/little-snitch/* && pwd) && open "Little Snitch Installer.app"
}

Install Node Software

function install_node_software () {
  npm i -g babel-cli bower browser-sync browserify coffee-script eslint gulp-cli polyserve riot superstatic svgo uglify-js watchify webpack
}

Install Python Software

function install_python_software () {
  curl -Ls https://bootstrap.pypa.io/get-pip.py | sudo -H python
  pip install --upgrade pip setuptools
  pip install --upgrade babelfish bottle 'guessit<2' influxdb netifaces pika psutil py2app pyobjc-core pysnmp pystache qtfaststart requests scour statsd subliminal watchdog yapf zeroconf
  pip install --upgrade glances pyobjc 'requests[security]'
}

Install Ruby Software

function install_ruby_software () {
  printf "%s\n" \
    "gem: --no-document" \
    >> "${HOME}/.gemrc"

  gem update --system
  gem update
  gem install nokogiri -- --use-system-libraries
  gem install web-console --version "~> 2"
  gem install rails sqlite3 sass-rails uglifier coffee-rails jquery-rails turbolinks jbuilder sdoc byebug spring tzinfo-data
  gem install em-websocket middleman middleman-autoprefixer middleman-blog middleman-compass middleman-livereload middleman-minify-html middleman-robots mime-types slim
  gem install bootstrap-sass git-cipher org-ruby thin
}

Create /usr/local/bin/vi Script

function create_vi_script () {
  cat > /usr/local/bin/vi <<-EOF
#!/bin/sh

if [ -e '/Applications/Emacs.app' ]; then
  t=()

  if [ \${#@} -ne 0 ]; then
    while IFS= read -r file; do
      [ ! -f "\$file" ] && t+=("\$file") && /usr/bin/touch "\$file"
      file=\$(echo \$(cd \$(dirname "\$file") && pwd -P)/\$(basename "\$file"))
      \$(/usr/bin/osascript <<-END
        if application "Emacs.app" is running then
          tell application id (id of application "Emacs.app") to open POSIX file "\$file"
        else
          tell application ((path to applications folder as text) & "Emacs.app")
            activate
            open POSIX file "\$file"
          end tell
        end if
END
        ) &  # Note: END on the previous line may be indented with tabs but not spaces
      done <<<"\$(printf '%s\n' "\$@")"
    fi

    if [ ! -z "\$t" ]; then
      \$(/bin/sleep 10; for file in "\${t[@]}"; do
        [ ! -s "\$file" ] && /bin/rm "\$file";
      done) &
    fi
  else
    vim -No "\$@"
  fi
EOF

  chmod a+x /usr/local/bin/vi
}

Link Utilities

function link_utilities () {
  cd /Applications/Utilities \
    && for a in /System/Library/CoreServices/Applications/*; do
      sudo ln -s "../..$a" .
    done \
    && for b in /Applications/Xcode.app/Contents/Applications/*; do
      sudo ln -s "../..$b" .
    done \
    && for c in /Applications/Xcode.app/Contents/Developer/Applications/*; do
      sudo ln -s "../..$c" .
    done
}

Re-enable sudo Password Timeout

function reenable_sudo_timeout () {
  sudo sed -i -e "/Defaults  timestamp_timeout=-1/d" /etc/sudoers
  sudo sed -i -e "/%admin ALL=(ALL) NOPASSWD:SETENV: \/usr\/sbin\/installer/d" /etc/sudoers
}

Install All

function install_all () {
  install_command_line_tools
  install_homebrew
  create_brewfile
  install_osx_software
  install_node_software
  install_python_software
  install_ruby_software
  create_vi_script
  link_utilities
  reenable_sudo_timeout
}

Display Help

clear
cat <<-END

Enter any of these commands:
  install_command_line_tools
  install_homebrew
  create_brewfile
  install_osx_software
  install_node_software
  install_python_software
  install_ruby_software
  create_vi_script
  link_utilities
  reenable_sudo_timeout

Or:
  install_all

END
fi

Step 3: Configure Prefs

Open New Terminal

if [ -z "$1" ]; then
  osascript > /dev/null <<-END
    tell app "Terminal" to do script "source ${0} 0"
END
  clear

else

Configure File Mappings

function config_file_map () {
  if [ -x "/usr/local/bin/duti" ]; then
    printf "%s\t%s\t%s\n" \
      "org.videolan.vlc" "public.avi" "all" \
      "com.VortexApps.NZBVortex3" "dyn.ah62d4rv4ge8068xc" "all" \
      "com.apple.DiskImageMounter" "com.apple.disk-image" "all" \
      "com.apple.DiskImageMounter" "public.disk-image" "all" \
      "com.apple.DiskImageMounter" "public.iso-image" "all" \
      "com.apple.QuickTimePlayerX" "com.apple.coreaudio-format" "all" \
      "com.apple.QuickTimePlayerX" "com.apple.quicktime-movie" "all" \
      "com.apple.QuickTimePlayerX" "com.microsoft.waveform-audio" "all" \
      "com.apple.QuickTimePlayerX" "public.aifc-audio" "all" \
      "com.apple.QuickTimePlayerX" "public.aiff-audio" "all" \
      "com.apple.QuickTimePlayerX" "public.audio" "all" \
      "com.apple.QuickTimePlayerX" "public.mp3" "all" \
      "com.apple.Safari" "com.compuserve.gif" "all" \
      "com.apple.Terminal" "com.apple.terminal.shell-script" "all" \
      "com.apple.iTunes" "com.apple.iTunes.audible" "all" \
      "com.apple.iTunes" "com.apple.iTunes.ipg" "all" \
      "com.apple.iTunes" "com.apple.iTunes.ipsw" "all" \
      "com.apple.iTunes" "com.apple.iTunes.ite" "all" \
      "com.apple.iTunes" "com.apple.iTunes.itlp" "all" \
      "com.apple.iTunes" "com.apple.iTunes.itms" "all" \
      "com.apple.iTunes" "com.apple.iTunes.podcast" "all" \
      "com.apple.iTunes" "com.apple.m4a-audio" "all" \
      "com.apple.iTunes" "com.apple.mpeg-4-ringtone" "all" \
      "com.apple.iTunes" "com.apple.protected-mpeg-4-audio" "all" \
      "com.apple.iTunes" "com.apple.protected-mpeg-4-video" "all" \
      "com.apple.iTunes" "com.audible.aa-audio" "all" \
      "com.apple.iTunes" "public.mpeg-4-audio" "all" \
      "com.apple.installer" "com.apple.installer-package-archive" "all" \
      "com.github.atom" "com.apple.binary-property-list" "editor" \
      "com.github.atom" "com.apple.crashreport" "editor" \
      "com.github.atom" "com.apple.dt.document.ascii-property-list" "editor" \
      "com.github.atom" "com.apple.dt.document.script-suite-property-list" "editor" \
      "com.github.atom" "com.apple.dt.document.script-terminology-property-list" "editor" \
      "com.github.atom" "com.apple.log" "editor" \
      "com.github.atom" "com.apple.property-list" "editor" \
      "com.github.atom" "com.apple.rez-source" "editor" \
      "com.github.atom" "com.apple.symbol-export" "editor" \
      "com.github.atom" "com.apple.xcode.ada-source" "editor" \
      "com.github.atom" "com.apple.xcode.bash-script" "editor" \
      "com.github.atom" "com.apple.xcode.configsettings" "editor" \
      "com.github.atom" "com.apple.xcode.csh-script" "editor" \
      "com.github.atom" "com.apple.xcode.fortran-source" "editor" \
      "com.github.atom" "com.apple.xcode.ksh-script" "editor" \
      "com.github.atom" "com.apple.xcode.lex-source" "editor" \
      "com.github.atom" "com.apple.xcode.make-script" "editor" \
      "com.github.atom" "com.apple.xcode.mig-source" "editor" \
      "com.github.atom" "com.apple.xcode.pascal-source" "editor" \
      "com.github.atom" "com.apple.xcode.strings-text" "editor" \
      "com.github.atom" "com.apple.xcode.tcsh-script" "editor" \
      "com.github.atom" "com.apple.xcode.yacc-source" "editor" \
      "com.github.atom" "com.apple.xcode.zsh-script" "editor" \
      "com.github.atom" "com.apple.xml-property-list" "editor" \
      "com.github.atom" "com.barebones.bbedit.actionscript-source" "editor" \
      "com.github.atom" "com.barebones.bbedit.erb-source" "editor" \
      "com.github.atom" "com.barebones.bbedit.ini-configuration" "editor" \
      "com.github.atom" "com.barebones.bbedit.javascript-source" "editor" \
      "com.github.atom" "com.barebones.bbedit.json-source" "editor" \
      "com.github.atom" "com.barebones.bbedit.jsp-source" "editor" \
      "com.github.atom" "com.barebones.bbedit.lasso-source" "editor" \
      "com.github.atom" "com.barebones.bbedit.lua-source" "editor" \
      "com.github.atom" "com.barebones.bbedit.setext-source" "editor" \
      "com.github.atom" "com.barebones.bbedit.sql-source" "editor" \
      "com.github.atom" "com.barebones.bbedit.tcl-source" "editor" \
      "com.github.atom" "com.barebones.bbedit.tex-source" "editor" \
      "com.github.atom" "com.barebones.bbedit.textile-source" "editor" \
      "com.github.atom" "com.barebones.bbedit.vbscript-source" "editor" \
      "com.github.atom" "com.barebones.bbedit.vectorscript-source" "editor" \
      "com.github.atom" "com.barebones.bbedit.verilog-hdl-source" "editor" \
      "com.github.atom" "com.barebones.bbedit.vhdl-source" "editor" \
      "com.github.atom" "com.barebones.bbedit.yaml-source" "editor" \
      "com.github.atom" "com.netscape.javascript-source" "editor" \
      "com.github.atom" "com.sun.java-source" "editor" \
      "com.github.atom" "dyn.ah62d4rv4ge80255drq" "all" \
      "com.github.atom" "dyn.ah62d4rv4ge80g55gq3w0n" "all" \
      "com.github.atom" "dyn.ah62d4rv4ge80g55sq2" "all" \
      "com.github.atom" "dyn.ah62d4rv4ge80y2xzrf0gk3pw" "all" \
      "com.github.atom" "dyn.ah62d4rv4ge81e3dtqq" "all" \
      "com.github.atom" "dyn.ah62d4rv4ge81e7k" "all" \
      "com.github.atom" "dyn.ah62d4rv4ge81g25xsq" "all" \
      "com.github.atom" "dyn.ah62d4rv4ge81g2pxsq" "all" \
      "com.github.atom" "net.daringfireball.markdown" "editor" \
      "com.github.atom" "public.assembly-source" "editor" \
      "com.github.atom" "public.c-header" "editor" \
      "com.github.atom" "public.c-plus-plus-source" "editor" \
      "com.github.atom" "public.c-source" "editor" \
      "com.github.atom" "public.csh-script" "editor" \
      "com.github.atom" "public.json" "editor" \
      "com.github.atom" "public.lex-source" "editor" \
      "com.github.atom" "public.log" "editor" \
      "com.github.atom" "public.mig-source" "editor" \
      "com.github.atom" "public.nasm-assembly-source" "editor" \
      "com.github.atom" "public.objective-c-plus-plus-source" "editor" \
      "com.github.atom" "public.objective-c-source" "editor" \
      "com.github.atom" "public.patch-file" "editor" \
      "com.github.atom" "public.perl-script" "editor" \
      "com.github.atom" "public.php-script" "editor" \
      "com.github.atom" "public.plain-text" "editor" \
      "com.github.atom" "public.precompiled-c-header" "editor" \
      "com.github.atom" "public.precompiled-c-plus-plus-header" "editor" \
      "com.github.atom" "public.python-script" "editor" \
      "com.github.atom" "public.ruby-script" "editor" \
      "com.github.atom" "public.script" "editor" \
      "com.github.atom" "public.shell-script" "editor" \
      "com.github.atom" "public.source-code" "editor" \
      "com.github.atom" "public.text" "editor" \
      "com.github.atom" "public.utf16-external-plain-text" "editor" \
      "com.github.atom" "public.utf16-plain-text" "editor" \
      "com.github.atom" "public.utf8-plain-text" "editor" \
      "com.github.atom" "public.xml" "editor" \
      "com.kodlian.Icon-Slate" "com.apple.icns" "all" \
      "com.kodlian.Icon-Slate" "com.microsoft.ico" "all" \
      "com.microsoft.Word" "public.rtf" "all" \
      "com.panayotis.jubler" "dyn.ah62d4rv4ge81g6xy" "all" \
      "com.sketchup.SketchUp.2016" "com.sketchup.skp" "all" \
      "com.vmware.fusion" "com.microsoft.windows-executable" "all" \
      "cx.c3.theunarchiver" "com.alcohol-soft.mdf-image" "all" \
      "cx.c3.theunarchiver" "com.allume.stuffit-archive" "all" \
      "cx.c3.theunarchiver" "com.altools.alz-archive" "all" \
      "cx.c3.theunarchiver" "com.amiga.adf-archive" "all" \
      "cx.c3.theunarchiver" "com.amiga.adz-archive" "all" \
      "cx.c3.theunarchiver" "com.apple.applesingle-archive" "all" \
      "cx.c3.theunarchiver" "com.apple.binhex-archive" "all" \
      "cx.c3.theunarchiver" "com.apple.bom-compressed-cpio" "all" \
      "cx.c3.theunarchiver" "com.apple.itunes.ipa" "all" \
      "cx.c3.theunarchiver" "com.apple.macbinary-archive" "all" \
      "cx.c3.theunarchiver" "com.apple.self-extracting-archive" "all" \
      "cx.c3.theunarchiver" "com.apple.xar-archive" "all" \
      "cx.c3.theunarchiver" "com.apple.xip-archive" "all" \
      "cx.c3.theunarchiver" "com.cyclos.cpt-archive" "all" \
      "cx.c3.theunarchiver" "com.microsoft.cab-archive" "all" \
      "cx.c3.theunarchiver" "com.microsoft.msi-installer" "all" \
      "cx.c3.theunarchiver" "com.nero.nrg-image" "all" \
      "cx.c3.theunarchiver" "com.network172.pit-archive" "all" \
      "cx.c3.theunarchiver" "com.nowsoftware.now-archive" "all" \
      "cx.c3.theunarchiver" "com.nscripter.nsa-archive" "all" \
      "cx.c3.theunarchiver" "com.padus.cdi-image" "all" \
      "cx.c3.theunarchiver" "com.pkware.zip-archive" "all" \
      "cx.c3.theunarchiver" "com.rarlab.rar-archive" "all" \
      "cx.c3.theunarchiver" "com.redhat.rpm-archive" "all" \
      "cx.c3.theunarchiver" "com.stuffit.archive.sit" "all" \
      "cx.c3.theunarchiver" "com.stuffit.archive.sitx" "all" \
      "cx.c3.theunarchiver" "com.sun.java-archive" "all" \
      "cx.c3.theunarchiver" "com.symantec.dd-archive" "all" \
      "cx.c3.theunarchiver" "com.winace.ace-archive" "all" \
      "cx.c3.theunarchiver" "com.winzip.zipx-archive" "all" \
      "cx.c3.theunarchiver" "cx.c3.arc-archive" "all" \
      "cx.c3.theunarchiver" "cx.c3.arj-archive" "all" \
      "cx.c3.theunarchiver" "cx.c3.dcs-archive" "all" \
      "cx.c3.theunarchiver" "cx.c3.dms-archive" "all" \
      "cx.c3.theunarchiver" "cx.c3.ha-archive" "all" \
      "cx.c3.theunarchiver" "cx.c3.lbr-archive" "all" \
      "cx.c3.theunarchiver" "cx.c3.lha-archive" "all" \
      "cx.c3.theunarchiver" "cx.c3.lhf-archive" "all" \
      "cx.c3.theunarchiver" "cx.c3.lzx-archive" "all" \
      "cx.c3.theunarchiver" "cx.c3.packdev-archive" "all" \
      "cx.c3.theunarchiver" "cx.c3.pax-archive" "all" \
      "cx.c3.theunarchiver" "cx.c3.pma-archive" "all" \
      "cx.c3.theunarchiver" "cx.c3.pp-archive" "all" \
      "cx.c3.theunarchiver" "cx.c3.xmash-archive" "all" \
      "cx.c3.theunarchiver" "cx.c3.zoo-archive" "all" \
      "cx.c3.theunarchiver" "cx.c3.zoom-archive" "all" \
      "cx.c3.theunarchiver" "org.7-zip.7-zip-archive" "all" \
      "cx.c3.theunarchiver" "org.archive.warc-archive" "all" \
      "cx.c3.theunarchiver" "org.debian.deb-archive" "all" \
      "cx.c3.theunarchiver" "org.gnu.gnu-tar-archive" "all" \
      "cx.c3.theunarchiver" "org.gnu.gnu-zip-archive" "all" \
      "cx.c3.theunarchiver" "org.gnu.gnu-zip-tar-archive" "all" \
      "cx.c3.theunarchiver" "org.tukaani.lzma-archive" "all" \
      "cx.c3.theunarchiver" "org.tukaani.xz-archive" "all" \
      "cx.c3.theunarchiver" "public.bzip2-archive" "all" \
      "cx.c3.theunarchiver" "public.cpio-archive" "all" \
      "cx.c3.theunarchiver" "public.tar-archive" "all" \
      "cx.c3.theunarchiver" "public.tar-bzip2-archive" "all" \
      "cx.c3.theunarchiver" "public.z-archive" "all" \
      "cx.c3.theunarchiver" "public.zip-archive" "all" \
      "cx.c3.theunarchiver" "public.zip-archive.first-part" "all" \
      "org.gnu.Emacs" "dyn.ah62d4rv4ge8086xh" "all" \
      "org.inkscape.Inkscape" "public.svg-image" "editor" \
      "org.videolan.vlc" "com.apple.m4v-video" "all" \
      "org.videolan.vlc" "com.microsoft.windows-media-wmv" "all" \
      "org.videolan.vlc" "org.perian.matroska" "all" \
      "org.videolan.vlc" "org.videolan.ac3" "all" \
      "org.videolan.vlc" "org.videolan.ogg-audio" "all" \
      "org.videolan.vlc" "public.ac3-audio" "all" \
      "org.videolan.vlc" "public.audiovisual-content" "all" \
      "org.videolan.vlc" "public.avi" "all" \
      "org.videolan.vlc" "public.movie" "all" \
      "org.videolan.vlc" "public.mpeg" "all" \
      "org.videolan.vlc" "public.mpeg-2-video" "all" \
      "org.videolan.vlc" "public.mpeg-4" "all" \
      > "${HOME}/.duti"

    /usr/local/bin/duti "${HOME}/.duti"
  fi

  sudo mkdir -p /var/db/lsd
  sudo chown root:admin /var/db/lsd
  sudo chmod 775 /var/db/lsd

  /System/Library/Frameworks/CoreServices.framework/Versions/Current/Frameworks/LaunchServices.framework/Versions/Current/Support/lsregister -kill -r -domain local -domain system -domain user
}

Configure Finder

function config_finder () {
### Finder > Preferences… > General

  # Show these items on the desktop: Hard disks: on
  defaults write 'com.apple.finder' 'ShowHardDrivesOnDesktop' -bool false

  # Show these items on the desktop: External disks: on
  defaults write 'com.apple.finder' 'ShowExternalHardDrivesOnDesktop' -bool false

  # Show these items on the desktop: CDs, DVDs, and iPods: on
  defaults write 'com.apple.finder' 'ShowRemovableMediaOnDesktop' -bool false

  # Show these items on the desktop: Connected servers: on
  defaults write 'com.apple.finder' 'ShowMountedServersOnDesktop' -bool true

  # New Finder windows show: ${HOME}
  defaults write 'com.apple.finder' 'NewWindowTarget' -string 'PfHm'
  defaults write 'com.apple.finder' 'NewWindowTargetPath' -string "file://${HOME}/"

### Finder > Preferences… > Advanced

  # Show all filename extensions: on
  defaults write -g 'AppleShowAllExtensions' -bool true

  # Show warning before emptying the Trash: on
  defaults write 'com.apple.finder' 'WarnOnEmptyTrash' -bool false

### View

  # Show Path Bar
  defaults write 'com.apple.finder' 'ShowPathbar' -bool true

  # Show Status Bar
  defaults write 'com.apple.finder' 'ShowStatusBar' -bool true

  # Customize Toolbar…
  defaults write 'com.apple.finder' 'NSToolbar Configuration Browser' '{ "TB Item Identifiers" = ( "com.apple.finder.BACK", "com.apple.finder.PATH", "com.apple.finder.SWCH", "com.apple.finder.ARNG", "NSToolbarFlexibleSpaceItem", "com.apple.finder.SRCH", "com.apple.finder.ACTN" ); "TB Display Mode" = 2; }'

### View > Show View Options: [${HOME}]

  # Show Library Folder: on
  chflags nohidden "${HOME}/Library"

### Window

  # Copy
  defaults write 'com.apple.finder' 'CopyProgressWindowLocation' -string '{2160, 23}'
}

Configure Safari

function config_safari () {
### Safari > Preferences… > General

  # New windows open with: Empty Page
  defaults write 'com.apple.Safari' 'NewWindowBehavior' -int 1

  # New tabs open with: Empty Page
  defaults write 'com.apple.Safari' 'NewTabBehavior' -int 1

  # Homepage: about:blank
  defaults write 'com.apple.Safari' 'HomePage' -string 'about:blank'

### Safari > Preferences… > Tabs

  # Open pages in tabs instead of windows: Always
  defaults write 'com.apple.Safari' 'TabCreationPolicy' -int 2

### Safari > Preferences… > AutoFill

  # Using info from my Contacts card: off
  defaults write 'com.apple.Safari' 'AutoFillFromAddressBook' -bool false

  # Credit cards: off
  defaults write 'com.apple.Safari' 'AutoFillCreditCardData' -bool false

  # Other forms: off
  defaults write 'com.apple.Safari' 'AutoFillMiscellaneousForms' -bool false

### Safari > Preferences… > Search

  # Include Spotlight Suggestions: off
  defaults write 'com.apple.Safari' 'UniversalSearchEnabled' -bool false

  # Show Favorites: off
  defaults write 'com.apple.Safari' 'ShowFavoritesUnderSmartSearchField' -bool false

### Safari > Preferences… > Privacy

  # Website use of location services: Deny without prompting
  defaults write 'com.apple.Safari' 'SafariGeolocationPermissionPolicy' -int 0

  # Ask websites not to track me: on
  defaults write 'com.apple.Safari' 'SendDoNotTrackHTTPHeader' -bool true

### Safari > Preferences… > Notifications

  # Allow websites to ask for permission to send push notifications: off
  defaults write 'com.apple.Safari' 'CanPromptForPushNotifications' -bool false

### Safari > Preferences… > Advanced

  # Smart Search Field: Show full website address: on
  defaults write 'com.apple.Safari' 'ShowFullURLInSmartSearchField' -bool true

  # Default encoding: Unicode (UTF-8)
  defaults write 'com.apple.Safari' 'WebKitDefaultTextEncodingName' -string 'utf-8'
  defaults write 'com.apple.Safari' 'com.apple.Safari.ContentPageGroupIdentifier.WebKit2DefaultTextEncodingName' -string 'utf-8'

  # Show Develop menu in menu bar: on
  defaults write 'com.apple.Safari' 'IncludeDevelopMenu' -bool true
  defaults write 'com.apple.Safari' 'WebKitDeveloperExtrasEnabledPreferenceKey' -bool true
  defaults write 'com.apple.Safari' 'com.apple.Safari.ContentPageGroupIdentifier.WebKit2DeveloperExtrasEnabled' -bool true

### View

  # Show Favorites Bar
  defaults write 'com.apple.Safari' 'ShowFavoritesBar-v2' -bool true

  # Show Status Bar
  defaults write 'com.apple.Safari' 'ShowStatusBar' -bool true
  defaults write 'com.apple.Safari' 'ShowStatusBarInFullScreen' -bool true
}

Configure System Preferences

function config_system_prefs () {
### General

  # Appearance: Graphite
  defaults write -g 'AppleAquaColorVariant' -int 6

  # Use dark menu bar and Dock: on
  defaults write -g 'AppleInterfaceStyle' -string 'Dark'

  # Highlight color: Other… #CC99CC
  defaults write -g 'AppleHighlightColor' -string '0.600000 0.800000 0.600000'

  # Sidebar icon size: Small
  defaults write -g 'NSTableViewDefaultSizeMode' -int 1

  # Show scroll bars: Always
  defaults write -g 'AppleShowScrollBars' -string 'Always'

  # Click in the scroll bar to: Jump to the next page
  defaults write -g 'AppleScrollerPagingBehavior' -bool false

  # Ask to keep changes when closing documents: on
  defaults write -g 'NSCloseAlwaysConfirmsChanges' -bool true

  # Close windows when quitting an app: on
  defaults write -g 'NSQuitAlwaysKeepsWindows' -bool false

  # Recent items: None
  osascript <<-EOF
    tell application "System Events"
      tell appearance preferences
        set recent documents limit to 0
        set recent applications limit to 0
        set recent servers limit to 0
      end tell
    end tell
EOF

  # Use LCD font smoothing when available: on
  defaults -currentHost delete -g 'AppleFontSmoothing' 2> /dev/null

### Desktop & Screen Saver

  # Desktop: Solid Colors: Custom Color… Solid Black
  mkdir -m go= -p "${HOME}/Library/Desktop Pictures/Solid Colors/"
  base64 -D > "${HOME}/Library/Desktop Pictures/Solid Colors/Solid Black.png" <<-EOF
iVBORw0KGgoAAAANSUhEUgAAAIAAAACAAQAAAADrRVxmAAAAGElEQVR4AWOgMxgFo2AUjIJRMApG
wSgAAAiAAAH3bJXBAAAAAElFTkSuQmCC
EOF
  osascript <<-EOF
    tell application "System Events"
      set a to POSIX file "${HOME}/Library/Desktop Pictures/Solid Colors/Solid Black.png"
      set b to a reference to every desktop
      repeat with c in b
        set picture of c to a
      end repeat
    end tell
EOF

  # Screen Saver: BlankScreen
  if [ -e "/Library/Screen Savers/BlankScreen.saver" ]; then
    defaults -currentHost write 'com.apple.screensaver' 'moduleDict' '{ moduleName = BlankScreen; path = "/Library/Screen Savers/BlankScreen.saver"; type = 0; }'
  fi

  # Screen Saver: Start after: Never
  defaults -currentHost write 'com.apple.screensaver' 'idleTime' -int 0

  # Screen Saver: Hot Corners… Top Left: ⌘ Mission Control
  defaults write 'com.apple.dock' 'wvous-tl-corner' -int 2
  defaults write 'com.apple.dock' 'wvous-tl-modifier' -int 1048576

  # Screen Saver: Hot Corners… Bottom Left: Put Display to Sleep
  defaults write 'com.apple.dock' 'wvous-bl-corner' -int 10
  defaults write 'com.apple.dock' 'wvous-bl-modifier' -int 0

### Dock

  # Size: 32
  defaults write 'com.apple.dock' 'tilesize' -int 32

  # Magnification: off
  defaults write 'com.apple.dock' 'magnification' -bool false
  defaults write 'com.apple.dock' 'largesize' -int 64

  # Position on screen: Left
  defaults write 'com.apple.dock' 'orientation' -string 'right'

  # Minimize windows using: Scale effect
  defaults write 'com.apple.dock' 'mineffect' -string 'scale'

  # Animate opening applications: off
  defaults write 'com.apple.dock' 'launchanim' -bool false

### Security & Privacy

  # General: Require password: on
  defaults write 'com.apple.screensaver' 'askForPassword' -int 1

  # General: Require password: 5 seconds after sleep or screen saver begins
  defaults write 'com.apple.screensaver' 'askForPasswordDelay' -int 5

### Energy Saver

  # Power > Turn display off after: 20 min
  sudo pmset -c displaysleep 20

  # Power > Prevent computer from sleeping automatically when the display is off: enabled
  sudo pmset -c sleep 0

  # Power > Put hard disks to sleep when possible: 60 min
  sudo pmset -c disksleep 60

  # Power > Wake for Ethernet network access: enabled
  sudo pmset -c womp 1

  # Power > Start up automatically after a power failure: enabled
  sudo pmset -c autorestart 1

  # Power > Enable Power Nap: enabled
  sudo pmset -c powernap 1

### Mouse

  # Scroll direction: natural: off
  defaults write -g 'com.apple.swipescrolldirection' -bool false

### Trackpad

  # Point & Click: Tap to click: on
  defaults -currentHost write -g 'com.apple.mouse.tapBehavior' -int 1

### Sound

  # Sound Effects: Select an alert sound: Sosumi
  defaults write 'com.apple.systemsound' 'com.apple.sound.beep.sound' -string '/System/Library/Sounds/Sosumi.aiff'

  # Sound Effects: Play user interface sound effects: off
  defaults write 'com.apple.systemsound' 'com.apple.sound.uiaudio.enabled' -int 0

  # Sound Effects: Play feedback when volume is changed: off
  defaults write -g 'com.apple.sound.beep.feedback' -int 0

### Sharing

  # Computer Name
  sudo systemsetup -setcomputername $(hostname -s | perl -nE 'say ucfirst' | perl -np -e 'chomp')

  # Local Hostname
  sudo systemsetup -setlocalsubnetname $(hostname -s) &> /dev/null

### Users & Groups

  # Current User > Advanced Options… > Login shell: /usr/local/bin/zsh
  sudo sh -c 'printf "%s\n" "/usr/local/bin/zsh" >> /etc/shells'
  sudo chsh -s /usr/local/bin/zsh
  chsh -s /usr/local/bin/zsh
  sudo mkdir -p /private/var/root/Library/Caches/
  sudo touch "/private/var/root/.zshrc"
  touch "${HOME}/.zshrc"

### Dictation & Speech

  # Dictation: Dictation: On
  defaults write 'com.apple.speech.recognition.AppleSpeechRecognition.prefs' 'DictationIMMasterDictationEnabled' -bool true
  defaults write 'com.apple.speech.recognition.AppleSpeechRecognition.prefs' 'DictationIMIntroMessagePresented' -bool true

  # Dictation: Use Enhanced Dictation: on
  if [ -d '/System/Library/Speech/Recognizers/SpeechRecognitionCoreLanguages/en_US.SpeechRecognition' ]; then
    defaults write 'com.apple.speech.recognition.AppleSpeechRecognition.prefs' 'DictationIMPresentedOfflineUpgradeSuggestion' -bool true
    defaults write 'com.apple.speech.recognition.AppleSpeechRecognition.prefs' 'DictationIMSIFolderWasUpdated' -bool true
    defaults write 'com.apple.speech.recognition.AppleSpeechRecognition.prefs' 'DictationIMUseOnlyOfflineDictation' -bool true
  fi

  # Text to Speech: System Voice: Allison
  if [ -d '/System/Library/Speech/Voices/Allison.SpeechVoice' ]; then
    defaults write 'com.apple.speech.voice.prefs' 'VisibleIdentifiers' '{ "com.apple.speech.synthesis.voice.allison.premium" = 1; }'
    defaults write 'com.apple.speech.voice.prefs' 'SelectedVoiceName' -string 'Allison'
    defaults write 'com.apple.speech.voice.prefs' 'SelectedVoiceCreator' -int 1886745202
    defaults write 'com.apple.speech.voice.prefs' 'SelectedVoiceID' -int 184555197
  fi

### Date & Time

  # Clock: Display the time with seconds: on / Show date: on
  defaults write 'com.apple.menuextra.clock' 'DateFormat' -string 'EEE MMM d  h:mm:ss a'

### Accessibility

  # Display: Reduce transparency: on
  defaults write 'com.apple.universalaccess' 'reduceTransparency' -bool true

### Restart defaults server

  killall -u "$USER" cfprefsd
  osascript -e 'tell app "Finder" to quit'
  osascript -e 'tell app "Dock" to quit'
}

Create /etc/zshrc

function create_zshrc () {
  sudo tee /etc/zshrc > /dev/null <<-EOF
alias -g ...="../.."
alias -g ....="../../.."
alias -g .....="../../../.."
alias l="/bin/ls -lG"
alias ll="/bin/ls -alG"
alias lr="/bin/ls -alRG"
alias screen="/usr/bin/screen -U"
autoload -U compaudit
compaudit | xargs -L 1 sudo chown -HR root:wheel {} 2> /dev/null
compaudit | xargs -L 1 sudo chmod -HR go-w {} 2> /dev/null
autoload -U compinit
compinit -d "\${HOME}/Library/Caches/zcompdump"
bindkey "\e[3~" delete-char
bindkey "\e[A" up-line-or-search
bindkey "\e[B" down-line-or-search
export HISTFILE="\${HOME}/Library/Caches/zsh_history"
export HISTSIZE=50000
export SAVEHIST=50000
setopt APPEND_HISTORY
setopt AUTO_CD
setopt EXTENDED_HISTORY
setopt HIST_FIND_NO_DUPS
setopt INC_APPEND_HISTORY
setopt PROMPT_SUBST
setopt SHARE_HISTORY
stty erase \b
# Correctly display UTF-8 with combining characters.
if [ "\$TERM_PROGRAM" = "Apple_Terminal" ]; then
  setopt combiningchars
fi
function precmd () {
  print -Pn "\\e]7;file://%M\${PWD// /%%20}\a"
  print -Pn "\\e]2;%n@%m\a"
  print -Pn "\\e]1;%~\a"
}
gb () { git branch --no-color 2> /dev/null | /usr/bin/sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/' }
xd () { /usr/bin/xattr -d com.apple.diskimages.fsck \$* 2> /dev/null; /usr/bin/xattr -d com.apple.diskimages.recentcksum \$* 2> /dev/null; /usr/bin/xattr -d com.apple.metadata:kMDItemFinderComment \$* 2> /dev/null; /usr/bin/xattr -d com.apple.metadata:kMDItemDownloadedDate \$* 2> /dev/null; /usr/bin/xattr -d com.apple.metadata:kMDItemWhereFroms \$* 2> /dev/null; /usr/bin/xattr -d com.apple.quarantine \$* 2> /dev/null; /usr/bin/find . -name .DS_Store -delete; /usr/bin/find . -name Icon
 -delete }
sf () { /usr/bin/SetFile -P -d "\$1 12:00:00" -m "\$1 12:00:00" \$argv[2,\$] }
sd () { xd **/*; sf \$1 .; for i in **/*; do sf \$1 \$i; done; /usr/sbin/chown -R root ROOT 2> /dev/null; /usr/bin/chgrp -R wheel ROOT 2> /dev/null; /bin/chmod -R a+r ROOT 2> /dev/null; /bin/chmod -R u+w ROOT 2> /dev/null; /bin/chmod -R go-w ROOT 2> /dev/null; /usr/bin/find . -type d -exec /bin/chmod a+x '{}' ';'; /usr/bin/chgrp -R admin ROOT/Applications 2> /dev/null; /bin/chmod -R g+w ROOT/Applications 2> /dev/null; /usr/bin/chgrp -R admin ROOT/Library 2> /dev/null; /bin/chmod -R g+w ROOT/Library 2> /dev/null; /bin/chmod -R g-w ROOT/Library/Application\ Enhancers 2> /dev/null; /usr/bin/chgrp -R staff ROOT/Library/Application\ Support/Adobe 2> /dev/null; /bin/chmod -R g-w ROOT/Library/Bundles 2> /dev/null; /bin/chmod -R g-w ROOT/Library/InputManagers 2> /dev/null; /bin/chmod -R g-w ROOT/Library/Keychains 2> /dev/null; /bin/chmod -R g-w ROOT/Library/ScriptingAdditions 2> /dev/null; /bin/chmod -R g-w ROOT/Library/Tcl 2> /dev/null; /usr/bin/chgrp -R wheel ROOT/Library/Filesystems 2> /dev/null; /bin/chmod -R g-w ROOT/Library/Filesystems 2> /dev/null; /usr/bin/chgrp -R wheel ROOT/Library/LaunchAgents 2> /dev/null; /bin/chmod -R g-w ROOT/Library/LaunchAgents 2> /dev/null; /usr/bin/chgrp -R wheel ROOT/Library/LaunchDaemons 2> /dev/null; /bin/chmod -R g-w ROOT/Library/LaunchDaemons 2> /dev/null; /usr/bin/chgrp -R wheel ROOT/Library/PreferencePanes 2> /dev/null; /bin/chmod -R g-w ROOT/Library/PreferencePanes 2> /dev/null; /usr/bin/chgrp -R wheel ROOT/Library/StartupItems 2> /dev/null; /bin/chmod -R g-w ROOT/Library/StartupItems 2> /dev/null; /usr/bin/chgrp -R wheel ROOT/Library/Widgets 2> /dev/null; /bin/chmod -R g-w ROOT/Library/Widgets 2> /dev/null; /usr/bin/find . -name "kexts" -type d -exec /bin/chmod -R g-w '{}' ';'; /usr/bin/find . -name "*.kext" -exec /usr/sbin/chown -R root:wheel '{}' ';'; /usr/bin/find . -name "*.kext" -exec /bin/chmod -R g-w '{}' ';' }
PROMPT='%B%n@%m%b:%2~%B\$(gb) %#%b '
EOF
}

Configure All

function config_all () {
  config_file_map
  config_finder
  config_safari
  config_system_prefs
  create_zshrc
}

Display Help

clear
cat <<-END

Enter any of these commands:
  config_file_map
  config_finder
  config_safari
  config_system_prefs
  create_zshrc

Or:
  config_all

END
fi

Step 4: Register Apps

U2FsdGVkX18nR3qhAWm6FkNJIC9pj9SIrnxKG2o7UuC6QFcrjY3jincvSlNOxEhD MUfYdmi+W3WAgDvGt1CrYlhc4BCQfbvT25+eJ1voFRaCypRuFNIsIpLc9VgmC2xt TX2UICymdn1T6+h6fzgeJAaEDaqnmnNuiBExURE9yXIau+/LKQ6SFbwGQztIMC7C nVa3FPdg+w491jI7gZW+0srN/lQIYsu7fEDs/PMBWRHbj1pNCZEO0b6JrOWcK/5b r49zzpHBmlZFR2lHP76Yp651gV5YPhVHQFiTR2dXfM/8L/XkTT3cVWiB8mGNcosz rNNKs4f6hFmGRYFFVvCkSFlBeDRhWb2x4YGFXcvtkWE3n4VFUNLDunV9sYa6RL6f nhtc/f+O2EmqggwpXWdMfA1dVMbwoluHDeXx0ZsYncWwSwYygjgwjGPdzd64NaKK zYbcECtSQAAC0mzVkuM/GO/nQ7+6FSEcsjHq9YNoY8JrFiFuK7Vkp1TEytkmTtzj ZnkVobBUC0Bf70joWDGykmPfWxRC45rZIEtwJUHKwaOCPUjBGNEFv3RZDHCTGvc4 MfOQz8EKeHYsMXYmGPZTR9YcQfZWBG3hJ1noTNFDXglaL76XL2RsXM4ndmRQ7FXW P1Jqy+ErXc3LCRbRI44MDbLu9goIRrZl4OSjeuh6UCbSU3eDaEJ/awagU5ADElgl VmxB6R3q2mz75VejOlj9IOoHCZZm828zffCnSkQ2+7c6p+lrRNndJUoGzAWsHsfg w/Tonf0PkAS0hr2TLZp71BuuyDZtds+WWrwrN61GFvUHFceItmLBnkv6HFXfeFIw trhCDZ+iiNBGx3NJu3uK4FZ/w25kcxqQk4UWl4YY3w+p1ZRlyFvkmiP6Dom5D1AG iGmP9lQQGyVRe179ImP7oEegoOy3VGJEfxb3X3KWghvQDQ11Acv3Q9Ww07Y0musB dXucUH99mQm6J26jT1WuWYCgz9q+NQOdzPWd4IKXxtgYTr8gnjqFexAPGu8kGt9Z iZNsRw9kGT5PKDjNzX0ASbzizGmjCzRyaDBqwXYZ5UhWGBEz05qGYVxI9LXS2h1e 1bkH4aZoSTOBS8DjgHLW9a4N5Ml2RtWHbR0e0oQ4PQBRA4jklsRo/OrPEYlt7dZu +lQT41flvEXxbJcrjtMpZ8sbVCtoX9Fq7yESsV5eGSDk1KH8mAX35fFwh3avAZVm WCqI3ExhLM9kJzo/xB2ydqLNdORDDZ7/mqdQhYVugDT6SCxZr9cMPR04p677EhGL gj/VlF++GI9u49kEGP0zHpfq3NXXArLR3YguVoR0GPdNbLRBVcZMFkLOrrF332Hy whZvhsDNr8h9EQuMBbQCTr+zQUeI3+qU9jELtHSdyAki9OoOwMPQEs9mMVUm6NWe azE7inzb2hDw0kk7C7/yuPNRi19SnQxGgxUL/OaEIu86qGV2iW/K9p9U8UugPWVn 4P4ZYqVbdr2EubiQzZtTfckC6KQSBeCS+11NSidFeR4anLEv3BNhZ4Yudr3Vo5KC yHNq4VsQ688XsFDDuKRHokAmUq9qy0q6Ohr36D+3hjy7OBqycw4b00WhqUjXlNJe lXmDEc06xWiXumkw49E8mwNkDfe29wrQ86Zxlf7SycaMzyv1RtDN4y/iI0hxuPtX B7/3EcdCxP/97maW3rj0jyIOWidF/jf9b15z2OKWkSkgR1tnpvn4TmW84XqvR33l w0Ba9TFHn5gQCzWR5R68ZImcNPonevsQIBaUAxb9lRdg50a8V0A0jUStAnXC5ikY zRmPCF7IyLntW1Cqefr/sYyMI9Lhjyb5tzA9yt/0IN1sM8In+OKaDj4Q32VG66Sc YT11Qy29HRi52cj/SXu1fbOuIa7mOW2iwgn7xz9bzsdI7eNB1pJufqNZRoZf4vOu lO9dejecTpjP6MDE0CTUyJLT375sjqkRFIqzcIYNgrsvFJ9kVgFKX4Pb8ZZLc/fW zfhSFyJu260afiRWxrF8XVJsHyfjfVp0Z2hbgnPoTAYrhI6GstiXxJWg7R+L34gP +K3lZZnqy/0I77af1NQOOh7YG8QaNDAUkJ1f8zVCmeLj2ut3KLrP0mXlMK17Vwvz 1Z7/BRMUWiFK6LCF9TyPsrgEZ5dbRH+pN2OqWyHMtIoCfNUnQ5JpyI4m6D5ercKN O/kgnxtKQgk4eSAEVzgmDIBdOHWw/WbXx8iMDeUuL06XV/ddEcV9C3AEMFuavJsC w18XdnSB5YMnwke/SbjhpUCRCnvNFfJ89+iOsfUFX239Q4q8TvD7KIHCLr1gJc0n IQbTIhzP2/hrid5fhWbBIo3FSi1delRel7J2a/6xEQ6McBByi0GO0vgfoP6d65rC kg2XqK9OMmjylcamUMh2+iwFre5GOmHzymCvMTkpLX/MMmoasrG9E5JncOuTW5NW EvnMN92vJkQo8VuTpQXTNQuEZHFZuDttk5CrLdsY0pXjospQfXQIuGTfJcuwwNdZ x5hoGBE3TZd4idHTKfvK46n3UFBrfX6TUwbYpxFqsCM++kUAODOWsqWijtaYP0OQ 7hiYULwKWOnpYD/mSh9LQBL058OSRWhCIuhenirCnvfUZCDTfmCCuIixzB98gDvP B3Va334tsXmxwGiAolvhknRmZ6wCn1UZ8QQeZ5kEtx/stvOcgTkx4+muysxNeI3y cxHjZ0EQRr6fmanx8p2q1WXDSS2c9iyM9UzwHXXSsOK1eja8y4UsBNdEIiZcn7kd Eu0I3Ga9s2VDmRAJvhmKladrjKyRYOQGB8dhXq0KGnNEf08ckLWkyzu28gPLYunG ViVvRNPd2KDrokKh2mb8Vj4SppJoASG+ImSARwoddf1UwgG3S0gTJWoR46AYATor Ruq/JJNiXdsO1U1w5KT4wLDuMrdbqNM0ex9EZr22/A7QFcpXNe+S9NPNpSfgE3Xi omscF34nVuDQTCZvuF1jPfFnZXMMHvBbsA2JpSY6qKd9b3P/HoFeU/EUfAi9YYoN O5Ph0kN1hORZCtdUGUyjc1yGtzCCnbEYgWQ7K435Uyl6L/8rIYRTZ4TL1VEwzVIK e8S03dZrme38ZI0pdeXsiYe4Fma1Xd6QyqllhXl/ieE6IxeJXmx8X89DlvUJIjc8 Mg+AuBeiWwjDZm6tSLvDPz9Ygo9T+wJzQp4wH9lDzto4djyz/LL/Wz3+CMK7pn+F gxJLv7fO5ptV7uBOLI+vihubcWB+wk5Tf2mCzmf8viN6152TTpRj625Ly/PHoiE9 NGoN9jayQaqV2ckz8+s05M1Uo/YZ/RlAxz6CtqFGq/7vrv4xf7ixJY7e9274iIN4 OXdI+5ewKSlTeW1XSmVQo60Az79QFd/ZPrfwTpzsuCFrktlRvSU3/aYJcIcP5p12 KKZvRZ3qJrJm7+36CcIoF9KkrgrL7mwRtO3SOa6DYcF3Jd8YtwB1ClmJSTlzfXhL dUAo/aUdbQ9wz9Lms8OxRWQF02y/J2UEGoLKU/EFjcsFQtHfULBfd0ygKh4j1Omu ZMnrOlauPCT3Ti0BZS1AetrJw5WNuwQlg+3EXQjssanMqbAkWnb7ZTeH09sVRSNs Dux5JhTtTkwDSAE8dGYY9WnuLWVran98U/t5ZIVbf70blLI3jBLBUW1/1cVRTr1p 43reQnRleQ3s5Aw819rtFunywCryi62hmVmkt5Tpf7d6WTeYSPsDor7+DNk9zGYM VwzJ4OqtGxzVc/B6LiJE2xuBhqnS9X3XTRPKJBwZhw+tFrEG+g6Xr/5eLJzFL6sF IXJ2veijkjBNhxVRS8k0kCGoPsQbO11OH6E5iR0GEUrl619gEFEP32R5nKQ0HnEV qDVtS6cg8kmJQFfbrmeh3R7dQLusQgt7lvF7ewgCbzrOhkUDTJLPQGWbboF2dyGp YfrfExxcij317ds46ZVsyFWs82tsiZwcoaLDRpzykhw7LuGB0FEV39ztJHajlXcF aLL4gF2La8duNaXCrczwrGfAwP23YAVEyFIezq6NbZ3euVvv971ZuPisfXvzYMRT 8dXGFFhP/MqXVFVVSjyLBpjq+Xt/kX2kH/ucgjuWAJVHgbCINWxdCWy2w0O1dYdH Yz7p+6G1HEVkUA7DObl3RoD+lERqJG5pvOEbQOq3pKFz5rZ5Um2myx+btu9WVi4C F0eDr17LThEL3cCBrXVe6a4U2JSSl9J6FJVtSRXiuHTr3hkDg5w6vpvkXjN55Nns qTR+VFQNKKd5cfkHzPGev4kROw+11vhTf196jY21b1gF++jQrqFDTIJnYq+Bch+B Xu0OU1ge/Rbe+trRplewJN9+umZxBKa0d0TwS78/bWcX29JkzYYR3fhGYgiz95jr ES2X55SNaoyl2n8GX7yp1pxEWKc2wYLy13wbYme0msA9pC87iV9tGV40IvQwsftw j6fKwkw9h7YzUfjwr0sSby2gcyNOZmVzrrFXCrCfs8yRMt2zStHmZXGOOkOw1h17 2rbJPMdlRbp+Yh8P24aLXg2+kgP2YY2FwmvRdoNsO8bPt2/1f/IAB/eY2Y7k45W3 HPs4KWfBTrGw7KvvIHbh4AcBw2oAwPryphAd4RUgWZW2RwDvGL34McxCAkBvo2op SSiPJ0CFZGPKHwwKVGc0b/1uxtBvbCRP1awUOOdGsQUlV/bO2Igwz86l9xxjUwOw keMvQW1as3Sx4+3vI8f718w2Q98ekWU5uBJhlirWEt8hsnaEgMuE73tgacBYoUWQ rYsxduRH+CHVLGUZW8WjCe+QPP8SBMrG3ol1Hc1HyZbr4u51414thJK1pglZKuBC xJ3cTQ+u7kw3fdMfwpzquC5FuOmFysZGQ6dHJ/28639f4f2ktgRicKmJN3JbgPBt JTo32S1i/84jF078IwHheLYoCkUGj1vi5eG2tS86T9InT9rVg17iacTZCEZzA8mL rpuO1TbXdo9Bj87CqKdk+7YVyoyZjKrZVGYxH6fUqtjnRnbaLTDRVg1snhVIXMwh qWYAB9FzhcvyZXYjAvlxsD64ARRCodtTNniPdytwAo8wW4Ih7l8TdkoE5WvThquL dv7H+fTiVBTW4ieqd5BcHRy2VfnVQ9fJKJM/dVZimwYDHvLWPUEUlHB/9qdlZvo0 cXiWMTyq0R6+nbrtAdJMJ9iooy0+APcJOhcVlllpgUTjvyNA0bjryrs45IwR3yAk /9UVZg9B8EFEgvnrIEZdq3a4mcBd2OjIP3IPmbBLokuP42NwrG+cpIUyyeYoD4W4 fQ7GWEuEg7w55PJj0PsBXo74AO3tWgpBcxEcILvjWmzyWVjWVI9qUJSOH4rXatlg d2DP9WyiiAUS+AHgZ4sk7KwkUyglFQwLHsquARm2a3mlCjLPc0XPpbmUWdFnFDTX ccpC72HDpAILA5EIDloVCzZHDbqB45yNIXcUC8E9EJR6WbW6fwReLy3ktX1fW+Ac 7vAQ5MQAF1xmlWzFPCrS60HfkehtW73ocOKfnkNJu9A6PrUf7IHI9tlGwNKQofdJ mPW3q6vnQDftq86ejCtfyDm6hcM1SldA0LumSDRFE4SUHJ2SpscNeMCJYtcNaxKs imp2l1vbWcn0jYbFK3AjsN9i4WSa5iJ7lwYth8TxeLpGFHk2f9eP7U7j0uNYz/qH TK5pyo8d4kIUT+XZ+2PxUegDyKi42uDFxjY6+be49DSHkSBKfb/uR6T2cSu8msyi pgRmnDanVvipXqI560UlykmJ173xw7lSUm4WJsIL444Iikch0xDI6rsVh0a8AoT3 WU8xSL7CaInHBVOq6IAafiOejGMtnt4R+PJvU/+Bi4IRgDR/ZH7LvPfEshTu9csJ 76kzsOGQjFNz+bmagneyiaDSYjkDQK+Tl4um1l/GdIu7k4FHg3gAI4TR0A6X+KcG o2t4GOGJigNb6S0+4nUAp11zcMokCM8tvxkBzTmaYH84vqeSuwl3vRkHlMC97uGn +EGOb0SOkdGp3VKhcFhj3cqAlAW1uif5LN77kRFWg8Jugio0TeXUJ012rR6VPRzb h5tenAIrp6arMSW4hRm6dnDllaE5PYOYF9LIuo2QlUV6EgXSfQb8o8z/zQSFDXmn NSH31bHh02sHP7WoVwWdmuFsntwPS3abprpMt0+OL4kJRBAZJqTfxyxyTHr20Q5v PYq96hilribclLz0r7ejWYqwGu3KbX7NFCHr5iiQ5x1jcfcHF9HDrNihlF8a8Qt0 VkoxIK3jpFeiJ+RrBEBB422zdxy/CrZwT+pKuWH5rGEHQJ8KTlNePAqBkZWgSYRS pmld9wfQmZG12EFx4JlcQ32DGlf8+Ml5zRwcLMuyxMZv2aTBS/WCeYJU0FJE11sM 7dRbxBaAgVOCG0LZxIOKA8UUAZCa4lt3l0I0JD6Rw15UDVGU4sf4NniXhXpdnDPr 9oADTW8lPOlwwc5tMtHqJuSU4YMT0Tb/6GoiVGJ2cBYpcpAXnaSHI/U9sdOsJdhO QF8Y9isXbPcD27/o1ZGLEbUc3lKVcjIok21Grg/Qy3fHOjQnEabmtZ4hjmfM85zz VFQmy2Foz7nEwiCj6hW4I5czYdvdyhTTEPadEdsyksVmwoGkoYtZlTctWxxX4MiE Ys7hifTHFz0J8eV21m/L7IKKeYjuMTqVXA9pGyVHosja639VUbZ2YmcbAJacwDn4 mkzf7pgutl+PiLMbDuwhpFo8LNkbq+KIUWE7BJvvuqDTMS4rvY+NQ2knxBrk4tXp g53iiAA5l3XAPKB07HXvRpFYylOMR7kwGFXl+Sd1+AQTSiwjNFHZcTDlr2hOYLS8 u8quDv3KW91xeMB6JFwygbEUYCpXP3r2Z69L5U0lRglOIqff9z3H3L9BEm8QCIcU P4QHMSe2GRDSWBOIbQ8ziKrUraOrktcL9UHx/BpiQXX16a093j1gx/+W9CDYmHJc YyMcWFfR5R9BgaObdTnueZEDpGOH3fQnzY84VXubtMvSDbfx4NkzQaiZ8e9Jkjfi 5OvyhjEoS6mBkqXWpZYaQZk56uVp6V+x/yXB1F3qjxJ9gSUcIn39Vf+4ktiXWWEd jsqBm0icLqXvXIMHDQMRP1ZqqGUeEFu4xpzz1rjb4phh2HB7i6hGIVWLv8mri7Om UZXhlqcxsaGCZvfgXQEQ+cZ4q4G6EOvKXgEbBzbw+30PZtu9HAmWWJ2DtXFWY/y5 DkFvPVdBAXnFMyS9lcxIGbCZTZCDHkLBhdsLtBQIUPACpitoS6eacVxSL6LBTMqS O1h61TSNtGrWWXYWNj+AT4KcrvkHpUXet0sPRzQJHo8bKYLxCL9rd2ff7WfuuISG OhlrOtwAksIizQLhlJ/7VMFcNAWeY8g19ZBksB5zoT0DQA0MgajUTUx6pLJT7lSR 6ayMFW6YP53J01GS5Zu9Xzha4uLgDk7YdjmdiEDVbgZHsAOhSZkYhQPKx0HEkPTz pMQTNULQdRzqCZeMLdQaPCcFkFMS6gIxI9MUPJi/3JFCAfQ54tJ8o0nPEOz74n9x kuXszDbWVOWceI/3uyD2tyMwwoNGeaeaB9vS7l954A5XuQADuL6M3nLoyrMo0AqI +jWE3CfMkI6T3937oRGOYD8bIkTwWly6/1mcgBCupPmfvO/b/JmZHGl/0g6m0gnb Z13sEfnMfYEMA5VDPEvo0PRFIrpYY5Q4vIbttslqQ3fhPIO5rOBjHYdAOgMN1DTO 2KRDBvUzo7TFONGk/VN2voTiV9xJ4vFvuYvrRADpKRnfacWbCEhL18ryCI8vGTG8 CPiloCzVymRthDswCmc43VrGDeja+sVX3igIOfREfjSoaXL/xhl4hBZtxHxa41Wk aj6VBhueJj2k3+wPBi9+yTfoArSYx9eG6rSc50gpfc8zrHtjDD+b9Rr5SUzdClM4 dS6ZDx7pf/KALQdiQf8sDL9hNsgZ08FTqqsauEomkXaQ+k7dcH7C+RPtFXqQRq HrbfxfbnsIwR0rR9q7B7/n8oU5PcdmkxnyNMw9mVSpUQxNh+Fwwg1XNb5R9o56Yb WxewjxYZxavli6R6HVl32TyE5MDTEspFAtEC9E0GHYXvmo2IoSe+e3GpV9V9TCKa fgEQvqXd/1E+ITb43JtgWfjIoQAfS93ZD412poY+gli9COkEXG3nWwesVXjo+/yM D3yjNoletNgoENPK3FGxwoik17QhXhGDjfknjEpHEUf9SmoXUgzI/7ZFjFhFeUu5 nnm8PGGlhWt6rC1AnnERs86j9jRiqdKfex/ADYLWxBIqUI/SJnNSyvYjlCeCK2WL w2+zo/5O24cyMrsJuhtTxD+9b4JLJi2GwYvmFX034xp5tWND5L4FMA/JxhaWXIen 2+KvIBmp1OGSJBfyqhqpoiw3w2/8kavDv0dmTH3Uc4C8uNFJbUclsOsElfKTYbaG HJaQT55njsQ5qMjfXEEMSFBO5TATbY+c/uCPK6a1hz7/lbKubzxv6AhV+HgqfsNm 10msQB4ApX2SnToRKdmQw3ppdJDeWjmQIZrZDoCbMaGO2568C7tl7icAUAJzoPij zVkx6ejhzVZjgvXzkZF8tmF3kvEiLbVt6Sihlu9JDvOKxb2MUQXE/nKlK0FQJsDj WY72Xteqiq3uiOreHI3A7NrHvDxgXbUGSTzLOfuaMY4H0uiO1mG2x6htV9gQi7X/ laxGHSXo7bAyry2Xbu310hlFDOj/QtyOlMdsnCE9RTjy+r56YpdhTWCnbEWUuamk x3ZielzShoCgjvd33PFCiqk6q9NUeNf+frh8l10qY/Lpj9C4BUALeyuAg0Q4FocJ lvNgQ3c89HKbrjlLE+2weQL9DrfPJc1bWNy1uXsmO+1/M0Icph3HAdiL3vajEExU 8Ns133Isw3qtKa/dDTqo0QVn8svuCy0YBbEWF2fSl1fMP/US9uOaQvS23Fbggfva NtYHu20pY/WZkRsbZhyBTUQH55H1xVWOEJ6o3wD0WiWdOsMnw3FP1PlpBAV0nIu6 PP1+LGyn4fIWs2kQeikgE2MJDQUc/Oly/54CJyLYbdgp5V7DGKBmV3LvSvUULyAR IYJS2xHyuRQ0EOyzNoY9MYnXluA97EUsq+franQSx6CAdKCP8LPezqb/3Wywx3D8 B040OwSZh7k2pYg88oA9t1f9JKyvmhE0ze7YLvNG1WDMLb5LWFtRHghpxOrBoaSD eINbNGIonjLGTSvirmHDl+fzys+Y0twoUfvQtAujfawm4vEiIY2o8P7JzTAqQLAT 89wMc3TZkyzEMNZvq2o2G+uMBMDGDi8sUFIHIwflhKN+vdiH61Kd9iCS0pd/MrTu FxRvADwk4yhyPovlsed04gfrcvhUliZL/044Wn7lAiCE8hrYN65BNA26lRpd6HEH K3FVjppZ78hWeLmU5zY9DSqkix7wblnCzl6hEsXWHa0ESiG2x9048xYwDFiPFJu2 7cxNnT9Ajp2JyFLzeETpznnpKoNFanzjF7qVrCSh1XJeNqq19vFVTSPG6aiu4Hgz 74C1QqQhcOeSfxSA7COWcnWLOldbTKZ9OgrJzzEex6LUSO0R/tuzKnWBe7XzQkKH N+6nPRZQaIf6YS4yUTi7NPO6ASdqjai080RyWLmXr9OHIx3Etg1/wtxVZiirsg4W ILi+1qf99LzNSp6tWOIexdgUBauVUNWRhDUC79TU2HPjDq7V8N2rz/bddYewngQl P7O9stR4QXSJsSxKH2grnq1rcwTQI4sHowGqih8MJQc2x3+5v+M1hfTvux9o56tJ tRQtWpO/Hhyywugk1NdotlgRHitKPkWXkGr6bYi+qAQ77aGhPCxlVRTyGC/tGNVQ +JpQGyZnQC/DnPPkjqS5lPJ7ug3BCDslYOq+DCuKyX/0UjS9q4/zAd9Wjc2ow8BD 9G1TNQjzrpFyfTSTbZNzlguuwk76xVLgCrsCA7zpimiJeMENMdXOCilDXuYDXm/X aplqciz/xhiKHiHxmA2QMHml3Wxq2lGt4oftLvmRURH8PVR0QaZw1DskGMqnOnzJ cackEj5i3tFgTUIu2HmTOcT1GYboYwBQRI1H3OoNTUSTS/Qh8WInKb5BPw936vvJ oj2ucym8fZQpkU2ewGR7qLbL9CapVEtmejFKVcao6L8NE7dR1363WWjRUOkIj7Nk YbdBZelYPFZnJLtX2pavnn1vMFXbRM7/+WU0O/nAv6/SIgu/Jqd59R8eo8XNQpKn xTfSVBfxQnmkFpRpZHvA1uxZbRXmlprLkYDqP6OUu2PKYVbaPsReqr9s084EuATw LF1WXqp1l4+9Fl0zU4gDQk94E1a+ZWtTnBgpBVAdzA62jLtodddlOWduIoAFu/gV 09y/d2le7KwOm0iSn3/WmUbOghVj0K1GceBXEFsV1MbIIW94bSmBnXwXsaJwljoX yj1xJgIQ5vkgi6UN279MdzrT1+J4QQQ4Q3lRh8PNv0qWpyCOeZ7W8hTxom4MF5ps eFOvB8Zawuzyu9f1NfqzIO/1TdqLiFAaFhvUq0l1shLV6FRrJtP3xmoNqYxw7G3q Q5KSUpoEtvMewWTbbTvFZXRWNf/comrRlnDdt/r9Q4GZaqvFPypIeJudQlq8AM6+ lnRjuzlCQs6Er34sbr7xmW2TeXqRoL72b4AHHljAlgkZg3Da5hKk4tkPszGF5mjH hiBows5wwlKYVHH1OI+a9vo4DFfPKqz3kKpAbrGXYDxuqtKCjw/MBO/IxZWs/i74 pDfo4Gt4aMQM9WCvRc5jsxIFOQW6MVkOmqvoJoh0YZfuJ5bSb1smwLWBTFaRNtq9 wZ0V0h0hbA0EnXfrnW5Zfa9Rh6c2Job0HLmiZqzrSvMj5P+kX+bEgJnHzp9SSwNS m5ZPSMlurGdm/vJkSbYa/GFUl12uSzIKWk6bzS60TYPe8PD2BkISPVqaUxDMnYAQ vmGJiBBMmbVS9YQveOIWntjbgdYk/Cqf1OIwhAYwPTJjFc87/FM1Q6fueS8ZWbW8 fgBKgbnsuPADbpJqe8TJlR5bf82dgojgolBg9QZBlmRIp9dz1upU7lYKq6BkNdoa IBiVTkbiI+fH8e/f4LMPm9laEpjQIv5/pJ8CTefTg0LjqrjLjF1ie8pb73RGJ1OW RS67TGy1Y3vGmU7+CyvJO1l9LbRt3jV7/Ky9+h5xPIX77VlfqNgbu6PD5tR+Ng9Y UmHzHt4HkP/ioY0X/3RTzgbUpDSbdVr2/hYQN2kXIXUPl8l7PaomR5dhO0kwGyU8 chZdND0BA4iMeIbm65TzNWps+HgrsRHJb8YAU84V5XuTco5RRil//0tv+ZxZsIiz FbOKEq5lKeqVYi7E78upIgzYwb35dXXVIWNF+7Dcwd7zRlsFVzImG6CM+Ii9uoh7 A5Vpd9/i2F5SQvdBddjIpKGZtu/rf5+zxgZwMWtas70KBMRJ8Ta9m1BfrNZG/B9w R7SuzKG3eb7VI27w6G7BwBzUWkn6Nq9stMiiKJBp72aXwqAHTQcymRtthyt44IaD erPSabDVNfKn5DE2fznIOYYtmAjVCzd6I7qjjuv2jCZr1lyZkZjAw1OF1d+CXqrQ WhFJpZiCop+pMqUyHaU2HkzSb65WPYUis4p9wcz/aQqOjJVFTexF2dR798oSEyR8 6WFvw1QXpzrxwenwc52YSY2OVE1AqZny8Ogq2iHHjbJb15OM1GNE247LQTjfVh6F igeZZTllVdaqWboWzk6CXheEqX0HyIVsJ/8TA7PZv8h3VuPlpQw6lRn8caMQoENQ CsApWzW4mBg1GaS824+LS4BHqjqFM3Avs9BpZcf3wxZhD5Y1oGP2blKwTD8Ug4py uJPYuyGHQSev0LLpU7CJr27r2zScPos1m9lhhQoAfWM8xOk+43+6uVsQfzW0amuE MQYEwZrGvT/Nl15UE/P7ovqibtOn0xt9Jo2OD+2s5BsaEHg2Lx5eE3jKWYnYbY4O q51rDAOd1d2HKkVSTB/ojUthq2EWb5uWjVipl8r6JOK7egUWA6MMzNpT1YXlXQu5 PQG69WfLEBepJQgy/oSwdUU/Gs1h8Hsmk8pMaiWSTRYCBPVwCaJ2fC5rpGHvCAi3 Yel7ElxfM2V2avPnL/sIGeRfMoUMAtkattcCsdph89dwZ2QyWXukm7LjlMw8wHk1 jMz1z+EEU1pcDqVr5p8uOi7vavk6cdpu6xDJSNQOVSt07PkEHFuwJJ7yPGLIR3Kj itJfUcF/G65s8QDxMIj6OvArGli7Efl/YikKdBKffDVuUYQrmBccBipq2qOjM31X fSy7h8qM5ekD2Dw3ng+tVh0Tc8qZXPP0q6pz7Pbp/w65BCY26Ly9+2BuYAMTHBij 61/UJs61Y/bw00TGrxe7lbchU9cWK2TCDqboLC9eWOmZDbGY0hGhCDo9qM0e4qkv mcAIjTz83W1BgVYHN4ap5h5Gcep++3C/tERP5GzSITXYBxWb0eEtrfnXWzj6+5+o +ZRDGl40spREYb6EUDHffss6LkL49y4gbfOhX+HPdpbVkK6acEfekKavisrCkVal +A9pokrb4QlLirkpvk+54iZzAiIJY0tAn4fusGbvcozGBFGM0LISDXDK/068ool8 11msFsO9vEPuYcCIxbWZKAckztJfZl1tYXdUqoRISlbJ0tk8Zvt0NQdxQOalll8b 81MxIRVS9GvaR0RQa6MdLbEey+zAM7YYyNkf5Q575UqHsXQikwEpkKoekDazp3tb 1tBnWl8wi4Og+tMRRQ0ejp1g+Z0Qah5xV1SV0hRKJRI83+fkVvztMhc25gaPAdKt +ejztIXL0rqrREqp+vU2XN1GwimesD/6Plk9kkAAkLQtsJWwmg6GM0uNVSi/bEy/ 3WsCJ6cpCetfMGxb287UETkL7HfNX3lk48eiD52Lpp10NYZpQKBtNta/ucpuLN2E M6/ylA9o5XFfbAOjHdkDoW5vHC14RxykEVL61VMwO9upP2q7cVMdTdwebSoApHwe ddo2HsYZ+gJRAYB3fUTkBRN5b0HJ/7qa7+nMV2Ru1eR8G0w47euo4IPrJp5xoPZj xRjimYn0CAW08SLauaVMcQjZMgjLVYo3OJntX5JtnwneyOq3cvsmqMnlTScs4Po6 RTGLmo4yr5FOdf53gK9+QVd6Rc4rYXxc76KuOfSOlb8MhMffqPfvoVvaDq9Cb7Zy gz034DN/wmPRspYALq5D9ZAXaZr/93M9n+byUZE+/v87SyX9CQYqdUXSdDKkf2/L dC7Fc89UxTBBG3MHYgf0GSqg3FVIM2OSlbMXV28FaVw9oiTXkGhP+xPYd/rt0rPu NCunYhNvpIsdyR7KoNTUkQ5FPb/K89OCd4lqDCV8HdvwUog0yEHGTha3hWKMkV4r SRJbFEa/cJbNhRVnfQ+szelp0GrYI7e3Z8TflMLBivx4NvlDW9MheTSfamI5dWQ5 0HqVwMG1jZ4Y/31l1lvNqUMSFZBnJ8ChYol9s9DI5cH3iaB+abckXKxhv5RdYzB4 VfJ9YNV2ZaPhB4d0HNsKfXQJefZO9AFT5VXPJDZABejQhx8b4Na5L2dEGFEX3Mz2 V/gxF9+PSIFx50GssdHVSUf70Zg1fxSXQ1TrSikLwVxIWNy3Q+1ElEWZzOyqM2vp 9zf//VQA8KG7X8N869t3OWnGrRUFdI0MGuphnlTc9ee4FNsjFL1DzbEzPzK/Wven 2aJy7oh5Nd2N/DCbebZMQxohtrk7knvKpqoXhgncvsNhlmrgmzwY/46ULutWOdd3 oQhfupL621K9q8BjR1RmFNFm2xhcKM6W9PQmDXo/srXVUHspAUriyfhI5boBbmcY OqQKKOdzkUJtVQfnU9vDKnfgcsSAe0ZVc6ATjAWoGCmZMBAN7DIZK0rQRWg/rSrN 9HVvxuqWmayc0cIxIfXX93lqIOoYvl/kWb0zpzigLXKnZuM8O0gcQFxNEmJBTDBj mXh6ffH59Ywl6AKtaw3oPGKmp1G3NJE7/+u0uQYzKoAcDtjVageUi7q9Tve1cEhQ x0VgqBDRI9JwoAZ7M6hNh0gfRp2/Z5OZOvClPDV9VU+yYiYRyqq/I4SV0yxxLC2K KJwWqNzp3OIAeoFkbQ6PRODEUW2jJdnsWDWrYXjiYs9FFoAA8rNlzfslfZOUoXPm c4QuoeNSvebvFUk0c9RwnX6B7dYLWur80WoWPowmEr3ZPkolcQPjF4DmJNGZ2NUY pnf38upzk9Lq6p9zyFmQjVS53p+Fvy2T99JuQGOi70msel7JRbt2EPEKRe3Lk3/S nNDkqTAFI6DflzmLkT2VtSa+Nnp1qKE6KIeZ8Rt8jf3l53CYb68F/PA8Ulx/gjUH MmrgYCoO4kx0zEF89qK/AqkgnQdV2Q1IOLcH9+HpnNfpVj4NudqSpBtkRnBAMYGo Jr1INGOyPDu5IOUKHYz9QcKdjLIwdTlc9/FgvrJG83Dff8V8dlN5Qp+7YadIO8OD YOFe62L0K33+eB6E65424zdlf+UQFxvUeKuhy0KuXhIB9OsCE2Qzby22Efii9KAG 3jUIdkHw9S/rqHg3x3FVc4jWLWO6zVe6RPrzDHbV73oyIorknq+1I1H+HPYwTuLw 22V7iiPtVevlpylp5lb7ZTjaBhw5bcuL+MxQ5WE4IW0OGxU7TjPIee5ovKdHKQrd A9v3A7iyhOvPHUlpnCMOeZbLtmT0v8PJPgE2A5JrKHJqrzSwkJ9zwTascnH9XYQF tuYL0fZdXEIzTwxENdgKD421zYUnGGZV/yEGQETUSNbI3kP8fWypH7GKGRPL9obE xXhpIj5xIiXSEEPSEPYv+8QlwADcryZSXS0Dg+ydAJO1IzTXJtbs7ovh38an03Nw aSomWD9x2RXsu4Gh4jBCaXJzCkHlzrT4Pmt5rn07bkFgfjkN2eTJDPRiFA2R0kFY kRWEju+YMWzBIePF6NmmkWP3k1gM6PQNUOWWLieq/U8iMp3mOLKlbJ0vQ7Gf5Y1o MaspIJ6CS5OP/r/y19Oim1Ma3lGwrItJU3QtZQgOj2EtmpdYeTuawJpP2OX6Levp UoqpVefX2rxam2rmbtbj9fldgY9cmRUfelaV4aNa71zqAbb/SJoQQKGPR2c9iuku T2Z6QAdpZGAB1PnU4hc4KviO5Fe/B7VXSq2dcdtacO5x+zuhB8d3HkmaS4fyK4QP aSP1wCw6hMz/MYIq/+113/s+LYvSqF4l12hgniClVikdd8Y5UcKA+yyKvYkShr6E LC+U3g6Znu5j6Ydj0M3RxbN2bbcwUGXQ9gyAm6XgmdhbAMrnRP/hxONCt6WsovRi IOU9krJKVYzYSIMwn6bdF1RbdO46Cvr1o7Z5zV7LtlRPpLNdDYckdhxCSoUR4L1X D6RdjfN7ypy/goYeOFnENYToOrHEPeIl0eXfGqhV6IisVx6N9tXTt222k98SjgUv DL0+LB0dcQVGQxnXWSN6rmXqi9HRUGkBLIeOcHluVCyS4mV7dCSrCNRAw3TotZot 5sZzVNy5ztnwBfz1OxVWKYGMeC2XhjK6gg3ou2TDIaJZ+xDPmMwrr5OuNupsf2I1 g0xGULyUyDU4/JkybM2neFWC055IQ8mC+Fu3fYOngnhSP1CqYz+5zB1YTMTXw5ve PYBMHi85RdLXvYQG/QNGk7qMnq1jZ+2zsHtEyKsU3ISvIK/yg8bgst3qGEw5IpB+ vpwbBa9C+6yuOh6B7nMmv9zT+UXjAubHQpg4m3xAlEASaF0zYjO5Bn4Mbsulaa1s IsxRnhp1JCtEi1fFJBuoIJ0muVTCmf6mRsx2Kbgmdy98JRTYNdyn49D/Ba7oeOIA HCKX1Gbm1KBSyQxEuMTP0Idmgn+/Xp9d75JJEMUjpcr5UaeOJTHTV4+IahGcwb7J tJhagaoThq6Iyyxucx0Pjwq1Vr7IM6ZazGY+NQ6Q8wmLmEzSfe4mt8iLr7SK4XiI pvoMl6SEo/eAKZdlMgnZ88kZypX+sca0zmvYiCBaQZXlQzDLeNPFD0yaWZtd6GtE X+89lRENrH9owwvPTsCCJNqqNVBH78w8jiJZJ1Jo5YsMq4tTsFLNkkloKiNNdF/9 yuinpClQaLHgV2AtdZ4ubNP/n9nIZwVMIrIhStkf3OmixRCTA27CxXYKZQzKSjX5 30kqvsR2R0FdLDzJyNRdHxntuoyxNwtSFF76vBYsdt44D0ts+XqTdR1d1Pp6KmXk K+schC1utkaJCVtxljludz7k/vBFG4gM/xF+qkpuBsWph1ebWBMPR0LO1yVfQyry nIEQ1+gAL4Phv36bZg1457GO3bes8f1wtOcafgObEGATcm4HQM8rh3YHeSy7/D8V 1BpHXc1rddziAahjFFWbLS0yyF4qR4vnUnjncluYJGArojob/RXjJ+OwG/k7po2h 1mJRkJsR+itALraauZwhGZQLoO/w3xAktvfLbH4rwCGLqaHkRmXv6asF4JYOzgWV Nr/1bAatQP2uZpDfJ0jmGUq/wLok+oB/Hkqe6FXnXxMudlKY+JKjTktOk0OdsaDy VI/r71NwMXffN9zju1KRNS8KsehKMhOuRX4jW3+b/JKdbkKvREk95+NvkEbH2lt3 d94TeI4f8krcwQ18nOEjK5RT5spLuubUMu2v0Il64Rx3XkzRmliNXQLhaXXBuGoj D2XAAVuo5sRN0pFwwPy47datLOUv6v2NcuY3Z+vfOn4LcvQRfgF3j9JTsfxxwASD eCWbsBKMVBeDdn6AikuEnb43xt8fdDM9ntSao7t80v0LIBS6+0MZkwUlyVEUQvl/ NkLGpz3cdjG8iX6hW+Qhga+qEi1ujat540ZlOnAWtLP4xbCNBGuROUyrmybVKqnp z2NRIpV0vr/41GUB9fSkJYDCKEb6Wckvv2VUgSIuqHMpJCo71ep7lxizcv4N71ti RaxRWJZxNjWTgBczGLR5ji7Eoqw7CuzhmCdkRKcsLdFAVR+xXh98qsgKE1dGnXYd Vci+hao78H/yPF6qkn+jJoj3buWa2//C0GtZ7R5A8VbI/693Ti/n4j3IFVXFY0Ul 2vuPtRmA85dQJjRt2/WlM5y6Gzj9VKWqcQrplfS+U5UvyZ+y4qrKN21poXOPrLQR QyJvCGFYEHfdHNhed7jFgW2BA81fK7FPzfdpkPejFqEB8kihC2mkEhermnTcl3VH pOGi10QxK48OtrG529fbDowJFhDxJTabkT4IpcRb0pfJfqxsgK8zZhNPwmFti8AC VWH3faFGuPR1pSVeVPTqjGLqv2jj/8Pnl8NKD1UH4H8xc51HywB1rr/jwVC9q9sR n0QXYyx18yQo2B6fg0DWKxPjngxTVIYrjy/s988ndr59+3kjkSVmZLiUlEYcE590 NinDJHUjgs3USN3kgklk+7CdAt5shBVbaUEo/76+NacSchIQxD25RXgKdocDEakm aYbjIZXCFwjd7uulTn2+NCXgEwwgeaMx2rxQ8pNQyZl1Jw4Zdtisz5o4vx9eo1Dl vmctXzE/2pn13zcD4yekDYAiU97f2YS8aUEX9xPiO1li5MI0M1tNWD2mGJs/99pB /v27whL4nR5HDcAQIJ4RpZursvHb+R9ga2bJ3wA4YOXHl6H+vMQhr/WkK5hHwIsr fy+cwxHKnRdf8/CIUVR2VskOtkEvVw14KhebOFxDHmJX3xb3xcWRHPiZjM1UdMSv 0MsHg6HYyhCGyMSNi/iCuP2YZEjkAFh4MlCu9JeAyQfF5dIiUevAnwAdaQllsd7e Ra1ZX0Xq4qOpWWUt1cASYrFZGi3dGHtV6NgPsDIVf4TTzyFnvT3wkKepfCbJlUJZ PLul7Xo18VNVh5fpeDefFOeakTMnjG2af1PZUJRwMihbbs7vp3VMjPUilMq/rDRU 7S7vEGE13wUuQr7onzX/IfrpA9MWFMKDbhGge76jpRYcON+r88toLYwQZNtoqYl0 0aVCYpooholPTVBGwsrjoKCea42iRttKB0GTeAYmO744tD1Sf0vjqz4cMeBRpLWA zuoTQ41ro1r/x95avpDyQIC3r93G9NRQefeRU7EhSES5LCTy6N8pFvXqc9qcE+UI XHlq22EZPbrwiMyO1fo9nueloKlRAaCOftB/eBaDifCXSEPDE/Fjls5+NdsmAmMS B04/w8S8T6efdF6ns/DbotwwTpJ/l+VUKVixJPi5wGIYf+XJ5QSt2C+mdfP/g6rI bAkJcrYgtC9vzh/l8HLcP8I5YB0DWlo7NryWm/c3ubYO6HgBcxuDp/zXhPUCZxRf mcjzy8oIN348haYA1PkfsdfeZrqh5Crv33OG719ZR9Iq9qBxqvfP4L/ZLF4O/uWQ kFuD0IfQYOss2vg+S84WtMM+lURPBYNr5+gqwF/EC8msU37tDMPCtHvGd36qGhGn nAX6UgkigKejgDkmJ2QzUn2PeovAFbNlP0jXD4yBsGe759olYHPaZn6lfI0UOIQX jn+/E1mHA5BtJCpBbQnM+i3IkzbeGbIfx5EA2ERmWXL+q6fMm877054UT668nAgC iGhyNCKYKg5wLFhRcR2PzmzqWCsCIun5X3MdwgQvFMtL1pBfbw0Ei38fVcxgA2dV GkiG/4AwEZk2ghaqVvR0lzdnHbCQgdUQFmf1wT/pFWBznrqkyJRTyr36WzLuKULa 3q0OztANHU2iQ0yawlXd6HNy3/MmY35LYOXLunaH2J2QihGIVXBaIRqWhCFctXRv l1K9UpvjpdCPegEHiaiV3v5StNrFuuNRqDaXbWmvbfha/3jpHC9W4wGiZI12ibA5 KumyvCaUw6Ci2PyNTN3TPQIjD8mZxtRzESq4+hhO2fKSFHfl0F/l77Q30F54iC+x Eo7yOwyYDer//zih5Dts1y1LP9Xe5M7wRdnjSIrdz+9jx41iS8h3ZD1NkNEfEchR n5nHLDvhgvYZSTSp+zg5G14ux931AGDZcWyokFviWUBXK63Yf7uys9ZYpzTOPgwr uIlKoqzzFSpdQXYDd1jgIvIy/ZQS/ND/ZQxZ/LyjpWToHRN5rFfiVDtt2gH9LcQc nxWE4YKHzuweBe/Z6Jk290Ske0SAi4P9fxDUmY5d3L97HfIoHPJwg/0uQ23EDoJ9 fhb3H/UQjsfuhNmDCDpNcdZvg8hun8gnC595bksvXqJs65uD6q+H/H26Gdx/ylaP 2DIn11FerD8+TxuPxEXBIlzFrAVBu5nhLtc/1lk+lAWKfyNm3I9XsZ5OFc2l7/cn gMRa/KCVPkOH14PGx9y1ySn0ugnb5JPBkhmFuWNBfXSD8960NFX+YOf8eQZtYEWg bbjRFcF+6Fhcv60MLp2jqrO7pZ5sCxQ/RmxTjWCwzix91tAF2wd/Ymg2SZrRHa67 ME5F3XdRy7/HQLdQ/OxaGBFj6vM/49WSSgA3aTrMnYVrgCDs61Nn3WBorVOHPcmr ybhylgW12fTqQ08Sch0IYExz3ZVBzJYAneGSXLrLXlIM+mDmpUB5bRWnRRZ3SkuX JTl13QVNhmC6K6qKNqC6UQbmU6FBIboqFURLOThwdzY8fCBnMv6RD4pABuRZ3K/F yehOrwh1m0bl2H2Y875x3D/o02MAc004FF1m1WFYzS7WSFI2rMkkQfzPNGNl+/l/ ZUiu/JirlTwkk4hCZ51b3IXSIAWsKpWRgt8P1uMmvaP0tReYhFaZdv8jI2Wl0G2M uEO8IiAJOGVSLYAjiPbLWdiNoS/3NGnxRbMcwuR3b19Ct2AcI4Q89RW0CQmqIpps ErYITyz6HCKTK8Hb4GMYKrBagK0ThNoqPV14jSffCgE2YKh00M00JZeVMbC/eOZq 6cieHILpKWD9BfuYYuinYg2PQyrDsDzPLvr6bsSKbZcqPh5KIROXqp8lFZY8aO1x RUSWo1xwOPgDCT+BQZcrXsDHiV/TrbxAyaD/Y+H2BTe2nI7qCHdvmmunvjkFTQMh enJrMdhJFJnyLFXXUo1XyNYkfN6Fhf8kh83z5gaA5Xd4t/gZr4nIHvnwHt/3iw+K WzfH69FF752KuaRdE/NeliRbkE9uVNrNzgw7+UKwkSwZRSXw/dQVEYoGot0ZzHcd y58CuWABASOUKC2nrr+jikz8GQ+agueEo8zrhaneb1ZsuNjwnrg2gzgaagEfhtyi THfhlY8yn07Tmm+FkOyD2qyiKZoLvH2Q7yB79nrkecqIxkyGkmkJDAgnBsZoRwT8 j91fPXeiGU4eJpCUFgE0CW0rVTHb8kJkEk1y/nx1LbOIChMVIVXJWEjjn7RDNJ9Z CdRQkU0KC8K5VFZVQ0pnJgstokwh0IgrPv8Wogure9KW7+ZJiqIyXX7nIhwgqSLQ XbckPZKWtBwIvH89Ff7KOdMFBHlXJ96e1bIR5xHN2c1Mf0YjudNY8YDPn4dGDFCg kMlSmukj7puehIfTZWOXBeRNDnaLfHpqV4vxtWJnsia5PL7yU7cByUOjJpoo8xZY hL4XJtrppQfwDYYpb7PdGhxwAk+kRwoEa9YPWycCpYC+lUwMY4wMOhg5uj2rsR58 p3aNiBE2lqY8EhaTwOhCMpTp8yZwVCdbnX3JyjEsKi6lWmVW2Q6cIBnEkqJ2L+Xo AP1YWFGOa5d587B4lqJdLk66NLo5MQYC7ZG32cxBRkJpZJU0ielNrv51gL5yrC+j CjeXkinOCZ43HwTsrWFbt1qfZFOZzTvwKdMhNQoS0+2DQxvS9j87rLqdobSf398O TdMVvuBYrFr9u1RrBFotYBlQSSfTDL1gqLj+i/amCmUw2YsXImeaeWfB2zBpK1Pe eYMGbX9nZG902z2O5nDfIUrPlL45+KCKbCcgkHFnlMHSKtoPpdCK7g1cxaBjW32O MxsDrk1JciT5Sysu6AlJLAittV4Sv5SriMNbXO7QX5v9zhtTErjUXFIICTTexjJs WdEXe7DlxgYvu1kM+iyU9Vi3bD6GJD2ekFmYNoucGzyOCnNqujkXeSx9CSzp2GJ0 e1IA/ka0+LDflr1/LwPDShgG6xqPjY6LQPVL8ZFeNMtiV4j9p+K9/SZE/DBcoZSQ mOB10byXD6kMBPwqECfcx2suKtiMuVWIai+awbjv7ezofzQyAyRvrWGkxKcO+C1W IIkVaXmn09mLV1WjdWQCDoRoetBfDw1fVU6ybz+1+K/UcTfoJWgag9zD1mTmzpQT bIe3zrrCRwD4wRA3y9ADuEo0Kq9JIsduuXdJUITf8dW56Y3QPJTA4Nk1Lig5zLw0 LBeUFCrD9Cl27KWdcgwmRQTj9j4XJ+9vpoYGafxsFfoY5XpeLnyT3kESAet8duJf m7LdL3K6U2Km3FcFYYjcZy3ZMXGS5c3Iup6Gu7YjW6eXF2fs/0eiBz1l7AZV2fzw kJZfnv0xiCxDadfEGcnvouHL8HCW01s2o1sdaTvvPCERNBavQTtumoKoL1xjGsjX xYWDyKZ1DTir0xJgJ9QozEyIlYuefuBqU3Qo4LR3BXlAthyzmlu0NMhMy90RXgld qxu3cphcrqv+26+OoWiwEu/4/57WKDBHq0RnyjIhSKXleRykydtdPRewEr1+xPD1 Bu5JCNHdpR4qW0+yScAkORFnQjQaQpHW+8t8w/BXhT7pm1eTdONBTzmXtzjKzRBG ZOj2f7Y0wiqOBaTOVnuBdKbmddow3eXRFcbfk/4huyTckkL6t3N3QqsMddnZ+f0/ J1J+6iFX4gTdsTHIQEO85dKTFW+tnFH7yS747kjSptXPe/sgg5o9E4p5jcSAjXbD lNM2uwCV/2EsWsSNX2Do5LFfdY7YqUo2oorI/aVLfsZ3Ar8i2yh18RqFJNDmnkbo CHaurR3rFsCqXMWQQplTIzPoS5i+/F/J5sB4M/gwrY6MDNf0LQR/wbDmb+zYOSEL JCsk6gaEA8PQTTLos/sI1b6ws7ThbIg66wvOda8vFx0aGNqInJGAEdHZo21tc2gl 4TGIhXPGVkChLTsOO8fqMJxW7ljEwdzdwCTqtZDqvrmQoNYyyn2o/3mp/Nd5Z9I0 oQL8peeqgBe+O+dIfNJQJo9zjpygasZheONz7PQyuFa8qOFCv9zb7C/JOxnQlhQ9 E780Wt1HRYW4YUaQECEOXO+fICmuDtw5nBOY36ReaGYtdaxKmOlEySc/lnCGQsKP tieMbg7lFFAsa86elZSwW8XgG+pDnxPzMQg/+/epUScT3j4u4l7xu823a/3OjwXV jYyCSbfzKhcL6YfljGuqlBWj4kSlu6xf5MCZPjAfRlgl7qq/qkCZyp5wCoGi71xe PYzEuue9r+neOTYAkxDgtUerWG8AHUVvTIFBpglAvPOnFlgTtnIbFdGsnjPNKZu9 nBulzEtJLEr1hf1+3DSiNZfAFEXhGaov5e0gG+RVKbj0ku43uxT45M6B8e5LJAZA w2DqIObdVERQjnOI2yil7s6NNVoz0GszGMwHD98apD5CZ8Nc2WqIyuKIvsQatSIo TA6EdWs+1R04aYRLp86fjalgW95LXmvY6LfzGlaz1ZHFYGU3+DCQ9PS50nqplbhI YsGEl/t5l6mgFTftY5wtnLGu23buPp5TPXVWvpVTR+mPeVDClRL1jMVOA2MvpmAz 63gnJhfNaagYHotvRwiGQi47jUUbvFojnJFQ2s5LsFjcUiqgmnynm6tty4wuQtSF g0RIr2qrc082Q+1b0qIBsTVtWUDKX/wxTzPKuobogPmcejbrMXnJ9g+f92lcQYiL ehuNDFdiIMvLnJvJiML5K4ZSodV2nTQ/r5vlb0klo/GjogkhPvZ/ZVzeHt2XFs0i v9LZZhwlW/xFBguRuIWTLN04P/yWVDzG9VdTwgatWMEaJgJeTtcq+K/KMwgqwHNE mK2YSlfkIA3XNJTrPHTflCMQE3cXz+gLSyPbDBNZpap6c/yeV7a8771fk7BQEL3h YITGd/R1OX3s+4ThVRDClwC3NmFtHRKzu4k7zGsqa/vqGQvYK77ZT8fSKpSaSGo2 NelbTxTkD6D4fK44TuA7me3+vBpwO+k27cF06UKrJXSci+hRmFYzQYP+gXj1dw58 JiIIDs3KQcdZH7xHTaRZMh+BhCExtosOjHtsW132mqAKibH2c7O5o84ANFovlVFA DzQFl3o9Jf+HrGCyM+uxjwNG6w5WShFyqg2/pfIiuDI9zGVQBRWDKWK0lD2FkF4c Ji1hx4vNx4Nd5+bx1lRZbISmrZ569ce2lFNab3HLXMRK8Gi9t1ZWv6Li3kNl2Shz 6I+K9yyP82hOcpp0Nhu6SZPw3JajdVlohu0hZcmTrngYQ369W61hRn6ZRzhRQBth 3zf2MSRVDOJjfFMqLnvKTSSib//RfPEHyvy8icCGPa8OO6hH7E83AcobUxxHZquw qWYE8VXyKQxwYK8lGXomz8AEg+eR6jqnk+opxmN9h+DpJ+0KVc9P3wqP5bZvsC5n cmQv5KP1pAMSh4nRkqXtEbXPJF6OvCW2pVrRPeGARIIpjpu0mqMXxxgCfIBxdJD9 5FIH0isrkHpyp3VLdUU8qGL1yC2xJLP/NH2/yQ8jtfj2FBJWRYd8x65rkAymJZMz j5S5S8WLrDoBzx4zp9wHMYOavTMLRArwvN5Crl5dtSdApPCUbt3W3O/tPUZbhPqV A/UXA32dyfxB1YA9Xmg/7i545PvlJLm2KhzDnn4WX4ykHRN6NBMAq+Zj5323xejV ec2PdSivWMjzUF/tetQjLEuhANB3xZI+TqUCFTIsnuRvZUlQa+bUnQQ0gMTKe+ku htKwGzguMz2I0KvfLhoO0kp3RfwvTu2F1wViqlhjm0N7B9obc21hZ6ERt47FO6x5 +K1RUYoLqkyDkKfvoBPTp6D4a7BzH5+YL2WvYe6Gshk/xs6FSf9GnWga6JIUi8XV BE1Ccn+Ozio/go6qQ1T92npSRei6BpMEQDXKsD7RbVJv3KwT/jCTqFWDIRwrMLGg UZUtxKNs9WOdtNCqNreu/O6wngsPj6X6BilZ9z+pezG+DznndfaJjBadA7LYP12y mlvjA0EdXI807L4e/Uvl6hSd871ukCVDzJ3lET+b6cvYCd5UY79o2qv4Qd201Rvi 5uCA8LHIMqb4ztT0SUMDEm2dTwlDvDZr9sS2JWYN8FX0b+fsRvbyj9K2kfR9L1yv j2Pi1vm1X/QUz3SEx20bzK9L2k0+lijOVBVeVt7UuqING8DHxrJY2T4VcmmNuGen xjq3iwrSqN9G3iei4MUM2K8zHrhLfLhLEqM/AjJJJlvW9reS7Ov1gdrSpt1EW5Dj i5gYjzb7Eu/pYpmVlTNs1x81u/8u7Zyl/P8Bu9ryw/PjyV5qkM9d6UkksjBT/wM+ gU6ZJ4sktghy3goRT18qFmoo3rH8p6+KSqC3r5rbLDNFEVq7Y6xTTBMWXh6YlsIZ QdOCD5H3KULXlJM8EvRkrE0h8sma61Jbsvf2lKpRZeJ+82mS6vX/VDCjccPLFC4f JSOTBrw9dKe0TWON8G+YjMhFYSzD0Oy0Z7xJvc+zOOe4hkEUpIpAzvFYScxlM0D5 MjsleC+aufoyj7e4iSppbJr8iIfpR+VoL3DTnPd/Oufz3Qm8NO3kapYawWS9bOth V33iLJt8qG1QN76zb8KOAsT2XVqc/pjCI63aZuKGkaXum1IxfbVn/VyQo6qQsWl4 BwtECvtDoBKnGPwrFxzry556QCHiQDGFb4n57hwDPPRX8e1PsjkG3r6+iGtAT55+ /Cq8NT91pc83NiisuUNuNh7psswn1W6y+yOpzrFkfnHFwrSKUVErzi/XIBHg98aQ og3NEjOZSWAwgP17S9YB44oiBRQMeuv5J/FH1mnICmEhVUV4YTVAvS6KhzX3y6e5 HOYGFzniG/116iDsYOgfTEWAtwYi3Y7M+1t7BHj5xpdUI0U+Fzyh2S2/+uaKmnEu XuzVNOkHN0PiDApCFKpvfDfAFAd5kYGth6c3HMGCWGqT50Tm7ldmNIxe43B5P1O/ KXxBRXvINwQlcOGa+ruRNKwyUmZY7PartiWGiifgqKoxbRA3kDo4JRl9NVfcgm19 1QcTUToQ4CZcMHs5VVzwKPEH2nAuhcXdpOPGQ5XhERxrb7OquDKU5xk82uTtlPl8 enc417KQFpiwe0nwNfc+HcFjZwMwO7YCUNq1l8e8bnjcaKEgHeh2c8BWIlXYXbJn xuAyo4a0iMl3k5vkn3jIslSGy4LU2lz5yu9nw59wA5fGVjqPUCUQdhvcm2Ylq/vU Gflf7p+GlJ5mab8EkwR6BC/cNX+A3qGr36Kq+w8F7fDYiMqrRjMbI8WHpHnjue0a JqWNTLsfh8d8gR2wbAQWsrWpT6EtOmHql/J5wunNVyZGYVcLa6x7CMlwi5LYzffM dXW8w/a6uzU75mfFN07pvNuzf3AyZaQItq/Qx/wJOuKAWpl1JHUhBMvRQr5yKg1L /07QvJ5EHthZDye7UWf5tEjS8WBMc371llNIO1+d3z5QyrEKMU8IXOiK90YZ72PI YtyP8Td00gSLPKlRNpomUjnjWn/3cGH8CzFObpDo22uK64yjxxmm0wSQpeVM3XZ2 qKOzkHUDNu4AOdXQmLfr4T33ygqja5lWzBCmLnLnxUMZfZ7/B5IaXNJQc3aA7MCe 7Je0KfBOA35bi7Iw+4DbckDTKljVeG4dcRAbLa+NSa9vTXxICkXo2seN/jtJSHOQ GRSdCxr7/kjZPIwJvJ6eiQTzjpjueKz1pQcup1OPHtGO4Od4j50DRYQ6eAIzWPKZ y9Yzs92OAK45Ni1D264xxgK5zAuc///xlyLcz/zBefMTs70IUZmFAMNUFiyxkYNO Lre2C1UVrVT1x7FVqqpwfMlBdMlGyaKGjzCjLxDWGbp9c4U3qU/tLmyHnW2YJ+id 5gwxIakrB2uOTB9QqfPb6J8RWydZ/4TdoF7hAyX41uNjhhVCeA1kxJfTmqcgxbF7 NzKjvnN9L+mG9lPo8FRFsQNcoDL/SWvK4KzlGcR7iUGsNSkESvSWJGcfvccHp2s5 7HDxrRkt1gJAx/GiPCbvqfxXdIJTM2ELf4DhL8M1XH4iKQ4cSLxSWm2Uay1I6lmp Oed5z3C/mvJDnhhXVGLMxtaFz1rD1VyetwP3OIWcz3cqqdrThad58JsPUgHrHIPG 0p4UK6O46jFOM4uXtkZ9z6ZSZ6FWjyrTkNQpBlsYfHlxwd3U86P7iaQ6rqkFQbrp y6NyUKGTg0stu2xU4wmht2iGyB3cfOJdSOlot8WQ7hCNg1YP2pGUpjLfmXLJRrRR A16IIl5FjHY3PeOTE4Xhb4BuhUzFGB+4pTNCxATiocN7jCN6Z36uG5avfcI6hEfq UzN3/Q/GihWmU1iEZhJGyBsK/mY6Cxv+0s7wXcMsOzT1G9R69GAmGkjMNTdELr2N EMcWRSM93tpShIdkCYPazRZDoKjmZhr3084RAl83z3zoNWIpYtosXQ+UusLk2ja0 QQPu02URaV5Ry2CkH0UVWvS4pIra3Y/35QItAR5XGJMrVfimGXf2yB9MT3HdPE3h ML8QAQDzNifTCLN7TG15Vnzfar6y5G6LnRuPJpRoOjyqacGqaGFiD4/5hSgJ9Wg/ 0bmPUcEd25YkheTEgzMT1FcgfMh/FxjaeT6Zxdwm7Gz/BicwvoQ7Cuo2G6g8inmV EPZGXxphyP+ZOdPMJ/6HUzfdcCKfwkdeWbrPvCV1SjJGX8c6K1KIU8tTwSpuTH0K psV0KIwXD1H6i4871F883BKB4yko+37sjeDUWmKPiVkxHSHb3n+fZCzzXn1rBpVJ khdbbeT9pwtQzBHHVGGOqtKpM09pskKL/ZjPOf/tmtGL+U3F84t2YzCM/kXie9F2 hr+qajCLVdiEk37Tr9H/c9+RiF2Z3yWtL2F3FxEH50ed19QzWF9V+zySBIagArbt 3YxvvZCoiKHAmreTPRpZn+TCeZ7CGO6IN6GiRLm1oobVwIPtBF/hdhwNXx145Z2q dE7ryZcMbpzzKUC1+UxXP+FV+lixjtoA50z9l42+SIqTEzt11XSaTrKSZvXswgmG HAsAjrLhcKMSu86KZN2NKMjM+2fCerZiPJMWovwiQ7WEBmI/9zM5+jheFEQKVj/Y fLOMVSaId2H4oNSNeXVvzW6rZY14Ins01c4SZ1tlmMvbP8oRkDOu9JMEHvH8l16G 0wiLw5jRBopgUUr5YPd/9BtpUhjrN68/bou2L6+kJuaHUfB8DNlu4Vp5eFiPwrlf QPOvzVxMXbENV1P8A7CXnH0ra/eZmrnylvc/GNsVcMrqkynWc0IFvnedYwGg5mPg 2mfCiAQY8XZA8AcQXpllvfSbqAbFmmi1anV5tjLFWev/na6hDb3zcUAO3wNKcn6y 88wrMj8qz8Jby2BETfVv2+4C6CeK5qeABh16Iqd/0mb1VwyVq8vKffgRQlnkQXCY s0mBPB4VMWkfg/g/WotDosKHNI+rrGLVHDi9nv5fHPkyYudg/5fWEPinZE/ut9t2 9P3ebNBTq1zJ54ULtfZmXv5lNYPIwhgFqfAXiM9Ty0e6TOYLu5RWzCLxVszXKluL sKlS2ks3sBRi781pnChsHm7OQfphVQjNJ4f9GTAygFcZDOSNjyZI3LodO8HsMuyC kMUkyC9kmxP01MrTJTjZmV1IUObWCNQNi/oHuAJwOz6vgjoPW+2YXzmd4vf8HWUo vG7Ib3myxdFxlJF/Ix885kRRhqJp5TkppgGd1hIkp19m+XRc1pxqOF5K/DTdLUga SvvEX2tsT1vajBrM1tIlq5iFc4H0277FiD0MY7x3EOEfsWQjDg1FWmYKzQ90Uc0w enAYi29p+neqW6q2XQsz+lEwz5UYTyn8z1R9W1TFIAy+XAPHAslUZlXor4QRTeHi mKMp6J5ZOboSHJ1B7VaYm8+rowUO9FvYrOyIrJuxjo13j/XChcQVkp7BxdLWQgcl B8kH0r/CKUV8q7gF9wXD2IPA384f+7S5OtKbJxy0yUI87iwatSk3MhWSGBBJyCPZ mqOLz/UxFDeGpNoXtjjAvN+uevSaymLRzbEdha6l5vokU+1esIK9Y0RJEOKt3SBN psIF4n2Kaf1m5FOq4SMcdBYqGFsQxpdwf6xAFtwVeylaIlDpLKl8BjCsT8Zb3hZU iB73Ck1R/KEYXBcVuW8y0zkUM0e6JR4HkKGNIcfjpODIB+TJPiZiOBGWKb3ub5RP pVjHr1znwS3NVRL8KylaEWLqeeGQbbVKtxpPP3c2D4Eu/Yhy83r53KdtCW4DchT5 U3InlFVgvJjm1/L5CbLXOy+6bPK7unEeOXKRvgfIdyH4ggzGpinQ/ZRa9Iq7bY8E 75RRUNs0cx5X+cJhtoJBfOwzHZ0WQ0G6QvaHeU4CRYIdzkrNo1ESTUSONnhMaFJp 7yJsiyfB+s463kLhbN5Ua31iegDKUoCdKHCigl8zLg8DgohzjbH6A3TIZQkQ0Tml lv28jOz9MaKhwaRGvK9X2z9plMNxCwQvUWJlHxhnwyzaWDmWl9ELl1dSALpRdl4k Y5RFYBK72K73+sDYjJ4FEz41hbzgeyrGbbc0lFfyhf1OvFJmPnVAbrvreqbw61dK HkPCS5YuKV/dJzpivNAyxc6ABGLoygsDP++3qWBGm5Q1iVyjjfALwRUDtRRKVHvE l4zbUOo3zkD1OrxFiAwTs/NLURQDMweInpoygNSLGeqhXKWe1n2eMH002LdnXWoX JFFjg81JWCa6YVbqP1prSki5UX2pY3eRh+uPQDCrm+p1YT4qOTcuNiEn8ARHBXHW 6GxxtFODSYGtuPcKeiGYMZYmfN+04iJDBPYPEyc8PlUNvHtkwJkoDXb269IdWuUD IZsorok0pWeT0ZFbNiFH64wWnrF8Sqgegncfg6ECPRE9KyZQNDhq/bRACMnOMElL sBrhXCekflJcYtmcezJAJPHdIKwFT8DhK9x51Jt0wuxfbaXwdlroJ6ezLZgrMji4 Hpo2ZzS4Tp+w+Db68uJ4zgNn86M9uL2m2KNt7JW2B3FZSBCds2eEfRniiQ2uGiLg EpbhhuD5/SpXMbqGet+KgfqSVRp0FwARCiBMwBYpA2GvfYNSpc4YP+bk8BkkPiOs KAeZTHZKExNcc8UD21bh01K/Kxb+yTb4L+JQGlHvkd8BrWxQDmdqU3EfBrMrbpIn cVUy49l98UyQ25oU0bvE2olq8WURmWfOb+EvGFUqOfKClnzBewJW8cxEI72Uqqqn 1ZBTI6P/YnN20a4TJak9viN0ylzjH2NCLKuE/lVfYrdYx4jPNgbHAnxisvcawyhl HlxMGtZNuI/bFkqBnIgshB/BQ5WaIuu6x5FbfkhB4THON1gXODfQkJkTdT4LFmpW ehtjt3VzocE6n9GZD7HEnjaEuDhilVwi0CMJeTpbx0ufI0g3jJbgF50xU9XgACNh hv2h3AWaeuQeBdCsYpPkXURf8qGxmAxx8s+ic6p0yBOO9palXI70z/GMS757Mdr3 kaK0iJsu6i7nWMgMJ0eLHjN2iTIvjQKQ+LPBmZS9OOg7bpOEV80mytDWkXxbKwSH sBKqYg3U3TQVF62iM0UhB11wKDhGz2DLnLNntYV6kpZJ3mQXaj/iEKvkjifBBxgx g9oT7tUrnFD9ZFWYDQDV4vfKb7r7OlwUpr30VmF9VuTWcvrT8f383QNg/zNgloVJ +7qi5TwOfUuLg8qOe2fhU8e9l2j5CuzMYUhiIDzPsPn6EwILfEz4v+p6R1RKgcDm BBUTdtXxSL5xet1cWdp0WH/y4EQ88kCkyxF/bDFttUCClQcZQ7XalO8+k2Y13jdA Ag43W/ujQ75TLcr5bG3YOs0hv23FvNfQAuemsVce/rpWbiIOFjwQDL2tgZ51+D3x mvynvtL5p3PNLj3JAOKONaTcOTpvQwi7nAbR3VTgqHxzaZ777odM9OqjnffBjgad 88QPDiIzrCks86VovygpW3o6ApFp7J6TIwnMgx3EOJHhal5BSsCeCfrSYef4cX7D lA88XlAMekG52cyKQOkoe8vQePEx9RQ3lFZiAa4m89IFaZQL7d5RYMvs96Qdyfsg C67TZ1/uqSCF9se3978XU7XA2Af0UCSmNeE29T0vSoc3SxlR4eOfPPChw+WQEvvG CyUDo/PjLPfXcbO02oIjEkrV1i392v4bUv/E4aMPn+Sh4uBdeHRchBhT2PvfYWO8 5W/Mq8gYeAXQ93+gE/sy/jWsD+yZJVOEBJd3R6+DYpDYzPBFgyl31+ndTIbbN270 BLjFsz1GuY5T9LKIYg1CtUOdT9YAzZGNHkgitzak5TC832unkMPc1EGerVXwt//L Jm4yNrHqGR9wSQLCTJwW2Ki+3h7OfAmBsOzi6kHWPEA/Q+VrAerOFuc8FbIEDgN/ 9Vp8g0YN23TObh7pl9Yslh8trzwMQh0yRYrHENVf+/nU0pRP6FoGGujTRZNl18d4 4nFd7tT8zH9aaM439WjIOoZhmO94y+NE12UAgLNJOhFofbVmjnXERwfPNqO/b7Si 1ZnZfBAtvENLKFD4RfQsmHt62U34IEOxWnEWG7qeXBXv8ctSwTbj0wpt6LY+f7Au 2cLK755DENgo9vVkE8PSCzVrmiBSTXxs/0QORCrFwxDMpet1fgPNIrYAbbqAKV/4 G7s+Jvac7pLaYtDj/n/8k3zQXbzEMWzsOjJW44mJNiukXfoyyeIUM2A76MHUTyAt SV+iOO0GJVPBWhcYx+4ksxtLDVn+gYGvVxMEcE7MrxSMRvk7icam3kiR0S/uWARW dqXOHvb6c3c4tthkxef0v52+lVdb8V5E0O2CYVwJK5EnfVJzZaFxsHal8K+bOI0d LKkS0dfMg1s/CXufVxFZScLMb8I5YrFWGM9+NW+j7MsHAPHYcexpCYjzNGZwKM8/ GJNXgyGDeIO1G7zVxEQko1/xOq9/c7+ebdId4glDI+5J78XECuhKmjZgUEVHqpIw DTGDJTPaaL8QPZWstxGKZ084UxBxtY0yWx58OZV8I33tl4R5yKtCkFunKHRbFobf pa3ylnZoyl2h9t5oGb251oA3AX8BbeS4yzfZ4FYKJsJgj3ViV/6R1xtrOl758BOS hhaf7K4EOnVw9J9PmCE1ru8COmG2ujdyQzmRgGGlzXUJqu7mdgcNhN8jbBvR8F7f x5C/2eYE+P42qDETzz1f4kedZc5naoY051H2wFcZYbbtFmjIqSZhWEUjvyspwfPU R9zyu52zloLu5HwdaBP7xMTgPoifw9cziTsdjXEgErLeBfIwg/KyTcZJlGso4r8O rAZFRAsmGbJWAxbJ5lmL55meJJG/naExrmPcL5JQqM2SXo9cZIaYeiAmBbl1fLWd jWuo01Iklx/729FXFrtfxLtONE2+xbuOXku3BJd5dc/JhmVU5aqU2Cu24Ly/6Tjd uz9QPPhykGm0qeLzaM66vViUZ3Rw539JcAv/XaxG3eutJzSer/zg8y9j9Sf6wbnU 8PgddLuWDOb8mMfqU6MKQVLagsYm3PiegfgGvTa/JhRlQ+2Le2NVRswR23SMnkaN eIE0iXGVjVb+caf4mzV4XDZJlSDRKdSDlSUoevfkz1/dPHQ78oYGbrQ70wF/3JgF j1I4hsdY7jrhQlBI4UT4MXT6xvJZ//x0HomDn6RQRbwAzlXZ5/iM89C/7yLN64cf 9LGR/ktcPP693vq/rkeFq90Ho5h14q35syAXlYsjzSY/9v0B4nnScxMfl5mCEIsd ZBEZgE82PUwHPii5fKSuPFfHPJgSxGesCM6K8ar1k9BOtp7JQdZ+yOLfT9jz/pLu tX00krvHjVHMKXVgQa+ZN0IUXyR5H7OP2+rXvVql0CDOywEoTj6RQmnD2WXvFaKB mZO4qNpbW3vU71oZ5WRY0FMQVem6VcYrsF2D68KBlfKDWaBXZdk/SDjQDL/HrGOh rBsh1cWczWfLdehcqT1+xQ6aNZiffs35QCcZIFW97IHF69vDi+c78qLaAu48NNoe NYDs0sqHZy5oTq9QXQPwV7BR4bTadtd1aAvFTg7CrnSQZT0rPhZF4pc4uFbr/glL 92L2It68kCQ2QJ1x8Gj324NLlZ9FJGvZOgDkNq4kr7QDKeAFe4LI9gaX2W4WGtwh /Si/IA/PZswmyPJECVKKjRRUaJJxlf6UXhhiPbrtYMSEbwMVOCirfCkbBGX1SV7b QiWjpnRZKymvwkvy/4LxxFM7gupA6gJs77HnhdtsbrBNBzM5te8kI/RQjkdIP+Aj D95qahgrDyFLa/iw5uKqAo3RNjK0/vbTvSHoSjEtW8j0UPaGks0twnFUZNBF8xEz fssQOLuLH6p2OHoqwAMQnb7D7f/NB9Qvm+6hPLqvGi8mjznaNTdSkxmNsZtRtSBa QdopGWEmormncsX9JyDTlfj126WW3iUcV5tf+qZfU26b+gVpIHNWwMhAEYLKWOIm MbkVZuZdKeYF8evxhkeJvx7RuiIwrvu3V/ff6Z9A/TJr8ex5PHK8KguyGMOk4jCi T7hFOm7mB8asUvV+5UeoK6fxk/AVSZvvmpe8Lbd9r7cVZasNl3CIsZ4J6ki85fe5 aYyH9zW6EUqyteDqVuCJGbg0CAdtVmt0LagH/GgC4mk1qeQLwTU0MUJfBIu494mq o7n67bNXSI2fDW91IrohAI4XVlnMFmxB5936PDKkAHves/+rEyCFSm7FwpdvSCax ++Z/+dNEETWBZtd6oDAbxoTo1bXFo9xoTg+d+gB+UrhzCgw/ZKcKaLLywo1xtBKW ZcxcKblr7cJTJ1/Uz1erlEI/JdRRN9h5xQWmDMXv0L3aOkbF9V3W6AxsvWqMnsxk MQOCo2hTSNFJVX44RLwBhwT2/f6D7Evv6wOtYKw4LtRGVFjWe9XfnUasiuK+Icgp wxQDqhNvOJE7Tcj4qLuYcWPiT+TfGbzxq952Z6l15JbC/CiiTFeBqJgSPwuQUJ1d 6VNp7f0q0y+X8BFMSl/mKYtiuBL4SA0J24YHfaZ1qqqN9AQWD3YL8jBB0tf7TJw5 E0BQ9ZxSCaTpl7WynHMPbb6se4dkKLOcF1wHcM4S3y/6J2Ozom7mX4GAqOaZ0uVS EjdFPLvLYAHbIHIGD24A8wP4Zi3GEm82GkTF3+sE1Nxes1bm3sO98hEPMOH6jv2j Kng1CxBv1AUMQ1x8ctrLrWDMZUQHspFkrgQ/Klq1RmEOIBXiCD0nNy+9BwMOutmY WYUyTfbHYY6T7JTR7NhWV0zaew3XmjoreG4kQNzHIUJDTb8Uztskgljamm3YE9Vj dBdV+p8zr+lErx9fy+0KuHgmoL1VbHHMOLk+rewZdpMsIT57dfvW0dA81G5xPxa5 HLDVSxmcBfFdvsfSDesRDY86p6ziWRhvN6B4FMW6vbAGIxg43cLQd5kslvN2Rg3p YjWoNLENcYRdI2aTAEcAwEPjSGUQHvF42dccj0VY9ykncoHiCops1vaIW3WhFEjI ok3w/DiY4OWjGjAlzyRGe6u3CMMY4KiD7n7dCE4z/e1QLuqowymv7eVUmNRk5kHC TQZJrQ/5FR6dQabZFYWfnWVBRAZXOELLufL6ynuES7tpjv+crLG2se5LieQzBBgN 63t3++6JRmI1Jco7kGassM1EmROJ9V7/T9efbqUeTbtqgLMRM2Mq005c7XV4+rfN OMtZVhI2PypeGjFgpIe5jzJzNC4LlQ8mV2kubBFMDmUpgqKeevrh43cE3+TvPEZM Auv+V1LvVbWRU/ayKSHtEnjl0cHMvJKrEhe95DAt5x7J6IDEf6CltDQjCaztZJjA Aw5ur1+RB5RdsxUuwKFjKFV4DBOTRuqzp//HEr2BJTofzREtJ8dVmJcCyJbDfAdM ZtkvSDyUEW/+WuD2F8pkkatma1nSQar00s6vCC+ufGlKjLPSct+C7XorB/ehR2CM eJg42v1iTyzC0cZl26lnTJFcPoL0syTyKYzekZytH1X9Ma6mgxndA3YFu8o6t5LJ 7/KwRXQNnB1DpN9DnRbcFjxM3qdxCmmLeNVpxkQqbeJcj7cfGg7JWR2P5lU9MWvx V8EPonrZei4gn/RrI7cSbuADsBBWsrikm4oE3sOxqg1FgMUSiQTCIsWa3X3iJ8T/ zVTohGJRrsWOlcxM9QUFbAMmhLn/RLdZMb03wrtJO8e0fpQVtP9r/sVux1On5Rv5